diff --git a/Handler/.gitignore b/Handler/.gitignore new file mode 100644 index 0000000..5bad711 --- /dev/null +++ b/Handler/.gitignore @@ -0,0 +1,10 @@ +*.suo +*.user +*.pdb +bin +obj +desktop.ini +.vs +packages +/*.sln +/Sub/Sub.zip diff --git a/Handler/CapCleaningControl/CIcon.cs b/Handler/CapCleaningControl/CIcon.cs new file mode 100644 index 0000000..5dbe9d3 --- /dev/null +++ b/Handler/CapCleaningControl/CIcon.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; + +namespace UIControl +{ + public class CIcon + { + public string Text { get; set; } + public string Tag { get; set; } + public RectangleF Rect { get; set; } + public Boolean Focus { get; set; } + public Boolean Select { get; set; } + public CIcon() : this(string.Empty, RectangleF.Empty) { } + public CIcon(string tag,RectangleF rect) + { + Text = string.Empty; + Tag = tag; + Rect = rect; + } + public float X { get { return Rect.X; } } + public float Y { get { return Rect.Y; } } + public float W { get { return Rect.Width; } } + public float H { get { return Rect.Height; } } + } +} diff --git a/Handler/CapCleaningControl/CItem.cs b/Handler/CapCleaningControl/CItem.cs new file mode 100644 index 0000000..9ec1950 --- /dev/null +++ b/Handler/CapCleaningControl/CItem.cs @@ -0,0 +1,158 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Drawing; +namespace UIControl +{ + [Serializable] + public class CItem + { + public Boolean Delete { get; set; } + /// + /// 어떠한 포트에서 픽업 되었는지 + /// + public int iPort { get; set; } + + /// + /// 출력 포트 + /// + public int oPort { get; set; } + + /// + /// 배출여부 + /// + public int ErrorOut { get; set; } + + /// + /// 크기는 어떠한지(7 or 13) + /// + public string Size { get; set; } + + /// + /// 존번호 0~10 + /// + public int index { get; set; } + + /// + /// 피커에의해서 드랍된 시간 + /// + public DateTime DropTime { get; set; } + + /// + /// 차수별 일련번호 + /// + public UInt16 Seq { get; set; } + + public DateTime BarcodeStart { get; set; } + public DateTime BarcodeEnd { get; set; } + + public DateTime PlcStartTime { get; set; } + public DateTime PlcEndTime { get; set; } + + public DateTime ZoneIntime { get; set; } + + /// + /// 컨베이어에 들어온 시간 + /// 피커에서 드랍되면 dropTime 과 동일하며, 외부에서 들어오면 센서가 최초 감지한 시간이 된다 + /// + public DateTime InTime { get; set; } + public DateTime OutTime { get; set; } + public Rectangle Rect { get; set; } + + /// + /// jobhistory에 연결되는 데이터 키 + /// + public string JGUID { get; set; } + + /// + /// 바코드 데이터와 연결되는 키값 + /// + public string Tag { get; set; } + public string RID { get; set; } + public string SID { get; set; } + public string BarcodeRaw { get; set; } + public string BarcodeMsg { get; set; } + public Boolean Processing { get; set; } + public string GUID { get; private set; } + public int Qty { get; set; } + public List UnloaderMsg { get; set; } + + /// + /// 바코드의 완료여부, timeout 혻은 설정 되었을때 적용 + /// + public Boolean BarcodeDone { get; set; } + + public Boolean hasBarcode + { + get + { + return !string.IsNullOrEmpty(RID); + } + } + + public void AddMessage(string msg) + { + if (this.UnloaderMsg.Contains(msg) == false) + UnloaderMsg.Add(msg); + } + + public CItem() + { + Qty = 0; + UnloaderMsg = new List(); + ErrorOut = 0; + this.GUID = Guid.NewGuid().ToString(); + Tag = string.Empty; + JGUID = string.Empty; + Seq = 0; + SID = string.Empty; + BarcodeRaw = string.Empty; + BarcodeMsg = string.Empty; + RID = string.Empty; + Rect = Rectangle.Empty; + Delete = false; + Processing = false; + DropTime = DateTime.Parse("1982-11-23"); + BarcodeStart = DateTime.Parse("1982-11-23"); + BarcodeEnd = DateTime.Parse("1982-11-23"); + PlcStartTime = DateTime.Parse("1982-11-23"); + PlcEndTime = DateTime.Parse("1982-11-23"); + InTime = DateTime.Parse("1982-11-23"); + OutTime = DateTime.Parse("1982-11-23"); + ZoneIntime = DateTime.Parse("1982-11-23"); + + index = -1; + oPort = -1; + iPort = -1; + Size = string.Empty; + } + public CItem Clone() + { + var item = new CItem(); + item.Qty = Qty; + item.Seq = Seq;//0; + item.SID =SID;// string.Empty; + item.BarcodeRaw = BarcodeRaw;//string.Empty; + item.BarcodeMsg = BarcodeMsg;//string.Empty; + item.RID = RID;//string.Empty; + item.Rect = Rect;//Rectangle.Empty; + item.Delete = Delete;//DropTime;//; + + item.DropTime =DropTime;// DateTime.Parse("1982-11-23"); + item.BarcodeStart =BarcodeStart;// DateTime.Parse("1982-11-23"); + item.BarcodeEnd = BarcodeEnd;//DropTime;//.Parse("1982-11-23"); + item.PlcStartTime = PlcStartTime;//DateTime.Parse("1982-11-23"); + item.PlcEndTime =PlcEndTime;// DateTime.Parse("1982-11-23"); + item.InTime = InTime;//DropTime;//.Parse("1982-11-23"); + item.OutTime = OutTime;//DateTime.Parse("1982-11-23"); + item.ZoneIntime = ZoneIntime;//DateTime.Parse("1982-11-23"); + item.index = index; + item.oPort = oPort; + item.iPort = iPort; + item.Size = Size; + return item; + } + + } +} diff --git a/Handler/CapCleaningControl/CMenu.cs b/Handler/CapCleaningControl/CMenu.cs new file mode 100644 index 0000000..4112084 --- /dev/null +++ b/Handler/CapCleaningControl/CMenu.cs @@ -0,0 +1,84 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace UIControl +{ + + + [Serializable] + public class CMenuButton + { + public eButtonType Shape { get; set; } + public string Text { get; set; } + public string Tag { get; set; } + public Rectangle Rect { get; set; } + public Color BackColor { get; set; } + public Color ForeColor { get; set; } + public Color OverColor { get; set; } + public Color BorderColor { get; set; } + public byte BorderSize { get; set; } + public Font Font { get; set; } + public CMenuButton() : this(string.Empty, string.Empty) { } + public CMenuButton(string text, string tag) + { + Font = null; + BorderColor = Color.Black; + BorderSize = 5; + Shape = eButtonType.Rectangle; + this.Text = text; + this.Tag = tag; + BackColor = Color.White; + OverColor = Color.Gold; + ForeColor = Color.Black; + text = "Button"; + } + public string menutag { get; set; } + } + + [Serializable] + public class CMenu + { + public string Title { get; set; } + public string Text { get; set; } + public string Tag { get; set; } + public RectangleF Rect { get; set; } + public Boolean Focus { get; set; } + public Boolean Select { get; set; } + public eMsgIcon Icon { get; set; } + public CMenuButton[] buttons { get; set; } + public Font Font { get; set; } + public Color BackColor { get; set; } + public Color ForeColor { get; set; } + public Color BorderColor { get; set; } + + /// + /// 반드시 사용자의 허가를 받아야 넘어갈 수 있는 메뉴 + /// + public Boolean RequireInput { get; set; } + + public CMenu() : this("Contents", "Title", "tag", eMsgIcon.Info, null) { } + + public CMenu(string text_, string title_, string tag_, eMsgIcon icon_, params CMenuButton[] buttons_) + { + this.Tag = tag_; + this.Title = title_; + this.Text = text_; + this.Icon = icon_; + this.buttons = buttons_; + this.Font = new Font("맑은 고딕", 15, FontStyle.Bold); + BackColor = Color.White; + ForeColor = Color.Black; + BorderColor = Color.Orange; + RequireInput = false; + + } + public float X { get { return Rect.X; } } + public float Y { get { return Rect.Y; } } + public float W { get { return Rect.Width; } } + public float H { get { return Rect.Height; } } + } +} diff --git a/Handler/CapCleaningControl/CPicker.cs b/Handler/CapCleaningControl/CPicker.cs new file mode 100644 index 0000000..8cd9a29 --- /dev/null +++ b/Handler/CapCleaningControl/CPicker.cs @@ -0,0 +1,90 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; + +namespace UIControl +{ + public class CPicker + { + + /// + /// 언로드포트 위치(L/R) + /// + public string PortPos { get; set; } + /// + /// 프린트 위치(H/L) + /// + public string PrintPos { get; set; } + + /// + /// 릴이 있는 경우 해당 릴이 어느 포트에서 왔는지의 번호 + /// + public short PortIndex { get; set; } + + /// + /// 현재 작업이 프론트 포트의 작업인가? (portindex 값을 가지고 판단함) + /// + public Boolean isFrontJob + { + get + { + if (PortIndex <= 1) return true; + else return false; + } + } + + public Boolean Overload { get; set; } + + + /// + /// VAC센서의 값을 가지고 있음, 현재 릴이 감지되었는가? + /// + public Boolean isReelDetect + { + get + { + return VacOutput.Where(t => t == true).Count() > 0; + } + } + + /// + /// PICK후 60mm위치에서 미리 확인한 감지 상태값 + /// 이값을 가지고 도중에 떨궜을 상황을 감지한다 + /// + public Boolean PreCheckItemOn { get; set; } + public Boolean HasRealItemOn { get; set; } + public Boolean ItemOn { get; set; } + //public Boolean[] VacDetect { get; set; } + public Boolean[] VacOutput { get; set; } + public CPicker() + { + this.Overload = false; + PortPos = "7"; + PortIndex = -1; + HasRealItemOn = false; + PreCheckItemOn = false; + } + public void Clear() + { + this.Overload = false; + ItemOn = false; + PortPos = "--"; + PortIndex = -1; + //if(VacDetect != null && VacDetect.Length > 0) + //{ + // for (int i = 0; i < VacDetect.Length; i++) + // VacDetect[i] = false; + //} + if (VacOutput != null && VacOutput.Length > 0) + { + for (int i = 0; i < VacOutput.Length; i++) + VacOutput[i] = false; + } + } + + + + } +} diff --git a/Handler/CapCleaningControl/CPort.cs b/Handler/CapCleaningControl/CPort.cs new file mode 100644 index 0000000..929c097 --- /dev/null +++ b/Handler/CapCleaningControl/CPort.cs @@ -0,0 +1,482 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; + +namespace UIControl +{ + public class CPort + { + public Boolean SaftyErr { get; set; } + //public Boolean Safty2Err { get; set; } + // public Boolean SaftyErr { get { return Safty1Err || Safty2Err; } } + public Boolean MotorRun { get; set; } + public Boolean MotorDir { get; set; } + public int arrowIndex { get; set; } + public Boolean LimitUpper { get; set; } + public Boolean LimitLower { get; set; } + public Boolean OverLoad + { + get + { + return LimitLower && DetectUp; + } + } + public byte AlignOK { get; set; } + public void AlignReset() { AlignOK = 0; errorCount = 0; } + public Boolean Ready { get; set; } + + public Boolean DetectUp { get; set; } //상단에 있는 자재 감지 센서 + + + /// + /// 7인치 13인치의 크기 정보를 표시한다 + /// + public string title { get; set; } + public int reelNo { get; set; } + + /// + /// 차수별 릴 작업 수량이 표시됨 + /// + public int reelCount { get; set; } + + public int errorCount { get; set; } + public int CartSize { get; set; } + + + + public System.Drawing.Color bgColor { get; set; } + private Boolean _enable = false; + + public Color fgColor { get; set; } + public Color fgColorCount { get; set; } + + public Rectangle rect_title { get; set; } + public RectangleF Rect { get; set; } + public Rectangle rect_count { get; set; } + public int AnimationStepPort { get; set; } + + /// + /// 0:notcart , 1:ready, 2:full + /// + public ushort State { get; set; } + + public Boolean Enable + { + get { return _enable; } + set + { + _enable = value; + this.bgColor = value ? Color.Lime : Color.FromArgb(43, 43, 43); + this.fgColor = value ? Color.White : Color.DimGray; + } + } + + public CPort() + { + CartSize = 0; + Ready = false; + Enable = false; + rect_title = Rectangle.Empty; + rect_count = Rectangle.Empty; + Rect = RectangleF.Empty; + reelNo = -1; + arrowIndex = 2; + reelCount = 0; + fgColor = Color.Black; + Clear(); + AlignOK = 0; + AnimationStepPort = 9; + //Items.Clear(); + } + //public void ClearItem() + //{ + // Items.Clear(); + //} + public void Clear() + { + CartSize = 0; + Enable = true; + SaftyErr = false; + MotorRun = false; + MotorDir = false; + LimitUpper = false; + LimitLower = false; + reelNo = 0; + reelCount = 0; + DetectUp = false; + } + + public void Display(Graphics g, Font fCnt, Font fMsg, Boolean Magneton, Boolean VisionRdy, Boolean VisionEnd, Boolean ItemOn, Boolean VisionLock, int VisionCnt) + { + if (Enable == false) + { + g.DrawLine(Pens.DimGray, Rect.Left, Rect.Top, Rect.Right, Rect.Bottom); + g.DrawLine(Pens.DimGray, Rect.Right, Rect.Top, Rect.Left, Rect.Bottom); + } + + //모터사용시 화살표 + eDirection DirL = MotorDir == false ? eDirection.TopToBottom : eDirection.BottomToTop; + if (MotorRun) UIControl.Common.Draw_Arrow(g, Rect, DirL, arrowIndex, AnimationStepPort, Color.Gold, fMsg); + + //글자표시 (크기 및 작업 수량) + var sf = new StringFormat + { + Alignment = StringAlignment.Center, + LineAlignment = StringAlignment.Center, + }; + + + //리밋영역표시(상/하) + var limitSizeH = (int)(Rect.Height * 0.2); + + + if (OverLoad == true)//과적 + { + g.FillRectangle(Brushes.Red, Rect); + g.DrawString("OVER\nLOAD", fMsg, new SolidBrush(fgColor), Rect, sf); + } + else + { + if (errorCount > 5) + { + g.FillRectangle(new SolidBrush(Color.FromArgb(250, Color.Gold)), Rect); + } + else + { + g.FillRectangle(new SolidBrush(Color.FromArgb(150, Color.Black)), Rect); + } + + + if (errorCount > 0) + { + if (errorCount > 05) + { + g.DrawString(reelCount.ToString() + "\n(ERROR)", fCnt, new SolidBrush(Color.Red), Rect, sf); + } + else g.DrawString(reelCount.ToString() + "\nE:" + errorCount.ToString(), fCnt, new SolidBrush(Color.Red), Rect, sf); + } + else + { + + g.DrawString(reelCount.ToString(), fCnt, new SolidBrush(fgColor), Rect, sf); + } + } + + //마그넷상태표시 + var magheight = 30; + var magrect = new RectangleF(this.Rect.Left, this.Rect.Bottom - magheight, this.Rect.Width, magheight); + if (Magneton) + { + g.DrawString("LOCK(" + CartSize.ToString() + ")", new Font("Consolas", 10, FontStyle.Bold), Brushes.Gold, magrect, new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + } + else + { + g.FillRectangle(Brushes.DimGray, magrect); + g.DrawString("UNLOCK(" + CartSize.ToString() + ")", new Font("Consolas", 10, FontStyle.Bold), Brushes.Black, magrect, new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + } + + //아이템을 가지고 있다면 처리해준다. + if (ItemOn) + { + magrect = new RectangleF(this.Rect.Left, this.Rect.Top, this.Rect.Width, magheight); + g.FillRectangle(Brushes.Gold, magrect); + g.DrawString("ITEM-ON", new Font("Consolas", 12, FontStyle.Bold), Brushes.Black, magrect, new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + } + + + + //데두리표시 ( 비활성 회색, 활성 감지 : 라임, 미감지 흰색) + Color borderL = Enable ? (LimitUpper ? Color.Red : (LimitLower ? Color.Blue : (DetectUp ? Color.Lime : Color.White))) : Color.DimGray; + if (OverLoad) borderL = Color.White; + int bordersize = 7;//ortL.enable ? 7 : 1; + + //비젼영역추가 201228 + using (Font f = new Font("Consolas", 8, FontStyle.Bold)) + { + var vrect = new RectangleF(Rect.Right, Rect.Top, 20, Rect.Height); + Color fcolor2 = Color.Gray; + var drawstr = "VISON RDY"; + if (VisionEnd) { drawstr = "VISION END"; fcolor2 = Color.Lime; } + else if (VisionRdy) { drawstr = "VISION RUN"; fcolor2 = Color.Gold; }; + drawstr += "(" + VisionCnt.ToString() + ")"; + if (VisionLock) g.DrawRect(vrect, Color.Blue, 7); + else g.DrawRect(vrect, fcolor2, 7); + g.DrawString(drawstr, f, new SolidBrush(fcolor2), vrect, new StringFormat + { + Alignment = StringAlignment.Center, + LineAlignment = StringAlignment.Center, + FormatFlags = StringFormatFlags.DirectionVertical + }); + + vrect = new RectangleF(Rect.Left - 20, Rect.Top, 20, Rect.Height); + fcolor2 = Color.Gray; + drawstr = "PORT RDY(" + this.AlignOK.ToString() + ")"; + if (Ready) fcolor2 = Color.Lime; + g.DrawRect(vrect, fcolor2, 7); + g.DrawString(drawstr, f, new SolidBrush(fcolor2), vrect, new StringFormat + { + Alignment = StringAlignment.Center, + LineAlignment = StringAlignment.Center, + FormatFlags = StringFormatFlags.DirectionVertical + }); + } + + + if (OverLoad == false) + { + var fontsize = 9; + using (Font fnt = new Font("Consolas", fontsize, FontStyle.Bold)) + { + //상단 리밋은 상단에 + if (LimitUpper) + { + var msgLU = "+ LIMIT"; + var fsize = g.MeasureString(msgLU, fnt); + var msgW = fsize.Width * 1.5f; + var msgH = fsize.Height * 1.5f; + if (msgW > this.Rect.Width * 0.70f) msgW = this.Rect.Width * 0.7f; + + var RectMsgL = new RectangleF( + Rect.Left + (Rect.Width - msgW) / 2.0f, + Rect.Top - msgH - bordersize / 2.0f + 1, + msgW, msgH); + + g.FillRectangle(new SolidBrush(Color.FromArgb(250, Color.Red)), RectMsgL); + // g.DrawRectangle(Pens.Black, RectMsgL); + g.DrawString(msgLU, fnt, Color.White, RectMsgL); + + } + + //아이템 감지신호는 상단 아래쪽으로 + if (Ready) + { + //var msgLU = "READY"; + //var fsize = g.MeasureString(msgLU, fnt); + //var msgW = fsize.Width * 1.5f; + //var msgH = fsize.Height * 1.5f; + //if (msgW > this.Rect.Width * 0.70f) msgW = this.Rect.Width * 0.7f; + + //var RectMsgL = new RectangleF( + //Rect.Left + (Rect.Width - msgW) / 2.0f, + //Rect.Top + bordersize / 2.0f - 1, + //msgW, msgH); + + //g.FillRectangle(new SolidBrush(Color.FromArgb(250, Color.Lime)), RectMsgL); + //// g.DrawRectangle(Pens.Black, RectMsgL); + //g.DrawString(msgLU, fnt, Color.Black, RectMsgL); + } + + + //하단 리밋은 하단에표시 + if (LimitLower) + { + var msgLU = "- LIMIT"; + var fsize = g.MeasureString(msgLU, fnt); + var msgW = fsize.Width * 1.5f; + var msgH = fsize.Height * 1.5f; + if (msgW > this.Rect.Width * 0.70f) msgW = this.Rect.Width * 0.7f; + + var RectMsgL = new RectangleF( + Rect.Left + (Rect.Width - msgW) / 2.0f, + Rect.Top - msgH - bordersize / 2.0f + 1, + msgW, msgH); + + g.FillRectangle(new SolidBrush(Color.FromArgb(250, Color.Blue)), RectMsgL); + //g.DrawString(msgLU, fnt, Brushes.White, RectMsgL, sf); + g.DrawString(msgLU, fnt, Color.White, RectMsgL); + + } + + + //아이템 감지 + if (DetectUp) + { + var msgLU = "DETECT"; + var fsize = g.MeasureString(msgLU, fnt); + var msgW = fsize.Width * 1.5f; + var msgH = fsize.Height * 1.5f; + if (msgW > this.Rect.Width * 0.70f) msgW = this.Rect.Width * 0.7f; + + var RectMsgL = new RectangleF( + Rect.Left + (Rect.Width - msgW) / 2.0f, + Rect.Bottom + 1, + msgW, msgH); + + g.FillRectangle(new SolidBrush(Color.FromArgb(250, Color.Lime)), RectMsgL); + //g.DrawRectangle(Pens.Black, RectMsgL); + g.DrawString(msgLU, fnt, Color.Black, RectMsgL); + + } + + //안전 오류는 중앙에 + + if (SaftyErr) + { + var msgS = "SAFTY ERROR"; + var fsize = g.MeasureString(msgS, fMsg); + var msgW = fsize.Width * 1.5f; + var msgH = fsize.Height * 1.5f; + if (msgW > this.Rect.Width * 0.80f) msgW = this.Rect.Width * 0.8f; + + var RectMsgL = new RectangleF( + Rect.Left + (Rect.Width - msgW) / 2.0f, + Rect.Top + (Rect.Height - msgH) / 2.0f, + msgW, msgH); + + g.FillRectangle(new SolidBrush(Color.FromArgb(240, Color.Khaki)), RectMsgL); + g.DrawRectangle(Pens.Black, RectMsgL); + g.DrawString(msgS, fMsg, Color.Maroon, RectMsgL); + + } + } + + } + + //테두리가 리밋영역을 감추도록 그린다 + g.DrawRectangle(new Pen(borderL, bordersize), Rect.Left, Rect.Top, Rect.Width, Rect.Height); + + + + + sf.Dispose(); + } + + public void DisplayConv(Graphics g, Font fCnt, Font fMsg, Boolean Magneton, Boolean VisionRdy, Boolean VisionEnd, Boolean ItemOn, Boolean VisionLock, int VisionCnt, bool cvbusy, bool cvreadyoff) + { + if (Enable == false) + { + g.DrawLine(Pens.DimGray, Rect.Left, Rect.Top, Rect.Right, Rect.Bottom); + g.DrawLine(Pens.DimGray, Rect.Right, Rect.Top, Rect.Left, Rect.Bottom); + } + + + //모터사용시 화살표 + eDirection DirL = MotorDir == false ? eDirection.TopToBottom : eDirection.BottomToTop; + if (MotorRun) UIControl.Common.Draw_Arrow(g, Rect, DirL, arrowIndex, AnimationStepPort, Color.Gold, fMsg); + + //글자표시 (크기 및 작업 수량) + var sf = new StringFormat + { + Alignment = StringAlignment.Center, + LineAlignment = StringAlignment.Center, + }; + + + //리밋영역표시(상/하) + var limitSizeH = (int)(Rect.Height * 0.2); + + + if (errorCount > 5) + { + g.FillRectangle(new SolidBrush(Color.FromArgb(250, Color.Gold)), Rect); + } + else + { + if (cvbusy) + g.FillRectangle(new SolidBrush(Color.FromArgb(150, Color.Tomato)), Rect); + if (cvreadyoff) + g.FillRectangle(new SolidBrush(Color.FromArgb(150, Color.Red)), Rect); + else + g.FillRectangle(new SolidBrush(Color.FromArgb(150, Color.Black)), Rect); + } + + if (reelCount != 0) + { + //버튼형태처럼 보이게한다. + g.FillRectangle(new SolidBrush(Color.FromArgb(100, Color.Gold)), Rect); + g.DrawRectangle(new Pen(Color.WhiteSmoke, 5), Rect.Left, Rect.Top, Rect.Width, Rect.Height); + } + + if (errorCount > 0) + { + if (errorCount > 05) + { + g.DrawString(reelCount.ToString() + "\n(ERROR)", fCnt, new SolidBrush(Color.Red), Rect, sf); + } + else g.DrawString(reelCount.ToString() + "\nE:" + errorCount.ToString(), fCnt, new SolidBrush(Color.Red), Rect, sf); + } + else if (reelCount > 0) + { + + g.DrawString(reelCount.ToString(), fCnt, new SolidBrush(fgColor), Rect, sf); + } + + //마그넷상태표시 + var magheight = 30; + var magrect = new RectangleF(this.Rect.Left, this.Rect.Bottom - magheight, this.Rect.Width, magheight); + //if (Magneton) + //{ + // g.DrawString("LOCK(" + CartSize.ToString() + ")", new Font("Consolas", 10, FontStyle.Bold), Brushes.Gold, magrect, new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + //} + //else + //{ + // g.FillRectangle(Brushes.DimGray, magrect); + // g.DrawString("UNLOCK(" + CartSize.ToString() + ")", new Font("Consolas", 10, FontStyle.Bold), Brushes.Black, magrect, new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + //} + + //아이템을 가지고 있다면 처리해준다. + if (ItemOn) + { + magrect = new RectangleF(this.Rect.Left, this.Rect.Top, this.Rect.Width, magheight); + g.FillRectangle(Brushes.Gold, magrect); + g.DrawString("ITEM-ON", new Font("Consolas", 12, FontStyle.Bold), Brushes.Black, magrect, new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + } + + + + //데두리표시 ( 비활성 회색, 활성 감지 : 라임, 미감지 흰색) + Color borderL = Enable ? Color.White : Color.DimGray; + //if (OverLoad) borderL = Color.White; + int bordersize = 7;//ortL.enable ? 7 : 1; + + //비젼영역추가 201228 + using (Font f = new Font("Consolas", 8, FontStyle.Bold)) + { + var vrect = new RectangleF(Rect.Right, Rect.Top, 20, Rect.Height); + Color fcolor2 = Color.Gray; + var drawstr = "VISON RDY"; + if (VisionEnd) { drawstr = "VISION END"; fcolor2 = Color.Lime; } + else if (VisionRdy) { drawstr = "VISION RUN"; fcolor2 = Color.Gold; }; + drawstr += "(" + VisionCnt.ToString() + ")"; + if (VisionLock) g.DrawRect(vrect, Color.Blue, 7); + else g.DrawRect(vrect, fcolor2, 7); + g.DrawString(drawstr, f, new SolidBrush(fcolor2), vrect, new StringFormat + { + Alignment = StringAlignment.Center, + LineAlignment = StringAlignment.Center, + FormatFlags = StringFormatFlags.DirectionVertical + }); + + vrect = new RectangleF(Rect.Left - 20, Rect.Top, 20, Rect.Height); + fcolor2 = Color.Gray; + drawstr = "EXT RDY"; + if (cvreadyoff) fcolor2 = Color.Red; + else if (Ready) fcolor2 = Color.Lime; + g.DrawRect(vrect, fcolor2, 7); + g.DrawString(drawstr, f, new SolidBrush(fcolor2), vrect, new StringFormat + { + Alignment = StringAlignment.Center, + LineAlignment = StringAlignment.Center, + FormatFlags = StringFormatFlags.DirectionVertical + }); + } + + + //테두리가 리밋영역을 감추도록 그린다 + if (reelCount == 0) + { + g.DrawRectangle(new Pen(borderL, bordersize), Rect.Left, Rect.Top, Rect.Width, Rect.Height); + } + + + + + + sf.Dispose(); + } + + + } +} diff --git a/Handler/CapCleaningControl/Common.cs b/Handler/CapCleaningControl/Common.cs new file mode 100644 index 0000000..ba367e3 --- /dev/null +++ b/Handler/CapCleaningControl/Common.cs @@ -0,0 +1,126 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; + +namespace UIControl +{ + public static class Common + { + public static void Draw_Arrow(Graphics g, RectangleF rect, eDirection dir, int arrowindex, int animstep, Color basecolor,Font f ) + { + //컨베어 RUN 표시기 표시 + var paddingX = rect.Height * 0.15f; //상하단에 이만큼의 여백을 준다 + var paddingY = rect.Height * 0.15f; + var sigHeight = rect.Height - (paddingX * 2.0f); + var sigWidth = rect.Width / animstep; + + if (dir == eDirection.BottomToTop || dir == eDirection.TopToBottom) + { + paddingX = rect.Width * 0.15f; + paddingY = rect.Height / 10.0f; + sigWidth = rect.Width - (paddingX * 2.0f); + sigHeight = rect.Height / 4.5f; + } + List pts = new List(); + + //사각영역을 표시해준다. + //if (dir == eDirection.LeftToRight || dir == eDirection.RightToLeft) + //{ + // var rect2width = rect.Width / animstep; + // for (int i = 0; i < animstep; i++) + // { + // var rect2 = new RectangleF(rect.X + i * rect2width, rect.Y, rect2width, rect.Height); + // g.DrawRectangle(new Pen(Color.FromArgb(100, Color.Gray)), rect2.Left, rect2.Top, rect2.Width, rect2.Height); + // g.DrawString(i.ToString(), this.Font, Brushes.White, rect2.Left, rect2.Top); + // } + //} + //else + //{ + // var rect2width = rect.Height / animstep; + // for (int i = 0; i < animstep; i++) + // { + // var rect2 = new RectangleF(rect.X, rect.Y + i * rect2width, rect.Width, rect2width); + // g.DrawRectangle(new Pen(Color.FromArgb(100, Color.Gray)), rect2.Left, rect2.Top, rect2.Width, rect2.Height); + // g.DrawString(i.ToString(), this.Font, Brushes.White, rect2.Left, rect2.Top); + // } + //} + + + + var bX = rect.X + paddingX; + var bY = rect.Y + paddingY; + + if (dir == eDirection.LeftToRight) + { + var gridSize = rect.Width / animstep; + pts.Add(new PointF(rect.X + paddingX + (arrowindex * sigWidth), rect.Y + paddingX)); + pts.Add(new PointF(rect.X + paddingX + (arrowindex * sigWidth) + sigWidth, rect.Y + paddingX)); + pts.Add(new PointF(rect.X + paddingX + (arrowindex * sigWidth) + sigWidth * 2.0f, rect.Y + paddingX + sigHeight / 2.0f)); + pts.Add(new PointF(rect.X + paddingX + (arrowindex * sigWidth) + sigWidth, rect.Y + paddingX + sigHeight)); + pts.Add(new PointF(rect.X + paddingX + (arrowindex * sigWidth), rect.Y + paddingX + sigHeight)); + pts.Add(new PointF(rect.X + paddingX + (arrowindex * sigWidth) + sigWidth, rect.Y + paddingX + sigHeight / 2.0f)); + } + else if (dir == eDirection.RightToLeft) + { + var gridSize = rect.Width / animstep; + paddingY = rect.Height * 0.1f; //상,하 여백을 10%크기로 한다 + sigHeight = rect.Height - paddingY * 2.0f; + + bX = rect.X + ((animstep - 1) - arrowindex) * gridSize; + bY = rect.Y + paddingY; + + pts.Add(new PointF(bX, bY)); + pts.Add(new PointF(bX - gridSize, bY + sigHeight / 2.0f)); + pts.Add(new PointF(bX, bY + sigHeight)); + pts.Add(new PointF(bX + gridSize, bY + sigHeight)); + pts.Add(new PointF(bX, bY + sigHeight / 2.0f)); + pts.Add(new PointF(bX + gridSize, bY)); + } + else if (dir == eDirection.TopToBottom) + { + var gridSize = rect.Height / animstep; + paddingX = rect.Width * 0.2f; //상,하 여백을 10%크기로 한다 + sigWidth = rect.Width - paddingX * 2.0f; + + bX = rect.X + paddingX; + bY = rect.Y + (arrowindex + 1) * gridSize; + + + pts.Add(new PointF(bX, bY)); + pts.Add(new PointF(bX + (sigWidth / 2.0f), bY + gridSize)); + pts.Add(new PointF(bX + sigWidth, bY)); + pts.Add(new PointF(bX + sigWidth, bY - gridSize)); + pts.Add(new PointF(bX + (sigWidth / 2.0f), bY)); + pts.Add(new PointF(bX, bY - gridSize)); + + } + else if (dir == eDirection.BottomToTop) + { + var gridSize = rect.Height / animstep; + paddingX = rect.Width * 0.2f; //상,하 여백을 10%크기로 한다 + sigWidth = rect.Width - paddingX * 2.0f; + + bX = rect.X + paddingX; + bY = rect.Y + ((animstep - 1) - arrowindex) * gridSize; + + + pts.Add(new PointF(bX, bY)); + pts.Add(new PointF(bX + (sigWidth / 2.0f), bY - gridSize)); + pts.Add(new PointF(bX + sigWidth, bY)); + pts.Add(new PointF(bX + sigWidth, bY + gridSize)); + pts.Add(new PointF(bX + (sigWidth / 2.0f), bY)); + pts.Add(new PointF(bX, bY + gridSize)); + } + if (pts.Count > 0) + { + g.FillPolygon(new SolidBrush(Color.FromArgb(10, basecolor)), pts.ToArray()); + g.DrawPolygon(new Pen(Color.FromArgb(100, basecolor)), pts.ToArray()); + } + + //g.DrawString(arrowindex.ToString(), f, Brushes.Yellow, rect.Left, rect.Top - 20); + } + + } +} diff --git a/Handler/CapCleaningControl/EnumStruct.cs b/Handler/CapCleaningControl/EnumStruct.cs new file mode 100644 index 0000000..957388f --- /dev/null +++ b/Handler/CapCleaningControl/EnumStruct.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace UIControl +{ + public enum eMsgIcon + { + None, + Info, + Alert, + Error, + Help + } + public enum eButtonType + { + Rectangle = 0, + Circle, + } + public enum eDirection + { + LeftToRight, + RightToLeft, + BottomToTop, + TopToBottom + } + public partial class HMI + { + enum eAxis : byte + { + Y_P = 0, + Z_F, + Z_R, + X_F, + X_R, + } + public enum eScean : byte + { + Nomal = 0, + MotHome, + + xmove, + } + } +} diff --git a/Handler/CapCleaningControl/Events.cs b/Handler/CapCleaningControl/Events.cs new file mode 100644 index 0000000..f8071f0 --- /dev/null +++ b/Handler/CapCleaningControl/Events.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace UIControl +{ + public partial class HMI + { + public class MessageArgs : EventArgs + { + public string Message { get; set; } + public Boolean isError { get; set; } + public MessageArgs(string m, Boolean err) + { + this.Message = m; + this.isError = err; + } + } + + + public event EventHandler Message; + + } +} diff --git a/Handler/CapCleaningControl/HMI.cs b/Handler/CapCleaningControl/HMI.cs new file mode 100644 index 0000000..0537a5f --- /dev/null +++ b/Handler/CapCleaningControl/HMI.cs @@ -0,0 +1,1682 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Linq; +using System.Windows.Forms; +using AR; + +namespace UIControl +{ + public partial class HMI : System.Windows.Forms.Control + { + arDev.DIO.IDIO dio = null; + arDev.MOT.IMotion mot = null; + + #region "Variable - Private" + Timer tm; + Boolean _ardebugmode = false; + eScean _scean = eScean.Nomal; + //기타 내부 변수 + int AnimationStepConv = 30; //컨베어 이동 애니메이션 최대 값 + //int AnimationStepPort = 9; //포트 이동 애니메이션 최대 값 + Boolean bRemakeRect = true; //이값이 활성화되면 각 영역을 다시 그리게 된다 + DateTime updatetime = DateTime.Now; //화면을 다시 그린 시간 + Brush BRPortBg = new SolidBrush(Color.FromArgb(50, Color.DimGray)); + Brush BRDetectDn = new SolidBrush(Color.FromArgb(50, Color.DimGray)); + StringFormat sfCenter; + StringFormat sfLeft = new StringFormat { Alignment = StringAlignment.Near, LineAlignment = StringAlignment.Center }; + SolidBrush brVacOff = new SolidBrush(Color.FromArgb(150, Color.White)); + SolidBrush brVacOn = new SolidBrush(Color.FromArgb(200, Color.Lime)); + Font arFont_MotPosName { get; set; } + + Pen penVacOn = new Pen(Color.Red, 5); + Pen penVacOff = new Pen(Color.Black, 5); + + //영역(큰 그림?) (bRemakeRect 에 의 해 생성된다) + RectangleF rect_main = RectangleF.Empty; + // RectangleF rect_frontShuttle = RectangleF.Empty; + //RectangleF rect_rearShuttle = RectangleF.Empty; + RectangleF rect_conveyor = RectangleF.Empty; + RectangleF rect_picker = RectangleF.Empty; + RectangleF rect_printl = RectangleF.Empty; + RectangleF rect_printr = RectangleF.Empty; + + + //영역(피커) + RectangleF rect_picker_left = RectangleF.Empty; + RectangleF rect_picker_front_vac1 = RectangleF.Empty; + RectangleF rect_picker_front_vac2 = RectangleF.Empty; + RectangleF rect_picker_front_vac3 = RectangleF.Empty; + RectangleF rect_picker_front_vac4 = RectangleF.Empty; + + //X축 포트 (F-L:0, F-R:1, R-L:2, R-R:3 + //RectangleF[] rect_port = new RectangleF[4]; + RectangleF[] rect_zone = new RectangleF[11]; + + //CIcon[] icons = new CIcon[7]; + List Buttons = new List(); + List menuButtons = new List(); + + #endregion + + #region "Variable - Public" + // public double[] arMotorPosition = new double[] { 0, 0, 0, 0, 0 }; + public int ConveyorRunPoint = 1; //컨베어 모터 이동시 이동 화살표의 위치값(내부 타이머에의해 증가함) + public double arMcLengthW = 1460; + public double arMcLengthH = 1350;// + public Boolean arJoystickOn = false; + public int arJoystickGroup = 0; + public bool CVLeftBusy = false; + public bool CVLeftReady = false; + public bool CVRightBusy = false; + public bool CVRightReady = false; + #endregion + + #region "Property" + + public int arCountV0 { get; set; } + public int arCountV1 { get; set; } + public int arCountV2 { get; set; } + + public int arCountPrint0 { get; set; } + public int arCountPrint1 { get; set; } + + public Boolean arPortLItemOn { get; set; } + public Boolean arPortRItemOn { get; set; } + + public Boolean arPLItemON { get; set; } + public Boolean arPRItemON { get; set; } + public Boolean arMagnet0 { get; set; } + public Boolean arMagnet1 { get; set; } + public Boolean arMagnet2 { get; set; } + public Boolean arPickerSafeZone { get; set; } + + private Padding _padding = new Padding(0); + public new Padding Padding { get { return _padding; } set { _padding = value; bRemakeRect = true; this.Invalidate(); } } + + /// + /// 현재 메뉴가 표시되어있는가? + /// + public Boolean HasPopupMenu { get; private set; } + /// + /// 현재표시된 메뉴는 사용자의 입력을 반드시 받아야 하는가? + /// + public Boolean PopupMenuRequireInput { get; private set; } + public Font arFont_PortMessage { get; set; } + + + public eScean Scean { get { return _scean; } set { _scean = value; bRemakeRect = true; this.Invalidate(); } } + + //컨베이어에 설치된 자재 감지 센서 + public Boolean[] arDI_Cv_Detect { get; set; } + //컨베이어 입구 안전 센서 + public Boolean arInitMOT { get; set; } + public Boolean arJobEND { get; set; } + public Boolean arLowDiskSpace { get; set; } //용량 부족 메세지 여부 + public double arFreespace { get; set; } //남은 디스크 용량 비율 + + public Boolean arFGVision0RDY { get; set; } + public Boolean arFGVision1RDY { get; set; } + public Boolean arFGVision2RDY { get; set; } + + public Boolean arFGVision0END { get; set; } + public Boolean arFGVision1END { get; set; } + public Boolean arFGVision2END { get; set; } + + public Boolean arFGPrinter0RDY { get; set; } + public Boolean arFGPrinter1RDY { get; set; } + public Boolean arFGPrinter2RDY { get; set; } + + public Boolean arFGPrinter0END { get; set; } + public Boolean arFGPrinter1END { get; set; } + public Boolean arFGPrinter2END { get; set; } + + + public Boolean arDI_SaftyOk { get; set; } + + public string arMotPosNamePX { get; set; } + public string arMotPosNamePZ { get; set; } + public string arMotPosNameLM { get; set; } + public string arMotPosNameLZ { get; set; } + public string arMotPosNameRM { get; set; } + public string arMotPosNameRZ { get; set; } + + public Boolean arMotILockPKX { get; set; } + public Boolean arMotILockPKZ { get; set; } + public Boolean arMotILockPLM { get; set; } + public Boolean arMotILockPLZ { get; set; } + public Boolean arMotILockPRM { get; set; } + public Boolean arMotILockPRZ { get; set; } + + public Boolean arMotILockPRL { get; set; } + public Boolean arMotILockPRR { get; set; } + public Boolean arMotILockVS0 { get; set; } + public Boolean arMotILockVS1 { get; set; } + public Boolean arMotILockVS2 { get; set; } + public Boolean arMotILockCVL { get; set; } + public Boolean arMotILockCVR { get; set; } + + public Boolean PrintLPICK { get; set; } + public Boolean PrintRPICK { get; set; } + + public Boolean L_PICK_FW { get; set; } + public Boolean L_PICK_BW { get; set; } + public Boolean R_PICK_FW { get; set; } + public Boolean R_PICK_BW { get; set; } + + public Boolean[] arMOT_LimUp = new bool[] { false, false, false, false, false, false, false }; + public Boolean[] arMOT_LimDn = new bool[] { false, false, false, false, false, false, false }; + public Boolean[] arMOT_Origin = new bool[] { false, false, false, false, false, false, false }; + public Boolean[] arMOT_Alm = new bool[] { false, false, false, false, false, false, false }; + public Boolean[] arMOT_HSet = new bool[] { false, false, false, false, false, false, false }; + public Boolean[] arMOT_SVOn = new bool[] { false, false, false, false, false, false, false }; + + public Boolean arFlag_Minspace { get; set; } + + public byte arUnloaderSeq { get; set; } + public Boolean arFlag_UnloaderBusy { get; set; } + public Boolean arFlag_UnloaderErr { get; set; } + public Boolean arConn_REM { get; set; } + + + public Boolean arFG_RDY_YP_FPICKON { get; set; } + public Boolean arFG_RDY_YP_FPICKOF { get; set; } + public Boolean arFG_RDY_YP_RPICKON { get; set; } + public Boolean arFG_RDY_YP_RPICKOF { get; set; } + + public Boolean arFG_CMD_YP_FPICKON { get; set; } + //public Boolean arFG_CMD_YP_FPICKOF { get; set; } + public Boolean arFG_CMD_YP_RPICKON { get; set; } + //public Boolean arFG_CMD_YP_RPICKOF { get; set; } + + + + + //비상정지 센서 상태 + public Boolean arDI_Emergency { get; set; } + + public Boolean arDIAir { get; set; } + + public Boolean arConn_MOT { get; set; } + public Boolean arConn_DIO { get; set; } + public Boolean arAIRDetect { get; set; } + public Boolean arConn_BCD { get; set; } + public Boolean arConn_PLC { get; set; } + + public int arLastDetectIndex { get; set; } + + + public Boolean arDebugMode { get { return _ardebugmode; } set { this._ardebugmode = value; Invalidate(); } } + + public CPort[] arVar_Port { get; set; } + public CPicker[] arVar_Picker { get; set; } + + public Boolean arConvRun { get; set; } + + + public Boolean arIsRunning { get; set; } + + + private List zitem = new List(); + public long[] zonetime = new long[11]; + + public Font arFont_count { get; set; } + public Font arFont_picker { get; set; } + + public double arMotorLengthY { get; set; } + public double arMotorLengthZL { get; set; } + public double arMotorLengthZR { get; set; } + + private double[] _armotpos = new double[] { 0, 0, 0, 0, 0, 0, 0 }; + public double[] arMotorPosition { get { return _armotpos; } set { _armotpos = value; } } + private double[] _arhomepgoress = new double[] { 0, 0, 0, 0, 0, 0, 0 }; + public double[] arHomeProgress { get { return _arhomepgoress; } set { _arhomepgoress = value; } } + + private CMenu[] _menus = null; + public CMenu[] arMenus { get { return _menus; } set { _menus = value; this.Invalidate(); } } + + #endregion + + public Boolean PickerSafezone = false; + public HMI() + { + // Set Optimized Double Buffer to reduce flickering + this.SetStyle(ControlStyles.UserPaint, true); + this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); + this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); + this.SetStyle(ControlStyles.SupportsTransparentBackColor, true); + this.SetStyle(ControlStyles.ContainerControl, false); + this.SetStyle(ControlStyles.Selectable, true); + + // Redraw when resized + this.SetStyle(ControlStyles.ResizeRedraw, true); + + this.Resize += Loader_Resize; + + sfCenter = new StringFormat(); + sfCenter.Alignment = StringAlignment.Center; + sfCenter.LineAlignment = StringAlignment.Center; + + + tm = new Timer(); + tm.Interval = 50; //10frame; + tm.Tick += Tm_Tick; + + arLastDetectIndex = -1; + arFont_PortMessage = new Font("Consolas", 11, FontStyle.Bold); + arFont_picker = new Font("Arial", 10, FontStyle.Bold); + arFont_MotPosName = new Font("Consolas", 10, FontStyle.Bold); + + arUnloaderSeq = 0; + arMotorLengthY = 400; + arMotorLengthZL = 580; + arMotorLengthZR = 590; + + arDI_Cv_Detect = new bool[8]; + for (int i = 0; i < arDI_Cv_Detect.Length; i++) + arDI_Cv_Detect[i] = false; + + bool designMode = (LicenseManager.UsageMode == LicenseUsageMode.Designtime); + if (designMode == false) tm.Start(); + + arFont_count = new Font("Consolas", 30, FontStyle.Bold); + + //기본수량설정됨 + arVar_Port = new CPort[3]; + arVar_Picker = new CPicker[1]; + + for (int i = 0; i < rect_zone.Length; i++) + rect_zone[i] = RectangleF.Empty; + + for (int i = 0; i < zonetime.Length; i++) + zonetime[i] = 0; + + //미리 10개를 생성한다. 슬롯에 10개이상 생기기 않는다. + zitem = new List(10); + for (int i = 0; i < zitem.Count; i++) + zitem[i] = new CItem(); + } + + + public void ClearMessage() + { + + } + + private List lkitemsF = new List(); + private List lkitemsR = new List(); + + + + #region "Common Data & Device" + + DateTime UpdateTime = DateTime.Now.AddSeconds(-1); + + //public void SetFLAG(arUtil.IInterLock dio_) + //{ + // this.flag = dio_; + // this.flag.ValueChanged += Flag_ValueChanged; + //} + public void SetDIO(arDev.DIO.IDIO dio_) + { + this.dio = dio_; + this.dio.IOValueChanged += Dio_IOValueChanged; + } + public void SetMOT(arDev.MOT.IMotion dio_) + { + this.mot = dio_; + this.mot.HomeStatusChanged += Mot_HomeStatusChanged; + this.mot.PositionChanged += Mot_PositionChanged; + this.mot.StatusChanged += Mot_StatusChanged; + } + private void Dio_IOValueChanged(object sender, arDev.DIO.IOValueEventArgs e) + { + var ts = DateTime.Now - UpdateTime; + if (ts.TotalMilliseconds < 500) return; + else UpdateTime = DateTime.Now; + this.Invalidate(); + } + + private void Mot_StatusChanged(object sender, arDev.MOT.StatusChangeEventArags e) + { + var ts = DateTime.Now - UpdateTime; + if (ts.TotalMilliseconds < 500) return; + else UpdateTime = DateTime.Now; + this.Invalidate(); + } + + private void Mot_PositionChanged(object sender, arDev.MOT.PositionChangeEventArgs e) + { + var ts = DateTime.Now - UpdateTime; + if (ts.TotalMilliseconds < 500) return; + else UpdateTime = DateTime.Now; + this.Invalidate(); + } + + private void Mot_HomeStatusChanged(object sender, arDev.MOT.HomeStatusChangeEventArgs e) + { + var ts = DateTime.Now - UpdateTime; + if (ts.TotalMilliseconds < 500) return; + else UpdateTime = DateTime.Now; + this.Invalidate(); + } + + //private void Flag_ValueChanged(object sender, arUtil.InterfaceValueEventArgs e) + //{ + // var ts = DateTime.Now - UpdateTime; + // if (ts.TotalMilliseconds < 500) return; + // else UpdateTime = DateTime.Now; + // this.Invalidate(); + //} + + public Boolean MotionHome { get; set; } + + bool GetBOOL(eVarBool idx) + { + return VAR.BOOL?[(int)idx] ?? false; + } + string GetSTR(eVarString idx) + { + return VAR.STR?[(int)idx] ?? string.Empty; + } + + bool GetDOValue(eDOName pin) + { + return dio?.GetDOValue((int)pin) ?? false; + } + bool GetDIValue(eDIName pin) + { + return dio?.GetDIValue((int)pin) ?? false; + } + + #endregion + + public void ClearLockItem(int idx) + { + if (idx == 0) + { + lock (lkitemsF) + lkitemsF.Clear(); + } + else + { + lock (lkitemsR) + lkitemsR.Clear(); + } + } + public void AddLockItem(int idx, params string[] values) + { + if (idx == 0) + { + lock (lkitemsF) + { + foreach (var value in values) + { + if (lkitemsF.Contains(value) == false) + lkitemsF.Add(value); + } + } + } + else + { + lock (lkitemsR) + { + foreach (var value in values) + { + if (lkitemsR.Contains(value) == false) + lkitemsR.Add(value); + } + } + } + } + public void RemoveLockItem(int idx, params string[] values) + { + if (idx == 0) + { + lock (lkitemsF) + { + foreach (var value in values) + { + if (lkitemsF.Contains(value) == true) + lkitemsF.Remove(value); + } + } + } + else + { + lock (lkitemsR) + { + foreach (var value in values) + { + if (lkitemsR.Contains(value) == true) + lkitemsR.Remove(value); + } + } + } + + } + + protected override void OnMouseMove(MouseEventArgs e) + { + base.OnMouseMove(e); + //if (this.icons == null || icons.Length < 1) return; + + //var item = this.icons.Where(t => t.Rect.Contains(e.Location)).FirstOrDefault(); + + ////선택된 것이 잇다면 모두 해제를 해준다. + //icons.Where(t => t.Focus == true).ToList().ForEach(t => t.Focus = false); + + + //if (item != null) + //{ + // item.Focus = true; + // this.Cursor = Cursors.Hand; + //} + //else + //{ + // this.Cursor = Cursors.Arrow; + //} + } + + public class ZoneItemClickEventargs : EventArgs + { + public CItem item { get; private set; } + public ZoneItemClickEventargs(CItem item_) + { + this.item = item_; + } + } + public class IconClickEventargs : EventArgs + { + public CIcon item { get; private set; } + public IconClickEventargs(CIcon item_) + { + this.item = item_; + } + } + public class MenuItemClickEventargs : EventArgs + { + public CMenuButton item { get; private set; } + public MenuItemClickEventargs(CMenuButton item_) + { + this.item = item_; + } + } + public event EventHandler ButtonClick; + public event EventHandler IConClick; + public event EventHandler ZoneItemClick; + protected override void OnMouseClick(MouseEventArgs e) + { + base.OnMouseClick(e); + + if (e.Button == MouseButtons.Left) + { + //var item = this.icons.Where(t => t.Rect.Contains(e.Location)).FirstOrDefault(); + //if (item != null) + //{ + // //다른 메뉴가 선택되어잇다면 동작하지 않게 한다. + // if (IConClick != null) + // IConClick(this, new IconClickEventargs(item)); + //} + + var zitem = this.zitem.Where(t => t.Rect.Contains(e.Location)).FirstOrDefault(); + if (zitem != null) + { + //특정 존의 아이템을 선택했다 + if (ZoneItemClick != null) + ZoneItemClick(this, new ZoneItemClickEventargs(zitem)); + + } + + //메뉴의해 생성된 버튼 + var zbbut = this.menuButtons.Where(t => t.Rect.Contains(e.Location)).FirstOrDefault(); + if (zbbut != null) + { + //특정 존의 아이템을 선택했다 + if (ButtonClick != null) + ButtonClick(this, new MenuItemClickEventargs(zbbut)); + + } + + //아이콘 + var zbut = this.Buttons.Where(t => t.Rect.Contains(e.Location)).FirstOrDefault(); + if (zbut != null) + { + //특정 존의 아이템을 선택했다 + if (ButtonClick != null) + ButtonClick(this, new MenuItemClickEventargs(zbut)); + } + + } + } + void Loader_Resize(object sender, EventArgs e) + { + bRemakeRect = true; + } + + + public void RemakeRect() + { + bRemakeRect = true; + } + + /// + /// 각 영역을 현재 크기대비하여 재계산 한다 + /// + void makeRect_Normal() + { + + rect_main = new RectangleF( + DisplayRectangle.Left + Padding.Left, + DisplayRectangle.Top + Padding.Top, + DisplayRectangle.Width - Padding.Left - Padding.Right, + DisplayRectangle.Height - Padding.Top - Padding.Bottom); + + //X축 모션(셔틀) 표시 + var xPos1 = rect_main.Left + (rect_main.Width * 0.175); + var xPos2 = rect_main.Right - xPos1; + var yposR = rect_main.Height * 0.15; + var yposF = rect_main.Height * 0.85; + var h0p5 = rect_main.Height * 0.03; + var w0p5 = (rect_main.Width * 0.035) * ((rect_main.Height * 1.0) / rect_main.Width); + + //var conv_height = rect_main.Height * 0.3; + + var cx = (float)(rect_main.Top + (rect_main.Width / 2.0)); + var cy = (float)(rect_main.Top + (rect_main.Height / 2.0)); + + + var conv_height = CvtMMtoPX_H(350, 0); //컨베이어 높이 + var conv_width = CvtMMtoPX_W(arMcLengthW, 0); //컨베어이어너비는 장비 너비와 같다 + + rect_conveyor = new RectangleF(rect_main.Left, + (float)(rect_main.Top + (rect_main.Height - conv_height) / 2.0f), + (float)conv_width, + (float)conv_height); + + var h10p = rect_main.Height * 0.03; + + + //프론트셔틀의 영역(가동 영역) - 아래서 450mm 떨어진곳 + var xAxisLengthMM = arMcLengthW - 200; // 컨베어 길이에서 좌우 100mm 씩 리밋센서가 있다 + var xAxisLengthPX = CvtMMtoPX_W(xAxisLengthMM, rect_conveyor.Left); + //rect_frontShuttle = new RectangleF( + // (float)(CvtMMtoPX_W(100, rect_conveyor.Left)), + // (float)(CvtMMtoPX_H(100, rect_main.Top)), + // (float)xAxisLengthPX, + // (float)(CvtMMtoPX_H(20, 0))); + + + //세로축 총길이 1400mm Y축 모터는 양끝에 100mm 의 여유가 있으며, Y축 + + var pickWidth = rect_main.Width * 0.6f; + var pickerX = rect_main.Width / 2.0f;// CvtMMtoPX_W(750, rect_conveyor.Left); + + var YAxisLenWMM = arMcLengthW - 100 * 2; + var YAxisLenHMM = 100;// + var yAxisLenWPx = CvtMMtoPX_W(YAxisLenWMM, 0); //너비 + var yAxisLenHPx = CvtMMtoPX_H(YAxisLenHMM, 0); //길이 + var yAxisX = CvtMMtoPX_W(100, rect_main.Left); + var yAxisY = CvtMMtoPX_H(200, rect_main.Top); + + rect_picker = new RectangleF( + (float)(yAxisX), + (float)(yAxisY), + (float)(yAxisLenWPx), + (float)(yAxisLenHPx) + ); + + rect_printl = new RectangleF(rect_main.Left + 30, rect_picker.Bottom + 30, 30, rect_main.Height * 0.25f); + rect_printr = new RectangleF(rect_main.Right - rect_printl.Width - rect_printl.Left, rect_printl.Top, rect_printl.Width, rect_printl.Height); + + + //Y축 피커 관련 세부 영역 설정 (VAC 와 원) + + //전체영역의 80% 영역에 Y-로봇의 축을 그린다. + //var motorMax = 400; //전체 가동 길이 400mm + RectangleF rect = rect_picker; + var MotPosPx = rect.Left + rect.Width * (this.arMotorPosition[0] / (this.arMotorLengthY * 1.0f)); + cx = rect.Left + rect.Width / 2.0f; + + //상(Rear), 하(Front)로 영역을 그린다 + var port_height = rect.Height * 0.25f; + var port_width = port_height; + //;// var port_width = rect.Width * 3f; + //port_width = port_height; + var port_space = CvtMMtoPX_H(350 / 2.0f, 0); + var port_spacex = CvtMMtoPX_W(10, 0); ; + + var PickerSizeW = CvtMMtoPX_W(200, 0);// (float)(Math.Max(CvtMMtoPX_W(150, 0), CvtMMtoPX_H(15, 0))); + var PickerSizeH = PickerSizeW;// CvtMMtoPX_H(130, 0);//(float)(Math.Max(CvtMMtoPX_W(150, 0), CvtMMtoPX_H(15, 0))); + var PickerSpaceW = CvtMMtoPX_H(100, 0); + + + rect_picker_left = new RectangleF( + (float)(MotPosPx - PickerSpaceW), + (float)(rect.Top + 50), + (float)PickerSizeW, + (float)PickerSizeH); + + + var pointoffset = 5; + + + //진공표시영역 + rect_picker_front_vac1 = new RectangleF( + (float)rect_picker_left.Left + pointoffset, + (float)rect_picker_left.Top + pointoffset, + (float)rect_picker_left.Width * 0.2f, + (float)rect_picker_left.Height * 0.2f); + rect_picker_front_vac2 = new RectangleF( + (float)rect_picker_left.Right - rect_picker_front_vac1.Width - pointoffset, + (float)rect_picker_front_vac1.Top, + (float)rect_picker_front_vac1.Width, + (float)rect_picker_front_vac1.Height); + rect_picker_front_vac3 = new RectangleF( + (float)rect_picker_left.Left + pointoffset, + (float)rect_picker_left.Bottom - rect_picker_front_vac1.Height - pointoffset, + (float)rect_picker_front_vac1.Width, + (float)rect_picker_front_vac1.Height); + rect_picker_front_vac4 = new RectangleF( + (float)rect_picker_left.Right - rect_picker_front_vac1.Width - pointoffset, + (float)rect_picker_left.Bottom - rect_picker_front_vac1.Height - pointoffset, + (float)rect_picker_front_vac1.Width, + (float)rect_picker_front_vac1.Height); + + + //각 존의 영역 확인 + + //컨베어의 릴감지센서 위치를 표시한다 + var senseW = rect_conveyor.Width * 0.02f; + var senseH = rect_conveyor.Height * 0.05f; + var slist = new double[] { 20, 340, 550, 890, 1110, 1440 };// new double[] { 0.02, 0.25, 0.4, 0.6, 0.75, 0.9 }; //센서의 위치정보(컨베어좌측기준) + + + + //센서가 포함된 존의 영역을 생성한다 + for (int i = 0; i < slist.Length; i++) + { + //선으로 영역을 표시해준다. + var PosMM = rect_conveyor.Width * (slist[i] / arMcLengthW); + var x = (float)(rect_conveyor.Left + PosMM); + var rx = x - senseW / 2.0f; + rect_zone[i * 2] = new RectangleF(rx, rect_conveyor.Top, senseW, rect_conveyor.Height); + } + + var arraylis = new int[] { 1, 3, 5, 7, 9 }; + var zterm = 4; + for (int i = 0; i < arraylis.Length; i++) + { + var idx = arraylis[i]; + rect_zone[idx] = new RectangleF( + rect_zone[idx - 1].Right + zterm, + rect_zone[idx - 1].Top, + rect_zone[idx + 1].Left - rect_zone[idx - 1].Right - zterm * 2, + rect_zone[idx - 1].Height); + } + + //입출력포트의 영역을 다시 계산한다 + var portW = (int)(rect_main.Width * 0.175f); + var portH = (int)(rect_main.Height * 0.25f); + var portPad = (int)(rect_main.Width / 7f); + var MarginX = (int)((rect_main.Width - portW * 3 - portPad * 2) / 2.0); + var MarginY = (int)(rect_main.Height - portH - (portPad / 2f)); + + for (int i = 0; i < arVar_Port.Length; i++) + { + arVar_Port[i].Rect = new Rectangle( + (int)rect_main.Left + MarginX + (i * portW) + (i * portPad), + (int)rect_main.Top + MarginY, + portW, portH); + zitem.Add(new CItem + { + Rect = arVar_Port[i].Rect.toRect(), + index = i, + Tag = $"PORT{i}", + }); + + } + + } + void makeRect_xmove() + { + rect_main = new RectangleF( + DisplayRectangle.Left + DisplayRectangle.Width * 0.05f, + DisplayRectangle.Top + DisplayRectangle.Height * 0.05f, + DisplayRectangle.Width * 0.9f, + DisplayRectangle.Height * 0.9f); + + //화면에 꽉차도록 전체 영역을 할당한다. + var cx = rect_main.Left + rect_main.Width / 2.0f; + var cy = rect_main.Top + rect_main.Height / 2.0f; + + var padding = (int)(rect_main.Width * 0.03); + + var width = (int)((cx - rect_main.Left) - padding * 2); + var height = (int)((cy - rect_main.Top) - padding * 2); + arVar_Port[0].Rect = new Rectangle( + (int)rect_main.Left + padding, + (int)cy + padding, + width, height); + + arVar_Port[1].Rect = new Rectangle( + (int)cx + padding, + (int)cy + padding, + width, height); + + + arVar_Port[2].Rect = new Rectangle( + (int)(rect_main.Left + (rect_main.Width - width) / 2f), + (int)rect_main.Top + padding, + width, height); + + } + void makeRect_MotHome() + { + rect_main = new RectangleF( + DisplayRectangle.Left + DisplayRectangle.Width * 0.05f, + DisplayRectangle.Top + DisplayRectangle.Height * 0.05f, + DisplayRectangle.Width * 0.9f, + DisplayRectangle.Height * 0.9f); + } + + double CvtMMtoPX_W(double PosMM, double startPos) + { + //컨베어 기준으로 값을 반환한ㄷ. + return startPos + rect_main.Width * (PosMM / arMcLengthW); + } + double CvtMMtoPX_H(double PosMM, double startPos) + { + //컨베어 기준으로 값을 반환한ㄷ. + return startPos + rect_main.Height * (PosMM / arMcLengthH); + } + + #region "Menu Method" + public void ClearMenu() + { + _menus = null; + this.Invalidate(); + } + public void AddMenu(CMenu menu) + { + var curCnt = 0; + if (this._menus != null) curCnt = this._menus.Length; + Array.Resize(ref _menus, curCnt + 1); + _menus[curCnt] = menu; + this.Invalidate(); + } + + public void DelMenu(CMenu menu) + { + List newlist = new List(); + for (int i = 0; i < _menus.Length; i++) + { + if (_menus[i] != menu) newlist.Add(_menus[i]); + } + this._menus = newlist.ToArray(); + this.Invalidate(); + } + + public void DelMenu(int idx) + { + List newlist = new List(); + for (int i = 0; i < _menus.Length; i++) + { + if (i != idx) newlist.Add(_menus[i]); + } + this._menus = newlist.ToArray(); + this.Invalidate(); + } + public void DelMenu() + { + //제거할 아이템이 없다 + if (_menus == null || _menus.Length < 1) return; + + if (_menus.Length == 1) _menus = null; + else + { + //마지막요소를 제거 해주낟 + Array.Resize(ref _menus, _menus.Length - 1); + + } + + this.Invalidate(); + } + #endregion + + protected override void OnPaint(PaintEventArgs e) + { + e.Graphics.CompositingQuality = CompositingQuality.HighQuality; + e.Graphics.InterpolationMode = InterpolationMode.High; + e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + + base.OnPaint(e); + + if (bRemakeRect) + { + this.zitem.Clear(); + if (Scean == eScean.Nomal) makeRect_Normal(); + else if (Scean == eScean.MotHome) makeRect_MotHome(); + else if (Scean == eScean.xmove) makeRect_xmove(); + bRemakeRect = false; + } + + if (this.Scean == eScean.Nomal) Scean_Normal(e.Graphics); + else if (this.Scean == eScean.MotHome) Scean_MotHome(e.Graphics); + else if (this.Scean == eScean.xmove) Scean_XMove(e.Graphics); + + + + //조이스틱표시 + if (arJoystickOn) + { + var joyname = string.Empty; + if (arJoystickGroup == 0) joyname = "PICKER X/Z"; + else if (arJoystickGroup == 1) joyname = "LEFT Y/Z"; + else if (arJoystickGroup == 2) joyname = "RIGHT Y/Z"; + else if (arJoystickGroup == 3) joyname = "THETA"; + else joyname = arJoystickGroup.ToString(); + + + var joystr = "JOYSTICK(" + joyname + ")"; + var joyfsize = e.Graphics.MeasureString(joystr, this.Font); + var joyrect = new Rectangle(0, 0, (int)(joyfsize.Width * 1.1), (int)(joyfsize.Height * 1.1)); + e.Graphics.FillRectangle(Brushes.Black, joyrect); + e.Graphics.DrawString(joystr, this.Font, + Brushes.Gold, + joyrect, + new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + e.Graphics.DrawRect(joyrect, Color.Black, 3); + } + } + + /// + /// Z축이 아이템을 내려놓은 시간(연속으로 놓는 증상이 발생하여, 일단 이것으로 2초이상 빠르게 놓는일이 없도록 한다) + /// + public DateTime LastDropTime = DateTime.Now; + + + void RaiseMessage(string m, Boolean iserr, params object[] args) + { + if (args != null && args.Length > 0) m = string.Format(m, args); + if (Message != null) Message(this, new MessageArgs(m, iserr)); + } + + /// + /// 아이템을 DROP해도 되는가? 존 3번 부터 아이템이 존재하면 drop 불가능으로 한다 + /// + + void Scean_XMove(Graphics g) + { + //g.DrawRect(arVar_Port[0].Rect, Color.White, 3); + Pen p = new Pen(Color.White, 5); + + var pts = new List(); + pts.Add(new PointF(arVar_Port[0].Rect.Right, arVar_Port[0].Rect.Top)); + pts.Add(new PointF(arVar_Port[0].Rect.Left, arVar_Port[0].Rect.Bottom - arVar_Port[0].Rect.Height / 2f)); + pts.Add(new PointF(arVar_Port[0].Rect.Right, arVar_Port[0].Rect.Bottom)); + g.FillPolygon(Brushes.Blue, pts.ToArray()); + g.DrawPolygon(p, pts.ToArray()); + g.DrawString("[START]\nLEFT", this.Font, Brushes.Gold, arVar_Port[0].Rect, new StringFormat { Alignment = StringAlignment.Far, LineAlignment = StringAlignment.Center }); + + pts.Clear(); + pts.Add(new PointF(arVar_Port[1].Rect.Left, arVar_Port[1].Rect.Top)); + pts.Add(new PointF(arVar_Port[1].Rect.Right, arVar_Port[1].Rect.Bottom - arVar_Port[1].Rect.Height / 2f)); + pts.Add(new PointF(arVar_Port[1].Rect.Left, arVar_Port[1].Rect.Bottom)); + g.FillPolygon(Brushes.Brown, pts.ToArray()); + g.DrawPolygon(p, pts.ToArray()); + g.DrawString("[STOP]\nRIGHT", this.Font, Brushes.Gold, arVar_Port[1].Rect, new StringFormat { Alignment = StringAlignment.Near, LineAlignment = StringAlignment.Center }); + + if (arPickerSafeZone) + g.FillEllipse(Brushes.Lime, arVar_Port[2].Rect); + else + g.FillEllipse(Brushes.Tomato, arVar_Port[2].Rect); + g.DrawEllipse(new Pen(Color.White, 3), arVar_Port[2].Rect); + g.DrawString("PICKER\nSAFTY\n" + (arPickerSafeZone ? "ON" : "OFF"), this.Font, Brushes.Black, arVar_Port[2].Rect, new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + + + //중앙에 메세지를 표시한다. + var cpad = rect_main.Width * 0.1f; + var cheigh = rect_main.Height * 0.20f; + var crect = new RectangleF(rect_main.Left + cpad, rect_main.Top + (rect_main.Height - cheigh) / 2f, rect_main.Width - cpad * 2f, cheigh); + g.FillRectangle(new SolidBrush(Color.FromArgb(20, 20, 20)), crect); + + if (arPickerSafeZone) + g.DrawString("홈 검색이 가능합니다", new Font("맑은 고딕", 20, FontStyle.Bold), Brushes.Lime, crect, new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + else + { + if (MessageOn) + g.DrawString("피커를 움직여 안전위치로 이동하세요", new Font("맑은 고딕", 12, FontStyle.Bold), Brushes.Red, crect, new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + else + g.DrawString("피커를 움직여 안전위치로 이동하세요", new Font("맑은 고딕", 12, FontStyle.Bold), Brushes.White, crect, new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + } + + g.DrawRect(crect, Color.White, 5); + p.Dispose(); + var ts = DateTime.Now - ScreenUpdateTime; + if (ts.TotalMilliseconds >= 200) + { + MessageOn = !MessageOn; + ScreenUpdateTime = DateTime.Now; + } + + } + + DateTime ScreenUpdateTime = DateTime.Now; + Boolean MessageOn = false; + + + void Scean_MotHome(Graphics g) + { + //g.DrawString("mot home", this.Font, Brushes.Black, 100, 100); + g.DrawRectangle(new Pen(Color.SteelBlue, 10), this.rect_main.Left, rect_main.Top, rect_main.Width, rect_main.Height); + Font f = new Font(this.Font.Name, 20f, FontStyle.Bold); + + var titleSize = g.MeasureString("HOME", f); + + var rectTitle = new RectangleF( + rect_main.Left, + rect_main.Top + 10, + rect_main.Width, + titleSize.Height * 1.2f); + + g.DrawString("MOTION HOME", f, Brushes.White, rectTitle, sfCenter); ; + // g.DrawRectangle(Pens.Red, rectTitle.Left, rectTitle.Top, rectTitle.Width, rectTitle.Height); + + var rectBody = new RectangleF( + rect_main.Left + 10, + rectTitle.Bottom + 10, + rect_main.Width - 20, + rect_main.Height - rectTitle.Height - 10 - 20); + + //g.DrawRectangle(Pens.White, rectBody.Left, rectBody.Top, rectBody.Width, rectBody.Height); + + + + var rectT = new Rectangle( + (int)(rectBody.Left + 20), + (int)(rectBody.Top + 30), + (int)(rectBody.Width * 0.3f), + (int)(rectBody.Height * 0.07)); + + var rectXF = new Rectangle( + (int)(rectT.Right + 20), + (int)(rectBody.Top + 30), + (int)(rectBody.Width - rectT.Width - rectT.Left - 10), + (int)(rectBody.Height * 0.07)); + + //g.DrawRect(rectT, Color.White, 1); + //g.DrawRect(rectXF, Color.Red, 1); + + + var titles = new string[] { "[0] PICKER-Y", "[1] PICKER-Z", "[2] PRINTL-Y", "[3] PRINTL-Z", "[4] PRINTR-Y", "[5] PRINTR-Z", "[6] ANGLE" }; + for (int i = 0; i < titles.Length; i++) + { + var perc = arHomeProgress[i]; + var title = titles[i]; + var offsetY = (rectBody.Height * 0.12f); + + //0번은 처리하지 않음 + if (i > 0) + { + rectXF.Offset(0, (int)offsetY); + rectT.Offset(0, (int)offsetY); + } + + + //g.DrawRectangle(Pens.Yellow, rectT.Left, rectT.Top, rectT.Width, rectT.Height); + + using (Font f2 = new Font(this.Font.Name, 10f, FontStyle.Bold)) + { + g.DrawString("* " + title, f2, Brushes.Lime, rectT, sfLeft); + } + + LinearGradientBrush brProgr = new LinearGradientBrush(rectXF, Color.Gold, Color.Yellow, LinearGradientMode.Vertical); + var rectXF_P = new Rectangle(rectXF.Left, rectXF.Top, (int)(rectXF.Width * (perc / 100.0)), rectXF.Height); + g.FillRectangle(brProgr, rectXF_P); + g.DrawRectangle(Pens.Gray, rectXF); + brProgr.Dispose(); + } + + + + + + f.Dispose(); + + } + + void Scean_Normal(Graphics g) + { + + + //Draw_Icon(g); + + //전체 영역 테두리 + g.DrawRectangle(new Pen(Color.White, 2), rect_main.Left, rect_main.Top, rect_main.Width, rect_main.Height); + + //컨베어 그리기 + //Draw_Conveyor(g, rect_conveyor); + + //셔틀표시 + //Draw_BallScrewRail(g, rect_frontShuttle, 50, 5, false, true, this.arMOT_Origin[(int)eAxis.X_F], arMOT_LimDn[(int)eAxis.X_F], arMOT_LimUp[(int)eAxis.X_F]); + + //포트표시(셔틀위에 표시됨) + Draw_Port(g); //front + Draw_Vision(g); + + + + //프린터영역그리기 201228 + var printareahei = 50; + var printareaw = 100; + var printbordersize = 5; + var rectpl = new RectangleF(arVar_Port[0].Rect.Right + printbordersize, arVar_Port[0].Rect.Top - 85, printareaw, printareahei); + var fColorPrn = arFGPrinter0END ? Color.Lime : (arFGPrinter0RDY ? Color.Gold : Color.Gray); + g.DrawRect(rectpl, fColorPrn, printbordersize); + var prnstrbase = "";// "인쇄수량:" + arCountPrint0.ToString("000") + "\n"; + var prnstr = prnstrbase + (arFGPrinter0END ? "인쇄완료" : (arFGPrinter0RDY ? "인쇄중" : "인쇄대기")); + prnstr += "\n" + arCountPrint0.ToString("0000"); + g.DrawString(prnstr, new Font("맑은 고딕", 10, FontStyle.Bold), new SolidBrush(fColorPrn), rectpl, + new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + //g.DrawString(string.Format("AIR:{0}\nVI:{1}\nVO:{2}", PrintLAIRO, PrintLVACI, PrintLVACO), new Font("Consolas", 11, FontStyle.Bold), + // Brushes.Tomato, rectpl.Left, rectpl.Top); + + + + rectpl = new RectangleF(arVar_Port[2].Rect.Left - 90 - printbordersize, arVar_Port[2].Rect.Top - 85, printareaw, printareahei); + fColorPrn = arFGPrinter1END ? Color.Lime : (arFGPrinter1RDY ? Color.Gold : Color.Gray); + g.DrawRect(rectpl, fColorPrn, printbordersize); + prnstrbase = "";// "인쇄수량:" + arCountPrint1.ToString("000") + "\n"; + prnstr = prnstrbase + (arFGPrinter1END ? "인쇄완료" : (arFGPrinter1RDY ? "인쇄중" : "인쇄대기")); + prnstr += "\n" + arCountPrint1.ToString("0000"); + g.DrawString(prnstr, new Font("맑은 고딕", 10, FontStyle.Bold), new SolidBrush(fColorPrn), rectpl, + new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + //g.DrawString(string.Format("AIR:{0}\nVI:{1}\nVO:{2}", PrintRAIRO, PrintRVACI, PrintRVACO), new Font("Consolas", 11, FontStyle.Bold), + // Brushes.Tomato, rectpl.Left, rectpl.Top); + + + //Y축 레일표시 + //Draw_BallScrewRail(g, rect_picker, 50, 5, true, LockYP, this.arMOT_Origin[(int)eAxis.Y_P], arMOT_LimDn[(int)eAxis.Y_P], arMOT_LimUp[(int)eAxis.Y_P]); + + + + //모터 Y/Z축 + Draw_PickerY(g, rect_picker); + + + //왼쪽 프린터 + Draw_PickerPrinter(g, rect_printl, 2, 3, false, arMotILockPLM, arMotILockPLZ, arPLItemON, PrintLPICK, L_PICK_FW, L_PICK_BW); + + //오른쪽 프린터 + Draw_PickerPrinter(g, rect_printr, 4, 5, true, arMotILockPRM, arMotILockPRZ, arPRItemON, PrintRPICK, R_PICK_FW, R_PICK_BW); + + //정보 표시 (나중에 제거해야함) 별도 인포박스형태를 취해야 함 + Draw_Info(g, rect_conveyor); + Draw_Error(g); + + //메뉴는 최상위에 표시한다 + Draw_Menu(g); + + //arDebugMode = true; + + if (arDebugMode) + { + + var sb = new System.Text.StringBuilder(); + sb.AppendLine("Debug Message"); + sb.AppendLine(string.Format("Display {0}", rect_main)); + sb.AppendLine(string.Format("Mot Name : {0}/{1}/{2}/{3}/{4}/{5}", arMotPosNamePX, arMotPosNamePZ, arMotPosNameLM, arMotPosNameLZ, arMotPosNameRM, arMotPosNameRZ)); + + updatetime = DateTime.Now; + + //작업 수량 및 전체수량을 표시함 + var sb2 = new System.Text.StringBuilder(); + if (arVar_Port != null && arVar_Port.Length > 0) + { + //sb2.AppendLine(string.Format("입(PICKER)/출(SS:DET1)/겹침(SS:DET1) : {0}/{1}/{2}", + // ar_cnt_in, ar_cnt_out, ar_cnt_outdup)); + + //sb2.AppendLine(string.Format("바코드 입/출:CMD/DUP/READ/ERR/중복수신/할당실패 {0}/{1}:{2}/{3}/{4}/{5}/{6}/{7}", + // ar_cnt_barcodein, ar_cnt_barcodeot, ar_cnt_barcodecmd, ar_cnt_barcodedup, ar_cnt_barcoderead, ar_cnt_barcodereaderr, ar_cnt_barcodereaddup, ar_cnt_barcodeAssignErr)); + + //sb2.AppendLine(string.Format("언로더 입/출:CMD/DUP {0}/{1}:{2}/{3}", + // ar_cnt_plcin, ar_cnt_plcot, ar_cnt_plccmd, ar_cnt_plcdup)); + + + sb.AppendLine(string.Format("DIO:{4},BCD:{5},PLC:{6}\n" + + "YP_RDY {7},{8},{9},{10}\n" + + "YP_CMD {7},{8},{9},{10}\n", + arVar_Port[0].reelCount, + arVar_Port[1].reelCount, + arVar_Port[2].reelCount, + arConn_DIO, + arConn_BCD, + arConn_PLC, + arFG_RDY_YP_FPICKON, arFG_RDY_YP_FPICKOF, arFG_RDY_YP_RPICKON, arFG_RDY_YP_RPICKOF, + arFG_CMD_YP_FPICKON, arFG_CMD_YP_RPICKON)); + + } + + var pad = 10; + using (Font f = new Font("맑은 고딕", 9)) + { + var smgsize = g.MeasureString(sb.ToString(), f); + var dbgrect = new RectangleF(rect_main.Left + pad, rect_main.Top + pad, smgsize.Width + pad * 2f, smgsize.Height + pad * 2f); + + //g.FillRectangle(new SolidBrush(Color.FromArgb(252, 0, 0, 0)), dbgrect); + //g.DrawString(sb.ToString(), f, Brushes.SkyBlue, dbgrect, new StringFormat { Alignment = StringAlignment.Near, LineAlignment = StringAlignment.Center }); + } + + } + + } + + + void Draw_Info(Graphics g, RectangleF rect) + { + + //디자인 모드에서는 표시하지 않는다 200714 + //if (DesignMode == true) return; + + //if (this.arFlag_UnloaderBusy) ShowPopupMessage(g, "언로더 작업 대기 중\nBUSY", Properties.Resources.info); + //if (this.arIsRunning) + //{ + // if (this.arFlag_UnloaderErr == true) ShowPopupMessage(g, "언로더 오류 발생", "STOP된 언로더를 확인하세요", Properties.Resources.error, false); + // else if (this.arFlag_WaitPLC && arUnloaderSeq > 0) + // { + // if (arUnloaderSeq == 1) ShowPopupMessage(g, "언로더 작업 대기 중", "상태확인(#1)", Properties.Resources.info, false); + // else if (arUnloaderSeq == 2) ShowPopupMessage(g, "언로더 작업 대기 중", "BUSY(#2)", Properties.Resources.info, false); + // else if (arUnloaderSeq == 3) ShowPopupMessage(g, "언로더 작업 대기 중", "ITEM CHECK(#3)", Properties.Resources.info, false); + // else if (arUnloaderSeq == 4) ShowPopupMessage(g, "언로더 작업 대기 중", "NO SETTING(#4)", Properties.Resources.info, false); + // else if (arUnloaderSeq == 5) ShowPopupMessage(g, "언로더 작업 대기 중", "SIZE SETTING(#5)", Properties.Resources.info, false); + // else if (arUnloaderSeq == 6) ShowPopupMessage(g, "언로더 작업 대기 중", "No.ZERO CHECK(#6)", Properties.Resources.info, false); + // } + //} + + } + + //void Draw_PickerRail(Graphics g, RectangleF rect) + //{ + // RectangleF rectRailL = new RectangleF(rect.Left, rect.Top, rect.Width / 2.0f + 1, rect.Height); + // RectangleF rectRailR = new RectangleF(rect.Left + rect.Width / 2.0f, rect.Top, rect.Width / 2.0f, rect.Height); + // var brR = new LinearGradientBrush(rect, Color.FromArgb(60, 60, 60), Color.FromArgb(80, 80, 80), LinearGradientMode.Horizontal); + // var brL = new LinearGradientBrush(rect, Color.FromArgb(80, 80, 80), Color.FromArgb(60, 60, 60), LinearGradientMode.Horizontal); + // g.FillRectangle(brL, rectRailL); + // //g.FillRectangle(brR, rectRailR); + // brL.Dispose(); + // brR.Dispose(); + // g.DrawRectangle(Pens.DimGray, rect.Left, rect.Top, rect.Width, rect.Height); + + //} + + RectangleF rect_zlaxis = RectangleF.Empty;// new RectangleF((float)motZLPosX, (float)motZPosY, motZwPx, (float)motZhPx); + //RectangleF rect_zraxis = RectangleF.Empty;//new RectangleF((float)motZRPosX, (float)motZPosY, motZwPx, (float)motZhPx); + + void Draw_Screw(Graphics g, Rectangle rect) + { + //모터표시(X축) + g.FillRectangle(new SolidBrush(Color.FromArgb(50, 150, 150, 150)), rect); + + //해다 영역에 사선으로그림을 그린다. + var termcount = 50; + var lineterm = rect.Width / termcount; + var skew = rect.Width * 0.01f; + Pen p = new Pen(Color.FromArgb(50, 120, 120, 120), 2); + for (int i = 0; i < termcount; i++) + { + var pt1 = new PointF(rect.Left + i * lineterm, rect.Top); + var pt2 = new PointF(pt1.X + skew, rect.Bottom); + g.DrawLine(p, pt1, pt2); + } + p.Dispose(); + //e.Graphics.DrawRectangle(Pens.Gray, motr_rect.Left, motr_rect.Top, motr_rect.Width, motr_rect.Height); + //e.Graphics.DrawRectangle(Pens.Gray, motf_rect.Left, motf_rect.Top, motf_rect.Width, motf_rect.Height); + + + //RectangleF rectRailT = new RectangleF(rect.Left, rect.Top, rect.Width, rect.Height / 2.0f + 1); + //RectangleF rectRailB = new RectangleF(rect.Left, rect.Top + rect.Height / 2.0f, rect.Width, rect.Height / 2.0f); + //var brR = new LinearGradientBrush(rect, Color.FromArgb(100, 60, 60, 60), Color.FromArgb(100, 80, 80, 80), LinearGradientMode.Vertical); + //var brL = new LinearGradientBrush(rect, Color.FromArgb(100, 80, 80, 80), Color.FromArgb(100, 60, 60, 60), LinearGradientMode.Vertical); + ////g.FillRectangle(brL, rectRailT); + ////g.FillRectangle(brR, rectRailB); + //brL.Dispose(); + //brR.Dispose(); + + g.DrawRectangle(new Pen(Color.FromArgb(50, Color.Gray)), rect.Left, rect.Top, rect.Width, rect.Height); + + + } + + void Draw_BallScrewRail(Graphics g, RectangleF rect, int divCount, int alpha, Boolean downDirection, Boolean MLock, Boolean Org, Boolean LimDn, Boolean LimUp) + { + //모터표시(X축) + if (Org) g.FillRectangle(new SolidBrush(Color.FromArgb(alpha, Color.SkyBlue)), rect); + else if (LimUp) g.FillRectangle(new SolidBrush(Color.FromArgb(alpha, Color.Red)), rect); + else if (LimDn) g.FillRectangle(new SolidBrush(Color.FromArgb(alpha, Color.Blue)), rect); + else g.FillRectangle(new SolidBrush(Color.FromArgb(alpha, 150, 150, 150)), rect); + + //해다 영역에 사선으로그림을 그린다. + var baseSize = (downDirection == false ? rect.Width : rect.Height); + var lineterm = baseSize / divCount; + var skew = baseSize * 0.01f; + Pen p = new Pen(Color.FromArgb(alpha, 120, 120, 120), 2); + PointF pt1 = PointF.Empty; + PointF pt2 = PointF.Empty; + for (int i = 0; i < divCount; i++) + { + if (downDirection) + { + pt1 = new PointF(rect.Left, rect.Top + i * lineterm); + pt2 = new PointF(rect.Right, pt1.Y + skew); + } + else + { + pt1 = new PointF(rect.Left + i * lineterm, rect.Top); + pt2 = new PointF(pt1.X + skew, rect.Bottom); + } + g.DrawLine(p, pt1, pt2); + } + p.Dispose(); + + //limi이 걸려있다면 해당 영역에 적색으로 표시한다. + var limwidth = 30; + if (LimUp) + { + RectangleF rectlu; + if (downDirection) rectlu = new RectangleF(rect.Left, rect.Top, rect.Width, limwidth); + else rectlu = new RectangleF(rect.Right - limwidth, rect.Top, limwidth, rect.Height); + + g.FillRectangle(Brushes.Red, rectlu.Left, rectlu.Top, rectlu.Width, rectlu.Height); + } + + if (LimDn) + { + RectangleF rectlu; + if (downDirection) rectlu = new RectangleF(rect.Left, rect.Bottom - limwidth, rect.Width, limwidth); + else rectlu = new RectangleF(rect.Left, rect.Top, limwidth, rect.Height); + + g.FillRectangle(Brushes.Red, rectlu.Left, rectlu.Top, rectlu.Width, rectlu.Height); + } + //전체 테두리 + g.DrawRectangle(new Pen(Color.FromArgb(alpha, Color.Gray)), rect.Left, rect.Top, rect.Width, rect.Height); + } + + Boolean NeedHomeSet() + { + return arConn_MOT && (this.arMOT_HSet[0] == false || this.arMOT_HSet[1] == false || this.arMOT_HSet[2] == false || this.arMOT_HSet[3] == false || this.arMOT_HSet[4] == false); + } + + byte errstep = 0; + bool errstepR = true; + void Draw_Error(Graphics g) + { + //디자인 모드에서는 표시하지 않는다 200714 + if (DesignMode == true) return; + + if (arConn_DIO && this.arDI_Emergency == true) ShowPopupMessage(g, "EMERGENCY BUTTON", "비상정지 확인\nEMERGENCY or POWER LOSS", Properties.Resources.error, true); + else if (this.arDI_SaftyOk == false) ShowPopupMessage(g, "SAFTY SENSOR", "안전 센서 확인", Properties.Resources.alert, true); + else if (arConn_MOT && this.arMOT_Alm[0] == true) ShowPopupMessage(g, "SERVO ALARM", "Y-PICKER 모터 알람 발생", Properties.Resources.error, true); + else if (arConn_MOT && this.arMOT_Alm[1] == true) ShowPopupMessage(g, "SERVO ALARM", "Z-FRONT 모터 알람 발생", Properties.Resources.error, true); + else if (arConn_MOT && this.arMOT_Alm[2] == true) ShowPopupMessage(g, "SERVO ALARM", "Z-REAR 모터 알람 발생", Properties.Resources.error, true); + + else if (arConn_MOT && this.arMOT_SVOn[0] == false) ShowPopupMessage(g, "SERVO ALARM", "Y-PICKER\nSERVO-OFF", Properties.Resources.alert, true); + else if (arConn_MOT && this.arMOT_SVOn[1] == false) ShowPopupMessage(g, "SERVO ALARM", "Z-PICKER\nSERVO-OFF", Properties.Resources.alert, true); + else if (arConn_MOT && this.arMOT_SVOn[2] == false) ShowPopupMessage(g, "SERVO ALARM", "L-PRINT-Y\nSERVO-OFF", Properties.Resources.alert, true); + else if (arConn_MOT && this.arMOT_SVOn[3] == false) ShowPopupMessage(g, "SERVO ALARM", "L-PRINT-Z\nSERVO-OFF", Properties.Resources.alert, true); + else if (arConn_MOT && this.arMOT_SVOn[4] == false) ShowPopupMessage(g, "SERVO ALARM", "R-PRINT-Y\nSERVO-OFF", Properties.Resources.alert, true); + + else if (arConn_DIO && this.arAIRDetect == false) ShowPopupMessage(g, "AIR DETECT", "*전면의 AIR버튼(청색)을 눌러 AIR를 공급하세요\n* AIR 라인을 확인하세요", Properties.Resources.error, true); + + else if (arConn_MOT && (this.arMOT_HSet[0] == false || this.arMOT_HSet[1] == false || this.arMOT_HSet[2] == false)) + { + //안전오류도 표시해줘야한다 + var SaftyMessage = string.Empty; + if (arVar_Port[0].SaftyErr == true) SaftyMessage += "DOOR:LEFT"; + if (arVar_Port[1].SaftyErr == true) SaftyMessage += (string.IsNullOrEmpty(SaftyMessage) == false ? "," : string.Empty) + "DOOR:CENTER"; + if (arVar_Port[2].SaftyErr == true) SaftyMessage += (string.IsNullOrEmpty(SaftyMessage) == false ? "," : string.Empty) + "DOOR:RIGHT"; + + if (arPickerSafeZone == false) SaftyMessage += (string.IsNullOrEmpty(SaftyMessage) == false ? "\n" : string.Empty) + "피커안전위치 : OFF"; + else SaftyMessage += "피커안전위치 : ON"; ; + + ShowPopupMessage(g, "SYSTEM NOT READY", "초기화가 필요 합니다\n" + SaftyMessage, Properties.Resources.error, true); + } + else if (arConn_MOT && this.arMOT_HSet[0] == false) ShowPopupMessage(g, "SERVO ALARM", "Y-PICKER 홈 검색 필요", Properties.Resources.alert, true); + else if (arConn_MOT && this.arMOT_HSet[1] == false) ShowPopupMessage(g, "SERVO ALARM", "Z-FRONT 홈 검색 필요", Properties.Resources.alert, true); + else if (arConn_MOT && this.arMOT_HSet[2] == false) ShowPopupMessage(g, "SERVO ALARM", "Z-REAR 홈 검색 필요", Properties.Resources.alert, true); + + else if (arVar_Port[0].OverLoad) ShowPopupMessage(g, "## OVERLOAD ##", "FRONT-LEFT", Properties.Resources.alert, true); + else if (arVar_Port[1].OverLoad) ShowPopupMessage(g, "## OVERLOAD ##", "FRONT-RIGHT", Properties.Resources.alert, true); + + //else if (arFlag_UnloaderBusy) ShowPopupMessage(g, "## UNLOADER ##\nBUSY", Properties.Resources.alert); + //else if (arFlag_UnloaderErr) ShowPopupMessage(g, "## UNLOADER ##\nERROR", Properties.Resources.alert); + } + + + void Draw_Menu(Graphics g) + { + //var buttonOk = new CMenuButton("OK", "1"); + //var buttonNo = new CMenuButton("CANCLE", "0"); + //var newmenu = new CMenu("body str", "title", eMsgIcon.Error, buttonOk, buttonNo) + //{ + // BorderColor = Color.Gray + //}; + //this.menus.Push(newmenu); + + if (arMenus == null || arMenus.Length < 1) { this.HasPopupMenu = false; return; } + else HasPopupMenu = true; + + ShowMaskLayer(g, Color.FromArgb(250, Color.Black)); + var item = this.arMenus.Last();//.Peek(); + //이 메뉴를 표시 합니다. + + PopupMenuRequireInput = item.RequireInput; + + var buttonSpace = 10; + var hSpace = 5; + var vSpace = 10; + var iconSize = 80; + var menuheight = 64; + var padding = 10; + var msgW = 900;// (int)(this.rect_main.Width * 0.65f);// 640;// (int)(rect_main.Width * 0.7f); + var msgH = 400; + var rect = new RectangleF( + rect_main.Left + (rect_main.Width - msgW) / 2.0f, + rect_main.Top + (rect_main.Height - msgH) / 2.0f, + msgW, msgH); + + Rectangle rectT = Rectangle.Empty; //title + Rectangle rectI = Rectangle.Empty; //icon + Rectangle rectC = Rectangle.Empty; //content + Rectangle rectB = Rectangle.Empty; //button + + rectT = new Rectangle((int)rect.Left + padding, (int)rect.Top + padding, (int)rect.Width - (padding * 2), (int)(rect.Height * 0.1)); + rectI = new Rectangle((int)rect.Left + padding + 10, (int)rectT.Bottom + vSpace, iconSize, iconSize); //icon size + rectB = new Rectangle((int)(rect.Left + padding * 2), (int)(rect.Bottom - menuheight - padding), (int)rect.Width - (padding * 4), menuheight); + rectC = new Rectangle((int)rectI.Right + 20 + hSpace * 2, (int)rectT.Bottom + 10 + vSpace, + (int)(rect.Width - hSpace - (padding * 2) - rectI.Width), + (int)(rect.Height - rectT.Height - rectB.Height - (padding * 2) - vSpace * 2)); + + g.FillRectangle(new SolidBrush(Color.FromArgb(220, item.BackColor)), rect); + + //제목줄 표시 + using (LinearGradientBrush sb = new LinearGradientBrush(rectT, + Color.FromArgb(160, 160, 160), + Color.FromArgb(180, 180, 180), + LinearGradientMode.Vertical)) + { + g.FillRectangle(sb, rectT); + } + + + g.DrawString(item.Title, item.Font, new SolidBrush(item.ForeColor), rectT, sfCenter); + + //버튼표시 + if (item.buttons != null && item.buttons.Length > 0) + { + //현재 버튼 영역의 갯수가 다르면 다시 생성한다. + if (menuButtons.Count != item.buttons.Length) + { + + menuButtons = new List(); + foreach (var bt in item.buttons) + menuButtons.Add(bt); + + g.DrawString("!!", this.Font, Brushes.Red, rectB.Left + 10, rectB.Top + 10); + } + else + { + for (int i = 0; i < menuButtons.Count; i++) + menuButtons[i] = item.buttons[i]; + } + + g.DrawString(item.buttons.Length.ToString() + "/" + menuButtons.Count.ToString(), this.Font, Brushes.Red, rectB); + var butidx = 0; + var butwid = (rectB.Width - (item.buttons.Length - 1) * buttonSpace) / item.buttons.Length; + foreach (var but in item.buttons) + { + but.menutag = item.Tag; + but.Rect = new Rectangle(rectB.Left + butwid * butidx + buttonSpace * butidx, rectB.Top, butwid, rectB.Height); + g.FillRectangle(new SolidBrush(but.BackColor), but.Rect); + g.DrawRectangle(new Pen(but.BorderColor, but.BorderSize), but.Rect); + g.DrawString(but.Text, item.Font, new SolidBrush(but.ForeColor), but.Rect, sfCenter); + butidx++; + } + } + else menuButtons.Clear(); + + //아이콘 영역에 그림표시 + if (rectI.IsEmpty == false) + { + g.DrawImage(Properties.Resources.info, rectI); + } + + //본문데이터표시 + if (string.IsNullOrEmpty(item.Text) == false) //contec + { + g.DrawString(item.Text, item.Font, new SolidBrush(item.ForeColor), rectC); + } + + //외각 테두리 + //g.DrawRectangle(new Pen(Color.FromArgb(20,20,20), 10) { Alignment = PenAlignment.Center }, rect.Left + 1, rect.Top + 1, rect.Width, rect.Height); + + g.DrawRectangle(new Pen(Color.FromArgb(180, 180, 180), 10) { Alignment = PenAlignment.Center }, rect.Left, rect.Top, rect.Width, rect.Height); + + + //g.DrawRectangle(Pens.Black, rect.Left, rect.Top, rect.Width, rect.Height); + + //g.DrawRectangle(Pens.Red, rectT); //제목표시줄 + //g.DrawRectangle(Pens.Blue, rectI); //아이콘 + //g.DrawRectangle(Pens.Green, rectB); //버튼영역 + //g.DrawRectangle(Pens.Black, rectC); //본문영역 + } + + void ShowMaskLayer(Graphics g, Color maskColor) + { + g.FillRectangle(new SolidBrush(maskColor), this.DisplayRectangle.Left, DisplayRectangle.Top, DisplayRectangle.Width, DisplayRectangle.Height); + + } + + public Font MessageBody { get; set; } = new Font("맑은 고딕", 20, FontStyle.Bold); + public Font MessageTitle { get; set; } = new Font("맑은 고딕", 10, FontStyle.Bold); + + void ShowPopupMessage(Graphics g, string title, string msg, Image icon, Boolean isError) + { + //팝업표시할때마다 배경 마스킹을 한다 + //var maskColor = Color.FromArgb(100, Color.White); + //ShowMaskLayer(g, maskColor); + + //var msgf = new Font("맑은 고딕", 20, FontStyle.Bold); + //var msgt = new Font("맑은 고딕", 10, FontStyle.Bold); + + if (isError == false) + { + //팝업표시할때마다 배경 마스킹을 한다 + + var maskColor = Color.FromArgb(50, Color.Gray); + ShowMaskLayer(g, maskColor); + + var msgW = (int)(this.rect_main.Width * 0.65f);// 640;// (int)(rect_main.Width * 0.7f); + var msgH = 105; + var rect = new RectangleF( + rect_main.Left + (rect_main.Width - msgW) / 2.0f, + rect_main.Top + (rect_main.Height - msgH) / 2.0f, + msgW, msgH); + + var TitleHeight = 25; + var rectT = new Rectangle((int)rect.Left, (int)rect.Bottom - TitleHeight, (int)rect.Width, TitleHeight); + var rectI = new Rectangle((int)rect.Left, (int)rect.Top, (int)rect.Width, (int)rect.Height - rectT.Height); + + //g.FillRectangle(new SolidBrush(Color.FromArgb(220, Color.Black)), rect); + g.FillRectangle(new SolidBrush(Color.FromArgb(120, Color.White)), rect); + + var rectTL = new RectangleF(rectT.Left, rectT.Top, rectT.Width / 2.0f, rectT.Height); + var rectTR = new RectangleF(rectTL.Right, rectT.Top, rectTL.Width, rectTL.Height); + using (var sb = new LinearGradientBrush(rectT, Color.Transparent, Color.White, LinearGradientMode.Horizontal)) + g.FillRectangle(sb, rectTL); + using (var sb = new LinearGradientBrush(rectT, Color.White, Color.Transparent, LinearGradientMode.Horizontal)) + g.FillRectangle(sb, rectTR); + + //g.DrawImage(icon, + // (int)(rect.Left + 20), + // (int)(rect.Top + (rect.Height - icon.Height) / 2.0f)); + + g.DrawString(title, MessageTitle, Color.Black, rectT, ContentAlignment.MiddleCenter); + g.DrawString(msg, MessageBody, Color.White, rectI, ContentAlignment.MiddleCenter, Color.FromArgb(24, 24, 24)); + + if (errstep % 5 == 0) errstepR = !errstepR; + + if (errstepR) + g.DrawRectangle(new Pen(Color.Gold, 2), rect.Left, rect.Top, rect.Width, rect.Height); + else + g.DrawRectangle(new Pen(Color.White, 2), rect.Left, rect.Top, rect.Width, rect.Height); + + if (errstep < 255) errstep += 1; + else errstep = 0; + } + else + { + //팝업표시할때마다 배경 마스킹을 한다 + var maskColor = Color.FromArgb(253, 15, 15, 15); + ShowMaskLayer(g, maskColor); + + var msgW = (int)(this.rect_main.Width * 0.8f);// 640;// (int)(rect_main.Width * 0.7f); + var msgH = (int)(this.rect_main.Height * 0.8f);// + var rect = new RectangleF( + rect_main.Left + (rect_main.Width - msgW) / 2.0f, + rect_main.Top + (rect_main.Height - msgH) / 2.0f, + msgW, msgH); + + var rectT = new Rectangle((int)rect.Left, (int)rect.Bottom - 200, (int)rect.Width, 200); + var rectI = new Rectangle((int)rect.Left, (int)rect.Top, (int)rect.Width, (int)rect.Height - rectT.Height); + + //g.FillRectangle(new SolidBrush(Color.FromArgb(220, Color.Black)), rect); + g.FillRectangle(new SolidBrush(Color.FromArgb(253, Color.Black)), rect); + + g.DrawImage(icon, + (int)(rectI.Left + rectI.Width / 2.0f) - 40, + (int)(rectI.Top + rectI.Height / 2.0f) + 10); + + g.DrawString(msg, MessageBody, Brushes.Gold, rectT, sfCenter); + + if (errstep % 5 == 0) errstepR = !errstepR; + + if (errstepR) + g.DrawRectangle(new Pen(Color.Red, 10), rect.Left, rect.Top, rect.Width, rect.Height); + else + g.DrawRectangle(new Pen(Color.Gold, 10), rect.Left, rect.Top, rect.Width, rect.Height); + + if (errstep < 255) errstep += 1; + else errstep = 0; + } + + //msgf.Dispose(); + //msgt.Dispose(); + } + + void Draw_Port(Graphics g) + { + var fSizeCnt = 20; + var convmode = VAR.BOOL?[eVarBool.Use_Conveyor] ?? false; + using (Font fCnt = new Font("consolas", fSizeCnt, FontStyle.Bold)) + { + using (Font fMSg = new Font("맑은 고딕", 15, FontStyle.Bold)) + { + if (convmode) + this.arVar_Port[0].DisplayConv(g, fCnt, fMSg, arMagnet0, arFGVision0RDY, arFGVision0END, arPortLItemOn, arMotILockVS0, arCountV0, CVLeftBusy, CVLeftReady); + else + this.arVar_Port[0].Display(g, fCnt, fMSg, arMagnet0, arFGVision0RDY, arFGVision0END, arPortLItemOn, arMotILockVS0, arCountV0); + + this.arVar_Port[1].Display(g, fCnt, fMSg, arMagnet1, arFGVision1RDY, arFGVision1END, false, arMotILockVS1, arCountV1); + + if (convmode) + this.arVar_Port[2].DisplayConv(g, fCnt, fMSg, arMagnet2, arFGVision2RDY, arFGVision2END, arPortRItemOn, arMotILockVS2, arCountV2, CVRightBusy, CVRightReady); + else + this.arVar_Port[2].Display(g, fCnt, fMSg, arMagnet2, arFGVision2RDY, arFGVision2END, arPortRItemOn, arMotILockVS2, arCountV2); + } + } + } + + void Draw_Vision(Graphics g) + { + + //var NewX0 = arVar_Port[0].Rect.Right; + + //var NewXDist = arVar_Port[1].Rect.Left - arVar_Port[0].Rect.Right; + //var NewYDist = arVar_Port[0].Rect.Height; + + //var NewY = arVar_Port[0].Rect.Top; + //var portw_Px = arVar_Port[0].Rect.Width; + + ////둘사이의 공간으로 처리한다 + //var VisionRectSizePx = (int)Math.Min(NewXDist - 10, NewYDist - 10); + //rect_vision = new RectangleF( + // (float)(NewX0 + (NewXDist - VisionRectSizePx) / 2.0f), + // (float)(NewY + (NewYDist - VisionRectSizePx) / 2.0f), + // (float)VisionRectSizePx, + // (float)VisionRectSizePx); + + //g.DrawEllipse(Pens.Gray, rect_vision); + + ////가운에 영역(10% 작은)에. 감지된 릴 모양을 그려준다 + //var padval = rect_vision.Width * 0.05f; + //var rellrect = new RectangleF( + // rect_vision.Left + padval, + // rect_vision.Top + padval, + // rect_vision.Width - padval * 2, + // rect_vision.Height - padval * 2); + + //if (arVisionProcessC) + //{ + // using (LinearGradientBrush br = new LinearGradientBrush(rellrect, Color.Lime, Color.Green, LinearGradientMode.BackwardDiagonal)) + // g.FillEllipse(br, rellrect); + // g.DrawEllipse(Pens.Lime, rellrect); + //} + //else + //{ + // using (LinearGradientBrush br = new LinearGradientBrush(rellrect, Color.Yellow, Color.Gold, LinearGradientMode.BackwardDiagonal)) + // g.FillEllipse(br, rellrect); + // g.DrawEllipse(Pens.Lime, rellrect); + //} + + ////감지상태를 글자료 표시해준다. + ////비젼데이터가 있다면 그것을 사용해준다 + //var msg = string.IsNullOrEmpty(arVision_RID) ? "REEL ON" : arVision_RID; + //using (var sb = new SolidBrush(Color.FromArgb(120, Color.Black))) + // g.DrawString(msg, this.Font, sb, rellrect, + // new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + + } + RectangleF rect_vision = RectangleF.Empty; + + public string arVision_RID { get; set; } + public string arVision_SID { get; set; } + + + public Boolean arVisionProcessL { get; set; } + public Boolean arVisionProcessC { get; set; } + public Boolean arVisionProcessR { get; set; } + + private void Tm_Tick(object sender, EventArgs e) + { + + if (ConveyorRunPoint < (AnimationStepConv - 3)) ConveyorRunPoint += 1; + else ConveyorRunPoint = 1; + + for (int i = 0; i < 3; i++) + { + + if (this.arVar_Port[i].arrowIndex < (arVar_Port[i].AnimationStepPort - 3)) this.arVar_Port[i].arrowIndex += 1; + else this.arVar_Port[i].arrowIndex = 1; + } + this.Invalidate(); + + // var ts = DateTime.Now - updatetime; + //if (ts.TotalMilliseconds >= tm.Interval) this.Invalidate(); + } + + } +} diff --git a/Handler/CapCleaningControl/Loader/Draw_PickerPrinter.cs b/Handler/CapCleaningControl/Loader/Draw_PickerPrinter.cs new file mode 100644 index 0000000..9d951a6 --- /dev/null +++ b/Handler/CapCleaningControl/Loader/Draw_PickerPrinter.cs @@ -0,0 +1,95 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Linq; +using System.Windows.Forms; + + +namespace UIControl +{ + public partial class HMI + { + void Draw_PickerPrinter(Graphics g, RectangleF rect, + int motAxisY, int motAxisZ, bool reverse, + Boolean LockY, Boolean LockZ, Boolean ItemOn, Boolean ItemPickOK, + Boolean CylFW, Boolean CylBW) + { + //실제 로봇의 길이를 입력한다 (단위:mm) + var RealLenY = 400; + var RealLenZ = 250; + + g.FillRectangle(Brushes.DimGray, rect); + if (LockY) g.DrawRect(rect, Color.Blue, 5); + else g.DrawRect(rect, Color.White); + + var PXName = motAxisY == 2 ? arMotPosNameLM : arMotPosNameRM; + g.DrawString(PXName, this.arFont_MotPosName, Brushes.Black, rect, new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center, FormatFlags = StringFormatFlags.DirectionVertical }); + + var RPosY = this.arMotorPosition[motAxisY]; + var RPosZ = this.arMotorPosition[motAxisZ]; + //RPosY = 0; + //RPosZ = 300; + + //모터의 실제 위치에 뭉치를 그린다. + + var PosY = (float)(rect.Top + (rect.Height - (rect.Height * RPosY / RealLenY))); + + //Y뭉치를 그린다 + var rectYP = new RectangleF(rect.X - 1, PosY - (rect.Width / 2.0f), rect.Width + 2, rect.Width); + g.FillRectangle(Brushes.Yellow, rectYP); + g.DrawRect(rectYP, Color.Black, 2); + //g.DrawLine(Pens.Red, rect.X - 30, PosY, rect.Right + 130, PosY); + + + //Z축을 그린다. + RectangleF rectZ = RectangleF.Empty; + var zwidth = 60; + if (reverse) rectZ = new RectangleF(rect.X - zwidth, PosY - 10, zwidth, 20); + else rectZ = new RectangleF(rect.Right, PosY - 10, zwidth, 20); + + float PosZ = 0f; + if (reverse) PosZ = (float)(rectZ.Left + rectZ.Width - (rectZ.Width * RPosZ / RealLenZ)); + else PosZ = (float)(rectZ.Left + rectZ.Width * RPosZ / RealLenZ); + + g.FillRectangle(Brushes.DimGray, rectZ); + if (LockZ) g.DrawRect(rectZ, Color.Blue, 5); + else g.DrawRect(rectZ, Color.White); + + //z축 포지션 이름 + var ZposName = motAxisZ == 3 ? arMotPosNameLZ : arMotPosNameRZ; + g.DrawString(ZposName, this.arFont_MotPosName, Brushes.Black, rectZ, new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + + //var CylStr = string.Format("FW:{0},BW:{1}", CylFW, CylBW); + //if (CylFW == true && CylFW != CylBW) CylStr = "FW"; + //else if (CylBW == true && CylFW != CylBW) CylStr = "BW"; + //g.DrawString(CylStr, this.arFont_MotPosName, Brushes.Red, rectZ.Left, rectZ.Top - 20); + + //Z뭉치를 그린다 + var rectZP = new RectangleF(PosZ - (rectZ.Height / 2.0f), rectZ.Y - 1, rectZ.Height, rectZ.Height + 2); + if (ItemOn) + { + g.FillRectangle(Brushes.Lime, rectZP); + g.DrawRect(rectZP, Color.Black, 2); + + + } + else + { + g.FillRectangle(Brushes.SkyBlue, rectZP); + g.DrawRect(rectZP, Color.Black, 2); + } + using (Font f = new Font("Consolas", 10, FontStyle.Bold)) + g.DrawString((ItemPickOK ? "O" : "X"), f, Brushes.Black, rectZP, new StringFormat + { + Alignment = StringAlignment.Center, + LineAlignment = StringAlignment.Center + }); + + //g.DrawLine(Pens.Blue, PosZ, rectZ.Top - 30, PosZ, rectZ.Bottom + 100); + + } + } +} diff --git a/Handler/CapCleaningControl/Loader/Draw_PickerY.cs b/Handler/CapCleaningControl/Loader/Draw_PickerY.cs new file mode 100644 index 0000000..19a1a84 --- /dev/null +++ b/Handler/CapCleaningControl/Loader/Draw_PickerY.cs @@ -0,0 +1,237 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Linq; +using System.Windows.Forms; + + +namespace UIControl +{ + public partial class HMI + { + void Draw_PickerY(Graphics g, RectangleF rect) + { + + //return; + + //전체영역의 80% 영역에 Y-로봇의 축을 그린다. + //var motorMax = 400; //전체 가동 길이 400mm + var cx = rect_main.Left + rect_main.Width / 2.0f; + var cy = rect_main.Top + rect_main.Height * 0.2f;// / 2.0f - 200; + + + //모터길이가 설정되지않았따면 600으로 설정한다 + if (this.arMotorLengthY == 0) this.arMotorLengthY = 600; + var motYPosX = rect.Left + (rect.Width * ((arMotorPosition[0] + 1) / (this.arMotorLengthY * 1.0f))); + + + + //g.DrawString(arMotorPositionYP.ToString() + "/" + motYPosX.ToString(), this.Font, Brushes.Red, 100, 100); + + //Y축 모터의 현재위치를 표시한다 + g.DrawLine(new Pen(Color.SteelBlue, 10), (float)motYPosX, rect.Top, (float)motYPosX, rect.Bottom); + + g.DrawLine(new Pen(Color.Black, 1), (float)motYPosX, rect.Top - 5, (float)motYPosX, rect.Bottom + 5); + + //Y축 모터의 영역을 표시한다. + // g.DrawRect(rect_picker, Color.White, 3); + + if(arPickerSafeZone) g.FillRectangle(Brushes.Lime, rect_picker); + else g.FillRectangle(Brushes.DimGray, rect_picker); + g.DrawString(arMotPosNamePX, arFont_MotPosName, Brushes.Gray, rect_picker, new StringFormat + { + Alignment = StringAlignment.Near, + LineAlignment = StringAlignment.Center + }); + if (arMotILockPKX) g.DrawRect(rect_picker, Color.Blue, 5); + else g.DrawRect(rect_picker, Color.FromArgb(50, 50, 50), 3); + + //중앙에 Safty Zone 글자 표시함 + if(arPickerSafeZone) + { + g.DrawString("PICKER X - SAFETY ZONE", new Font("Consolas",12, FontStyle.Bold), Brushes.Black, rect_picker, new StringFormat + { + Alignment = StringAlignment.Center, + LineAlignment = StringAlignment.Center + }); + } + + + //Z축 모터의 영역 계산 + var motZLPosX = motYPosX; + // var motZRPosX = motYPosX + CvtMMtoPX_W(motZSpaceMM / 2, 0); + var motZPosY = rect.Top - CvtMMtoPX_H(50, 0); //Y축하단에서 50mm 아래에 Z축을 표시한다. + var motZHMm = 300; + var motZhPx = CvtMMtoPX_H(motZHMm, 0); // + var motZwPx = rect.Height; + rect_zlaxis = new RectangleF((float)(motZLPosX - motZwPx / 2.0), (float)motZPosY, motZwPx, (float)motZhPx); + // rect_zraxis = new RectangleF((float)(motZRPosX - motZwPx / 2.0), (float)motZPosY, motZwPx, (float)motZhPx); + + //현재위치를 표시하는 영역생성 + var zlSize = g.MeasureString("UNKNOWN", this.Font); + var zrSize = g.MeasureString("UNKNOWN", this.Font); + var zSizeW = Math.Max(zlSize.Width, zrSize.Width); + var zSizeH = Math.Max(zlSize.Height, zrSize.Height); + var rect_zlposname = new RectangleF( + rect_zlaxis.Left + (rect_zlaxis.Width - zSizeW) / 2.0f, + rect_zlaxis.Top - zSizeH + 5, + zSizeW, + zSizeH); + + + g.FillRectangle(Brushes.DimGray, rect_zlaxis); + + + //테두리 + if (arMotILockPKZ == true) g.DrawRect(rect_zlaxis, Color.Blue, 5); + else g.DrawRect(rect_zlaxis, Color.DimGray, 3); + + + + g.FillRectangle(Brushes.DimGray, rect_zlposname); + + if (arMotILockPKZ == true) g.DrawRect(rect_zlposname, Color.Blue, 5); + else g.DrawRect(rect_zlposname, Color.DimGray, 3); + + + //피커Z축위치 표시 + g.DrawString(arMotPosNamePZ, arFont_MotPosName, Brushes.Gray, rect_zlposname, new StringFormat + { + Alignment = StringAlignment.Center, + LineAlignment = StringAlignment.Center + }); + + + //중심점 센서 확인 + g.DrawLine(new Pen(Color.Black, 1), (float)motZLPosX, rect.Top - 5, (float)motZLPosX, rect.Bottom + 5); + + //Z축 모터위치와 길이확인 + if (this.arMotorLengthZL == 0) this.arMotorLengthZL = 600; + var motZLosY = rect_zlaxis.Top + (rect_zlaxis.Height * ((arMotorPosition[1] + 1) / (this.arMotorLengthZL * 1.0f))); + + //상(Rear), 하(Front)로 영역을 그린다 + var port_width = rect_picker_left.Width;// * 3f; + var port_height = rect_picker_left.Height; // rect.Height * 0.2f; + + //New Front Position + var newYF = (float)(motZLPosX - port_width / 2.0); + if (newYF != rect_picker_left.X) + { + var offset = newYF - rect_picker_left.X; + this.rect_picker_left.Offset(offset, 0); //좌표가 변경되었다면 재계산 + this.rect_picker_front_vac1.Offset(offset, 0); + this.rect_picker_front_vac2.Offset(offset, 0); + this.rect_picker_front_vac3.Offset(offset, 0); + this.rect_picker_front_vac4.Offset(offset, 0); + } + if (motZLosY != rect_picker_left.Y) + { + var offset = (float)(motZLosY - rect_picker_left.Y); + this.rect_picker_left.Offset(0, offset); //좌표가 변경되었다면 재계산 + this.rect_picker_front_vac1.Offset(0, offset); + this.rect_picker_front_vac2.Offset(0, offset); + this.rect_picker_front_vac3.Offset(0, offset); + this.rect_picker_front_vac4.Offset(0, offset); + } + + //피커 #1 Circle 색상 + var Bg1 = Color.FromArgb(100, 100, 100); + var Bg2 = Color.FromArgb(160, 160, 160); + if (this.arVar_Picker[0].Overload) + { + Bg1 = Color.Tomato; + Bg2 = Color.Red; + } + else + { + if (this.arVar_Picker[0].ItemOn) + { + + //if (this.arVar_Picker[0].isReelDetect) + //{ + Bg1 = Color.Lime; //.FromArgb(100, 100, 100); + Bg2 = Color.Green;//.FromArgb(160, 160, 160); + //} + //else + //{ + // Bg1 = Color.Magenta; //.FromArgb(100, 100, 100); + // Bg2 = Color.DarkMagenta;//.FromArgb(160, 160, 160); + //} + + } + else + { + Bg1 = Color.FromArgb(100, 100, 100); + Bg2 = Color.FromArgb(160, 160, 160); + } + } + + + using (var br = new LinearGradientBrush(rect_picker_left, Bg1, Bg2, LinearGradientMode.Vertical)) + { + g.FillEllipse(br, rect_picker_left); + } + + //피커 #2 Circle 색상 + if (this.arVar_Picker[1].Overload) + { + Bg1 = Color.Tomato; + Bg2 = Color.Red; + } + else + { + if (this.arVar_Picker[1].ItemOn) + { + //실제 아이템 체크 + + if (this.arVar_Picker[1].isReelDetect) + { + Bg1 = Color.Lime; //.FromArgb(100, 100, 100); + Bg2 = Color.Green;//.FromArgb(160, 160, 160); + } + else + { + Bg1 = Color.Magenta; //.FromArgb(100, 100, 100); + Bg2 = Color.DarkMagenta;//.FromArgb(160, 160, 160); + } + } + else + { + Bg1 = Color.FromArgb(100, 100, 100); + Bg2 = Color.FromArgb(160, 160, 160); + } + } + + + //피커 테두리 + using (var bgPen = new Pen(Color.Black, 3)) + { + var posT = arMotorPosition[6]; + g.DrawEllipse(bgPen, rect_picker_left); + g.DrawString(posT.ToString("N0"), this.Font, Brushes.Black, rect_picker_left,new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + } + + //피커 내부의 진공 표현 + g.FillEllipse((this.arVar_Picker[0].VacOutput[0] ? brVacOn : brVacOff), rect_picker_front_vac1); + g.FillEllipse((this.arVar_Picker[0].VacOutput[1] ? brVacOn : brVacOff), rect_picker_front_vac2); + g.FillEllipse((this.arVar_Picker[0].VacOutput[2] ? brVacOn : brVacOff), rect_picker_front_vac3); + g.FillEllipse((this.arVar_Picker[0].VacOutput[3] ? brVacOn : brVacOff), rect_picker_front_vac4); + + //피커설명 표시 + if (arVar_Picker[0].Overload) + g.DrawString("OVL", arFont_picker, Brushes.Black, rect_picker_left, sfCenter); + else + g.DrawString(this.arVar_Picker[0].PortPos, arFont_picker, Brushes.Black, rect_picker_left, sfCenter); + + //피커 진공표시 테두리 (진공출력상태에 따라서 색상을 달리 함) + g.DrawEllipse((this.arVar_Picker[0].VacOutput[0] ? penVacOn : penVacOff), rect_picker_front_vac1); + g.DrawEllipse((this.arVar_Picker[0].VacOutput[1] ? penVacOn : penVacOff), rect_picker_front_vac2); + g.DrawEllipse((this.arVar_Picker[0].VacOutput[2] ? penVacOn : penVacOff), rect_picker_front_vac3); + g.DrawEllipse((this.arVar_Picker[0].VacOutput[3] ? penVacOn : penVacOff), rect_picker_front_vac4); + + } + } +} diff --git a/Handler/CapCleaningControl/PrintDirection.Designer.cs b/Handler/CapCleaningControl/PrintDirection.Designer.cs new file mode 100644 index 0000000..01e8149 --- /dev/null +++ b/Handler/CapCleaningControl/PrintDirection.Designer.cs @@ -0,0 +1,37 @@ +namespace UIControl +{ + partial class PrintDirection + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 구성 요소 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + } + + #endregion + } +} diff --git a/Handler/CapCleaningControl/PrintDirection.cs b/Handler/CapCleaningControl/PrintDirection.cs new file mode 100644 index 0000000..ef5fadf --- /dev/null +++ b/Handler/CapCleaningControl/PrintDirection.cs @@ -0,0 +1,106 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace UIControl +{ + public partial class PrintDirection : UserControl + { + public PrintDirection() + { + InitializeComponent(); + // Set Optimized Double Buffer to reduce flickering + this.SetStyle(ControlStyles.UserPaint, true); + this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); + this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); + this.SetStyle(ControlStyles.SupportsTransparentBackColor, true); + this.SetStyle(ControlStyles.ContainerControl, false); + this.SetStyle(ControlStyles.Selectable, true); + this.Resize += Loader_Resize; + BorderColor = Color.Black; + } + [DisplayName("AR_TITLEFONT")] + public Font TitleFont { get; set; } + Boolean bRemake = true; + void Loader_Resize(object sender, EventArgs e) + { + if (this.Width < 16) this.Width = 16; + if (this.Height < 16) this.Height = 16; + bRemake = true; + } + public Color BorderColor { get; set; } + + List rects = new List(); + [DisplayName("AR_COLORS")] + public Color[] colors { get; set; } + [DisplayName("AR_TITLES")] + public string[] titles { get; set; } + + protected override void OnPaint(PaintEventArgs e) + { + base.OnPaint(e); + var disprect = new Rectangle(DisplayRectangle.Left, DisplayRectangle.Top, DisplayRectangle.Width - 1, DisplayRectangle.Height - 1); ; + if (bRemake) + { + rects.Clear(); + var w = (disprect.Width - 2) / 3f; + var h = (disprect.Height - 2) / 3f; + for (int i = 2; i >= 0; i--) + { + for (int j = 0; j < 3; j++) + { + var rect = new RectangleF(j * w + 2, i * h + 2, w - 2, h - 2); + rects.Add(rect); + } + } + } + for (int i = 0; i < rects.Count; i++) + { + var item = this.rects[i]; + + if (this.colors != null && i < this.colors.Length) + { + var color = this.colors[i]; + if (color != Color.Transparent) + e.Graphics.FillRectangle(new SolidBrush(color), item); + } + + + //테두리 그리기 + if (BorderColor != Color.Transparent) + e.Graphics.DrawRect(item, BorderColor, 1); + + if (this.titles != null && i < this.titles.Length) + { + var title = this.titles[i]; + if (string.IsNullOrEmpty(title) == false) + { + using (var br = new SolidBrush(this.ForeColor)) + { + if (i == 4 && TitleFont != null) + e.Graphics.DrawString(title, this.TitleFont, br, rects[i], new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + else + e.Graphics.DrawString(title, this.Font, br, rects[i], new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + } + } + + } + } + + + + //전체외곽 + //e.Graphics.DrawRect(disprect, Color.Black, 1); + } + public void SetColor(int idx, Color color) + { + this.colors[idx] = color; + } + } +} diff --git a/Handler/CapCleaningControl/Properties/AssemblyInfo.cs b/Handler/CapCleaningControl/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..44193bf --- /dev/null +++ b/Handler/CapCleaningControl/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("CapCleaningControl")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("CapCleaningControl")] +[assembly: AssemblyCopyright("Copyright © 2019")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("9264cd2e-7cf8-4237-a69f-dcda984e0613")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 +// 기본값으로 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Handler/CapCleaningControl/Properties/Resources.Designer.cs b/Handler/CapCleaningControl/Properties/Resources.Designer.cs new file mode 100644 index 0000000..a366221 --- /dev/null +++ b/Handler/CapCleaningControl/Properties/Resources.Designer.cs @@ -0,0 +1,243 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +namespace UIControl.Properties { + using System; + + + /// + /// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다. + /// + // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder + // 클래스에서 자동으로 생성되었습니다. + // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을 + // 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("UIControl.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을 + /// 재정의합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap air { + get { + object obj = ResourceManager.GetObject("air", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap alert { + get { + object obj = ResourceManager.GetObject("alert", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap bcd { + get { + object obj = ResourceManager.GetObject("bcd", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap bg_blue { + get { + object obj = ResourceManager.GetObject("bg_blue", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap bg_red { + get { + object obj = ResourceManager.GetObject("bg_red", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap debug { + get { + object obj = ResourceManager.GetObject("debug", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap debug40 { + get { + object obj = ResourceManager.GetObject("debug40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap emg { + get { + object obj = ResourceManager.GetObject("emg", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap erase { + get { + object obj = ResourceManager.GetObject("erase", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap error { + get { + object obj = ResourceManager.GetObject("error", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap help { + get { + object obj = ResourceManager.GetObject("help", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_pause_button_30 { + get { + object obj = ResourceManager.GetObject("icons8_pause_button_30", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap info { + get { + object obj = ResourceManager.GetObject("info", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap mot { + get { + object obj = ResourceManager.GetObject("mot", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap plc { + get { + object obj = ResourceManager.GetObject("plc", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap reel_big { + get { + object obj = ResourceManager.GetObject("reel_big", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap reel_small { + get { + object obj = ResourceManager.GetObject("reel_small", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap safty { + get { + object obj = ResourceManager.GetObject("safty", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Handler/CapCleaningControl/Properties/Resources.resx b/Handler/CapCleaningControl/Properties/Resources.resx new file mode 100644 index 0000000..da63550 --- /dev/null +++ b/Handler/CapCleaningControl/Properties/Resources.resx @@ -0,0 +1,435 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABGdBTUEAALGPC/xhBQAABXRJREFUWEft + WHlM22UYxmMeMWo8ojPxH2E6l02dqPFWsrgZ2WaWsbiLjcTEOc8tGq9t0f3hkajTMGJBEDY2GFA3xmCj + COUqpXd/pa1dyzoJjGsgx2DGxOn4fN7m/fWADtNC2WL2JE8gv/f73vf5rvd7v8ZdxqUGu91+h9VqXQQu + t1gsiS6X6xo2XVxAzFK9RdLnqN1iR0WbeL+sQ3xZeVKUNTnOwqYA7+KmMwulUnkVgud8W+UVD+cMi3sU + ZydwZWGvqGh2jpjN5sXcbeaApcx9p/RUWGHBXPDjiChudJ2TJOlJ7hp7YOZWfK3yhghZU9wrdle3itxa + t/gUS/147pDftjB7WNTpbW1er/dadhFbNJkk60MIKgsgsZjRDCxlvMPhuAUDWNJokNzJ+/v8bWhvwr6R + XcQOQogrihpc5+XAqw/0CgjazWY/jEbjbapmx8AcxaivXWLOEAksZ3NsYbRIVWklXWJ5wWmham7p1ul0 + t7IpBBD0xYrC0/5ZrNbbO9kUW2i12hsRfDsJAOP58wTA9vbGkm6/wHLMKJsuDWDpC5/OG/SJS8gcFdiX + LjZdfGD2krPV7jF59l7c1097VcHm6EGbGyfyFXBTNKRlhZADWTWesfnIgbLADKQg5MJHOUx0MBgMd6u0 + 9sF3SzvEpoNdUZEOz3N7BvzCiGuLeygN7eMw0QMjfy81aFNPB0mc1mST6GBxmOiB5Vm182hb2ECRkA7E + S/v7haKmdQyDzp8WcQRKwnD4TWWzva9cax+NhkebnYNNRpsTS5oBX4ns+n8OjHYlcpTjcJOjZyZYq7d1 + aAwSwlpzwWVYuStZykSYTKbZRSiH5mYFUsJMMAF3dNLe332Vj8Zo80DHUywpFLRPvlKdDOtkpkiFREGD + 62/M5nqWFUB9ff3VWF7zB2XtYfNaLEi5cilKMTrtssh78X9+3fF/kEmSWFoAEHkdDCkYQdjbIQZ8C/xO + pXMMrC7q9Yt8MPuMwP5s9xe2ELV4XMdJifZrwAtWL5ECN9dNBqPl2Hokc1kkF7YbaO/totdXakmPWIcG + /8UNuGHoDZJZ4xF6s6WarkWOMyXguXqDWt/SNTeLC9ufhqmoqIgr0zj+kFVHykU4fRVax9CUL38GBO2g + N43sv1LnHIjDwbA/EfSwiZSJeGqq8RBCNX09x4kaWNJVVKDIvpWaX89Rcp6nN1vVuJ66wyXT8SzTOvqy + 1Z6xpKBKhU4kRv8xxwkBvq9D4HJwJ/6fxZ/DAvY3X/05UKTg0T/KpsgARwlqg/3UApw2cnQ/9o3OLJnY + 7AcG/+wP1R7xANptPthJg8hkU1gYTJKW9h75pL1oNEl6NkUOBNuSpgyM9ojWOcImP6hNanGgTUbNiTHM + 5Fo2hwDfP/wsqIKiNwz6f8Lm8ECDRLXB9ptS4/oL/6cH35WYnc9Tgl5qlTp7H5v8wLU1P682UO7TNapQ + t46hby5sz0NUPPwuMVkspZRJ4jlhU+I+1OT8ExniTnYVHhqjZKJfA6jT1sMdNCIlnCbh75YC3NvyW/cR + XFEIUsHdQoD2379xqNPXTmYyakSarfTqE74fmigbBNvpXsYgtrKLC6NOL7nuCyoelhX0ie3lbeJ17Ce6 + kuTvVNxCSAp3CwEGM0tntvyyeZzIcIwHt8E/+uRw98mBhmm7qry+juEcEmmZkQVqqMjlbhNAIsF0Ov0v + 5IfOFpH8v4zHf2G9kwqFbZP5mgDavLnYR8/wu1bmPLzUPjrSLgxmqRHBb+bmkwL7biH85VXqHGeyaty+ + F15OrUeodC39NACIm8NNIwMcPwYHymNae/+eOrcobDh+HoWmHQ5fo98HuVlEgM/ZEEuH5Hb+ND2gh8+M + /Xx2GVNGXNy/B7Gt3iRjVn4AAAAASUVORK5CYII= + + + + + ..\Resources\icons8-automatic-gearbox-warning-80.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABGdBTUEAALGPC/xhBQAAAsxJREFUWEft + ll1IU1EcwBdGBUFvPfRUD0VBjaAeerCHCMyHHkrXsZwhohOE2q6F835s0jUlg6h7J2rp7hJsICzQHiJI + LGePfdFLDyVEEEG9SEEguez0P/Nfzu3cfRjn+rIf/OAw/uec38O2e11lypQpEcWMBRXTWgSpQ75X++9u + x+sLo5rWC84hYo3EavD6wihmdIJ7iFgJXl8Y1Yz1cQ4QbfGBcsTycg4QbfGBmjG8g3OAaIsPZMAv+Tnn + EGHKkegpvLo45EjMzztIgClwRu+Pb8Ori6PjxthW2Pgl46D/tvPmCJWuD9C27lu0OdxHz3depWcv6efw + ytJRjFgD76JCdvXfXhoY6aWDd0K0vaeXNso9tK49TM8EtBw9kjaE160N+AO9ApcuZUegC7IZfaUY1his + ZdmwTirG6C76aPfmxeSB8VTSTb9NHaKh7jZuHNMT0N7hVWtHNaxKNWINQcQ92bTCqhGtDUZG95BEogJH + cqAJUpGadU+zyPmpw7Q52MENZNZeCO3Ebc7yc8a9DwJ/s8j4YB03jkkktQW3OA/EvWGBrxPHuXHoOI47 + D8RNssC5B5W8sGUl9SuMblje4TC/Zt0N8F18+SxePceNQ2v88kHcsj5AxLXsqExJIHQZR9cHiPicHbVK + SXuIo+sDRKRyolb7/Ziub8Rx54EAH/gxIyhHj6QewfH8VHlb3zLZ+oTXp1d5fbS6vnU/k63ZZytzPrpi + S/qVKb2u991n60yamvQt8OQY5sUx4f9QwdH8iApksEiImc+OWzb0GMfyIzKQATHTuXFpfxBd34Rj9ogO + JH5tkhOXlkihozhmj+hACElmh2XYhWP2OBD4IStqRUl9gmP2iAwkUngvNwwlAe0pjtojNDCgSbywv8J3 + 8CKO2iMyEB5pjbwwNEEIsX0J/ofIQPY4gxD24sCeKgvgJ3DC066expEyZcqUhsv1B6iAtIhPh2shAAAA + AElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAABGdBTUEAALGPC/xhBQAAAsFJREFUeF7t + nL1uE0EUhS0QvBDvYCcVCHAQeRoXId4N1IBrRyClSiSwgR7vFoCgQHZkp4wpDUqo+Bnm7M5AFM1aa07n + OUf6uvG17ifvrKvTUBRFUZan3fl8vdnN7rXS/FkrySetJDu3mDXD7mR3K3bMtrCzW59Lq5vf2UhGJ5e+ + LAZmG2l222lYPe2Dg6utNHvkB24/+WR2h3PT//DdHB3/NIPZ77UCO2E37Ihd/d72x/Ow0zFXnJb68fI2 + 93KTvPliBtPwF68jL6e/TPf1vNgdDpppvue01AseWy+vN/oa/JIY6I0WFySObjk9y4PL0995xS8vMDgm + dl/N/eM8rfViKd629gO4B/BTDg2NCTjYfvyxvA+7o7bTVJ1mkj3HYZgPDYyRneGpE5jtO03VsQePcXjf + vpFCw2Kk//7cPcb5xGmqjj14hsOHkx/BYTFyZF2UArMzp6k67mBwUMx4L05TdSQwjASSSCCJBJJIIIkE + kkggiQSSSCCJBJJIIIkEkkggiQSSSCCJBJJIIIkEkkggiQSSSCCJBJJIIIkEkkggiQSSSCCJBJJIIIkE + kkggiQSSSCCJBJJIIIkEkkggiQSSSCCJBJJIIIkEkkggiQSSSCCJBJJIIIkEkkggiQSSSCDJKgKL0gkU + LYQGxcjh+G/pxDenqTr2kGpPLrFa7UnZn2ceDE+Dw2JkZ1AW7zSTrO80Vcce3MJh1B2p+qmsfrrvqp+a + aX7XaaoOCrbs4Rk+gAq40NCYQJ8gXFimN3rvrjlNy4PmRnyorL9bBAfHwNO3C7OZlvV39v676fTUC5ob + vUQUkcX0OL+wu+KX909eljot9YPaSzQ3ugHFnYgWM7yR1rFXCzthN7w8/Z3n5f1XBagPmhvtkOmFgbFg + d17xsa0KLk+UD6I/zw4eW4o/22sGdhpjR7xta78wFEVRok2j8Qfk0Qty9BRILAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAABGdBTUEAALGPC/xhBQAAAsFJREFUeF7t + nMFOE1EYhRuMvozLtok+gxq1UMDAri7EXaXs2WkpbO3MGiyKb6EriVsD9g68AwFcSa73n/mnMeROM8PZ + zT0n+XZ37uT/OnOnq9NgGIZh5ufh0a8H7ShZaUXJxHHaisyVw9YMN5PMlkzaY7MsM+v4WFrj6aLb/OzW + zUIgaUfTjmqonu6Rved+id18w5W9b/ZwMLRnvZ79s/bS2tUntUJmktlkRpk1n7sZTUeNbbugWsonl/f4 + 46n9+u69vVl96r1xHbl59cx+2fyQzp6JTHZUS7noa5tucPym771JCBxv9GcSm3HyQvXMjxye7oL0zJMn + z7dxSHzeHGZPYWxMqQ9L9rXNzjx5lH2bhoQ4WN77rk+h6aqm4rTi6aEslsPUt2GIfBqMMoGROVBNxXEL + f8vic/dF8m0WIknvdfYau/+Jqqk4buGlLL6u4V+Vu3K93lGB5lI1FUcXejcKmdyLaioOBfqhQBAKBKFA + EAoEoUAQCgShQBAKBKFAEAoEoUAQCgShQBAKBKFAEAoEoUAQCgShQBAKBKFAEAoEoUAQCgShQBAKBKFA + EAoEoUAQCgShQBAKBKFAEAoEoUAQCgShQBAKBKFAEAoEoUAQCgShQBAKBKFAEAoEoUAQCgShQBAKBKki + MCudWO94NwqRq7XFXOCFaiqOW8Tak1tUrD2RjkBjJ4Md72Yhsr+1mz+B+6qpOFI+KIul7ojVT1n1U1er + nxxLqqk4Wj6WyAVSAefbNCSkAiuVFxvTjH/eV03zI82NclFaf7cRbv3dj7d9+2icdwia56qnXKS5MZco + FXAhvc5/3azy5M3kxclQtVTItl2Q5ka1n56J0mImX6Q69mrJTDLbwdbo/zMvk3eXCtA80two7/9sw1DI + Zq722hZFDk8pH5T+PLfpiSP9s10zZKYTnXGp9AeDYRgm2DQa/wBGopc1FSaqkQAAAABJRU5ErkJggg== + + + + ..\Resources\icons8-bug-80.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-bug-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABGdBTUEAALGPC/xhBQAABOJJREFUWEft + WOtvFFUUb6Ifff8HRv8AE9xZmqJsd0ZgW0BCWWp4tDxcKIK8FFsSEx/VAlXjB1NrNWpCMUSiSLR0i00w + EEHlIeq3on4UE40K2Z2ZfR/PuXvnzr0z03Vf9VNP8ktn5575nd/ce+fcc9oyb/NWwf6Khe8yDa0zHdX6 + zaj2Nv79iMCv+2mMfLj7/2MQidye0sNPpPXQl2ldKyDgP5BHTKX0UDfE47dxmrkxFLYmpWu/egRUDVPX + fkkZodWcrnl2a2nrfSjsVFBQgrkyClZvHOydW8HevQ3sJ9fjPT3Ql4BcJ28uWnQvp2/MbkVaHwyaNbMr + Brk3DkPxi9MAV34EuPqTD8WpafQZBqt7ufIse97Qfr4ZXfAAD1OfkTgk+10hXhGF/OgIwKVrgaICgS+Q + f2c0aFZv1C2SL6syc3ZiA5TOnlcCFz49CdlDg2DvSoC1uRusresgs7cPskMv4+xOKEJL575Gjo2yQDaT + /0QeuoeHrd6C9pzVuxbgm8ssWOHoUbA2rlHGg2BtWA2Fj0+4Qi99z16Atkh26CXmY+qhT3jY6iwV1eLe + QA7s3QnIDOwLHKuEzMFnAC7/IESWzl+A/IcfiHH8wlfx8JWtnOekpTXCYO/YLIgagf10golzZlMWiLhe + VZ4sJ+HyQ7SEtMeIzFq3SiarHfiiucOvKF+8RyBgjlzLZcxudEKwL3XkLYUs9+ZrClmtMDseZdsjO/gi + 5N8bg+LnE5B/d8zrl+Qygu1vY8Hd6FQwOxezPVOaPisEls5dgPSSVi9hs5H/s63tTi7Hb+zglx4onp4q + i5v+Cq+TYO/pk8nmBGb04RiX47e0ERoQjsvb3eV9/Uj5XsdihaxhLGtjqSsde8S9Z2gHuBy/pQxt1HGk + hOsIpPNVEDQJdt8mscetHjefmnp4hMvxGzocEwS4oYXALesFQbNgbep2+Z/aIo2Fx7kcv6FDoECaTZeg + OVAEYhXkjlUQKC+xrSxxQiJoDljS5vzVLzGW6cLxcV0Q5IaHBEGzkKWkTfy4DynvirFo+Fkux29me7hD + JqF6jkjoNJHvNwPFz04xbqp41LHQMi7Hb9TgoBP1EMyZik1nFmnPuCSNgZbU4c0NH5LHchUTNRnmoTOC + CCthJxUUxsdlooZAXEwgFg5m11JpLDzJZcxu1H3JZPmxUfG29ZRZXmSf7xd8VJnLY1TmcRmzG5U8VOU6 + D9GJIqrob6+wBCuT1gKWnL+7yrjobPe0ADNVt6UpI9wlPQj2th63B8EAmef2ysR+yEcXBytYHQ78a2/v + UcbN9oUrefjqjFpDmYCOO+ftCbSPgkp+M96Jdd774jedtWrJfw0y+3epzxjaCR62eqO+VV5qgr29V22a + EJl9O9xAWKYVJ6ewnL9YbkknJhVfWlbvzCFmqMzjYWszagmR4IZMaK6IuG0n9hiU0NnYYwuhcPy4IkgA + fekZavBlLsx5v9lLtPt5uPqMRHpnkkDpITOwX/zOHNijisL0VJxMQu7Iq7jsMeVZjpmGxTlGfSu1hgFB + FNBXWkyeYQIpnQT5EGjP1b2slYxaQwxw3RtQAS519oWD2PMOBo3P1Py11mqUq6j7wmBJhDgWfcAujl/n + 6ISgJDzn/37zGp2b1ENQmU5lEoqhevIYu8Z7dPD/EYncwd3nbd781tLyLxOgcrDBNHH8AAAAAElFTkSu + QmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAK + YQAACmEB/MxKJQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAJrSURBVEhLvdZd + b9JQGAdwEr3wTm9M/AheqJlfxWSfQudMBnYaWarQ8WIyMBlUWoSp0CkzawWM6C5G0aiZzhfoMCZidIu6 + bG5DL8yc0mMPO8cwOIUyWv/J/6aF55eekifYzMogHT424AqdoGl6H7pkfSgvn/bzYu36XVmlfNHNU3Tk + MLplXRwe7mn0zqw6pyyCuYUlIL+sgLPe6O+BS+xx9BHzA1GGnVLThTJ4UvxUh2ELrypg2BezBseomFeA + JCsg84iMn2FCfegrvacZxW3BtWMf9se2TMH10B14aSdO+a719uSdUFxTcaMorg7e3bHbPZH0yBVBlfIl + IqLX7OMyeNbwzvPz74HDw//UlsxeNFo/rnCSCgnZqjNwE9x6ME8E2jXThN+QCurgxXA/Gk8OROPizFr1 + lwreLa2CnnFtyVzmp2unGfYIIlrTiP7YAvX+wx/uAtfeOZeaUbWjTiOiNe6Q4Elm5Y3vCGxs5es6GNHw + yfvPiQCp4mwJXAgmVDvD3UZEa9qhuBgXci+IUGNNQ3GN4KajuO1wQyjDCkPNPySjJeEQdWqow8uJiGiN + wx8/FJyQlneD4kLcObaNG0Jhzvu5PuGevEoa2E3fLq7Un9wZTKpDTCSLxuunP5XaM8pOvi5/XK6RBhot + PLHxRKZq9/ASGt05lDey380KpTeVz39IQzt1Y7OmLYfcmms8cRKNNJ46HhaUbvGeUByMFytfDOGmoDhG + cVNRnE44RKNTuW+mojh0IH6AhFuK4kCcCQsLxQ/b+H9Bcc6Nxg66rwqKtsfXAxPTK3C9olvWB/5Hosbi + R+F6RZd6jM32F+J393EUKic/AAAAAElFTkSuQmCC + + + + ..\Resources\icons8-hazard-warning-flasher-80.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-help-80.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + + iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAK + YQAACmEB/MxKJQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAKmSURBVEhL1ZfL + bxJRFMbrwvj4a4wLXdRUXZo4vGkxtDst0MQFGKMwMB1eKdVNI9CdaNQmxkWtIQyvqRTqprU8VpZuNLFt + FOq0tbpo7ALvCbch0gsZ4Frjl3wJmTnn/HIvl3MPff+F9NZXZxi7cFnBCka1K3lf7Uzcg88KNjZwhc+c + xmH0pOFSar17Pmfwvd0YCxertsjavmPmUw1se1zeh2cGf2Z90D2fVXMJJU7rXhoucVXPi2vm6dKe/021 + 9jC+29YQYw4X9/QesazhkwO4TGfSuUXXSCD3zfe6QoS0s3euUhtGuTo+5cDl5EnHi89NofzuA2GHWFiO + IdcULOwg+FNctr104ym/JVz6QSrWjS2hwne09RwuT5aajV8yBhalXlbabKhlDOQkrSt2EWOaVTuhd6dX + fTIOUaf2z1VrWj79ARgY1pDKmVTBd0JKfLn0s3aoz9LBkffw7FAQ2/webArmtxln8jrGNTToSb9rtVoa + YPh16N1iFuPqYvjoWYN/YZOUAKYBBhu8C5t/dDhoeZbpkkQKBtMCm0NFSWEX+jEWTrNgvBMpH5CCwbTA + tsjqL4aN3cBY1BpRl7K/+EgMBtMC21FvR33fhbHQk5Pj9pljAqNFYmx9q2EbSMFgWmArYihZYQhj/+Hh + unZbODXky2yQgsG0wAZvZn10dOUkxtaF2mXubzcQHZ/OYFxD0DLNocI2KYkG2PSoRcsEocu/4Jn9Skzs + xZ7ZL9AuVzDmqDQuod84kduifS0OT2SrKjZ6AWPIQrPS2K2p9y1PeKe+ObUsabi4CZdvL3R3PqM1+mh5 + 8QkuK09aLn13ZLKHYW9ycUvrTltxuc7EOKLnUfIyGlkrssfbYL6KBrwllSN2DpfpXjCkyx3olVySwWn0 + dOx/Yeirr+83SXRvTbd4pKkAAAAASUVORK5CYII= + + + + ..\Resources\icons8-info-80.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABGdBTUEAALGPC/xhBQAABF1JREFUWEft + Vt1PU2ccZtebu5gXy7Ys2TJ3vf9id5rtZhdeumQxQbaQQQnooAWhxZaPtpSV0p5+QG0nLT0gVaHGQqQF + lkgUK6UyQJSYbZmaqVkCi5ydp/m97Hh62h5LSxazJ3mSk/M+z+/39LwffateOySCX22lr317rxTCS2Uq + h3Ss+o+d9T6hFMJLZSqH/wPuF//pgDVnLJ/09bU/dwx2PyuF8KIGlSsvTp2xftxs9qdH40sCP5MqiZH4 + baHFHMjUt9k/pbLlQTnCMZY9ZDnDMZYtZCXCMe47ZCXDMZYc8iDCMb5yyIMMx6g6JM6oZvP5ZRiUCknJ + jSWeGRyRVTU0cRcfFKuJcfQueE42mrw31YT7MXj1UZ3e2UG2oqAfnlYTEhnIlovmXv+MklFK6/Dkb/Ud + Tg1ZVANL54fe4ksHGciSi3qD2x2O31I0gl3c+P269oHjJH9lFAuJ9w0GzkXyXJxq6z/mjszuyI2R6ZSg + t4+u1bcNfE7SklEoJMdf/7tGZztK0lyc0HQeOufk78mNLZZApqbV/hnJ9g2syRZxTcr7oDcykEwZzRZ/ + Um4UN4SHhssG1JT3EUMnaDg/Gjpdgcj0y7tNKeCggW8K2q9tXnDMbBQiNNCSbQ/ygOjZcI7z03B+fNfa + f9w7nnwhNcsD9mgDH0U8iY1f7jwV1JD3JDZt2qEjZM9CHtA7lnxRq+0vvgG/1na/Y3Jf3JKa5QHdXdHp + zNKTvQCrqafC8o3Hwu2FR1niGe/Y+F1R6zZGp4Uq4Q0qkRPQxI1vVTf2HabhwtBZAj9LzdKAg/rI9wvx + jb9Y8yUx0NzUQ+FSMCWEXfPbIJ7xDmGZDh54qUxOQK01sEBDxdFgdId5yTpkAbtPez8Ic7NrrOni7O/C + ZGh519cbW7ad5Y8a63xvgnbx2WeeSk+G0rvQMD28qIFa0oA4xhqNnhG8V4XaVvvJoej8rjwgZ4zGVmhq + 8eUQzmO6wmVNCuCMV7xToZVdaOGBFzUwJg04HJ0Xas86TmZNavBNU897vZ7or9KAg+189dzV9edohPWF + KcSXI0teiJqVudhD0fNnNiRqoJY0YI/Y64TG+j5Z1EFnDS6yAho9FxxxzqyiAYhNgHWGaSV5Xgy0hb64 + /FNKuHPj302FWqjJ6uusgUWSq0edwTXCrktave/+ys3Hew0wZSHn3LZNe+EtkudFp8Z1SNTuSDdM5tYT + oUXve8DqoxfJS4PbOHFZIeCOmoCWmuG3lQK6TdEJkuwfvU3n31WaYuxWkuSFQxf+UmmKUZMk5YHiJhGP + EhrOiyFLLKO0SWi4vJAeM5gynHM4Smg4B+6uS/5YnmOmIlA6qHHO4Uv2d4wdw5oEMa0+cyyDcPkO6opB + 8a9OnEKss1FufhvEM96xLwfK/+oqCs40EcdOZM2xvrAJMO0gntmaA3FZEKf2pctCRWE7HfiQ9ybXWYBi + 5D3JTVzRyH4wwCU0zF1f472J1UKERunC+pqgquofdvoa6+LDQkwAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABGdBTUEAALGPC/xhBQAAAnhJREFUWEft + ls1rE1EUxd/eP0BcigvBpS5sQcVdFEVTUFuoOi1pG8ViotSkBGea1tSQzJBObEhSMOmHMYm2JqmlWgNq + IoiLdiXBD1zozmVx6cJc33u+DIozNZ1JYsU58CMhN/eew7tvYJApU1tZMIe2wRSaw6w1lDh6jj/3Mhv9 + ghgaxMOgKcRQidnoFx7iVR3eGCrMRr/++YDvvAgWL6pTvorgW0y9j9H8gPJpBMEObT6Oq/cxmh/wlQvB + LKdO/gKCrxH1PoZ5B41iBjSKGdAoZkCjmAGNYgY0yv8RcOu98vd6pT0cL+0juH3uA6/Du5ffT+5800je + yrtWs+KxrrOeiR3Mtn71jYY+9fAitIpeQfrACVI3s/+zAsl7n8dvp6EV8JEZ6B+TqzSsII6xCBur8Oxl + BQPzKyVw+SQYuMaDP5YA8tvPTM5mwe4SwDnih9TSk19qm+lN5pbBKcbIaVbP82I7i6EtPIAG7By4DPst + JxW8oahicGsmC20Wq1KzdHIwXywp9c32JguP2cqlaRZDW3hIJfWwSJs5hwvuLK7AoRNn4JTtkmJidwu0 + Hs88gCteP/0uT6dpTW+v/Ua4ygniKouhLTykQlbUfrQDjnfbwBMIQ9sRK5wbHFJMHCM36WBiUDutqUyO + 1vT0xtM5sI2GyF18wWJoCw+hKx72TyirOGztUgIQyJ0jqyE1Qv/QdaWmpzeSKbAnWvSxGNrCQ2hAQnJh + CUKJFGQfPVUMaiwUyyAn72Lz/G81Qj298XSehvtxetJ6n0fezmJoa1hOfHEGo9BsHIFoba3k4Vjv4YMH + WYSNhf98HzettQRBLJO11nVypkz9FSH0HdsLU8gVsNwDAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAABGdBTUEAALGPC/xhBQAADlRJREFUeF7t + XOlzFMcV96dcH5L8BTm+53alkg+5/oNUkvJ3V0VoDyGMsGFXO7urlbQ6kXbn2FurvXQghGStThsMso2N + IWAS4jJg7LKNMT6CQRDQEYOh079mZMFs7zkzwgev6le1pZnu9/qpu9/Rr+eRh/SQvr5U74t/x+oM/sni + DFhtLjnU4A0dafAo521u+ZJVkFYszeJnAH7jb3hmp+/g3fpm0bKlOfBH9KF29/WgOqH/txZBbKeK+LfF + JX7a5I9f84gjK10DeSIOHyCxiRfJwNTLJD17jGQXjjPgN/6GZ3gH73rE4ZWm9vg19GHzKKfq3VIbVepv + VDZfLapzKz+2CHIrnUUfbmuNXm+LjN+UR58jmbl/kKFnXtUF9IG+2sLjNxt9kRt2t/KB1SX56Mz+kcr+ + y0t1TulRm0d+lipu1SvvWYuMP89VgpEIjy+SFnlszeqW1+weeaHeFfyVKs6Xh6A4q1t50e5Rlulyu23E + TKsW4NmTnL5D981V+g88bHX2/1IV74tLj/uC37e5pSQVeKV3cPZ2bv44d3CbCcjQm5q5Q/dJzMpEvaP7 + e6q4XyyyCeJjVHlXPeLoanrmGHcwDxKpmaPEHRyhs1G6ahXEv6liP3h63Of7lk2QB7Z6Q8vhvebvcXoR + HlskW73hFTudjY2N8jfVYTwYgnWly+INZ192OT33xZt1xZCibpGjN7NKjczZB2atLY7+n9sEaal7IP9Z + boEvKFDqmdkoJ1dXIn/L6pau1LnEn6nD2hxCBECVdyOQW7jDE24d0sh+8mRnnDnCvOdmAjzBOzj0LPf5 + OjAGui/esDjEP6jDM5egPLpsV+C88gQCBqePEG8wSzy7Q0ROREhnbB/3PTPRQXlKlLe3L8RkSeZf4b4H + YCwYk+lKrHcEfkqn/HV55ABXEACzrrFFJk9PJ8itT3Lk6oUs2eaTSw7AaIAXeII3ZJjMJ5hMUgm5lT0H + CWbiFlfwF+pwjSUYDOx5pZZtd3KK7OoMkXfPpAlZGvocGIBPGeG2MQPgNTmVuE+Gd8+kyK4OhfQM5rlt + AIwNe6LhhkV1Vc7BYPAYI+CH0L7+MLn2fvY+wYG1j3OkqU1hyQBeeyMBHuAFnlo5MCNb+kOkjcqamz/B + bQ/DYndLZwx1cRBdOHrSK3yrdoK0SDnSF4lwhV7HwecGiDuQ4rQ3Fu7+NDl08P7Zdy/+958cCcQjTGbI + rm2PMTp3Z1ZsHimuDl8fIcJo8IZWivl57eExEohFyGef8AVeB/YiZ1eI7TW8fowA+gYP8OLJsA7I2h+N + UNn3cPuBn9hAne0tzsBfVDXURmpse7VYhNERnyStgRD7r/IE1eLE0STZ1RWnbfnLRw8wcxzdcfLq0UEu + by2wWloCYdJFx8DrLzR2iBoVeUlX7Gx3K0mPNLrKYyAO76cGQyH/5ex5xXDnyhDxi2HSn10o6E8v0Gdb + MMJ48HjzgP16Jx1DMLef26cQHF21CUpUVUd1VOeUHqXxIjcxkJp+hWxvC5HzGmtbCd58LUWa2sMsS6Lt + t1bAiO3wh8kbpyqbfffivbNpOhaFjUnbLxIQyGXW5NpQ5b3Um5otcFmwVIT+DJmeLb5Rl4MYj5Z0J6pF + TzJPneYol1clyM8kiNCX4oZ+PcmZ2za38ryqlsoIyUe6fFeznFnSl56j+164rNEohQ/fypBtrQoxIgGB + PtAX+uTxqgQYC1ywvvR8Qf9YKXavsoIVqaqnPDV4lWe7B6ZvazuDQpvo0sW05wlSDTIjMeKPjd/Xfy3w + R8dJZjTG5VENsB1hW+JNmi7q/9o9yryqntLEIg667nlpeOpIk9Bg7UvlXmADZyHe1JECPpUCMTf6WHqv + ckNWCkoyhmOAAj7QBc5Y/i70/VBVU3HC6RkOgHidPNEaIu+fq32paDE1HSc+ufYQr0UaJlN0/+L1XQs+ + eDNDnvAp3NNC6MTqkjyqmooTnX0f8E7P8J+JZvQvlXuhJ8QrFbLpQSRFZ+Fg4SyEL0yNyUVVTXzCoTfO + bbWNgV1dsZrchHI4dJCGeDT84vEsBVjNxUMD3D714My/UsTZA2f/fn6w0Ftbwje2OMVfq+oqJKsr6G8L + 77upbRyfPEx2tCvk9mU+Uz2ABXR2KUQZrTzEQ8gGJ75cyFYL4Ig/6VfYmLV8W5XxT6mOfKq6CgnlFrxE + KZKTE5r0kJE4eSxJdlYc4p1gIdvJY8avhnWMT8ZZmKrljTyo3R06qarrfkKRDupMeBvoUx2Rghyfkbgb + 4kUqCvHwDt6tJmSrFu+cTtMxRwt4Qzesnqcp8G1VbRuEKikU+mgbDdIQp8Ej0eVr/HK5F2+/nmYhXpQa + sPbIGN1zo4wvgN/+8BiJTrxAl1eYvPWaef9MANuK3S2ysWv10dSeuMZN/aPEDFVS2gaB3DOkU4lwGRmJ + W5eGiNCrkO2tMpmbT5ALb6RZlge4QB13/O0J+sxN3zFj79OiQ44QkXMg5Q6OLG9pFreoatsgqyCFUTam + bdARmyBPU3+Nx8QoQHn9UTr70qWTsngWSYVJIFY+56cXk3m6D8YK90Gqozt2ISSpatsgFDfyDl1axCw5 + fiTJZWIUhvdGSYwqr5J9De9E02GyZ58xEVExHHs5SceeKdAH6hO3epXDqto2yOZV3uM5tA7qE507leIy + MQIXz9EN2y9V5RCvfpRlbRA58J4bgbPUH3T0JAr0Edv3AqHeyruq2jbIJsiXB/IvFzRArkxPpqMc9k7E + yDzd33jPSmF2Lk7GaVveMyOAMSO5oNXHAI3dabR2SVXbBqEOGWcB2gawgviP85gYgZY+mbxPDQbvWSnA + sPj6Ze4zI7DyUY6NXasPJFmtbvmGqrYNQjE3MrvaBtTvIfXNQdNgE4IVn6ncCyx5uBq8Po2CVRAL9IH8 + INXJLVVtG1RMgWajwVvd/rcOtOHNELNRVIHFlrDZ2NkZYT4fT0mlgKTuTupg8/o0E0WXcDEjYjYQYczW + cL4yMxMn7WH9Ge1qUdSI2D2h85tReqFFfOJw1Xk9GDVELLyMidko6sbAkYaTyGtkNlAhoCSjFTvS8kCU + xcu8vsyGOLSf70hTixPuTuZLFkyaBRgv1+5BpsRSLhOe4R0XjiCLFAeZjaKhXLFkwmYhQ63bU9SgNLWK + zEmGkYB7g6WN3/gbniG1lp17MMoDiiYTUHna5E8UpLM2Cz2DM+y8GQ4yIgw4yY1ekQG/xydjLOzzS2HS + myo8s9gsbPfHr9U1B36vqm2DSiVUzQYMCVJVH79dPmT85B2cnMlsM+f1ZSZKJlRBNq9yqlTtsxmAUE91 + RsnRlyrP+Bx/ZZDs8Ee4x49mAtkqaoFfVdVVSLiGipuUvMZmAZWtg0PVJwWStE1raPPKhgFfCIdKUouq + rkLCfVtcGeU1NgO4goCCyFpCORgYV0/IlFI5HtaPNcvWyODweDOupSbzR+i+p7Dib56CKgGsM/pAdMDj + YSTCexeJ3aNcUNVUnHBZmVfaYSRyCyeIs2eAHNiv/6j0wP4Blvg02y/0SqNrlmbRraqpOKHEv1hxkVHA + OUt/rLLIoxzQB+oNO+PmXeaBLqxuaa3eIf1AVVNpogp8pntgmnulQS9Qe7yjTa6qNLgcrl/MscoJswrY + uxJTKG+bU9VTnlDSWqzAUg+QCkKaHPUnPEXoAc5tcPwwOH2Uy7tWQAdUeStVfzqAKvBFGh0UFFnWClgx + TyBjaonIvqk4K1QCL54MtaA7OY0S30OqWionlPliL8Ss4XVcLVAyhlDNzPNcVE+wUI9TnlYLUHiOQvua + r8PaBCnuFod1JxiqCdX0wshQTwiOrFoFJayqo3rCJRN20WZskcugEtQSqumFEaHe3Ys20lKjT/6uqo7a + yNIc/CuuPdV6XtIq01Bt2NzSEB4QHrbWeEMUd2Nwvc3iCPxZVYM+srrlRPHLhsWhJ1TTi1pDPYzRsTu7 + TP2+iDp8/YSrn3aPdBZXQXlMeTAiVNOLWkK9zvjULWo4Xn/M5/uGOnxjCBGKVZAv0/9oWdfGyFBNL6oJ + 9QJZ9v2EyxVHHNUSjZN/YhWk61KZnKE/NkncvSFTaqqrBWSALJCJJ+s6UKNNlXcDXyNRh2sOoTqT7okl + PzqBT9U1706SDuqTIQ3PG9hmAHda4Be6qCyQiScrgNpnjInOvN+pwzSXcB0CM7EvM1fiFO8E2Z2eI9vp + HgQrfOW8eQVKWlw+n2FWGLwhQynj159ZuI2xcM85zCR455TxFRiWUgLi+y347AlzbjMxVsDNG7QRePt0 + il0GguHAzYJSfiBkhsHAnoetSR3W5tLd1Jd0xtGbWS7nJ2Iw3ck8c6qbe8JkZjbBTuD0pLTQFpYWV2+b + u0NkJ+0bN6rKOdDw8xy96VWbRz5tmsGolODiWF1yDB8fg/fOE1iLyN5FdssShUUI8YLxKJmeuXtdH7MI + X9dY+TDHFATgN/6GSn68k6fvBuMxss0nsQIj9IUPL/J4aQEZG7zKql1Qooa7KnoIH2iwueUlfGKumgQE + blyiXMIfmyA+KUtcvQmW8mpskYjFFWT1ifiNv+GZT86yd9Gmmo/5IDEgBBDbykuGRRhGE4udPVIUWRzc + 9DY6n1gLIANSUsiqILrQHdtuBiEhaxPkRSo0PgF6S09QXyvYnnv3ojRdrvLipn+hzQhSM9vz1Mda88h7 + 1sz+QCMsK07PcACEM4wGtzJrumO8GYSb3pZm0Ust9kWcrbYqe2/CeTViZqIPVAzg0Bt94+jR6gp6Hrh1 + NYtw3xan+zav8k9WZ9KeuCYER7DU736Ie98LLGqAW4SyNwC/2Ye46TMYD+p7EiE4vIxCH/SBG5R0y/DW + VfNhiK8CoUgHoaHFGaxHzV2DN/RSg0d5hxqhS1TJn38K3iKIy/gbnqG4Ee+iDaKHooU+D+khfQ3okUf+ + D1WHWk/swkxBAAAAAElFTkSuQmCC + + rell icon ( 80x80) + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABGdBTUEAALGPC/xhBQAABe5JREFUWEfd + mF1zE1UYxzOjd+r38AVH/TBcOIgX3sggQtJqgQIlpQn2vSSbwiabzW42zXvSNiUJjjJKodBC6oXjgKDA + ADpjWxTEGwWkx/Pf7gm7ydlkU+SGZ+Y3k9lznv95Nuftedb1wtqOfcH3uv3S8N4htXrwWGqpL5i5TLlp + cPngxNQS2tBnZ+/Eu4bb87WPeoZe8/ijg/snEstjavVBbG6RJE4ttwR9RtXqnwfGEsuegcjgTu/kq4bc + /2der/dlj0/y9wXTP0Vnz6/zAnGCNLuwTjWueXyRAWga8s9mu72BLXuHleVw8exj3qCbQSzMP+4ZVmvd + R8U3jWE2Z3v84of9ofxtrVrjDvQsQPNIKH+ryy99YAzXmXn8kT3Dcmm1Lli5RILxPBmX002DOQW+0IAW + ezYolVa7ByKfGsM6s939ke3D8txvTEQuLZCQqpK1Gyo5fVohkeKZ+gBOgQ98oRFSFF2TtQ1F59Yc/5NY + c5hW5ixR4VgqRh7f1Qi5lyBPftdIUNHq4k6BD3yhAS2ZakrF+Xp7fyh3yz0w+YYRBt+ws7Ah2JqLzi4Q + JRMj638kdGFGbVEhxzNf1cXbgb6XFlWLBjSVlKyPgT5apUawcVrubhwlbLdinUzSaf33rjU4xnE1ToWd + bJ6a3pengX8SSyde3ViTYn7+kXsgfMQIx2o4hHHOMeGAmiN3b/KFwfUfVCIky6ZA+AjJk+Rn2penAdZu + xEkgnq33p7fQVe5hjhuCHcLRmQUyV45xBc1Ek4plRzaCNvTh+ZoplRUc4rpPdOb8epc/ctQI66ntn5ha + ZsIBJUUervHFzKzQHRnUpi1BmUEb+vB8zfyzSjeemqr79Y5pNSOsDcPFj7sVjWr5IslMt39rxlReIbGT + S5bAgFJeIql8+1lgJGlfjA3fMbVyf9ch4W0jPExveJRd/MJUhdy52v6tGX/9qtF//OkaYuAZ2ng+PG5f + UYiQqui+sdIF0u2TvjDCc7n2jcQrTBh/deOx0o7sdJQE5Lh+XoKJaJz+ezK3rx0YUzBN894RtWyE53Id + HJ+6yBrklPO3BvduqyRXDJNHxkEO8DtbEPU2c992ROnYLA4a06IRnsvVF8hcYQ1arjPRwrRoCY6BZ8UZ + sel5KzA2iwNJrxEevUGE7HXW4Bckkp9RHaMm7YNQUyLXxw6/EKkH6BUy143wrAF2CtYcLzigpGNcHydY + AjRPcacEYhvT2RgcngnKFNfHCZYpNm+STpFmzpJYMmYJEr9lPRG4wPVxgmWT9JiOmc0wKqVIMnuC5It0 + zVHSOZGMRTef2ALLMdN1NDLipELjEc59Tc6dab55LiwoRMw6T8nM4KC23McfHwq+g9KQ17kVeCklbX8t + xlL0GqSD8XxbMaqU7+/oDWwxwtuwA+OJGq+zHVoVG0Qjf6/YH+xIAo7Jmt6Xp2FHU7IAQ1GNupXnwAOZ + Sqs8j3HzCs0bE/YZTyPSzPknbr/YnG4hSURRzXNqJFz4llROOc94ylWF+nzD1WqkL5C8uv2zkVeMsKzm + 8Yn9kcLZhzxHBlIiUVM6SijQFz4snbJDzJ951DUQ9hrhNBsKlp4htdaqUJ+QU+TBL/algB0badnTbKUR + FE2fDyqXtm7NvWSEwzd8jkDFzxOZpPnadxedT20j39cUqnGySRd4adm5yyu8boTR2ty+E9toMV0v3AFd + vDTr7SzH4wENaJm1h6TSqtsX2WYM78y6fOHdg9G5FSaCKQgliqRQotfamv3RYgdKzMqXKjmm5Ejc+ulj + xd3ppw9mbp+8DRW/eU1Ks+eIoGVIqqjqpUGrzYK2Oz+qet9QPE0rtnN1HbwwptXtE983htuc4XMEKn4U + 1UwcYEdOpqskSAeW0zTZzKokWVB08BuZOdqwbht3bzg//xAbwvGaa2cbHzAj/SiqUbeaB+sEHMI459x+ + 6XDb3boZw2GOU37/uFZDaejknpVLi/rd2juWqMH3uXwC5hkuc1yPPcNKBbkbEszDQuYGwG88Q5uHlo+f + HAq9Zbi9aOZy/Qe4xYHxvg6NpAAAAABJRU5ErkJggg== + + reel icon (40x40) + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABGdBTUEAALGPC/xhBQAAAW9JREFUWEfl + 2E1qwlAUBeBndygvC9CdCHHcuIkWqp27DK3toLiIOrRkkno1B6TcJO/e95fSA2fiUfgwPogx/yLNYvGw + K4rqOJt9UPfWPtJr7Zw3BNlPpy+nsvw+V1VD/SrL+s3a1+zIxpjJBfJ8j0NPy2V9KIpNNmQfDs2GdMGh + yZESHJoMqcGh0ZE+ODQaMgQODY6U4BBuu28wpPSbQ7jtd72RmsuKcBtXNVL7m0O4ratipM+BQLitr85I + HxwV4bahDiJ9cVSE21zaiQyBoyLc5loWSTebdA/HfUBShNskJQuZWp4xx/n8nXujtAi3Sft5MbW8PwAc + 4yWm/zUt73ZIDtY+jeiQrNmTHALp004ckhM5iEPUyNWqqbfba9m9p844RIMkGCJBinGIFKkBqnGIBpkM + h8Q4OMFwSEhkcBwSAhkNh/ggo+MQDTIZDpEgk+MQF2Q2HNKHzI5DCDDaR8AIQeiml+6CqaN6iB43xvwA + iFk1KsvXeuAAAAAASUVORK5CYII= + + + \ No newline at end of file diff --git a/Handler/CapCleaningControl/Resources/air.png b/Handler/CapCleaningControl/Resources/air.png new file mode 100644 index 0000000..d897308 Binary files /dev/null and b/Handler/CapCleaningControl/Resources/air.png differ diff --git a/Handler/CapCleaningControl/Resources/bcd.png b/Handler/CapCleaningControl/Resources/bcd.png new file mode 100644 index 0000000..fc99058 Binary files /dev/null and b/Handler/CapCleaningControl/Resources/bcd.png differ diff --git a/Handler/CapCleaningControl/Resources/bg_blue.png b/Handler/CapCleaningControl/Resources/bg_blue.png new file mode 100644 index 0000000..2ae2259 Binary files /dev/null and b/Handler/CapCleaningControl/Resources/bg_blue.png differ diff --git a/Handler/CapCleaningControl/Resources/bg_red.png b/Handler/CapCleaningControl/Resources/bg_red.png new file mode 100644 index 0000000..981e312 Binary files /dev/null and b/Handler/CapCleaningControl/Resources/bg_red.png differ diff --git a/Handler/CapCleaningControl/Resources/emg.png b/Handler/CapCleaningControl/Resources/emg.png new file mode 100644 index 0000000..9e5daee Binary files /dev/null and b/Handler/CapCleaningControl/Resources/emg.png differ diff --git a/Handler/CapCleaningControl/Resources/erase.png b/Handler/CapCleaningControl/Resources/erase.png new file mode 100644 index 0000000..e6f0f75 Binary files /dev/null and b/Handler/CapCleaningControl/Resources/erase.png differ diff --git a/Handler/CapCleaningControl/Resources/icons8-assembly-machine-40.png b/Handler/CapCleaningControl/Resources/icons8-assembly-machine-40.png new file mode 100644 index 0000000..8c48dfe Binary files /dev/null and b/Handler/CapCleaningControl/Resources/icons8-assembly-machine-40.png differ diff --git a/Handler/CapCleaningControl/Resources/icons8-automatic-gearbox-warning-80.png b/Handler/CapCleaningControl/Resources/icons8-automatic-gearbox-warning-80.png new file mode 100644 index 0000000..2bd7235 Binary files /dev/null and b/Handler/CapCleaningControl/Resources/icons8-automatic-gearbox-warning-80.png differ diff --git a/Handler/CapCleaningControl/Resources/icons8-barcode-reader-40.png b/Handler/CapCleaningControl/Resources/icons8-barcode-reader-40.png new file mode 100644 index 0000000..e0ba761 Binary files /dev/null and b/Handler/CapCleaningControl/Resources/icons8-barcode-reader-40.png differ diff --git a/Handler/CapCleaningControl/Resources/icons8-bug-40.png b/Handler/CapCleaningControl/Resources/icons8-bug-40.png new file mode 100644 index 0000000..9efaccf Binary files /dev/null and b/Handler/CapCleaningControl/Resources/icons8-bug-40.png differ diff --git a/Handler/CapCleaningControl/Resources/icons8-bug-80.png b/Handler/CapCleaningControl/Resources/icons8-bug-80.png new file mode 100644 index 0000000..1c529aa Binary files /dev/null and b/Handler/CapCleaningControl/Resources/icons8-bug-80.png differ diff --git a/Handler/CapCleaningControl/Resources/icons8-code-30.png b/Handler/CapCleaningControl/Resources/icons8-code-30.png new file mode 100644 index 0000000..95f99b8 Binary files /dev/null and b/Handler/CapCleaningControl/Resources/icons8-code-30.png differ diff --git a/Handler/CapCleaningControl/Resources/icons8-deployment-40.png b/Handler/CapCleaningControl/Resources/icons8-deployment-40.png new file mode 100644 index 0000000..db1b184 Binary files /dev/null and b/Handler/CapCleaningControl/Resources/icons8-deployment-40.png differ diff --git a/Handler/CapCleaningControl/Resources/icons8-emergency-stop-button-40.png b/Handler/CapCleaningControl/Resources/icons8-emergency-stop-button-40.png new file mode 100644 index 0000000..1ee1522 Binary files /dev/null and b/Handler/CapCleaningControl/Resources/icons8-emergency-stop-button-40.png differ diff --git a/Handler/CapCleaningControl/Resources/icons8-erase-30.png b/Handler/CapCleaningControl/Resources/icons8-erase-30.png new file mode 100644 index 0000000..d2224c9 Binary files /dev/null and b/Handler/CapCleaningControl/Resources/icons8-erase-30.png differ diff --git a/Handler/CapCleaningControl/Resources/icons8-hazard-warning-flasher-80.png b/Handler/CapCleaningControl/Resources/icons8-hazard-warning-flasher-80.png new file mode 100644 index 0000000..1ae1ccf Binary files /dev/null and b/Handler/CapCleaningControl/Resources/icons8-hazard-warning-flasher-80.png differ diff --git a/Handler/CapCleaningControl/Resources/icons8-help-80.png b/Handler/CapCleaningControl/Resources/icons8-help-80.png new file mode 100644 index 0000000..04d5900 Binary files /dev/null and b/Handler/CapCleaningControl/Resources/icons8-help-80.png differ diff --git a/Handler/CapCleaningControl/Resources/icons8-high-priority-40.png b/Handler/CapCleaningControl/Resources/icons8-high-priority-40.png new file mode 100644 index 0000000..ddc9455 Binary files /dev/null and b/Handler/CapCleaningControl/Resources/icons8-high-priority-40.png differ diff --git a/Handler/CapCleaningControl/Resources/icons8-info-80.png b/Handler/CapCleaningControl/Resources/icons8-info-80.png new file mode 100644 index 0000000..7f5bd87 Binary files /dev/null and b/Handler/CapCleaningControl/Resources/icons8-info-80.png differ diff --git a/Handler/CapCleaningControl/Resources/icons8-pause-button-30.png b/Handler/CapCleaningControl/Resources/icons8-pause-button-30.png new file mode 100644 index 0000000..3fa608c Binary files /dev/null and b/Handler/CapCleaningControl/Resources/icons8-pause-button-30.png differ diff --git a/Handler/CapCleaningControl/Resources/icons8-rounded-square-80.png b/Handler/CapCleaningControl/Resources/icons8-rounded-square-80.png new file mode 100644 index 0000000..db2b607 Binary files /dev/null and b/Handler/CapCleaningControl/Resources/icons8-rounded-square-80.png differ diff --git a/Handler/CapCleaningControl/Resources/icons8-rounded-square-80_blue.png b/Handler/CapCleaningControl/Resources/icons8-rounded-square-80_blue.png new file mode 100644 index 0000000..768e3c9 Binary files /dev/null and b/Handler/CapCleaningControl/Resources/icons8-rounded-square-80_blue.png differ diff --git a/Handler/CapCleaningControl/Resources/icons8-rounded-square-80_red.png b/Handler/CapCleaningControl/Resources/icons8-rounded-square-80_red.png new file mode 100644 index 0000000..2e5a27e Binary files /dev/null and b/Handler/CapCleaningControl/Resources/icons8-rounded-square-80_red.png differ diff --git a/Handler/CapCleaningControl/Resources/icons8-settings-30.png b/Handler/CapCleaningControl/Resources/icons8-settings-30.png new file mode 100644 index 0000000..ddef91d Binary files /dev/null and b/Handler/CapCleaningControl/Resources/icons8-settings-30.png differ diff --git a/Handler/CapCleaningControl/Resources/icons8-start-30.png b/Handler/CapCleaningControl/Resources/icons8-start-30.png new file mode 100644 index 0000000..100219c Binary files /dev/null and b/Handler/CapCleaningControl/Resources/icons8-start-30.png differ diff --git a/Handler/CapCleaningControl/Resources/icons8_pause_button_30.png b/Handler/CapCleaningControl/Resources/icons8_pause_button_30.png new file mode 100644 index 0000000..f6d30c6 Binary files /dev/null and b/Handler/CapCleaningControl/Resources/icons8_pause_button_30.png differ diff --git a/Handler/CapCleaningControl/Resources/mot.png b/Handler/CapCleaningControl/Resources/mot.png new file mode 100644 index 0000000..3bb6ae9 Binary files /dev/null and b/Handler/CapCleaningControl/Resources/mot.png differ diff --git a/Handler/CapCleaningControl/Resources/plc.png b/Handler/CapCleaningControl/Resources/plc.png new file mode 100644 index 0000000..1474662 Binary files /dev/null and b/Handler/CapCleaningControl/Resources/plc.png differ diff --git a/Handler/CapCleaningControl/Resources/reel_big.png b/Handler/CapCleaningControl/Resources/reel_big.png new file mode 100644 index 0000000..2ddd859 Binary files /dev/null and b/Handler/CapCleaningControl/Resources/reel_big.png differ diff --git a/Handler/CapCleaningControl/Resources/reel_small.png b/Handler/CapCleaningControl/Resources/reel_small.png new file mode 100644 index 0000000..3049f6b Binary files /dev/null and b/Handler/CapCleaningControl/Resources/reel_small.png differ diff --git a/Handler/CapCleaningControl/Resources/safty.png b/Handler/CapCleaningControl/Resources/safty.png new file mode 100644 index 0000000..39b1abd Binary files /dev/null and b/Handler/CapCleaningControl/Resources/safty.png differ diff --git a/Handler/CapCleaningControl/UIControl.csproj b/Handler/CapCleaningControl/UIControl.csproj new file mode 100644 index 0000000..b607417 --- /dev/null +++ b/Handler/CapCleaningControl/UIControl.csproj @@ -0,0 +1,214 @@ + + + + + Debug + AnyCPU + {9264CD2E-7CF8-4237-A69F-DCDA984E0613} + Library + UIControl + UIControl + v4.8 + 512 + true + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + AnyCPU + false + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + false + + + + + + + + + + + + + + + + + + + + + Component + + + Component + + + Form + + + fTestControl.cs + + + Component + + + Component + + + Component + + + UserControl + + + PrintDirection.cs + + + True + True + Resources.resx + + + + + + + + fTestControl.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {4f457e76-bf83-4b98-8565-ae87d7d16744} + arAzinAxt + + + {14e8c9a5-013e-49ba-b435-efefc77dd623} + CommData + + + {14e8c9a5-013e-49ba-b435-ffffff7dd623} + arCommUtil + + + {48654765-548d-42ed-9238-d65eb3bc99ad} + Setting + + + + \ No newline at end of file diff --git a/Handler/CapCleaningControl/Utility.cs b/Handler/CapCleaningControl/Utility.cs new file mode 100644 index 0000000..3764f23 --- /dev/null +++ b/Handler/CapCleaningControl/Utility.cs @@ -0,0 +1,168 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; + +namespace UIControl +{ + public static class Utility + { + + public static Rectangle OffsetRect(this Rectangle rect, int x,int y) + { + var retval = new Rectangle(rect.X + x, rect.Y + y, rect.Width, rect.Height); + return retval; + } + + public static void DrawString(this Graphics g, + string msg, + Font font, + Color fcolor, + RectangleF rect, + ContentAlignment textalign = ContentAlignment.MiddleCenter, + Color? ShadowColor = null, + Brush BackBrush = null, + Pen BorderPen = null) + { + DrawString(g, msg, font, fcolor, rect.toRect(), textalign, ShadowColor, BackBrush, BorderPen); + } + + public static void DrawRectangle(this Graphics g, Pen pen, RectangleF rect) + { + g.DrawRectangle(pen, rect.Left, rect.Top, rect.Width, rect.Height); + } + + public static void DrawString(this Graphics g, + string msg, + Font font, + Color fcolor, + Rectangle rect, + ContentAlignment textalign = ContentAlignment.MiddleCenter, + Color? ShadowColor = null, + Brush BackBrush = null, + Pen BorderPen = null) + { + //배경색 지정되어 있다면 + if (BackBrush != null) g.FillRectangle(BackBrush, rect); + + //테두리 지정되어 있다면 + if (BorderPen != null) g.DrawRectangle(BorderPen, rect); + + //그립자가 지정되있다면 별도 처리를 한다 + if (ShadowColor != null && ShadowColor != Color.Transparent) + { + SizeF fsize; + var drawPT = GetTextPosition(g, msg, font, rect, textalign, out fsize); + + //그림자를 먼저 그린다 + g.DrawString(msg, font, new SolidBrush((Color)ShadowColor), drawPT.X + 1, drawPT.Y + 1); + g.DrawString(msg, font, new SolidBrush(fcolor), drawPT.X, drawPT.Y); + } + else + { + var sf = new StringFormat(); + + if (textalign == ContentAlignment.BottomCenter) { sf.Alignment = StringAlignment.Center; sf.LineAlignment = StringAlignment.Near; } + else if (textalign == ContentAlignment.BottomLeft) { sf.Alignment = StringAlignment.Near; sf.LineAlignment = StringAlignment.Near; } + else if (textalign == ContentAlignment.BottomRight) { sf.Alignment = StringAlignment.Far; sf.LineAlignment = StringAlignment.Near; } + else if (textalign == ContentAlignment.MiddleCenter) { sf.Alignment = StringAlignment.Center; sf.LineAlignment = StringAlignment.Center; } + else if (textalign == ContentAlignment.MiddleLeft) { sf.Alignment = StringAlignment.Near; sf.LineAlignment = StringAlignment.Center; } + else if (textalign == ContentAlignment.MiddleRight) { sf.Alignment = StringAlignment.Far; sf.LineAlignment = StringAlignment.Center; } + else if (textalign == ContentAlignment.TopCenter) { sf.Alignment = StringAlignment.Center; sf.LineAlignment = StringAlignment.Far; } + else if (textalign == ContentAlignment.TopLeft) { sf.Alignment = StringAlignment.Near; sf.LineAlignment = StringAlignment.Far; } + else if (textalign == ContentAlignment.TopRight) { sf.Alignment = StringAlignment.Far; sf.LineAlignment = StringAlignment.Far; } + else { sf.Alignment = StringAlignment.Center; sf.LineAlignment = StringAlignment.Center; } + + + g.DrawString(msg, font, new SolidBrush(fcolor), rect, sf); + + sf.Dispose(); + } + } + + public static void DrawRect(this Graphics g, Rectangle rect, Color color, Color shadowColor, int pensize = 1) + { + //우측하단에 선을 그려준다. 일단은 검은색 + g.DrawLine(new Pen(shadowColor, pensize), rect.Left + 1, rect.Bottom + 1, rect.Right - 1, rect.Bottom + 1); + g.DrawLine(new Pen(shadowColor, pensize), rect.Right + 1, rect.Top + 1, rect.Right + 1, rect.Bottom - 1); + DrawRect(g, rect, color, pensize); + } + public static void DrawRect(this Graphics g, Rectangle rect, Color color, int pensize = 1) + { + g.DrawRectangle(new Pen(color, pensize), rect); + } + + public static void DrawRect(this Graphics g, RectangleF rect, Color color, int pensize = 1, Boolean shadow = false) + { + g.DrawRectangle(new Pen(color, pensize), rect.Left, rect.Top, rect.Width, rect.Height); + } + + /// + /// Rectangle 개체를 반환 합니다. 단순 float -> int 로 값을 변환 합니다. + /// + /// + /// + public static Rectangle toRect(this RectangleF rect) + { + return new Rectangle((int)rect.Left, (int)rect.Top, (int)rect.Width, (int)rect.Height); ; + } + + static PointF GetTextPosition(Graphics g, string data, Font f, Rectangle rect, ContentAlignment align, System.Windows.Forms.Padding Padding, out SizeF fsize) + { + float x = 0; + float y = 0; + fsize = g.MeasureString(data, f); + if (align == ContentAlignment.MiddleCenter) + { + x = (rect.Width - fsize.Width) / 2 + Padding.Left - Padding.Right; + y = (rect.Height - fsize.Height) / 2 + Padding.Top - Padding.Bottom; + } + else if (align == ContentAlignment.MiddleLeft) + { + x = Padding.Left; + y = (rect.Height - fsize.Height) / 2; + } + else if (align == ContentAlignment.MiddleRight) + { + x = rect.Width - fsize.Width - Padding.Right; + y = (rect.Height - fsize.Height) / 2; + } + else if (align == ContentAlignment.BottomLeft) + { + x = Padding.Left; + y = rect.Height - fsize.Height - Padding.Bottom; + } + else if (align == ContentAlignment.BottomRight) + { + x = rect.Width - fsize.Width - Padding.Right; + y = rect.Height - fsize.Height - Padding.Bottom; + } + else if (align == ContentAlignment.BottomCenter) + { + x = (rect.Width - fsize.Width) / 2; + y = rect.Height - fsize.Height - Padding.Bottom; + } + else if (align == ContentAlignment.TopLeft) + { + x = Padding.Left; + y = Padding.Top; + } + else if (align == ContentAlignment.TopRight) + { + x = rect.Width - fsize.Width - Padding.Right; + y = Padding.Top; + } + else if (align == ContentAlignment.TopCenter) + { + x = (rect.Width - fsize.Width) / 2; + y = Padding.Top; + } + return new PointF(x + rect.Left, y + rect.Top); + } + static PointF GetTextPosition(Graphics g, string data, Font f, Rectangle rect, ContentAlignment align, out SizeF fsize) + { + return GetTextPosition(g, data, f, rect, align, new System.Windows.Forms.Padding(0), out fsize); + } + } +} diff --git a/Handler/CapCleaningControl/fTestControl.Designer.cs b/Handler/CapCleaningControl/fTestControl.Designer.cs new file mode 100644 index 0000000..1cf52ef --- /dev/null +++ b/Handler/CapCleaningControl/fTestControl.Designer.cs @@ -0,0 +1,82 @@ +namespace UIControl +{ + partial class fTestControl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.printDirection1 = new UIControl.PrintDirection(); + this.SuspendLayout(); + // + // printDirection1 + // + this.printDirection1.BackColor = System.Drawing.Color.White; + this.printDirection1.BorderColor = System.Drawing.Color.Black; + this.printDirection1.colors = new System.Drawing.Color[] { + System.Drawing.Color.Empty, + System.Drawing.Color.Empty, + System.Drawing.Color.Empty, + System.Drawing.Color.Empty, + System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))), + System.Drawing.Color.Empty, + System.Drawing.Color.Empty, + System.Drawing.Color.Empty, + System.Drawing.Color.Empty}; + this.printDirection1.Font = new System.Drawing.Font("맑은 고딕", 36F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.printDirection1.Location = new System.Drawing.Point(62, 56); + this.printDirection1.Margin = new System.Windows.Forms.Padding(7, 10, 7, 10); + this.printDirection1.Name = "printDirection1"; + this.printDirection1.Size = new System.Drawing.Size(323, 283); + this.printDirection1.TabIndex = 0; + this.printDirection1.TitleFont = new System.Drawing.Font("궁서체", 9F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.printDirection1.titles = new string[] { + "↖", + "↑", + "↗", + "←", + "?", + "→", + "↙", + "↓", + "↘"}; + // + // fTestControl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(476, 453); + this.Controls.Add(this.printDirection1); + this.Name = "fTestControl"; + this.Text = "fTestControl"; + this.ResumeLayout(false); + + } + + #endregion + + private PrintDirection printDirection1; + } +} \ No newline at end of file diff --git a/Handler/CapCleaningControl/fTestControl.cs b/Handler/CapCleaningControl/fTestControl.cs new file mode 100644 index 0000000..5be0681 --- /dev/null +++ b/Handler/CapCleaningControl/fTestControl.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace UIControl +{ + public partial class fTestControl : Form + { + public fTestControl() + { + InitializeComponent(); + } + } +} diff --git a/Handler/CapCleaningControl/fTestControl.resx b/Handler/CapCleaningControl/fTestControl.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/CapCleaningControl/fTestControl.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/DLL/ArLog.Net4.dll b/Handler/DLL/ArLog.Net4.dll new file mode 100644 index 0000000..1f7c09a Binary files /dev/null and b/Handler/DLL/ArLog.Net4.dll differ diff --git a/Handler/DLL/ArSetting.Net4.dll b/Handler/DLL/ArSetting.Net4.dll new file mode 100644 index 0000000..941494f Binary files /dev/null and b/Handler/DLL/ArSetting.Net4.dll differ diff --git a/Handler/DLL/CarlosAg.ExcelXmlWriter.dll b/Handler/DLL/CarlosAg.ExcelXmlWriter.dll new file mode 100644 index 0000000..7760d6d Binary files /dev/null and b/Handler/DLL/CarlosAg.ExcelXmlWriter.dll differ diff --git a/Handler/DLL/ChilkatDotNet4.dll b/Handler/DLL/ChilkatDotNet4.dll new file mode 100644 index 0000000..134c43e Binary files /dev/null and b/Handler/DLL/ChilkatDotNet4.dll differ diff --git a/Handler/DLL/Communication.dll b/Handler/DLL/Communication.dll new file mode 100644 index 0000000..c656f28 Binary files /dev/null and b/Handler/DLL/Communication.dll differ diff --git a/Handler/DLL/Keyence.AutoID.SDK.dll b/Handler/DLL/Keyence.AutoID.SDK.dll new file mode 100644 index 0000000..f9250ca Binary files /dev/null and b/Handler/DLL/Keyence.AutoID.SDK.dll differ diff --git a/Handler/DLL/Newtonsoft.Json.dll b/Handler/DLL/Newtonsoft.Json.dll new file mode 100644 index 0000000..7af125a Binary files /dev/null and b/Handler/DLL/Newtonsoft.Json.dll differ diff --git a/Handler/DLL/Sato/x64/SATOPrinterAPI.dll b/Handler/DLL/Sato/x64/SATOPrinterAPI.dll new file mode 100644 index 0000000..b367a83 Binary files /dev/null and b/Handler/DLL/Sato/x64/SATOPrinterAPI.dll differ diff --git a/Handler/DLL/Sato/x86/SATOPrinterAPI.dll b/Handler/DLL/Sato/x86/SATOPrinterAPI.dll new file mode 100644 index 0000000..2ad94c1 Binary files /dev/null and b/Handler/DLL/Sato/x86/SATOPrinterAPI.dll differ diff --git a/Handler/DLL/VncClientControlCommon.dll b/Handler/DLL/VncClientControlCommon.dll new file mode 100644 index 0000000..0e66ce7 Binary files /dev/null and b/Handler/DLL/VncClientControlCommon.dll differ diff --git a/Handler/DLL/VncClientControlCommonLib.dll b/Handler/DLL/VncClientControlCommonLib.dll new file mode 100644 index 0000000..2d0d74c Binary files /dev/null and b/Handler/DLL/VncClientControlCommonLib.dll differ diff --git a/Handler/DLL/WatsonWebsocket.dll b/Handler/DLL/WatsonWebsocket.dll new file mode 100644 index 0000000..ae762d9 Binary files /dev/null and b/Handler/DLL/WatsonWebsocket.dll differ diff --git a/Handler/DLL/Winsock Orcas.dll b/Handler/DLL/Winsock Orcas.dll new file mode 100644 index 0000000..3ac1126 Binary files /dev/null and b/Handler/DLL/Winsock Orcas.dll differ diff --git a/Handler/DLL/arRS232.Net4.dll b/Handler/DLL/arRS232.Net4.dll new file mode 100644 index 0000000..59df697 Binary files /dev/null and b/Handler/DLL/arRS232.Net4.dll differ diff --git a/Handler/DLL/libxl.dll b/Handler/DLL/libxl.dll new file mode 100644 index 0000000..b3159fd Binary files /dev/null and b/Handler/DLL/libxl.dll differ diff --git a/Handler/DLL/libxl.net.dll b/Handler/DLL/libxl.net.dll new file mode 100644 index 0000000..b487ebc Binary files /dev/null and b/Handler/DLL/libxl.net.dll differ diff --git a/Handler/DLL/libxl/bin64/libxl.dll b/Handler/DLL/libxl/bin64/libxl.dll new file mode 100644 index 0000000..204a7e3 Binary files /dev/null and b/Handler/DLL/libxl/bin64/libxl.dll differ diff --git a/Handler/DLL/libxl/libxl.net.dll b/Handler/DLL/libxl/libxl.net.dll new file mode 100644 index 0000000..dc8b1b3 Binary files /dev/null and b/Handler/DLL/libxl/libxl.net.dll differ diff --git a/Handler/MotParam/Mot_Picker_X.swpp b/Handler/MotParam/Mot_Picker_X.swpp new file mode 100644 index 0000000..94d317b Binary files /dev/null and b/Handler/MotParam/Mot_Picker_X.swpp differ diff --git a/Handler/MotParam/Mot_Picker_X.usrs b/Handler/MotParam/Mot_Picker_X.usrs new file mode 100644 index 0000000..0c4e777 --- /dev/null +++ b/Handler/MotParam/Mot_Picker_X.usrs @@ -0,0 +1,256 @@ +File-Spec,2 +FileType,User Parameters Data File +Made-by,YASKAWA SigmaWin+ Ver.7 +DateTime,12/23/2020 11:45:35 AM +SERVO-TYPE,SGD7S-2R8A00A +SERVO-ID,112 +SERVO-YMOD,0 +SERVO-SPEC,00 +SERVO-SOFT,47 +SERVO-CAPACITY,400 +SerialNo,D0205I826810007 +BTOFlag,1 +BTO-ID, +IS-SUPPORTED,1 +IS-EDITED,0 +MachineName, +OP-TYPE, +OP-ID,65533 +OP-YMOD,65535 +OP-SOFT,65535 +OP1-TYPE, +OP1-TYPEID,0 +OP1-ID,65533 +OP1-YMOD,65535 +OP1-YMODTYPE,65535 +OP1-SOFT,65535 +OP2-TYPE, +OP2-TYPEID,0 +OP2-ID,65533 +OP2-YMOD,65535 +OP2-YMODTYPE,65535 +OP2-SOFT,65535 +OP3-TYPE, +OP3-TYPEID,0 +OP3-ID,65533 +OP3-YMOD,65535 +OP3-YMODTYPE,65535 +OP3-SOFT,65535 +ACCESS-LEVEL,1 +SpecVersion,65535 +AXIS-NUM,1 +MOTOR-TYPE,SGM7J-04AFD21 +MOTOR-ID,173 +ENCODER-ID,24 +ENCODER-SOFT,3 +ServoControlType,512 +CompatibleMapNum,6 +CompatibleMap,0,3,3,6,6,10 +CommentCnt,0 +Comment, +ServoNameComment,Picker X +UserPrmCnt,198 +UserPrm,000,17,2,1 +UserPrm,001,0,2,0 +UserPrm,002,0,2,0 +UserPrm,006,2,2,0 +UserPrm,007,0,2,0 +UserPrm,008,0,2,0 +UserPrm,009,16,2,0 +UserPrm,00A,1,2,0 +UserPrm,00B,256,2,1 +UserPrm,00C,0,2,0 +UserPrm,00D,0,2,0 +UserPrm,00E,0,2,0 +UserPrm,00F,0,2,0 +UserPrm,010,1,2,0 +UserPrm,021,0,2,0 +UserPrm,040,0,2,0 +UserPrm,080,0,2,0 +UserPrm,081,0,2,0 +UserPrm,100,400,2,0 +UserPrm,101,2000,2,0 +UserPrm,102,400,2,0 +UserPrm,103,100,2,0 +UserPrm,104,400,2,0 +UserPrm,105,2000,2,0 +UserPrm,106,400,2,0 +UserPrm,109,0,2,0 +UserPrm,10A,0,2,0 +UserPrm,10B,0,2,0 +UserPrm,10C,200,2,0 +UserPrm,10D,0,2,0 +UserPrm,10E,0,2,0 +UserPrm,10F,0,2,0 +UserPrm,11F,0,2,0 +UserPrm,121,100,2,0 +UserPrm,122,100,2,0 +UserPrm,123,0,2,0 +UserPrm,124,0,2,0 +UserPrm,125,100,2,0 +UserPrm,131,0,2,0 +UserPrm,132,0,2,0 +UserPrm,135,0,2,0 +UserPrm,136,0,2,0 +UserPrm,139,0,2,0 +UserPrm,13D,2000,2,0 +UserPrm,140,256,2,0 +UserPrm,141,500,2,0 +UserPrm,142,1000,2,0 +UserPrm,143,1000,2,0 +UserPrm,144,1000,2,0 +UserPrm,145,500,2,0 +UserPrm,146,700,2,0 +UserPrm,147,1000,2,0 +UserPrm,148,500,2,0 +UserPrm,149,1000,2,0 +UserPrm,14A,800,2,0 +UserPrm,14B,100,2,0 +UserPrm,14F,33,2,0 +UserPrm,160,16,2,0 +UserPrm,161,1000,2,0 +UserPrm,162,100,2,0 +UserPrm,163,0,2,0 +UserPrm,164,0,2,0 +UserPrm,165,0,2,0 +UserPrm,166,0,2,0 +UserPrm,170,5121,2,0 +UserPrm,200,1,2,1 +UserPrm,205,65535,2,0 +UserPrm,207,0,2,0 +UserPrm,20A,32768,4,0 +UserPrm,20E,16777216,4,1 +UserPrm,210,20000,4,1 +UserPrm,212,5000,4,1 +UserPrm,216,0,2,0 +UserPrm,217,0,2,0 +UserPrm,218,1,2,0 +UserPrm,22A,0,2,0 +UserPrm,240,0,2,0 +UserPrm,281,20,2,0 +UserPrm,300,600,2,0 +UserPrm,301,100,2,0 +UserPrm,302,200,2,0 +UserPrm,303,300,2,0 +UserPrm,304,50,2,1 +UserPrm,305,0,2,0 +UserPrm,306,0,2,0 +UserPrm,307,40,2,0 +UserPrm,308,0,2,0 +UserPrm,30A,0,2,0 +UserPrm,30C,0,2,0 +UserPrm,310,0,2,0 +UserPrm,311,100,2,0 +UserPrm,312,50,2,0 +UserPrm,316,10000,2,0 +UserPrm,324,300,2,0 +UserPrm,400,30,2,0 +UserPrm,401,100,2,0 +UserPrm,402,800,2,0 +UserPrm,403,800,2,0 +UserPrm,404,100,2,0 +UserPrm,405,100,2,0 +UserPrm,406,800,2,0 +UserPrm,407,10000,2,0 +UserPrm,408,0,2,0 +UserPrm,409,5000,2,0 +UserPrm,40A,70,2,0 +UserPrm,40B,0,2,0 +UserPrm,40C,5000,2,0 +UserPrm,40D,70,2,0 +UserPrm,40E,0,2,0 +UserPrm,40F,5000,2,0 +UserPrm,410,50,2,0 +UserPrm,412,100,2,0 +UserPrm,415,0,2,0 +UserPrm,416,0,2,0 +UserPrm,417,5000,2,0 +UserPrm,418,70,2,0 +UserPrm,419,0,2,0 +UserPrm,41A,5000,2,0 +UserPrm,41B,70,2,0 +UserPrm,41C,0,2,0 +UserPrm,41D,5000,2,0 +UserPrm,41E,70,2,0 +UserPrm,41F,0,2,0 +UserPrm,423,0,2,0 +UserPrm,424,50,2,0 +UserPrm,425,100,2,0 +UserPrm,426,0,2,0 +UserPrm,427,0,2,0 +UserPrm,456,15,2,0 +UserPrm,460,257,2,0 +UserPrm,475,0,2,0 +UserPrm,476,0,2,0 +UserPrm,481,400,2,0 +UserPrm,482,3000,2,0 +UserPrm,486,25,2,0 +UserPrm,487,0,2,0 +UserPrm,488,100,2,0 +UserPrm,490,100,2,0 +UserPrm,495,100,2,0 +UserPrm,498,10,2,0 +UserPrm,501,10,2,0 +UserPrm,502,20,2,0 +UserPrm,503,10,2,0 +UserPrm,506,0,2,0 +UserPrm,507,100,2,0 +UserPrm,508,50,2,0 +UserPrm,509,20,2,0 +UserPrm,50A,8448,2,0 +UserPrm,50B,25923,2,0 +UserPrm,50C,34952,2,0 +UserPrm,50D,34952,2,0 +UserPrm,50E,12817,2,0 +UserPrm,50F,0,2,0 +UserPrm,510,0,2,0 +UserPrm,512,0,2,0 +UserPrm,513,0,2,0 +UserPrm,514,0,2,0 +UserPrm,515,34952,2,0 +UserPrm,516,34952,2,0 +UserPrm,517,1620,2,0 +UserPrm,518,0,2,0 +UserPrm,519,34952,2,0 +UserPrm,51B,1000,4,0 +UserPrm,51E,100,2,0 +UserPrm,520,5242880,4,0 +UserPrm,522,7,4,0 +UserPrm,524,1073741824,4,0 +UserPrm,526,5242880,4,0 +UserPrm,528,100,2,0 +UserPrm,529,10000,2,0 +UserPrm,52A,20,2,0 +UserPrm,52B,20,2,0 +UserPrm,52C,100,2,0 +UserPrm,52F,4095,2,0 +UserPrm,530,0,2,0 +UserPrm,531,32768,4,0 +UserPrm,533,500,2,0 +UserPrm,534,100,2,0 +UserPrm,535,100,2,0 +UserPrm,536,1,2,0 +UserPrm,550,0,2,0 +UserPrm,551,0,2,0 +UserPrm,552,100,2,0 +UserPrm,553,100,2,0 +UserPrm,55A,1,2,0 +UserPrm,560,400,2,0 +UserPrm,561,100,2,0 +UserPrm,600,0,2,0 +UserPrm,601,0,2,0 +UserPrm,603,0,2,0 +UserPrm,604,0,2,0 +UserPrm,621,0,2,0 +UserPrm,622,10000,2,0 +UserPrm,623,10000,2,0 +UserPrm,624,10,2,0 +UserPrm,625,100,2,0 +UserPrm,626,100,4,0 +UserPrm,628,10,2,0 +Custom +CustomGroupNum,1 +Gp1_Begin +GroupName, +Num,0 +Gp1_End diff --git a/Handler/MotParam/Mot_Picker_Z.swpp b/Handler/MotParam/Mot_Picker_Z.swpp new file mode 100644 index 0000000..31fc815 Binary files /dev/null and b/Handler/MotParam/Mot_Picker_Z.swpp differ diff --git a/Handler/MotParam/Mot_Picker_Z.usrs b/Handler/MotParam/Mot_Picker_Z.usrs new file mode 100644 index 0000000..9c2cc34 --- /dev/null +++ b/Handler/MotParam/Mot_Picker_Z.usrs @@ -0,0 +1,256 @@ +File-Spec,2 +FileType,User Parameters Data File +Made-by,YASKAWA SigmaWin+ Ver.7 +DateTime,12/23/2020 11:46:21 AM +SERVO-TYPE,SGD7S-1R6A00A002 +SERVO-ID,112 +SERVO-YMOD,0 +SERVO-SPEC,00 +SERVO-SOFT,47 +SERVO-CAPACITY,200 +SerialNo,1A2036500620011 +BTOFlag,1 +BTO-ID, +IS-SUPPORTED,1 +IS-EDITED,0 +MachineName, +OP-TYPE, +OP-ID,65533 +OP-YMOD,65535 +OP-SOFT,65535 +OP1-TYPE, +OP1-TYPEID,0 +OP1-ID,65533 +OP1-YMOD,65535 +OP1-YMODTYPE,65535 +OP1-SOFT,65535 +OP2-TYPE, +OP2-TYPEID,0 +OP2-ID,65533 +OP2-YMOD,65535 +OP2-YMODTYPE,65535 +OP2-SOFT,65535 +OP3-TYPE, +OP3-TYPEID,0 +OP3-ID,65533 +OP3-YMOD,65535 +OP3-YMODTYPE,65535 +OP3-SOFT,65535 +ACCESS-LEVEL,1 +SpecVersion,65535 +AXIS-NUM,1 +MOTOR-TYPE,SGM7J-02AFD2C +MOTOR-ID,173 +ENCODER-ID,24 +ENCODER-SOFT,3 +ServoControlType,512 +CompatibleMapNum,6 +CompatibleMap,0,3,3,6,6,10 +CommentCnt,0 +Comment, +ServoNameComment,Picker Z +UserPrmCnt,198 +UserPrm,000,17,2,1 +UserPrm,001,0,2,0 +UserPrm,002,0,2,0 +UserPrm,006,2,2,0 +UserPrm,007,0,2,0 +UserPrm,008,0,2,0 +UserPrm,009,16,2,0 +UserPrm,00A,1,2,0 +UserPrm,00B,256,2,1 +UserPrm,00C,0,2,0 +UserPrm,00D,0,2,0 +UserPrm,00E,0,2,0 +UserPrm,00F,0,2,0 +UserPrm,010,1,2,0 +UserPrm,021,0,2,0 +UserPrm,040,0,2,0 +UserPrm,080,0,2,0 +UserPrm,081,0,2,0 +UserPrm,100,400,2,0 +UserPrm,101,2000,2,0 +UserPrm,102,400,2,0 +UserPrm,103,100,2,0 +UserPrm,104,400,2,0 +UserPrm,105,2000,2,0 +UserPrm,106,400,2,0 +UserPrm,109,0,2,0 +UserPrm,10A,0,2,0 +UserPrm,10B,0,2,0 +UserPrm,10C,200,2,0 +UserPrm,10D,0,2,0 +UserPrm,10E,0,2,0 +UserPrm,10F,0,2,0 +UserPrm,11F,0,2,0 +UserPrm,121,100,2,0 +UserPrm,122,100,2,0 +UserPrm,123,0,2,0 +UserPrm,124,0,2,0 +UserPrm,125,100,2,0 +UserPrm,131,0,2,0 +UserPrm,132,0,2,0 +UserPrm,135,0,2,0 +UserPrm,136,0,2,0 +UserPrm,139,0,2,0 +UserPrm,13D,2000,2,0 +UserPrm,140,256,2,0 +UserPrm,141,500,2,0 +UserPrm,142,1000,2,0 +UserPrm,143,1000,2,0 +UserPrm,144,1000,2,0 +UserPrm,145,500,2,0 +UserPrm,146,700,2,0 +UserPrm,147,1000,2,0 +UserPrm,148,500,2,0 +UserPrm,149,1000,2,0 +UserPrm,14A,800,2,0 +UserPrm,14B,100,2,0 +UserPrm,14F,33,2,0 +UserPrm,160,16,2,0 +UserPrm,161,1000,2,0 +UserPrm,162,100,2,0 +UserPrm,163,0,2,0 +UserPrm,164,0,2,0 +UserPrm,165,0,2,0 +UserPrm,166,0,2,0 +UserPrm,170,5121,2,0 +UserPrm,200,1,2,1 +UserPrm,205,65535,2,0 +UserPrm,207,0,2,0 +UserPrm,20A,32768,4,0 +UserPrm,20E,16777216,4,1 +UserPrm,210,20000,4,1 +UserPrm,212,5000,4,1 +UserPrm,216,0,2,0 +UserPrm,217,0,2,0 +UserPrm,218,1,2,0 +UserPrm,22A,0,2,0 +UserPrm,240,0,2,0 +UserPrm,281,20,2,0 +UserPrm,300,600,2,0 +UserPrm,301,100,2,0 +UserPrm,302,200,2,0 +UserPrm,303,300,2,0 +UserPrm,304,50,2,1 +UserPrm,305,0,2,0 +UserPrm,306,0,2,0 +UserPrm,307,40,2,0 +UserPrm,308,0,2,0 +UserPrm,30A,0,2,0 +UserPrm,30C,0,2,0 +UserPrm,310,0,2,0 +UserPrm,311,100,2,0 +UserPrm,312,50,2,0 +UserPrm,316,10000,2,0 +UserPrm,324,300,2,0 +UserPrm,400,30,2,0 +UserPrm,401,85,2,1 +UserPrm,402,800,2,0 +UserPrm,403,800,2,0 +UserPrm,404,100,2,0 +UserPrm,405,100,2,0 +UserPrm,406,800,2,0 +UserPrm,407,10000,2,0 +UserPrm,408,256,2,1 +UserPrm,409,5000,2,0 +UserPrm,40A,70,2,0 +UserPrm,40B,0,2,0 +UserPrm,40C,1480,2,1 +UserPrm,40D,150,2,1 +UserPrm,40E,0,2,0 +UserPrm,40F,5000,2,0 +UserPrm,410,50,2,0 +UserPrm,412,100,2,0 +UserPrm,415,0,2,0 +UserPrm,416,0,2,0 +UserPrm,417,5000,2,0 +UserPrm,418,70,2,0 +UserPrm,419,0,2,0 +UserPrm,41A,5000,2,0 +UserPrm,41B,70,2,0 +UserPrm,41C,0,2,0 +UserPrm,41D,5000,2,0 +UserPrm,41E,70,2,0 +UserPrm,41F,0,2,0 +UserPrm,423,0,2,0 +UserPrm,424,50,2,0 +UserPrm,425,100,2,0 +UserPrm,426,0,2,0 +UserPrm,427,0,2,0 +UserPrm,456,15,2,0 +UserPrm,460,257,2,0 +UserPrm,475,0,2,0 +UserPrm,476,0,2,0 +UserPrm,481,400,2,0 +UserPrm,482,3000,2,0 +UserPrm,486,25,2,0 +UserPrm,487,0,2,0 +UserPrm,488,100,2,0 +UserPrm,490,100,2,0 +UserPrm,495,100,2,0 +UserPrm,498,10,2,0 +UserPrm,501,10,2,0 +UserPrm,502,20,2,0 +UserPrm,503,10,2,0 +UserPrm,506,0,2,0 +UserPrm,507,100,2,0 +UserPrm,508,50,2,0 +UserPrm,509,20,2,0 +UserPrm,50A,8448,2,0 +UserPrm,50B,25923,2,0 +UserPrm,50C,34952,2,0 +UserPrm,50D,34952,2,0 +UserPrm,50E,12305,2,1 +UserPrm,50F,512,2,1 +UserPrm,510,0,2,0 +UserPrm,512,0,2,0 +UserPrm,513,0,2,0 +UserPrm,514,0,2,0 +UserPrm,515,34952,2,0 +UserPrm,516,34952,2,0 +UserPrm,517,1620,2,0 +UserPrm,518,0,2,0 +UserPrm,519,34952,2,0 +UserPrm,51B,1000,4,0 +UserPrm,51E,100,2,0 +UserPrm,520,5242880,4,0 +UserPrm,522,7,4,0 +UserPrm,524,1073741824,4,0 +UserPrm,526,5242880,4,0 +UserPrm,528,100,2,0 +UserPrm,529,10000,2,0 +UserPrm,52A,20,2,0 +UserPrm,52B,20,2,0 +UserPrm,52C,100,2,0 +UserPrm,52F,4095,2,0 +UserPrm,530,0,2,0 +UserPrm,531,32768,4,0 +UserPrm,533,500,2,0 +UserPrm,534,100,2,0 +UserPrm,535,100,2,0 +UserPrm,536,1,2,0 +UserPrm,550,0,2,0 +UserPrm,551,0,2,0 +UserPrm,552,100,2,0 +UserPrm,553,100,2,0 +UserPrm,55A,1,2,0 +UserPrm,560,400,2,0 +UserPrm,561,100,2,0 +UserPrm,600,0,2,0 +UserPrm,601,0,2,0 +UserPrm,603,0,2,0 +UserPrm,604,0,2,0 +UserPrm,621,0,2,0 +UserPrm,622,10000,2,0 +UserPrm,623,10000,2,0 +UserPrm,624,10,2,0 +UserPrm,625,100,2,0 +UserPrm,626,100,4,0 +UserPrm,628,10,2,0 +Custom +CustomGroupNum,1 +Gp1_Begin +GroupName, +Num,0 +Gp1_End diff --git a/Handler/MotParam/Mot_Printer_Y.swpp b/Handler/MotParam/Mot_Printer_Y.swpp new file mode 100644 index 0000000..dc0c57a Binary files /dev/null and b/Handler/MotParam/Mot_Printer_Y.swpp differ diff --git a/Handler/MotParam/Mot_Printer_Y.usrs b/Handler/MotParam/Mot_Printer_Y.usrs new file mode 100644 index 0000000..172f652 --- /dev/null +++ b/Handler/MotParam/Mot_Printer_Y.usrs @@ -0,0 +1,256 @@ +File-Spec,2 +FileType,User Parameters Data File +Made-by,YASKAWA SigmaWin+ Ver.7 +DateTime,12/29/2020 4:34:27 PM +SERVO-TYPE,SGD7S-1R6A00A002 +SERVO-ID,112 +SERVO-YMOD,0 +SERVO-SPEC,00 +SERVO-SOFT,47 +SERVO-CAPACITY,200 +SerialNo,1A2036500620026 +BTOFlag,1 +BTO-ID, +IS-SUPPORTED,1 +IS-EDITED,0 +MachineName, +OP-TYPE, +OP-ID,65533 +OP-YMOD,65535 +OP-SOFT,65535 +OP1-TYPE, +OP1-TYPEID,0 +OP1-ID,65533 +OP1-YMOD,65535 +OP1-YMODTYPE,65535 +OP1-SOFT,65535 +OP2-TYPE, +OP2-TYPEID,0 +OP2-ID,65533 +OP2-YMOD,65535 +OP2-YMODTYPE,65535 +OP2-SOFT,65535 +OP3-TYPE, +OP3-TYPEID,0 +OP3-ID,65533 +OP3-YMOD,65535 +OP3-YMODTYPE,65535 +OP3-SOFT,65535 +ACCESS-LEVEL,1 +SpecVersion,65535 +AXIS-NUM,1 +MOTOR-TYPE,SGM7J-02AFD21 +MOTOR-ID,173 +ENCODER-ID,24 +ENCODER-SOFT,3 +ServoControlType,512 +CompatibleMapNum,6 +CompatibleMap,0,3,3,6,6,10 +CommentCnt,0 +Comment, +ServoNameComment,PrintLeft Move +UserPrmCnt,198 +UserPrm,000,16,2,1 +UserPrm,001,0,2,0 +UserPrm,002,0,2,0 +UserPrm,006,2,2,0 +UserPrm,007,0,2,0 +UserPrm,008,0,2,0 +UserPrm,009,16,2,0 +UserPrm,00A,1,2,0 +UserPrm,00B,256,2,1 +UserPrm,00C,0,2,0 +UserPrm,00D,0,2,0 +UserPrm,00E,0,2,0 +UserPrm,00F,0,2,0 +UserPrm,010,1,2,0 +UserPrm,021,0,2,0 +UserPrm,040,0,2,0 +UserPrm,080,0,2,0 +UserPrm,081,0,2,0 +UserPrm,100,600,2,1 +UserPrm,101,2000,2,0 +UserPrm,102,600,2,1 +UserPrm,103,3000,2,1 +UserPrm,104,400,2,0 +UserPrm,105,2000,2,0 +UserPrm,106,400,2,0 +UserPrm,109,0,2,0 +UserPrm,10A,0,2,0 +UserPrm,10B,0,2,0 +UserPrm,10C,200,2,0 +UserPrm,10D,0,2,0 +UserPrm,10E,0,2,0 +UserPrm,10F,0,2,0 +UserPrm,11F,0,2,0 +UserPrm,121,100,2,0 +UserPrm,122,100,2,0 +UserPrm,123,0,2,0 +UserPrm,124,0,2,0 +UserPrm,125,100,2,0 +UserPrm,131,0,2,0 +UserPrm,132,0,2,0 +UserPrm,135,0,2,0 +UserPrm,136,0,2,0 +UserPrm,139,0,2,0 +UserPrm,13D,2000,2,0 +UserPrm,140,256,2,0 +UserPrm,141,500,2,0 +UserPrm,142,1000,2,0 +UserPrm,143,1000,2,0 +UserPrm,144,1000,2,0 +UserPrm,145,500,2,0 +UserPrm,146,700,2,0 +UserPrm,147,1000,2,0 +UserPrm,148,500,2,0 +UserPrm,149,1000,2,0 +UserPrm,14A,800,2,0 +UserPrm,14B,100,2,0 +UserPrm,14F,33,2,0 +UserPrm,160,16,2,0 +UserPrm,161,1000,2,0 +UserPrm,162,100,2,0 +UserPrm,163,0,2,0 +UserPrm,164,0,2,0 +UserPrm,165,0,2,0 +UserPrm,166,0,2,0 +UserPrm,170,5120,2,1 +UserPrm,200,1,2,1 +UserPrm,205,65535,2,0 +UserPrm,207,0,2,0 +UserPrm,20A,32768,4,0 +UserPrm,20E,16777216,4,1 +UserPrm,210,46000,4,1 +UserPrm,212,11500,4,1 +UserPrm,216,0,2,0 +UserPrm,217,0,2,0 +UserPrm,218,1,2,0 +UserPrm,22A,0,2,0 +UserPrm,240,0,2,0 +UserPrm,281,20,2,0 +UserPrm,300,600,2,0 +UserPrm,301,100,2,0 +UserPrm,302,200,2,0 +UserPrm,303,300,2,0 +UserPrm,304,50,2,1 +UserPrm,305,0,2,0 +UserPrm,306,0,2,0 +UserPrm,307,40,2,0 +UserPrm,308,0,2,0 +UserPrm,30A,0,2,0 +UserPrm,30C,0,2,0 +UserPrm,310,0,2,0 +UserPrm,311,100,2,0 +UserPrm,312,50,2,0 +UserPrm,316,10000,2,0 +UserPrm,324,300,2,0 +UserPrm,400,90,2,1 +UserPrm,401,400,2,1 +UserPrm,402,800,2,0 +UserPrm,403,800,2,0 +UserPrm,404,800,2,1 +UserPrm,405,800,2,1 +UserPrm,406,800,2,0 +UserPrm,407,10000,2,0 +UserPrm,408,0,2,0 +UserPrm,409,5000,2,0 +UserPrm,40A,70,2,0 +UserPrm,40B,0,2,0 +UserPrm,40C,5000,2,0 +UserPrm,40D,70,2,0 +UserPrm,40E,0,2,0 +UserPrm,40F,5000,2,0 +UserPrm,410,50,2,0 +UserPrm,412,100,2,0 +UserPrm,415,0,2,0 +UserPrm,416,0,2,0 +UserPrm,417,5000,2,0 +UserPrm,418,70,2,0 +UserPrm,419,0,2,0 +UserPrm,41A,5000,2,0 +UserPrm,41B,70,2,0 +UserPrm,41C,0,2,0 +UserPrm,41D,5000,2,0 +UserPrm,41E,70,2,0 +UserPrm,41F,0,2,0 +UserPrm,423,0,2,0 +UserPrm,424,50,2,0 +UserPrm,425,100,2,0 +UserPrm,426,0,2,0 +UserPrm,427,0,2,0 +UserPrm,456,15,2,0 +UserPrm,460,257,2,0 +UserPrm,475,0,2,0 +UserPrm,476,0,2,0 +UserPrm,481,400,2,0 +UserPrm,482,3000,2,0 +UserPrm,486,25,2,0 +UserPrm,487,0,2,0 +UserPrm,488,100,2,0 +UserPrm,490,100,2,0 +UserPrm,495,100,2,0 +UserPrm,498,10,2,0 +UserPrm,501,10,2,0 +UserPrm,502,20,2,0 +UserPrm,503,10,2,0 +UserPrm,506,0,2,0 +UserPrm,507,100,2,0 +UserPrm,508,50,2,0 +UserPrm,509,20,2,0 +UserPrm,50A,33025,2,1 +UserPrm,50B,25928,2,1 +UserPrm,50C,34952,2,0 +UserPrm,50D,34952,2,0 +UserPrm,50E,12817,2,0 +UserPrm,50F,0,2,0 +UserPrm,510,0,2,0 +UserPrm,512,0,2,0 +UserPrm,513,0,2,0 +UserPrm,514,0,2,0 +UserPrm,515,34952,2,0 +UserPrm,516,34952,2,0 +UserPrm,517,1620,2,0 +UserPrm,518,0,2,0 +UserPrm,519,34952,2,0 +UserPrm,51B,1000,4,0 +UserPrm,51E,100,2,0 +UserPrm,520,5242880,4,0 +UserPrm,522,7,4,0 +UserPrm,524,1073741824,4,0 +UserPrm,526,5242880,4,0 +UserPrm,528,100,2,0 +UserPrm,529,10000,2,0 +UserPrm,52A,20,2,0 +UserPrm,52B,20,2,0 +UserPrm,52C,100,2,0 +UserPrm,52F,4095,2,0 +UserPrm,530,5,2,1 +UserPrm,531,2000,4,1 +UserPrm,533,100,2,1 +UserPrm,534,100,2,0 +UserPrm,535,3,2,1 +UserPrm,536,0,2,1 +UserPrm,550,0,2,0 +UserPrm,551,0,2,0 +UserPrm,552,100,2,0 +UserPrm,553,100,2,0 +UserPrm,55A,1,2,0 +UserPrm,560,400,2,0 +UserPrm,561,100,2,0 +UserPrm,600,0,2,0 +UserPrm,601,0,2,0 +UserPrm,603,0,2,0 +UserPrm,604,0,2,0 +UserPrm,621,0,2,0 +UserPrm,622,10000,2,0 +UserPrm,623,10000,2,0 +UserPrm,624,10,2,0 +UserPrm,625,100,2,0 +UserPrm,626,100,4,0 +UserPrm,628,10,2,0 +Custom +CustomGroupNum,1 +Gp1_Begin +GroupName, +Num,0 +Gp1_End diff --git a/Handler/MotParam/Mot_Printer_Z.swpp b/Handler/MotParam/Mot_Printer_Z.swpp new file mode 100644 index 0000000..9a0a87f Binary files /dev/null and b/Handler/MotParam/Mot_Printer_Z.swpp differ diff --git a/Handler/MotParam/Mot_Printer_Z.usrs b/Handler/MotParam/Mot_Printer_Z.usrs new file mode 100644 index 0000000..eeb0f03 --- /dev/null +++ b/Handler/MotParam/Mot_Printer_Z.usrs @@ -0,0 +1,256 @@ +File-Spec,2 +FileType,User Parameters Data File +Made-by,YASKAWA SigmaWin+ Ver.7 +DateTime,12/29/2020 4:42:26 PM +SERVO-TYPE,SGD7S-1R6A00A002 +SERVO-ID,112 +SERVO-YMOD,0 +SERVO-SPEC,00 +SERVO-SOFT,47 +SERVO-CAPACITY,200 +SerialNo,1A2046912320009 +BTOFlag,1 +BTO-ID, +IS-SUPPORTED,1 +IS-EDITED,0 +MachineName, +OP-TYPE, +OP-ID,65533 +OP-YMOD,65535 +OP-SOFT,65535 +OP1-TYPE, +OP1-TYPEID,0 +OP1-ID,65533 +OP1-YMOD,65535 +OP1-YMODTYPE,65535 +OP1-SOFT,65535 +OP2-TYPE, +OP2-TYPEID,0 +OP2-ID,65533 +OP2-YMOD,65535 +OP2-YMODTYPE,65535 +OP2-SOFT,65535 +OP3-TYPE, +OP3-TYPEID,0 +OP3-ID,65533 +OP3-YMOD,65535 +OP3-YMODTYPE,65535 +OP3-SOFT,65535 +ACCESS-LEVEL,1 +SpecVersion,65535 +AXIS-NUM,1 +MOTOR-TYPE,SGM7J-02AFD2C +MOTOR-ID,173 +ENCODER-ID,24 +ENCODER-SOFT,3 +ServoControlType,512 +CompatibleMapNum,6 +CompatibleMap,0,3,3,6,6,10 +CommentCnt,0 +Comment, +ServoNameComment,Print Left Up/Dn +UserPrmCnt,198 +UserPrm,000,17,2,1 +UserPrm,001,0,2,0 +UserPrm,002,0,2,0 +UserPrm,006,2,2,0 +UserPrm,007,0,2,0 +UserPrm,008,0,2,0 +UserPrm,009,16,2,0 +UserPrm,00A,1,2,0 +UserPrm,00B,256,2,1 +UserPrm,00C,0,2,0 +UserPrm,00D,0,2,0 +UserPrm,00E,0,2,0 +UserPrm,00F,0,2,0 +UserPrm,010,1,2,0 +UserPrm,021,0,2,0 +UserPrm,040,0,2,0 +UserPrm,080,0,2,0 +UserPrm,081,0,2,0 +UserPrm,100,400,2,0 +UserPrm,101,2000,2,0 +UserPrm,102,400,2,0 +UserPrm,103,100,2,0 +UserPrm,104,400,2,0 +UserPrm,105,2000,2,0 +UserPrm,106,400,2,0 +UserPrm,109,0,2,0 +UserPrm,10A,0,2,0 +UserPrm,10B,0,2,0 +UserPrm,10C,200,2,0 +UserPrm,10D,0,2,0 +UserPrm,10E,0,2,0 +UserPrm,10F,0,2,0 +UserPrm,11F,0,2,0 +UserPrm,121,100,2,0 +UserPrm,122,100,2,0 +UserPrm,123,0,2,0 +UserPrm,124,0,2,0 +UserPrm,125,100,2,0 +UserPrm,131,0,2,0 +UserPrm,132,0,2,0 +UserPrm,135,0,2,0 +UserPrm,136,0,2,0 +UserPrm,139,0,2,0 +UserPrm,13D,2000,2,0 +UserPrm,140,256,2,0 +UserPrm,141,500,2,0 +UserPrm,142,1000,2,0 +UserPrm,143,1000,2,0 +UserPrm,144,1000,2,0 +UserPrm,145,500,2,0 +UserPrm,146,700,2,0 +UserPrm,147,1000,2,0 +UserPrm,148,500,2,0 +UserPrm,149,1000,2,0 +UserPrm,14A,800,2,0 +UserPrm,14B,100,2,0 +UserPrm,14F,33,2,0 +UserPrm,160,16,2,0 +UserPrm,161,1000,2,0 +UserPrm,162,100,2,0 +UserPrm,163,0,2,0 +UserPrm,164,0,2,0 +UserPrm,165,0,2,0 +UserPrm,166,0,2,0 +UserPrm,170,5121,2,0 +UserPrm,200,1,2,1 +UserPrm,205,65535,2,0 +UserPrm,207,0,2,0 +UserPrm,20A,32768,4,0 +UserPrm,20E,16777216,4,1 +UserPrm,210,10000,4,1 +UserPrm,212,2500,4,1 +UserPrm,216,0,2,0 +UserPrm,217,0,2,0 +UserPrm,218,1,2,0 +UserPrm,22A,0,2,0 +UserPrm,240,0,2,0 +UserPrm,281,20,2,0 +UserPrm,300,600,2,0 +UserPrm,301,100,2,0 +UserPrm,302,200,2,0 +UserPrm,303,300,2,0 +UserPrm,304,50,2,1 +UserPrm,305,0,2,0 +UserPrm,306,0,2,0 +UserPrm,307,40,2,0 +UserPrm,308,0,2,0 +UserPrm,30A,0,2,0 +UserPrm,30C,0,2,0 +UserPrm,310,0,2,0 +UserPrm,311,100,2,0 +UserPrm,312,50,2,0 +UserPrm,316,10000,2,0 +UserPrm,324,300,2,0 +UserPrm,400,30,2,0 +UserPrm,401,85,2,1 +UserPrm,402,800,2,0 +UserPrm,403,800,2,0 +UserPrm,404,100,2,0 +UserPrm,405,100,2,0 +UserPrm,406,800,2,0 +UserPrm,407,10000,2,0 +UserPrm,408,256,2,1 +UserPrm,409,5000,2,0 +UserPrm,40A,70,2,0 +UserPrm,40B,0,2,0 +UserPrm,40C,1480,2,1 +UserPrm,40D,150,2,1 +UserPrm,40E,0,2,0 +UserPrm,40F,5000,2,0 +UserPrm,410,50,2,0 +UserPrm,412,100,2,0 +UserPrm,415,0,2,0 +UserPrm,416,0,2,0 +UserPrm,417,5000,2,0 +UserPrm,418,70,2,0 +UserPrm,419,0,2,0 +UserPrm,41A,5000,2,0 +UserPrm,41B,70,2,0 +UserPrm,41C,0,2,0 +UserPrm,41D,5000,2,0 +UserPrm,41E,70,2,0 +UserPrm,41F,0,2,0 +UserPrm,423,0,2,0 +UserPrm,424,50,2,0 +UserPrm,425,100,2,0 +UserPrm,426,0,2,0 +UserPrm,427,0,2,0 +UserPrm,456,15,2,0 +UserPrm,460,257,2,0 +UserPrm,475,0,2,0 +UserPrm,476,0,2,0 +UserPrm,481,400,2,0 +UserPrm,482,3000,2,0 +UserPrm,486,25,2,0 +UserPrm,487,0,2,0 +UserPrm,488,100,2,0 +UserPrm,490,100,2,0 +UserPrm,495,100,2,0 +UserPrm,498,10,2,0 +UserPrm,501,10,2,0 +UserPrm,502,20,2,0 +UserPrm,503,10,2,0 +UserPrm,506,0,2,0 +UserPrm,507,100,2,0 +UserPrm,508,50,2,0 +UserPrm,509,20,2,0 +UserPrm,50A,8448,2,0 +UserPrm,50B,25923,2,0 +UserPrm,50C,34952,2,0 +UserPrm,50D,34952,2,0 +UserPrm,50E,12305,2,1 +UserPrm,50F,512,2,1 +UserPrm,510,0,2,0 +UserPrm,512,0,2,0 +UserPrm,513,0,2,0 +UserPrm,514,0,2,0 +UserPrm,515,34952,2,0 +UserPrm,516,34952,2,0 +UserPrm,517,1620,2,0 +UserPrm,518,0,2,0 +UserPrm,519,34952,2,0 +UserPrm,51B,1000,4,0 +UserPrm,51E,100,2,0 +UserPrm,520,5242880,4,0 +UserPrm,522,7,4,0 +UserPrm,524,1073741824,4,0 +UserPrm,526,5242880,4,0 +UserPrm,528,100,2,0 +UserPrm,529,10000,2,0 +UserPrm,52A,20,2,0 +UserPrm,52B,20,2,0 +UserPrm,52C,100,2,0 +UserPrm,52F,4095,2,0 +UserPrm,530,0,2,0 +UserPrm,531,32768,4,0 +UserPrm,533,500,2,0 +UserPrm,534,100,2,0 +UserPrm,535,100,2,0 +UserPrm,536,1,2,0 +UserPrm,550,0,2,0 +UserPrm,551,0,2,0 +UserPrm,552,100,2,0 +UserPrm,553,100,2,0 +UserPrm,55A,1,2,0 +UserPrm,560,400,2,0 +UserPrm,561,100,2,0 +UserPrm,600,0,2,0 +UserPrm,601,0,2,0 +UserPrm,603,0,2,0 +UserPrm,604,0,2,0 +UserPrm,621,0,2,0 +UserPrm,622,10000,2,0 +UserPrm,623,10000,2,0 +UserPrm,624,10,2,0 +UserPrm,625,100,2,0 +UserPrm,626,100,4,0 +UserPrm,628,10,2,0 +Custom +CustomGroupNum,1 +Gp1_Begin +GroupName, +Num,0 +Gp1_End diff --git a/Handler/MotParam/Mot_Theta.swpp b/Handler/MotParam/Mot_Theta.swpp new file mode 100644 index 0000000..6947722 Binary files /dev/null and b/Handler/MotParam/Mot_Theta.swpp differ diff --git a/Handler/MotParam/Mot_Theta.usrs b/Handler/MotParam/Mot_Theta.usrs new file mode 100644 index 0000000..5517e83 --- /dev/null +++ b/Handler/MotParam/Mot_Theta.usrs @@ -0,0 +1,256 @@ +File-Spec,2 +FileType,User Parameters Data File +Made-by,YASKAWA SigmaWin+ Ver.7 +DateTime,12/23/2020 11:42:01 AM +SERVO-TYPE,SGD7S-1R6A00A002 +SERVO-ID,112 +SERVO-YMOD,0 +SERVO-SPEC,00 +SERVO-SOFT,47 +SERVO-CAPACITY,200 +SerialNo,1A2036500620098 +BTOFlag,1 +BTO-ID, +IS-SUPPORTED,1 +IS-EDITED,0 +MachineName, +OP-TYPE, +OP-ID,65533 +OP-YMOD,65535 +OP-SOFT,65535 +OP1-TYPE, +OP1-TYPEID,0 +OP1-ID,65533 +OP1-YMOD,65535 +OP1-YMODTYPE,65535 +OP1-SOFT,65535 +OP2-TYPE, +OP2-TYPEID,0 +OP2-ID,65533 +OP2-YMOD,65535 +OP2-YMODTYPE,65535 +OP2-SOFT,65535 +OP3-TYPE, +OP3-TYPEID,0 +OP3-ID,65533 +OP3-YMOD,65535 +OP3-YMODTYPE,65535 +OP3-SOFT,65535 +ACCESS-LEVEL,1 +SpecVersion,65535 +AXIS-NUM,1 +MOTOR-TYPE,SGM7J-02AFD21 +MOTOR-ID,173 +ENCODER-ID,24 +ENCODER-SOFT,3 +ServoControlType,512 +CompatibleMapNum,6 +CompatibleMap,0,3,3,6,6,10 +CommentCnt,0 +Comment, +ServoNameComment,Picker Theta +UserPrmCnt,198 +UserPrm,000,17,2,1 +UserPrm,001,0,2,0 +UserPrm,002,0,2,0 +UserPrm,006,2,2,0 +UserPrm,007,0,2,0 +UserPrm,008,0,2,0 +UserPrm,009,16,2,0 +UserPrm,00A,1,2,0 +UserPrm,00B,256,2,1 +UserPrm,00C,0,2,0 +UserPrm,00D,0,2,0 +UserPrm,00E,0,2,0 +UserPrm,00F,0,2,0 +UserPrm,010,1,2,0 +UserPrm,021,0,2,0 +UserPrm,040,0,2,0 +UserPrm,080,0,2,0 +UserPrm,081,0,2,0 +UserPrm,100,400,2,0 +UserPrm,101,2000,2,0 +UserPrm,102,400,2,0 +UserPrm,103,100,2,0 +UserPrm,104,400,2,0 +UserPrm,105,2000,2,0 +UserPrm,106,400,2,0 +UserPrm,109,0,2,0 +UserPrm,10A,0,2,0 +UserPrm,10B,0,2,0 +UserPrm,10C,200,2,0 +UserPrm,10D,0,2,0 +UserPrm,10E,0,2,0 +UserPrm,10F,0,2,0 +UserPrm,11F,0,2,0 +UserPrm,121,100,2,0 +UserPrm,122,100,2,0 +UserPrm,123,0,2,0 +UserPrm,124,0,2,0 +UserPrm,125,100,2,0 +UserPrm,131,0,2,0 +UserPrm,132,0,2,0 +UserPrm,135,0,2,0 +UserPrm,136,0,2,0 +UserPrm,139,0,2,0 +UserPrm,13D,2000,2,0 +UserPrm,140,256,2,0 +UserPrm,141,500,2,0 +UserPrm,142,1000,2,0 +UserPrm,143,1000,2,0 +UserPrm,144,1000,2,0 +UserPrm,145,500,2,0 +UserPrm,146,700,2,0 +UserPrm,147,1000,2,0 +UserPrm,148,500,2,0 +UserPrm,149,1000,2,0 +UserPrm,14A,800,2,0 +UserPrm,14B,100,2,0 +UserPrm,14F,33,2,0 +UserPrm,160,16,2,0 +UserPrm,161,1000,2,0 +UserPrm,162,100,2,0 +UserPrm,163,0,2,0 +UserPrm,164,0,2,0 +UserPrm,165,0,2,0 +UserPrm,166,0,2,0 +UserPrm,170,5121,2,0 +UserPrm,200,1,2,1 +UserPrm,205,65535,2,0 +UserPrm,207,0,2,0 +UserPrm,20A,32768,4,0 +UserPrm,20E,16777216,4,1 +UserPrm,210,20000,4,1 +UserPrm,212,5000,4,1 +UserPrm,216,0,2,0 +UserPrm,217,0,2,0 +UserPrm,218,1,2,0 +UserPrm,22A,0,2,0 +UserPrm,240,0,2,0 +UserPrm,281,20,2,0 +UserPrm,300,600,2,0 +UserPrm,301,100,2,0 +UserPrm,302,200,2,0 +UserPrm,303,300,2,0 +UserPrm,304,200,2,1 +UserPrm,305,0,2,0 +UserPrm,306,0,2,0 +UserPrm,307,40,2,0 +UserPrm,308,0,2,0 +UserPrm,30A,0,2,0 +UserPrm,30C,0,2,0 +UserPrm,310,0,2,0 +UserPrm,311,100,2,0 +UserPrm,312,50,2,0 +UserPrm,316,10000,2,0 +UserPrm,324,300,2,0 +UserPrm,400,30,2,0 +UserPrm,401,100,2,0 +UserPrm,402,800,2,0 +UserPrm,403,800,2,0 +UserPrm,404,100,2,0 +UserPrm,405,100,2,0 +UserPrm,406,800,2,0 +UserPrm,407,10000,2,0 +UserPrm,408,0,2,0 +UserPrm,409,5000,2,0 +UserPrm,40A,70,2,0 +UserPrm,40B,0,2,0 +UserPrm,40C,5000,2,0 +UserPrm,40D,70,2,0 +UserPrm,40E,0,2,0 +UserPrm,40F,5000,2,0 +UserPrm,410,50,2,0 +UserPrm,412,100,2,0 +UserPrm,415,0,2,0 +UserPrm,416,0,2,0 +UserPrm,417,5000,2,0 +UserPrm,418,70,2,0 +UserPrm,419,0,2,0 +UserPrm,41A,5000,2,0 +UserPrm,41B,70,2,0 +UserPrm,41C,0,2,0 +UserPrm,41D,5000,2,0 +UserPrm,41E,70,2,0 +UserPrm,41F,0,2,0 +UserPrm,423,0,2,0 +UserPrm,424,50,2,0 +UserPrm,425,100,2,0 +UserPrm,426,0,2,0 +UserPrm,427,0,2,0 +UserPrm,456,15,2,0 +UserPrm,460,257,2,0 +UserPrm,475,0,2,0 +UserPrm,476,0,2,0 +UserPrm,481,400,2,0 +UserPrm,482,3000,2,0 +UserPrm,486,25,2,0 +UserPrm,487,0,2,0 +UserPrm,488,100,2,0 +UserPrm,490,100,2,0 +UserPrm,495,100,2,0 +UserPrm,498,10,2,0 +UserPrm,501,10,2,0 +UserPrm,502,20,2,0 +UserPrm,503,10,2,0 +UserPrm,506,0,2,0 +UserPrm,507,100,2,0 +UserPrm,508,50,2,0 +UserPrm,509,20,2,0 +UserPrm,50A,8448,2,0 +UserPrm,50B,25923,2,0 +UserPrm,50C,34952,2,0 +UserPrm,50D,34952,2,0 +UserPrm,50E,12817,2,0 +UserPrm,50F,0,2,0 +UserPrm,510,0,2,0 +UserPrm,512,0,2,0 +UserPrm,513,0,2,0 +UserPrm,514,0,2,0 +UserPrm,515,34952,2,0 +UserPrm,516,34952,2,0 +UserPrm,517,1620,2,0 +UserPrm,518,0,2,0 +UserPrm,519,34952,2,0 +UserPrm,51B,1000,4,0 +UserPrm,51E,100,2,0 +UserPrm,520,5242880,4,0 +UserPrm,522,7,4,0 +UserPrm,524,1073741824,4,0 +UserPrm,526,5242880,4,0 +UserPrm,528,100,2,0 +UserPrm,529,10000,2,0 +UserPrm,52A,20,2,0 +UserPrm,52B,20,2,0 +UserPrm,52C,100,2,0 +UserPrm,52F,4095,2,0 +UserPrm,530,0,2,0 +UserPrm,531,32768,4,0 +UserPrm,533,500,2,0 +UserPrm,534,100,2,0 +UserPrm,535,100,2,0 +UserPrm,536,1,2,0 +UserPrm,550,0,2,0 +UserPrm,551,0,2,0 +UserPrm,552,100,2,0 +UserPrm,553,100,2,0 +UserPrm,55A,1,2,0 +UserPrm,560,400,2,0 +UserPrm,561,100,2,0 +UserPrm,600,0,2,0 +UserPrm,601,0,2,0 +UserPrm,603,0,2,0 +UserPrm,604,0,2,0 +UserPrm,621,0,2,0 +UserPrm,622,10000,2,0 +UserPrm,623,10000,2,0 +UserPrm,624,10,2,0 +UserPrm,625,100,2,0 +UserPrm,626,100,4,0 +UserPrm,628,10,2,0 +Custom +CustomGroupNum,1 +Gp1_Begin +GroupName, +Num,0 +Gp1_End diff --git a/Handler/Project/Button/AIR.cs b/Handler/Project/Button/AIR.cs new file mode 100644 index 0000000..8782464 --- /dev/null +++ b/Handler/Project/Button/AIR.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; + +namespace Project +{ + public partial class FMain + { + } +} diff --git a/Handler/Project/Button/RESET.cs b/Handler/Project/Button/RESET.cs new file mode 100644 index 0000000..f5b6496 --- /dev/null +++ b/Handler/Project/Button/RESET.cs @@ -0,0 +1,86 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using UIControl; +using AR; +namespace Project +{ + public partial class FMain + { + + void _BUTTON_RESET() + { + //RESET 버튼 눌렸을때 공통 처리 사항 + DIO.SetBuzzer(false); //buzzer off + + if (PUB.popup.Visible) + PUB.popup.needClose = true; + + if ( + hmi1.Scean == HMI.eScean.xmove) + hmi1.Scean = UIControl.HMI.eScean.Nomal; + + PUB.flag.set(eVarBool.FG_KEYENCE_OFFF, false, "USER"); + PUB.flag.set(eVarBool.FG_KEYENCE_OFFR, false, "USER"); + + //팝업메세지가 제거가능한 메세지라면 없앤다. + if (hmi1.HasPopupMenu && hmi1.PopupMenuRequireInput == false) + hmi1.DelMenu(); + + //알람클리어작업(모션에 오류가 있는 경우에만) + if (PUB.mot.IsInit && PUB.mot.HasServoAlarm) + { + PUB.mot.SetAlarmClearOn(); + System.Threading.Thread.Sleep(200); + PUB.mot.SetAlarmClearOff(); + } + + //자재가 없고, 센서도 반응안하는데. 진공이 되어잇으면 off한다 + if (DIO.isVacOKL() == 0 && PUB.flag.get(eVarBool.FG_PK_ITEMON) == false && DIO.GetIOOutput(eDOName.PICK_VAC1) == false) + DIO.SetPickerVac(false, true); + + + //중단, 오류 모드일때에는 이 리셋이 의미가 있다. + if (PUB.sm.Step == eSMStep.RUN) + { + PUB.log.Add("동작중에는 [RESET] 버튼이 동작하지 않습니다"); + } + else if (PUB.sm.Step == eSMStep.PAUSE) + { + //시작대기상태로 전환(대기상태일때 시작키를 누르면 실행 됨) + PUB.sm.SetNewStep(eSMStep.WAITSTART); + PUB.log.AddAT("Reset Clear System Resume & Pause ON"); + } + else if (PUB.sm.Step == eSMStep.EMERGENCY) + { + PUB.popup.setMessage("EMERGENCY RESET\n" + + "[비상정지] 상태에는 [시스템초기화] 를 실행 해야 합니다\n" + + "상단메뉴 [초기화] 를 실행하세요"); + + PUB.log.Add("RESET버튼으로 인해 EMG 상황에서 IDLE전환"); + PUB.sm.SetNewStep(eSMStep.IDLE); + } + else if (PUB.sm.Step == eSMStep.ERROR) + { + PUB.log.Add("RESET버튼으로 인해 ERR 상황에서 IDLE전환"); + PUB.sm.SetNewStep(eSMStep.IDLE); + } + else if (PUB.sm.Step == eSMStep.WAITSTART) + { + //시작대기중일때에도 아무 처리안함 + //Pub.log.Add("시작버튼대기중에는 [RESET] 버튼이 동작하지 않습니다"); + } + else if (PUB.sm.Step == eSMStep.IDLE) + { + //Pub.log.Add("대기중에는 [RESET] 버튼이 동작하지 않습니다"); + } + else + { + //Pub.log.AddE("정의되지 않은 상태에서의 REST 키 버튼 입력 - 대기상태로 전환합니다"); + PUB.sm.SetNewStep(eSMStep.IDLE); + } + } + } +} diff --git a/Handler/Project/Button/START.cs b/Handler/Project/Button/START.cs new file mode 100644 index 0000000..bb9b835 --- /dev/null +++ b/Handler/Project/Button/START.cs @@ -0,0 +1,82 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using AR; +namespace Project +{ + public partial class FMain + { + + void _BUTTON_START() + { + if (PUB.sm.Step == eSMStep.RUN) + { + //아무것도 하지 않는다 + PUB.log.Add("동작중에는 START 버튼이 사용되지 않습니다"); + } + else if (PUB.sm.Step == eSMStep.IDLE) //일반대기상태 + { + if (DIO.isVacOKL() > 0) + { + DIO.SetBuzzer(true); + PUB.popup.setMessage("PICKER ITEM DETECT\nPICKER 에서 아이템이 감지되었습니다\n[작업취소] 를 눌러서 아이템을 DROP 한 후 제거해주세요."); + return; + } + else if (DIO.getCartSize(1) == eCartSize.None) + { + DIO.SetBuzzer(true); + PUB.popup.setMessage("로더에 카트가 장착되지 않았습니다"); + return; + } + else if (DIO.GetIOInput(eDIName.PORTC_LIM_DN) == true && DIO.GetIOInput(eDIName.PORTC_DET_UP) == true) + { + //하단리밋과, 자재감지가 동시에 들어오면 overload 이다 + DIO.SetBuzzer(true); + PUB.popup.setMessage("로더에 너무 많은 릴이 적재 되어 있습니다\n" + + "하단 리밋 센서와 상단 릴 감지 센서가 동시에 확인 됩니다"); + return; + } + //else if (Util_DO.getCartSize(0) == eCartSize.None && Util_DO.getCartSize(2) == eCartSize.None) + //{ + // Util_DO.SetBuzzer(true); + // Pub.popup.setMessage("언로더에 카트가 장착되지 않았습니다"); + // return; + //} + + Func_start_job_select(); + + + } + else if (PUB.sm.Step == eSMStep.WAITSTART) //시작대기상태 + { + + DIO.SetRoomLight(true); + + //새로시작하면 포트 얼라인을 해제 해준다 + PUB.flag.set(eVarBool.FG_RDY_PORT_PL, false, "SW_START"); + PUB.flag.set(eVarBool.FG_RDY_PORT_PC, false, "SW_START"); + PUB.flag.set(eVarBool.FG_RDY_PORT_PR, false, "SW_START"); + + //얼라인 상태를 모두 초기화 한다 + //loader1.arVar_Port.ToList().ForEach(t => t.AlignOK = 0); + + //언로더 체크작업은 항상 다시 시작한다 + if (PUB.Result.UnloaderSeq > 1) PUB.Result.UnloaderSeq = 1; + + //팝업메세지가 사라지도록 한다 + PUB.popup.needClose = true; + PUB.sm.SetNewStep(eSMStep.RUN); + PUB.log.Add("[사용자 일시정지] 해제 => 작업이 계속됩니다"); + } + else + { + //string msg = "SYSTEM {0}\n[RESET] 버튼을 누른 후 다시 시도하세요"; + //msg = string.Format(msg, PUB.sm.Step); + //PUB.popup.setMessage(msg); + PUB.log.AddE($"[RESET] 버튼을 누른 후 다시 시도하세요"); + } + } + } +} diff --git a/Handler/Project/Button/STOP.cs b/Handler/Project/Button/STOP.cs new file mode 100644 index 0000000..a4bdcff --- /dev/null +++ b/Handler/Project/Button/STOP.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using AR; +namespace Project +{ + public partial class FMain + { + void _BUTTON_STOP() + { + //매거진 투입모터 멈춤 + if (DIO.GetIOOutput(eDOName.PORTL_MOT_RUN)) DIO.SetPortMotor(0, eMotDir.CW, false, "Button Stop"); + if (DIO.GetIOOutput(eDOName.PORTC_MOT_RUN)) DIO.SetPortMotor(1, eMotDir.CW, false, "Button Stop"); + if (DIO.GetIOOutput(eDOName.PORTR_MOT_RUN)) DIO.SetPortMotor(2, eMotDir.CW, false, "Button Stop"); + + //자재가 없고, 센서도 반응안하는데. 진공이 되어잇으면 off한다 + if (DIO.isVacOKL() == 0 && PUB.flag.get(eVarBool.FG_PK_ITEMON) == false && DIO.GetIOOutput(eDOName.PICK_VAC1) == true) + DIO.SetPickerVac(false, true); + + //조명켜기 + if (AR.SETTING.Data.Disable_RoomLight == false) + DIO.SetRoomLight(true); + + //컨베이어 멈춘다 230502 + DIO.SetOutput(eDOName.LEFT_CONV, false); + DIO.SetOutput(eDOName.RIGHT_CONV, false); + + //모든 모터도 멈춘다 + if (PUB.mot.HasMoving) PUB.mot.MoveStop("Stop Button"); + + if (PUB.sm.Step == eSMStep.RUN) + { + //일시중지상태로 전환한다 + PUB.Result.SetResultMessage(eResult.OPERATION, eECode.USER_STOP, eNextStep.PAUSE); + PUB.log.Add("[사용자 일시정지]"); + } + else if (PUB.sm.Step == eSMStep.HOME_FULL) //홈진행중에는 대기상태로 전환 + { + PUB.sm.SetNewStep(eSMStep.IDLE); + } + + //로그 기록 + PUB.LogFlush(); + } + + } +} diff --git a/Handler/Project/Class/AmkorReelID.cs b/Handler/Project/Class/AmkorReelID.cs new file mode 100644 index 0000000..c090a88 --- /dev/null +++ b/Handler/Project/Class/AmkorReelID.cs @@ -0,0 +1,187 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Project +{ + public static class AmkorReelID + { + /// + /// 앰코 ID형태인지 확인합니다. + /// + /// + /// + /// + /// + public static Boolean IsValidID(string rid, out string yy, out string m) + { + yy = string.Empty; + m = string.Empty; + if (rid.Length != 15) return false; + try + { + var custCost = rid.Substring(2, 4); + var site = "K" + rid.Substring(6, 1); + var mc = rid.Substring(7, 1); + yy = rid.Substring(8, 2); + m = rid.Substring(10, 1); + var sn = rid.Substring(11, 4); + return true; + } + catch + { + return false; + } + } + + public static string MakeReelID(string customercode, string ym) + { + if (customercode.Length != 4) + { + return String.Empty;// + //throw new Exception("Customer 코드는 4자리 입니다"); + } + if (ym.Length != 3) + { + return string.Empty;// + //throw new Exception("Ym 코드는 3자리 입니다"); + } + var rid = "RC{CUST}{DEVLOC}{DEVID}{YM}"; + rid = rid.Replace("{DEVLOC}", AR.SETTING.Data.ReelIdDeviceLoc); + rid = rid.Replace("{DEVID}", AR.SETTING.Data.ReelIdDeviceID); + rid = rid.Replace("{CUST}", customercode); + rid = rid.Replace("{YM}", ym); + rid += GetNextSNbyYM(ym); + return rid; + } + + + /// + /// 입력된 월 기준으로 시리얼 번호를 생성합니다 + /// + /// 21년 1월의 경우 211, 10월의 경우 21A 식으로 표현 + /// 1,2번 위치에 R기호를 제거 할 것인가? + /// + public static string GetNextSNbyYM(string ym) + { + //서버에서 자료를 조회해서 처리한다. + var db = new EEEntities(); + var dr = db.Component_Reel_Result.Where(t => t.PDATE == ym && t.PDATE.Contains("R") == false).OrderByDescending(t => t.RSN).FirstOrDefault(); + if (dr == null) return "0001"; //처음쓰는 자료인다. + var curSN = dr.RSN; + return GetNextSNbySN(curSN); + } + + /// + /// 해당월의 리턴릴의 번호를 생성한다 + /// + /// + /// + public static string GetNextSNbyYM_Return(string ym) + { + //서버에서 자료를 조회해서 처리한다. + var db = new EEEntities(); + var dr = db.Component_Reel_Result.Where(t => t.PDATE == ym && t.PDATE.StartsWith("R")).OrderByDescending(t => t.RSN).FirstOrDefault(); + if (dr == null) return "R001"; //처음쓰는 자료인다. + var curSN = dr.RSN; + return GetNextSNbySN_Return(curSN); + } + + /// + /// 중복릴의 다은번호를 생성한다 + /// + /// + /// + public static string GetNextSNbyYM_Dup(string ym) + { + //서버에서 자료를 조회해서 처리한다. + var db = new EEEntities(); + var dr = db.Component_Reel_Result.Where(t => t.PDATE == ym && t.PDATE.StartsWith("0R")).OrderByDescending(t => t.RSN).FirstOrDefault(); + if (dr == null) return "0R01"; //처음쓰는 자료인다. + var curSN = dr.RSN; + return GetNextSNbySN_Dup(curSN); + } + + /// + /// 입력한 시리얼 번호 이후의 번호를 생성합니다(0000~ZZZZ) 까지의 데이터를 가지며 2번쨰짜리까지는 R을 사용하지 못한다 + /// + /// 기준 시리얼번호 4자리 + /// + /// + public static string GetNextSNbySN(string sn) + { + //서버에서 자료를 조회해서 처리한다. + string curSN = sn; + if (sn.Length != 4) throw new Exception("s/n length 4"); + + var buffer = curSN.ToCharArray(); + for (int i = buffer.Length; i > 0; i--) + { + if (i <= 2) + if (buffer[i - 1] == 'Q') buffer[i - 1] = 'R'; + + if (buffer[i - 1] == '9') { buffer[i - 1] = 'A'; break; } + else if (buffer[i - 1] == 'Z') buffer[i - 1] = '0'; + else { buffer[i - 1] = (char)((byte)buffer[i - 1] + 1); break; } + } + return string.Join("", buffer); + } + + /// + /// 리턴릴의 다음 번호 생성 R로시작하며 000~ZZZ 영역을 가진다(제외문자 없음) + /// + /// + /// + public static string GetNextSNbySN_Return(string sn) + { + //서버에서 자료를 조회해서 처리한다. + string curSN = sn; + if (sn.Length != 4) throw new Exception("s/n length 4"); + + var buffer = curSN.ToCharArray(); + for (int i = buffer.Length; i > 1; i--) + { + //if (i <= 2) //1,2번 영역에는 R값이 들어가면 안된다. + //{ + // if (buffer[i - 1] == 'Q') buffer[i - 1] = 'R'; + //} + + if (buffer[i - 1] == '9') { buffer[i - 1] = 'A'; break; } + else if (buffer[i - 1] == 'Z') buffer[i - 1] = '0'; + else { buffer[i - 1] = (char)((byte)buffer[i - 1] + 1); break; } + } + buffer[0] = 'R'; + return string.Join("", buffer); + } + + /// + /// 중복릴의 다음 번호 생성(0R로 시작하며 00~ZZ의 영역을 가진다) + /// + /// + /// + public static string GetNextSNbySN_Dup(string sn) + { + //서버에서 자료를 조회해서 처리한다. + string curSN = sn; + if (sn.Length != 4) throw new Exception("s/n length 4"); + + var buffer = curSN.ToCharArray(); + for (int i = buffer.Length; i > 2; i--) + { + //if (i <= 2) //1,2번 영역에는 R값이 들어가면 안된다. + //{ + // if (buffer[i - 1] == 'Q') buffer[i - 1] = 'R'; + //} + + if (buffer[i - 1] == '9') { buffer[i - 1] = 'A'; break; } + else if (buffer[i - 1] == 'Z') buffer[i - 1] = '0'; + else { buffer[i - 1] = (char)((byte)buffer[i - 1] + 1); break; } + } + buffer[0] = '0'; + buffer[1] = 'R'; + return string.Join("", buffer); + } + } +} diff --git a/Handler/Project/Class/CHistoryJOB.cs b/Handler/Project/Class/CHistoryJOB.cs new file mode 100644 index 0000000..3fd3399 --- /dev/null +++ b/Handler/Project/Class/CHistoryJOB.cs @@ -0,0 +1,168 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; + +namespace Project.Class +{ + + public class CHistoryJOB : INotifyPropertyChanged + { + public event PropertyChangedEventHandler PropertyChanged; + List _items; + public CHistoryJOB() + { + _items = new List(); + } + public void Clear() + { + lock (_items) + { + _items.Clear(); + } + + OnPropertyChanged("Clear"); + } + public int Count + { + get + { + lock (_items) + { + return _items.Count; + } + } + } + public void SetItems(List value) + { + lock (_items) + { + this._items = value; + } + OnPropertyChanged("REFRESH"); + } + + public List Items { get { return _items; } } + public void Add(JobData data) + { + lock (_items) + { + data.No = this._items.Count + 1; + _items.Add(data); + } + + OnPropertyChanged("Add:" + data.guid); + } + + public void Remove(JobData data) + { + lock (_items) + { + _items.Remove(data); + } + + OnPropertyChanged("Remove:" + data.guid); + } + public void Remove(string guid) + { + lock (_items) + { + var data = Get(guid); + _items.Remove(data); + } + OnPropertyChanged("Remove:" + guid); + } + public JobData Get(string guid) + { + lock (_items) + { + return _items.Where(t => t.guid == guid).FirstOrDefault(); + } + } + public void Set(JobData data) + { + var item = Get(data.guid); + if (item == null) throw new Exception("No data guid:" + data.guid.ToString()); + else + { + //item.No = data.No; + //item.JobStart = data.JobStart; + //item.JobEnd = data.JobEnd; + //item.VisionData = data.VisionData; + //item.error = data.error; + //item.Message = data.Message; + OnPropertyChanged("Set:" + data.guid); + } + } + public void RaiseSetEvent(string guid) + { + OnPropertyChanged("Set:" + guid); + } + + protected void OnPropertyChanged([CallerMemberName] string name = null) + { + if (PropertyChanged != null) + PropertyChanged.Invoke(this, new PropertyChangedEventArgs(name)); + } + } + //[Serializable] + //public class JobData + //{ + // //고유식별자 + // public string guid { get; private set; } + + // //비젼처리값 + // public Class.VisionData VisionData { get; set; } + + // //언로더포트(L/R) + // public string PortPos { get; set; } + + // //프린트위치(U/LO) + // public string PrintPos { get; set; } + + // //작업시작시간 + // public DateTime JobStart { get; set; } + + // //작업종료시간 + // public DateTime JobEnd { get; set; } + + // /// + // /// 이전 출고되는 시점과의 시간차 값 + // /// + // public double TackTime { get { return (JobEnd - JobStart).TotalSeconds; } } + + // //작업순서 + // public int No { get; set; } + + // //오류상태 + // public eJobResult error { get; set; } + + // //메세지 + // public string message { get; set; } + + + // public TimeSpan JobRun + // { + // get + // { + // if (JobEnd.Year == 1982) return new TimeSpan(0); + // else return this.JobEnd - this.JobStart; + // } + // } + // public JobData() + // { + // this.No = 0; + // PortPos = string.Empty; + // PrintPos = string.Empty; + // guid = Guid.NewGuid().ToString(); + // VisionData = new VisionData(); + // this.JobStart = new DateTime(1982, 11, 23); // DateTime.Parse("1982-11-23"); + // this.JobEnd = new DateTime(1982, 11, 23); // DateTime.Parse("1982-11-23"); + // error = eJobResult.None; + // message = string.Empty; + // } + + //} +} diff --git a/Handler/Project/Class/CHistorySIDRef.cs b/Handler/Project/Class/CHistorySIDRef.cs new file mode 100644 index 0000000..0f02996 --- /dev/null +++ b/Handler/Project/Class/CHistorySIDRef.cs @@ -0,0 +1,134 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; + +namespace Project.Class +{ + public class CHistorySIDRef : INotifyPropertyChanged + { + public event PropertyChangedEventHandler PropertyChanged; + public Boolean JobSIDRecvError + { + get + { + //아이템이있어야 정상이다 + if (_items == null || _items.Count < 1) return true; + else if (JobSIDRecvTime.Year == 1982) return true; + else return false; + } + } + public DateTime JobSIDRecvTime { get; set; } + public string JobSIDRecvMessage { get; set; } + List _items; + + public CHistorySIDRef() + { + Clear(); + } + public void SetItems(List value) + { + this._items = value; + OnPropertyChanged("REFRESH"); + } + + public List Items { get { return _items; } } + public int Count + { + get + { + return _items.Count; + } + } + public SIDDataRef Get(string sid_) + { + return _items.Where(t => t.sid == sid_).FirstOrDefault(); + } + public void Set(SIDDataRef data) + { + var item = Get(data.sid); + if (item == null) throw new Exception("No data sid:" + data.sid.ToString()); + else + { + item.kpc = data.kpc; + item.unit = data.unit; + OnPropertyChanged("Set:" + data.sid); + } + } + + public void Set(string sid, int kpc, string unit) + { + var item = Get(sid); + if (item == null) + { + Add(sid, kpc, unit); //없다면 추가해준다 + } + else + { + item.kpc = kpc; + item.unit = unit; + OnPropertyChanged("Set:" + sid); + } + } + + public void Add(SIDDataRef data) + { + _items.Add(data); + OnPropertyChanged("Add:" + data.sid); + } + + + public void Add(string sid, int kpc_, string unit) + { + if (string.IsNullOrEmpty(sid)) + { + PUB.log.AddAT("SID 추가 실패 SID 값이 입력되지 않았습니다"); + return; + } + //if (JobSidList.ContainsKey(sid) == false) + _items.Add(new SIDDataRef(sid, kpc_, unit)); + OnPropertyChanged("Add:" + sid); + //else + //{ + //이미 데이터가 있다. 중복이므로 누적한다 + //JobSidList.TryGetValue() + //} + } + public void Clear() + { + //JobSIDRecvError = false; + JobSIDRecvMessage = string.Empty; + JobSIDRecvTime = DateTime.Parse("1982-11-23"); + if (this._items == null) this._items = new List(); + else this._items.Clear(); + OnPropertyChanged("Clear"); + } + + protected void OnPropertyChanged([CallerMemberName] string name = null) + { + if (PropertyChanged != null) + PropertyChanged.Invoke(this, new PropertyChangedEventArgs(name)); + } + } + + [Serializable] + public class SIDDataRef + { + public string guid { get; set; } + public string sid { get; set; } + public string unit { get; set; } + public int kpc { get; set; } + + public SIDDataRef(string sid_, int kpc_, string unit_) + { + + guid = Guid.NewGuid().ToString(); + sid = sid_; + unit = unit_; + kpc = kpc_; + } + public SIDDataRef() : this(string.Empty, 0, string.Empty) { } + } +} diff --git a/Handler/Project/Class/CResult.cs b/Handler/Project/Class/CResult.cs new file mode 100644 index 0000000..b118777 --- /dev/null +++ b/Handler/Project/Class/CResult.cs @@ -0,0 +1,549 @@ +using AR; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + + +namespace Project +{ + + public class CResult + { + public enum eInspectResult + { + NG = 0, + OK, + ERROR, + NOTSET = 9, + } + + public UInt64 OptionValue = 0; + public UInt64 OptionValueData = 0; + + public List BCDPattern; + public List BCDIgnorePattern; + public List BCDPrintPattern; + + public DateTime ResetButtonDownTime = DateTime.Now; + public Boolean ClearAllSID = false; + public Class.CHistorySIDRef SIDReference; //SIDLIST받은 내역 + public List OUTHistory; //출고포트 처리내역 + public DataSet1.SIDHistoryDataTable SIDHistory; //sID별 rid 전체 목록 차수별로만 저장된다 + + public DataSet1.Component_Reel_SID_ConvertDataTable DTSidConvert; + public List DTSidConvertEmptyList; + public List DTSidConvertMultiList; + + public DSList dsList; + + public ModelInfoM mModel; //모션 모델 + public ModelInfoV vModel; //작업 모델 + + /// + /// 아이템의 정보가 담겨있다 (0:왼쪽,1:비젼,2:오른쪽) + /// + public Class.JobData ItemDataL = new Class.JobData(0); + public Class.JobData ItemDataC = new Class.JobData(1); + public Class.JobData ItemDataR = new Class.JobData(2); + + public Guid guid = new Guid(); + + public string JobType2 = string.Empty; + public Boolean JobFirst + { + get + { + return VAR.I32[(int)eVarInt32.PickOnCount] == 0; + } + } + + public Boolean DryRun + { + get + { + if (string.IsNullOrEmpty(JobType2)) return false; + else return JobType2.ToUpper() == "DRY"; + } + } + + public int OverLoadCountF { get; set; } + public int OverLoadCountR { get; set; } + + public UIControl.CItem UnloaderItem = null; + public DateTime LastExtInputTime = DateTime.Parse("1982-11-23"); + public DateTime LastOutTime = DateTime.Parse("1982-11-23"); + + public Single[] PortAlignWaitSec = new float[] { 0, 0, 0, 0 }; + public long[] PortAlignTime = new long[] { 0, 0, 0, 0 }; + + public byte UnloaderSeq = 0; + public DateTime UnloaderSeqTime; + public DateTime UnloaderSendtime = DateTime.Parse("1982-11-23"); + + /// + /// 로딩에 사용하는 포트번호 (자동 판단됨) + /// + public int LoadPortIndex = -1; + + /// + /// 로딩시에 사용한 포트의 번호(이 값으로 수량기록 위치를 결정) + /// + public int LoadPickIndex = -1; + + /// + /// 최종 할당된 언로딩 포트번호(1~8) + /// + public int UnloadPortNo = -1; + public byte LiveViewseq = 0; + public string AcceptBcd = string.Empty; + public DateTime AcceptBcdTime = DateTime.Now; + public string AcceptSid = string.Empty; + + //작업정보 + public eInspectResult Result; //작업결과가 저장됨 + public eResult ResultCode; + public eECode ResultErrorCode; + public string ResultMessage; + + public string LastSIDFrom = string.Empty;//101 = string.Empty; + public string LastSIDTo = string.Empty; // 103 = string.Empty; + //public string LastSID103_2 = string.Empty; + public string LastVName = string.Empty; + public int LastSIDCnt = 0; + + public Dictionary PrintPostionList = null; + + //작업정보(시간) + public DateTime JobStartTime = DateTime.Parse("1982-11-23"); + public DateTime JobEndTime = DateTime.Parse("1982-11-23"); + public TimeSpan JobRunTime() + { + if (JobStartTime.Year == 1982) return new TimeSpan(0); + if (JobEndTime.Year == 1982) return DateTime.Now - JobStartTime; + else return JobEndTime - JobStartTime; + } + + /// + /// RUN -> Pause(Wait Start)모드 전환시 저장할 모터의 위치값 + /// 조그모드등으로 좌표를 옴길때의 기준 좌표 + /// 이 좌표값에서 현재 모션값에 변화가 있으면 프로그램에서는 오류로 처리하게 됨 + /// + public double[] PreventMotionPosition = new double[8]; + + #region "SetResultMessage" + + public void SetResultMessage(eResult code, eECode err, eNextStep systempause, params object[] args) + { + + var rltMsg = PUB.GetResultCodeMessage(code); + var codeMSg = $"[E{(int)err}] ";// + Util.GetResultCodeMessage(code); + if (err == eECode.MESSAGE_ERROR) + { + codeMSg = $"[{rltMsg} ERROR MESSAGE]\n"; + } + else if (err == eECode.MESSAGE_INFO) + { + codeMSg = $"[{rltMsg} INFORMATION]\n"; + } + + + + var erMsg = PUB.GetErrorMessage(err, args); + var msg = codeMSg + erMsg; + + this.ResultCode = code; + this.ResultErrorCode = err; + this.ResultMessage = msg; + + if (systempause == eNextStep.PAUSENOMESAGE) this.ResultMessage = string.Empty; //210129 + + PUB.log.AddE(msg); + if (systempause == eNextStep.PAUSE) PUB.sm.SetNewStep(eSMStep.PAUSE); + else if (systempause == eNextStep.PAUSENOMESAGE) PUB.sm.SetNewStep(eSMStep.PAUSE); + else if (systempause == eNextStep.ERROR) PUB.sm.SetNewStep(eSMStep.ERROR); + } + + + public void SetResultTimeOutMessage(eDOName pinName, Boolean checkState, eNextStep systemPause) + { + var pindef = DIO.Pin[pinName]; + if (checkState) SetResultMessage(eResult.SENSOR, eECode.DOON, systemPause, pindef.terminalno, pindef.name); + else SetResultMessage(eResult.SENSOR, eECode.DOOFF, systemPause, pindef.terminalno, pindef.name); + } + public void SetResultTimeOutMessage(eDIName pinName, Boolean checkState, eNextStep systemPause) + { + var pindef = DIO.Pin[pinName]; + if (checkState) SetResultMessage(eResult.SENSOR, eECode.DION, systemPause, pindef.terminalno, pindef.name); + else SetResultMessage(eResult.SENSOR, eECode.DIOFF, systemPause, pindef.terminalno, pindef.name); + } + public void SetResultTimeOutMessage(eAxis motAxis, eECode ecode, eNextStep systemPause, string source, double targetpos, string message) + { + SetResultMessage(eResult.TIMEOUT, ecode, systemPause, motAxis, source, targetpos, message); + } + public void SetResultTimeOutMessage(eECode ecode, eNextStep systemPause, params object[] args) + { + SetResultMessage(eResult.TIMEOUT, ecode, systemPause, args); + } + #endregion + + public DateTime[] diCheckTime = new DateTime[256]; + public DateTime[] doCheckTime = new DateTime[256]; + + public Boolean isError { get; set; } + // public Boolean isMarkingMode { get; set; } + + public int retry = 0; + public DateTime retryTime; + public DateTime[] WaitForVar = new DateTime[255]; + public int JoystickAxisGroup = 0; + + public int ABCount = 0; + + + public CResult() + { + mModel = new ModelInfoM(); + vModel = new ModelInfoV(); + + SIDReference = new Class.CHistorySIDRef(); + SIDHistory = new DataSet1.SIDHistoryDataTable(); + BCDPattern = new List(); + BCDPrintPattern = new List(); + OUTHistory = new List(); + + this.Clear("Result ctor"); + dsList = new DSList(); + LoadListDB(); + + //230509 + if(DTSidConvert != null) DTSidConvert.Dispose(); + DTSidConvert = new DataSet1.Component_Reel_SID_ConvertDataTable(); + DTSidConvertEmptyList = new List(); + DTSidConvertMultiList = new List(); + } + + public void SaveListDB() + { + var finame = System.IO.Path.Combine(UTIL.CurrentPath, "Data", "SavaedList.xml"); + var fi = new System.IO.FileInfo(finame); + if (fi.Directory.Exists == false) fi.Directory.Create(); + this.dsList.WriteXml(fi.FullName); + PUB.log.Add("사전목록DB를 저장 했습니다" + fi.FullName); + } + + public void LoadListDB() + { + var finame = System.IO.Path.Combine(UTIL.CurrentPath, "Data", "SavaedList.xml"); + var fi = new System.IO.FileInfo(finame); + if (fi.Directory.Exists == false) fi.Directory.Create(); + if (fi.Exists) + { + this.dsList.ReadXml(fi.FullName); + PUB.log.Add("사전목록DB를 불러왔습니다" + fi.FullName); + } + } + + ///// + ///// 입력한 sid 가 원본에 존재하지 않으면 -1을 존재하면 입력된 수량을 반환합니다 + ///// + ///// + ///// + //public int ExistSIDReferenceCheck(string sid) + //{ + // var dr = PUB.Result.SIDReference.Items.Where(t => t.sid.EndsWith(sid)).FirstOrDefault(); + // if (dr == null) return -1; + // else return dr.kpc; + //} + + + //public void ClearHistory() + //{ + + // //this.JObHistory.Clear(); + // this.SIDReference.Clear(); + // PUB.log.AddI("Clear History"); + //} + + + public void ClearOutPort() + { + OUTHistory.Clear(); + } + + public void Clear(string Reason) + { + + this.guid = Guid.NewGuid(); + + //프린트위치를 별도로 저장하고 있는다(나중에 추가 활용한다) 231005 + if (PrintPostionList == null) + PrintPostionList = new Dictionary(); + else + PrintPostionList.Clear(); + + ItemDataL.Clear(Reason); + ItemDataC.Clear(Reason); + ItemDataR.Clear(Reason); + + OverLoadCountF = 0; + OverLoadCountR = 0; + ClearOutPort(); + + LoadPortIndex = -1; + + if (PUB.sm != null) + PUB.sm.seq.ClearTime(); + + isError = false; + ABCount = 0; + ///기다림용 변수모듬 + for (int i = 0; i < WaitForVar.Length; i++) + WaitForVar[i] = DateTime.Parse("1982-11-23"); + + //조그모드시 모션이동 감지용 저장 변수 + for (int i = 0; i < 6; i++) + PreventMotionPosition[i] = 0.0; + + //JobStartTime = DateTime.Parse("1982-11-23"); + //JobEndTime = DateTime.Parse("1982-11-23"); + //LastOutTime = DateTime.Parse("1982-11-23"); + + Result = eInspectResult.NOTSET; + ResultCode = eResult.NOERROR; + ResultMessage = string.Empty; + + //시간정보값을 초기화함 + for (int i = 0; i < 2; i++) + ClearTime(i); + + + + PUB.log.Add("Result 데이터 초기화"); + } + + + public void ClearTime(int shutIdx) + { + //JobStartTime = DateTime.Parse("1982-11-23"); + //JobEndTime = DateTime.Parse("1982-11-23"); + + Result = eInspectResult.NOTSET; + ResultCode = eResult.NOERROR; + ResultMessage = string.Empty; + + PUB.log.Add("Result(Clear Time)"); + } + + public Boolean isSetmModel + { + get + { + if (PUB.Result.mModel == null || PUB.Result.mModel.idx == -1 || PUB.Result.mModel.Title.isEmpty()) + return false; + else return true; + } + + } + public Boolean isSetvModel + { + get + { + if (PUB.Result.vModel == null || PUB.Result.vModel.idx == -1 || PUB.Result.vModel.Title.isEmpty()) + return false; + else return true; + } + + } + //public string getErrorMessage(eResult rlt, eECode err, params object[] args) + //{ + // switch (err) + // { + // case eECode.RIDDUPL: + // return string.Format( + // "좌측 언로더에 사용되었던 REEL ID 입니다\n" + + // "바코드 오류 가능성이 있습니다\n" + + // "좌측 릴의 바코드를 확인하시기 바랍니다\n" + + // "작업을 계속할 수 없습니다. 취소 후 다시 시도하세요\n{0}", args); + + // case eECode.RIDDUPR: + // return string.Format( + // "우측 언로더에 사용되었던 REEL ID 입니다\n" + + // "바코드 오류 가능성이 있습니다\n" + + // "우측 릴의 바코드를 확인하시기 바랍니다\n" + + // "작업을 계속할 수 없습니다. 취소 후 다시 시도하세요\n{0}", args); + + // case eECode.BARCODEVALIDERR: + // return string.Format("바코드 데이터 검증 실패\n" + + // "인쇄전 데이터와 인쇄후 데이터가 일치하지 않습니다\n" + + // "ID(O) : {1}\n" + + // "ID(N) : {2}\n" + + // "SID : {5}->{6}\n" + + // "QTY : {3}->{4}\n" + + // "DATE : {7}->{8}\n" + + // "Index : {0}", args); + + // case eECode.MOTX_SAFETY: + // return string.Format("PICKER-X 축이 안전위치에 없습니다\n1. 조그를 이용하여 중앙으로 이동 합니다\n2.홈 작업을 다시 실행합니다", args); + // case eECode.NOERROR: + // return string.Format("오류가 없습니다", args); + + // case eECode.PORTOVERLOAD: + // return string.Format("PORT OVERLOAD\n위치 : {0}\n" + + // "너무 많은 양이 적재 되었습니다\n" + "상단 LIMIT 센서에 걸리지 않게 적재하세요", args); + // case eECode.EMERGENCY: + // return string.Format("비상정지 버튼을 확인하세요\n" + + // "버튼 : F{0}\n" + + // "메인전원이 OFF 된 경우에도 이 메세지가 표시 됩니다\n" + + // "메인전원은 모니터 하단 AIR버튼 좌측에 있습니다" + // , DIO.GetIOInput(eDIName.BUT_EMGF)); + // case eECode.NOMODELM: + // return "모션모델이 선택되지 않았습니다\n" + + // "상단 메뉴 [모션모델]에서 사용할 모델을 선택하세요"; + // case eECode.NOMODELV: + // return "작업모델이 선택되지 않았습니다\n" + + // "상단 메뉴 [작업모델]에서 사용할 모델을 선택하세요"; + + // case eECode.CARTERROR: + // return string.Format("언로더 카트가 없거나 크기 정보가 일치하지 않습니다\n좌측:{0}, 로더:{1}, 우측:{2}", args); + // case eECode.CARTL: + // return string.Format("왼쪽(UNLOAD) 포트에 카트가 감지되지 않습니다\n카트를 장착하세요\n카트크기 : {0}, 릴크기:{1}", args); + // case eECode.CARTC: + // return string.Format("중앙(LOAD) 포트에 카트가 감지되지 않습니다\n카트를 장착하세요\n카트크기 : {0}, 릴크기:{1}", args); + // case eECode.CARTR: + // return string.Format("오른쪽(UNLOAD) 포트에 카트가 감지되지 않습니다\n카트를 장착하세요\n카트크기 : {0}, 릴크기:{1}", args); + + // case eECode.CARTLMATCH: + // return string.Format("왼쪽(UNLOAD) 카트와 피커의 릴 크기가 일치하지 않습니다\n카트크기를 확인 하세요\n카트크기 : {0}, 릴크기:{1}", args); + // case eECode.CARTCMATCH: + // return string.Format("중앙(LOAD) 카트와 피커의 릴 크기가 일치하지 않습니다\n카트크기를 확인 하세요\n카트크기 : {0}, 릴크기:{1}", args); + // case eECode.CARTRMATCH: + // return string.Format("오른쪽(UNLOAD) 카트와 피커의 릴 크기가 일치하지 않습니다\n카트크기를 확인 하세요\n카트크기 : {0}, 릴크기:{1}", args); + + + // case eECode.NOREELSIZE: + // return string.Format("왼쪽포트에 놓을 릴의 크기정보가 없습니다\n프로그램 오류입니다\n개발자에게 해당 메세지를 전달하세요\n" + + // "장치 초기화를 진행 한 후 다시 시도하세요"); + + // case eECode.VISION_NOCONN: + // return string.Format("카메라({0}) 연결 안됨", args); + + // case eECode.INCOMPLETE_LOADERDATA: + // return string.Format("로더 바코드 필수값을 읽지 못했습니다", args); + // case eECode.CAM_NOBARCODEU: + // return string.Format("언로더({0}) 바코드를 읽지 못했습니다", args); + // case eECode.HOME_TIMEOUT: + // return string.Format("홈 진행이 완료되지 않고 있습니다\n" + + // "오류가 발생했다면 '홈' 작업을 다시 진행하세요\n" + + // "대기시간 : {0}초", args); + + + // case eECode.DOORSAFTY: + // return string.Format("포트 안전센서가 감지 되었습니다\n" + + // "안전센서를 확인한 후 다시 시도하세요\n", args); + + // case eECode.AIRNOOUT: + // return "AIR 공급이 차단 되어 있습니다.\n" + + // "전면의 AIR 버튼을 누르세요\n" + + // "공급이 되지 않으면 메인 전원 을 확인하세요\n" + + // "메인 전원은 AIR 버튼 좌측에 있습니다" + + // "메인 전원 공급 실패시 장비 후면의 차단기를 확인하세요"; + + + // case eECode.DOOFF: + // var pinoOf = (eDOName)args[0]; + // return string.Format("출력이 OFF 되지 않았습니다.\n" + + // "포트설명 : {0}\n" + + // "포트번호 : {1} ({2})", DIO.getPinDescription(pinoOf), (int)pinoOf, Enum.GetName(typeof(eDOPin), pinoOf)); + // case eECode.DOON: + // var pinoOn = (eDOName)args[0]; + // return string.Format("출력이 ON 되지 않았습니다.\n" + + // "포트설명 : {0}\n" + + // "포트번호 : {1} ({2})", DIO.getPinDescription(pinoOn), (int)pinoOn, Enum.GetName(typeof(eDOPin), pinoOn)); + // case eECode.DIOFF: + // var piniOf = (eDIName)args[0]; + // return string.Format("입력이 OFF 되지 않았습니다.\n" + + // "포트설명 : {0}\n" + + // "포트번호 : {1} ({2})", DIO.getPinDescription(piniOf), (int)piniOf, Enum.GetName(typeof(eDIPin), piniOf)); + // case eECode.DION: + // var piniOn = (eDIName)args[0]; + // return string.Format("입력이 ON 되지 않았습니다.\n" + + // "포트설명 : {0}\n" + + // "포트번호 : {1} ({2})", DIO.getPinDescription(piniOn), (int)piniOn, Enum.GetName(typeof(eDIPin), piniOn)); + + // case eECode.AZJINIT: + // return string.Format("DIO 혹은 모션카드가 초기화 되지 않았습니다.\n" + + // "DIO : {0}\n" + + // "MOTION : {1}\n" + + // "해당 카드는 본체 내부 PCI 슬롯에 장착 된 장비 입니다\n" + + // "EzConfig AXT 프로그램으로 카드 상태를 확인하세요", + // PUB.dio.IsInit, PUB.mot.IsInit); + + // case eECode.MOT_HSET: + // var msg = "모션의 HOME 검색이 완료되지 않았습니다"; + // for (int i = 0; i < 6; i++) + // { + // if (PUB.mot.IsUse(i) == false) continue; + // var axis = (eAxis)i; + // var stat = PUB.mot.IsHomeSet(i); + // if (stat == false) msg += string.Format("\n[{0}] {1} : {2}", i, axis, stat); + // } + // msg += "\n장치 초기화를 실행하세요"; + // return msg; + // case eECode.MOT_SVOFF: + // var msgsv = "모션 중 SERVO-OFF 된 축이 있습니다"; + // for (int i = 0; i < 6; i++) + // { + // if (PUB.mot.IsUse(i) == false) continue; + // var axis = (eAxis)i; + // var stat = PUB.mot.IsServOn(i); + // if (stat == false) msgsv += string.Format("\n[{0}] {1} : {2}", i, axis, stat); + // } + // msgsv += "\nRESET을 누른 후 '모션설정' 화면에서 확인합니다"; + // return msgsv; + // case eECode.MOT_HSEARCH: + // return string.Format("모션의 홈 검색이 실패되었습니다\n" + + // "축 : {0}\n" + + // "메세지 : {1}", args); + + // case eECode.MOT_CMD: + // var axisNo = (int)((eAxis)args[0]); + // var axisSrc = args[1].ToString(); + // return string.Format("모션축 명령이 실패 되었습니다\n축 : {0}\n" + + // "현재위치 : {2}\n" + + // "명령위치 : {3}\n" + + // "소스 : {1}", axisNo, axisSrc, PUB.mot.GetActPos(axisNo), PUB.mot.GetActPos(axisNo)); + + + + // //case eECode.timeout_step: + // // return string.Format("스텝당 최대 실행 시간이 초과 되었습니다.\n" + + // // "스텝 : {0}\n" + + // // "최대동작시간 : " + COMM.SETTING.Data.Timeout_StepMaxTime.ToString(), args); + + + // case eECode.USER_STOP: + // return "'일시정지' 버튼 눌림\n" + + // "사용자에 의해 작동이 중지 되었습니다\n" + + // "'RESET' -> 'START'로 작업을 계속할 수 있습니다"; + + // case eECode.CAM_RIGHT: + // return "우측카메라가 사용가능한 상태가 아닙니다.\n" + + // "신규 실행시에는 초기화 완료까지 기다려 주세요"; + // case eECode.CAM_LEFT: + // return "좌측카메라가 사용가능한 상태가 아닙니다.\n" + + // "신규 실행시에는 초기화 완료까지 기다려 주세요"; + // default: + // return err.ToString(); + // } + + //} + //public string getResultCodeMessage(eResult rltCode) + //{ + // //별도 메세지처리없이 그대로 노출한다 + // return rltCode.ToString().ToUpper(); + //} + + } + +} diff --git a/Handler/Project/Class/Command.cs b/Handler/Project/Class/Command.cs new file mode 100644 index 0000000..e7333af --- /dev/null +++ b/Handler/Project/Class/Command.cs @@ -0,0 +1,459 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using AR; +namespace Project.Commands +{ + public class CommandBuffer + { + public int Idx { get; set; } + + private int REGISTER_VALUE = 0; + private Boolean REGISTER_TRUE = false; + private Boolean REGISTER_FALSE = false; + private Boolean REGISTER_EQUAL = false; + private Boolean REGISTER_ABOVE = false; + private Boolean REGISTER_BELOW = false; + + + /// + /// 순차실행명령 + /// + public List Commands; + + /// + /// 상시실행명령 + /// + public List SPS; + public CommandBuffer() + { + Commands = new List(); + SPS = new List(); + } + public void AddSeq(Command cmd) + { + cmd.Idx = this.Commands.Count; + this.Commands.Add(cmd); + } + public void AddSPS(Command cmd) + { + cmd.Idx = this.SPS.Count; + this.SPS.Add(cmd); + } + public void Clear() + { + Commands.Clear(); + SPS.Clear(); + Idx = 0; + } + public StepResult Run() + { + //sps는 모두 실행한다 + StepResult rlt; + foreach (var sps in this.SPS) + { + rlt = RunCode(sps); + if (rlt == StepResult.Wait) return StepResult.Wait; //SPS에서 대기 코드가 있다 + else if (rlt == StepResult.Error) return StepResult.Error; + } + + //sequece 는 현재 것만 실행한다. + if (Idx < 0) Idx = 0; + var cmd = this.Commands[Idx]; + rlt = RunCode(cmd); + if (rlt == StepResult.Complete) //이 명령이 완료되면 다음으로 진행한다 + { + Idx += 1; + if (Idx >= this.Commands.Count) return StepResult.Complete; + else return StepResult.Wait; + } + return rlt; + } + + private StepResult RunCode(Command cmd) + { + switch (cmd.type) + { + case CType.NOP: return StepResult.Complete; + case CType.Wait: + var data0 = cmd.Data as CDWait; + if (data0.Trigger == false) + { + //아직 시작을 안했으니 시작시키고 대기한다 + data0.SetTrigger(true); + return StepResult.Wait; + } + else + { + //아직 시간을 다 쓰지 않았다면 넘어간다 + if (data0.TimeOver == false) return StepResult.Wait; + } + break; + case CType.Output: + var data1 = cmd.Data as CDOutput; + if (data1.PinIndex < 0) return StepResult.Error; + if (DIO.SetOutput((eDOName)data1.Pin, data1.Value) == false) return StepResult.Error; + break; + case CType.Move: + var data2 = cmd.Data as CDMove; + MOT.Move((eAxis)data2.Axis, data2.Position, data2.Speed, data2.Acc, data2.Relative); + break; + case CType.MoveForece: + var data3 = cmd.Data as CDMove; + MOT.Move((eAxis)data3.Axis, data3.Position, data3.Speed, data3.Acc, data3.Relative, false, false); + break; + case CType.MoveWait: + var data4 = cmd.Data as CDMove; + var axis = (eAxis)data4.Axis; + var mrlt = MOT.CheckMotionPos(axis, new TimeSpan(1), data4.Position, data4.Speed, data4.Acc, data4.Dcc, cmd.description); + if (mrlt == false) return StepResult.Wait; + break; + case CType.GetFlag: + var data5 = cmd.Data as CDFlag; + data5.Value = PUB.flag.get(data5.Flag); + REGISTER_FALSE = data5.Value == false; + REGISTER_TRUE = data5.Value == true; + break; + case CType.SetFlag: + var data6 = cmd.Data as CDFlag; + PUB.flag.set(data6.Flag, data6.Value, cmd.description); + break; + case CType.True: + var data7 = cmd.Data as CDCommand; + if (REGISTER_TRUE) return RunCode(data7.Command); + break; + case CType.False: + var data8 = cmd.Data as CDCommand; + if (REGISTER_FALSE) return RunCode(data8.Command); + break; + case CType.GetVar: //공용변수의값 + var data10 = cmd.Data as CDGetVar; + if (data10.Key == "STEPTIME") + { + data10.Confirm = true; + data10.Value = (int)PUB.sm.StepRunTime.TotalMilliseconds; + } + + + break; + case CType.GetSetVar: //공용변수(설정)의 값 + var data11 = cmd.Data as CDGetVar; + if (data11.Key == "TIMEOUT_HOMEFULL") + { + data11.Confirm = true; + data11.Value = 60;// (int)Pub.sm.StepRunTime.TotalMilliseconds; + } + break; + + case CType.Compare: + + var data9 = cmd.Data as CDCompare; + if (data9 != null) + { + RunCode(data9.Source); //비교값(좌) + RunCode(data9.Target); //비교값(우) + + var valS = data9.Source.Data as ICommandValue; + var valT = data9.Target.Data as ICommandValue; + int ValueS = (int)valS.Value; + int ValueT = (int)valT.Value; + + REGISTER_ABOVE = ValueS > ValueT; + REGISTER_BELOW = ValueS < ValueT; + REGISTER_EQUAL = ValueS == ValueT; + REGISTER_TRUE = ValueS == ValueT; + REGISTER_FALSE = ValueS != ValueT; + REGISTER_VALUE = ValueS - ValueT; + } + else return StepResult.Error; + + + break; + + case CType.SetError: + var data12 = cmd.Data as CDError; + PUB.Result.SetResultMessage(data12.ResultCode, data12.ErrorCode, data12.NextStep); + break; + } + + return StepResult.Complete; + } + } + public enum CType + { + NOP = 0, + /// + /// motion move + /// + Move, + MoveForece, + + /// + /// move and wait + /// + MoveWait, + + /// + /// set digital output + /// + Output, + Log, + StepChange, + /// + /// check digital input + /// + InputCheck, + + /// + /// check digital output + /// + OutputCheck, + + GetFlag, + SetFlag, + + Equal, + NotEqual, + True, + False, + Zero, + NonZero, + SetError, + Compare, + SetVar, + GetVar, + GetSetVar, + Above, + Below, + + Wait, + Run, + + } + public class Command + { + + public CType type { get; set; } = CType.NOP; + public int Idx { get; set; } + public string description { get; set; } + public ICommandData Data { get; set; } + public Command(CType type, string desc = "") + { + this.type = type; + this.description = desc; + } + } + public interface ICommandData + { + // string Description { get; set; } + } + public interface ICommandValue + { + object Value { get; set; } + } + public class CDGetVar : ICommandData, ICommandValue + { + public string Key { get; set; } + public object Value { get; set; } + public Boolean Confirm { get; set; } + public CDGetVar(string key) + { + this.Key = key; + } + } + public class CDGetSetVar : ICommandData, ICommandValue + { + public string Key { get; set; } + public object Value { get; set; } + public Boolean Confirm { get; set; } + public CDGetSetVar(string key) + { + this.Key = key; + } + } + public class CDSetVar : ICommandData + { + public string Key { get; set; } + public int Value { get; set; } + public CDSetVar(string key, int value) + { + this.Key = key; + this.Value = Value; + } + } + public class CDFlag : ICommandData + { + public eVarBool Flag { get; set; } + public Boolean Value { get; set; } + public CDFlag(eVarBool flag) + { + this.Flag = flag; + Value = false; + } + } + + public class CDSetValI : ICommandData + { + public int Value { get; set; } + public CDSetValI(int idx, int value) + { + this.Value = value; + } + } + public class CDSetValB : ICommandData + { + public bool Value { get; set; } + public CDSetValB(int idx, bool value) + { + this.Value = value; + } + } + public class CDCommand : ICommandData + { + public Command Command { get; set; } + public CDCommand(Command command) + { + this.Command = command; + } + } + public class CDError : ICommandData + { + public eResult ResultCode { get; set; } + public eECode ErrorCode { get; set; } + public eNextStep NextStep { get; set; } + + public CDError(eResult resultCode, eECode errorCode, eNextStep nextStep) + { + ResultCode = resultCode; + ErrorCode = errorCode; + NextStep = nextStep; + } + } + //public class CDCompare : ICommandData + //{ + // public T Value { get; set; } + // public CDCompare(T value) + // { + // Value = value; + // } + // public CDCompare(Command source, Command target) + // { + // Value = value; + // } + //} + public class CDCompare : ICommandData + { + public Command Source { get; set; } + public Command Target { get; set; } + public CDCompare(Command source, Command target) + { + Source = source; + Target = target; + } + } + + public class CDWait : ICommandData + { + public int WaitMS { get; set; } + public DateTime StartTime { get; set; } + public Boolean Trigger { get; set; } + private TimeSpan GetTime { get { return DateTime.Now - StartTime; } } + public Boolean TimeOver { get { return GetTime.TotalMilliseconds > WaitMS; } } + public void SetTrigger(Boolean value) + { + Trigger = value; + StartTime = DateTime.Now; + } + + public CDWait() : this(100) { } + public CDWait(int ms) + { + this.WaitMS = ms; + } + } + public class CDMove : ICommandData + { + + public int Axis { get; set; } + public double Position { get; set; } + public double Speed { get; set; } + public double Acc { get; set; } + public double Dcc { get; set; } + public Boolean Relative { get; set; } + // public string Description { get; set; } + public CDMove(eAxis axis, double pos, double speed) : this((int)axis, pos, speed, 0) { } + public CDMove(int axis, double pos, double speed, double acc, double dcc = 0, Boolean relatvie = false) + { + Axis = axis; + Position = pos; + Speed = speed; + Acc = acc; + Dcc = dcc == 0 ? acc : dcc; + Relative = relatvie; + + } + } + public class CDOutput : ICommandData + { + + public eDOName Pin { get; set; } + public int PinIndex { get; set; } + public Boolean Value { get; set; } + // public string Description { get; set; } + //public CDOutput(eDOName pin) : this(pin, false) { } + public CDOutput(eDOName pin, Boolean value) + { + Pin = pin; + PinIndex = (int)pin; + Value = value; + } + public CDOutput(int point, Boolean value) + { + Pin = (eDOName)point; + PinIndex = point; + Value = value; + } + } + + public class CDRun : ICommandData + { + public Action Target { get; set; } + public CDRun(Action target) + { + Target = target; + } + } + public class CDRunRet : ICommandData + { + public Func Target { get; set; } + public CDRunRet(Func target) + { + Target = target; + } + } + + public class CDLog : ICommandData + { + + public string Message { get; set; } + public Boolean IsError { get; set; } + public CDLog(string message, Boolean err = false) + { + Message = message; + IsError = err; + } + } + public class CDStep : ICommandData + { + + public eSMStep Step { get; set; } + public Boolean Force { get; set; } + public CDStep(eSMStep step, Boolean force = false) + { + Step = step; + Force = force; + } + } +} diff --git a/Handler/Project/Class/EEMStatus.cs b/Handler/Project/Class/EEMStatus.cs new file mode 100644 index 0000000..d8a9ee5 --- /dev/null +++ b/Handler/Project/Class/EEMStatus.cs @@ -0,0 +1,390 @@ +using Project; +using Project.Device; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Management; +using System.Net; +using System.Net.NetworkInformation; +using System.Text; +using System.Threading.Tasks; + +/// +/// ============================================================================ +/// 장비기술 상태 모니터링 관련 클래스 +/// 이 클래스는 SQLfiletoDB 프로그램과 같이 사용하는 것을 권장합니다. +/// 현재 실행 중인 프로그램의 하위 폴더 Status 에 입력된 상태값을 SQL 파일로 기록합니다. +/// SQLfiletoDB는 SQL파일을 실제 DB에 기록하는 프로그램입니다. +/// ============================================================================ +/// 작성자 : chi +/// 작성일 : 202-06-15 +/// GIT : (none) +/// +public static partial class EEMStatus +{ + static System.Threading.ManualResetEvent mre = new System.Threading.ManualResetEvent(true); + static string ip = string.Empty; + static string mac = string.Empty; + static DateTime StatusChecktime = DateTime.Now; + static DateTime MonitorChecktime = DateTime.Now.AddYears(-1); + static DateTime FileCheckTime = DateTime.Now; + static string monitorfile = string.Empty; + /// + /// UpdateStatusSQL 명령이 동작하는 간격이며 기본 180초(=3분)로 되어 있습니다. + /// + public static int UpdateStatusInterval { get; set; } = 180; + public static int UpdateFileInterval { get; set; } = 3; + static bool queryok = false; + static bool UpdateRun = false; + + public static string IP + { + get + { + if (queryok == false) GetNetworkInfo(); + return ip; + } + set { ip = value; } + } + public static string MAC + { + get + { + if (queryok == false) GetNetworkInfo(); + return mac; + } + set + { + mac = value; + } + } + + /// + /// 현재 시스템의 IP/MAC정보를 취득합니다. + /// + static void GetNetworkInfo() + { + + ip = ""; + mac = ""; + // string prgmName = Application.ProductName; + + var nif = NetworkInterface.GetAllNetworkInterfaces(); + var host = Dns.GetHostEntry(Dns.GetHostName()); + string fullname = System.Net.Dns.GetHostEntry("").HostName; + foreach (IPAddress r in host.AddressList) + { + string str = r.ToString(); + + if (str != "" && str.Substring(0, 3) == "10.") + { + ip = str; + break; + } + } + + string rtn = string.Empty; + ObjectQuery oq = new System.Management.ObjectQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled='TRUE'"); + ManagementObjectSearcher query1 = new ManagementObjectSearcher(oq); + foreach (ManagementObject mo in query1.Get()) + { + string[] address = (string[])mo["IPAddress"]; + if (address[0] == ip && mo["MACAddress"] != null) + { + mac = mo["MACAddress"].ToString(); + break; + } + } + queryok = true; + } + + public static void UpdateStatusSQL(eSMStep status, bool _extrun = false, string remark = "") + { + var tsrun = DateTime.Now - StatusChecktime; + if (tsrun.TotalSeconds >= UpdateStatusInterval) + { + AddStatusSQL(status, "UPDATE", extrun: _extrun); + StatusChecktime = DateTime.Now; + } + + //내부실행모드일때에만 파일을 처리한다 + if (_extrun == false) + { + var tsfile = DateTime.Now - FileCheckTime; + if (tsfile.TotalSeconds >= UpdateFileInterval) + { + if (UpdateRun == false) + { + UpdateRun = true; + Task.Run(() => + { + UpdateFileToDB(); + UpdateRun = false; + }); + } + FileCheckTime = DateTime.Now; + } + } + } + + /// + /// 상태모니터링 프로그램의 실행파일 명 + /// + static string StatusMonitorFile + { + get + { + if (string.IsNullOrEmpty(monitorfile)) + monitorfile = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Status", "SQLFileToDB.exe"); + return monitorfile; + } + } + + static System.Diagnostics.Process CheckMonitor() + { + if (System.IO.File.Exists(StatusMonitorFile) == false) return null; + + var prcs = System.Diagnostics.Process.GetProcesses(); + return prcs.Where(t => t.ProcessName.ToLower().StartsWith("sqlfiletodb")).FirstOrDefault(); + } + + public static bool RunStatusMonitor() + { + //파일이 없으면 실행 불가 + if (System.IO.File.Exists(StatusMonitorFile) == false) return false; + + //실행프로세스 검사 + var prc = CheckMonitor(); + if (prc == null) + { + try + { + prc = new System.Diagnostics.Process(); + prc.StartInfo = new System.Diagnostics.ProcessStartInfo + { + Arguments = string.Empty, + FileName = StatusMonitorFile, + }; + prc.Start(); + } + catch + { + return false; + } + } + + return true; + } + + /// + /// 작업수량을 입력합니다 + /// + /// + /// + public static string AddStatusCount(int cnt, string remark = "") + { + if (remark.isEmpty()) remark = $"Count Set : {cnt}"; + return AddStatusSQL(PUB.sm.Step, remark, count: cnt); + } + /// + /// 상태메세지를 status 폴더에 기록합니다. + /// + /// 상태머신의 상태값 + /// 비고 + /// 기록일시 + /// 오류발생시 오류메세지가 반환 됩니다 + public static string AddStatusSQL(eSMStep status, string remark = "", DateTime? wdate = null, bool extrun = false, int? count = null) + { + if (queryok == false || MAC.isEmpty()) GetNetworkInfo(); + if (status == eSMStep.CLOSEWAIT || status == eSMStep.CLOSED) return string.Empty; + + if (extrun) + { + //상태모니터링 프로그램을 실행합니다. + var tsMon = DateTime.Now - MonitorChecktime; + if (tsMon.TotalMinutes > 5) RunStatusMonitor(); + } + + try + { + var state = 0; + string cntstr = "null"; + if (count != null) cntstr = count.ToString(); + var alarmid = string.Empty; + var alarmmsg = string.Empty; + if (string.IsNullOrEmpty(remark)) remark = $"STS:{status}"; + + if (status == eSMStep.RUN) state = 1; + else if (status == eSMStep.ERROR || status == eSMStep.EMERGENCY) + { + state = 2; + alarmid = PUB.Result.ResultErrorCode.ToString(); + alarmmsg = PUB.Result.ResultMessage; + } + else if (status == eSMStep.PAUSE) //일시중지도 오류코드가 포함된다, + { + if (PUB.Result.ResultErrorCode == eECode.USER_STEP || PUB.Result.ResultErrorCode == eECode.USER_STOP || PUB.Result.ResultErrorCode.ToString().StartsWith("MESSAGE")) + { + //사용자에의해 멈추는 것은 오류코드를 넣지 않는다. + } + else + { + alarmid = PUB.Result.ResultErrorCode.ToString(); + alarmmsg = PUB.Result.ResultMessage; + } + } + else if (status == eSMStep.INIT) state = 3; //시작 + else if (status == eSMStep.CLOSING) state = 4; //종료 + + //length check + if (alarmid.Length > 10) alarmid = alarmid.Substring(0, 10); + if (remark.Length > 99) remark = remark.Substring(0, 99); + if (alarmmsg.Length > 250) alarmmsg = alarmmsg.Substring(0, 50); + + var mcid = AR.SETTING.Data.MCID;// Project.PUB.setting.MCID;//.Data.MCID; + //var mcid = Project.PUB.setting.MCID;//.Data.MCID; + var path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Status"); + var file = System.IO.Path.Combine(path, $"{DateTime.Now.ToString("HHmmssfff")}_{status}.sql"); + var sql = "insert into MCMonitor_Rawdata(Model,status,remark,ip,mac,time,alarmid,alarmmsg,count,version) " + + " values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}',{8},'{9}')"; + + var timestr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + if (wdate != null) timestr = ((DateTime)wdate).ToString("yyyy-MM-dd HH:mm:ss"); + var VersionNumber = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); + sql = string.Format(sql, mcid, state, remark.Replace("'", "''"), IP, MAC, timestr, alarmid, alarmmsg, cntstr, VersionNumber); + System.IO.File.WriteAllText(file, sql, System.Text.Encoding.Default); + + ////만들어진지 3분이 지난 파일은 삭제한다. + //var di = new System.IO.DirectoryInfo(path); + //var fi = di.GetFiles("*.sql", System.IO.SearchOption.TopDirectoryOnly).Where(t => t.LastWriteTime < DateTime.Now.AddMinutes(-3)).FirstOrDefault(); + //if (fi != null) fi.Delete(); + if (state == 4) UpdateFileToDB(); + return string.Empty; + } + catch (Exception ex) + { + return ex.Message; + } + } + + + + static void UpdateFileToDB() + { + if (mre.WaitOne(1000) == false) return; + mre.Reset(); + var cs = "Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!"; + var path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Status"); + var di = new System.IO.DirectoryInfo(path); + if (di.Exists == false) return; + var file = di.GetFiles("*.sql", System.IO.SearchOption.TopDirectoryOnly) + .Where(t => t.LastWriteTime < DateTime.Now.AddSeconds(-3)) + .OrderByDescending(t => t.LastWriteTime).FirstOrDefault(); + + if (file == null) + { + mre.Set(); + return; + } + + //파일을 찾아야한다 + // PUB.log.Add($">> {file.FullName}"); + + + + try + { + var sql = System.IO.File.ReadAllText(file.FullName, System.Text.Encoding.Default); + if (string.IsNullOrEmpty(sql)) + { + //비어잇다면 + var errpath = System.IO.Path.Combine(di.FullName, "Error"); + var errfile = System.IO.Path.Combine(errpath, file.Name); + if (System.IO.Directory.Exists(errpath) == false) System.IO.Directory.CreateDirectory(errpath); + System.IO.File.Move(file.FullName, errfile);// file.MoveTo(errfile); + // ecnt += 1; + } + else + { + // var csstr = PUB.setting.ConnectionString; + // if (string.IsNullOrEmpty(csstr)) csstr = "Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!"; + var cn = new System.Data.SqlClient.SqlConnection(cs); + var cmd = new System.Data.SqlClient.SqlCommand(sql, cn); + cn.Open(); + var cnt = cmd.ExecuteNonQuery(); + //if (cnt == 0) PUB.log.Add($"Result Empty : {sql}"); + cn.Close(); + cnt += 1; + + var errpath = System.IO.Path.Combine(di.FullName, "Complete"); + var errfile = System.IO.Path.Combine(errpath, file.Name); + if (System.IO.Directory.Exists(errpath) == false) System.IO.Directory.CreateDirectory(errpath); + //file.MoveTo(errfile); + System.IO.File.Move(file.FullName, errfile); + } + + } + catch (Exception ex) + { + if(ex.Message.Contains("deadlocked") == false) + { + var errpath = System.IO.Path.Combine(di.FullName, "Error"); + var errfile = System.IO.Path.Combine(errpath, file.Name); + if (System.IO.Directory.Exists(errpath) == false) System.IO.Directory.CreateDirectory(errpath); + try + { + //file.MoveTo(errfile); + System.IO.File.Move(file.FullName, errfile); + + //오류내용도 저장한다.. + var errfilename = errfile + "_error.txt"; + System.IO.File.WriteAllText(errfilename, ex.Message, System.Text.Encoding.Default); + } + catch (Exception ex2) + { + + } + } + else + { + Console.WriteLine("dead lock 오류는 무시한다"); + } + + //ecnt += 1; + } + + //try + //{ + // //생성된지 10일이 넘은 자료는 삭제한다. + // //시간소비를 피해서 1개의 파일만 작업한다 + // //var sqlfiles = di.GetFiles("*.sql", System.IO.SearchOption.AllDirectories); + // //총3번의 데이터를 처리한다 + // //var files = sqlfiles.Where(t => t.LastWriteTime < DateTime.Now.AddDays(-10)).Select(t => t.FullName); + // //int i = 0; + // //var dellist = files.TakeWhile(t => i++ < 3); + // //foreach (var delfile in dellist) + // //System.IO.File.Delete(delfile); + //} + //catch + //{ + + //} + mre.Set(); + } +} + + +/* +================================================= +변경내역 +================================================= +230619 chi UpdateFileToDB 에서 폴더가 없다면 return 하도록 함 +230615 chi UpdateFiletoDB의 ManualResetEvent적용 + Version 항목 추가 +230612 chi 프로그램 시작/종료 alarmid항목 추가 + 완료된 파일 10일간 보존하도록 함 +230522 chi extrun 모드 추가(agv용 - SQL파일을 외부 프로그램에서 처리하도록 함) +230617 chi 파일쓰기함수를 Task 로 처리 + 3분지난데이터 삭제기능 제거 +230516 chi initial commit +*/ diff --git a/Handler/Project/Class/EnumData.cs b/Handler/Project/Class/EnumData.cs new file mode 100644 index 0000000..a5129d4 --- /dev/null +++ b/Handler/Project/Class/EnumData.cs @@ -0,0 +1,692 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.ComponentModel; + +namespace Project +{ + + public enum StepResult + { + Wait = 0, + Complete, + Error, + } + + public enum eWorkPort + { + Left = 0, + Right + } + + public enum eNormalResult + { + True = 0, + False, + Error, + } + + + + + public enum eSMStep : byte + { + NOTSET = 0, + INIT = 1, + IDLE = 10, + + RUN = 50, + RUN_ROOT_SEQUENCE_L, + RUN_ROOT_SEQUENCE_R, + RUN_KEYENCE_READ_L, + RUN_KEYENCE_READ_R, + RUN_PICKER_ON_L, + RUN_PICKER_ON_R, + RUN_PICKER_OFF_L, + RUN_PICKER_OFF_R, + RUN_PRINTER_F, + RUN_PRINTER_R, + RUN_PRINTER_ON_F, + RUN_PRINTER_ON_R, + RUN_PRINTER_OFF_F, + RUN_PRINTER_OFF_R, + RUN_QRVALID_F, + RUN_QRVALID_R, + + RUN_COM_PT0, + RUN_COM_PT1, + RUN_COM_PT2, + + RUN_PICK_RETRY, + + //이후에 사용자 런 코드용 스텝을 추가한다. + EMERGENCY = 200, + HOME_FULL = 201, + HOME_DELAY, + HOME_CONFIRM, + HOME_QUICK, + + CLOSING = 250, + CLOSEWAIT = 251, + CLOSED = 252, + + //사용자영역 + FINISH = 100, + PAUSE, + WAITSTART, + ERROR, + SAFTY, + CLEAR, + } + + + public enum eWaitMessage + { + PX = 0, + PZ, + LMOVE, + LUPDN, + RMOVE, + RUPDN, + LPRINT, + RPRINT, + VIS0, + VIS1, + VIS2, + } + //public enum eJobResult + //{ + // None = 0, + // Error, + // ErrorOut, + // MaxCount, + // NotExistSID, + // DisableUnloader, + // MatchFail, + // NoBarcode + //} + public enum eCartSize + { + None = 0, + Inch7 = 7, + Inch13 = 13 + } + + public enum ePrintPutPos + { + None = 0, + Top, + Middle, + Bottom, + } + + public enum ePrintVac + { + inhalation = 0, + exhaust, + off, + } + + + + + + public enum eJobType : byte + { + Sorter = 0, + Dryrun, + } + + public enum eHeaderHandler + { + Ping = 0, + RequestData, + RequstSeqNo, + RequstInputReel, + JobEnd, + JobDelete, + } + public struct sVisionDMResult + { + public Boolean iSystemErr { get; set; } + public Boolean isError { get; set; } + public string DM { get; set; } + public System.Drawing.Rectangle ROS { get; set; } + + public System.Drawing.PointF DMCenter { get; set; } + public List DMCorner { get; set; } + public string DMMessage { get; set; } + } + public struct sObjectDetectResult + { + public string Message { get; set; } + public List Rect { get; set; } + public List Areas { get; set; } + public Boolean OK + { + get + { + if (Areas == null || Areas.Count < 1) return false; + else return true; + } + } + } + + + + public enum eGridValue + { + /// + /// 아직 처리 전(기본 초기화된 상태) + /// + NotSet = 0, + + /// + /// 원점검사에서 오류 발생 + /// + OrientError, + + /// + /// 아이템검출에서 실패됨 + /// + NoItem, + + /// + /// 아이템검출성공, 데이터매트릭스 검출 실패 + /// + NewItem, + + /// + /// 데이터매트릭스 읽기 실패 + /// + DMReadError, + + /// + /// 데이터매트릭스 관리 횟수가 기준횟수(10) 미만 (아직 정상) + /// + DMNotmalCount, + + /// + /// 데이터매트릭스 관리 횟수가 기준횟수(10)를 초과한 경우 + /// + DMOverCount, + + + + } + + public enum eRoiSeq + { + Area = 0, + DataMatrix, + Orient, + DetectUnit, + DetectDM + } + public enum eWaitType : byte + { + TryLock = 0, + TryUnLock, + AirBlowOn, + AirBlowOff, + AirBlowDustOn, + AirBlowDustOff, + PrintPickLOff, + PrintPickLOn, + PrintPickROff, + PrintPickROn, + PickOff, + PickOn, + AirBlowCoverDn, + AirBlowCoverUp, + UnloaderUp, + UnloaderDn, + LiftUp, + LiftDn, + } + + public enum eSensorState : byte + { + Off = 0, + On = 1, + InComplete = 2, + } + public enum eIOCheckResult + { + Wait = 0, + Complete, + Timeout + } + + + + public enum ePort + { + Left = 0, + Right, + } + + + enum eResultStringType + { + Nomal = 0, + Attention, + Error, + } + public enum eMotDir + { + Stop = 0, + CW = 1, + CCW = 2 + } + + /// + /// RUN중일 때 사용되는 세부 시퀀스 + /// + public enum eRunStep : byte + { + NOTSET = 0, + + /// + /// 프로그램 체크 + /// + STARTCHKSW, + /// + /// 하드웨어 체크 + /// + STARTCHKHW, + + /// + /// 기계장치를 작업 시작 전 상태로 이동합니다 + /// + INITIALHW, + + /// + /// 안전지대(비활성화된경우 발생) + /// + SAFTYZONE_GO, + SAFTYZONE_RDY, + + BEGINLOAD, + /// + /// 트레이를 로딩하기 위한 로더 이동 및 트레이 추출 + /// + PORTLOAD, + + + /// + /// 비젼촬영을위한 위치로 이동 + /// + BEGINPICK, + ENDPICK, + + OVERLOAD, + SAVEDATA, + + /// + /// 모션 원위치 + /// + BARCODE, + + /// + /// AIR/BLOW 위치 이동 및 작업 + /// + AIRBLOW, + REELOUT, + TRAYOUT, + + /// + /// 언로드위치로 셔틀을 이동 + /// + BEGINUNLOADER, + /// + /// 트레이 언로드 작업 + /// + TRAYUNLOAD, + + /// + /// 언로딩하고 다시 로딩존으로 이동하는 시퀀스 + /// + MOVE_TO_LOAD, + + } + + + public enum ePLCIPin : byte + { + X00, X01, X02, X03, X04, X05, X06, X07, X08, X09, X0A, + X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X1A + } + public enum ePLCOPin : byte + { + Y00, Y01, Y02, Y03, Y04, Y05, Y06, Y07, Y08, Y09, Y0A, + Y10, Y11, Y12, Y13, Y14, Y15, Y16, Y17, Y18, Y19, Y1A + } + public enum ePLCITitle : byte + { + Run, Cart_Status_01, Cart_Status_02, Cart_Status_03, Cart_Status_04, + Machine_Confirm = 19 + } + public enum ePLCOTitle : byte + { + Cart_No_Setting = 0, + Handler_Confirm = 19, + } + + public enum eResult : byte + { + NOERROR, + EMERGENCY, + SAFTY, + DEVELOP, + SETUP, + HARDWARE, + SENSOR, + MOTION, + OPERATION, + COMMUNICATION, + TIMEOUT, + UNLOADER, + } + + + public enum eECode : byte + { + + NOTSET = 0, + EMERGENCY = 1, + NOMODELV = 2,//작업모델 + NOMODELM = 3,//모션모델 + DOORSAFTY = 6, + AREASAFTY = 7, + VIS_LICENSE = 8, + HOME_TIMEOUT = 9, + AIRNOOUT = 10, + NOFUNCTION = 11, + AIRNOTDETECT = 12, + + DOOFF = 27,//출력 off + DOON = 28,//출력 on + DIOFF = 29,//입력off + DION = 30,//입력 on + + MESSAGE_INFO = 32, + MESSAGE_ERROR = 33, + + VISION_NOTREADY = 34, + VISION_NOCONN = 35, + VISION_TRIGERROR = 36, + VISION_COMMERROR = 37, + VISION_NORECV = 38, + + AZJINIT = 39, //DIO 혹은 모션카드 초기화 X + MOT_HSET = 41, + MOT_SVOFF = 42, + MOT_HSEARCH = 43, + + MOT_CMD = 71, + USER_STOP = 72, + USER_STEP = 73, + POSITION_ERROR = 86, + MOTIONMODEL_MISSMATCH = 96, + + + //여기서부터는 전용코드로한다(소켓은 조금 섞여 있음) + VISCONF = 100, + NEED_AIROFF_L, + NEED_AIROFF_R, + PORTOVERLOAD, + NOPRINTLDATA, + NOPRINTRDATA, + PRINTL, + PRINTR, + CAM_LEFT, + CAM_RIGHT, + INCOMPLETE_LOADERDATA, + NOPUTPOSITION, + NOREELSIZE, + PRINTER, + QRDATAMISSMATCHL, + QRDATAMISSMATCHR, + MOTX_SAFETY, + + NO_PAPER_DETECT_L, + NO_PAPER_DETECT_R, + + CART_SIZE_ERROR_L, + CART_SIZE_ERROR_R, + + PRE_USE_REELID_L, + PRE_USE_REELID_R, + + NEED_JOBCANCEL, + + + + + LCONVER_REEL_DECTECT_ALL =150, + RCONVER_REEL_DECTECT_ALL, + LCONVER_REEL_DECTECT_IN, + RCONVER_REEL_DECTECT_IN, + LCONVER_MOVING, + RCONVER_MOVING, + NOREADY_KEYENCE, + + PRINTER_LPICKER_NOBW, + PRINTER_RPICKER_NOBW, + NOBYPASSSID, + + CONFIG_KEYENCE, + + + PRINTER_LPRINTER_NOUP, + PRINTER_RPRINTER_NOUP, + NOECSDATA, + PICKER_LCYL_NODOWN, + PICKER_RCYL_NODOWN, + PICKER_LCYL_NOUP, + PICKER_RCYL_NOUP, + + NOSIDINFOFROMDB, + INBOUNDWEBAPIERROR, + SIDINFORDUP, + NOECSDATAACTIVE, + } + + public enum eNextStep : byte + { + NOTHING = 0, + PAUSE, + PAUSENOMESAGE, + ERROR + } + + public enum eILock + { + EMG = 0, + PAUSE, + HOMESET, + DOOR, + SAFTYAREA, + DISABLE, + + XMOVE, + YMOVE, + ZMOVE, + + X_POS, + Y_POS, + Z_POS, + + PY_POS, + PZ_POS, + CYL_FORWARD, + MPrint, + } + + + //public enum eILockPKX + //{ + // EMG = 0, + // PAUSE, + // HOMESET, + // DOOR, + // Disable, + // ZL_POS, + // ZR_POS, + // ZMOVE, + // PKZPOS, + //} + + //public enum eILockPKZ + //{ + // EMG = 0, + // PAUSE, + // HOMESET, + // DOOR, + // Disable, + // Y_POS, + // YMOVE, + // PORTRUN0, + // PORTRUN1, + // PORTRUN2 + //} + + //public enum eILockPKT + //{ + // EMG = 0, + // PAUSE, + // HOMESET, + // DOOR, + // Disable, + // Y_POS, + // Y_MOVE, + // PortRun + //} + + + ///// + ///// PRINT MOVE AXIS (L+R) + ///// + //public enum eILockPRM + //{ + // Emergency = 0, + // Pause, + // HomeSet, + // Safty, + // Disable, + // ZMOVE, + // FORWARD, + // ITEMON, + // PKXPOS, + // PRNZPOS, + //} + + //public enum eILockPRZ + //{ + // EMG = 0, + // PAUSE, + // HOMESET, + // DOOR, + // Disable, + // YMOVE, + // ITEMON, + // PRNYPOS, + //} + + public enum eILockPRL + { + EMG = 0, + PAUSE, + HOMESET, + DOOR, + SAFTYAREA, + DISABLE, + + PRNYPOS, + PRNZPOS, + } + public enum eILockPRR + { + EMG = 0, + PAUSE, + HOMESET, + DOOR, + SAFTYAREA, + DISABLE, + + + PRNYPOS, + PRNZPOS, + } + public enum eILockVS0 + { + EMG = 0, + PAUSE, + HOMESET, + DOOR, + SAFTYAREA, + DISABLE, + + PORTRDY, + PKXPOS, //피커의 위치 + PRNYPOS, //프린터Y축 위치 + } + public enum eILockVS1 + { + EMG = 0, + PAUSE, + HOMESET, + DOOR, + SAFTYAREA, + DISABLE, + + PORTRDY, + PKXPOS, + } + public enum eILockVS2 + { + EMG = 0, + PAUSE, + HOMESET, + DOOR, + SAFTYAREA, + DISABLE, + + PORTRDY, + PKXPOS, //피커의 위치 + PRNYPOS, //프린터Y축 위치 + } + public enum eILockCV + { + EMG = 0, + PAUSE, + HOMESET, + DOOR, + SAFTYAREA, + + /// + /// 포트를 사용하지 않는경우 + /// + DISABLE, + + /// + /// 카트모드 + /// + CARTMODE, + + /// + /// 업체컨이어의 ready 신호 + /// + EXTBUSY, + + /// + /// 나의 작업 신호 + /// + BUSY, + + VISION, + } +} diff --git a/Handler/Project/Class/Enum_Mot.cs b/Handler/Project/Class/Enum_Mot.cs new file mode 100644 index 0000000..400f4c8 --- /dev/null +++ b/Handler/Project/Class/Enum_Mot.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Project +{ + + /// + /// 모션 축 정보 + /// + public enum eAxis : byte + { + PX_PICK = 0, + PZ_PICK, + PL_MOVE, + PL_UPDN, + PR_MOVE, + PR_UPDN, + Z_THETA, + } + + + public enum eAxisName : byte + { + Picker_X = 0, + Picker_Z , + PrinterL_Move, + PrinterL_UpDn, + PrinterR_Move, + PrinterR_UpDn, + Spare_00, + } +} diff --git a/Handler/Project/Class/Enum_MotPosition.cs b/Handler/Project/Class/Enum_MotPosition.cs new file mode 100644 index 0000000..0821d1a --- /dev/null +++ b/Handler/Project/Class/Enum_MotPosition.cs @@ -0,0 +1,65 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.ComponentModel; + +namespace Project +{ + + public enum ePXLoc : byte + { + READYL = 0, + READYR, + PICKON, + PICKOFFL, + PICKOFFR, + } + + public enum ePZLoc : byte + { + READY = 0, + PICKON, + PICKOFFL, + PICKOFFR, + } + + public enum ePTLoc : byte + { + READY = 0, + } + + public enum eLMLoc : byte + { + READY = 0, + PRINTH07, + PRINTL07, + PRINTM07, + PRINTH13, + PRINTL13, + PRINTM13, + } + public enum eLZLoc : byte + { + READY = 0, + PICKON, + PICKOFF, + } + public enum eRMLoc : byte + { + READY = 0, + PRINTH07, + PRINTL07, + PRINTM07, + PRINTH13, + PRINTL13, + PRINTM13, + } + public enum eRZLoc : byte + { + READY = 0, + PICKON, + PICKOFF, + } +} diff --git a/Handler/Project/Class/FTP/EventArgs.cs b/Handler/Project/Class/FTP/EventArgs.cs new file mode 100644 index 0000000..8886c86 --- /dev/null +++ b/Handler/Project/Class/FTP/EventArgs.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace AR.FTPClient +{ + public class MessageEventArgs : EventArgs + { + protected Boolean _isError = false; + public Boolean IsError { get { return _isError; } } + protected string _message = string.Empty; + public string Message { get { return _message; } } + public MessageEventArgs(Boolean isError, string Message) + { + _isError = isError; + _message = Message; + } + } + public class ListProgressEventArgs : EventArgs + { + //public long Max { get; set; } + //public long Value { get; set; } + public long TotalRecv { get; set; } + public ListProgressEventArgs(long TotalRecv_) + { + this.TotalRecv = TotalRecv_; + } + } + +} diff --git a/Handler/Project/Class/FTP/FTPClient.cs b/Handler/Project/Class/FTP/FTPClient.cs new file mode 100644 index 0000000..4536b00 --- /dev/null +++ b/Handler/Project/Class/FTP/FTPClient.cs @@ -0,0 +1,574 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Net; +using System.Text; + + +namespace AR.FTPClient +{ + public partial class FTPClient : IFTPClient + { + public string errorMessage { get; set; } + + private int bufferSize = 2048; + private int timeout = 20000; + + #region "Contstruct" + + public FTPClient() : this("127.0.0.1", "Anonymous", "") { } + + public FTPClient(string Host, string UserID, string UserPass) : + this(Host, UserID, UserPass, 21) + { } + + public FTPClient(string Host, string UserID, string UserPass, bool passive) : + this(Host, UserID, UserPass, 21, passive) + { } + + public FTPClient(string Host, string UserID, string UserPass, int port) : + this(Host, UserID, UserPass, port, false) + { } + + public FTPClient(string host, string userid, string userpass, int port, bool passive) + { + Host = host; + UserID = userid; + UserPassword = userpass; + Port = port; + PassiveMode = passive; + this.TextEncoding = System.Text.Encoding.UTF8; + } + #endregion + + public event EventHandler Message; + public event EventHandler ListPrgress; + + #region "Properties" + + /// + /// 접속하려는 FTP서버의 IP혹은 도메인 주소를 입력하세요 + /// 기본값 : 127.0.0.1 + /// + public string Host { get; set; } + /// + /// FTP의 사용자 ID + /// 기본값 : Anonymous + /// + public string UserID { get; set; } + /// + /// FTP 사용자 ID의 암호 + /// 기본값 : 없음 + /// + public string UserPassword { get; set; } + /// + /// FTP 접속 포트 + /// 기본값 : 21 + /// + public int Port { get; set; } + /// + /// FTP 접속 방식 (능동형/수동형) + /// + public bool PassiveMode { get; set; } + + /// + /// 문자수신시 사용할 인코딩 방식 + /// + public System.Text.Encoding TextEncoding { get; set; } + + #endregion + public void Dispose() + { + + } + /// + /// 파일을 다운로드 합니다. + /// + /// 원격위치의 전체 경로 + /// 로컬위치의 전체 경로 + public Boolean Download(string remoteFile, string localFile, bool overwrite = false) + { + FtpWebRequest ftpRequest = null; + FtpWebResponse ftpResponse = null; + Stream ftpStream = null; + + //overwrite funcion - 190622 - chi + errorMessage = string.Empty; + if (overwrite == false && System.IO.File.Exists(localFile)) + { + errorMessage = "Target file alreay exists"; + return false; + } + else if (overwrite == true && System.IO.File.Exists(localFile)) + { + try + { + System.IO.File.Delete(localFile); + } + catch (Exception ex) + { + errorMessage = ex.Message; + return false; + } + } + + + + bool retval = true; + try + { + long Receive = 0; + var url = CombineUrl(remoteFile); + + ftpRequest = (FtpWebRequest)FtpWebRequest.Create(url); + ftpRequest.Credentials = new NetworkCredential(this.UserID, this.UserPassword); + ftpRequest.UseBinary = true; + ftpRequest.UsePassive = this.PassiveMode; + ftpRequest.KeepAlive = true; + ftpRequest.ReadWriteTimeout = this.timeout; + ftpRequest.Method = WebRequestMethods.Ftp.DownloadFile; + ftpResponse = (FtpWebResponse)ftpRequest.GetResponse(); + ftpStream = ftpResponse.GetResponseStream(); + FileStream localFileStream = new FileStream(localFile, FileMode.Create); + byte[] byteBuffer = new byte[bufferSize]; + int bytesRead = ftpStream.Read(byteBuffer, 0, bufferSize); + Receive += bytesRead; + if (ListPrgress != null) + ListPrgress(this, new ListProgressEventArgs(Receive)); + try + { + while (bytesRead > 0) + { + localFileStream.Write(byteBuffer, 0, bytesRead); + bytesRead = ftpStream.Read(byteBuffer, 0, bufferSize); + Receive += bytesRead; + if (ListPrgress != null) + ListPrgress(this, new ListProgressEventArgs(Receive)); + } + } + catch (Exception ex) { retval = false; Console.WriteLine(ex.ToString()); } + localFileStream.Close(); + ftpStream.Close(); + ftpResponse.Close(); + ftpRequest = null; + } + catch (Exception ex) { retval = false; this.errorMessage = ex.Message; Console.WriteLine(ex.ToString()); } + return retval; + } + + /// + /// 파일을 업로드 합니다. + /// + /// 원격위치의 전체 경로 + /// 로컬위치의 전체 경로 + /// + public Boolean Upload(string remoteFile, string localFile) + { + FtpWebRequest ftpRequest = null; + FtpWebResponse ftpResponse = null; + Stream ftpStream = null; + try + { + var url = CombineUrl(remoteFile); + ftpRequest = (FtpWebRequest)FtpWebRequest.Create(url); + ftpRequest.Credentials = new NetworkCredential(UserID, UserPassword); + ftpRequest.UseBinary = true; + ftpRequest.UsePassive = PassiveMode; + ftpRequest.KeepAlive = true; + ftpRequest.ReadWriteTimeout = this.timeout; + ftpRequest.Method = WebRequestMethods.Ftp.UploadFile; + ftpStream = ftpRequest.GetRequestStream(); + FileStream localFileStream = new FileStream(localFile, FileMode.Open); + byte[] byteBuffer = new byte[bufferSize]; + int bytesSent = localFileStream.Read(byteBuffer, 0, bufferSize); + Boolean bError = false; + try + { + System.Diagnostics.Stopwatch wat = new System.Diagnostics.Stopwatch(); + wat.Restart(); + while (bytesSent != 0) + { + ftpStream.Write(byteBuffer, 0, bytesSent); + bytesSent = localFileStream.Read(byteBuffer, 0, bufferSize); + } + + } + catch (Exception ex) + { + bError = true; + } + localFileStream.Close(); + ftpStream.Close(); + ftpRequest = null; + if (bError) return false; + else return true; + } + catch (Exception ex) + { + this.errorMessage = ex.Message; + return false; + } + } + + + /// + /// 원격파일을 삭제 합니다. + /// + /// + public Boolean Delete(string remotefile) + { + FtpWebRequest ftpRequest = null; + FtpWebResponse ftpResponse = null; + Stream ftpStream = null; + try + { + var url = CombineUrl(remotefile); + ftpRequest = (FtpWebRequest)WebRequest.Create(url); + ftpRequest.Credentials = new NetworkCredential(UserID, UserPassword); + ftpRequest.UseBinary = true; + ftpRequest.UsePassive = this.PassiveMode; + ftpRequest.KeepAlive = true; + ftpRequest.ReadWriteTimeout = this.timeout; + ftpRequest.Method = WebRequestMethods.Ftp.DeleteFile; + ftpResponse = (FtpWebResponse)ftpRequest.GetResponse(); + ftpResponse.Close(); + ftpRequest = null; + return true; + } + catch (Exception ex) { this.errorMessage = ex.Message; return false; } + } + + /// + /// 원격파일의 이름을 변경 합니다. + /// + /// + /// + public Boolean rename(string currentFileNameAndPath, string newFileName) + { + FtpWebRequest ftpRequest = null; + FtpWebResponse ftpResponse = null; + Stream ftpStream = null; + try + { + var url = CombineUrl(currentFileNameAndPath); + ftpRequest = (FtpWebRequest)WebRequest.Create(url); + ftpRequest.Credentials = new NetworkCredential(UserID, UserPassword); + ftpRequest.UsePassive = this.PassiveMode; + ftpRequest.ReadWriteTimeout = this.timeout; + ftpRequest.UseBinary = true; + ftpRequest.KeepAlive = true; + ftpRequest.Method = WebRequestMethods.Ftp.Rename; + ftpRequest.RenameTo = newFileName; + ftpResponse = (FtpWebResponse)ftpRequest.GetResponse(); + ftpResponse.Close(); + ftpRequest = null; + return true; + } + catch (Exception ex) { this.errorMessage = ex.Message; return false; } + } + + /// + /// 원격위치에 폴더를 생성 합니다. + /// 트리구조로 폴더를 생성하지 않습니다. 여러개의 폴더를 생성하려면 각각 호출 해야 합니다. + /// + /// + /// + public bool createDirectory(string newDirectory) + { + FtpWebRequest ftpRequest = null; + FtpWebResponse ftpResponse = null; + Stream ftpStream = null; + try + { + var url = CombineUrl(newDirectory, false); + ftpRequest = (FtpWebRequest)WebRequest.Create(url); + ftpRequest.Credentials = new NetworkCredential(UserID, UserPassword); + ftpRequest.UsePassive = this.PassiveMode; + ftpRequest.UseBinary = true; + ftpRequest.KeepAlive = true; + ftpRequest.ReadWriteTimeout = this.timeout; + ftpRequest.Method = WebRequestMethods.Ftp.MakeDirectory; + ftpResponse = (FtpWebResponse)ftpRequest.GetResponse(); + ftpResponse.Close(); + ftpRequest = null; + return true; + } + catch (Exception ex) { this.errorMessage = ex.Message; return false; } + } + + /// + /// 원격위치의 폴더를 삭제합니다. 폴더 삭제 전 대상 폴더는 비어있어야 합니다. + /// + /// + /// + public bool RemoveDirectory(string Directory) + { + FtpWebRequest ftpRequest = null; + FtpWebResponse ftpResponse = null; + Stream ftpStream = null; + try + { + var url = CombineUrl(Directory, false); + ftpRequest = (FtpWebRequest)WebRequest.Create(url); + ftpRequest.Credentials = new NetworkCredential(UserID, UserPassword); + ftpRequest.UsePassive = this.PassiveMode; + ftpRequest.UseBinary = true; + ftpRequest.KeepAlive = true; + ftpRequest.ReadWriteTimeout = this.timeout; + ftpRequest.Method = WebRequestMethods.Ftp.RemoveDirectory; + ftpResponse = (FtpWebResponse)ftpRequest.GetResponse(); + ftpResponse.Close(); + ftpRequest = null; + return true; + } + catch (Exception ex) { this.errorMessage = ex.Message; return false; } + } + + /// + /// 파일의 생성일자 반환 + /// + /// + /// + public string getFileCreatedDateTime(string fileName) + { + FtpWebRequest ftpRequest = null; + FtpWebResponse ftpResponse = null; + Stream ftpStream = null; + try + { + var url = CombineUrl(fileName); + ftpRequest = (FtpWebRequest)WebRequest.Create(url); + ftpRequest.Credentials = new NetworkCredential(UserID, UserPassword); + ftpRequest.UsePassive = this.PassiveMode; + ftpRequest.UseBinary = true; + ftpRequest.KeepAlive = true; + ftpRequest.ReadWriteTimeout = this.timeout; + ftpRequest.Method = WebRequestMethods.Ftp.GetDateTimestamp; + ftpResponse = (FtpWebResponse)ftpRequest.GetResponse(); + ftpStream = ftpResponse.GetResponseStream(); + StreamReader ftpReader = new StreamReader(ftpStream, this.TextEncoding); + string fileInfo = null; + try { fileInfo = ftpReader.ReadToEnd(); } + catch (Exception ex) { Console.WriteLine(ex.ToString()); } + ftpReader.Close(); + ftpStream.Close(); + ftpResponse.Close(); + ftpRequest = null; + return fileInfo; + } + catch (Exception ex) { this.errorMessage = ex.Message; Console.WriteLine(ex.ToString()); } + return ""; + } + + + /// + /// 파일의 크기를 반환 + /// + /// + /// + public string getFileSize(string fileName) + { + FtpWebRequest ftpRequest = null; + FtpWebResponse ftpResponse = null; + Stream ftpStream = null; + try + { + var url = CombineUrl(fileName); + ftpRequest = (FtpWebRequest)WebRequest.Create(url); + ftpRequest.Credentials = new NetworkCredential(UserID, UserPassword); + ftpRequest.UseBinary = true; + ftpRequest.UsePassive = this.PassiveMode; + ftpRequest.KeepAlive = true; + ftpRequest.ReadWriteTimeout = this.timeout; + ftpRequest.Method = WebRequestMethods.Ftp.GetFileSize; + ftpResponse = (FtpWebResponse)ftpRequest.GetResponse(); + ftpStream = ftpResponse.GetResponseStream(); + StreamReader ftpReader = new StreamReader(ftpStream, this.TextEncoding); + string fileInfo = null; + try { while (ftpReader.Peek() != -1) { fileInfo = ftpReader.ReadToEnd(); } } + catch (Exception ex) { Console.WriteLine(ex.ToString()); } + ftpReader.Close(); + ftpStream.Close(); + ftpResponse.Close(); + ftpRequest = null; + return fileInfo; + } + catch (Exception ex) { errorMessage = ex.Message; Console.WriteLine(ex.ToString()); } + return ""; + } + + + /// + /// 폴더와 파일의 이름만 반환 합니다. + /// + /// + /// + public string[] directoryListSimple(string directory) + { + FtpWebRequest ftpRequest = null; + FtpWebResponse ftpResponse = null; + Stream ftpStream = null; + errorMessage = string.Empty; + try + { + var url = CombineUrl(directory, false); + if (url.EndsWith("/") == false) url += "/"; + ftpRequest = (FtpWebRequest)WebRequest.Create(url); + ftpRequest.Credentials = new NetworkCredential(UserID, UserPassword); + ftpRequest.UseBinary = true; + ftpRequest.UsePassive = PassiveMode; + ftpRequest.KeepAlive = true; + ftpRequest.ReadWriteTimeout = this.timeout; + ftpRequest.ReadWriteTimeout = 30000; + ftpRequest.Timeout = 30000; + ftpRequest.Method = WebRequestMethods.Ftp.ListDirectory; + + ftpResponse = (FtpWebResponse)ftpRequest.GetResponse(); + ftpStream = ftpResponse.GetResponseStream(); + StreamReader ftpReader = new StreamReader(ftpStream, this.TextEncoding); + string directoryRaw = null; + try + { + while (ftpReader.Peek() != -1) + { + var dataLIne = ftpReader.ReadLine(); + if (dataLIne.Trim() != "") + { + if (directoryRaw != null && directoryRaw != "") directoryRaw += "|"; + directoryRaw += dataLIne; + } + } + } + catch (Exception ex) { errorMessage += "\n" + ex.Message; } + ftpReader.Close(); + ftpStream.Close(); + ftpResponse.Close(); + ftpRequest = null; + try { string[] directoryList = directoryRaw.Split("|".ToCharArray()); return directoryList; } + catch (Exception ex) { errorMessage += "\n" + ex.Message; } + } + catch (Exception ex) { errorMessage = ex.Message; Console.WriteLine(ex.ToString()); } + return new string[] { "" }; + } + + + /// + /// 폴더 및 파일의 정보를 상세하게 표시합니다. + /// + /// + /// + public FTPdirectory ListDirectoryDetail(string directory) + { + FtpWebRequest ftpRequest = null; + FtpWebResponse ftpResponse = null; + Stream ftpStream = null; + errorMessage = string.Empty; + try + { + var url = CombineUrl(directory, false); + + if (url.EndsWith("/") == false) url += "/"; + ftpRequest = (FtpWebRequest)WebRequest.Create(url); + ftpRequest.Credentials = new NetworkCredential(UserID, UserPassword); + ftpRequest.UsePassive = true; + ftpRequest.UseBinary = true; + ftpRequest.KeepAlive = false; + ftpRequest.ReadWriteTimeout = this.timeout; + ftpRequest.ReadWriteTimeout = 30000; + ftpRequest.Timeout = 30000; + ftpRequest.Method = WebRequestMethods.Ftp.ListDirectoryDetails; + ftpResponse = (FtpWebResponse)ftpRequest.GetResponse(); + ftpStream = ftpResponse.GetResponseStream(); + + StreamReader ftpReader = new StreamReader(ftpStream, this.TextEncoding); + string directoryRaw = null; + + try { while (ftpReader.Peek() != -1) { directoryRaw += ftpReader.ReadLine() + "\r"; } } + catch (Exception ex) { errorMessage += "\n" + ex.Message; } + ftpReader.Close(); + ftpStream.Close(); + ftpResponse.Close(); + ftpRequest = null; + directoryRaw = directoryRaw.Replace("\r\n", "\r").TrimEnd((char)0x0D); + return new FTPdirectory(directoryRaw, directory); + } + catch (Exception ex) { errorMessage += "\n" + ex.Message; } + return null; + } + + #region "utillity" + + /// + /// Url을 Host와 결합하여 생성 + /// + /// 경로명 + /// 파일인지 여부 + /// + string CombineUrl(string file, bool isfile = true) + { + file = file.Replace("\\", "/"); + string url = this.Host; + if (this.Host.ToLower().StartsWith("ftp://") == false) url = "ftp://" + url; + if (url.Substring(5).LastIndexOf(':') == -1) + url += ":" + this.Port.ToString(); + + if (this.Host.EndsWith("/")) url = this.Host.Substring(0, Host.Length - 1); + + if (file.StartsWith("/")) + url = url + System.Web.HttpUtility.UrlPathEncode(file); + else + url = url + "/" + System.Web.HttpUtility.UrlPathEncode(file); + + url = url.Replace("#", "%23"); + + if (isfile) + return url; + else + return url + "/"; + } + public string PathCombine(string path, string add) + { + var newpath = string.Empty; + if (path.EndsWith("/")) newpath = path + add; + else newpath = path + "/" + add; + if (!newpath.EndsWith("/")) newpath += '/'; + return newpath; + + } + public string PathFileCombine(string path, string add) + { + var newpath = string.Empty; + if (path.EndsWith("/")) newpath = path + add; + else newpath = path + "/" + add; + if (newpath.EndsWith("/")) newpath = newpath.Substring(0, newpath.Length - 1); + return newpath; + + } + public string getParent(string path) + { + if (path == "/") return path; + else if (path == "") return "/"; + else + { + //서브폴더를 찾아서 처리해준다. + if (path.IndexOf('/') == -1) return "/"; + else + { + if (path.EndsWith("/")) path = path.Substring(0, path.Length - 1); + var slashindex = path.LastIndexOf('/'); + var parent = path.Substring(0, slashindex); + if (!parent.EndsWith("/")) parent += '/'; + return parent; + } + } + } + + public void RaiseMessage(Boolean isError, string message) + { + if (isError) errorMessage = message; //170920 + if (Message != null) Message(this, new MessageEventArgs(isError, message)); + } + #endregion + } +} diff --git a/Handler/Project/Class/FTP/FTPdirectory.cs b/Handler/Project/Class/FTP/FTPdirectory.cs new file mode 100644 index 0000000..f506653 --- /dev/null +++ b/Handler/Project/Class/FTP/FTPdirectory.cs @@ -0,0 +1,95 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace AR.FTPClient +{ + + /// + /// ''' Stores a list of files and directories from an FTP result + /// ''' + /// ''' + public class FTPdirectory : List + { + public FTPdirectory() + { + } + + /// + /// ''' Constructor: create list from a (detailed) directory string + /// ''' + /// ''' directory listing string + /// ''' + /// ''' + public FTPdirectory(string dir, string path) + { + var lines = dir.Replace("\n","").Split('\r'); + foreach (var line in lines) + { + if (line != "") + this.Add(new FTPfileInfo(line, path)); + } + } + + + /// + /// ''' Filter out only files from directory listing + /// ''' + /// ''' optional file extension filter + /// ''' FTPdirectory listing + public FTPdirectory GetFiles(string ext = "") + { + return this.GetFileOrDir(FTPfileInfo.DirectoryEntryTypes.File, ext); + } + + /// + /// ''' Returns a list of only subdirectories + /// ''' + /// ''' FTPDirectory list + /// ''' + public FTPdirectory GetDirectories() + { + return this.GetFileOrDir(FTPfileInfo.DirectoryEntryTypes.Directory); + } + + // internal: share use function for GetDirectories/Files + private FTPdirectory GetFileOrDir(FTPfileInfo.DirectoryEntryTypes type, string ext = "") + { + FTPdirectory result = new FTPdirectory(); + foreach (FTPfileInfo fi in this) + { + if (fi.FileType == type) + { + if (ext == "") + result.Add(fi); + else if (ext == fi.Extension) + result.Add(fi); + } + } + return result; + } + + public bool FileExists(string filename) + { + foreach (FTPfileInfo ftpfile in this) + { + if (ftpfile.Filename == filename) + return true; + } + return false; + } + + private const char slash = '/'; + + public static string GetParentDirectory(string dir) + { + string tmp = dir.TrimEnd(slash); + int i = tmp.LastIndexOf(slash); + if (i > 0) + return tmp.Substring(0, i - 1); + else + throw new ApplicationException("No parent for root"); + } + } +} diff --git a/Handler/Project/Class/FTP/FTPfileInfo.cs b/Handler/Project/Class/FTP/FTPfileInfo.cs new file mode 100644 index 0000000..a3d3c42 --- /dev/null +++ b/Handler/Project/Class/FTP/FTPfileInfo.cs @@ -0,0 +1,216 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; + +namespace AR.FTPClient +{ + /// + /// ''' Represents a file or directory entry from an FTP listing + /// ''' + /// ''' + /// ''' This class is used to parse the results from a detailed + /// ''' directory list from FTP. It supports most formats of + /// ''' + public class FTPfileInfo + { + // Stores extended info about FTP file + + public string FullName + { + get + { + var retval = Path + "/" + Filename; + return retval.Replace("//", "/"); + } + } + public string Filename + { + get + { + return _filename; + } + } + public string Path + { + get + { + return _path; + } + } + public DirectoryEntryTypes FileType + { + get + { + return _fileType; + } + } + public long Size + { + get + { + return _size; + } + } + public DateTime FileDateTime + { + get + { + return _fileDateTime; + } + } + public string Permission + { + get + { + return _permission; + } + } + public string Extension + { + get + { + int i = this.Filename.LastIndexOf("."); + if (i >= 0 & i < (this.Filename.Length - 1)) + return this.Filename.Substring(i + 1); + else + return ""; + } + } + public string NameOnly + { + get + { + int i = this.Filename.LastIndexOf("."); + if (i > 0) + return this.Filename.Substring(0, i); + else + return this.Filename; + } + } + private string _filename; + private string _path; + private DirectoryEntryTypes _fileType; + private long _size; + private DateTime _fileDateTime; + private string _permission; + + + /// + /// ''' Identifies entry as either File or Directory + /// ''' + public enum DirectoryEntryTypes + { + File, + Directory, + Link + } + + /// + /// ''' Constructor taking a directory listing line and path + /// ''' + /// ''' The line returned from the detailed directory list + /// ''' Path of the directory + /// ''' + public FTPfileInfo(string line, string path) + { + // parse line + + + + Match m = GetMatchingRegex(line); + if (m == null) + // failed + throw new ApplicationException("Unable to parse line: " + line); + else + { + _filename = m.Groups["name"].Value; + _path = path; + + + _permission = m.Groups["permission"].Value; + string _dir = m.Groups["dir"].Value; + if ((_dir != "" & (_dir == "d" || _dir == "D"))) + { + _fileType = DirectoryEntryTypes.Directory; + _size = 0; // CLng(m.Groups("size").Value) + } + else if ((_dir != "" & (_dir == "l" || _dir == "L"))) + { + _fileType = DirectoryEntryTypes.Link; + _size = 0; // CLng(m.Groups("size").Value) + } + else + { + _fileType = DirectoryEntryTypes.File; + _size = System.Convert.ToInt64(m.Groups["size"].Value); + } + + + try + { + var timestamp = m.Groups["timestamp"].Value; + if (timestamp.IndexOf(':') == -1) + { + _fileDateTime = DateTime.Parse(timestamp); + } + else + { + _fileDateTime = DateTime.Parse(DateTime.Now.Year + " " + timestamp); + } + + } + catch + { + // MsgBox("datetime err=" & Now.Year & Space(1) & "value=" & m.Groups("timestamp").Value & vbCrLf & ex.Message.ToString) + _fileDateTime = DateTime.Parse("1982-11-23"); + } + } + } + + public FTPfileInfo(string filename, string permission, string dir, int size, DateTime filetime, Boolean isdir, string path) + { + _filename = filename;// m.Groups["name"].Value; + _path = path; + _permission = permission; // m.Groups["permission"].Value; + string _dir = dir;// m.Groups["dir"].Value; + if (isdir == true) + { + _fileType = DirectoryEntryTypes.Directory; + _size = 0; // CLng(m.Groups("size").Value) + } + else + { + _fileType = DirectoryEntryTypes.File; + _size = size;// + } + + _fileDateTime = filetime; + } + + private Match GetMatchingRegex(string line) + { + Regex rx; + Match m; + for (int i = 0; i <= _ParseFormats.Length - 1; i++) + { + rx = new Regex(_ParseFormats[i]); + m = rx.Match(line); + if (m.Success) + return m; + } + return null; + } + + /// + /// ''' List of REGEX formats for different FTP server listing formats + /// ''' + /// ''' + /// ''' The first three are various UNIX/LINUX formats, fourth is for MS FTP + /// ''' in detailed mode and the last for MS FTP in 'DOS' mode. + /// ''' I wish VB.NET had support for Const arrays like C# but there you go + /// ''' + private static string[] _ParseFormats = new[] { @"(?[\-dl])(?([\-r][\-w][\-xs]){3})\s+\d+\s+\w+\s+\w+\s+(?\d+)\s+(?\w+\s+\d+\s+\d{4})\s+(?.+)", @"(?[\-dl])(?([\-r][\-w][\-xs]){3})\s+\d+\s+\d+\s+(?\d+)\s+(?\w+\s+\d+\s+\d{4})\s+(?.+)", @"(?[\-dl])(?([\-r][\-w][\-xs]){3})\s+\d+\s+\d+\s+(?\d+)\s+(?\w+\s+\d+\s+\d{1,2}:\d{2})\s+(?.+)", @"(?[\-dl])(?([\-r][\-w][\-xs]){3})\s+\d+\s+\w+\s+\w+\s+(?\d+)\s+(?\w+\s+\d+\s+\d{1,2}:\d{2})\s+(?.+)", @"(?[\-dl])(?([\-r][\-w][\-xs]){3})(\s+)(?(\d+))(\s+)(?(\w+\s\w+))(\s+)(?(\d+))\s+(?\w+\s+\d+\s+\d{2}:\d{2})\s+(?.+)", @"(?\d{2}\-\d{2}\-\d{2}\s+\d{2}:\d{2}[Aa|Pp][mM])\s+(?\<\w+\>){0,1}(?\d+){0,1}\s+(?.+)" }; + } +} diff --git a/Handler/Project/Class/FTP/IFTPClient.cs b/Handler/Project/Class/FTP/IFTPClient.cs new file mode 100644 index 0000000..11dcf18 --- /dev/null +++ b/Handler/Project/Class/FTP/IFTPClient.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace AR.FTPClient +{ + public interface IFTPClient + { + void Dispose(); + string errorMessage { get; set; } + //string Host { get; set; } + //string UserID { get; set; } + //string UserPassword { get; set; } + //int Port { get; set; } + System.Text.Encoding TextEncoding { get; set; } + Boolean Download(string remoteFile, string localFile,bool overwrite=false); + Boolean Upload(string remoteFile, string localFile); + Boolean Delete(string remotefile); + Boolean rename(string currentFileNameAndPath, string newFileName); + bool createDirectory(string newDirectory); + bool RemoveDirectory(string Directory); + string getFileCreatedDateTime(string fileName); + string getFileSize(string fileName); + string[] directoryListSimple(string directory); + FTPdirectory ListDirectoryDetail(string directory); + event EventHandler Message; + event EventHandler ListPrgress; + void RaiseMessage(Boolean isError, string message); + string PathCombine(string path, string add); + string PathFileCombine(string path, string add); + string getParent(string path); + } +} diff --git a/Handler/Project/Class/ItemData.cs b/Handler/Project/Class/ItemData.cs new file mode 100644 index 0000000..79908bc --- /dev/null +++ b/Handler/Project/Class/ItemData.cs @@ -0,0 +1,117 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Project.Class +{ + public class JobData + { + public enum ErrorCode + { + None = 0, + BarcodeRead, + Print, + Camera, + } + public ErrorCode error = ErrorCode.None; + public int No { get; set; } + public VisionData VisionData; + + public DateTime JobStart + { + get + { + if (this.VisionData == null) return new DateTime(1982, 11, 23); + else return VisionData.STime; + } + } + public DateTime JobEnd; + public TimeSpan JobRun + { + get + { + if (JobEnd.Year == 1982) return new TimeSpan(0); + else if (JobStart.Year == 1982) return new TimeSpan(0); + else return JobEnd - JobStart; + } + } + + /// + /// 프린터에 명령을 전송한 시간 + /// + public DateTime PrintTime { get; set; } + + /// + /// 라벨을 추가한 시간 + /// + public DateTime Attachtime { get; set; } + + //작업데이터의 GUID(자료식별) + public string guid { get; private set; } + + //언로더포트위치(L/R) + public string PortPos; + + + //동작관련 메세지 + public string Message; + + int idx; + + + + public JobData(int idx_) + { + this.idx = idx_; + Clear("INIT"); + } + + public bool PrintAttach { get; set; } + public bool PrintQRValid { get; set; } + public string PrintQRValidResult { get; set; } + public void Clear(string source) + { + + + No = 0; + //JobStart = new DateTime(1982, 11, 23); + JobEnd = new DateTime(1982, 11, 23); + Attachtime = new DateTime(1982, 11, 23); + PortPos = string.Empty; + guid = Guid.NewGuid().ToString(); + Message = string.Empty; + if (VisionData == null) + VisionData = new VisionData(source); + else + VisionData.Clear(source, false); + PrintAttach = false; + PrintQRValid = false; + PrintQRValidResult = string.Empty; + PrintTime = new DateTime(1982, 11, 23); + PUB.AddDebugLog($"item data {idx} clear by {source} guid={guid}"); + } + + public void CopyTo(ref JobData obj) + { + if (obj == null) return; + obj.No = this.No; + obj.error = this.error; + obj.JobEnd = this.JobEnd; + obj.guid = this.guid; + obj.PortPos = this.PortPos; + obj.Message = this.Message; + obj.PrintAttach = this.PrintAttach; + obj.PrintQRValid = this.PrintQRValid; + obj.PrintQRValidResult = this.PrintQRValidResult; + obj.Attachtime = this.Attachtime; + obj.PrintTime = this.PrintTime; + PUB.AddDebugLog("아이템 복사 전 rid:" + this.VisionData.RID); + this.VisionData.CopyTo(ref obj.VisionData); + PUB.AddDebugLog($"아이템 복사 후 대상 rid : {obj.VisionData.RID}, guid={obj.guid}"); + } + + } +} diff --git a/Handler/Project/Class/JoystickRaw.cs b/Handler/Project/Class/JoystickRaw.cs new file mode 100644 index 0000000..f619b25 --- /dev/null +++ b/Handler/Project/Class/JoystickRaw.cs @@ -0,0 +1,275 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using HidSharp; +using HidSharp.Reports; +using HidSharp.Reports.Encodings; + +namespace arDev.Joystick +{ + public class JoystickRaw : IDisposable + { + HidDevice _dev; + HidStream _hidStream; + + public Boolean IsOpen { get; private set; } + public event EventHandler Disconnected; + public event EventHandler Connected; + public event EventHandler Changed; + public delegate void MessageHandler(string msg); + public event MessageHandler Message; + public int InputLength { get; private set; } + public int OutputLength { get; private set; } + public int FeatureLength { get; private set; } + public int vid { get; set; } + public int pid { get; set; } + public Boolean[] Buttons = new bool[64]; //버튼정보를 기록한다 + Boolean bListUpdate = false; + + public JoystickRaw() + { + vid = -1; + pid = -1; + this.InputLength = 0; + this.OutputLength = 0; + this.FeatureLength = 0; + this.IsOpen = false; + this._dev = null; + this._hidStream = null; + DeviceList.Local.Changed += Local_Changed; + Job = new Task(JobMain, ct); + Job.Start(); + for (int i = 0; i < Buttons.Length; i++) + Buttons[i] = false; + + } + CancellationToken ct ; + public IEnumerable GetHidDevices() + { + return DeviceList.Local.GetHidDevices(); + } + public void Connect(int vid, int pid) + { + this.vid = vid; + this.pid = pid; + } + public void Connect(HidDevice device) + { + this.vid = device.VendorID; + this.pid = device.ProductID; + } + + Task Job = null; + private bool disposed = false; + DateTime LastConnTime = DateTime.Now; + void JobMain() + { + //개체가 소멸하기전까지 진행한다 + while (this.disposed == false) + { + if (IsOpen == false) + { + if (this.vid == -1 || this.pid == -1) + { + //아직설정되지 않았으니 대기를한다 + System.Threading.Thread.Sleep(3000); + } + else + { + //연결작업을 시작해야한다 + if (bListUpdate || (DateTime.Now - LastConnTime).TotalMilliseconds >= 3000) + { + LastConnTime = DateTime.Now; + + //연결작업 + var list = this.GetHidDevices(); + this._dev = list.Where(t => t.VendorID == this.vid && t.ProductID == this.pid).FirstOrDefault(); + if (_dev != null) + { + try + { + IsOpen = _dev.TryOpen(out _hidStream); + if (IsOpen) + { + this.InputLength = _dev.GetMaxInputReportLength(); + this.OutputLength = _dev.GetMaxOutputReportLength(); + this.FeatureLength = _dev.GetMaxFeatureReportLength(); + this._hidStream.ReadTimeout = Timeout.Infinite; + + Connected?.Invoke(this, null); + var rawReportDescriptor = _dev.GetRawReportDescriptor(); + var msg = ("Report Descriptor:"); + msg += string.Format(" {0} ({1} bytes)", string.Join(" ", rawReportDescriptor.Select(d => d.ToString("X2"))), rawReportDescriptor.Length); + Message?.Invoke(msg); + } + else + { + if (this._hidStream != null) this._hidStream.Dispose(); + } + } + catch { System.Threading.Thread.Sleep(1500); } + } + else System.Threading.Thread.Sleep(1500); + } + else System.Threading.Thread.Sleep(1500); + } + } + else + { + //데이터를 가지고 온다 + using (_hidStream) + { + try + { + reportDescriptor = _dev.GetReportDescriptor(); + deviceItem = reportDescriptor.DeviceItems[0]; + var inputReportBuffer = new byte[_dev.GetMaxInputReportLength()]; + var inputReceiver = reportDescriptor.CreateHidDeviceInputReceiver(); + var inputParser = deviceItem.CreateDeviceItemInputParser(); + + inputReceiver.Start(_hidStream); + + while (true) + { + if (!inputReceiver.IsRunning) { break; } // Disconnected? + + Report report; // + while (inputReceiver.TryRead(inputReportBuffer, 0, out report)) + { + if (inputParser.TryParseReport(inputReportBuffer, 0, report)) + { + WriteDeviceItemInputParserResult(inputParser); + } + } + System.Threading.Thread.Sleep(20); + } + + inputReceiver = null; + IsOpen = false; + } + catch (Exception ex) + { + + Message?.Invoke(ex.Message); + + } + finally + { + Disconnected?.Invoke(this, null); + IsOpen = false; + } + } + } + } + } + + void WriteDeviceItemInputParserResult(HidSharp.Reports.Input.DeviceItemInputParser parser) + { + while (parser.HasChanged) + { + int changedIndex = parser.GetNextChangedIndex(); + var previousDataValue = parser.GetPreviousValue(changedIndex); + var dataValue = parser.GetValue(changedIndex); + + var oVal = previousDataValue.GetPhysicalValue(); + var nVal = dataValue.GetPhysicalValue(); + + if (double.IsNaN(oVal)) oVal = 0.0; + if (double.IsNaN(nVal)) nVal = 0.0; + + var InputMethod = (Usage)dataValue.Usages.FirstOrDefault(); + if (InputMethod.ToString().StartsWith("Button")) + { + var butNo = int.Parse(InputMethod.ToString().Substring(6)); + this.Buttons[butNo - 1] = nVal > 0; //버튼값은 기록 210107 + } + + //이벤트발생 + InputChanged?.Invoke(this, new InputChangedEventHandler( + InputMethod, oVal, nVal)); + + //메세지도 발생함 + //var msg = (string.Format(" {0}: {1} -> {2}", + // (Usage)dataValue.Usages.FirstOrDefault(), + // previousDataValue.GetPhysicalValue(), + // dataValue.GetPhysicalValue())); + //Message?.Invoke(msg); + + } + } + + public event EventHandler InputChanged; + + public class InputChangedEventHandler : EventArgs + { + public Usage input { get; set; } + public double oldValue { get; set; } + public double newValue { get; set; } + public InputChangedEventHandler(Usage input_, double oValue_, double nValue_) + { + this.input = input_; + this.oldValue = oValue_; + this.newValue = nValue_; + } + } + + ReportDescriptor reportDescriptor; + DeviceItem deviceItem; + ~JoystickRaw() + { + + Dispose(false); + } + + public void Dispose() + { + Dispose(true); + // This object will be cleaned up by the Dispose method. + // Therefore, you should call GC.SupressFinalize to + // take this object off the finalization queue + // and prevent finalization code for this object + // from executing a second time. + GC.SuppressFinalize(this); + } + protected virtual void Dispose(bool disposing) + { + // Check to see if Dispose has already been called. + if (!this.disposed) + { + // If disposing equals true, dispose all managed + // and unmanaged resources. + + if (disposing) + { + // Dispose managed resources. + this._dev = null; + } + + + Job.Wait(); + Job.Dispose(); + + // Call the appropriate methods to clean up + // unmanaged resources here. + // If disposing is false, + // only the following code is executed. + //CloseHandle(handle); + //handle = IntPtr.Zero; + + // Note disposing has been done. + DeviceList.Local.Changed -= Local_Changed; + disposed = true; + } + } + + private void Local_Changed(object sender, DeviceListChangedEventArgs e) + { + Changed?.Invoke(sender, e); + bListUpdate = true; + } + + } +} diff --git a/Handler/Project/Class/KeyenceBarcodeData.cs b/Handler/Project/Class/KeyenceBarcodeData.cs new file mode 100644 index 0000000..ef97978 --- /dev/null +++ b/Handler/Project/Class/KeyenceBarcodeData.cs @@ -0,0 +1,105 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Drawing; + +namespace Project.Class +{ + public class KeyenceBarcodeData + { + public double Angle { get; set; } + public StdLabelPrint.CAmkorSTDBarcode AmkorData { get; set; } + public Point[] vertex { get; set; } + public string Data { get; set; } + public Point CenterPX { get; set; } + public bool Ignore { get; set; } + + /// + /// 1:QR, 11:Code 128(like 1D) + /// + public string barcodeSymbol { get; set; } + public string barcodeSource { get; set; } //230503 + public Boolean UserActive { get; set; } + public Boolean isSTDBarcode + { + get + { + if (AmkorData != null && barcodeSymbol == "1" && AmkorData.isValid) return true; + return false; + } + } + public Boolean isNewLen15 + { + get + { + if (AmkorData != null && barcodeSymbol == "1" && AmkorData.isValid && AmkorData.NewLen15Barcode) return true; + return false; + } + } + + /// + /// 라벨의 위치를 표시한다. 8방향이며 키패드 유사하게 설정한다 789/4-6/123 + /// + public byte LabelPosition { get; set; } + + /// + /// regex check ok + /// + public Boolean RegExConfirm { get; set; } + public Boolean RefExApply { get; set; } + + public KeyenceBarcodeData() + { + LabelPosition = 0; + Angle = 0.0; + Data = string.Empty; + CenterPX = Point.Empty; + AmkorData = null; + vertex = null; + barcodeSymbol = string.Empty; + UserActive = false; + RegExConfirm = false; + Ignore = false; + barcodeSource = string.Empty; + + } + + public override string ToString() + { + return string.Format("{0},Deg={1},Center={2}x{3}", Data, Angle, CenterPX.X, CenterPX.Y); + } + + /// + /// 해당 중심점이 겹치는지 확인합니다. + /// + /// + /// + public Boolean CheckIntersect(Point Center, string data) + { + if (data == null) return false; + if (data.Equals(this.Data) == false) return false; //자료가 다르면 다른 자료로 처리한다 + return getInside(Center, vertex); + } + + bool getInside(Point pt, Point[] ptArr) + { + int crosses = 0; + for (int i = 0; i < ptArr.Length; i++) + { + int j = (i + 1) % ptArr.Length; + if ((ptArr[i].Y > pt.Y) != (ptArr[j].Y > pt.Y)) + { + //atX는 점 B를 지나는 수평선과 선분 (p[i], p[j])의 교점 + double atX = (ptArr[j].X - ptArr[i].X) * (pt.Y - ptArr[i].Y) / (ptArr[j].Y - ptArr[i].Y) + ptArr[i].X; + //atX가 오른쪽 반직선과의 교점이 맞으면 교점의 개수를 증가시킨다. + if (pt.X < atX) + crosses++; + } + } + return crosses % 2 > 0; + } + + } +} diff --git a/Handler/Project/Class/ModelInfoM.cs b/Handler/Project/Class/ModelInfoM.cs new file mode 100644 index 0000000..12c376d --- /dev/null +++ b/Handler/Project/Class/ModelInfoM.cs @@ -0,0 +1,131 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Drawing; +using System.ComponentModel; +using System.Web.Services.Protocols; + +namespace Project +{ + + public class ModelInfoM + { + //스피드 값과, 위치값을 저장하면 된다. + public int idx { get; set; } + public string Title { get; set; } + + public Dictionary Position { get; set; } + + + public ModelInfoM() + { + idx = -1; + Title = string.Empty; + ClearDataPosition(); + } + void ClearDataPosition() + { + Position = new Dictionary(); + var motCount = Enum.GetNames(typeof(eAxis)).Length; + for (int i = 0; i < motCount; i++) + { + var datas = new PositionData[64]; + for (int j = 0; j < datas.Length; j++) + datas[j] = new PositionData(-1, string.Empty, 0.0); + + Position.Add(i, datas); + } + } + + public Boolean isSet + { + get + { + if (idx == -1) return false; + else return !Title.isEmpty(); + } + } + + public void ReadValue(DataSet1.MCModelRow dr) + { + idx = dr.idx; + Title = dr.Title; + ReadValuePosition(idx); + } + + public void ReadValue(int index) + { + var dr = PUB.mdm.dataSet.MCModel.Where(t => t.idx == index).FirstOrDefault(); + if (dr == null) + { + idx = -1; + Title = string.Empty; + ClearDataPosition(); + } + else + { + idx = dr.idx; + Title = dr.Title; + ReadValuePosition(idx); + } + } + public Boolean ReadValue(string title) + { + return ReadValue(title, PUB.mdm.dataSet.MCModel); + } + public Boolean ReadValue(string title, DataSet1.MCModelDataTable dt) + { + var dr = dt.Where(t => t.Title == title).FirstOrDefault(); + if (dr == null) + { + idx = -1; + this.Title= string.Empty; + ClearDataPosition(); + return false; + } + else + { + idx = dr.idx; + this.Title = dr.Title; + ReadValuePosition(idx); + return true; + } + } + public void ReadValuePosition(int modelidx) + { + ReadValuePosition(modelidx, PUB.mdm.dataSet.MCModel); + } + public void ReadValuePosition(int modelidx, DataSet1.MCModelDataTable dt) + { + ClearDataPosition(); + + //각 모터별로 데이터를 가져온다 + int cnt = 0; + foreach (var data in Position) + { + //해당 모터의 속도값을 가져온다 + var drows = dt.Where(t => t.pidx == modelidx && t.PosIndex >= 0 && t.MotIndex == data.Key); + foreach (DataSet1.MCModelRow dr in drows) + { + var item = data.Value[dr.PosIndex]; + item.index = dr.PosIndex; + item.title = dr.PosTitle; + item.value = dr.Position; + item.speed = dr.Speed; + item.acc = dr.SpeedAcc; + item.dcc = dr.SpeedDcc; + data.Value[dr.PosIndex] = item; + cnt += 1; + } + } + + PUB.log.Add(String.Format("Motion({0}) Data Load : {1}", modelidx, cnt)); + } + + } + + + + +} diff --git a/Handler/Project/Class/ModelInfoV.cs b/Handler/Project/Class/ModelInfoV.cs new file mode 100644 index 0000000..2d55930 --- /dev/null +++ b/Handler/Project/Class/ModelInfoV.cs @@ -0,0 +1,229 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Drawing; +using System.ComponentModel; + +namespace Project +{ + + public class ModelInfoV + { + [Browsable(false)] + public string SPN { get; set; } + //[Browsable(false)] + //public Boolean SplitSPN { get; set; } + [Browsable(false)] + public string Title { get; set; } + [Browsable(false)] + public string Code { get; set; } + [Browsable(false)] + public int idx { get; set; } + + + public string Motion { get; set; } + public Boolean BCD_1D { get; set; } + public Boolean BCD_QR { get; set; } + public Boolean BCD_DM { get; set; } + + public UInt16 vOption { get; set; } + public UInt16 vSIDInfo { get; set; } + public UInt16 vJobInfo { get; set; } + public UInt16 vSIDConv1 { get; set; } + + public string Def_Vname { get; set; } + public string Def_MFG { get; set; } + + public Boolean IgnoreOtherBarcode { get; set; } + public bool DisableCamera { get; set; } + public bool DisablePrinter { get; set; } + public bool CheckSIDExsit { get; set; } + //public string ByPassSID { get; set; } + + + + public ModelInfoV() + { + vOption = vSIDInfo = vJobInfo = vSIDConv1 = 0; + } + + public void ReadValue(DataSet1.OPModelRow dr) + { + this.Title = dr.Title; + this.Code = dr.Code; + this.idx = dr.idx; + this.Motion = dr.Motion; + this.BCD_1D = dr.BCD_1D; + this.BCD_QR = dr.BCD_QR; + this.BCD_DM = dr.BCD_DM; + this.vOption = dr.vOption; + this.vJobInfo = dr.vJobInfo; + this.vSIDInfo = dr.vSIDInfo; + this.vSIDConv1 = dr.vSIDConv; + this.Def_MFG = dr.Def_MFG; + this.Def_Vname = dr.Def_VName; + this.IgnoreOtherBarcode = dr.IgnoreOtherBarcode; + this.DisableCamera = dr.DisableCamera; + this.DisablePrinter = dr.DisablePrinter; + this.CheckSIDExsit = dr.CheckSIDExsit; + //this.ByPassSID = dr.ByPassSID; + } + public bool WriteValue() + { + var model = PUB.mdm.GetDataV(this.Title); + return WriteValue(ref model); + } + public bool WriteValue(ref DataSet1.OPModelRow dr) + { + try + { + dr.Title = this.Title; + dr.Code = this.Code; + dr.Motion = this.Motion; + dr.BCD_1D = this.BCD_1D; + dr.BCD_QR = this.BCD_QR; + dr.BCD_DM = this.BCD_DM; + dr.vOption = this.vOption; + dr.vSIDInfo = this.vSIDInfo; + dr.vJobInfo = this.vJobInfo; + dr.vSIDConv = this.vSIDConv1; + dr.Def_MFG = this.Def_MFG; + dr.Def_VName = this.Def_Vname; + dr.IgnoreOtherBarcode = this.IgnoreOtherBarcode; + dr.DisableCamera = this.DisableCamera; + dr.DisablePrinter = this.DisablePrinter; + dr.CheckSIDExsit = this.CheckSIDExsit; + + dr.EndEdit(); + PUB.mdm.SaveModelV(); + return true; + } + catch (Exception ex) + { + PUB.log.AddE("write model error" + ex.Message); + return false; + } + } + } + + [TypeConverterAttribute(typeof(ExpandableObjectConverter))] + public class RoiOffset + { + [DisplayName("Horizon"), Description("수직(Y축) 변화 값(+는 아래쪽,-는 위쪽)")] + public double Y { get; set; } + [DisplayName("Vertical"), Description("수평(X축) 변화 값(+는 오른쪽,-는 왼쪽)")] + public double X { get; set; } + [Browsable(false)] + public bool IsEmpty { get { if (Y == 0 && X == 0) return true; else return false; } } + + public RoiOffset(double start = 0.0, double end = 0.0) + { + this.Y = start; + this.X = end; + } + public override string ToString() + { + return string.Format("{0},{1}", Y, X); + } + public string toPointStr() + { + return string.Format("{0};{1}", Y, X); + } + } + + + [TypeConverterAttribute(typeof(ExpandableObjectConverter))] + public class Range + { + [DisplayName("시작값")] + public uint Start { get; set; } + [DisplayName("종료값")] + public uint End { get; set; } + [Browsable(false)] + public bool IsEmpty { get { if (Start == 0 && End == 0) return true; else return false; } } + + public Range(UInt16 start, UInt16 end) : this((uint)start, (uint)end) { } + public Range(uint start = 0, uint end = 0) + { + this.Start = start; + this.End = end; + } + public static implicit operator RangeF(Range p) + { + return new RangeF((float)p.Start, (float)p.End); + } + public override string ToString() + { + return string.Format("{0}~{1}", Start, End); + } + } + [TypeConverterAttribute(typeof(ExpandableObjectConverter))] + public class RangeF + { + [DisplayName("시작값")] + public float Start { get; set; } + [DisplayName("종료값")] + public float End { get; set; } + [Browsable(false)] + public bool IsEmpty { get { if (Start == 0f && End == 0f) return true; else return false; } } + public RangeF(float start = 0f, float end = 0f) + { + this.Start = start; + this.End = end; + } + public static implicit operator Range(RangeF p) + { + return new Range((uint)p.Start, (uint)p.End); + } + public override string ToString() + { + return string.Format("{0}~{1}", Start, End); + } + } + + [TypeConverterAttribute(typeof(ExpandableObjectConverter))] + public class CVisionProcess + { + + [Category("특수설정(개발자용)"), Description("미사용(DOT 인식시에 사용했음)")] + public UInt16 halfKernel { get; set; } + [Category("특수설정(개발자용)"), Description("미사용(DOT 인식시에 사용했음)")] + public UInt16 Constant { get; set; } + [Category("특수설정(개발자용)"), DisplayName("MP_Dilate"), Description("미사용(DOT 인식시에 사용했음)")] + public UInt16 dilate { get; set; } + [Category("특수설정(개발자용)"), DisplayName("MP_Erode"), Description("미사용(DOT 인식시에 사용했음)")] + public UInt16 erode { get; set; } + [Category("특수설정(개발자용)"), DisplayName("MP_Open"), Description("미사용(DOT 인식시에 사용했음)")] + public UInt16 open { get; set; } + [Category("특수설정(개발자용)"), DisplayName("MP_Open"), Description("미사용(DOT 인식시에 사용했음)")] + public UInt32 segment_threshold { get; set; } + [Category("특수설정(개발자용)"), DisplayName("MP_Open"), Description("미사용(DOT 인식시에 사용했음)")] + public Boolean isBlack { get; set; } + [Category("특수설정(개발자용)"), DisplayName("MP_Open"), Description("미사용(DOT 인식시에 사용했음)")] + public UInt32 judg_runcount { get; set; } + + + [Category("유닛 감지"), DisplayName("밝기 기준값"), Description("입력된 값 이상의 데이터를 취합니다. 이 값이 낮을 수록 검출값이 높아지게 됩니다. 이 기준값으로 검출된 값으로 판정을 합니다. 유닛은 밝은 데이터를 보고 판정 하므로 이 기준값 이상의 데이터가 검출이 됩니다")] + public byte detect_threhosld { get; set; } + [Category("유닛 감지"), DisplayName("판정 기준값"), Description("판정을 하는 기준 값입니다. 밝기기준값으로 인해 검출된 값이 5000이라면. 이 판정 기준에 입력된 값이 5000보다 크면 유닛이 존재하는 것으로 판정하며, 그 보다 낮을 때에는 유닛이 없는 'Empty' 유닛으로 감지 됩니다")] + public UInt16 detect_count { get; set; } + [Category("유닛 감지"), DisplayName("*예외영역 판정기준"), Description("빈 유닛(=Empty) 일때 셔틀 프레임의 빛 반사가 심할 경우 해당 반사값에 의해 유닛이 감지됩니다. 그러한 데이터를 제거하기위해 이 값이 사용되며, 유닛검출에 사용하는 흰색영역의 값외에 추가로 검은색 덩어리를 검사합니다. 설정한 값사이의 검은색 덩어리가 검출되면 'Empty' 유닛으로 감지 됩니다")] + public Point detect_blobrange { get; set; } + + [Category("2D 감지"), DisplayName("밝기 기준값"), Description("입력된 값 이하의 데이터를 취합니다. 이 값이 낮을 수록 검출값도 낮아지게 됩니다. 이 기준값으로 검출된 값으로 판정을 합니다. 2D는 어두운 데이터를 보고 판정 하므로 이 기준값 이하의 데이터가 검출이 됩니다")] + public byte detectDM_threhosld { get; set; } + [Category("2D 감지"), DisplayName("판정 기준값"), Description("판정을 하는 기준 값입니다. 밝기기준값으로 인해 검출된 값이 5000이라면. 이 판정 기준에 입력된 값이 5000보다 크면 ID가 존재하는 것으로 판정하며, 그 보다 낮을 때에는 ID가 없는 'New' 유닛으로 감지 됩니다")] + public UInt16 detectDM_count { get; set; } + + public CVisionProcess() + { + + } + public override string ToString() + { + return "비젼 설정 값"; + } + } + +} diff --git a/Handler/Project/Class/PositionData.cs b/Handler/Project/Class/PositionData.cs new file mode 100644 index 0000000..112ad8e --- /dev/null +++ b/Handler/Project/Class/PositionData.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Project +{ + public class PositionData + { + public int index { get; set; } + public string title { get; set; } + public double value { get; set; } + public double speed { get; set; } + public double acc { get; set; } + public double dcc { get; set; } + public PositionData() + { + index = -1; + title = string.Empty; + value = 0.0; + this.speed = 0.0; + this.acc = 100.0; + this.dcc = 0.0; + } + public PositionData(int idx_, string title_, double value_) + { + this.index = idx_; + this.title = title_; + this.value = value_; + } + } + +} diff --git a/Handler/Project/Class/Reel.cs b/Handler/Project/Class/Reel.cs new file mode 100644 index 0000000..fe2eb2f --- /dev/null +++ b/Handler/Project/Class/Reel.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Project.Class +{ + public class Reel + { + public string sid { get; set; } + public string lot { get; set; } + public string mfg { get; set; } + public int qty { get; set; } + public string id { get; set; } + //public string date { get; set; } + public string partnum { get; set; } + public string manu { get; set; } + + public Reel() + { + Clear(); + } + public void Clear() + { + sid = string.Empty; + lot = string.Empty; + mfg = string.Empty; + lot = string.Empty; + id = string.Empty; + //date = string.Empty; + partnum = string.Empty; + manu = string.Empty; + qty = 0; + } + public Reel(string _sid, string _lot, string _manu, int _qty, string _id, string _mfgdate, string _partnum) + { + int sidNum = 0; + if (int.TryParse(_sid, out sidNum) && sidNum.ToString().Length == 9) + sid = sidNum.ToString(); + else + throw new Exception("SID가 숫자가 아니거나 9자리 숫자가 아닙니다."); + + lot = _lot; + mfg = _mfgdate; + qty = _qty; + id = _id; + partnum = _partnum; + manu = _manu; + } + public Reel(string qrbarcodestr) + { + var spData = qrbarcodestr.Split(';'); + if (spData.Length < 6) + throw new Exception("Barcode Length가 적습니다."); + + sid = spData[0]; + lot = spData[1]; + manu = spData[2]; + + int _qty = 0; + + if (int.TryParse(spData[3], out _qty)) + qty = _qty; + else + throw new Exception("수량란에 숫자 정보가 아닙니다."); + + id = spData[4]; + mfg = spData[5]; + if (spData.Length > 6) partnum = spData[6]; + else partnum = string.Empty; + } + } +} diff --git a/Handler/Project/Class/RegexPattern.cs b/Handler/Project/Class/RegexPattern.cs new file mode 100644 index 0000000..4849d2b --- /dev/null +++ b/Handler/Project/Class/RegexPattern.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Project.Class +{ + + public class RegexPattern + { + public string Customer { get; set; } + public string Pattern { get; set; } + public string Description { get; set; } + public bool IsTrust { get; set; } + public bool IsAmkStd { get; set; } + public Boolean IsEnable { get; set; } + public RegexGroupMatch[] Groups { get; set; } + public string Symbol { get; set; } + public int Seq { get; set; } + public RegexPattern() + { + Seq = 0; + Groups = null; + Pattern = string.Empty; + Description = string.Empty; + Customer = string.Empty; + IsTrust = false; + IsAmkStd = false; + Symbol = string.Empty; + } + } + + + public class RegexGroupMatch + { + /// + /// 1~ + /// + public int GroupNo { get; set; } + + /// + /// RID,SID,VLOT,MFG,PART,QTY,CUST,CUSTCODE,VNAME, + /// + public string TargetPos { get; set; } + public RegexGroupMatch() + { + GroupNo = 0; + TargetPos = string.Empty; + } + } +} diff --git a/Handler/Project/Class/StatusMessage.cs b/Handler/Project/Class/StatusMessage.cs new file mode 100644 index 0000000..adb6835 --- /dev/null +++ b/Handler/Project/Class/StatusMessage.cs @@ -0,0 +1,184 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Project.Class +{ + public enum eStatusMesage : byte + { + Front = 0, + Rear, + TopJig, + Main, + } + public class StatusMessage + { + + Dictionary message; + public StatusMessage() + { + this.message = new Dictionary(); + } + public StatusMessageFormat get(eStatusMesage msg) + { + lock (this.message) + { + if (this.message.ContainsKey(msg) == false) + { + var nemsg = new StatusMessageFormat + { + Message = string.Empty + }; + this.message.Add(msg, nemsg); + return nemsg; + } + + else + return this.message[msg]; + } + } + + public void Clear() + { + + } + + public void set(eStatusMesage msg, StatusMessageFormat data) + { + lock (this.message) + { + if (this.message.ContainsKey(msg) == false) + this.message.Add(msg, data); + else + this.message[msg] = data; + } + + } + public void set(eStatusMesage msg, string data, int progval = 0, int progmax = 0) + { + if (data.StartsWith("[") && data.Contains("]")) + { + var buf = data.Split(']'); + var cate = buf[0].Substring(1); + var body = string.Join("]", buf, 1, buf.Length - 1); + set(msg, cate, body, Color.Black, progval, progmax); + } + else set(msg, string.Empty, data, Color.Black, progval, progmax); + + } + //public void set(eStatusMesage msg, string cate, string data, int progval = 0, int progmax = 0) + //{ + // set(msg, cate, data, Color.Black, progval, progmax); + + //} + + public void set(eStatusMesage msg, string cate, string data, Color fColor, int progval = 0, int progmax = 0) + { + lock (this.message) + { + if (this.message.ContainsKey(msg) == false) + { + var nemsg = new StatusMessageFormat + { + Category = cate, + Message = data, + fColor = fColor, + ProgressMax = progmax, + ProgressValue = progval + }; + this.message.Add(msg, nemsg); + } + else + { + var m = this.message[msg]; + m.Category = cate; + m.Message = data; + m.fColor = fColor; + if (progval != 0 || progmax != 0) + { + m.ProgressValue = progval; + m.ProgressMax = progmax; + } + } + } + + + } + public void set(eStatusMesage msg, string data, Color fColor, Color bColor1, Color bColor2) + { + lock (this.message) + { + if (this.message.ContainsKey(msg) == false) + { + var nemsg = new StatusMessageFormat + { + Message = data, + fColor = fColor, + bColor1 = bColor1, + bColor2 = bColor2 + }; + this.message.Add(msg, nemsg); + } + else + { + var m = this.message[msg]; + m.Message = data; + m.fColor = fColor; + m.bColor2 = bColor2; + m.bColor1 = bColor1; + } + } + + + } + } + public class StatusMessageFormat + { + public string Category { get; set; } + public string Message { get; set; } + public Color fColor { get; set; } + public Color bColor1 { get; set; } + public Color bColor2 { get; set; } + public int ProgressValue { get; set; } + public int ProgressMax { get; set; } + public int ProgressPerc + { + get + { + if (ProgressMax == 0 || ProgressValue == 0) return 0; + return (int)(ProgressValue / (ProgressMax * 1.0)); + } + } + public StatusMessageFormat() + { + Clear(); + } + void setMessage(string t, string m, Color c) + { + this.Category = t; + this.Message = m; + this.fColor = c; + + } + void setMessage(string m, Color c) + { + this.Category = string.Empty; + this.Message = m; + this.fColor = c; + + } + public void Clear() + { + ProgressValue = 0; + ProgressMax = 0; + Category = string.Empty; + Message = string.Empty; + fColor = Color.Black; + bColor1 = Color.White; + bColor2 = Color.White; + } + } +} diff --git a/Handler/Project/Class/VisionData.cs b/Handler/Project/Class/VisionData.cs new file mode 100644 index 0000000..2039100 --- /dev/null +++ b/Handler/Project/Class/VisionData.cs @@ -0,0 +1,935 @@ +using Emgu.CV.Structure; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Drawing; +using System.Collections.Concurrent; +using System.ComponentModel; +using System.Runtime.CompilerServices; + +namespace Project.Class +{ + public class VisionData : INotifyPropertyChanged + { + public int RetryLoader { get; set; } + public List bcdMessage { get; set; } + public Boolean LightOn { get; set; } + public DateTime STime; //비젼시작시간 + public DateTime ETime; //비젼종료시간 + public TimeSpan RunTime { get { return ETime - STime; } } //비젼동작시간 + public DateTime GTime; //이미지수집시간 + public string FileNameL; //로딩존 촬영 + public string FileNameU; //언로딩존 촬영 + public Boolean Complete; + + //public Boolean AngleQR { get; set; } + //public Boolean AngleSTD { get; set; } + //public double Angle { get; set; } + + //public Boolean IsAngleSet + //{ + // get + // { + // if (AngleQR == false && AngleSTD == false && Angle == 0.0) return true; + // else return false; + // } + //} + + /// + /// 부착위치에따른 추가회전 + /// + public double PositionAngle { get; set; } + public double ApplyAngle { get; set; } //적용된 회전 각도 + public Boolean NeedCylinderForward { get; set; } //부착시 실린더를 올려야하는가 + public Boolean ApplyOffset { get; set; } + public Boolean BaseAngle(out string msg, out KeyenceBarcodeData bcd) + { + + msg = string.Empty; + bcd = null; + + //데이터없다면 회전하지 못한다. + if (this.barcodelist == null || this.barcodelist.Count < 1) + { + msg = "No barcode data"; + return false; + } + + //사용자가 확정한 코드를 우선으로 한다 + KeyValuePair bcddata; + + var bcdCanList = barcodelist.Where(t => t.Value.Ignore == false).ToList(); + bcddata = bcdCanList.Where(t => t.Value.UserActive).FirstOrDefault(); + if (bcddata.Value != null) + { + bcd = bcddata.Value; + msg = "User Active"; + return true; + } + + //표준바코드를 최우선 으로 사용 + //15자리 기존 바코드는 angle 로 사용하지 않는다. + //이것은 각도가 일정치 않게 붙어지기 때문이다 + bcddata = bcdCanList.Where(t => t.Value.isSTDBarcode && t.Value.isNewLen15 == false).FirstOrDefault(); + if (bcddata.Value != null) + { + bcd = bcddata.Value; + msg = "STD Barcode"; + return true; + } + + //QR코드를 우선으로 사용 - return 릴은 적용하지 안게한다. + //RQ코드가 적용되지 않게한다 210824 + bcddata = bcdCanList.Where(t => t.Value.barcodeSymbol == "1" && t.Value.isNewLen15 == false && t.Value.Data.EndsWith(";;;") == false && t.Value.Data.StartsWith("RQ") == false).FirstOrDefault(); + if (bcddata.Value != null) + { + bcd = bcddata.Value; + msg = "QR Code"; + return true; + } + + //datamatrix, pdf417 + bcddata = bcdCanList.Where(t => t.Value.barcodeSymbol != "11" && t.Value.barcodeSymbol != "6" && t.Value.Data.StartsWith("RQ") == false).FirstOrDefault(); + if (bcddata.Value != null) + { + bcd = bcddata.Value; + return true; + } + + //첫번쨰 아이템을 우선으로 사용 + if (bcdCanList.Count == 1) + { + bcd = bcdCanList.First().Value; + msg = "Only One Barcode = " + bcd.Data; + return true; + } + else if (bcdCanList.Count > 1) + { + //여러개가 있음 + bcddata = bcdCanList.Where(t => t.Value.barcodeSymbol == "0").FirstOrDefault(); + if (bcd != null) + { + bcd = bcddata.Value; + msg = "1D Data"; + return true; + } + else + { + bcd = bcdCanList.First().Value;//[0]; + msg = $"first({bcd.barcodeSymbol}:{bcd.Data})"; + return true; + } + } + else + { + bcd = null; + msg = "no data"; + return false; + } + + // angle = bcd.Angle; + //return true; + } //모션회전각도 + public Boolean Ready { get; set; } + public Boolean ServerUpdate { get; set; } + + public Boolean Confirm + { + get + { + return ConfirmAuto || ConfirmUser || ConfirmBypass; + } + } + public Boolean ConfirmUser { get; set; } + public Boolean ConfirmAuto { get; set; } + public bool ConfirmBypass { get; set; } + + public Boolean ValidSkipbyUser { get; set; } + + private string _rid = string.Empty; + private string _qty = string.Empty; + private string _qty0 = string.Empty; + private string _sid0 = string.Empty; + private string _sid = string.Empty; + private string _rid0 = string.Empty; + private string _vlot = string.Empty; + private string _vname = string.Empty; + private string _mfgdate = string.Empty; + private string _partno = string.Empty; + private string _custcode = string.Empty; + private string _custname = string.Empty; + private string _batch = string.Empty; + private string _qtymax = string.Empty; + private string _mcn = string.Empty; + + public bool SID_Trust { get; set; } + public bool RID_Trust { get; set; } + public bool VLOT_Trust { get; set; } + public bool MFGDATE_Trust { get; set; } + public bool QTY_Trust { get; set; } + public bool PARTNO_Trust { get; set; } + public bool VNAME_Trust { get; set; } + public string Target { get; set; } + + public string MCN + { + get { return _mcn; } + set { _mcn = value; OnPropertyChanged(); } + } + + + /// + /// Original QTY + /// + public string QTY0 + { + get { return _qty0; } + set { _qty0 = value; OnPropertyChanged(); } + } + + /// + /// Qty + /// + public string QTY + { + get { return _qty; } + set { _qty = value; OnPropertyChanged(); } + } + + /// + /// QTY값이 RQ에서 입력된 데이터인가? + /// + public Boolean QTYRQ { get; set; } + + public string RID0 + { + get { return _rid0; } + set { _rid0 = value; OnPropertyChanged(); } + } + public string VLOT + { + get { return _vlot; } + set { _vlot = value; OnPropertyChanged(); } + } + public string VNAME + { + get { return _vname; } + set { _vname = value; OnPropertyChanged(); } + } + public string MFGDATE + { + get { return _mfgdate; } + set { _mfgdate = value; OnPropertyChanged(); } + } + public string PARTNO + { + get { return _partno; } + set { _partno = value; OnPropertyChanged(); } + } + + + /// + /// Original SID + /// + public string SID0 + { + get { return _sid0; } + set { _sid0 = value; OnPropertyChanged(); } + } + + public string BATCH + { + get + { + return _batch; + } + set + { + _batch = value; OnPropertyChanged(); + } + } + + public string QTYMAX + { + get + { + return _qtymax; + } + set + { + _qtymax = value; OnPropertyChanged(); + } + } + + + public string SID + { + get { return _sid; } + set { _sid = value; OnPropertyChanged(); } + } + + private void OnPropertyChanged([CallerMemberName] string caller = "") + { + PropertyChanged?.Invoke(this, + new PropertyChangedEventArgs(caller)); + } + + + /// + /// Reel ID + /// + public string RID + { + get { return _rid; } + private set { _rid = value; OnPropertyChanged(); } + } + + /// + /// 릴 ID를 설정합니다.trust 상태를 자동으로 true 값으로 전환합니다 + /// + /// + /// + public void SetRID(string value, string reason) + { + //값이 변경될때 로그에 변경 + if (_rid.Equals(value) == false) + { + PUB.AddDebugLog(string.Format("RID 변경 {0} -> {1} by {2}", _rid, value, reason)); + } + RID = value; + RID_Trust = true; + } + + public Boolean RIDNew { get; set; } + public Boolean HASHEADER { get; set; } + + + + public string CUSTCODE + { + get { return _custcode; } + set { _custcode = value; OnPropertyChanged(); } + } + public string CUSTNAME + { + get { return _custname; } + set { _custname = value; OnPropertyChanged(); } + } + + /// + /// 데이터가 모두존재하는지 확인 + /// + public Boolean DataValid + { + get + { + if (Confirm == false) return false; + return QTY.isEmpty() == false && + SID.isEmpty() == false && + RID.isEmpty() == false && + VLOT.isEmpty() == false && + VNAME.isEmpty() == false && + MFGDATE.isEmpty() == false && + PARTNO.isEmpty(); + } + } + + + public Boolean PrintPositionCheck { get; set; } + public string PrintPositionData { get; set; } + + //상단위치에 프린트를 할것인가? + //프린트위치에 따른다 + public ePrintPutPos GetPrintPutPosition() + { + //하단에 찍는경우이다 + if (PrintPositionData == "1" || + PrintPositionData == "2" || + PrintPositionData == "3") + { + return ePrintPutPos.Bottom; + } + else if (PrintPositionData == "7" || + PrintPositionData == "8" || + PrintPositionData == "9") + { + return ePrintPutPos.Top; + } + else if (PrintPositionData == "4") //왼쪽 + { + if (ReelSize == eCartSize.Inch7) + return ePrintPutPos.Top; + else + return ePrintPutPos.Middle; + } + else if (PrintPositionData == "6") //오른쪽 + { + if (ReelSize == eCartSize.Inch7) + return ePrintPutPos.Top; + else + return ePrintPutPos.Middle; + } + else return ePrintPutPos.None; + + } + //public string LabelPos { get; set; } + //public Boolean PrintForce { get; set; } + + public eCartSize ReelSize { get; set; } + + public string QTY2 { get; set; } //바코드수량 + public string SID2 { get; set; } //바코드 + public string RID2 { get; set; } //바코드 + public string VLOT2 { get; set; } + public string VNAME2 { get; set; } + public string MFGDATE2 { get; set; } + public string PARTNO2 { get; set; } + + public Emgu.CV.Mat imageF { get; private set; } //최종수집된 이미지 + public Emgu.CV.Mat imageR { get; private set; } //최종수집된 이미지 + + public void SetImage(Emgu.CV.Mat imgF_, Emgu.CV.Mat imgR_) + { + if (this.imageF != null) + { + this.imageF.Dispose(); + this.imageF = null; + } + + //이미지를 신규로 해석하고 데이터를 복사한다 210121 + this.imageF = new Emgu.CV.Mat(imgF_.Size, Emgu.CV.CvEnum.DepthType.Cv8U, 1); + imgF_.CopyTo(this.imageF); + + if (this.imageR != null) + { + this.imageR.Dispose(); + this.imageR = null; + } + + //이미지를 신규로 해석하고 데이터를 복사한다 210121 + this.imageR = new Emgu.CV.Mat(imgF_.Size, Emgu.CV.CvEnum.DepthType.Cv8U, 1); + imgR_.CopyTo(this.imageR); + + } + + public void SetImage(Emgu.CV.Mat img_) + { + if (this.imageF != null) + { + this.imageF.Dispose(); + this.imageF = null; + } + + + if (this.imageR != null) + { + this.imageR.Dispose(); + this.imageR = null; + } + + //이미지를 신규로 해석하고 데이터를 복사한다 210121 + this.imageF = new Emgu.CV.Mat(img_.Size, Emgu.CV.CvEnum.DepthType.Cv8U, 1); + img_.CopyTo(this.imageF); + + } + + + public System.Drawing.Color GetColorByBarcodeCount(int idx) + { + if (QRPositionData[idx] > 0) return Color.Gold; //QR데이터가있다면 금색으로 한다 + + var Cnt = LabelPositionData[idx]; + if (Cnt == MaxBarcodePosData) return Color.Purple; + else if (Cnt == 0) return Color.FromArgb(32, 32, 32); + { + //나머진 숫자별로 데이터를 표시한다 ( + var GValue = Cnt * 10; + if (GValue > 255) GValue = 255; + return Color.FromArgb(32, 32, GValue); + } + + } + public Boolean isMaxBarcodePosition(int idx) + { + return LabelPositionData[idx] == MaxBarcodePosData; + } + + public byte[] QRPositionData { get; private set; } + public byte[] LabelPositionData { get; private set; } + + public ConcurrentDictionary barcodelist; + public Boolean BarcodeTouched = false; + + public event PropertyChangedEventHandler PropertyChanged; + + //리더기로부터 읽은 자료 모두가 들어잇다 + //public List barcodelist + //{ + // get { return _barcodelist; } + // set + // { + // this._barcodelist = value; + // UpdateBarcodePositionData(); + // } + //} + + + + public byte MaxBarcodePosData { get; private set; } + /// + /// 바코드목록을 이용해서 라벨위치 분포값을 변경합낟. + /// 해당 위치값은 labelposdata로 접근가능함 + /// + public void UpdateBarcodePositionData() + { + LabelPositionData[0] = (byte)barcodelist.Where(t => t.Value.LabelPosition == 1).Count(); + LabelPositionData[1] = (byte)barcodelist.Where(t => t.Value.LabelPosition == 2).Count(); + LabelPositionData[2] = (byte)barcodelist.Where(t => t.Value.LabelPosition == 3).Count(); + + LabelPositionData[3] = (byte)barcodelist.Where(t => t.Value.LabelPosition == 4).Count(); + LabelPositionData[4] = (byte)barcodelist.Where(t => t.Value.LabelPosition == 6).Count(); + + LabelPositionData[5] = (byte)barcodelist.Where(t => t.Value.LabelPosition == 7).Count(); + LabelPositionData[6] = (byte)barcodelist.Where(t => t.Value.LabelPosition == 8).Count(); + LabelPositionData[7] = (byte)barcodelist.Where(t => t.Value.LabelPosition == 9).Count(); + + QRPositionData[0] = (byte)barcodelist.Where(t => t.Value.LabelPosition == 1 && t.Value.AmkorData.isValid).Count(); + QRPositionData[1] = (byte)barcodelist.Where(t => t.Value.LabelPosition == 2 && t.Value.AmkorData.isValid).Count(); + QRPositionData[2] = (byte)barcodelist.Where(t => t.Value.LabelPosition == 3 && t.Value.AmkorData.isValid).Count(); + + QRPositionData[3] = (byte)barcodelist.Where(t => t.Value.LabelPosition == 4 && t.Value.AmkorData.isValid).Count(); + QRPositionData[4] = (byte)barcodelist.Where(t => t.Value.LabelPosition == 6 && t.Value.AmkorData.isValid).Count(); + + QRPositionData[5] = (byte)barcodelist.Where(t => t.Value.LabelPosition == 7 && t.Value.AmkorData.isValid).Count(); + QRPositionData[6] = (byte)barcodelist.Where(t => t.Value.LabelPosition == 8 && t.Value.AmkorData.isValid).Count(); + QRPositionData[7] = (byte)barcodelist.Where(t => t.Value.LabelPosition == 9 && t.Value.AmkorData.isValid).Count(); + + MaxBarcodePosData = LabelPositionData.Max(t => t); + } + + /// + /// Data1(인쇄전 인식데이터) 과 Data2(QR)가 동일한지 비교합니다. + /// + public Boolean MatchValidation + { + get + { + if (PARTNO == null) this.PARTNO = string.Empty; + if (PARTNO2 == null) this.PARTNO2 = string.Empty; + if (QTY == null) QTY = string.Empty; + if (QTY2 == null) QTY2 = string.Empty; + if (SID == null) SID = string.Empty; + if (SID2 == null) SID2 = string.Empty; + if (VLOT == null) VLOT = string.Empty; + if (VLOT2 == null) VLOT2 = string.Empty; + if (PARTNO == null) PARTNO = string.Empty; + if (PARTNO2 == null) PARTNO2 = string.Empty; + + if (QTY.Equals(QTY2) == false) + { + PUB.log.AddE(string.Format("QR검증실패 수량:{0} != {1}", QTY, QTY2)); + return false; + } + if (RID.Equals(RID2) == false) + { + PUB.log.AddE(string.Format("QR검증실패 RID:{0} != {1}", RID, RID2)); + return false; + } + if (VLOT.Equals(VLOT2) == false) + { + PUB.log.AddE(string.Format("QR검증실패 VLOT:{0} != {1}", VLOT, VLOT2)); + return false; + } + if (PARTNO.Equals(PARTNO2) == false) + { + PUB.log.AddE(string.Format("QR검증실패 PARTNO:{0} != {1}", PARTNO, PARTNO2)); + return false; + } + if (SID.Equals(SID2) == false) + { + PUB.log.AddE(string.Format("QR검증실패 SID:{0} != {1}", SID, SID2)); + return false; + } + + return true; + } + } + + public string QRInputRaw { get; set; } //입력에 사용한 RAW + public string QROutRaw { get; set; } //부착된 QR코드의 값 + public string ZPL { get; set; } //출력시 사용한 ZPL + public string PrintQRData { get; set; } //출력시 사용한 ZPL에 포함된 QR데이터 + public string LastQueryString = string.Empty; + + public VisionData(string reason) + { + Clear(reason, false); + } + public Boolean isEmpty() + { + return RID.isEmpty(); + } + public void Clear(string reason, Boolean timeBackup) + { + LastQueryString = string.Empty; + RetryLoader = 0; + ApplyOffset = false; + var baktime = new DateTime(1982, 11, 23); + if (timeBackup) baktime = this.STime; + bcdMessage = new List(); + + PositionAngle = 0; + HASHEADER = false; + CUSTCODE = string.Empty; + CUSTNAME = string.Empty; + RID0 = string.Empty; + RIDNew = false; + LightOn = false; + //SCODE = string.Empty; + ValidSkipbyUser = false; + NeedCylinderForward = false; + ApplyAngle = 0; + MaxBarcodePosData = 0; + PrintPositionCheck = false; + LabelPositionData = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }; + QRPositionData = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }; + ReelSize = eCartSize.None; + // PrintForce = false; + ConfirmAuto = false; + ConfirmUser = false; + ConfirmBypass = false; + if (imageF != null) + { + imageF.Dispose(); + imageF = null; + } + if (imageR != null) + { + imageR.Dispose(); + imageR = null; + } + ServerUpdate = false; + PrintPositionData = ""; + //LabelPos = ""; + if (barcodelist != null) barcodelist.Clear(); + else barcodelist = new ConcurrentDictionary(); + + QRInputRaw = string.Empty; + QROutRaw = string.Empty; + ZPL = string.Empty; + PrintQRData = string.Empty; + + STime = baktime;// DateTime.Parse("1982-11-23"); + ETime = DateTime.Parse("1982-11-23"); + GTime = DateTime.Parse("1982-11-23"); + Complete = false; + //Angle = 0.0; + //AngleQR = false; + //AngleSTD = false; + MCN = string.Empty; + Target = string.Empty; + Ready = false; + QTY0 = string.Empty; + QTY = string.Empty;// string.Empty; + QTYRQ = false; + //PUB.log.AddI($"비젼개체 CLEAR 로 RQ 상태 초기화(false)"); + + BATCH = string.Empty; + QTYMAX = string.Empty; + + SID0 = string.Empty; + SID = string.Empty; + //RID = string.Empty; + SetRID(string.Empty, reason); + VLOT = string.Empty; + MFGDATE = string.Empty; + VNAME = string.Empty; + PARTNO = string.Empty; + + QTY2 = "0";// string.Empty; + SID2 = string.Empty; + RID2 = string.Empty; + VLOT2 = string.Empty; + MFGDATE2 = string.Empty; + VNAME2 = string.Empty; + PARTNO2 = string.Empty; + + FileNameL = string.Empty; + FileNameU = string.Empty; + + MFGDATE_Trust = false; + PARTNO_Trust = false; + QTY_Trust = false; + SID_Trust = false; + RID_Trust = false; + VLOT_Trust = false; + VNAME_Trust = false; + + BarcodeTouched = false; + MCN = string.Empty; + Target = string.Empty; + + PUB.log.Add($"비젼데이터삭제({reason})"); + } + + public void CopyTo(ref VisionData obj) + { + //바코드메세지 복사 + obj.bcdMessage = new List(); + foreach (var item in this.bcdMessage) + obj.bcdMessage.Add(item); + + obj.ApplyOffset = this.ApplyOffset; + obj.ConfirmAuto = this.ConfirmAuto; + obj.ConfirmUser = this.ConfirmUser; + obj.CUSTCODE = this.CUSTCODE; + obj.CUSTNAME = this.CUSTNAME; + obj.LightOn = this.LightOn; + + //obj.SCODE = this.SCODE; + obj.ValidSkipbyUser = this.ValidSkipbyUser; + obj.NeedCylinderForward = this.NeedCylinderForward; //210207 + obj.ApplyAngle = this.ApplyAngle; //210207 + obj.STime = this.STime; + obj.ETime = this.ETime; + obj.GTime = this.GTime; + obj.FileNameL = this.FileNameL; + obj.FileNameU = this.FileNameU; + obj.Complete = this.Complete; + //obj.Angle = this.Angle; + //obj.AngleQR = this.AngleQR; + //obj.AngleSTD = this.AngleSTD; + obj.BATCH = this.BATCH; + obj.QTYMAX = this.QTYMAX; + obj.Ready = this.Ready; + obj.QTY = this.QTY; + obj.QTYRQ = this.QTYRQ; + obj.SID = this.SID; + obj.SID0 = this.SID0; //210331 + obj.SetRID(this.RID, "copy");// obj.RID = this.RID; + obj.RID0 = this.RID0; + obj.RIDNew = this.RIDNew; + obj.VLOT = this.VLOT; + obj.VNAME = this.VNAME; + obj.MFGDATE = this.MFGDATE; + obj.PARTNO = this.PARTNO; + obj.MCN = this.MCN; + obj.Target = this.Target; + + obj.QTY2 = this.QTY2; + obj.SID2 = this.SID2; + obj.RID2 = this.RID2; + obj.VLOT2 = this.VLOT2; + obj.VNAME2 = this.VNAME2; + obj.MFGDATE2 = this.MFGDATE; + obj.PARTNO2 = this.PARTNO2; + + obj.QRInputRaw = this.QRInputRaw; + obj.QROutRaw = this.QROutRaw; + obj.ZPL = this.ZPL; + obj.PrintQRData = this.PrintQRData; + obj.PrintPositionData = this.PrintPositionData; + //obj.PrintForce = this.PrintForce; + obj.ReelSize = this.ReelSize; + obj.PrintPositionCheck = this.PrintPositionCheck; + obj.BarcodeTouched = this.BarcodeTouched; + + //라벨위치값 복사 + for (int i = 0; i < obj.LabelPositionData.Length; i++) + obj.LabelPositionData[i] = this.LabelPositionData[i]; + for (int i = 0; i < obj.QRPositionData.Length; i++) + obj.QRPositionData[i] = this.QRPositionData[i]; + if (obj.imageF != null) + { + obj.imageF.Dispose(); + obj.imageF = null; + } + if (obj.imageR != null) + { + obj.imageR.Dispose(); + obj.imageR = null; + } + //이미지를 복사해준다. 210121 + if (this.imageF != null) + { + obj.imageF = new Emgu.CV.Mat(this.imageF.Size, Emgu.CV.CvEnum.DepthType.Cv8U, 1); + this.imageF.CopyTo(obj.imageF); + } + if (this.imageR != null) + { + obj.imageR = new Emgu.CV.Mat(this.imageR.Size, Emgu.CV.CvEnum.DepthType.Cv8U, 1); + this.imageR.CopyTo(obj.imageR); + } + + //바코드 데이터를 복사해준다. + if (obj.barcodelist == null) + obj.barcodelist = new ConcurrentDictionary();// List(); + else + obj.barcodelist.Clear(); + + foreach (var item in this.barcodelist) + { + var bcd = item.Value; + var newitema = new KeyenceBarcodeData + { + Angle = bcd.Angle, + CenterPX = new Point(bcd.CenterPX.X, bcd.CenterPX.Y), + Data = bcd.Data, + LabelPosition = bcd.LabelPosition, + UserActive = bcd.UserActive, + barcodeSymbol = bcd.barcodeSymbol, + }; + + newitema.vertex = new Point[bcd.vertex.Length]; + bcd.vertex.CopyTo(newitema.vertex, 0); + + if (bcd.AmkorData != null) //231006 null error fix + bcd.AmkorData.CopyTo(newitema.AmkorData); + + obj.barcodelist.AddOrUpdate(item.Key, newitema, + (key, data) => + { + data.Angle = newitema.Angle; + data.CenterPX = newitema.CenterPX; + data.Data = newitema.Data; + data.LabelPosition = newitema.LabelPosition; + data.UserActive = newitema.UserActive; + data.barcodeSymbol = newitema.barcodeSymbol; + data.RegExConfirm = newitema.RegExConfirm; + return data; + }); + } + + + } + + public void UpdateTo(ref VisionData obj) + { + //바코드메세지 복사 + obj.bcdMessage = new List(); + foreach (var item in this.bcdMessage) + obj.bcdMessage.Add(item); + + obj.ApplyOffset = this.ApplyOffset; + obj.ConfirmAuto = this.ConfirmAuto; + obj.ConfirmUser = this.ConfirmUser; + obj.CUSTCODE = this.CUSTCODE; + obj.CUSTNAME = this.CUSTNAME; + obj.LightOn = this.LightOn; + + //obj.SCODE = this.SCODE; + obj.ValidSkipbyUser = this.ValidSkipbyUser; + obj.NeedCylinderForward = this.NeedCylinderForward; //210207 + obj.ApplyAngle = this.ApplyAngle; //210207 + obj.STime = this.STime; + obj.ETime = this.ETime; + obj.GTime = this.GTime; + obj.FileNameL = this.FileNameL; + obj.FileNameU = this.FileNameU; + obj.Complete = this.Complete; + //obj.Angle = this.Angle; + //obj.AngleQR = this.AngleQR; + //obj.AngleSTD = this.AngleSTD; + obj.Ready = this.Ready; + obj.QTY = this.QTY; + obj.QTYRQ = this.QTYRQ; + obj.SID = this.SID; + obj.SID0 = this.SID0; //210331 + obj.SetRID(this.RID, "copy");// obj.RID = this.RID; + obj.RID0 = this.RID0; + obj.RIDNew = this.RIDNew; + obj.VLOT = this.VLOT; + obj.VNAME = this.VNAME; + obj.MFGDATE = this.MFGDATE; + obj.PARTNO = this.PARTNO; + obj.MCN = this.MCN; + obj.Target = this.Target; + + obj.BATCH = this.BATCH; + obj.QTYMAX = this.QTYMAX; + obj.QTY2 = this.QTY2; + obj.SID2 = this.SID2; + obj.RID2 = this.RID2; + obj.VLOT2 = this.VLOT2; + obj.VNAME2 = this.VNAME2; + obj.MFGDATE2 = this.MFGDATE; + obj.PARTNO2 = this.PARTNO2; + + obj.QRInputRaw = this.QRInputRaw; + obj.QROutRaw = this.QROutRaw; + obj.ZPL = this.ZPL; + obj.PrintQRData = this.PrintQRData; + obj.PrintPositionData = this.PrintPositionData; + //obj.PrintForce = this.PrintForce; + obj.ReelSize = this.ReelSize; + obj.PrintPositionCheck = this.PrintPositionCheck; + obj.BarcodeTouched = this.BarcodeTouched; + + //라벨위치값 복사 + for (int i = 0; i < obj.LabelPositionData.Length; i++) + obj.LabelPositionData[i] = this.LabelPositionData[i]; + for (int i = 0; i < obj.QRPositionData.Length; i++) + obj.QRPositionData[i] = this.QRPositionData[i]; + if (obj.imageF != null) + { + obj.imageF.Dispose(); + obj.imageF = null; + } + if (obj.imageR != null) + { + obj.imageR.Dispose(); + obj.imageR = null; + } + //이미지를 복사해준다. 210121 + if (this.imageF != null) + { + obj.imageF = new Emgu.CV.Mat(this.imageF.Size, Emgu.CV.CvEnum.DepthType.Cv8U, 1); + this.imageF.CopyTo(obj.imageF); + } + if (this.imageR != null) + { + obj.imageR = new Emgu.CV.Mat(this.imageR.Size, Emgu.CV.CvEnum.DepthType.Cv8U, 1); + this.imageR.CopyTo(obj.imageR); + } + //바코드 데이터를 복사해준다. + if (obj.barcodelist == null) + obj.barcodelist = new ConcurrentDictionary();// List(); + else + obj.barcodelist.Clear(); + + foreach (var item in this.barcodelist) + { + var bcd = item.Value; + var newitema = new KeyenceBarcodeData + { + Angle = bcd.Angle, + CenterPX = new Point(bcd.CenterPX.X, bcd.CenterPX.Y), + Data = bcd.Data, + LabelPosition = bcd.LabelPosition, + UserActive = bcd.UserActive, + barcodeSymbol = bcd.barcodeSymbol, + }; + + newitema.vertex = new Point[bcd.vertex.Length]; + bcd.vertex.CopyTo(newitema.vertex, 0); + bcd.AmkorData.CopyTo(newitema.AmkorData); + obj.barcodelist.AddOrUpdate(item.Key, newitema, + (key, data) => + { + data.Angle = newitema.Angle; + data.CenterPX = newitema.CenterPX; + data.Data = newitema.Data; + data.LabelPosition = newitema.LabelPosition; + data.UserActive = newitema.UserActive; + data.barcodeSymbol = newitema.barcodeSymbol; + data.RegExConfirm = newitema.RegExConfirm; + return data; + }); + } + + + } + } +} diff --git a/Handler/Project/Class/sPositionData.cs b/Handler/Project/Class/sPositionData.cs new file mode 100644 index 0000000..b0f3698 --- /dev/null +++ b/Handler/Project/Class/sPositionData.cs @@ -0,0 +1,86 @@ +using System; + +namespace Project +{ + [Serializable] + public class sPositionData + { + public float inpositionrange { get; set; } + public int Axis; + public double Position { get; set; } + public double Acc; + public double _dcc; + public double Dcc + { + get + { + if (_dcc == 0) return Acc; + else return _dcc; + } + set + { + _dcc = value; + } + } + public double Speed; + public Boolean isError { get { return Speed == 0; } } + public string Message; + + public sPositionData(sPositionData baseData) + { + this.Clear(); + this.Position = baseData.Position; + this.Acc = baseData.Acc; + this.Dcc = baseData.Dcc; + this._dcc = baseData._dcc; + this.Speed = baseData.Speed; + this.Axis = baseData.Axis; + this.Message = baseData.Message; + this.inpositionrange = baseData.inpositionrange; + } + + public sPositionData Clone() + { + return new sPositionData + { + Position = this.Position, + Acc = this.Acc, + Dcc = this.Dcc, + //isError = this.isError, + Message = this.Message, + Speed = this.Speed, + _dcc = this.Dcc, + Axis = this.Axis, + inpositionrange = this.inpositionrange, + }; + } + + public sPositionData() + { + Clear(); + } + public sPositionData(double pos) + { + Clear(); + this.Position = pos; + } + + //public void SetPosition(double pos) { this.Position = pos; } + + public void Clear() + { + Axis = -1; + inpositionrange = 0f; + Position = 0; + Acc = 500; + _dcc = 0; + Speed = 0; + Message = "Not Set"; + } + public override string ToString() + { + return $"Pos:{Position},Spd:{Speed}"; + } + } + +} diff --git a/Handler/Project/Component_Reel_Info.cs b/Handler/Project/Component_Reel_Info.cs new file mode 100644 index 0000000..8ac8a1c --- /dev/null +++ b/Handler/Project/Component_Reel_Info.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 템플릿에서 생성되었습니다. +// +// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다. +// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다. +// +//------------------------------------------------------------------------------ + +namespace Project +{ + using System; + using System.Collections.Generic; + + public partial class Component_Reel_Info + { + public int idx { get; set; } + public string CUST { get; set; } + public string AMKSID { get; set; } + public string CUST_PARTNO { get; set; } + public string MFG_PARTNO { get; set; } + } +} diff --git a/Handler/Project/Component_Reel_Result.cs b/Handler/Project/Component_Reel_Result.cs new file mode 100644 index 0000000..42e2ca3 --- /dev/null +++ b/Handler/Project/Component_Reel_Result.cs @@ -0,0 +1,53 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 템플릿에서 생성되었습니다. +// +// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다. +// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다. +// +//------------------------------------------------------------------------------ + +namespace Project +{ + using System; + using System.Collections.Generic; + + public partial class Component_Reel_Result + { + public int idx { get; set; } + public System.DateTime STIME { get; set; } + public Nullable ETIME { get; set; } + public Nullable PTIME { get; set; } + public string PDATE { get; set; } + public string JTYPE { get; set; } + public string JGUID { get; set; } + public string SID { get; set; } + public string SID0 { get; set; } + public string RID { get; set; } + public string RID0 { get; set; } + public string RSN { get; set; } + public string QR { get; set; } + public string ZPL { get; set; } + public string POS { get; set; } + public string LOC { get; set; } + public Nullable ANGLE { get; set; } + public Nullable QTY { get; set; } + public Nullable QTY0 { get; set; } + public string VLOT { get; set; } + public string VNAME { get; set; } + public string MFGDATE { get; set; } + public Nullable PRNATTACH { get; set; } + public Nullable PRNVALID { get; set; } + public string REMARK { get; set; } + public System.DateTime wdate { get; set; } + public string MC { get; set; } + public Nullable GUID { get; set; } + public Nullable ATIME { get; set; } + public Nullable OPT { get; set; } + public Nullable OPT_DATA { get; set; } + public string PARTNO { get; set; } + public string CUSTCODE { get; set; } + public string BATCH { get; set; } + public Nullable qtymax { get; set; } + } +} diff --git a/Handler/Project/Component_Reel_SID_Convert.cs b/Handler/Project/Component_Reel_SID_Convert.cs new file mode 100644 index 0000000..964510f --- /dev/null +++ b/Handler/Project/Component_Reel_SID_Convert.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 템플릿에서 생성되었습니다. +// +// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다. +// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다. +// +//------------------------------------------------------------------------------ + +namespace Project +{ + using System; + using System.Collections.Generic; + + public partial class Component_Reel_SID_Convert + { + public int idx { get; set; } + public Nullable Chk { get; set; } + public string SIDFrom { get; set; } + public string SIDTo { get; set; } + public string Remark { get; set; } + public Nullable wdate { get; set; } + public string MC { get; set; } + } +} diff --git a/Handler/Project/Controller/ModelController.cs b/Handler/Project/Controller/ModelController.cs new file mode 100644 index 0000000..5a1f0a2 --- /dev/null +++ b/Handler/Project/Controller/ModelController.cs @@ -0,0 +1,109 @@ +using AR; +using Microsoft.SqlServer.Server; +using Newtonsoft.Json.Linq; +using System.Net; +using System.Net.Http; +using System.Web.Http; + +namespace Project.Controller +{ + public class ModelController : ApiController + { + //private static List _values = new List { + // new Item { Id = 1, Name = "USB2.0 연장선" }, + // new Item { Id = 2, Name = "USB3.0 연장선" }, + // new Item { Id =3, Name = "USB3.1 연장선" } + //}; + + // GET api/values + public IHttpActionResult Get() + { + HttpResponseMessage responsem = new HttpResponseMessage(HttpStatusCode.OK); + var data = new + { + model = PUB.Result.vModel.Title, + }; + return Ok(data); + } + + // GET api/values/5 + public IHttpActionResult Get(int id) + { + //var value = DataManager.Items?.Find(v => v.Id == id) ?? null; + //if (value == null) + //{ + // return NotFound(); + //} + return Ok(); + } + + // POST api/values + [HttpGet] + public IHttpActionResult Set(string id) + { + //지정된 모델로 변경한다. + var msg = ""; + + if (id.isEmpty()) msg = "NO MODELNAME"; + if (msg.isEmpty()) + { + if (PUB.sm.Step == eSMStep.IDLE || PUB.sm.Step == eSMStep.FINISH) + { + var buf = id.Split(new char[] { '|' }, System.StringSplitOptions.RemoveEmptyEntries); + var modelname = buf[0]; + var conv = true; + if (buf.Length == 2) conv = buf[1] == "1"; + + var modelVision = PUB.mdm.GetDataV(modelname); + if (modelVision == null) + { + msg = "NO MODELDATA"; + } + else + { + VAR.BOOL[eVarBool.Use_Conveyor] = conv; + var rlt = PUB.SelectModelV(modelname, false); + if (rlt == false) + { + msg = "[OP]LOAD FAIL"; + } + else + { + var motion = conv ? "Conveyor" : "Default"; + rlt = PUB.SelectModelM("Conveyor"); + if(rlt ==false) + { + msg = "[MT]LOAD FAIL"; + } + } + + + } + } + else + { + msg = "NOT IDLE"; + } + } + + var data = new + { + Message = msg, + Result = (msg.isEmpty() ? true : false), + }; + return Ok(data); + } + + // PUT api/values/5 + public IHttpActionResult Put(int id, [FromBody] JObject value) + { + return Ok(); + } + + // DELETE api/values/5 + public IHttpActionResult Delete(int id) + { + return Ok(); + } + } +} diff --git a/Handler/Project/Controller/StateController.cs b/Handler/Project/Controller/StateController.cs new file mode 100644 index 0000000..ee7ccd5 --- /dev/null +++ b/Handler/Project/Controller/StateController.cs @@ -0,0 +1,88 @@ +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.Http; +using System.Runtime.Remoting.Contexts; +using System.Security.Principal; +using System.Text; +using System.Threading.Tasks; +using System.Web; +using System.Web.Http; +using System.Web.Http.Results; + +namespace Project.Controller +{ + public class StateController : ApiController + { + //private static List _values = new List { + // new Item { Id = 1, Name = "USB2.0 연장선" }, + // new Item { Id = 2, Name = "USB3.0 연장선" }, + // new Item { Id =3, Name = "USB3.1 연장선" } + //}; + + // GET api/values + public IHttpActionResult Get() + { + HttpResponseMessage responsem = new HttpResponseMessage(HttpStatusCode.OK); + //responsem.Headers.Add("Content-Type", "application/json"); + //ResponseMessageResult response = new ResponseMessageResult(responsem); + //return response; + + //return this.Content(HttpStatusCode.OK, _values, mediaType) + return Ok(); + //string json = JsonConvert.SerializeObject(_values, Formatting.Indented); + //return Ok(json); + } + + // GET api/values/5 + public IHttpActionResult Get(int id) + { + //var value = DataManager.Items?.Find(v => v.Id == id) ?? null; + //if (value == null) + //{ + // return NotFound(); + //} + return Ok(); + } + + // POST api/values + public IHttpActionResult Post([FromBody] JObject value) + { + //value.Id = DataManager.Items?.Count ?? 0; + //DataManager.Items.Add(value); + //DataManager.Save(); + return CreatedAtRoute("DefaultApi", new { id = value }, value); + } + + // PUT api/values/5 + public IHttpActionResult Put(int id, [FromBody] JObject value) + { + //var index = DataManager.Items.FindIndex(v => v.Id == id); + //if (index == -1) + //{ + // return NotFound(); + //} + + //DataManager.Items[index] = value; + //DataManager.Save(); + return Ok(); + } + + // DELETE api/values/5 + public IHttpActionResult Delete(int id) + { + //var index = DataManager.Items.FindIndex(v => v.Id == id); + //if (index == -1) + //{ + // return NotFound(); + //} + + //DataManager.Items.RemoveAt(index); + //DataManager.Save(); + return Ok(); + } + } +} diff --git a/Handler/Project/DSList.Designer.cs b/Handler/Project/DSList.Designer.cs new file mode 100644 index 0000000..16587b2 --- /dev/null +++ b/Handler/Project/DSList.Designer.cs @@ -0,0 +1,5133 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +#pragma warning disable 1591 + +namespace Project { + + + /// + ///Represents a strongly typed in-memory cache of data. + /// + [global::System.Serializable()] + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] + [global::System.Xml.Serialization.XmlRootAttribute("DSList")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] + public partial class DSList : global::System.Data.DataSet { + + private Component_Reel_CustRuleDataTable tableComponent_Reel_CustRule; + + private Component_Reel_SIDInfoDataTable tableComponent_Reel_SIDInfo; + + private Component_Reel_SIDConvDataTable tableComponent_Reel_SIDConv; + + private SupplyDataTable tableSupply; + + private SIDConvertDataTable tableSIDConvert; + + private global::System.Data.SchemaSerializationMode _schemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public DSList() { + this.BeginInit(); + this.InitClass(); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + base.Relations.CollectionChanged += schemaChangedHandler; + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected DSList(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context, false) { + if ((this.IsBinarySerialized(info, context) == true)) { + this.InitVars(false); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + this.Tables.CollectionChanged += schemaChangedHandler1; + this.Relations.CollectionChanged += schemaChangedHandler1; + return; + } + string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); + if ((this.DetermineSchemaSerializationMode(info, context) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { + global::System.Data.DataSet ds = new global::System.Data.DataSet(); + ds.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); + if ((ds.Tables["Component_Reel_CustRule"] != null)) { + base.Tables.Add(new Component_Reel_CustRuleDataTable(ds.Tables["Component_Reel_CustRule"])); + } + if ((ds.Tables["Component_Reel_SIDInfo"] != null)) { + base.Tables.Add(new Component_Reel_SIDInfoDataTable(ds.Tables["Component_Reel_SIDInfo"])); + } + if ((ds.Tables["Component_Reel_SIDConv"] != null)) { + base.Tables.Add(new Component_Reel_SIDConvDataTable(ds.Tables["Component_Reel_SIDConv"])); + } + if ((ds.Tables["Supply"] != null)) { + base.Tables.Add(new SupplyDataTable(ds.Tables["Supply"])); + } + if ((ds.Tables["SIDConvert"] != null)) { + base.Tables.Add(new SIDConvertDataTable(ds.Tables["SIDConvert"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); + } + this.GetSerializationData(info, context); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + this.Relations.CollectionChanged += schemaChangedHandler; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public Component_Reel_CustRuleDataTable Component_Reel_CustRule { + get { + return this.tableComponent_Reel_CustRule; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public Component_Reel_SIDInfoDataTable Component_Reel_SIDInfo { + get { + return this.tableComponent_Reel_SIDInfo; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public Component_Reel_SIDConvDataTable Component_Reel_SIDConv { + get { + return this.tableComponent_Reel_SIDConv; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public SupplyDataTable Supply { + get { + return this.tableSupply; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public SIDConvertDataTable SIDConvert { + get { + return this.tableSIDConvert; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.BrowsableAttribute(true)] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Visible)] + public override global::System.Data.SchemaSerializationMode SchemaSerializationMode { + get { + return this._schemaSerializationMode; + } + set { + this._schemaSerializationMode = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new global::System.Data.DataTableCollection Tables { + get { + return base.Tables; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new global::System.Data.DataRelationCollection Relations { + get { + return base.Relations; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void InitializeDerivedDataSet() { + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataSet Clone() { + DSList cln = ((DSList)(base.Clone())); + cln.InitVars(); + cln.SchemaSerializationMode = this.SchemaSerializationMode; + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override bool ShouldSerializeTables() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override bool ShouldSerializeRelations() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void ReadXmlSerializable(global::System.Xml.XmlReader reader) { + if ((this.DetermineSchemaSerializationMode(reader) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { + this.Reset(); + global::System.Data.DataSet ds = new global::System.Data.DataSet(); + ds.ReadXml(reader); + if ((ds.Tables["Component_Reel_CustRule"] != null)) { + base.Tables.Add(new Component_Reel_CustRuleDataTable(ds.Tables["Component_Reel_CustRule"])); + } + if ((ds.Tables["Component_Reel_SIDInfo"] != null)) { + base.Tables.Add(new Component_Reel_SIDInfoDataTable(ds.Tables["Component_Reel_SIDInfo"])); + } + if ((ds.Tables["Component_Reel_SIDConv"] != null)) { + base.Tables.Add(new Component_Reel_SIDConvDataTable(ds.Tables["Component_Reel_SIDConv"])); + } + if ((ds.Tables["Supply"] != null)) { + base.Tables.Add(new SupplyDataTable(ds.Tables["Supply"])); + } + if ((ds.Tables["SIDConvert"] != null)) { + base.Tables.Add(new SIDConvertDataTable(ds.Tables["SIDConvert"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXml(reader); + this.InitVars(); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Xml.Schema.XmlSchema GetSchemaSerializable() { + global::System.IO.MemoryStream stream = new global::System.IO.MemoryStream(); + this.WriteXmlSchema(new global::System.Xml.XmlTextWriter(stream, null)); + stream.Position = 0; + return global::System.Xml.Schema.XmlSchema.Read(new global::System.Xml.XmlTextReader(stream), null); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.InitVars(true); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars(bool initTable) { + this.tableComponent_Reel_CustRule = ((Component_Reel_CustRuleDataTable)(base.Tables["Component_Reel_CustRule"])); + if ((initTable == true)) { + if ((this.tableComponent_Reel_CustRule != null)) { + this.tableComponent_Reel_CustRule.InitVars(); + } + } + this.tableComponent_Reel_SIDInfo = ((Component_Reel_SIDInfoDataTable)(base.Tables["Component_Reel_SIDInfo"])); + if ((initTable == true)) { + if ((this.tableComponent_Reel_SIDInfo != null)) { + this.tableComponent_Reel_SIDInfo.InitVars(); + } + } + this.tableComponent_Reel_SIDConv = ((Component_Reel_SIDConvDataTable)(base.Tables["Component_Reel_SIDConv"])); + if ((initTable == true)) { + if ((this.tableComponent_Reel_SIDConv != null)) { + this.tableComponent_Reel_SIDConv.InitVars(); + } + } + this.tableSupply = ((SupplyDataTable)(base.Tables["Supply"])); + if ((initTable == true)) { + if ((this.tableSupply != null)) { + this.tableSupply.InitVars(); + } + } + this.tableSIDConvert = ((SIDConvertDataTable)(base.Tables["SIDConvert"])); + if ((initTable == true)) { + if ((this.tableSIDConvert != null)) { + this.tableSIDConvert.InitVars(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.DataSetName = "DSList"; + this.Prefix = ""; + this.Namespace = "http://tempuri.org/DSList.xsd"; + this.EnforceConstraints = true; + this.SchemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; + this.tableComponent_Reel_CustRule = new Component_Reel_CustRuleDataTable(); + base.Tables.Add(this.tableComponent_Reel_CustRule); + this.tableComponent_Reel_SIDInfo = new Component_Reel_SIDInfoDataTable(); + base.Tables.Add(this.tableComponent_Reel_SIDInfo); + this.tableComponent_Reel_SIDConv = new Component_Reel_SIDConvDataTable(); + base.Tables.Add(this.tableComponent_Reel_SIDConv); + this.tableSupply = new SupplyDataTable(); + base.Tables.Add(this.tableSupply); + this.tableSIDConvert = new SIDConvertDataTable(); + base.Tables.Add(this.tableSIDConvert); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeComponent_Reel_CustRule() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeComponent_Reel_SIDInfo() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeComponent_Reel_SIDConv() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeSupply() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeSIDConvert() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void SchemaChanged(object sender, global::System.ComponentModel.CollectionChangeEventArgs e) { + if ((e.Action == global::System.ComponentModel.CollectionChangeAction.Remove)) { + this.InitVars(); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + DSList ds = new DSList(); + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + global::System.Xml.Schema.XmlSchemaAny any = new global::System.Xml.Schema.XmlSchemaAny(); + any.Namespace = ds.Namespace; + sequence.Items.Add(any); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void Component_Reel_CustRuleRowChangeEventHandler(object sender, Component_Reel_CustRuleRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void Component_Reel_SIDInfoRowChangeEventHandler(object sender, Component_Reel_SIDInfoRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void Component_Reel_SIDConvRowChangeEventHandler(object sender, Component_Reel_SIDConvRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void SupplyRowChangeEventHandler(object sender, SupplyRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void SIDConvertRowChangeEventHandler(object sender, SIDConvertRowChangeEvent e); + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class Component_Reel_CustRuleDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columncode; + + private global::System.Data.DataColumn columnpre; + + private global::System.Data.DataColumn columnpos; + + private global::System.Data.DataColumn columnlen; + + private global::System.Data.DataColumn columnexp; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_CustRuleDataTable() { + this.TableName = "Component_Reel_CustRule"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal Component_Reel_CustRuleDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected Component_Reel_CustRuleDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn codeColumn { + get { + return this.columncode; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn preColumn { + get { + return this.columnpre; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn posColumn { + get { + return this.columnpos; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn lenColumn { + get { + return this.columnlen; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn expColumn { + get { + return this.columnexp; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_CustRuleRow this[int index] { + get { + return ((Component_Reel_CustRuleRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_CustRuleRowChangeEventHandler Component_Reel_CustRuleRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_CustRuleRowChangeEventHandler Component_Reel_CustRuleRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_CustRuleRowChangeEventHandler Component_Reel_CustRuleRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_CustRuleRowChangeEventHandler Component_Reel_CustRuleRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddComponent_Reel_CustRuleRow(Component_Reel_CustRuleRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_CustRuleRow AddComponent_Reel_CustRuleRow(string code, string pre, string pos, int len, string exp) { + Component_Reel_CustRuleRow rowComponent_Reel_CustRuleRow = ((Component_Reel_CustRuleRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + code, + pre, + pos, + len, + exp}; + rowComponent_Reel_CustRuleRow.ItemArray = columnValuesArray; + this.Rows.Add(rowComponent_Reel_CustRuleRow); + return rowComponent_Reel_CustRuleRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_CustRuleRow FindBycode(string code) { + return ((Component_Reel_CustRuleRow)(this.Rows.Find(new object[] { + code}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + Component_Reel_CustRuleDataTable cln = ((Component_Reel_CustRuleDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new Component_Reel_CustRuleDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columncode = base.Columns["code"]; + this.columnpre = base.Columns["pre"]; + this.columnpos = base.Columns["pos"]; + this.columnlen = base.Columns["len"]; + this.columnexp = base.Columns["exp"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columncode = new global::System.Data.DataColumn("code", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columncode); + this.columnpre = new global::System.Data.DataColumn("pre", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnpre); + this.columnpos = new global::System.Data.DataColumn("pos", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnpos); + this.columnlen = new global::System.Data.DataColumn("len", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnlen); + this.columnexp = new global::System.Data.DataColumn("exp", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnexp); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columncode}, true)); + this.columncode.AllowDBNull = false; + this.columncode.Unique = true; + this.columncode.MaxLength = 10; + this.columnpre.MaxLength = 20; + this.columnpos.MaxLength = 20; + this.columnexp.MaxLength = 100; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_CustRuleRow NewComponent_Reel_CustRuleRow() { + return ((Component_Reel_CustRuleRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new Component_Reel_CustRuleRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(Component_Reel_CustRuleRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.Component_Reel_CustRuleRowChanged != null)) { + this.Component_Reel_CustRuleRowChanged(this, new Component_Reel_CustRuleRowChangeEvent(((Component_Reel_CustRuleRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.Component_Reel_CustRuleRowChanging != null)) { + this.Component_Reel_CustRuleRowChanging(this, new Component_Reel_CustRuleRowChangeEvent(((Component_Reel_CustRuleRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.Component_Reel_CustRuleRowDeleted != null)) { + this.Component_Reel_CustRuleRowDeleted(this, new Component_Reel_CustRuleRowChangeEvent(((Component_Reel_CustRuleRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.Component_Reel_CustRuleRowDeleting != null)) { + this.Component_Reel_CustRuleRowDeleting(this, new Component_Reel_CustRuleRowChangeEvent(((Component_Reel_CustRuleRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveComponent_Reel_CustRuleRow(Component_Reel_CustRuleRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DSList ds = new DSList(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "Component_Reel_CustRuleDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class Component_Reel_SIDInfoDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnSID; + + private global::System.Data.DataColumn columnCustCode; + + private global::System.Data.DataColumn columnCustName; + + private global::System.Data.DataColumn columnVenderName; + + private global::System.Data.DataColumn columnPartNo; + + private global::System.Data.DataColumn columnPrintPosition; + + private global::System.Data.DataColumn columnRemark; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SIDInfoDataTable() { + this.TableName = "Component_Reel_SIDInfo"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal Component_Reel_SIDInfoDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected Component_Reel_SIDInfoDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SIDColumn { + get { + return this.columnSID; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn CustCodeColumn { + get { + return this.columnCustCode; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn CustNameColumn { + get { + return this.columnCustName; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn VenderNameColumn { + get { + return this.columnVenderName; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn PartNoColumn { + get { + return this.columnPartNo; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn PrintPositionColumn { + get { + return this.columnPrintPosition; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn RemarkColumn { + get { + return this.columnRemark; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SIDInfoRow this[int index] { + get { + return ((Component_Reel_SIDInfoRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_SIDInfoRowChangeEventHandler Component_Reel_SIDInfoRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_SIDInfoRowChangeEventHandler Component_Reel_SIDInfoRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_SIDInfoRowChangeEventHandler Component_Reel_SIDInfoRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_SIDInfoRowChangeEventHandler Component_Reel_SIDInfoRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddComponent_Reel_SIDInfoRow(Component_Reel_SIDInfoRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SIDInfoRow AddComponent_Reel_SIDInfoRow(string SID, string CustCode, string CustName, string VenderName, string PartNo, string PrintPosition, string Remark) { + Component_Reel_SIDInfoRow rowComponent_Reel_SIDInfoRow = ((Component_Reel_SIDInfoRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + SID, + CustCode, + CustName, + VenderName, + PartNo, + PrintPosition, + Remark}; + rowComponent_Reel_SIDInfoRow.ItemArray = columnValuesArray; + this.Rows.Add(rowComponent_Reel_SIDInfoRow); + return rowComponent_Reel_SIDInfoRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SIDInfoRow FindBySIDCustCodePartNo(string SID, string CustCode, string PartNo) { + return ((Component_Reel_SIDInfoRow)(this.Rows.Find(new object[] { + SID, + CustCode, + PartNo}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + Component_Reel_SIDInfoDataTable cln = ((Component_Reel_SIDInfoDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new Component_Reel_SIDInfoDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnSID = base.Columns["SID"]; + this.columnCustCode = base.Columns["CustCode"]; + this.columnCustName = base.Columns["CustName"]; + this.columnVenderName = base.Columns["VenderName"]; + this.columnPartNo = base.Columns["PartNo"]; + this.columnPrintPosition = base.Columns["PrintPosition"]; + this.columnRemark = base.Columns["Remark"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnSID = new global::System.Data.DataColumn("SID", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSID); + this.columnCustCode = new global::System.Data.DataColumn("CustCode", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCustCode); + this.columnCustName = new global::System.Data.DataColumn("CustName", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCustName); + this.columnVenderName = new global::System.Data.DataColumn("VenderName", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnVenderName); + this.columnPartNo = new global::System.Data.DataColumn("PartNo", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPartNo); + this.columnPrintPosition = new global::System.Data.DataColumn("PrintPosition", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPrintPosition); + this.columnRemark = new global::System.Data.DataColumn("Remark", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnRemark); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnSID, + this.columnCustCode, + this.columnPartNo}, true)); + this.columnSID.AllowDBNull = false; + this.columnSID.MaxLength = 50; + this.columnCustCode.AllowDBNull = false; + this.columnCustCode.MaxLength = 10; + this.columnCustName.MaxLength = 100; + this.columnVenderName.MaxLength = 100; + this.columnPartNo.AllowDBNull = false; + this.columnPartNo.MaxLength = 100; + this.columnPrintPosition.MaxLength = 10; + this.columnRemark.MaxLength = 100; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SIDInfoRow NewComponent_Reel_SIDInfoRow() { + return ((Component_Reel_SIDInfoRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new Component_Reel_SIDInfoRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(Component_Reel_SIDInfoRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.Component_Reel_SIDInfoRowChanged != null)) { + this.Component_Reel_SIDInfoRowChanged(this, new Component_Reel_SIDInfoRowChangeEvent(((Component_Reel_SIDInfoRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.Component_Reel_SIDInfoRowChanging != null)) { + this.Component_Reel_SIDInfoRowChanging(this, new Component_Reel_SIDInfoRowChangeEvent(((Component_Reel_SIDInfoRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.Component_Reel_SIDInfoRowDeleted != null)) { + this.Component_Reel_SIDInfoRowDeleted(this, new Component_Reel_SIDInfoRowChangeEvent(((Component_Reel_SIDInfoRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.Component_Reel_SIDInfoRowDeleting != null)) { + this.Component_Reel_SIDInfoRowDeleting(this, new Component_Reel_SIDInfoRowChangeEvent(((Component_Reel_SIDInfoRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveComponent_Reel_SIDInfoRow(Component_Reel_SIDInfoRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DSList ds = new DSList(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "Component_Reel_SIDInfoDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class Component_Reel_SIDConvDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnidx; + + private global::System.Data.DataColumn columnM101; + + private global::System.Data.DataColumn columnM103; + + private global::System.Data.DataColumn columnM106; + + private global::System.Data.DataColumn columnM108; + + private global::System.Data.DataColumn columnM103_2; + + private global::System.Data.DataColumn columnM101_2; + + private global::System.Data.DataColumn columnChk; + + private global::System.Data.DataColumn columnSIDFrom; + + private global::System.Data.DataColumn columnSIDTo; + + private global::System.Data.DataColumn columnRemark; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SIDConvDataTable() { + this.TableName = "Component_Reel_SIDConv"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal Component_Reel_SIDConvDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected Component_Reel_SIDConvDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn idxColumn { + get { + return this.columnidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn M101Column { + get { + return this.columnM101; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn M103Column { + get { + return this.columnM103; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn M106Column { + get { + return this.columnM106; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn M108Column { + get { + return this.columnM108; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn M103_2Column { + get { + return this.columnM103_2; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn M101_2Column { + get { + return this.columnM101_2; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ChkColumn { + get { + return this.columnChk; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SIDFromColumn { + get { + return this.columnSIDFrom; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SIDToColumn { + get { + return this.columnSIDTo; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn RemarkColumn { + get { + return this.columnRemark; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SIDConvRow this[int index] { + get { + return ((Component_Reel_SIDConvRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_SIDConvRowChangeEventHandler Component_Reel_SIDConvRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_SIDConvRowChangeEventHandler Component_Reel_SIDConvRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_SIDConvRowChangeEventHandler Component_Reel_SIDConvRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_SIDConvRowChangeEventHandler Component_Reel_SIDConvRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddComponent_Reel_SIDConvRow(Component_Reel_SIDConvRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SIDConvRow AddComponent_Reel_SIDConvRow(string M101, string M103, string M106, string M108, string M103_2, string M101_2, bool Chk, string SIDFrom, string SIDTo, string Remark) { + Component_Reel_SIDConvRow rowComponent_Reel_SIDConvRow = ((Component_Reel_SIDConvRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + M101, + M103, + M106, + M108, + M103_2, + M101_2, + Chk, + SIDFrom, + SIDTo, + Remark}; + rowComponent_Reel_SIDConvRow.ItemArray = columnValuesArray; + this.Rows.Add(rowComponent_Reel_SIDConvRow); + return rowComponent_Reel_SIDConvRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SIDConvRow FindByidx(int idx) { + return ((Component_Reel_SIDConvRow)(this.Rows.Find(new object[] { + idx}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + Component_Reel_SIDConvDataTable cln = ((Component_Reel_SIDConvDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new Component_Reel_SIDConvDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnidx = base.Columns["idx"]; + this.columnM101 = base.Columns["M101"]; + this.columnM103 = base.Columns["M103"]; + this.columnM106 = base.Columns["M106"]; + this.columnM108 = base.Columns["M108"]; + this.columnM103_2 = base.Columns["M103_2"]; + this.columnM101_2 = base.Columns["M101_2"]; + this.columnChk = base.Columns["Chk"]; + this.columnSIDFrom = base.Columns["SIDFrom"]; + this.columnSIDTo = base.Columns["SIDTo"]; + this.columnRemark = base.Columns["Remark"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnidx = new global::System.Data.DataColumn("idx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnidx); + this.columnM101 = new global::System.Data.DataColumn("M101", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnM101); + this.columnM103 = new global::System.Data.DataColumn("M103", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnM103); + this.columnM106 = new global::System.Data.DataColumn("M106", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnM106); + this.columnM108 = new global::System.Data.DataColumn("M108", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnM108); + this.columnM103_2 = new global::System.Data.DataColumn("M103_2", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnM103_2); + this.columnM101_2 = new global::System.Data.DataColumn("M101_2", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnM101_2); + this.columnChk = new global::System.Data.DataColumn("Chk", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnChk); + this.columnSIDFrom = new global::System.Data.DataColumn("SIDFrom", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSIDFrom); + this.columnSIDTo = new global::System.Data.DataColumn("SIDTo", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSIDTo); + this.columnRemark = new global::System.Data.DataColumn("Remark", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnRemark); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnidx}, true)); + this.columnidx.AutoIncrement = true; + this.columnidx.AutoIncrementSeed = -1; + this.columnidx.AutoIncrementStep = -1; + this.columnidx.AllowDBNull = false; + this.columnidx.ReadOnly = true; + this.columnidx.Unique = true; + this.columnM101.MaxLength = 20; + this.columnM103.MaxLength = 20; + this.columnM106.MaxLength = 20; + this.columnM108.MaxLength = 20; + this.columnM103_2.MaxLength = 20; + this.columnM101_2.MaxLength = 20; + this.columnSIDFrom.MaxLength = 20; + this.columnSIDTo.MaxLength = 20; + this.columnRemark.MaxLength = 100; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SIDConvRow NewComponent_Reel_SIDConvRow() { + return ((Component_Reel_SIDConvRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new Component_Reel_SIDConvRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(Component_Reel_SIDConvRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.Component_Reel_SIDConvRowChanged != null)) { + this.Component_Reel_SIDConvRowChanged(this, new Component_Reel_SIDConvRowChangeEvent(((Component_Reel_SIDConvRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.Component_Reel_SIDConvRowChanging != null)) { + this.Component_Reel_SIDConvRowChanging(this, new Component_Reel_SIDConvRowChangeEvent(((Component_Reel_SIDConvRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.Component_Reel_SIDConvRowDeleted != null)) { + this.Component_Reel_SIDConvRowDeleted(this, new Component_Reel_SIDConvRowChangeEvent(((Component_Reel_SIDConvRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.Component_Reel_SIDConvRowDeleting != null)) { + this.Component_Reel_SIDConvRowDeleting(this, new Component_Reel_SIDConvRowChangeEvent(((Component_Reel_SIDConvRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveComponent_Reel_SIDConvRow(Component_Reel_SIDConvRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DSList ds = new DSList(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "Component_Reel_SIDConvDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class SupplyDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnTITLE; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public SupplyDataTable() { + this.TableName = "Supply"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal SupplyDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected SupplyDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn TITLEColumn { + get { + return this.columnTITLE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public SupplyRow this[int index] { + get { + return ((SupplyRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event SupplyRowChangeEventHandler SupplyRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event SupplyRowChangeEventHandler SupplyRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event SupplyRowChangeEventHandler SupplyRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event SupplyRowChangeEventHandler SupplyRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddSupplyRow(SupplyRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public SupplyRow AddSupplyRow(string TITLE) { + SupplyRow rowSupplyRow = ((SupplyRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + TITLE}; + rowSupplyRow.ItemArray = columnValuesArray; + this.Rows.Add(rowSupplyRow); + return rowSupplyRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public SupplyRow FindByTITLE(string TITLE) { + return ((SupplyRow)(this.Rows.Find(new object[] { + TITLE}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + SupplyDataTable cln = ((SupplyDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new SupplyDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnTITLE = base.Columns["TITLE"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnTITLE = new global::System.Data.DataColumn("TITLE", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTITLE); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnTITLE}, true)); + this.columnTITLE.AllowDBNull = false; + this.columnTITLE.Unique = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public SupplyRow NewSupplyRow() { + return ((SupplyRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new SupplyRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(SupplyRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.SupplyRowChanged != null)) { + this.SupplyRowChanged(this, new SupplyRowChangeEvent(((SupplyRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.SupplyRowChanging != null)) { + this.SupplyRowChanging(this, new SupplyRowChangeEvent(((SupplyRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.SupplyRowDeleted != null)) { + this.SupplyRowDeleted(this, new SupplyRowChangeEvent(((SupplyRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.SupplyRowDeleting != null)) { + this.SupplyRowDeleting(this, new SupplyRowChangeEvent(((SupplyRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveSupplyRow(SupplyRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DSList ds = new DSList(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "SupplyDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class SIDConvertDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnSID101; + + private global::System.Data.DataColumn columnSID103; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public SIDConvertDataTable() { + this.TableName = "SIDConvert"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal SIDConvertDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected SIDConvertDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SID101Column { + get { + return this.columnSID101; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SID103Column { + get { + return this.columnSID103; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public SIDConvertRow this[int index] { + get { + return ((SIDConvertRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event SIDConvertRowChangeEventHandler SIDConvertRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event SIDConvertRowChangeEventHandler SIDConvertRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event SIDConvertRowChangeEventHandler SIDConvertRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event SIDConvertRowChangeEventHandler SIDConvertRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddSIDConvertRow(SIDConvertRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public SIDConvertRow AddSIDConvertRow(string SID101, string SID103) { + SIDConvertRow rowSIDConvertRow = ((SIDConvertRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + SID101, + SID103}; + rowSIDConvertRow.ItemArray = columnValuesArray; + this.Rows.Add(rowSIDConvertRow); + return rowSIDConvertRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public SIDConvertRow FindBySID101SID103(string SID101, string SID103) { + return ((SIDConvertRow)(this.Rows.Find(new object[] { + SID101, + SID103}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + SIDConvertDataTable cln = ((SIDConvertDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new SIDConvertDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnSID101 = base.Columns["SID101"]; + this.columnSID103 = base.Columns["SID103"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnSID101 = new global::System.Data.DataColumn("SID101", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSID101); + this.columnSID103 = new global::System.Data.DataColumn("SID103", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSID103); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnSID101, + this.columnSID103}, true)); + this.columnSID101.AllowDBNull = false; + this.columnSID103.AllowDBNull = false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public SIDConvertRow NewSIDConvertRow() { + return ((SIDConvertRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new SIDConvertRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(SIDConvertRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.SIDConvertRowChanged != null)) { + this.SIDConvertRowChanged(this, new SIDConvertRowChangeEvent(((SIDConvertRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.SIDConvertRowChanging != null)) { + this.SIDConvertRowChanging(this, new SIDConvertRowChangeEvent(((SIDConvertRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.SIDConvertRowDeleted != null)) { + this.SIDConvertRowDeleted(this, new SIDConvertRowChangeEvent(((SIDConvertRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.SIDConvertRowDeleting != null)) { + this.SIDConvertRowDeleting(this, new SIDConvertRowChangeEvent(((SIDConvertRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveSIDConvertRow(SIDConvertRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DSList ds = new DSList(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "SIDConvertDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class Component_Reel_CustRuleRow : global::System.Data.DataRow { + + private Component_Reel_CustRuleDataTable tableComponent_Reel_CustRule; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal Component_Reel_CustRuleRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableComponent_Reel_CustRule = ((Component_Reel_CustRuleDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string code { + get { + return ((string)(this[this.tableComponent_Reel_CustRule.codeColumn])); + } + set { + this[this.tableComponent_Reel_CustRule.codeColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string pre { + get { + if (this.IspreNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_CustRule.preColumn])); + } + } + set { + this[this.tableComponent_Reel_CustRule.preColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string pos { + get { + if (this.IsposNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_CustRule.posColumn])); + } + } + set { + this[this.tableComponent_Reel_CustRule.posColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int len { + get { + if (this.IslenNull()) { + return 0; + } + else { + return ((int)(this[this.tableComponent_Reel_CustRule.lenColumn])); + } + } + set { + this[this.tableComponent_Reel_CustRule.lenColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string exp { + get { + if (this.IsexpNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_CustRule.expColumn])); + } + } + set { + this[this.tableComponent_Reel_CustRule.expColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IspreNull() { + return this.IsNull(this.tableComponent_Reel_CustRule.preColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetpreNull() { + this[this.tableComponent_Reel_CustRule.preColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsposNull() { + return this.IsNull(this.tableComponent_Reel_CustRule.posColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetposNull() { + this[this.tableComponent_Reel_CustRule.posColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IslenNull() { + return this.IsNull(this.tableComponent_Reel_CustRule.lenColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetlenNull() { + this[this.tableComponent_Reel_CustRule.lenColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsexpNull() { + return this.IsNull(this.tableComponent_Reel_CustRule.expColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetexpNull() { + this[this.tableComponent_Reel_CustRule.expColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class Component_Reel_SIDInfoRow : global::System.Data.DataRow { + + private Component_Reel_SIDInfoDataTable tableComponent_Reel_SIDInfo; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal Component_Reel_SIDInfoRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableComponent_Reel_SIDInfo = ((Component_Reel_SIDInfoDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string SID { + get { + return ((string)(this[this.tableComponent_Reel_SIDInfo.SIDColumn])); + } + set { + this[this.tableComponent_Reel_SIDInfo.SIDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string CustCode { + get { + return ((string)(this[this.tableComponent_Reel_SIDInfo.CustCodeColumn])); + } + set { + this[this.tableComponent_Reel_SIDInfo.CustCodeColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string CustName { + get { + if (this.IsCustNameNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SIDInfo.CustNameColumn])); + } + } + set { + this[this.tableComponent_Reel_SIDInfo.CustNameColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string VenderName { + get { + if (this.IsVenderNameNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SIDInfo.VenderNameColumn])); + } + } + set { + this[this.tableComponent_Reel_SIDInfo.VenderNameColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string PartNo { + get { + return ((string)(this[this.tableComponent_Reel_SIDInfo.PartNoColumn])); + } + set { + this[this.tableComponent_Reel_SIDInfo.PartNoColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string PrintPosition { + get { + if (this.IsPrintPositionNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SIDInfo.PrintPositionColumn])); + } + } + set { + this[this.tableComponent_Reel_SIDInfo.PrintPositionColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Remark { + get { + if (this.IsRemarkNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SIDInfo.RemarkColumn])); + } + } + set { + this[this.tableComponent_Reel_SIDInfo.RemarkColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsCustNameNull() { + return this.IsNull(this.tableComponent_Reel_SIDInfo.CustNameColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetCustNameNull() { + this[this.tableComponent_Reel_SIDInfo.CustNameColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsVenderNameNull() { + return this.IsNull(this.tableComponent_Reel_SIDInfo.VenderNameColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetVenderNameNull() { + this[this.tableComponent_Reel_SIDInfo.VenderNameColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsPrintPositionNull() { + return this.IsNull(this.tableComponent_Reel_SIDInfo.PrintPositionColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetPrintPositionNull() { + this[this.tableComponent_Reel_SIDInfo.PrintPositionColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsRemarkNull() { + return this.IsNull(this.tableComponent_Reel_SIDInfo.RemarkColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetRemarkNull() { + this[this.tableComponent_Reel_SIDInfo.RemarkColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class Component_Reel_SIDConvRow : global::System.Data.DataRow { + + private Component_Reel_SIDConvDataTable tableComponent_Reel_SIDConv; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal Component_Reel_SIDConvRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableComponent_Reel_SIDConv = ((Component_Reel_SIDConvDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int idx { + get { + return ((int)(this[this.tableComponent_Reel_SIDConv.idxColumn])); + } + set { + this[this.tableComponent_Reel_SIDConv.idxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string M101 { + get { + if (this.IsM101Null()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SIDConv.M101Column])); + } + } + set { + this[this.tableComponent_Reel_SIDConv.M101Column] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string M103 { + get { + if (this.IsM103Null()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SIDConv.M103Column])); + } + } + set { + this[this.tableComponent_Reel_SIDConv.M103Column] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string M106 { + get { + if (this.IsM106Null()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SIDConv.M106Column])); + } + } + set { + this[this.tableComponent_Reel_SIDConv.M106Column] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string M108 { + get { + if (this.IsM108Null()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SIDConv.M108Column])); + } + } + set { + this[this.tableComponent_Reel_SIDConv.M108Column] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string M103_2 { + get { + if (this.IsM103_2Null()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SIDConv.M103_2Column])); + } + } + set { + this[this.tableComponent_Reel_SIDConv.M103_2Column] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string M101_2 { + get { + if (this.IsM101_2Null()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SIDConv.M101_2Column])); + } + } + set { + this[this.tableComponent_Reel_SIDConv.M101_2Column] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool Chk { + get { + try { + return ((bool)(this[this.tableComponent_Reel_SIDConv.ChkColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'Component_Reel_SIDConv\' 테이블의 \'Chk\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableComponent_Reel_SIDConv.ChkColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string SIDFrom { + get { + if (this.IsSIDFromNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SIDConv.SIDFromColumn])); + } + } + set { + this[this.tableComponent_Reel_SIDConv.SIDFromColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string SIDTo { + get { + if (this.IsSIDToNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SIDConv.SIDToColumn])); + } + } + set { + this[this.tableComponent_Reel_SIDConv.SIDToColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Remark { + get { + if (this.IsRemarkNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SIDConv.RemarkColumn])); + } + } + set { + this[this.tableComponent_Reel_SIDConv.RemarkColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsM101Null() { + return this.IsNull(this.tableComponent_Reel_SIDConv.M101Column); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetM101Null() { + this[this.tableComponent_Reel_SIDConv.M101Column] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsM103Null() { + return this.IsNull(this.tableComponent_Reel_SIDConv.M103Column); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetM103Null() { + this[this.tableComponent_Reel_SIDConv.M103Column] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsM106Null() { + return this.IsNull(this.tableComponent_Reel_SIDConv.M106Column); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetM106Null() { + this[this.tableComponent_Reel_SIDConv.M106Column] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsM108Null() { + return this.IsNull(this.tableComponent_Reel_SIDConv.M108Column); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetM108Null() { + this[this.tableComponent_Reel_SIDConv.M108Column] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsM103_2Null() { + return this.IsNull(this.tableComponent_Reel_SIDConv.M103_2Column); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetM103_2Null() { + this[this.tableComponent_Reel_SIDConv.M103_2Column] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsM101_2Null() { + return this.IsNull(this.tableComponent_Reel_SIDConv.M101_2Column); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetM101_2Null() { + this[this.tableComponent_Reel_SIDConv.M101_2Column] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsChkNull() { + return this.IsNull(this.tableComponent_Reel_SIDConv.ChkColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetChkNull() { + this[this.tableComponent_Reel_SIDConv.ChkColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsSIDFromNull() { + return this.IsNull(this.tableComponent_Reel_SIDConv.SIDFromColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetSIDFromNull() { + this[this.tableComponent_Reel_SIDConv.SIDFromColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsSIDToNull() { + return this.IsNull(this.tableComponent_Reel_SIDConv.SIDToColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetSIDToNull() { + this[this.tableComponent_Reel_SIDConv.SIDToColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsRemarkNull() { + return this.IsNull(this.tableComponent_Reel_SIDConv.RemarkColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetRemarkNull() { + this[this.tableComponent_Reel_SIDConv.RemarkColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class SupplyRow : global::System.Data.DataRow { + + private SupplyDataTable tableSupply; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal SupplyRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableSupply = ((SupplyDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string TITLE { + get { + return ((string)(this[this.tableSupply.TITLEColumn])); + } + set { + this[this.tableSupply.TITLEColumn] = value; + } + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class SIDConvertRow : global::System.Data.DataRow { + + private SIDConvertDataTable tableSIDConvert; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal SIDConvertRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableSIDConvert = ((SIDConvertDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string SID101 { + get { + return ((string)(this[this.tableSIDConvert.SID101Column])); + } + set { + this[this.tableSIDConvert.SID101Column] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string SID103 { + get { + return ((string)(this[this.tableSIDConvert.SID103Column])); + } + set { + this[this.tableSIDConvert.SID103Column] = value; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class Component_Reel_CustRuleRowChangeEvent : global::System.EventArgs { + + private Component_Reel_CustRuleRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_CustRuleRowChangeEvent(Component_Reel_CustRuleRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_CustRuleRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class Component_Reel_SIDInfoRowChangeEvent : global::System.EventArgs { + + private Component_Reel_SIDInfoRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SIDInfoRowChangeEvent(Component_Reel_SIDInfoRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SIDInfoRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class Component_Reel_SIDConvRowChangeEvent : global::System.EventArgs { + + private Component_Reel_SIDConvRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SIDConvRowChangeEvent(Component_Reel_SIDConvRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SIDConvRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class SupplyRowChangeEvent : global::System.EventArgs { + + private SupplyRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public SupplyRowChangeEvent(SupplyRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public SupplyRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class SIDConvertRowChangeEvent : global::System.EventArgs { + + private SIDConvertRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public SIDConvertRowChangeEvent(SIDConvertRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public SIDConvertRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + } +} +namespace Project.DSListTableAdapters { + + + /// + ///Represents the connection and commands used to retrieve and save data. + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DataObjectAttribute(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + + ", Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public partial class Component_Reel_CustRuleTableAdapter : global::System.ComponentModel.Component { + + private global::System.Data.SqlClient.SqlDataAdapter _adapter; + + private global::System.Data.SqlClient.SqlConnection _connection; + + private global::System.Data.SqlClient.SqlTransaction _transaction; + + private global::System.Data.SqlClient.SqlCommand[] _commandCollection; + + private bool _clearBeforeFill; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_CustRuleTableAdapter() { + this.ClearBeforeFill = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected internal global::System.Data.SqlClient.SqlDataAdapter Adapter { + get { + if ((this._adapter == null)) { + this.InitAdapter(); + } + return this._adapter; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlConnection Connection { + get { + if ((this._connection == null)) { + this.InitConnection(); + } + return this._connection; + } + set { + this._connection = value; + if ((this.Adapter.InsertCommand != null)) { + this.Adapter.InsertCommand.Connection = value; + } + if ((this.Adapter.DeleteCommand != null)) { + this.Adapter.DeleteCommand.Connection = value; + } + if ((this.Adapter.UpdateCommand != null)) { + this.Adapter.UpdateCommand.Connection = value; + } + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + if ((this.CommandCollection[i] != null)) { + ((global::System.Data.SqlClient.SqlCommand)(this.CommandCollection[i])).Connection = value; + } + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlTransaction Transaction { + get { + return this._transaction; + } + set { + this._transaction = value; + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + this.CommandCollection[i].Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.DeleteCommand != null))) { + this.Adapter.DeleteCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.InsertCommand != null))) { + this.Adapter.InsertCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.UpdateCommand != null))) { + this.Adapter.UpdateCommand.Transaction = this._transaction; + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected global::System.Data.SqlClient.SqlCommand[] CommandCollection { + get { + if ((this._commandCollection == null)) { + this.InitCommandCollection(); + } + return this._commandCollection; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool ClearBeforeFill { + get { + return this._clearBeforeFill; + } + set { + this._clearBeforeFill = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitAdapter() { + this._adapter = new global::System.Data.SqlClient.SqlDataAdapter(); + global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); + tableMapping.SourceTable = "Table"; + tableMapping.DataSetTable = "Component_Reel_CustRule"; + tableMapping.ColumnMappings.Add("code", "code"); + tableMapping.ColumnMappings.Add("pre", "pre"); + tableMapping.ColumnMappings.Add("pos", "pos"); + tableMapping.ColumnMappings.Add("len", "len"); + tableMapping.ColumnMappings.Add("exp", "exp"); + this._adapter.TableMappings.Add(tableMapping); + this._adapter.DeleteCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.DeleteCommand.Connection = this.Connection; + this._adapter.DeleteCommand.CommandText = @"DELETE FROM [Component_Reel_CustRule] WHERE (([code] = @Original_code) AND ((@IsNull_pre = 1 AND [pre] IS NULL) OR ([pre] = @Original_pre)) AND ((@IsNull_pos = 1 AND [pos] IS NULL) OR ([pos] = @Original_pos)) AND ((@IsNull_len = 1 AND [len] IS NULL) OR ([len] = @Original_len)) AND ((@IsNull_exp = 1 AND [exp] IS NULL) OR ([exp] = @Original_exp)))"; + this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_code", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "code", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_pre", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pre", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_pre", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pre", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_pos", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pos", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_pos", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pos", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_len", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "len", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_len", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "len", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_exp", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "exp", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_exp", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "exp", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.InsertCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.InsertCommand.Connection = this.Connection; + this._adapter.InsertCommand.CommandText = "INSERT INTO [Component_Reel_CustRule] ([code], [pre], [pos], [len], [exp]) VALUES" + + " (@code, @pre, @pos, @len, @exp);\r\nSELECT code, pre, pos, len, exp FROM Componen" + + "t_Reel_CustRule WHERE (code = @code)"; + this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@code", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "code", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@pre", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pre", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@pos", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pos", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@len", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "len", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@exp", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "exp", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.UpdateCommand.Connection = this.Connection; + this._adapter.UpdateCommand.CommandText = @"UPDATE [Component_Reel_CustRule] SET [code] = @code, [pre] = @pre, [pos] = @pos, [len] = @len, [exp] = @exp WHERE (([code] = @Original_code) AND ((@IsNull_pre = 1 AND [pre] IS NULL) OR ([pre] = @Original_pre)) AND ((@IsNull_pos = 1 AND [pos] IS NULL) OR ([pos] = @Original_pos)) AND ((@IsNull_len = 1 AND [len] IS NULL) OR ([len] = @Original_len)) AND ((@IsNull_exp = 1 AND [exp] IS NULL) OR ([exp] = @Original_exp))); +SELECT code, pre, pos, len, exp FROM Component_Reel_CustRule WHERE (code = @code)"; + this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@code", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "code", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@pre", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pre", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@pos", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pos", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@len", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "len", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@exp", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "exp", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_code", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "code", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_pre", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pre", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_pre", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pre", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_pos", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pos", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_pos", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pos", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_len", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "len", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_len", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "len", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_exp", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "exp", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_exp", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "exp", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitConnection() { + this._connection = new global::System.Data.SqlClient.SqlConnection(); + this._connection.ConnectionString = global::Project.Properties.Settings.Default.CS; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitCommandCollection() { + this._commandCollection = new global::System.Data.SqlClient.SqlCommand[1]; + this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[0].Connection = this.Connection; + this._commandCollection[0].CommandText = "SELECT Component_Reel_CustRule.*\r\nFROM Component_Reel_CustRule"; + this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] + public virtual int Fill(DSList.Component_Reel_CustRuleDataTable dataTable) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] + public virtual DSList.Component_Reel_CustRuleDataTable GetData() { + this.Adapter.SelectCommand = this.CommandCollection[0]; + DSList.Component_Reel_CustRuleDataTable dataTable = new DSList.Component_Reel_CustRuleDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DSList.Component_Reel_CustRuleDataTable dataTable) { + return this.Adapter.Update(dataTable); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DSList dataSet) { + return this.Adapter.Update(dataSet, "Component_Reel_CustRule"); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow dataRow) { + return this.Adapter.Update(new global::System.Data.DataRow[] { + dataRow}); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow[] dataRows) { + return this.Adapter.Update(dataRows); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, true)] + public virtual int Delete(string Original_code, string Original_pre, string Original_pos, global::System.Nullable Original_len, string Original_exp) { + if ((Original_code == null)) { + throw new global::System.ArgumentNullException("Original_code"); + } + else { + this.Adapter.DeleteCommand.Parameters[0].Value = ((string)(Original_code)); + } + if ((Original_pre == null)) { + this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[2].Value = ((string)(Original_pre)); + } + if ((Original_pos == null)) { + this.Adapter.DeleteCommand.Parameters[3].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[3].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[4].Value = ((string)(Original_pos)); + } + if ((Original_len.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[5].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[6].Value = ((int)(Original_len.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[5].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[6].Value = global::System.DBNull.Value; + } + if ((Original_exp == null)) { + this.Adapter.DeleteCommand.Parameters[7].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[8].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[7].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[8].Value = ((string)(Original_exp)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; + if (((this.Adapter.DeleteCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.DeleteCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.DeleteCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.DeleteCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] + public virtual int Insert(string code, string pre, string pos, global::System.Nullable len, string exp) { + if ((code == null)) { + throw new global::System.ArgumentNullException("code"); + } + else { + this.Adapter.InsertCommand.Parameters[0].Value = ((string)(code)); + } + if ((pre == null)) { + this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[1].Value = ((string)(pre)); + } + if ((pos == null)) { + this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[2].Value = ((string)(pos)); + } + if ((len.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[3].Value = ((int)(len.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; + } + if ((exp == null)) { + this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[4].Value = ((string)(exp)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; + if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.InsertCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.InsertCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update(string code, string pre, string pos, global::System.Nullable len, string exp, string Original_code, string Original_pre, string Original_pos, global::System.Nullable Original_len, string Original_exp) { + if ((code == null)) { + throw new global::System.ArgumentNullException("code"); + } + else { + this.Adapter.UpdateCommand.Parameters[0].Value = ((string)(code)); + } + if ((pre == null)) { + this.Adapter.UpdateCommand.Parameters[1].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[1].Value = ((string)(pre)); + } + if ((pos == null)) { + this.Adapter.UpdateCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[2].Value = ((string)(pos)); + } + if ((len.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[3].Value = ((int)(len.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[3].Value = global::System.DBNull.Value; + } + if ((exp == null)) { + this.Adapter.UpdateCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[4].Value = ((string)(exp)); + } + if ((Original_code == null)) { + throw new global::System.ArgumentNullException("Original_code"); + } + else { + this.Adapter.UpdateCommand.Parameters[5].Value = ((string)(Original_code)); + } + if ((Original_pre == null)) { + this.Adapter.UpdateCommand.Parameters[6].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[7].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[6].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[7].Value = ((string)(Original_pre)); + } + if ((Original_pos == null)) { + this.Adapter.UpdateCommand.Parameters[8].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[9].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[8].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[9].Value = ((string)(Original_pos)); + } + if ((Original_len.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[10].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[11].Value = ((int)(Original_len.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[10].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[11].Value = global::System.DBNull.Value; + } + if ((Original_exp == null)) { + this.Adapter.UpdateCommand.Parameters[12].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[13].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[12].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[13].Value = ((string)(Original_exp)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; + if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.UpdateCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.UpdateCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update(string pre, string pos, global::System.Nullable len, string exp, string Original_code, string Original_pre, string Original_pos, global::System.Nullable Original_len, string Original_exp) { + return this.Update(Original_code, pre, pos, len, exp, Original_code, Original_pre, Original_pos, Original_len, Original_exp); + } + } + + /// + ///Represents the connection and commands used to retrieve and save data. + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DataObjectAttribute(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + + ", Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public partial class Component_Reel_SIDInfoTableAdapter : global::System.ComponentModel.Component { + + private global::System.Data.SqlClient.SqlDataAdapter _adapter; + + private global::System.Data.SqlClient.SqlConnection _connection; + + private global::System.Data.SqlClient.SqlTransaction _transaction; + + private global::System.Data.SqlClient.SqlCommand[] _commandCollection; + + private bool _clearBeforeFill; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SIDInfoTableAdapter() { + this.ClearBeforeFill = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected internal global::System.Data.SqlClient.SqlDataAdapter Adapter { + get { + if ((this._adapter == null)) { + this.InitAdapter(); + } + return this._adapter; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlConnection Connection { + get { + if ((this._connection == null)) { + this.InitConnection(); + } + return this._connection; + } + set { + this._connection = value; + if ((this.Adapter.InsertCommand != null)) { + this.Adapter.InsertCommand.Connection = value; + } + if ((this.Adapter.DeleteCommand != null)) { + this.Adapter.DeleteCommand.Connection = value; + } + if ((this.Adapter.UpdateCommand != null)) { + this.Adapter.UpdateCommand.Connection = value; + } + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + if ((this.CommandCollection[i] != null)) { + ((global::System.Data.SqlClient.SqlCommand)(this.CommandCollection[i])).Connection = value; + } + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlTransaction Transaction { + get { + return this._transaction; + } + set { + this._transaction = value; + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + this.CommandCollection[i].Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.DeleteCommand != null))) { + this.Adapter.DeleteCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.InsertCommand != null))) { + this.Adapter.InsertCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.UpdateCommand != null))) { + this.Adapter.UpdateCommand.Transaction = this._transaction; + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected global::System.Data.SqlClient.SqlCommand[] CommandCollection { + get { + if ((this._commandCollection == null)) { + this.InitCommandCollection(); + } + return this._commandCollection; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool ClearBeforeFill { + get { + return this._clearBeforeFill; + } + set { + this._clearBeforeFill = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitAdapter() { + this._adapter = new global::System.Data.SqlClient.SqlDataAdapter(); + global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); + tableMapping.SourceTable = "Table"; + tableMapping.DataSetTable = "Component_Reel_SIDInfo"; + tableMapping.ColumnMappings.Add("SID", "SID"); + tableMapping.ColumnMappings.Add("CustCode", "CustCode"); + tableMapping.ColumnMappings.Add("CustName", "CustName"); + tableMapping.ColumnMappings.Add("VenderName", "VenderName"); + tableMapping.ColumnMappings.Add("PartNo", "PartNo"); + tableMapping.ColumnMappings.Add("PrintPosition", "PrintPosition"); + tableMapping.ColumnMappings.Add("Remark", "Remark"); + this._adapter.TableMappings.Add(tableMapping); + this._adapter.DeleteCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.DeleteCommand.Connection = this.Connection; + this._adapter.DeleteCommand.CommandText = @"DELETE FROM [Component_Reel_SIDInfo] WHERE (([SID] = @Original_SID) AND ([CustCode] = @Original_CustCode) AND ((@IsNull_CustName = 1 AND [CustName] IS NULL) OR ([CustName] = @Original_CustName)) AND ((@IsNull_VenderName = 1 AND [VenderName] IS NULL) OR ([VenderName] = @Original_VenderName)) AND ([PartNo] = @Original_PartNo) AND ((@IsNull_PrintPosition = 1 AND [PrintPosition] IS NULL) OR ([PrintPosition] = @Original_PrintPosition)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)))"; + this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_SID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CustCode", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_CustName", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustName", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CustName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustName", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_VenderName", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderName", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_VenderName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderName", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PartNo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PartNo", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_PrintPosition", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PrintPosition", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PrintPosition", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PrintPosition", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Remark", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.InsertCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.InsertCommand.Connection = this.Connection; + this._adapter.InsertCommand.CommandText = @"INSERT INTO [Component_Reel_SIDInfo] ([SID], [CustCode], [CustName], [VenderName], [PartNo], [PrintPosition], [Remark]) VALUES (@SID, @CustCode, @CustName, @VenderName, @PartNo, @PrintPosition, @Remark); +SELECT SID, CustCode, CustName, VenderName, PartNo, PrintPosition, Remark FROM Component_Reel_SIDInfo WHERE (CustCode = @CustCode) AND (PartNo = @PartNo) AND (SID = @SID)"; + this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CustCode", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CustName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustName", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@VenderName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderName", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PartNo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PartNo", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PrintPosition", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PrintPosition", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.UpdateCommand.Connection = this.Connection; + this._adapter.UpdateCommand.CommandText = @"UPDATE [Component_Reel_SIDInfo] SET [SID] = @SID, [CustCode] = @CustCode, [CustName] = @CustName, [VenderName] = @VenderName, [PartNo] = @PartNo, [PrintPosition] = @PrintPosition, [Remark] = @Remark WHERE (([SID] = @Original_SID) AND ([CustCode] = @Original_CustCode) AND ((@IsNull_CustName = 1 AND [CustName] IS NULL) OR ([CustName] = @Original_CustName)) AND ((@IsNull_VenderName = 1 AND [VenderName] IS NULL) OR ([VenderName] = @Original_VenderName)) AND ([PartNo] = @Original_PartNo) AND ((@IsNull_PrintPosition = 1 AND [PrintPosition] IS NULL) OR ([PrintPosition] = @Original_PrintPosition)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark))); +SELECT SID, CustCode, CustName, VenderName, PartNo, PrintPosition, Remark FROM Component_Reel_SIDInfo WHERE (CustCode = @CustCode) AND (PartNo = @PartNo) AND (SID = @SID)"; + this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CustCode", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CustName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustName", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@VenderName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderName", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PartNo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PartNo", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PrintPosition", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PrintPosition", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_SID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CustCode", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_CustName", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustName", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CustName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustName", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_VenderName", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderName", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_VenderName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderName", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PartNo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PartNo", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_PrintPosition", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PrintPosition", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PrintPosition", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PrintPosition", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Remark", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitConnection() { + this._connection = new global::System.Data.SqlClient.SqlConnection(); + this._connection.ConnectionString = global::Project.Properties.Settings.Default.CS; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitCommandCollection() { + this._commandCollection = new global::System.Data.SqlClient.SqlCommand[1]; + this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[0].Connection = this.Connection; + this._commandCollection[0].CommandText = "SELECT SID, CustCode, CustName, VenderName, PartNo, PrintPosition, Remark\r\nFROM " + + " Component_Reel_SIDInfo\r\nWHERE (SID = @sid) AND (CustCode = @custcode) AND (" + + "PartNo = @partno)"; + this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[0].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@sid", global::System.Data.SqlDbType.VarChar, 50, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[0].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@custcode", global::System.Data.SqlDbType.VarChar, 10, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[0].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@partno", global::System.Data.SqlDbType.VarChar, 100, global::System.Data.ParameterDirection.Input, 0, 0, "PartNo", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] + public virtual int Fill(DSList.Component_Reel_SIDInfoDataTable dataTable, string sid, string custcode, string partno) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((sid == null)) { + throw new global::System.ArgumentNullException("sid"); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(sid)); + } + if ((custcode == null)) { + throw new global::System.ArgumentNullException("custcode"); + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(custcode)); + } + if ((partno == null)) { + throw new global::System.ArgumentNullException("partno"); + } + else { + this.Adapter.SelectCommand.Parameters[2].Value = ((string)(partno)); + } + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] + public virtual DSList.Component_Reel_SIDInfoDataTable GetData(string sid, string custcode, string partno) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((sid == null)) { + throw new global::System.ArgumentNullException("sid"); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(sid)); + } + if ((custcode == null)) { + throw new global::System.ArgumentNullException("custcode"); + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(custcode)); + } + if ((partno == null)) { + throw new global::System.ArgumentNullException("partno"); + } + else { + this.Adapter.SelectCommand.Parameters[2].Value = ((string)(partno)); + } + DSList.Component_Reel_SIDInfoDataTable dataTable = new DSList.Component_Reel_SIDInfoDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DSList.Component_Reel_SIDInfoDataTable dataTable) { + return this.Adapter.Update(dataTable); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DSList dataSet) { + return this.Adapter.Update(dataSet, "Component_Reel_SIDInfo"); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow dataRow) { + return this.Adapter.Update(new global::System.Data.DataRow[] { + dataRow}); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow[] dataRows) { + return this.Adapter.Update(dataRows); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, true)] + public virtual int Delete(string Original_SID, string Original_CustCode, string Original_CustName, string Original_VenderName, string Original_PartNo, string Original_PrintPosition, string Original_Remark) { + if ((Original_SID == null)) { + throw new global::System.ArgumentNullException("Original_SID"); + } + else { + this.Adapter.DeleteCommand.Parameters[0].Value = ((string)(Original_SID)); + } + if ((Original_CustCode == null)) { + throw new global::System.ArgumentNullException("Original_CustCode"); + } + else { + this.Adapter.DeleteCommand.Parameters[1].Value = ((string)(Original_CustCode)); + } + if ((Original_CustName == null)) { + this.Adapter.DeleteCommand.Parameters[2].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[3].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[2].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[3].Value = ((string)(Original_CustName)); + } + if ((Original_VenderName == null)) { + this.Adapter.DeleteCommand.Parameters[4].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[5].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[4].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[5].Value = ((string)(Original_VenderName)); + } + if ((Original_PartNo == null)) { + throw new global::System.ArgumentNullException("Original_PartNo"); + } + else { + this.Adapter.DeleteCommand.Parameters[6].Value = ((string)(Original_PartNo)); + } + if ((Original_PrintPosition == null)) { + this.Adapter.DeleteCommand.Parameters[7].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[8].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[7].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[8].Value = ((string)(Original_PrintPosition)); + } + if ((Original_Remark == null)) { + this.Adapter.DeleteCommand.Parameters[9].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[10].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[9].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[10].Value = ((string)(Original_Remark)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; + if (((this.Adapter.DeleteCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.DeleteCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.DeleteCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.DeleteCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] + public virtual int Insert(string SID, string CustCode, string CustName, string VenderName, string PartNo, string PrintPosition, string Remark) { + if ((SID == null)) { + throw new global::System.ArgumentNullException("SID"); + } + else { + this.Adapter.InsertCommand.Parameters[0].Value = ((string)(SID)); + } + if ((CustCode == null)) { + throw new global::System.ArgumentNullException("CustCode"); + } + else { + this.Adapter.InsertCommand.Parameters[1].Value = ((string)(CustCode)); + } + if ((CustName == null)) { + this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[2].Value = ((string)(CustName)); + } + if ((VenderName == null)) { + this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[3].Value = ((string)(VenderName)); + } + if ((PartNo == null)) { + throw new global::System.ArgumentNullException("PartNo"); + } + else { + this.Adapter.InsertCommand.Parameters[4].Value = ((string)(PartNo)); + } + if ((PrintPosition == null)) { + this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[5].Value = ((string)(PrintPosition)); + } + if ((Remark == null)) { + this.Adapter.InsertCommand.Parameters[6].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[6].Value = ((string)(Remark)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; + if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.InsertCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.InsertCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update(string SID, string CustCode, string CustName, string VenderName, string PartNo, string PrintPosition, string Remark, string Original_SID, string Original_CustCode, string Original_CustName, string Original_VenderName, string Original_PartNo, string Original_PrintPosition, string Original_Remark) { + if ((SID == null)) { + throw new global::System.ArgumentNullException("SID"); + } + else { + this.Adapter.UpdateCommand.Parameters[0].Value = ((string)(SID)); + } + if ((CustCode == null)) { + throw new global::System.ArgumentNullException("CustCode"); + } + else { + this.Adapter.UpdateCommand.Parameters[1].Value = ((string)(CustCode)); + } + if ((CustName == null)) { + this.Adapter.UpdateCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[2].Value = ((string)(CustName)); + } + if ((VenderName == null)) { + this.Adapter.UpdateCommand.Parameters[3].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[3].Value = ((string)(VenderName)); + } + if ((PartNo == null)) { + throw new global::System.ArgumentNullException("PartNo"); + } + else { + this.Adapter.UpdateCommand.Parameters[4].Value = ((string)(PartNo)); + } + if ((PrintPosition == null)) { + this.Adapter.UpdateCommand.Parameters[5].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[5].Value = ((string)(PrintPosition)); + } + if ((Remark == null)) { + this.Adapter.UpdateCommand.Parameters[6].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[6].Value = ((string)(Remark)); + } + if ((Original_SID == null)) { + throw new global::System.ArgumentNullException("Original_SID"); + } + else { + this.Adapter.UpdateCommand.Parameters[7].Value = ((string)(Original_SID)); + } + if ((Original_CustCode == null)) { + throw new global::System.ArgumentNullException("Original_CustCode"); + } + else { + this.Adapter.UpdateCommand.Parameters[8].Value = ((string)(Original_CustCode)); + } + if ((Original_CustName == null)) { + this.Adapter.UpdateCommand.Parameters[9].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[10].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[9].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[10].Value = ((string)(Original_CustName)); + } + if ((Original_VenderName == null)) { + this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[12].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[12].Value = ((string)(Original_VenderName)); + } + if ((Original_PartNo == null)) { + throw new global::System.ArgumentNullException("Original_PartNo"); + } + else { + this.Adapter.UpdateCommand.Parameters[13].Value = ((string)(Original_PartNo)); + } + if ((Original_PrintPosition == null)) { + this.Adapter.UpdateCommand.Parameters[14].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[15].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[14].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[15].Value = ((string)(Original_PrintPosition)); + } + if ((Original_Remark == null)) { + this.Adapter.UpdateCommand.Parameters[16].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[17].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[16].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[17].Value = ((string)(Original_Remark)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; + if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.UpdateCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.UpdateCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update(string CustName, string VenderName, string PrintPosition, string Remark, string Original_SID, string Original_CustCode, string Original_CustName, string Original_VenderName, string Original_PartNo, string Original_PrintPosition, string Original_Remark) { + return this.Update(Original_SID, Original_CustCode, CustName, VenderName, Original_PartNo, PrintPosition, Remark, Original_SID, Original_CustCode, Original_CustName, Original_VenderName, Original_PartNo, Original_PrintPosition, Original_Remark); + } + } + + /// + ///Represents the connection and commands used to retrieve and save data. + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DataObjectAttribute(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + + ", Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public partial class Component_Reel_SIDConvTableAdapter : global::System.ComponentModel.Component { + + private global::System.Data.SqlClient.SqlDataAdapter _adapter; + + private global::System.Data.SqlClient.SqlConnection _connection; + + private global::System.Data.SqlClient.SqlTransaction _transaction; + + private global::System.Data.SqlClient.SqlCommand[] _commandCollection; + + private bool _clearBeforeFill; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SIDConvTableAdapter() { + this.ClearBeforeFill = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected internal global::System.Data.SqlClient.SqlDataAdapter Adapter { + get { + if ((this._adapter == null)) { + this.InitAdapter(); + } + return this._adapter; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlConnection Connection { + get { + if ((this._connection == null)) { + this.InitConnection(); + } + return this._connection; + } + set { + this._connection = value; + if ((this.Adapter.InsertCommand != null)) { + this.Adapter.InsertCommand.Connection = value; + } + if ((this.Adapter.DeleteCommand != null)) { + this.Adapter.DeleteCommand.Connection = value; + } + if ((this.Adapter.UpdateCommand != null)) { + this.Adapter.UpdateCommand.Connection = value; + } + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + if ((this.CommandCollection[i] != null)) { + ((global::System.Data.SqlClient.SqlCommand)(this.CommandCollection[i])).Connection = value; + } + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlTransaction Transaction { + get { + return this._transaction; + } + set { + this._transaction = value; + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + this.CommandCollection[i].Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.DeleteCommand != null))) { + this.Adapter.DeleteCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.InsertCommand != null))) { + this.Adapter.InsertCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.UpdateCommand != null))) { + this.Adapter.UpdateCommand.Transaction = this._transaction; + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected global::System.Data.SqlClient.SqlCommand[] CommandCollection { + get { + if ((this._commandCollection == null)) { + this.InitCommandCollection(); + } + return this._commandCollection; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool ClearBeforeFill { + get { + return this._clearBeforeFill; + } + set { + this._clearBeforeFill = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitAdapter() { + this._adapter = new global::System.Data.SqlClient.SqlDataAdapter(); + global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); + tableMapping.SourceTable = "Table"; + tableMapping.DataSetTable = "Component_Reel_SIDConv"; + tableMapping.ColumnMappings.Add("idx", "idx"); + tableMapping.ColumnMappings.Add("M101", "M101"); + tableMapping.ColumnMappings.Add("M103", "M103"); + tableMapping.ColumnMappings.Add("M106", "M106"); + tableMapping.ColumnMappings.Add("M108", "M108"); + tableMapping.ColumnMappings.Add("M103_2", "M103_2"); + tableMapping.ColumnMappings.Add("M101_2", "M101_2"); + tableMapping.ColumnMappings.Add("Chk", "Chk"); + tableMapping.ColumnMappings.Add("SIDFrom", "SIDFrom"); + tableMapping.ColumnMappings.Add("SIDTo", "SIDTo"); + tableMapping.ColumnMappings.Add("Remark", "Remark"); + this._adapter.TableMappings.Add(tableMapping); + this._adapter.DeleteCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.DeleteCommand.Connection = this.Connection; + this._adapter.DeleteCommand.CommandText = @"DELETE FROM [Component_Reel_SIDConv] WHERE (([idx] = @Original_idx) AND ((@IsNull_M101 = 1 AND [M101] IS NULL) OR ([M101] = @Original_M101)) AND ((@IsNull_M103 = 1 AND [M103] IS NULL) OR ([M103] = @Original_M103)) AND ((@IsNull_M106 = 1 AND [M106] IS NULL) OR ([M106] = @Original_M106)) AND ((@IsNull_M108 = 1 AND [M108] IS NULL) OR ([M108] = @Original_M108)) AND ((@IsNull_M103_2 = 1 AND [M103_2] IS NULL) OR ([M103_2] = @Original_M103_2)) AND ((@IsNull_M101_2 = 1 AND [M101_2] IS NULL) OR ([M101_2] = @Original_M101_2)) AND ((@IsNull_Chk = 1 AND [Chk] IS NULL) OR ([Chk] = @Original_Chk)) AND ((@IsNull_SIDFrom = 1 AND [SIDFrom] IS NULL) OR ([SIDFrom] = @Original_SIDFrom)) AND ((@IsNull_SIDTo = 1 AND [SIDTo] IS NULL) OR ([SIDTo] = @Original_SIDTo)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)))"; + this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_idx", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_M101", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M101", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_M101", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M101", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_M103", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M103", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_M103", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M103", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_M106", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M106", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_M106", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M106", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_M108", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M108", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_M108", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M108", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_M103_2", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M103_2", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_M103_2", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M103_2", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_M101_2", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M101_2", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_M101_2", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M101_2", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Chk", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Chk", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Chk", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Chk", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_SIDFrom", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDFrom", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_SIDFrom", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDFrom", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_SIDTo", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDTo", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_SIDTo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDTo", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Remark", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.InsertCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.InsertCommand.Connection = this.Connection; + this._adapter.InsertCommand.CommandText = @"INSERT INTO [Component_Reel_SIDConv] ([M101], [M103], [M106], [M108], [M103_2], [M101_2], [Chk], [SIDFrom], [SIDTo], [Remark]) VALUES (@M101, @M103, @M106, @M108, @M103_2, @M101_2, @Chk, @SIDFrom, @SIDTo, @Remark); +SELECT idx, M101, M103, M106, M108, M103_2, M101_2, Chk, SIDFrom, SIDTo, Remark FROM Component_Reel_SIDConv WHERE (idx = SCOPE_IDENTITY())"; + this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@M101", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M101", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@M103", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M103", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@M106", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M106", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@M108", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M108", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@M103_2", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M103_2", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@M101_2", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M101_2", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Chk", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Chk", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SIDFrom", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDFrom", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SIDTo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDTo", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.UpdateCommand.Connection = this.Connection; + this._adapter.UpdateCommand.CommandText = @"UPDATE [Component_Reel_SIDConv] SET [M101] = @M101, [M103] = @M103, [M106] = @M106, [M108] = @M108, [M103_2] = @M103_2, [M101_2] = @M101_2, [Chk] = @Chk, [SIDFrom] = @SIDFrom, [SIDTo] = @SIDTo, [Remark] = @Remark WHERE (([idx] = @Original_idx) AND ((@IsNull_M101 = 1 AND [M101] IS NULL) OR ([M101] = @Original_M101)) AND ((@IsNull_M103 = 1 AND [M103] IS NULL) OR ([M103] = @Original_M103)) AND ((@IsNull_M106 = 1 AND [M106] IS NULL) OR ([M106] = @Original_M106)) AND ((@IsNull_M108 = 1 AND [M108] IS NULL) OR ([M108] = @Original_M108)) AND ((@IsNull_M103_2 = 1 AND [M103_2] IS NULL) OR ([M103_2] = @Original_M103_2)) AND ((@IsNull_M101_2 = 1 AND [M101_2] IS NULL) OR ([M101_2] = @Original_M101_2)) AND ((@IsNull_Chk = 1 AND [Chk] IS NULL) OR ([Chk] = @Original_Chk)) AND ((@IsNull_SIDFrom = 1 AND [SIDFrom] IS NULL) OR ([SIDFrom] = @Original_SIDFrom)) AND ((@IsNull_SIDTo = 1 AND [SIDTo] IS NULL) OR ([SIDTo] = @Original_SIDTo)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark))); +SELECT idx, M101, M103, M106, M108, M103_2, M101_2, Chk, SIDFrom, SIDTo, Remark FROM Component_Reel_SIDConv WHERE (idx = @idx)"; + this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@M101", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M101", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@M103", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M103", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@M106", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M106", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@M108", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M108", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@M103_2", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M103_2", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@M101_2", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M101_2", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Chk", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Chk", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SIDFrom", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDFrom", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SIDTo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDTo", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_idx", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_M101", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M101", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_M101", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M101", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_M103", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M103", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_M103", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M103", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_M106", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M106", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_M106", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M106", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_M108", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M108", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_M108", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M108", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_M103_2", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M103_2", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_M103_2", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M103_2", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_M101_2", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M101_2", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_M101_2", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M101_2", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Chk", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Chk", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Chk", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Chk", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_SIDFrom", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDFrom", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_SIDFrom", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDFrom", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_SIDTo", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDTo", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_SIDTo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDTo", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Remark", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@idx", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitConnection() { + this._connection = new global::System.Data.SqlClient.SqlConnection(); + this._connection.ConnectionString = global::Project.Properties.Settings.Default.CS; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitCommandCollection() { + this._commandCollection = new global::System.Data.SqlClient.SqlCommand[1]; + this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[0].Connection = this.Connection; + this._commandCollection[0].CommandText = "SELECT idx, M101, M103, M106, M108, M103_2, M101_2, Chk, SIDFrom, SIDTo, Remark\r" + + "\nFROM Component_Reel_SIDConv\r\nWHERE (SIDFrom = @sidfrom) AND (SIDTo = @sidt" + + "o)"; + this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[0].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@sidfrom", global::System.Data.SqlDbType.VarChar, 20, global::System.Data.ParameterDirection.Input, 0, 0, "SIDFrom", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[0].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@sidto", global::System.Data.SqlDbType.VarChar, 20, global::System.Data.ParameterDirection.Input, 0, 0, "SIDTo", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] + public virtual int Fill(DSList.Component_Reel_SIDConvDataTable dataTable, string sidfrom, string sidto) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((sidfrom == null)) { + this.Adapter.SelectCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(sidfrom)); + } + if ((sidto == null)) { + this.Adapter.SelectCommand.Parameters[1].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(sidto)); + } + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] + public virtual DSList.Component_Reel_SIDConvDataTable GetData(string sidfrom, string sidto) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((sidfrom == null)) { + this.Adapter.SelectCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(sidfrom)); + } + if ((sidto == null)) { + this.Adapter.SelectCommand.Parameters[1].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(sidto)); + } + DSList.Component_Reel_SIDConvDataTable dataTable = new DSList.Component_Reel_SIDConvDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DSList.Component_Reel_SIDConvDataTable dataTable) { + return this.Adapter.Update(dataTable); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DSList dataSet) { + return this.Adapter.Update(dataSet, "Component_Reel_SIDConv"); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow dataRow) { + return this.Adapter.Update(new global::System.Data.DataRow[] { + dataRow}); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow[] dataRows) { + return this.Adapter.Update(dataRows); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, true)] + public virtual int Delete(int Original_idx, string Original_M101, string Original_M103, string Original_M106, string Original_M108, string Original_M103_2, string Original_M101_2, global::System.Nullable Original_Chk, string Original_SIDFrom, string Original_SIDTo, string Original_Remark) { + this.Adapter.DeleteCommand.Parameters[0].Value = ((int)(Original_idx)); + if ((Original_M101 == null)) { + this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[2].Value = ((string)(Original_M101)); + } + if ((Original_M103 == null)) { + this.Adapter.DeleteCommand.Parameters[3].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[3].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[4].Value = ((string)(Original_M103)); + } + if ((Original_M106 == null)) { + this.Adapter.DeleteCommand.Parameters[5].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[6].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[5].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[6].Value = ((string)(Original_M106)); + } + if ((Original_M108 == null)) { + this.Adapter.DeleteCommand.Parameters[7].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[8].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[7].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[8].Value = ((string)(Original_M108)); + } + if ((Original_M103_2 == null)) { + this.Adapter.DeleteCommand.Parameters[9].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[10].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[9].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[10].Value = ((string)(Original_M103_2)); + } + if ((Original_M101_2 == null)) { + this.Adapter.DeleteCommand.Parameters[11].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[12].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[11].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[12].Value = ((string)(Original_M101_2)); + } + if ((Original_Chk.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[13].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[14].Value = ((bool)(Original_Chk.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[13].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[14].Value = global::System.DBNull.Value; + } + if ((Original_SIDFrom == null)) { + this.Adapter.DeleteCommand.Parameters[15].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[16].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[15].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[16].Value = ((string)(Original_SIDFrom)); + } + if ((Original_SIDTo == null)) { + this.Adapter.DeleteCommand.Parameters[17].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[18].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[17].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[18].Value = ((string)(Original_SIDTo)); + } + if ((Original_Remark == null)) { + this.Adapter.DeleteCommand.Parameters[19].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[20].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[19].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[20].Value = ((string)(Original_Remark)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; + if (((this.Adapter.DeleteCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.DeleteCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.DeleteCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.DeleteCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] + public virtual int Insert(string M101, string M103, string M106, string M108, string M103_2, string M101_2, global::System.Nullable Chk, string SIDFrom, string SIDTo, string Remark) { + if ((M101 == null)) { + this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[0].Value = ((string)(M101)); + } + if ((M103 == null)) { + this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[1].Value = ((string)(M103)); + } + if ((M106 == null)) { + this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[2].Value = ((string)(M106)); + } + if ((M108 == null)) { + this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[3].Value = ((string)(M108)); + } + if ((M103_2 == null)) { + this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[4].Value = ((string)(M103_2)); + } + if ((M101_2 == null)) { + this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[5].Value = ((string)(M101_2)); + } + if ((Chk.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[6].Value = ((bool)(Chk.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[6].Value = global::System.DBNull.Value; + } + if ((SIDFrom == null)) { + this.Adapter.InsertCommand.Parameters[7].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[7].Value = ((string)(SIDFrom)); + } + if ((SIDTo == null)) { + this.Adapter.InsertCommand.Parameters[8].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[8].Value = ((string)(SIDTo)); + } + if ((Remark == null)) { + this.Adapter.InsertCommand.Parameters[9].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[9].Value = ((string)(Remark)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; + if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.InsertCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.InsertCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update( + string M101, + string M103, + string M106, + string M108, + string M103_2, + string M101_2, + global::System.Nullable Chk, + string SIDFrom, + string SIDTo, + string Remark, + int Original_idx, + string Original_M101, + string Original_M103, + string Original_M106, + string Original_M108, + string Original_M103_2, + string Original_M101_2, + global::System.Nullable Original_Chk, + string Original_SIDFrom, + string Original_SIDTo, + string Original_Remark, + int idx) { + if ((M101 == null)) { + this.Adapter.UpdateCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[0].Value = ((string)(M101)); + } + if ((M103 == null)) { + this.Adapter.UpdateCommand.Parameters[1].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[1].Value = ((string)(M103)); + } + if ((M106 == null)) { + this.Adapter.UpdateCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[2].Value = ((string)(M106)); + } + if ((M108 == null)) { + this.Adapter.UpdateCommand.Parameters[3].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[3].Value = ((string)(M108)); + } + if ((M103_2 == null)) { + this.Adapter.UpdateCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[4].Value = ((string)(M103_2)); + } + if ((M101_2 == null)) { + this.Adapter.UpdateCommand.Parameters[5].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[5].Value = ((string)(M101_2)); + } + if ((Chk.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[6].Value = ((bool)(Chk.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[6].Value = global::System.DBNull.Value; + } + if ((SIDFrom == null)) { + this.Adapter.UpdateCommand.Parameters[7].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[7].Value = ((string)(SIDFrom)); + } + if ((SIDTo == null)) { + this.Adapter.UpdateCommand.Parameters[8].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[8].Value = ((string)(SIDTo)); + } + if ((Remark == null)) { + this.Adapter.UpdateCommand.Parameters[9].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[9].Value = ((string)(Remark)); + } + this.Adapter.UpdateCommand.Parameters[10].Value = ((int)(Original_idx)); + if ((Original_M101 == null)) { + this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[12].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[12].Value = ((string)(Original_M101)); + } + if ((Original_M103 == null)) { + this.Adapter.UpdateCommand.Parameters[13].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[14].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[13].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[14].Value = ((string)(Original_M103)); + } + if ((Original_M106 == null)) { + this.Adapter.UpdateCommand.Parameters[15].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[16].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[15].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[16].Value = ((string)(Original_M106)); + } + if ((Original_M108 == null)) { + this.Adapter.UpdateCommand.Parameters[17].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[18].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[17].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[18].Value = ((string)(Original_M108)); + } + if ((Original_M103_2 == null)) { + this.Adapter.UpdateCommand.Parameters[19].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[20].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[19].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[20].Value = ((string)(Original_M103_2)); + } + if ((Original_M101_2 == null)) { + this.Adapter.UpdateCommand.Parameters[21].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[22].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[21].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[22].Value = ((string)(Original_M101_2)); + } + if ((Original_Chk.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[23].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[24].Value = ((bool)(Original_Chk.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[23].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[24].Value = global::System.DBNull.Value; + } + if ((Original_SIDFrom == null)) { + this.Adapter.UpdateCommand.Parameters[25].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[26].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[25].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[26].Value = ((string)(Original_SIDFrom)); + } + if ((Original_SIDTo == null)) { + this.Adapter.UpdateCommand.Parameters[27].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[28].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[27].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[28].Value = ((string)(Original_SIDTo)); + } + if ((Original_Remark == null)) { + this.Adapter.UpdateCommand.Parameters[29].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[30].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[29].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[30].Value = ((string)(Original_Remark)); + } + this.Adapter.UpdateCommand.Parameters[31].Value = ((int)(idx)); + global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; + if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.UpdateCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.UpdateCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update( + string M101, + string M103, + string M106, + string M108, + string M103_2, + string M101_2, + global::System.Nullable Chk, + string SIDFrom, + string SIDTo, + string Remark, + int Original_idx, + string Original_M101, + string Original_M103, + string Original_M106, + string Original_M108, + string Original_M103_2, + string Original_M101_2, + global::System.Nullable Original_Chk, + string Original_SIDFrom, + string Original_SIDTo, + string Original_Remark) { + return this.Update(M101, M103, M106, M108, M103_2, M101_2, Chk, SIDFrom, SIDTo, Remark, Original_idx, Original_M101, Original_M103, Original_M106, Original_M108, Original_M103_2, Original_M101_2, Original_Chk, Original_SIDFrom, Original_SIDTo, Original_Remark, Original_idx); + } + } + + /// + ///TableAdapterManager is used to coordinate TableAdapters in the dataset to enable Hierarchical Update scenarios + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterManagerDesigner, Microsoft.VSD" + + "esigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapterManager")] + public partial class TableAdapterManager : global::System.ComponentModel.Component { + + private UpdateOrderOption _updateOrder; + + private Component_Reel_CustRuleTableAdapter _component_Reel_CustRuleTableAdapter; + + private Component_Reel_SIDInfoTableAdapter _component_Reel_SIDInfoTableAdapter; + + private Component_Reel_SIDConvTableAdapter _component_Reel_SIDConvTableAdapter; + + private bool _backupDataSetBeforeUpdate; + + private global::System.Data.IDbConnection _connection; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public UpdateOrderOption UpdateOrder { + get { + return this._updateOrder; + } + set { + this._updateOrder = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.EditorAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterManagerPropertyEditor, Microso" + + "ft.VSDesigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3" + + "a", "System.Drawing.Design.UITypeEditor")] + public Component_Reel_CustRuleTableAdapter Component_Reel_CustRuleTableAdapter { + get { + return this._component_Reel_CustRuleTableAdapter; + } + set { + this._component_Reel_CustRuleTableAdapter = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.EditorAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterManagerPropertyEditor, Microso" + + "ft.VSDesigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3" + + "a", "System.Drawing.Design.UITypeEditor")] + public Component_Reel_SIDInfoTableAdapter Component_Reel_SIDInfoTableAdapter { + get { + return this._component_Reel_SIDInfoTableAdapter; + } + set { + this._component_Reel_SIDInfoTableAdapter = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.EditorAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterManagerPropertyEditor, Microso" + + "ft.VSDesigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3" + + "a", "System.Drawing.Design.UITypeEditor")] + public Component_Reel_SIDConvTableAdapter Component_Reel_SIDConvTableAdapter { + get { + return this._component_Reel_SIDConvTableAdapter; + } + set { + this._component_Reel_SIDConvTableAdapter = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool BackupDataSetBeforeUpdate { + get { + return this._backupDataSetBeforeUpdate; + } + set { + this._backupDataSetBeforeUpdate = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public global::System.Data.IDbConnection Connection { + get { + if ((this._connection != null)) { + return this._connection; + } + if (((this._component_Reel_CustRuleTableAdapter != null) + && (this._component_Reel_CustRuleTableAdapter.Connection != null))) { + return this._component_Reel_CustRuleTableAdapter.Connection; + } + if (((this._component_Reel_SIDInfoTableAdapter != null) + && (this._component_Reel_SIDInfoTableAdapter.Connection != null))) { + return this._component_Reel_SIDInfoTableAdapter.Connection; + } + if (((this._component_Reel_SIDConvTableAdapter != null) + && (this._component_Reel_SIDConvTableAdapter.Connection != null))) { + return this._component_Reel_SIDConvTableAdapter.Connection; + } + return null; + } + set { + this._connection = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int TableAdapterInstanceCount { + get { + int count = 0; + if ((this._component_Reel_CustRuleTableAdapter != null)) { + count = (count + 1); + } + if ((this._component_Reel_SIDInfoTableAdapter != null)) { + count = (count + 1); + } + if ((this._component_Reel_SIDConvTableAdapter != null)) { + count = (count + 1); + } + return count; + } + } + + /// + ///Update rows in top-down order. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private int UpdateUpdatedRows(DSList dataSet, global::System.Collections.Generic.List allChangedRows, global::System.Collections.Generic.List allAddedRows) { + int result = 0; + if ((this._component_Reel_CustRuleTableAdapter != null)) { + global::System.Data.DataRow[] updatedRows = dataSet.Component_Reel_CustRule.Select(null, null, global::System.Data.DataViewRowState.ModifiedCurrent); + updatedRows = this.GetRealUpdatedRows(updatedRows, allAddedRows); + if (((updatedRows != null) + && (0 < updatedRows.Length))) { + result = (result + this._component_Reel_CustRuleTableAdapter.Update(updatedRows)); + allChangedRows.AddRange(updatedRows); + } + } + if ((this._component_Reel_SIDInfoTableAdapter != null)) { + global::System.Data.DataRow[] updatedRows = dataSet.Component_Reel_SIDInfo.Select(null, null, global::System.Data.DataViewRowState.ModifiedCurrent); + updatedRows = this.GetRealUpdatedRows(updatedRows, allAddedRows); + if (((updatedRows != null) + && (0 < updatedRows.Length))) { + result = (result + this._component_Reel_SIDInfoTableAdapter.Update(updatedRows)); + allChangedRows.AddRange(updatedRows); + } + } + if ((this._component_Reel_SIDConvTableAdapter != null)) { + global::System.Data.DataRow[] updatedRows = dataSet.Component_Reel_SIDConv.Select(null, null, global::System.Data.DataViewRowState.ModifiedCurrent); + updatedRows = this.GetRealUpdatedRows(updatedRows, allAddedRows); + if (((updatedRows != null) + && (0 < updatedRows.Length))) { + result = (result + this._component_Reel_SIDConvTableAdapter.Update(updatedRows)); + allChangedRows.AddRange(updatedRows); + } + } + return result; + } + + /// + ///Insert rows in top-down order. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private int UpdateInsertedRows(DSList dataSet, global::System.Collections.Generic.List allAddedRows) { + int result = 0; + if ((this._component_Reel_CustRuleTableAdapter != null)) { + global::System.Data.DataRow[] addedRows = dataSet.Component_Reel_CustRule.Select(null, null, global::System.Data.DataViewRowState.Added); + if (((addedRows != null) + && (0 < addedRows.Length))) { + result = (result + this._component_Reel_CustRuleTableAdapter.Update(addedRows)); + allAddedRows.AddRange(addedRows); + } + } + if ((this._component_Reel_SIDInfoTableAdapter != null)) { + global::System.Data.DataRow[] addedRows = dataSet.Component_Reel_SIDInfo.Select(null, null, global::System.Data.DataViewRowState.Added); + if (((addedRows != null) + && (0 < addedRows.Length))) { + result = (result + this._component_Reel_SIDInfoTableAdapter.Update(addedRows)); + allAddedRows.AddRange(addedRows); + } + } + if ((this._component_Reel_SIDConvTableAdapter != null)) { + global::System.Data.DataRow[] addedRows = dataSet.Component_Reel_SIDConv.Select(null, null, global::System.Data.DataViewRowState.Added); + if (((addedRows != null) + && (0 < addedRows.Length))) { + result = (result + this._component_Reel_SIDConvTableAdapter.Update(addedRows)); + allAddedRows.AddRange(addedRows); + } + } + return result; + } + + /// + ///Delete rows in bottom-up order. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private int UpdateDeletedRows(DSList dataSet, global::System.Collections.Generic.List allChangedRows) { + int result = 0; + if ((this._component_Reel_SIDConvTableAdapter != null)) { + global::System.Data.DataRow[] deletedRows = dataSet.Component_Reel_SIDConv.Select(null, null, global::System.Data.DataViewRowState.Deleted); + if (((deletedRows != null) + && (0 < deletedRows.Length))) { + result = (result + this._component_Reel_SIDConvTableAdapter.Update(deletedRows)); + allChangedRows.AddRange(deletedRows); + } + } + if ((this._component_Reel_SIDInfoTableAdapter != null)) { + global::System.Data.DataRow[] deletedRows = dataSet.Component_Reel_SIDInfo.Select(null, null, global::System.Data.DataViewRowState.Deleted); + if (((deletedRows != null) + && (0 < deletedRows.Length))) { + result = (result + this._component_Reel_SIDInfoTableAdapter.Update(deletedRows)); + allChangedRows.AddRange(deletedRows); + } + } + if ((this._component_Reel_CustRuleTableAdapter != null)) { + global::System.Data.DataRow[] deletedRows = dataSet.Component_Reel_CustRule.Select(null, null, global::System.Data.DataViewRowState.Deleted); + if (((deletedRows != null) + && (0 < deletedRows.Length))) { + result = (result + this._component_Reel_CustRuleTableAdapter.Update(deletedRows)); + allChangedRows.AddRange(deletedRows); + } + } + return result; + } + + /// + ///Remove inserted rows that become updated rows after calling TableAdapter.Update(inserted rows) first + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private global::System.Data.DataRow[] GetRealUpdatedRows(global::System.Data.DataRow[] updatedRows, global::System.Collections.Generic.List allAddedRows) { + if (((updatedRows == null) + || (updatedRows.Length < 1))) { + return updatedRows; + } + if (((allAddedRows == null) + || (allAddedRows.Count < 1))) { + return updatedRows; + } + global::System.Collections.Generic.List realUpdatedRows = new global::System.Collections.Generic.List(); + for (int i = 0; (i < updatedRows.Length); i = (i + 1)) { + global::System.Data.DataRow row = updatedRows[i]; + if ((allAddedRows.Contains(row) == false)) { + realUpdatedRows.Add(row); + } + } + return realUpdatedRows.ToArray(); + } + + /// + ///Update all changes to the dataset. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public virtual int UpdateAll(DSList dataSet) { + if ((dataSet == null)) { + throw new global::System.ArgumentNullException("dataSet"); + } + if ((dataSet.HasChanges() == false)) { + return 0; + } + if (((this._component_Reel_CustRuleTableAdapter != null) + && (this.MatchTableAdapterConnection(this._component_Reel_CustRuleTableAdapter.Connection) == false))) { + throw new global::System.ArgumentException("TableAdapterManager에서 관리하는 모든 TableAdapter에는 동일한 연결 문자열을 사용해야 합니다."); + } + if (((this._component_Reel_SIDInfoTableAdapter != null) + && (this.MatchTableAdapterConnection(this._component_Reel_SIDInfoTableAdapter.Connection) == false))) { + throw new global::System.ArgumentException("TableAdapterManager에서 관리하는 모든 TableAdapter에는 동일한 연결 문자열을 사용해야 합니다."); + } + if (((this._component_Reel_SIDConvTableAdapter != null) + && (this.MatchTableAdapterConnection(this._component_Reel_SIDConvTableAdapter.Connection) == false))) { + throw new global::System.ArgumentException("TableAdapterManager에서 관리하는 모든 TableAdapter에는 동일한 연결 문자열을 사용해야 합니다."); + } + global::System.Data.IDbConnection workConnection = this.Connection; + if ((workConnection == null)) { + throw new global::System.ApplicationException("TableAdapterManager에 연결 정보가 없습니다. 각 TableAdapterManager TableAdapter 속성을 올바른 Tabl" + + "eAdapter 인스턴스로 설정하십시오."); + } + bool workConnOpened = false; + if (((workConnection.State & global::System.Data.ConnectionState.Broken) + == global::System.Data.ConnectionState.Broken)) { + workConnection.Close(); + } + if ((workConnection.State == global::System.Data.ConnectionState.Closed)) { + workConnection.Open(); + workConnOpened = true; + } + global::System.Data.IDbTransaction workTransaction = workConnection.BeginTransaction(); + if ((workTransaction == null)) { + throw new global::System.ApplicationException("트랜잭션을 시작할 수 없습니다. 현재 데이터 연결에서 트랜잭션이 지원되지 않거나 현재 상태에서 트랜잭션을 시작할 수 없습니다."); + } + global::System.Collections.Generic.List allChangedRows = new global::System.Collections.Generic.List(); + global::System.Collections.Generic.List allAddedRows = new global::System.Collections.Generic.List(); + global::System.Collections.Generic.List adaptersWithAcceptChangesDuringUpdate = new global::System.Collections.Generic.List(); + global::System.Collections.Generic.Dictionary revertConnections = new global::System.Collections.Generic.Dictionary(); + int result = 0; + global::System.Data.DataSet backupDataSet = null; + if (this.BackupDataSetBeforeUpdate) { + backupDataSet = new global::System.Data.DataSet(); + backupDataSet.Merge(dataSet); + } + try { + // ---- Prepare for update ----------- + // + if ((this._component_Reel_CustRuleTableAdapter != null)) { + revertConnections.Add(this._component_Reel_CustRuleTableAdapter, this._component_Reel_CustRuleTableAdapter.Connection); + this._component_Reel_CustRuleTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(workConnection)); + this._component_Reel_CustRuleTableAdapter.Transaction = ((global::System.Data.SqlClient.SqlTransaction)(workTransaction)); + if (this._component_Reel_CustRuleTableAdapter.Adapter.AcceptChangesDuringUpdate) { + this._component_Reel_CustRuleTableAdapter.Adapter.AcceptChangesDuringUpdate = false; + adaptersWithAcceptChangesDuringUpdate.Add(this._component_Reel_CustRuleTableAdapter.Adapter); + } + } + if ((this._component_Reel_SIDInfoTableAdapter != null)) { + revertConnections.Add(this._component_Reel_SIDInfoTableAdapter, this._component_Reel_SIDInfoTableAdapter.Connection); + this._component_Reel_SIDInfoTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(workConnection)); + this._component_Reel_SIDInfoTableAdapter.Transaction = ((global::System.Data.SqlClient.SqlTransaction)(workTransaction)); + if (this._component_Reel_SIDInfoTableAdapter.Adapter.AcceptChangesDuringUpdate) { + this._component_Reel_SIDInfoTableAdapter.Adapter.AcceptChangesDuringUpdate = false; + adaptersWithAcceptChangesDuringUpdate.Add(this._component_Reel_SIDInfoTableAdapter.Adapter); + } + } + if ((this._component_Reel_SIDConvTableAdapter != null)) { + revertConnections.Add(this._component_Reel_SIDConvTableAdapter, this._component_Reel_SIDConvTableAdapter.Connection); + this._component_Reel_SIDConvTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(workConnection)); + this._component_Reel_SIDConvTableAdapter.Transaction = ((global::System.Data.SqlClient.SqlTransaction)(workTransaction)); + if (this._component_Reel_SIDConvTableAdapter.Adapter.AcceptChangesDuringUpdate) { + this._component_Reel_SIDConvTableAdapter.Adapter.AcceptChangesDuringUpdate = false; + adaptersWithAcceptChangesDuringUpdate.Add(this._component_Reel_SIDConvTableAdapter.Adapter); + } + } + // + //---- Perform updates ----------- + // + if ((this.UpdateOrder == UpdateOrderOption.UpdateInsertDelete)) { + result = (result + this.UpdateUpdatedRows(dataSet, allChangedRows, allAddedRows)); + result = (result + this.UpdateInsertedRows(dataSet, allAddedRows)); + } + else { + result = (result + this.UpdateInsertedRows(dataSet, allAddedRows)); + result = (result + this.UpdateUpdatedRows(dataSet, allChangedRows, allAddedRows)); + } + result = (result + this.UpdateDeletedRows(dataSet, allChangedRows)); + // + //---- Commit updates ----------- + // + workTransaction.Commit(); + if ((0 < allAddedRows.Count)) { + global::System.Data.DataRow[] rows = new System.Data.DataRow[allAddedRows.Count]; + allAddedRows.CopyTo(rows); + for (int i = 0; (i < rows.Length); i = (i + 1)) { + global::System.Data.DataRow row = rows[i]; + row.AcceptChanges(); + } + } + if ((0 < allChangedRows.Count)) { + global::System.Data.DataRow[] rows = new System.Data.DataRow[allChangedRows.Count]; + allChangedRows.CopyTo(rows); + for (int i = 0; (i < rows.Length); i = (i + 1)) { + global::System.Data.DataRow row = rows[i]; + row.AcceptChanges(); + } + } + } + catch (global::System.Exception ex) { + workTransaction.Rollback(); + // ---- Restore the dataset ----------- + if (this.BackupDataSetBeforeUpdate) { + global::System.Diagnostics.Debug.Assert((backupDataSet != null)); + dataSet.Clear(); + dataSet.Merge(backupDataSet); + } + else { + if ((0 < allAddedRows.Count)) { + global::System.Data.DataRow[] rows = new System.Data.DataRow[allAddedRows.Count]; + allAddedRows.CopyTo(rows); + for (int i = 0; (i < rows.Length); i = (i + 1)) { + global::System.Data.DataRow row = rows[i]; + row.AcceptChanges(); + row.SetAdded(); + } + } + } + throw ex; + } + finally { + if (workConnOpened) { + workConnection.Close(); + } + if ((this._component_Reel_CustRuleTableAdapter != null)) { + this._component_Reel_CustRuleTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(revertConnections[this._component_Reel_CustRuleTableAdapter])); + this._component_Reel_CustRuleTableAdapter.Transaction = null; + } + if ((this._component_Reel_SIDInfoTableAdapter != null)) { + this._component_Reel_SIDInfoTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(revertConnections[this._component_Reel_SIDInfoTableAdapter])); + this._component_Reel_SIDInfoTableAdapter.Transaction = null; + } + if ((this._component_Reel_SIDConvTableAdapter != null)) { + this._component_Reel_SIDConvTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(revertConnections[this._component_Reel_SIDConvTableAdapter])); + this._component_Reel_SIDConvTableAdapter.Transaction = null; + } + if ((0 < adaptersWithAcceptChangesDuringUpdate.Count)) { + global::System.Data.Common.DataAdapter[] adapters = new System.Data.Common.DataAdapter[adaptersWithAcceptChangesDuringUpdate.Count]; + adaptersWithAcceptChangesDuringUpdate.CopyTo(adapters); + for (int i = 0; (i < adapters.Length); i = (i + 1)) { + global::System.Data.Common.DataAdapter adapter = adapters[i]; + adapter.AcceptChangesDuringUpdate = true; + } + } + } + return result; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected virtual void SortSelfReferenceRows(global::System.Data.DataRow[] rows, global::System.Data.DataRelation relation, bool childFirst) { + global::System.Array.Sort(rows, new SelfReferenceComparer(relation, childFirst)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected virtual bool MatchTableAdapterConnection(global::System.Data.IDbConnection inputConnection) { + if ((this._connection != null)) { + return true; + } + if (((this.Connection == null) + || (inputConnection == null))) { + return true; + } + if (string.Equals(this.Connection.ConnectionString, inputConnection.ConnectionString, global::System.StringComparison.Ordinal)) { + return true; + } + return false; + } + + /// + ///Update Order Option + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public enum UpdateOrderOption { + + InsertUpdateDelete = 0, + + UpdateInsertDelete = 1, + } + + /// + ///Used to sort self-referenced table's rows + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private class SelfReferenceComparer : object, global::System.Collections.Generic.IComparer { + + private global::System.Data.DataRelation _relation; + + private int _childFirst; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal SelfReferenceComparer(global::System.Data.DataRelation relation, bool childFirst) { + this._relation = relation; + if (childFirst) { + this._childFirst = -1; + } + else { + this._childFirst = 1; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private global::System.Data.DataRow GetRoot(global::System.Data.DataRow row, out int distance) { + global::System.Diagnostics.Debug.Assert((row != null)); + global::System.Data.DataRow root = row; + distance = 0; + + global::System.Collections.Generic.IDictionary traversedRows = new global::System.Collections.Generic.Dictionary(); + traversedRows[row] = row; + + global::System.Data.DataRow parent = row.GetParentRow(this._relation, global::System.Data.DataRowVersion.Default); + for ( + ; ((parent != null) + && (traversedRows.ContainsKey(parent) == false)); + ) { + distance = (distance + 1); + root = parent; + traversedRows[parent] = parent; + parent = parent.GetParentRow(this._relation, global::System.Data.DataRowVersion.Default); + } + + if ((distance == 0)) { + traversedRows.Clear(); + traversedRows[row] = row; + parent = row.GetParentRow(this._relation, global::System.Data.DataRowVersion.Original); + for ( + ; ((parent != null) + && (traversedRows.ContainsKey(parent) == false)); + ) { + distance = (distance + 1); + root = parent; + traversedRows[parent] = parent; + parent = parent.GetParentRow(this._relation, global::System.Data.DataRowVersion.Original); + } + } + + return root; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int Compare(global::System.Data.DataRow row1, global::System.Data.DataRow row2) { + if (object.ReferenceEquals(row1, row2)) { + return 0; + } + if ((row1 == null)) { + return -1; + } + if ((row2 == null)) { + return 1; + } + + int distance1 = 0; + global::System.Data.DataRow root1 = this.GetRoot(row1, out distance1); + + int distance2 = 0; + global::System.Data.DataRow root2 = this.GetRoot(row2, out distance2); + + if (object.ReferenceEquals(root1, root2)) { + return (this._childFirst * distance1.CompareTo(distance2)); + } + else { + global::System.Diagnostics.Debug.Assert(((root1.Table != null) + && (root2.Table != null))); + if ((root1.Table.Rows.IndexOf(root1) < root2.Table.Rows.IndexOf(root2))) { + return -1; + } + else { + return 1; + } + } + } + } + } +} + +#pragma warning restore 1591 \ No newline at end of file diff --git a/Handler/Project/DSList.cs b/Handler/Project/DSList.cs new file mode 100644 index 0000000..c5e49fa --- /dev/null +++ b/Handler/Project/DSList.cs @@ -0,0 +1,8 @@ +namespace Project +{ + + + partial class DSList + { + } +} diff --git a/Handler/Project/DSList.xsc b/Handler/Project/DSList.xsc new file mode 100644 index 0000000..05b0199 --- /dev/null +++ b/Handler/Project/DSList.xsc @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/Handler/Project/DSList.xsd b/Handler/Project/DSList.xsd new file mode 100644 index 0000000..8606dc0 --- /dev/null +++ b/Handler/Project/DSList.xsd @@ -0,0 +1,496 @@ + + + + + + + + + + + + + + + DELETE FROM [Component_Reel_CustRule] WHERE (([code] = @Original_code) AND ((@IsNull_pre = 1 AND [pre] IS NULL) OR ([pre] = @Original_pre)) AND ((@IsNull_pos = 1 AND [pos] IS NULL) OR ([pos] = @Original_pos)) AND ((@IsNull_len = 1 AND [len] IS NULL) OR ([len] = @Original_len)) AND ((@IsNull_exp = 1 AND [exp] IS NULL) OR ([exp] = @Original_exp))) + + + + + + + + + + + + + + + + INSERT INTO [Component_Reel_CustRule] ([code], [pre], [pos], [len], [exp]) VALUES (@code, @pre, @pos, @len, @exp); +SELECT code, pre, pos, len, exp FROM Component_Reel_CustRule WHERE (code = @code) + + + + + + + + + + + + SELECT Component_Reel_CustRule.* +FROM Component_Reel_CustRule + + + + + + UPDATE [Component_Reel_CustRule] SET [code] = @code, [pre] = @pre, [pos] = @pos, [len] = @len, [exp] = @exp WHERE (([code] = @Original_code) AND ((@IsNull_pre = 1 AND [pre] IS NULL) OR ([pre] = @Original_pre)) AND ((@IsNull_pos = 1 AND [pos] IS NULL) OR ([pos] = @Original_pos)) AND ((@IsNull_len = 1 AND [len] IS NULL) OR ([len] = @Original_len)) AND ((@IsNull_exp = 1 AND [exp] IS NULL) OR ([exp] = @Original_exp))); +SELECT code, pre, pos, len, exp FROM Component_Reel_CustRule WHERE (code = @code) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DELETE FROM [Component_Reel_SIDInfo] WHERE (([SID] = @Original_SID) AND ([CustCode] = @Original_CustCode) AND ((@IsNull_CustName = 1 AND [CustName] IS NULL) OR ([CustName] = @Original_CustName)) AND ((@IsNull_VenderName = 1 AND [VenderName] IS NULL) OR ([VenderName] = @Original_VenderName)) AND ([PartNo] = @Original_PartNo) AND ((@IsNull_PrintPosition = 1 AND [PrintPosition] IS NULL) OR ([PrintPosition] = @Original_PrintPosition)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark))) + + + + + + + + + + + + + + + + + + INSERT INTO [Component_Reel_SIDInfo] ([SID], [CustCode], [CustName], [VenderName], [PartNo], [PrintPosition], [Remark]) VALUES (@SID, @CustCode, @CustName, @VenderName, @PartNo, @PrintPosition, @Remark); +SELECT SID, CustCode, CustName, VenderName, PartNo, PrintPosition, Remark FROM Component_Reel_SIDInfo WHERE (CustCode = @CustCode) AND (PartNo = @PartNo) AND (SID = @SID) + + + + + + + + + + + + + + SELECT SID, CustCode, CustName, VenderName, PartNo, PrintPosition, Remark +FROM Component_Reel_SIDInfo +WHERE (SID = @sid) AND (CustCode = @custcode) AND (PartNo = @partno) + + + + + + + + + + UPDATE [Component_Reel_SIDInfo] SET [SID] = @SID, [CustCode] = @CustCode, [CustName] = @CustName, [VenderName] = @VenderName, [PartNo] = @PartNo, [PrintPosition] = @PrintPosition, [Remark] = @Remark WHERE (([SID] = @Original_SID) AND ([CustCode] = @Original_CustCode) AND ((@IsNull_CustName = 1 AND [CustName] IS NULL) OR ([CustName] = @Original_CustName)) AND ((@IsNull_VenderName = 1 AND [VenderName] IS NULL) OR ([VenderName] = @Original_VenderName)) AND ([PartNo] = @Original_PartNo) AND ((@IsNull_PrintPosition = 1 AND [PrintPosition] IS NULL) OR ([PrintPosition] = @Original_PrintPosition)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark))); +SELECT SID, CustCode, CustName, VenderName, PartNo, PrintPosition, Remark FROM Component_Reel_SIDInfo WHERE (CustCode = @CustCode) AND (PartNo = @PartNo) AND (SID = @SID) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DELETE FROM [Component_Reel_SIDConv] WHERE (([idx] = @Original_idx) AND ((@IsNull_M101 = 1 AND [M101] IS NULL) OR ([M101] = @Original_M101)) AND ((@IsNull_M103 = 1 AND [M103] IS NULL) OR ([M103] = @Original_M103)) AND ((@IsNull_M106 = 1 AND [M106] IS NULL) OR ([M106] = @Original_M106)) AND ((@IsNull_M108 = 1 AND [M108] IS NULL) OR ([M108] = @Original_M108)) AND ((@IsNull_M103_2 = 1 AND [M103_2] IS NULL) OR ([M103_2] = @Original_M103_2)) AND ((@IsNull_M101_2 = 1 AND [M101_2] IS NULL) OR ([M101_2] = @Original_M101_2)) AND ((@IsNull_Chk = 1 AND [Chk] IS NULL) OR ([Chk] = @Original_Chk)) AND ((@IsNull_SIDFrom = 1 AND [SIDFrom] IS NULL) OR ([SIDFrom] = @Original_SIDFrom)) AND ((@IsNull_SIDTo = 1 AND [SIDTo] IS NULL) OR ([SIDTo] = @Original_SIDTo)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark))) + + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO [Component_Reel_SIDConv] ([M101], [M103], [M106], [M108], [M103_2], [M101_2], [Chk], [SIDFrom], [SIDTo], [Remark]) VALUES (@M101, @M103, @M106, @M108, @M103_2, @M101_2, @Chk, @SIDFrom, @SIDTo, @Remark); +SELECT idx, M101, M103, M106, M108, M103_2, M101_2, Chk, SIDFrom, SIDTo, Remark FROM Component_Reel_SIDConv WHERE (idx = SCOPE_IDENTITY()) + + + + + + + + + + + + + + + + + SELECT idx, M101, M103, M106, M108, M103_2, M101_2, Chk, SIDFrom, SIDTo, Remark +FROM Component_Reel_SIDConv +WHERE (SIDFrom = @sidfrom) AND (SIDTo = @sidto) + + + + + + + + + UPDATE [Component_Reel_SIDConv] SET [M101] = @M101, [M103] = @M103, [M106] = @M106, [M108] = @M108, [M103_2] = @M103_2, [M101_2] = @M101_2, [Chk] = @Chk, [SIDFrom] = @SIDFrom, [SIDTo] = @SIDTo, [Remark] = @Remark WHERE (([idx] = @Original_idx) AND ((@IsNull_M101 = 1 AND [M101] IS NULL) OR ([M101] = @Original_M101)) AND ((@IsNull_M103 = 1 AND [M103] IS NULL) OR ([M103] = @Original_M103)) AND ((@IsNull_M106 = 1 AND [M106] IS NULL) OR ([M106] = @Original_M106)) AND ((@IsNull_M108 = 1 AND [M108] IS NULL) OR ([M108] = @Original_M108)) AND ((@IsNull_M103_2 = 1 AND [M103_2] IS NULL) OR ([M103_2] = @Original_M103_2)) AND ((@IsNull_M101_2 = 1 AND [M101_2] IS NULL) OR ([M101_2] = @Original_M101_2)) AND ((@IsNull_Chk = 1 AND [Chk] IS NULL) OR ([Chk] = @Original_Chk)) AND ((@IsNull_SIDFrom = 1 AND [SIDFrom] IS NULL) OR ([SIDFrom] = @Original_SIDFrom)) AND ((@IsNull_SIDTo = 1 AND [SIDTo] IS NULL) OR ([SIDTo] = @Original_SIDTo)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark))); +SELECT idx, M101, M103, M106, M108, M103_2, M101_2, Chk, SIDFrom, SIDTo, Remark FROM Component_Reel_SIDConv WHERE (idx = @idx) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Handler/Project/DSList.xss b/Handler/Project/DSList.xss new file mode 100644 index 0000000..c6139a3 --- /dev/null +++ b/Handler/Project/DSList.xss @@ -0,0 +1,16 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/Handler/Project/DSSetup.Designer.cs b/Handler/Project/DSSetup.Designer.cs new file mode 100644 index 0000000..78f4e8e --- /dev/null +++ b/Handler/Project/DSSetup.Designer.cs @@ -0,0 +1,1099 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +#pragma warning disable 1591 + +namespace Project { + + + /// + ///Represents a strongly typed in-memory cache of data. + /// + [global::System.Serializable()] + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] + [global::System.Xml.Serialization.XmlRootAttribute("DSSetup")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] + public partial class DSSetup : global::System.Data.DataSet { + + private MotionParamDataTable tableMotionParam; + + private global::System.Data.SchemaSerializationMode _schemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public DSSetup() { + this.BeginInit(); + this.InitClass(); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + base.Relations.CollectionChanged += schemaChangedHandler; + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected DSSetup(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context, false) { + if ((this.IsBinarySerialized(info, context) == true)) { + this.InitVars(false); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + this.Tables.CollectionChanged += schemaChangedHandler1; + this.Relations.CollectionChanged += schemaChangedHandler1; + return; + } + string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); + if ((this.DetermineSchemaSerializationMode(info, context) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { + global::System.Data.DataSet ds = new global::System.Data.DataSet(); + ds.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); + if ((ds.Tables["MotionParam"] != null)) { + base.Tables.Add(new MotionParamDataTable(ds.Tables["MotionParam"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); + } + this.GetSerializationData(info, context); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + this.Relations.CollectionChanged += schemaChangedHandler; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public MotionParamDataTable MotionParam { + get { + return this.tableMotionParam; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.BrowsableAttribute(true)] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Visible)] + public override global::System.Data.SchemaSerializationMode SchemaSerializationMode { + get { + return this._schemaSerializationMode; + } + set { + this._schemaSerializationMode = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new global::System.Data.DataTableCollection Tables { + get { + return base.Tables; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new global::System.Data.DataRelationCollection Relations { + get { + return base.Relations; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void InitializeDerivedDataSet() { + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public override global::System.Data.DataSet Clone() { + DSSetup cln = ((DSSetup)(base.Clone())); + cln.InitVars(); + cln.SchemaSerializationMode = this.SchemaSerializationMode; + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override bool ShouldSerializeTables() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override bool ShouldSerializeRelations() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void ReadXmlSerializable(global::System.Xml.XmlReader reader) { + if ((this.DetermineSchemaSerializationMode(reader) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { + this.Reset(); + global::System.Data.DataSet ds = new global::System.Data.DataSet(); + ds.ReadXml(reader); + if ((ds.Tables["MotionParam"] != null)) { + base.Tables.Add(new MotionParamDataTable(ds.Tables["MotionParam"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXml(reader); + this.InitVars(); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Xml.Schema.XmlSchema GetSchemaSerializable() { + global::System.IO.MemoryStream stream = new global::System.IO.MemoryStream(); + this.WriteXmlSchema(new global::System.Xml.XmlTextWriter(stream, null)); + stream.Position = 0; + return global::System.Xml.Schema.XmlSchema.Read(new global::System.Xml.XmlTextReader(stream), null); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal void InitVars() { + this.InitVars(true); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal void InitVars(bool initTable) { + this.tableMotionParam = ((MotionParamDataTable)(base.Tables["MotionParam"])); + if ((initTable == true)) { + if ((this.tableMotionParam != null)) { + this.tableMotionParam.InitVars(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitClass() { + this.DataSetName = "DSSetup"; + this.Prefix = ""; + this.Namespace = "http://tempuri.org/DSSetup.xsd"; + this.EnforceConstraints = true; + this.SchemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; + this.tableMotionParam = new MotionParamDataTable(); + base.Tables.Add(this.tableMotionParam); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private bool ShouldSerializeMotionParam() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void SchemaChanged(object sender, global::System.ComponentModel.CollectionChangeEventArgs e) { + if ((e.Action == global::System.ComponentModel.CollectionChangeAction.Remove)) { + this.InitVars(); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + DSSetup ds = new DSSetup(); + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + global::System.Xml.Schema.XmlSchemaAny any = new global::System.Xml.Schema.XmlSchemaAny(); + any.Namespace = ds.Namespace; + sequence.Items.Add(any); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public delegate void MotionParamRowChangeEventHandler(object sender, MotionParamRowChangeEvent e); + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class MotionParamDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnidx; + + private global::System.Data.DataColumn columnEnable; + + private global::System.Data.DataColumn columnUseOrigin; + + private global::System.Data.DataColumn columnUseEStop; + + private global::System.Data.DataColumn columnHomeAcc; + + private global::System.Data.DataColumn columnHomeDcc; + + private global::System.Data.DataColumn columnHomeHigh; + + private global::System.Data.DataColumn columnHomeLow; + + private global::System.Data.DataColumn columnSWLimitP; + + private global::System.Data.DataColumn columnTitle; + + private global::System.Data.DataColumn columnInpositionAccr; + + private global::System.Data.DataColumn columnMaxSpeed; + + private global::System.Data.DataColumn columnMaxAcc; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public MotionParamDataTable() { + this.TableName = "MotionParam"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal MotionParamDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected MotionParamDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn idxColumn { + get { + return this.columnidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn EnableColumn { + get { + return this.columnEnable; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn UseOriginColumn { + get { + return this.columnUseOrigin; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn UseEStopColumn { + get { + return this.columnUseEStop; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn HomeAccColumn { + get { + return this.columnHomeAcc; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn HomeDccColumn { + get { + return this.columnHomeDcc; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn HomeHighColumn { + get { + return this.columnHomeHigh; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn HomeLowColumn { + get { + return this.columnHomeLow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn SWLimitPColumn { + get { + return this.columnSWLimitP; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn TitleColumn { + get { + return this.columnTitle; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn InpositionAccrColumn { + get { + return this.columnInpositionAccr; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn MaxSpeedColumn { + get { + return this.columnMaxSpeed; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn MaxAccColumn { + get { + return this.columnMaxAcc; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public MotionParamRow this[int index] { + get { + return ((MotionParamRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event MotionParamRowChangeEventHandler MotionParamRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event MotionParamRowChangeEventHandler MotionParamRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event MotionParamRowChangeEventHandler MotionParamRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event MotionParamRowChangeEventHandler MotionParamRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void AddMotionParamRow(MotionParamRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public MotionParamRow AddMotionParamRow(short idx, bool Enable, bool UseOrigin, bool UseEStop, double HomeAcc, double HomeDcc, double HomeHigh, double HomeLow, double SWLimitP, string Title, float InpositionAccr, double MaxSpeed, double MaxAcc) { + MotionParamRow rowMotionParamRow = ((MotionParamRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + idx, + Enable, + UseOrigin, + UseEStop, + HomeAcc, + HomeDcc, + HomeHigh, + HomeLow, + SWLimitP, + Title, + InpositionAccr, + MaxSpeed, + MaxAcc}; + rowMotionParamRow.ItemArray = columnValuesArray; + this.Rows.Add(rowMotionParamRow); + return rowMotionParamRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public MotionParamRow FindByidx(short idx) { + return ((MotionParamRow)(this.Rows.Find(new object[] { + idx}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public override global::System.Data.DataTable Clone() { + MotionParamDataTable cln = ((MotionParamDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new MotionParamDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal void InitVars() { + this.columnidx = base.Columns["idx"]; + this.columnEnable = base.Columns["Enable"]; + this.columnUseOrigin = base.Columns["UseOrigin"]; + this.columnUseEStop = base.Columns["UseEStop"]; + this.columnHomeAcc = base.Columns["HomeAcc"]; + this.columnHomeDcc = base.Columns["HomeDcc"]; + this.columnHomeHigh = base.Columns["HomeHigh"]; + this.columnHomeLow = base.Columns["HomeLow"]; + this.columnSWLimitP = base.Columns["SWLimitP"]; + this.columnTitle = base.Columns["Title"]; + this.columnInpositionAccr = base.Columns["InpositionAccr"]; + this.columnMaxSpeed = base.Columns["MaxSpeed"]; + this.columnMaxAcc = base.Columns["MaxAcc"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitClass() { + this.columnidx = new global::System.Data.DataColumn("idx", typeof(short), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnidx); + this.columnEnable = new global::System.Data.DataColumn("Enable", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnEnable); + this.columnUseOrigin = new global::System.Data.DataColumn("UseOrigin", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnUseOrigin); + this.columnUseEStop = new global::System.Data.DataColumn("UseEStop", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnUseEStop); + this.columnHomeAcc = new global::System.Data.DataColumn("HomeAcc", typeof(double), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnHomeAcc); + this.columnHomeDcc = new global::System.Data.DataColumn("HomeDcc", typeof(double), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnHomeDcc); + this.columnHomeHigh = new global::System.Data.DataColumn("HomeHigh", typeof(double), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnHomeHigh); + this.columnHomeLow = new global::System.Data.DataColumn("HomeLow", typeof(double), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnHomeLow); + this.columnSWLimitP = new global::System.Data.DataColumn("SWLimitP", typeof(double), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSWLimitP); + this.columnTitle = new global::System.Data.DataColumn("Title", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTitle); + this.columnInpositionAccr = new global::System.Data.DataColumn("InpositionAccr", typeof(float), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnInpositionAccr); + this.columnMaxSpeed = new global::System.Data.DataColumn("MaxSpeed", typeof(double), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMaxSpeed); + this.columnMaxAcc = new global::System.Data.DataColumn("MaxAcc", typeof(double), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMaxAcc); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnidx}, true)); + this.columnidx.AllowDBNull = false; + this.columnidx.Unique = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public MotionParamRow NewMotionParamRow() { + return ((MotionParamRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new MotionParamRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(MotionParamRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.MotionParamRowChanged != null)) { + this.MotionParamRowChanged(this, new MotionParamRowChangeEvent(((MotionParamRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.MotionParamRowChanging != null)) { + this.MotionParamRowChanging(this, new MotionParamRowChangeEvent(((MotionParamRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.MotionParamRowDeleted != null)) { + this.MotionParamRowDeleted(this, new MotionParamRowChangeEvent(((MotionParamRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.MotionParamRowDeleting != null)) { + this.MotionParamRowDeleting(this, new MotionParamRowChangeEvent(((MotionParamRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void RemoveMotionParamRow(MotionParamRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DSSetup ds = new DSSetup(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "MotionParamDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class MotionParamRow : global::System.Data.DataRow { + + private MotionParamDataTable tableMotionParam; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal MotionParamRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableMotionParam = ((MotionParamDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public short idx { + get { + return ((short)(this[this.tableMotionParam.idxColumn])); + } + set { + this[this.tableMotionParam.idxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool Enable { + get { + if (this.IsEnableNull()) { + return true; + } + else { + return ((bool)(this[this.tableMotionParam.EnableColumn])); + } + } + set { + this[this.tableMotionParam.EnableColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool UseOrigin { + get { + if (this.IsUseOriginNull()) { + return true; + } + else { + return ((bool)(this[this.tableMotionParam.UseOriginColumn])); + } + } + set { + this[this.tableMotionParam.UseOriginColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool UseEStop { + get { + if (this.IsUseEStopNull()) { + return true; + } + else { + return ((bool)(this[this.tableMotionParam.UseEStopColumn])); + } + } + set { + this[this.tableMotionParam.UseEStopColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public double HomeAcc { + get { + if (this.IsHomeAccNull()) { + return 100D; + } + else { + return ((double)(this[this.tableMotionParam.HomeAccColumn])); + } + } + set { + this[this.tableMotionParam.HomeAccColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public double HomeDcc { + get { + if (this.IsHomeDccNull()) { + return 50D; + } + else { + return ((double)(this[this.tableMotionParam.HomeDccColumn])); + } + } + set { + this[this.tableMotionParam.HomeDccColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public double HomeHigh { + get { + if (this.IsHomeHighNull()) { + return 100D; + } + else { + return ((double)(this[this.tableMotionParam.HomeHighColumn])); + } + } + set { + this[this.tableMotionParam.HomeHighColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public double HomeLow { + get { + if (this.IsHomeLowNull()) { + return 50D; + } + else { + return ((double)(this[this.tableMotionParam.HomeLowColumn])); + } + } + set { + this[this.tableMotionParam.HomeLowColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public double SWLimitP { + get { + if (this.IsSWLimitPNull()) { + return 0D; + } + else { + return ((double)(this[this.tableMotionParam.SWLimitPColumn])); + } + } + set { + this[this.tableMotionParam.SWLimitPColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string Title { + get { + if (this.IsTitleNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableMotionParam.TitleColumn])); + } + } + set { + this[this.tableMotionParam.TitleColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public float InpositionAccr { + get { + if (this.IsInpositionAccrNull()) { + return 0.1F; + } + else { + return ((float)(this[this.tableMotionParam.InpositionAccrColumn])); + } + } + set { + this[this.tableMotionParam.InpositionAccrColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public double MaxSpeed { + get { + if (this.IsMaxSpeedNull()) { + return 0D; + } + else { + return ((double)(this[this.tableMotionParam.MaxSpeedColumn])); + } + } + set { + this[this.tableMotionParam.MaxSpeedColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public double MaxAcc { + get { + if (this.IsMaxAccNull()) { + return 0D; + } + else { + return ((double)(this[this.tableMotionParam.MaxAccColumn])); + } + } + set { + this[this.tableMotionParam.MaxAccColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsEnableNull() { + return this.IsNull(this.tableMotionParam.EnableColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetEnableNull() { + this[this.tableMotionParam.EnableColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsUseOriginNull() { + return this.IsNull(this.tableMotionParam.UseOriginColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetUseOriginNull() { + this[this.tableMotionParam.UseOriginColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsUseEStopNull() { + return this.IsNull(this.tableMotionParam.UseEStopColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetUseEStopNull() { + this[this.tableMotionParam.UseEStopColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsHomeAccNull() { + return this.IsNull(this.tableMotionParam.HomeAccColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetHomeAccNull() { + this[this.tableMotionParam.HomeAccColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsHomeDccNull() { + return this.IsNull(this.tableMotionParam.HomeDccColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetHomeDccNull() { + this[this.tableMotionParam.HomeDccColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsHomeHighNull() { + return this.IsNull(this.tableMotionParam.HomeHighColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetHomeHighNull() { + this[this.tableMotionParam.HomeHighColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsHomeLowNull() { + return this.IsNull(this.tableMotionParam.HomeLowColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetHomeLowNull() { + this[this.tableMotionParam.HomeLowColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsSWLimitPNull() { + return this.IsNull(this.tableMotionParam.SWLimitPColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetSWLimitPNull() { + this[this.tableMotionParam.SWLimitPColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsTitleNull() { + return this.IsNull(this.tableMotionParam.TitleColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetTitleNull() { + this[this.tableMotionParam.TitleColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsInpositionAccrNull() { + return this.IsNull(this.tableMotionParam.InpositionAccrColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetInpositionAccrNull() { + this[this.tableMotionParam.InpositionAccrColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsMaxSpeedNull() { + return this.IsNull(this.tableMotionParam.MaxSpeedColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetMaxSpeedNull() { + this[this.tableMotionParam.MaxSpeedColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsMaxAccNull() { + return this.IsNull(this.tableMotionParam.MaxAccColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetMaxAccNull() { + this[this.tableMotionParam.MaxAccColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public class MotionParamRowChangeEvent : global::System.EventArgs { + + private MotionParamRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public MotionParamRowChangeEvent(MotionParamRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public MotionParamRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + } +} + +#pragma warning restore 1591 \ No newline at end of file diff --git a/Handler/Project/DSSetup.xsc b/Handler/Project/DSSetup.xsc new file mode 100644 index 0000000..05b0199 --- /dev/null +++ b/Handler/Project/DSSetup.xsc @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/Handler/Project/DSSetup.xsd b/Handler/Project/DSSetup.xsd new file mode 100644 index 0000000..4540101 --- /dev/null +++ b/Handler/Project/DSSetup.xsd @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Handler/Project/DSSetup.xss b/Handler/Project/DSSetup.xss new file mode 100644 index 0000000..72c649a --- /dev/null +++ b/Handler/Project/DSSetup.xss @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/Handler/Project/DataSet1.Designer.cs b/Handler/Project/DataSet1.Designer.cs new file mode 100644 index 0000000..9b8afbc --- /dev/null +++ b/Handler/Project/DataSet1.Designer.cs @@ -0,0 +1,23380 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +#pragma warning disable 1591 + +namespace Project { + + + /// + ///Represents a strongly typed in-memory cache of data. + /// + [global::System.Serializable()] + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] + [global::System.Xml.Serialization.XmlRootAttribute("DataSet1")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] + public partial class DataSet1 : global::System.Data.DataSet { + + private Component_Reel_ResultDataTable tableComponent_Reel_Result; + + private Component_Reel_RegExRuleDataTable tableComponent_Reel_RegExRule; + + private Component_Reel_SID_ConvertDataTable tableComponent_Reel_SID_Convert; + + private Component_Reel_SID_InformationDataTable tableComponent_Reel_SID_Information; + + private Component_Reel_PreSetDataTable tableComponent_Reel_PreSet; + + private Component_Reel_CustInfoDataTable tableComponent_Reel_CustInfo; + + private ResultSummaryDataTable tableResultSummary; + + private Component_Reel_Print_InformationDataTable tableComponent_Reel_Print_Information; + + private Component_Reel_PrintRegExRuleDataTable tableComponent_Reel_PrintRegExRule; + + private SidinfoCustGroupDataTable tableSidinfoCustGroup; + + private UsersDataTable tableUsers; + + private MCModelDataTable tableMCModel; + + private languageDataTable tablelanguage; + + private OPModelDataTable tableOPModel; + + private BCDDataDataTable tableBCDData; + + private UserSIDDataTable tableUserSID; + + private MailFormatDataTable tableMailFormat; + + private MailRecipientDataTable tableMailRecipient; + + private SIDHistoryDataTable tableSIDHistory; + + private InputDescriptionDataTable tableInputDescription; + + private OutputDescriptionDataTable tableOutputDescription; + + private UserTableDataTable tableUserTable; + + private ErrorDescriptionDataTable tableErrorDescription; + + private ModelListDataTable tableModelList; + + private global::System.Data.SchemaSerializationMode _schemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public DataSet1() { + this.BeginInit(); + this.InitClass(); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + base.Relations.CollectionChanged += schemaChangedHandler; + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected DataSet1(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context, false) { + if ((this.IsBinarySerialized(info, context) == true)) { + this.InitVars(false); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + this.Tables.CollectionChanged += schemaChangedHandler1; + this.Relations.CollectionChanged += schemaChangedHandler1; + return; + } + string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); + if ((this.DetermineSchemaSerializationMode(info, context) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { + global::System.Data.DataSet ds = new global::System.Data.DataSet(); + ds.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); + if ((ds.Tables["Component_Reel_Result"] != null)) { + base.Tables.Add(new Component_Reel_ResultDataTable(ds.Tables["Component_Reel_Result"])); + } + if ((ds.Tables["Component_Reel_RegExRule"] != null)) { + base.Tables.Add(new Component_Reel_RegExRuleDataTable(ds.Tables["Component_Reel_RegExRule"])); + } + if ((ds.Tables["Component_Reel_SID_Convert"] != null)) { + base.Tables.Add(new Component_Reel_SID_ConvertDataTable(ds.Tables["Component_Reel_SID_Convert"])); + } + if ((ds.Tables["Component_Reel_SID_Information"] != null)) { + base.Tables.Add(new Component_Reel_SID_InformationDataTable(ds.Tables["Component_Reel_SID_Information"])); + } + if ((ds.Tables["Component_Reel_PreSet"] != null)) { + base.Tables.Add(new Component_Reel_PreSetDataTable(ds.Tables["Component_Reel_PreSet"])); + } + if ((ds.Tables["Component_Reel_CustInfo"] != null)) { + base.Tables.Add(new Component_Reel_CustInfoDataTable(ds.Tables["Component_Reel_CustInfo"])); + } + if ((ds.Tables["ResultSummary"] != null)) { + base.Tables.Add(new ResultSummaryDataTable(ds.Tables["ResultSummary"])); + } + if ((ds.Tables["Component_Reel_Print_Information"] != null)) { + base.Tables.Add(new Component_Reel_Print_InformationDataTable(ds.Tables["Component_Reel_Print_Information"])); + } + if ((ds.Tables["Component_Reel_PrintRegExRule"] != null)) { + base.Tables.Add(new Component_Reel_PrintRegExRuleDataTable(ds.Tables["Component_Reel_PrintRegExRule"])); + } + if ((ds.Tables["SidinfoCustGroup"] != null)) { + base.Tables.Add(new SidinfoCustGroupDataTable(ds.Tables["SidinfoCustGroup"])); + } + if ((ds.Tables["Users"] != null)) { + base.Tables.Add(new UsersDataTable(ds.Tables["Users"])); + } + if ((ds.Tables["MCModel"] != null)) { + base.Tables.Add(new MCModelDataTable(ds.Tables["MCModel"])); + } + if ((ds.Tables["language"] != null)) { + base.Tables.Add(new languageDataTable(ds.Tables["language"])); + } + if ((ds.Tables["OPModel"] != null)) { + base.Tables.Add(new OPModelDataTable(ds.Tables["OPModel"])); + } + if ((ds.Tables["BCDData"] != null)) { + base.Tables.Add(new BCDDataDataTable(ds.Tables["BCDData"])); + } + if ((ds.Tables["UserSID"] != null)) { + base.Tables.Add(new UserSIDDataTable(ds.Tables["UserSID"])); + } + if ((ds.Tables["MailFormat"] != null)) { + base.Tables.Add(new MailFormatDataTable(ds.Tables["MailFormat"])); + } + if ((ds.Tables["MailRecipient"] != null)) { + base.Tables.Add(new MailRecipientDataTable(ds.Tables["MailRecipient"])); + } + if ((ds.Tables["SIDHistory"] != null)) { + base.Tables.Add(new SIDHistoryDataTable(ds.Tables["SIDHistory"])); + } + if ((ds.Tables["InputDescription"] != null)) { + base.Tables.Add(new InputDescriptionDataTable(ds.Tables["InputDescription"])); + } + if ((ds.Tables["OutputDescription"] != null)) { + base.Tables.Add(new OutputDescriptionDataTable(ds.Tables["OutputDescription"])); + } + if ((ds.Tables["UserTable"] != null)) { + base.Tables.Add(new UserTableDataTable(ds.Tables["UserTable"])); + } + if ((ds.Tables["ErrorDescription"] != null)) { + base.Tables.Add(new ErrorDescriptionDataTable(ds.Tables["ErrorDescription"])); + } + if ((ds.Tables["ModelList"] != null)) { + base.Tables.Add(new ModelListDataTable(ds.Tables["ModelList"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); + } + this.GetSerializationData(info, context); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + this.Relations.CollectionChanged += schemaChangedHandler; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public Component_Reel_ResultDataTable Component_Reel_Result { + get { + return this.tableComponent_Reel_Result; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public Component_Reel_RegExRuleDataTable Component_Reel_RegExRule { + get { + return this.tableComponent_Reel_RegExRule; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public Component_Reel_SID_ConvertDataTable Component_Reel_SID_Convert { + get { + return this.tableComponent_Reel_SID_Convert; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public Component_Reel_SID_InformationDataTable Component_Reel_SID_Information { + get { + return this.tableComponent_Reel_SID_Information; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public Component_Reel_PreSetDataTable Component_Reel_PreSet { + get { + return this.tableComponent_Reel_PreSet; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public Component_Reel_CustInfoDataTable Component_Reel_CustInfo { + get { + return this.tableComponent_Reel_CustInfo; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public ResultSummaryDataTable ResultSummary { + get { + return this.tableResultSummary; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public Component_Reel_Print_InformationDataTable Component_Reel_Print_Information { + get { + return this.tableComponent_Reel_Print_Information; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public Component_Reel_PrintRegExRuleDataTable Component_Reel_PrintRegExRule { + get { + return this.tableComponent_Reel_PrintRegExRule; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public SidinfoCustGroupDataTable SidinfoCustGroup { + get { + return this.tableSidinfoCustGroup; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public UsersDataTable Users { + get { + return this.tableUsers; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public MCModelDataTable MCModel { + get { + return this.tableMCModel; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public languageDataTable language { + get { + return this.tablelanguage; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public OPModelDataTable OPModel { + get { + return this.tableOPModel; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public BCDDataDataTable BCDData { + get { + return this.tableBCDData; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public UserSIDDataTable UserSID { + get { + return this.tableUserSID; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public MailFormatDataTable MailFormat { + get { + return this.tableMailFormat; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public MailRecipientDataTable MailRecipient { + get { + return this.tableMailRecipient; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public SIDHistoryDataTable SIDHistory { + get { + return this.tableSIDHistory; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public InputDescriptionDataTable InputDescription { + get { + return this.tableInputDescription; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public OutputDescriptionDataTable OutputDescription { + get { + return this.tableOutputDescription; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public UserTableDataTable UserTable { + get { + return this.tableUserTable; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public ErrorDescriptionDataTable ErrorDescription { + get { + return this.tableErrorDescription; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public ModelListDataTable ModelList { + get { + return this.tableModelList; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.BrowsableAttribute(true)] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Visible)] + public override global::System.Data.SchemaSerializationMode SchemaSerializationMode { + get { + return this._schemaSerializationMode; + } + set { + this._schemaSerializationMode = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new global::System.Data.DataTableCollection Tables { + get { + return base.Tables; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new global::System.Data.DataRelationCollection Relations { + get { + return base.Relations; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void InitializeDerivedDataSet() { + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataSet Clone() { + DataSet1 cln = ((DataSet1)(base.Clone())); + cln.InitVars(); + cln.SchemaSerializationMode = this.SchemaSerializationMode; + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override bool ShouldSerializeTables() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override bool ShouldSerializeRelations() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void ReadXmlSerializable(global::System.Xml.XmlReader reader) { + if ((this.DetermineSchemaSerializationMode(reader) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { + this.Reset(); + global::System.Data.DataSet ds = new global::System.Data.DataSet(); + ds.ReadXml(reader); + if ((ds.Tables["Component_Reel_Result"] != null)) { + base.Tables.Add(new Component_Reel_ResultDataTable(ds.Tables["Component_Reel_Result"])); + } + if ((ds.Tables["Component_Reel_RegExRule"] != null)) { + base.Tables.Add(new Component_Reel_RegExRuleDataTable(ds.Tables["Component_Reel_RegExRule"])); + } + if ((ds.Tables["Component_Reel_SID_Convert"] != null)) { + base.Tables.Add(new Component_Reel_SID_ConvertDataTable(ds.Tables["Component_Reel_SID_Convert"])); + } + if ((ds.Tables["Component_Reel_SID_Information"] != null)) { + base.Tables.Add(new Component_Reel_SID_InformationDataTable(ds.Tables["Component_Reel_SID_Information"])); + } + if ((ds.Tables["Component_Reel_PreSet"] != null)) { + base.Tables.Add(new Component_Reel_PreSetDataTable(ds.Tables["Component_Reel_PreSet"])); + } + if ((ds.Tables["Component_Reel_CustInfo"] != null)) { + base.Tables.Add(new Component_Reel_CustInfoDataTable(ds.Tables["Component_Reel_CustInfo"])); + } + if ((ds.Tables["ResultSummary"] != null)) { + base.Tables.Add(new ResultSummaryDataTable(ds.Tables["ResultSummary"])); + } + if ((ds.Tables["Component_Reel_Print_Information"] != null)) { + base.Tables.Add(new Component_Reel_Print_InformationDataTable(ds.Tables["Component_Reel_Print_Information"])); + } + if ((ds.Tables["Component_Reel_PrintRegExRule"] != null)) { + base.Tables.Add(new Component_Reel_PrintRegExRuleDataTable(ds.Tables["Component_Reel_PrintRegExRule"])); + } + if ((ds.Tables["SidinfoCustGroup"] != null)) { + base.Tables.Add(new SidinfoCustGroupDataTable(ds.Tables["SidinfoCustGroup"])); + } + if ((ds.Tables["Users"] != null)) { + base.Tables.Add(new UsersDataTable(ds.Tables["Users"])); + } + if ((ds.Tables["MCModel"] != null)) { + base.Tables.Add(new MCModelDataTable(ds.Tables["MCModel"])); + } + if ((ds.Tables["language"] != null)) { + base.Tables.Add(new languageDataTable(ds.Tables["language"])); + } + if ((ds.Tables["OPModel"] != null)) { + base.Tables.Add(new OPModelDataTable(ds.Tables["OPModel"])); + } + if ((ds.Tables["BCDData"] != null)) { + base.Tables.Add(new BCDDataDataTable(ds.Tables["BCDData"])); + } + if ((ds.Tables["UserSID"] != null)) { + base.Tables.Add(new UserSIDDataTable(ds.Tables["UserSID"])); + } + if ((ds.Tables["MailFormat"] != null)) { + base.Tables.Add(new MailFormatDataTable(ds.Tables["MailFormat"])); + } + if ((ds.Tables["MailRecipient"] != null)) { + base.Tables.Add(new MailRecipientDataTable(ds.Tables["MailRecipient"])); + } + if ((ds.Tables["SIDHistory"] != null)) { + base.Tables.Add(new SIDHistoryDataTable(ds.Tables["SIDHistory"])); + } + if ((ds.Tables["InputDescription"] != null)) { + base.Tables.Add(new InputDescriptionDataTable(ds.Tables["InputDescription"])); + } + if ((ds.Tables["OutputDescription"] != null)) { + base.Tables.Add(new OutputDescriptionDataTable(ds.Tables["OutputDescription"])); + } + if ((ds.Tables["UserTable"] != null)) { + base.Tables.Add(new UserTableDataTable(ds.Tables["UserTable"])); + } + if ((ds.Tables["ErrorDescription"] != null)) { + base.Tables.Add(new ErrorDescriptionDataTable(ds.Tables["ErrorDescription"])); + } + if ((ds.Tables["ModelList"] != null)) { + base.Tables.Add(new ModelListDataTable(ds.Tables["ModelList"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXml(reader); + this.InitVars(); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Xml.Schema.XmlSchema GetSchemaSerializable() { + global::System.IO.MemoryStream stream = new global::System.IO.MemoryStream(); + this.WriteXmlSchema(new global::System.Xml.XmlTextWriter(stream, null)); + stream.Position = 0; + return global::System.Xml.Schema.XmlSchema.Read(new global::System.Xml.XmlTextReader(stream), null); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.InitVars(true); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars(bool initTable) { + this.tableComponent_Reel_Result = ((Component_Reel_ResultDataTable)(base.Tables["Component_Reel_Result"])); + if ((initTable == true)) { + if ((this.tableComponent_Reel_Result != null)) { + this.tableComponent_Reel_Result.InitVars(); + } + } + this.tableComponent_Reel_RegExRule = ((Component_Reel_RegExRuleDataTable)(base.Tables["Component_Reel_RegExRule"])); + if ((initTable == true)) { + if ((this.tableComponent_Reel_RegExRule != null)) { + this.tableComponent_Reel_RegExRule.InitVars(); + } + } + this.tableComponent_Reel_SID_Convert = ((Component_Reel_SID_ConvertDataTable)(base.Tables["Component_Reel_SID_Convert"])); + if ((initTable == true)) { + if ((this.tableComponent_Reel_SID_Convert != null)) { + this.tableComponent_Reel_SID_Convert.InitVars(); + } + } + this.tableComponent_Reel_SID_Information = ((Component_Reel_SID_InformationDataTable)(base.Tables["Component_Reel_SID_Information"])); + if ((initTable == true)) { + if ((this.tableComponent_Reel_SID_Information != null)) { + this.tableComponent_Reel_SID_Information.InitVars(); + } + } + this.tableComponent_Reel_PreSet = ((Component_Reel_PreSetDataTable)(base.Tables["Component_Reel_PreSet"])); + if ((initTable == true)) { + if ((this.tableComponent_Reel_PreSet != null)) { + this.tableComponent_Reel_PreSet.InitVars(); + } + } + this.tableComponent_Reel_CustInfo = ((Component_Reel_CustInfoDataTable)(base.Tables["Component_Reel_CustInfo"])); + if ((initTable == true)) { + if ((this.tableComponent_Reel_CustInfo != null)) { + this.tableComponent_Reel_CustInfo.InitVars(); + } + } + this.tableResultSummary = ((ResultSummaryDataTable)(base.Tables["ResultSummary"])); + if ((initTable == true)) { + if ((this.tableResultSummary != null)) { + this.tableResultSummary.InitVars(); + } + } + this.tableComponent_Reel_Print_Information = ((Component_Reel_Print_InformationDataTable)(base.Tables["Component_Reel_Print_Information"])); + if ((initTable == true)) { + if ((this.tableComponent_Reel_Print_Information != null)) { + this.tableComponent_Reel_Print_Information.InitVars(); + } + } + this.tableComponent_Reel_PrintRegExRule = ((Component_Reel_PrintRegExRuleDataTable)(base.Tables["Component_Reel_PrintRegExRule"])); + if ((initTable == true)) { + if ((this.tableComponent_Reel_PrintRegExRule != null)) { + this.tableComponent_Reel_PrintRegExRule.InitVars(); + } + } + this.tableSidinfoCustGroup = ((SidinfoCustGroupDataTable)(base.Tables["SidinfoCustGroup"])); + if ((initTable == true)) { + if ((this.tableSidinfoCustGroup != null)) { + this.tableSidinfoCustGroup.InitVars(); + } + } + this.tableUsers = ((UsersDataTable)(base.Tables["Users"])); + if ((initTable == true)) { + if ((this.tableUsers != null)) { + this.tableUsers.InitVars(); + } + } + this.tableMCModel = ((MCModelDataTable)(base.Tables["MCModel"])); + if ((initTable == true)) { + if ((this.tableMCModel != null)) { + this.tableMCModel.InitVars(); + } + } + this.tablelanguage = ((languageDataTable)(base.Tables["language"])); + if ((initTable == true)) { + if ((this.tablelanguage != null)) { + this.tablelanguage.InitVars(); + } + } + this.tableOPModel = ((OPModelDataTable)(base.Tables["OPModel"])); + if ((initTable == true)) { + if ((this.tableOPModel != null)) { + this.tableOPModel.InitVars(); + } + } + this.tableBCDData = ((BCDDataDataTable)(base.Tables["BCDData"])); + if ((initTable == true)) { + if ((this.tableBCDData != null)) { + this.tableBCDData.InitVars(); + } + } + this.tableUserSID = ((UserSIDDataTable)(base.Tables["UserSID"])); + if ((initTable == true)) { + if ((this.tableUserSID != null)) { + this.tableUserSID.InitVars(); + } + } + this.tableMailFormat = ((MailFormatDataTable)(base.Tables["MailFormat"])); + if ((initTable == true)) { + if ((this.tableMailFormat != null)) { + this.tableMailFormat.InitVars(); + } + } + this.tableMailRecipient = ((MailRecipientDataTable)(base.Tables["MailRecipient"])); + if ((initTable == true)) { + if ((this.tableMailRecipient != null)) { + this.tableMailRecipient.InitVars(); + } + } + this.tableSIDHistory = ((SIDHistoryDataTable)(base.Tables["SIDHistory"])); + if ((initTable == true)) { + if ((this.tableSIDHistory != null)) { + this.tableSIDHistory.InitVars(); + } + } + this.tableInputDescription = ((InputDescriptionDataTable)(base.Tables["InputDescription"])); + if ((initTable == true)) { + if ((this.tableInputDescription != null)) { + this.tableInputDescription.InitVars(); + } + } + this.tableOutputDescription = ((OutputDescriptionDataTable)(base.Tables["OutputDescription"])); + if ((initTable == true)) { + if ((this.tableOutputDescription != null)) { + this.tableOutputDescription.InitVars(); + } + } + this.tableUserTable = ((UserTableDataTable)(base.Tables["UserTable"])); + if ((initTable == true)) { + if ((this.tableUserTable != null)) { + this.tableUserTable.InitVars(); + } + } + this.tableErrorDescription = ((ErrorDescriptionDataTable)(base.Tables["ErrorDescription"])); + if ((initTable == true)) { + if ((this.tableErrorDescription != null)) { + this.tableErrorDescription.InitVars(); + } + } + this.tableModelList = ((ModelListDataTable)(base.Tables["ModelList"])); + if ((initTable == true)) { + if ((this.tableModelList != null)) { + this.tableModelList.InitVars(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.DataSetName = "DataSet1"; + this.Prefix = ""; + this.Namespace = "http://tempuri.org/DataSet1.xsd"; + this.EnforceConstraints = true; + this.SchemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; + this.tableComponent_Reel_Result = new Component_Reel_ResultDataTable(); + base.Tables.Add(this.tableComponent_Reel_Result); + this.tableComponent_Reel_RegExRule = new Component_Reel_RegExRuleDataTable(); + base.Tables.Add(this.tableComponent_Reel_RegExRule); + this.tableComponent_Reel_SID_Convert = new Component_Reel_SID_ConvertDataTable(); + base.Tables.Add(this.tableComponent_Reel_SID_Convert); + this.tableComponent_Reel_SID_Information = new Component_Reel_SID_InformationDataTable(); + base.Tables.Add(this.tableComponent_Reel_SID_Information); + this.tableComponent_Reel_PreSet = new Component_Reel_PreSetDataTable(); + base.Tables.Add(this.tableComponent_Reel_PreSet); + this.tableComponent_Reel_CustInfo = new Component_Reel_CustInfoDataTable(); + base.Tables.Add(this.tableComponent_Reel_CustInfo); + this.tableResultSummary = new ResultSummaryDataTable(); + base.Tables.Add(this.tableResultSummary); + this.tableComponent_Reel_Print_Information = new Component_Reel_Print_InformationDataTable(); + base.Tables.Add(this.tableComponent_Reel_Print_Information); + this.tableComponent_Reel_PrintRegExRule = new Component_Reel_PrintRegExRuleDataTable(); + base.Tables.Add(this.tableComponent_Reel_PrintRegExRule); + this.tableSidinfoCustGroup = new SidinfoCustGroupDataTable(); + base.Tables.Add(this.tableSidinfoCustGroup); + this.tableUsers = new UsersDataTable(); + base.Tables.Add(this.tableUsers); + this.tableMCModel = new MCModelDataTable(); + base.Tables.Add(this.tableMCModel); + this.tablelanguage = new languageDataTable(); + base.Tables.Add(this.tablelanguage); + this.tableOPModel = new OPModelDataTable(); + base.Tables.Add(this.tableOPModel); + this.tableBCDData = new BCDDataDataTable(); + base.Tables.Add(this.tableBCDData); + this.tableUserSID = new UserSIDDataTable(); + base.Tables.Add(this.tableUserSID); + this.tableMailFormat = new MailFormatDataTable(); + base.Tables.Add(this.tableMailFormat); + this.tableMailRecipient = new MailRecipientDataTable(); + base.Tables.Add(this.tableMailRecipient); + this.tableSIDHistory = new SIDHistoryDataTable(); + base.Tables.Add(this.tableSIDHistory); + this.tableInputDescription = new InputDescriptionDataTable(); + base.Tables.Add(this.tableInputDescription); + this.tableOutputDescription = new OutputDescriptionDataTable(); + base.Tables.Add(this.tableOutputDescription); + this.tableUserTable = new UserTableDataTable(); + base.Tables.Add(this.tableUserTable); + this.tableErrorDescription = new ErrorDescriptionDataTable(); + base.Tables.Add(this.tableErrorDescription); + this.tableModelList = new ModelListDataTable(); + base.Tables.Add(this.tableModelList); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeComponent_Reel_Result() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeComponent_Reel_RegExRule() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeComponent_Reel_SID_Convert() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeComponent_Reel_SID_Information() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeComponent_Reel_PreSet() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeComponent_Reel_CustInfo() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeResultSummary() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeComponent_Reel_Print_Information() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeComponent_Reel_PrintRegExRule() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeSidinfoCustGroup() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeUsers() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeMCModel() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializelanguage() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeOPModel() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeBCDData() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeUserSID() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeMailFormat() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeMailRecipient() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeSIDHistory() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeInputDescription() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeOutputDescription() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeUserTable() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeErrorDescription() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeModelList() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void SchemaChanged(object sender, global::System.ComponentModel.CollectionChangeEventArgs e) { + if ((e.Action == global::System.ComponentModel.CollectionChangeAction.Remove)) { + this.InitVars(); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + global::System.Xml.Schema.XmlSchemaAny any = new global::System.Xml.Schema.XmlSchemaAny(); + any.Namespace = ds.Namespace; + sequence.Items.Add(any); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void Component_Reel_ResultRowChangeEventHandler(object sender, Component_Reel_ResultRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void Component_Reel_RegExRuleRowChangeEventHandler(object sender, Component_Reel_RegExRuleRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void Component_Reel_SID_ConvertRowChangeEventHandler(object sender, Component_Reel_SID_ConvertRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void Component_Reel_SID_InformationRowChangeEventHandler(object sender, Component_Reel_SID_InformationRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void Component_Reel_PreSetRowChangeEventHandler(object sender, Component_Reel_PreSetRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void Component_Reel_CustInfoRowChangeEventHandler(object sender, Component_Reel_CustInfoRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void ResultSummaryRowChangeEventHandler(object sender, ResultSummaryRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void Component_Reel_Print_InformationRowChangeEventHandler(object sender, Component_Reel_Print_InformationRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void Component_Reel_PrintRegExRuleRowChangeEventHandler(object sender, Component_Reel_PrintRegExRuleRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void SidinfoCustGroupRowChangeEventHandler(object sender, SidinfoCustGroupRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void UsersRowChangeEventHandler(object sender, UsersRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void MCModelRowChangeEventHandler(object sender, MCModelRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void languageRowChangeEventHandler(object sender, languageRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void OPModelRowChangeEventHandler(object sender, OPModelRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void BCDDataRowChangeEventHandler(object sender, BCDDataRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void UserSIDRowChangeEventHandler(object sender, UserSIDRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void MailFormatRowChangeEventHandler(object sender, MailFormatRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void MailRecipientRowChangeEventHandler(object sender, MailRecipientRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void SIDHistoryRowChangeEventHandler(object sender, SIDHistoryRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void InputDescriptionRowChangeEventHandler(object sender, InputDescriptionRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void OutputDescriptionRowChangeEventHandler(object sender, OutputDescriptionRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void UserTableRowChangeEventHandler(object sender, UserTableRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void ErrorDescriptionRowChangeEventHandler(object sender, ErrorDescriptionRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void ModelListRowChangeEventHandler(object sender, ModelListRowChangeEvent e); + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class Component_Reel_ResultDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnidx; + + private global::System.Data.DataColumn columnSTIME; + + private global::System.Data.DataColumn columnETIME; + + private global::System.Data.DataColumn columnPDATE; + + private global::System.Data.DataColumn columnJTYPE; + + private global::System.Data.DataColumn columnJGUID; + + private global::System.Data.DataColumn columnSID; + + private global::System.Data.DataColumn columnSID0; + + private global::System.Data.DataColumn columnRID; + + private global::System.Data.DataColumn columnRID0; + + private global::System.Data.DataColumn columnRSN; + + private global::System.Data.DataColumn columnQR; + + private global::System.Data.DataColumn columnZPL; + + private global::System.Data.DataColumn columnPOS; + + private global::System.Data.DataColumn columnLOC; + + private global::System.Data.DataColumn columnANGLE; + + private global::System.Data.DataColumn columnQTY; + + private global::System.Data.DataColumn columnQTY0; + + private global::System.Data.DataColumn columnwdate; + + private global::System.Data.DataColumn columnVNAME; + + private global::System.Data.DataColumn columnPRNATTACH; + + private global::System.Data.DataColumn columnPRNVALID; + + private global::System.Data.DataColumn columnPTIME; + + private global::System.Data.DataColumn columnMFGDATE; + + private global::System.Data.DataColumn columnVLOT; + + private global::System.Data.DataColumn columnREMARK; + + private global::System.Data.DataColumn columnMC; + + private global::System.Data.DataColumn columnPARTNO; + + private global::System.Data.DataColumn columnCUSTCODE; + + private global::System.Data.DataColumn columnATIME; + + private global::System.Data.DataColumn columnBATCH; + + private global::System.Data.DataColumn columnqtymax; + + private global::System.Data.DataColumn columnGUID; + + private global::System.Data.DataColumn columniNBOUND; + + private global::System.Data.DataColumn columnMCN; + + private global::System.Data.DataColumn columntarget; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_ResultDataTable() { + this.TableName = "Component_Reel_Result"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal Component_Reel_ResultDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected Component_Reel_ResultDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn idxColumn { + get { + return this.columnidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn STIMEColumn { + get { + return this.columnSTIME; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ETIMEColumn { + get { + return this.columnETIME; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn PDATEColumn { + get { + return this.columnPDATE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn JTYPEColumn { + get { + return this.columnJTYPE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn JGUIDColumn { + get { + return this.columnJGUID; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SIDColumn { + get { + return this.columnSID; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SID0Column { + get { + return this.columnSID0; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn RIDColumn { + get { + return this.columnRID; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn RID0Column { + get { + return this.columnRID0; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn RSNColumn { + get { + return this.columnRSN; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn QRColumn { + get { + return this.columnQR; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ZPLColumn { + get { + return this.columnZPL; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn POSColumn { + get { + return this.columnPOS; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn LOCColumn { + get { + return this.columnLOC; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ANGLEColumn { + get { + return this.columnANGLE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn QTYColumn { + get { + return this.columnQTY; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn QTY0Column { + get { + return this.columnQTY0; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn wdateColumn { + get { + return this.columnwdate; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn VNAMEColumn { + get { + return this.columnVNAME; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn PRNATTACHColumn { + get { + return this.columnPRNATTACH; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn PRNVALIDColumn { + get { + return this.columnPRNVALID; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn PTIMEColumn { + get { + return this.columnPTIME; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn MFGDATEColumn { + get { + return this.columnMFGDATE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn VLOTColumn { + get { + return this.columnVLOT; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn REMARKColumn { + get { + return this.columnREMARK; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn MCColumn { + get { + return this.columnMC; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn PARTNOColumn { + get { + return this.columnPARTNO; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn CUSTCODEColumn { + get { + return this.columnCUSTCODE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ATIMEColumn { + get { + return this.columnATIME; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn BATCHColumn { + get { + return this.columnBATCH; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn qtymaxColumn { + get { + return this.columnqtymax; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn GUIDColumn { + get { + return this.columnGUID; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn iNBOUNDColumn { + get { + return this.columniNBOUND; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn MCNColumn { + get { + return this.columnMCN; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn targetColumn { + get { + return this.columntarget; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_ResultRow this[int index] { + get { + return ((Component_Reel_ResultRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_ResultRowChangeEventHandler Component_Reel_ResultRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_ResultRowChangeEventHandler Component_Reel_ResultRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_ResultRowChangeEventHandler Component_Reel_ResultRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_ResultRowChangeEventHandler Component_Reel_ResultRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddComponent_Reel_ResultRow(Component_Reel_ResultRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_ResultRow AddComponent_Reel_ResultRow( + System.DateTime STIME, + System.DateTime ETIME, + string PDATE, + string JTYPE, + string JGUID, + string SID, + string SID0, + string RID, + string RID0, + string RSN, + string QR, + string ZPL, + string POS, + string LOC, + double ANGLE, + int QTY, + int QTY0, + System.DateTime wdate, + string VNAME, + bool PRNATTACH, + bool PRNVALID, + System.DateTime PTIME, + string MFGDATE, + string VLOT, + string REMARK, + string MC, + string PARTNO, + string CUSTCODE, + System.DateTime ATIME, + string BATCH, + int qtymax, + System.Guid GUID, + string iNBOUND, + string MCN, + string target) { + Component_Reel_ResultRow rowComponent_Reel_ResultRow = ((Component_Reel_ResultRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + STIME, + ETIME, + PDATE, + JTYPE, + JGUID, + SID, + SID0, + RID, + RID0, + RSN, + QR, + ZPL, + POS, + LOC, + ANGLE, + QTY, + QTY0, + wdate, + VNAME, + PRNATTACH, + PRNVALID, + PTIME, + MFGDATE, + VLOT, + REMARK, + MC, + PARTNO, + CUSTCODE, + ATIME, + BATCH, + qtymax, + GUID, + iNBOUND, + MCN, + target}; + rowComponent_Reel_ResultRow.ItemArray = columnValuesArray; + this.Rows.Add(rowComponent_Reel_ResultRow); + return rowComponent_Reel_ResultRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_ResultRow FindByidx(int idx) { + return ((Component_Reel_ResultRow)(this.Rows.Find(new object[] { + idx}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + Component_Reel_ResultDataTable cln = ((Component_Reel_ResultDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new Component_Reel_ResultDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnidx = base.Columns["idx"]; + this.columnSTIME = base.Columns["STIME"]; + this.columnETIME = base.Columns["ETIME"]; + this.columnPDATE = base.Columns["PDATE"]; + this.columnJTYPE = base.Columns["JTYPE"]; + this.columnJGUID = base.Columns["JGUID"]; + this.columnSID = base.Columns["SID"]; + this.columnSID0 = base.Columns["SID0"]; + this.columnRID = base.Columns["RID"]; + this.columnRID0 = base.Columns["RID0"]; + this.columnRSN = base.Columns["RSN"]; + this.columnQR = base.Columns["QR"]; + this.columnZPL = base.Columns["ZPL"]; + this.columnPOS = base.Columns["POS"]; + this.columnLOC = base.Columns["LOC"]; + this.columnANGLE = base.Columns["ANGLE"]; + this.columnQTY = base.Columns["QTY"]; + this.columnQTY0 = base.Columns["QTY0"]; + this.columnwdate = base.Columns["wdate"]; + this.columnVNAME = base.Columns["VNAME"]; + this.columnPRNATTACH = base.Columns["PRNATTACH"]; + this.columnPRNVALID = base.Columns["PRNVALID"]; + this.columnPTIME = base.Columns["PTIME"]; + this.columnMFGDATE = base.Columns["MFGDATE"]; + this.columnVLOT = base.Columns["VLOT"]; + this.columnREMARK = base.Columns["REMARK"]; + this.columnMC = base.Columns["MC"]; + this.columnPARTNO = base.Columns["PARTNO"]; + this.columnCUSTCODE = base.Columns["CUSTCODE"]; + this.columnATIME = base.Columns["ATIME"]; + this.columnBATCH = base.Columns["BATCH"]; + this.columnqtymax = base.Columns["qtymax"]; + this.columnGUID = base.Columns["GUID"]; + this.columniNBOUND = base.Columns["iNBOUND"]; + this.columnMCN = base.Columns["MCN"]; + this.columntarget = base.Columns["target"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnidx = new global::System.Data.DataColumn("idx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnidx); + this.columnSTIME = new global::System.Data.DataColumn("STIME", typeof(global::System.DateTime), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSTIME); + this.columnETIME = new global::System.Data.DataColumn("ETIME", typeof(global::System.DateTime), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnETIME); + this.columnPDATE = new global::System.Data.DataColumn("PDATE", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPDATE); + this.columnJTYPE = new global::System.Data.DataColumn("JTYPE", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnJTYPE); + this.columnJGUID = new global::System.Data.DataColumn("JGUID", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnJGUID); + this.columnSID = new global::System.Data.DataColumn("SID", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSID); + this.columnSID0 = new global::System.Data.DataColumn("SID0", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSID0); + this.columnRID = new global::System.Data.DataColumn("RID", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnRID); + this.columnRID0 = new global::System.Data.DataColumn("RID0", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnRID0); + this.columnRSN = new global::System.Data.DataColumn("RSN", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnRSN); + this.columnQR = new global::System.Data.DataColumn("QR", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnQR); + this.columnZPL = new global::System.Data.DataColumn("ZPL", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnZPL); + this.columnPOS = new global::System.Data.DataColumn("POS", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPOS); + this.columnLOC = new global::System.Data.DataColumn("LOC", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnLOC); + this.columnANGLE = new global::System.Data.DataColumn("ANGLE", typeof(double), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnANGLE); + this.columnQTY = new global::System.Data.DataColumn("QTY", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnQTY); + this.columnQTY0 = new global::System.Data.DataColumn("QTY0", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnQTY0); + this.columnwdate = new global::System.Data.DataColumn("wdate", typeof(global::System.DateTime), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnwdate); + this.columnVNAME = new global::System.Data.DataColumn("VNAME", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnVNAME); + this.columnPRNATTACH = new global::System.Data.DataColumn("PRNATTACH", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPRNATTACH); + this.columnPRNVALID = new global::System.Data.DataColumn("PRNVALID", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPRNVALID); + this.columnPTIME = new global::System.Data.DataColumn("PTIME", typeof(global::System.DateTime), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPTIME); + this.columnMFGDATE = new global::System.Data.DataColumn("MFGDATE", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMFGDATE); + this.columnVLOT = new global::System.Data.DataColumn("VLOT", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnVLOT); + this.columnREMARK = new global::System.Data.DataColumn("REMARK", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnREMARK); + this.columnMC = new global::System.Data.DataColumn("MC", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMC); + this.columnPARTNO = new global::System.Data.DataColumn("PARTNO", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPARTNO); + this.columnCUSTCODE = new global::System.Data.DataColumn("CUSTCODE", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCUSTCODE); + this.columnATIME = new global::System.Data.DataColumn("ATIME", typeof(global::System.DateTime), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnATIME); + this.columnBATCH = new global::System.Data.DataColumn("BATCH", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnBATCH); + this.columnqtymax = new global::System.Data.DataColumn("qtymax", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnqtymax); + this.columnGUID = new global::System.Data.DataColumn("GUID", typeof(global::System.Guid), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnGUID); + this.columniNBOUND = new global::System.Data.DataColumn("iNBOUND", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columniNBOUND); + this.columnMCN = new global::System.Data.DataColumn("MCN", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMCN); + this.columntarget = new global::System.Data.DataColumn("target", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columntarget); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnidx}, true)); + this.columnidx.AutoIncrement = true; + this.columnidx.AutoIncrementSeed = -1; + this.columnidx.AutoIncrementStep = -1; + this.columnidx.AllowDBNull = false; + this.columnidx.ReadOnly = true; + this.columnidx.Unique = true; + this.columnSTIME.AllowDBNull = false; + this.columnPDATE.MaxLength = 10; + this.columnJTYPE.MaxLength = 10; + this.columnJGUID.MaxLength = 50; + this.columnSID.MaxLength = 20; + this.columnSID0.MaxLength = 20; + this.columnRID.MaxLength = 50; + this.columnRID0.MaxLength = 50; + this.columnRSN.MaxLength = 10; + this.columnQR.MaxLength = 100; + this.columnZPL.MaxLength = 1000; + this.columnPOS.MaxLength = 10; + this.columnLOC.MaxLength = 1; + this.columnwdate.AllowDBNull = false; + this.columnVNAME.MaxLength = 100; + this.columnMFGDATE.MaxLength = 20; + this.columnVLOT.MaxLength = 100; + this.columnREMARK.MaxLength = 200; + this.columnMC.AllowDBNull = false; + this.columnMC.MaxLength = 10; + this.columnPARTNO.MaxLength = 100; + this.columnCUSTCODE.MaxLength = 20; + this.columnBATCH.MaxLength = 100; + this.columniNBOUND.MaxLength = 200; + this.columntarget.MaxLength = 10; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_ResultRow NewComponent_Reel_ResultRow() { + return ((Component_Reel_ResultRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new Component_Reel_ResultRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(Component_Reel_ResultRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.Component_Reel_ResultRowChanged != null)) { + this.Component_Reel_ResultRowChanged(this, new Component_Reel_ResultRowChangeEvent(((Component_Reel_ResultRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.Component_Reel_ResultRowChanging != null)) { + this.Component_Reel_ResultRowChanging(this, new Component_Reel_ResultRowChangeEvent(((Component_Reel_ResultRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.Component_Reel_ResultRowDeleted != null)) { + this.Component_Reel_ResultRowDeleted(this, new Component_Reel_ResultRowChangeEvent(((Component_Reel_ResultRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.Component_Reel_ResultRowDeleting != null)) { + this.Component_Reel_ResultRowDeleting(this, new Component_Reel_ResultRowChangeEvent(((Component_Reel_ResultRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveComponent_Reel_ResultRow(Component_Reel_ResultRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "Component_Reel_ResultDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class Component_Reel_RegExRuleDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnId; + + private global::System.Data.DataColumn columnSeq; + + private global::System.Data.DataColumn columnCustCode; + + private global::System.Data.DataColumn columnDescription; + + private global::System.Data.DataColumn columnSymbol; + + private global::System.Data.DataColumn columnPattern; + + private global::System.Data.DataColumn columnGroups; + + private global::System.Data.DataColumn columnIsEnable; + + private global::System.Data.DataColumn columnIsTrust; + + private global::System.Data.DataColumn columnIsAmkStd; + + private global::System.Data.DataColumn columnIsIgnore; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_RegExRuleDataTable() { + this.TableName = "Component_Reel_RegExRule"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal Component_Reel_RegExRuleDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected Component_Reel_RegExRuleDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IdColumn { + get { + return this.columnId; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SeqColumn { + get { + return this.columnSeq; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn CustCodeColumn { + get { + return this.columnCustCode; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn DescriptionColumn { + get { + return this.columnDescription; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SymbolColumn { + get { + return this.columnSymbol; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn PatternColumn { + get { + return this.columnPattern; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn GroupsColumn { + get { + return this.columnGroups; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IsEnableColumn { + get { + return this.columnIsEnable; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IsTrustColumn { + get { + return this.columnIsTrust; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IsAmkStdColumn { + get { + return this.columnIsAmkStd; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IsIgnoreColumn { + get { + return this.columnIsIgnore; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_RegExRuleRow this[int index] { + get { + return ((Component_Reel_RegExRuleRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_RegExRuleRowChangeEventHandler Component_Reel_RegExRuleRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_RegExRuleRowChangeEventHandler Component_Reel_RegExRuleRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_RegExRuleRowChangeEventHandler Component_Reel_RegExRuleRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_RegExRuleRowChangeEventHandler Component_Reel_RegExRuleRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddComponent_Reel_RegExRuleRow(Component_Reel_RegExRuleRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_RegExRuleRow AddComponent_Reel_RegExRuleRow(int Seq, string CustCode, string Description, string Symbol, string Pattern, string Groups, bool IsEnable, bool IsTrust, bool IsAmkStd, bool IsIgnore) { + Component_Reel_RegExRuleRow rowComponent_Reel_RegExRuleRow = ((Component_Reel_RegExRuleRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + Seq, + CustCode, + Description, + Symbol, + Pattern, + Groups, + IsEnable, + IsTrust, + IsAmkStd, + IsIgnore}; + rowComponent_Reel_RegExRuleRow.ItemArray = columnValuesArray; + this.Rows.Add(rowComponent_Reel_RegExRuleRow); + return rowComponent_Reel_RegExRuleRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_RegExRuleRow FindById(int Id) { + return ((Component_Reel_RegExRuleRow)(this.Rows.Find(new object[] { + Id}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + Component_Reel_RegExRuleDataTable cln = ((Component_Reel_RegExRuleDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new Component_Reel_RegExRuleDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnId = base.Columns["Id"]; + this.columnSeq = base.Columns["Seq"]; + this.columnCustCode = base.Columns["CustCode"]; + this.columnDescription = base.Columns["Description"]; + this.columnSymbol = base.Columns["Symbol"]; + this.columnPattern = base.Columns["Pattern"]; + this.columnGroups = base.Columns["Groups"]; + this.columnIsEnable = base.Columns["IsEnable"]; + this.columnIsTrust = base.Columns["IsTrust"]; + this.columnIsAmkStd = base.Columns["IsAmkStd"]; + this.columnIsIgnore = base.Columns["IsIgnore"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnId = new global::System.Data.DataColumn("Id", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnId); + this.columnSeq = new global::System.Data.DataColumn("Seq", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSeq); + this.columnCustCode = new global::System.Data.DataColumn("CustCode", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCustCode); + this.columnDescription = new global::System.Data.DataColumn("Description", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnDescription); + this.columnSymbol = new global::System.Data.DataColumn("Symbol", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSymbol); + this.columnPattern = new global::System.Data.DataColumn("Pattern", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPattern); + this.columnGroups = new global::System.Data.DataColumn("Groups", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnGroups); + this.columnIsEnable = new global::System.Data.DataColumn("IsEnable", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIsEnable); + this.columnIsTrust = new global::System.Data.DataColumn("IsTrust", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIsTrust); + this.columnIsAmkStd = new global::System.Data.DataColumn("IsAmkStd", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIsAmkStd); + this.columnIsIgnore = new global::System.Data.DataColumn("IsIgnore", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIsIgnore); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnId}, true)); + this.columnId.AutoIncrement = true; + this.columnId.AutoIncrementSeed = -1; + this.columnId.AutoIncrementStep = -1; + this.columnId.AllowDBNull = false; + this.columnId.ReadOnly = true; + this.columnId.Unique = true; + this.columnCustCode.MaxLength = 20; + this.columnDescription.MaxLength = 100; + this.columnSymbol.MaxLength = 3; + this.columnPattern.MaxLength = 2147483647; + this.columnGroups.MaxLength = 255; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_RegExRuleRow NewComponent_Reel_RegExRuleRow() { + return ((Component_Reel_RegExRuleRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new Component_Reel_RegExRuleRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(Component_Reel_RegExRuleRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.Component_Reel_RegExRuleRowChanged != null)) { + this.Component_Reel_RegExRuleRowChanged(this, new Component_Reel_RegExRuleRowChangeEvent(((Component_Reel_RegExRuleRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.Component_Reel_RegExRuleRowChanging != null)) { + this.Component_Reel_RegExRuleRowChanging(this, new Component_Reel_RegExRuleRowChangeEvent(((Component_Reel_RegExRuleRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.Component_Reel_RegExRuleRowDeleted != null)) { + this.Component_Reel_RegExRuleRowDeleted(this, new Component_Reel_RegExRuleRowChangeEvent(((Component_Reel_RegExRuleRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.Component_Reel_RegExRuleRowDeleting != null)) { + this.Component_Reel_RegExRuleRowDeleting(this, new Component_Reel_RegExRuleRowChangeEvent(((Component_Reel_RegExRuleRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveComponent_Reel_RegExRuleRow(Component_Reel_RegExRuleRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "Component_Reel_RegExRuleDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class Component_Reel_SID_ConvertDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnidx; + + private global::System.Data.DataColumn columnChk; + + private global::System.Data.DataColumn columnSIDFrom; + + private global::System.Data.DataColumn columnSIDTo; + + private global::System.Data.DataColumn columnRemark; + + private global::System.Data.DataColumn columnwdate; + + private global::System.Data.DataColumn columnMC; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_ConvertDataTable() { + this.TableName = "Component_Reel_SID_Convert"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal Component_Reel_SID_ConvertDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected Component_Reel_SID_ConvertDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn idxColumn { + get { + return this.columnidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ChkColumn { + get { + return this.columnChk; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SIDFromColumn { + get { + return this.columnSIDFrom; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SIDToColumn { + get { + return this.columnSIDTo; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn RemarkColumn { + get { + return this.columnRemark; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn wdateColumn { + get { + return this.columnwdate; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn MCColumn { + get { + return this.columnMC; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_ConvertRow this[int index] { + get { + return ((Component_Reel_SID_ConvertRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_SID_ConvertRowChangeEventHandler Component_Reel_SID_ConvertRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_SID_ConvertRowChangeEventHandler Component_Reel_SID_ConvertRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_SID_ConvertRowChangeEventHandler Component_Reel_SID_ConvertRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_SID_ConvertRowChangeEventHandler Component_Reel_SID_ConvertRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddComponent_Reel_SID_ConvertRow(Component_Reel_SID_ConvertRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_ConvertRow AddComponent_Reel_SID_ConvertRow(bool Chk, string SIDFrom, string SIDTo, string Remark, System.DateTime wdate, string MC) { + Component_Reel_SID_ConvertRow rowComponent_Reel_SID_ConvertRow = ((Component_Reel_SID_ConvertRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + Chk, + SIDFrom, + SIDTo, + Remark, + wdate, + MC}; + rowComponent_Reel_SID_ConvertRow.ItemArray = columnValuesArray; + this.Rows.Add(rowComponent_Reel_SID_ConvertRow); + return rowComponent_Reel_SID_ConvertRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_ConvertRow FindByidx(int idx) { + return ((Component_Reel_SID_ConvertRow)(this.Rows.Find(new object[] { + idx}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + Component_Reel_SID_ConvertDataTable cln = ((Component_Reel_SID_ConvertDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new Component_Reel_SID_ConvertDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnidx = base.Columns["idx"]; + this.columnChk = base.Columns["Chk"]; + this.columnSIDFrom = base.Columns["SIDFrom"]; + this.columnSIDTo = base.Columns["SIDTo"]; + this.columnRemark = base.Columns["Remark"]; + this.columnwdate = base.Columns["wdate"]; + this.columnMC = base.Columns["MC"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnidx = new global::System.Data.DataColumn("idx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnidx); + this.columnChk = new global::System.Data.DataColumn("Chk", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnChk); + this.columnSIDFrom = new global::System.Data.DataColumn("SIDFrom", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSIDFrom); + this.columnSIDTo = new global::System.Data.DataColumn("SIDTo", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSIDTo); + this.columnRemark = new global::System.Data.DataColumn("Remark", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnRemark); + this.columnwdate = new global::System.Data.DataColumn("wdate", typeof(global::System.DateTime), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnwdate); + this.columnMC = new global::System.Data.DataColumn("MC", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMC); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnidx}, true)); + this.columnidx.AutoIncrement = true; + this.columnidx.AutoIncrementSeed = -1; + this.columnidx.AutoIncrementStep = -1; + this.columnidx.AllowDBNull = false; + this.columnidx.ReadOnly = true; + this.columnidx.Unique = true; + this.columnSIDFrom.MaxLength = 20; + this.columnSIDTo.MaxLength = 20; + this.columnRemark.MaxLength = 100; + this.columnMC.MaxLength = 20; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_ConvertRow NewComponent_Reel_SID_ConvertRow() { + return ((Component_Reel_SID_ConvertRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new Component_Reel_SID_ConvertRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(Component_Reel_SID_ConvertRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.Component_Reel_SID_ConvertRowChanged != null)) { + this.Component_Reel_SID_ConvertRowChanged(this, new Component_Reel_SID_ConvertRowChangeEvent(((Component_Reel_SID_ConvertRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.Component_Reel_SID_ConvertRowChanging != null)) { + this.Component_Reel_SID_ConvertRowChanging(this, new Component_Reel_SID_ConvertRowChangeEvent(((Component_Reel_SID_ConvertRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.Component_Reel_SID_ConvertRowDeleted != null)) { + this.Component_Reel_SID_ConvertRowDeleted(this, new Component_Reel_SID_ConvertRowChangeEvent(((Component_Reel_SID_ConvertRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.Component_Reel_SID_ConvertRowDeleting != null)) { + this.Component_Reel_SID_ConvertRowDeleting(this, new Component_Reel_SID_ConvertRowChangeEvent(((Component_Reel_SID_ConvertRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveComponent_Reel_SID_ConvertRow(Component_Reel_SID_ConvertRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "Component_Reel_SID_ConvertDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class Component_Reel_SID_InformationDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnidx; + + private global::System.Data.DataColumn columnSID; + + private global::System.Data.DataColumn columnCustCode; + + private global::System.Data.DataColumn columnPartNo; + + private global::System.Data.DataColumn columnCustName; + + private global::System.Data.DataColumn columnVenderName; + + private global::System.Data.DataColumn columnRemark; + + private global::System.Data.DataColumn columnwdate; + + private global::System.Data.DataColumn columnMC; + + private global::System.Data.DataColumn columnbatch; + + private global::System.Data.DataColumn columnqtymax; + + private global::System.Data.DataColumn columnVenderLot; + + private global::System.Data.DataColumn columnattach; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_InformationDataTable() { + this.TableName = "Component_Reel_SID_Information"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal Component_Reel_SID_InformationDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected Component_Reel_SID_InformationDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn idxColumn { + get { + return this.columnidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SIDColumn { + get { + return this.columnSID; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn CustCodeColumn { + get { + return this.columnCustCode; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn PartNoColumn { + get { + return this.columnPartNo; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn CustNameColumn { + get { + return this.columnCustName; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn VenderNameColumn { + get { + return this.columnVenderName; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn RemarkColumn { + get { + return this.columnRemark; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn wdateColumn { + get { + return this.columnwdate; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn MCColumn { + get { + return this.columnMC; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn batchColumn { + get { + return this.columnbatch; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn qtymaxColumn { + get { + return this.columnqtymax; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn VenderLotColumn { + get { + return this.columnVenderLot; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn attachColumn { + get { + return this.columnattach; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_InformationRow this[int index] { + get { + return ((Component_Reel_SID_InformationRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_SID_InformationRowChangeEventHandler Component_Reel_SID_InformationRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_SID_InformationRowChangeEventHandler Component_Reel_SID_InformationRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_SID_InformationRowChangeEventHandler Component_Reel_SID_InformationRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_SID_InformationRowChangeEventHandler Component_Reel_SID_InformationRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddComponent_Reel_SID_InformationRow(Component_Reel_SID_InformationRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_InformationRow AddComponent_Reel_SID_InformationRow(string SID, string CustCode, string PartNo, string CustName, string VenderName, string Remark, System.DateTime wdate, string MC, string batch, int qtymax, string VenderLot, string attach) { + Component_Reel_SID_InformationRow rowComponent_Reel_SID_InformationRow = ((Component_Reel_SID_InformationRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + SID, + CustCode, + PartNo, + CustName, + VenderName, + Remark, + wdate, + MC, + batch, + qtymax, + VenderLot, + attach}; + rowComponent_Reel_SID_InformationRow.ItemArray = columnValuesArray; + this.Rows.Add(rowComponent_Reel_SID_InformationRow); + return rowComponent_Reel_SID_InformationRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_InformationRow FindByidx(int idx) { + return ((Component_Reel_SID_InformationRow)(this.Rows.Find(new object[] { + idx}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + Component_Reel_SID_InformationDataTable cln = ((Component_Reel_SID_InformationDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new Component_Reel_SID_InformationDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnidx = base.Columns["idx"]; + this.columnSID = base.Columns["SID"]; + this.columnCustCode = base.Columns["CustCode"]; + this.columnPartNo = base.Columns["PartNo"]; + this.columnCustName = base.Columns["CustName"]; + this.columnVenderName = base.Columns["VenderName"]; + this.columnRemark = base.Columns["Remark"]; + this.columnwdate = base.Columns["wdate"]; + this.columnMC = base.Columns["MC"]; + this.columnbatch = base.Columns["batch"]; + this.columnqtymax = base.Columns["qtymax"]; + this.columnVenderLot = base.Columns["VenderLot"]; + this.columnattach = base.Columns["attach"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnidx = new global::System.Data.DataColumn("idx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnidx); + this.columnSID = new global::System.Data.DataColumn("SID", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSID); + this.columnCustCode = new global::System.Data.DataColumn("CustCode", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCustCode); + this.columnPartNo = new global::System.Data.DataColumn("PartNo", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPartNo); + this.columnCustName = new global::System.Data.DataColumn("CustName", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCustName); + this.columnVenderName = new global::System.Data.DataColumn("VenderName", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnVenderName); + this.columnRemark = new global::System.Data.DataColumn("Remark", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnRemark); + this.columnwdate = new global::System.Data.DataColumn("wdate", typeof(global::System.DateTime), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnwdate); + this.columnMC = new global::System.Data.DataColumn("MC", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMC); + this.columnbatch = new global::System.Data.DataColumn("batch", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnbatch); + this.columnqtymax = new global::System.Data.DataColumn("qtymax", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnqtymax); + this.columnVenderLot = new global::System.Data.DataColumn("VenderLot", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnVenderLot); + this.columnattach = new global::System.Data.DataColumn("attach", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnattach); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnidx}, true)); + this.columnidx.AutoIncrement = true; + this.columnidx.AutoIncrementSeed = -1; + this.columnidx.AutoIncrementStep = -1; + this.columnidx.AllowDBNull = false; + this.columnidx.ReadOnly = true; + this.columnidx.Unique = true; + this.columnSID.AllowDBNull = false; + this.columnSID.MaxLength = 50; + this.columnCustCode.AllowDBNull = false; + this.columnCustCode.MaxLength = 10; + this.columnPartNo.AllowDBNull = false; + this.columnPartNo.MaxLength = 100; + this.columnCustName.MaxLength = 100; + this.columnVenderName.MaxLength = 100; + this.columnRemark.MaxLength = 100; + this.columnMC.MaxLength = 20; + this.columnbatch.MaxLength = 100; + this.columnVenderLot.MaxLength = 1000; + this.columnattach.MaxLength = 10; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_InformationRow NewComponent_Reel_SID_InformationRow() { + return ((Component_Reel_SID_InformationRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new Component_Reel_SID_InformationRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(Component_Reel_SID_InformationRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.Component_Reel_SID_InformationRowChanged != null)) { + this.Component_Reel_SID_InformationRowChanged(this, new Component_Reel_SID_InformationRowChangeEvent(((Component_Reel_SID_InformationRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.Component_Reel_SID_InformationRowChanging != null)) { + this.Component_Reel_SID_InformationRowChanging(this, new Component_Reel_SID_InformationRowChangeEvent(((Component_Reel_SID_InformationRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.Component_Reel_SID_InformationRowDeleted != null)) { + this.Component_Reel_SID_InformationRowDeleted(this, new Component_Reel_SID_InformationRowChangeEvent(((Component_Reel_SID_InformationRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.Component_Reel_SID_InformationRowDeleting != null)) { + this.Component_Reel_SID_InformationRowDeleting(this, new Component_Reel_SID_InformationRowChangeEvent(((Component_Reel_SID_InformationRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveComponent_Reel_SID_InformationRow(Component_Reel_SID_InformationRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "Component_Reel_SID_InformationDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class Component_Reel_PreSetDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnidx; + + private global::System.Data.DataColumn columnMC; + + private global::System.Data.DataColumn columnTitle; + + private global::System.Data.DataColumn columnRemark; + + private global::System.Data.DataColumn columnwdate; + + private global::System.Data.DataColumn columnvOption; + + private global::System.Data.DataColumn columnvJobInfo; + + private global::System.Data.DataColumn columnvSidInfo; + + private global::System.Data.DataColumn columnvServerWrite; + + private global::System.Data.DataColumn columnjobtype; + + private global::System.Data.DataColumn columnbypasssid; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_PreSetDataTable() { + this.TableName = "Component_Reel_PreSet"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal Component_Reel_PreSetDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected Component_Reel_PreSetDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn idxColumn { + get { + return this.columnidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn MCColumn { + get { + return this.columnMC; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn TitleColumn { + get { + return this.columnTitle; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn RemarkColumn { + get { + return this.columnRemark; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn wdateColumn { + get { + return this.columnwdate; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn vOptionColumn { + get { + return this.columnvOption; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn vJobInfoColumn { + get { + return this.columnvJobInfo; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn vSidInfoColumn { + get { + return this.columnvSidInfo; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn vServerWriteColumn { + get { + return this.columnvServerWrite; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn jobtypeColumn { + get { + return this.columnjobtype; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn bypasssidColumn { + get { + return this.columnbypasssid; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_PreSetRow this[int index] { + get { + return ((Component_Reel_PreSetRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_PreSetRowChangeEventHandler Component_Reel_PreSetRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_PreSetRowChangeEventHandler Component_Reel_PreSetRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_PreSetRowChangeEventHandler Component_Reel_PreSetRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_PreSetRowChangeEventHandler Component_Reel_PreSetRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddComponent_Reel_PreSetRow(Component_Reel_PreSetRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_PreSetRow AddComponent_Reel_PreSetRow(string MC, string Title, string Remark, System.DateTime wdate, int vOption, int vJobInfo, int vSidInfo, int vServerWrite, string jobtype, string bypasssid) { + Component_Reel_PreSetRow rowComponent_Reel_PreSetRow = ((Component_Reel_PreSetRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + MC, + Title, + Remark, + wdate, + vOption, + vJobInfo, + vSidInfo, + vServerWrite, + jobtype, + bypasssid}; + rowComponent_Reel_PreSetRow.ItemArray = columnValuesArray; + this.Rows.Add(rowComponent_Reel_PreSetRow); + return rowComponent_Reel_PreSetRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_PreSetRow FindByidx(int idx) { + return ((Component_Reel_PreSetRow)(this.Rows.Find(new object[] { + idx}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + Component_Reel_PreSetDataTable cln = ((Component_Reel_PreSetDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new Component_Reel_PreSetDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnidx = base.Columns["idx"]; + this.columnMC = base.Columns["MC"]; + this.columnTitle = base.Columns["Title"]; + this.columnRemark = base.Columns["Remark"]; + this.columnwdate = base.Columns["wdate"]; + this.columnvOption = base.Columns["vOption"]; + this.columnvJobInfo = base.Columns["vJobInfo"]; + this.columnvSidInfo = base.Columns["vSidInfo"]; + this.columnvServerWrite = base.Columns["vServerWrite"]; + this.columnjobtype = base.Columns["jobtype"]; + this.columnbypasssid = base.Columns["bypasssid"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnidx = new global::System.Data.DataColumn("idx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnidx); + this.columnMC = new global::System.Data.DataColumn("MC", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMC); + this.columnTitle = new global::System.Data.DataColumn("Title", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTitle); + this.columnRemark = new global::System.Data.DataColumn("Remark", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnRemark); + this.columnwdate = new global::System.Data.DataColumn("wdate", typeof(global::System.DateTime), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnwdate); + this.columnvOption = new global::System.Data.DataColumn("vOption", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnvOption); + this.columnvJobInfo = new global::System.Data.DataColumn("vJobInfo", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnvJobInfo); + this.columnvSidInfo = new global::System.Data.DataColumn("vSidInfo", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnvSidInfo); + this.columnvServerWrite = new global::System.Data.DataColumn("vServerWrite", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnvServerWrite); + this.columnjobtype = new global::System.Data.DataColumn("jobtype", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnjobtype); + this.columnbypasssid = new global::System.Data.DataColumn("bypasssid", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnbypasssid); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnidx}, true)); + this.columnidx.AutoIncrement = true; + this.columnidx.AutoIncrementSeed = -1; + this.columnidx.AutoIncrementStep = -1; + this.columnidx.AllowDBNull = false; + this.columnidx.ReadOnly = true; + this.columnidx.Unique = true; + this.columnMC.MaxLength = 20; + this.columnTitle.AllowDBNull = false; + this.columnTitle.MaxLength = 50; + this.columnRemark.MaxLength = 100; + this.columnjobtype.MaxLength = 10; + this.columnbypasssid.MaxLength = 255; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_PreSetRow NewComponent_Reel_PreSetRow() { + return ((Component_Reel_PreSetRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new Component_Reel_PreSetRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(Component_Reel_PreSetRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.Component_Reel_PreSetRowChanged != null)) { + this.Component_Reel_PreSetRowChanged(this, new Component_Reel_PreSetRowChangeEvent(((Component_Reel_PreSetRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.Component_Reel_PreSetRowChanging != null)) { + this.Component_Reel_PreSetRowChanging(this, new Component_Reel_PreSetRowChangeEvent(((Component_Reel_PreSetRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.Component_Reel_PreSetRowDeleted != null)) { + this.Component_Reel_PreSetRowDeleted(this, new Component_Reel_PreSetRowChangeEvent(((Component_Reel_PreSetRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.Component_Reel_PreSetRowDeleting != null)) { + this.Component_Reel_PreSetRowDeleting(this, new Component_Reel_PreSetRowChangeEvent(((Component_Reel_PreSetRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveComponent_Reel_PreSetRow(Component_Reel_PreSetRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "Component_Reel_PreSetDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class Component_Reel_CustInfoDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columncode; + + private global::System.Data.DataColumn columnname; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_CustInfoDataTable() { + this.TableName = "Component_Reel_CustInfo"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal Component_Reel_CustInfoDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected Component_Reel_CustInfoDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn codeColumn { + get { + return this.columncode; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn nameColumn { + get { + return this.columnname; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_CustInfoRow this[int index] { + get { + return ((Component_Reel_CustInfoRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_CustInfoRowChangeEventHandler Component_Reel_CustInfoRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_CustInfoRowChangeEventHandler Component_Reel_CustInfoRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_CustInfoRowChangeEventHandler Component_Reel_CustInfoRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_CustInfoRowChangeEventHandler Component_Reel_CustInfoRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddComponent_Reel_CustInfoRow(Component_Reel_CustInfoRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_CustInfoRow AddComponent_Reel_CustInfoRow(string code, string name) { + Component_Reel_CustInfoRow rowComponent_Reel_CustInfoRow = ((Component_Reel_CustInfoRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + code, + name}; + rowComponent_Reel_CustInfoRow.ItemArray = columnValuesArray; + this.Rows.Add(rowComponent_Reel_CustInfoRow); + return rowComponent_Reel_CustInfoRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_CustInfoRow FindBycode(string code) { + return ((Component_Reel_CustInfoRow)(this.Rows.Find(new object[] { + code}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + Component_Reel_CustInfoDataTable cln = ((Component_Reel_CustInfoDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new Component_Reel_CustInfoDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columncode = base.Columns["code"]; + this.columnname = base.Columns["name"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columncode = new global::System.Data.DataColumn("code", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columncode); + this.columnname = new global::System.Data.DataColumn("name", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnname); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columncode}, true)); + this.columncode.AllowDBNull = false; + this.columncode.Unique = true; + this.columncode.MaxLength = 10; + this.columnname.MaxLength = 100; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_CustInfoRow NewComponent_Reel_CustInfoRow() { + return ((Component_Reel_CustInfoRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new Component_Reel_CustInfoRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(Component_Reel_CustInfoRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.Component_Reel_CustInfoRowChanged != null)) { + this.Component_Reel_CustInfoRowChanged(this, new Component_Reel_CustInfoRowChangeEvent(((Component_Reel_CustInfoRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.Component_Reel_CustInfoRowChanging != null)) { + this.Component_Reel_CustInfoRowChanging(this, new Component_Reel_CustInfoRowChangeEvent(((Component_Reel_CustInfoRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.Component_Reel_CustInfoRowDeleted != null)) { + this.Component_Reel_CustInfoRowDeleted(this, new Component_Reel_CustInfoRowChangeEvent(((Component_Reel_CustInfoRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.Component_Reel_CustInfoRowDeleting != null)) { + this.Component_Reel_CustInfoRowDeleting(this, new Component_Reel_CustInfoRowChangeEvent(((Component_Reel_CustInfoRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveComponent_Reel_CustInfoRow(Component_Reel_CustInfoRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "Component_Reel_CustInfoDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class ResultSummaryDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnPARTNO; + + private global::System.Data.DataColumn columnVLOT; + + private global::System.Data.DataColumn columnQTY; + + private global::System.Data.DataColumn columnKPC; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ResultSummaryDataTable() { + this.TableName = "ResultSummary"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal ResultSummaryDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected ResultSummaryDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn PARTNOColumn { + get { + return this.columnPARTNO; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn VLOTColumn { + get { + return this.columnVLOT; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn QTYColumn { + get { + return this.columnQTY; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn KPCColumn { + get { + return this.columnKPC; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ResultSummaryRow this[int index] { + get { + return ((ResultSummaryRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event ResultSummaryRowChangeEventHandler ResultSummaryRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event ResultSummaryRowChangeEventHandler ResultSummaryRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event ResultSummaryRowChangeEventHandler ResultSummaryRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event ResultSummaryRowChangeEventHandler ResultSummaryRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddResultSummaryRow(ResultSummaryRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ResultSummaryRow AddResultSummaryRow(string PARTNO, string VLOT, int QTY, int KPC) { + ResultSummaryRow rowResultSummaryRow = ((ResultSummaryRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + PARTNO, + VLOT, + QTY, + KPC}; + rowResultSummaryRow.ItemArray = columnValuesArray; + this.Rows.Add(rowResultSummaryRow); + return rowResultSummaryRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ResultSummaryRow FindByPARTNOVLOT(string PARTNO, string VLOT) { + return ((ResultSummaryRow)(this.Rows.Find(new object[] { + PARTNO, + VLOT}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + ResultSummaryDataTable cln = ((ResultSummaryDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new ResultSummaryDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnPARTNO = base.Columns["PARTNO"]; + this.columnVLOT = base.Columns["VLOT"]; + this.columnQTY = base.Columns["QTY"]; + this.columnKPC = base.Columns["KPC"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnPARTNO = new global::System.Data.DataColumn("PARTNO", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPARTNO); + this.columnVLOT = new global::System.Data.DataColumn("VLOT", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnVLOT); + this.columnQTY = new global::System.Data.DataColumn("QTY", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnQTY); + this.columnKPC = new global::System.Data.DataColumn("KPC", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnKPC); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnPARTNO, + this.columnVLOT}, true)); + this.columnPARTNO.AllowDBNull = false; + this.columnPARTNO.MaxLength = 100; + this.columnVLOT.AllowDBNull = false; + this.columnVLOT.MaxLength = 100; + this.columnQTY.ReadOnly = true; + this.columnKPC.ReadOnly = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ResultSummaryRow NewResultSummaryRow() { + return ((ResultSummaryRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new ResultSummaryRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(ResultSummaryRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.ResultSummaryRowChanged != null)) { + this.ResultSummaryRowChanged(this, new ResultSummaryRowChangeEvent(((ResultSummaryRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.ResultSummaryRowChanging != null)) { + this.ResultSummaryRowChanging(this, new ResultSummaryRowChangeEvent(((ResultSummaryRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.ResultSummaryRowDeleted != null)) { + this.ResultSummaryRowDeleted(this, new ResultSummaryRowChangeEvent(((ResultSummaryRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.ResultSummaryRowDeleting != null)) { + this.ResultSummaryRowDeleting(this, new ResultSummaryRowChangeEvent(((ResultSummaryRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveResultSummaryRow(ResultSummaryRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "ResultSummaryDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class Component_Reel_Print_InformationDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnidx; + + private global::System.Data.DataColumn columnMC; + + private global::System.Data.DataColumn columnSID; + + private global::System.Data.DataColumn columnPrintPosition; + + private global::System.Data.DataColumn columnRemark; + + private global::System.Data.DataColumn columnwdate; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_Print_InformationDataTable() { + this.TableName = "Component_Reel_Print_Information"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal Component_Reel_Print_InformationDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected Component_Reel_Print_InformationDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn idxColumn { + get { + return this.columnidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn MCColumn { + get { + return this.columnMC; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SIDColumn { + get { + return this.columnSID; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn PrintPositionColumn { + get { + return this.columnPrintPosition; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn RemarkColumn { + get { + return this.columnRemark; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn wdateColumn { + get { + return this.columnwdate; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_Print_InformationRow this[int index] { + get { + return ((Component_Reel_Print_InformationRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_Print_InformationRowChangeEventHandler Component_Reel_Print_InformationRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_Print_InformationRowChangeEventHandler Component_Reel_Print_InformationRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_Print_InformationRowChangeEventHandler Component_Reel_Print_InformationRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_Print_InformationRowChangeEventHandler Component_Reel_Print_InformationRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddComponent_Reel_Print_InformationRow(Component_Reel_Print_InformationRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_Print_InformationRow AddComponent_Reel_Print_InformationRow(string MC, string SID, string PrintPosition, string Remark, System.DateTime wdate) { + Component_Reel_Print_InformationRow rowComponent_Reel_Print_InformationRow = ((Component_Reel_Print_InformationRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + MC, + SID, + PrintPosition, + Remark, + wdate}; + rowComponent_Reel_Print_InformationRow.ItemArray = columnValuesArray; + this.Rows.Add(rowComponent_Reel_Print_InformationRow); + return rowComponent_Reel_Print_InformationRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_Print_InformationRow FindByidx(int idx) { + return ((Component_Reel_Print_InformationRow)(this.Rows.Find(new object[] { + idx}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + Component_Reel_Print_InformationDataTable cln = ((Component_Reel_Print_InformationDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new Component_Reel_Print_InformationDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnidx = base.Columns["idx"]; + this.columnMC = base.Columns["MC"]; + this.columnSID = base.Columns["SID"]; + this.columnPrintPosition = base.Columns["PrintPosition"]; + this.columnRemark = base.Columns["Remark"]; + this.columnwdate = base.Columns["wdate"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnidx = new global::System.Data.DataColumn("idx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnidx); + this.columnMC = new global::System.Data.DataColumn("MC", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMC); + this.columnSID = new global::System.Data.DataColumn("SID", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSID); + this.columnPrintPosition = new global::System.Data.DataColumn("PrintPosition", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPrintPosition); + this.columnRemark = new global::System.Data.DataColumn("Remark", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnRemark); + this.columnwdate = new global::System.Data.DataColumn("wdate", typeof(global::System.DateTime), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnwdate); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnidx}, true)); + this.columnidx.AutoIncrement = true; + this.columnidx.AutoIncrementSeed = -1; + this.columnidx.AutoIncrementStep = -1; + this.columnidx.AllowDBNull = false; + this.columnidx.ReadOnly = true; + this.columnidx.Unique = true; + this.columnMC.MaxLength = 20; + this.columnSID.AllowDBNull = false; + this.columnSID.MaxLength = 50; + this.columnPrintPosition.MaxLength = 10; + this.columnRemark.MaxLength = 100; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_Print_InformationRow NewComponent_Reel_Print_InformationRow() { + return ((Component_Reel_Print_InformationRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new Component_Reel_Print_InformationRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(Component_Reel_Print_InformationRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.Component_Reel_Print_InformationRowChanged != null)) { + this.Component_Reel_Print_InformationRowChanged(this, new Component_Reel_Print_InformationRowChangeEvent(((Component_Reel_Print_InformationRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.Component_Reel_Print_InformationRowChanging != null)) { + this.Component_Reel_Print_InformationRowChanging(this, new Component_Reel_Print_InformationRowChangeEvent(((Component_Reel_Print_InformationRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.Component_Reel_Print_InformationRowDeleted != null)) { + this.Component_Reel_Print_InformationRowDeleted(this, new Component_Reel_Print_InformationRowChangeEvent(((Component_Reel_Print_InformationRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.Component_Reel_Print_InformationRowDeleting != null)) { + this.Component_Reel_Print_InformationRowDeleting(this, new Component_Reel_Print_InformationRowChangeEvent(((Component_Reel_Print_InformationRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveComponent_Reel_Print_InformationRow(Component_Reel_Print_InformationRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "Component_Reel_Print_InformationDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class Component_Reel_PrintRegExRuleDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnId; + + private global::System.Data.DataColumn columnSeq; + + private global::System.Data.DataColumn columnCustCode; + + private global::System.Data.DataColumn columnDescription; + + private global::System.Data.DataColumn columnSymbol; + + private global::System.Data.DataColumn columnPattern; + + private global::System.Data.DataColumn columnGroups; + + private global::System.Data.DataColumn columnIsEnable; + + private global::System.Data.DataColumn columnIsTrust; + + private global::System.Data.DataColumn columnIsAmkStd; + + private global::System.Data.DataColumn columnIsIgnore; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_PrintRegExRuleDataTable() { + this.TableName = "Component_Reel_PrintRegExRule"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal Component_Reel_PrintRegExRuleDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected Component_Reel_PrintRegExRuleDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IdColumn { + get { + return this.columnId; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SeqColumn { + get { + return this.columnSeq; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn CustCodeColumn { + get { + return this.columnCustCode; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn DescriptionColumn { + get { + return this.columnDescription; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SymbolColumn { + get { + return this.columnSymbol; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn PatternColumn { + get { + return this.columnPattern; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn GroupsColumn { + get { + return this.columnGroups; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IsEnableColumn { + get { + return this.columnIsEnable; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IsTrustColumn { + get { + return this.columnIsTrust; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IsAmkStdColumn { + get { + return this.columnIsAmkStd; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IsIgnoreColumn { + get { + return this.columnIsIgnore; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_PrintRegExRuleRow this[int index] { + get { + return ((Component_Reel_PrintRegExRuleRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_PrintRegExRuleRowChangeEventHandler Component_Reel_PrintRegExRuleRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_PrintRegExRuleRowChangeEventHandler Component_Reel_PrintRegExRuleRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_PrintRegExRuleRowChangeEventHandler Component_Reel_PrintRegExRuleRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_PrintRegExRuleRowChangeEventHandler Component_Reel_PrintRegExRuleRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddComponent_Reel_PrintRegExRuleRow(Component_Reel_PrintRegExRuleRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_PrintRegExRuleRow AddComponent_Reel_PrintRegExRuleRow(int Seq, string CustCode, string Description, string Symbol, string Pattern, string Groups, bool IsEnable, bool IsTrust, bool IsAmkStd, bool IsIgnore) { + Component_Reel_PrintRegExRuleRow rowComponent_Reel_PrintRegExRuleRow = ((Component_Reel_PrintRegExRuleRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + Seq, + CustCode, + Description, + Symbol, + Pattern, + Groups, + IsEnable, + IsTrust, + IsAmkStd, + IsIgnore}; + rowComponent_Reel_PrintRegExRuleRow.ItemArray = columnValuesArray; + this.Rows.Add(rowComponent_Reel_PrintRegExRuleRow); + return rowComponent_Reel_PrintRegExRuleRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_PrintRegExRuleRow FindById(int Id) { + return ((Component_Reel_PrintRegExRuleRow)(this.Rows.Find(new object[] { + Id}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + Component_Reel_PrintRegExRuleDataTable cln = ((Component_Reel_PrintRegExRuleDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new Component_Reel_PrintRegExRuleDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnId = base.Columns["Id"]; + this.columnSeq = base.Columns["Seq"]; + this.columnCustCode = base.Columns["CustCode"]; + this.columnDescription = base.Columns["Description"]; + this.columnSymbol = base.Columns["Symbol"]; + this.columnPattern = base.Columns["Pattern"]; + this.columnGroups = base.Columns["Groups"]; + this.columnIsEnable = base.Columns["IsEnable"]; + this.columnIsTrust = base.Columns["IsTrust"]; + this.columnIsAmkStd = base.Columns["IsAmkStd"]; + this.columnIsIgnore = base.Columns["IsIgnore"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnId = new global::System.Data.DataColumn("Id", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnId); + this.columnSeq = new global::System.Data.DataColumn("Seq", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSeq); + this.columnCustCode = new global::System.Data.DataColumn("CustCode", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCustCode); + this.columnDescription = new global::System.Data.DataColumn("Description", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnDescription); + this.columnSymbol = new global::System.Data.DataColumn("Symbol", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSymbol); + this.columnPattern = new global::System.Data.DataColumn("Pattern", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPattern); + this.columnGroups = new global::System.Data.DataColumn("Groups", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnGroups); + this.columnIsEnable = new global::System.Data.DataColumn("IsEnable", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIsEnable); + this.columnIsTrust = new global::System.Data.DataColumn("IsTrust", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIsTrust); + this.columnIsAmkStd = new global::System.Data.DataColumn("IsAmkStd", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIsAmkStd); + this.columnIsIgnore = new global::System.Data.DataColumn("IsIgnore", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIsIgnore); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnId}, true)); + this.columnId.AutoIncrement = true; + this.columnId.AutoIncrementSeed = -1; + this.columnId.AutoIncrementStep = -1; + this.columnId.AllowDBNull = false; + this.columnId.ReadOnly = true; + this.columnId.Unique = true; + this.columnCustCode.MaxLength = 20; + this.columnDescription.MaxLength = 100; + this.columnSymbol.MaxLength = 3; + this.columnPattern.MaxLength = 2147483647; + this.columnGroups.MaxLength = 255; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_PrintRegExRuleRow NewComponent_Reel_PrintRegExRuleRow() { + return ((Component_Reel_PrintRegExRuleRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new Component_Reel_PrintRegExRuleRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(Component_Reel_PrintRegExRuleRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.Component_Reel_PrintRegExRuleRowChanged != null)) { + this.Component_Reel_PrintRegExRuleRowChanged(this, new Component_Reel_PrintRegExRuleRowChangeEvent(((Component_Reel_PrintRegExRuleRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.Component_Reel_PrintRegExRuleRowChanging != null)) { + this.Component_Reel_PrintRegExRuleRowChanging(this, new Component_Reel_PrintRegExRuleRowChangeEvent(((Component_Reel_PrintRegExRuleRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.Component_Reel_PrintRegExRuleRowDeleted != null)) { + this.Component_Reel_PrintRegExRuleRowDeleted(this, new Component_Reel_PrintRegExRuleRowChangeEvent(((Component_Reel_PrintRegExRuleRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.Component_Reel_PrintRegExRuleRowDeleting != null)) { + this.Component_Reel_PrintRegExRuleRowDeleting(this, new Component_Reel_PrintRegExRuleRowChangeEvent(((Component_Reel_PrintRegExRuleRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveComponent_Reel_PrintRegExRuleRow(Component_Reel_PrintRegExRuleRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "Component_Reel_PrintRegExRuleDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class SidinfoCustGroupDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnCustCode; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public SidinfoCustGroupDataTable() { + this.TableName = "SidinfoCustGroup"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal SidinfoCustGroupDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected SidinfoCustGroupDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn CustCodeColumn { + get { + return this.columnCustCode; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public SidinfoCustGroupRow this[int index] { + get { + return ((SidinfoCustGroupRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event SidinfoCustGroupRowChangeEventHandler SidinfoCustGroupRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event SidinfoCustGroupRowChangeEventHandler SidinfoCustGroupRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event SidinfoCustGroupRowChangeEventHandler SidinfoCustGroupRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event SidinfoCustGroupRowChangeEventHandler SidinfoCustGroupRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddSidinfoCustGroupRow(SidinfoCustGroupRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public SidinfoCustGroupRow AddSidinfoCustGroupRow(string CustCode) { + SidinfoCustGroupRow rowSidinfoCustGroupRow = ((SidinfoCustGroupRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + CustCode}; + rowSidinfoCustGroupRow.ItemArray = columnValuesArray; + this.Rows.Add(rowSidinfoCustGroupRow); + return rowSidinfoCustGroupRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public SidinfoCustGroupRow FindByCustCode(string CustCode) { + return ((SidinfoCustGroupRow)(this.Rows.Find(new object[] { + CustCode}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + SidinfoCustGroupDataTable cln = ((SidinfoCustGroupDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new SidinfoCustGroupDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnCustCode = base.Columns["CustCode"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnCustCode = new global::System.Data.DataColumn("CustCode", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCustCode); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnCustCode}, true)); + this.columnCustCode.AllowDBNull = false; + this.columnCustCode.Unique = true; + this.columnCustCode.MaxLength = 10; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public SidinfoCustGroupRow NewSidinfoCustGroupRow() { + return ((SidinfoCustGroupRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new SidinfoCustGroupRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(SidinfoCustGroupRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.SidinfoCustGroupRowChanged != null)) { + this.SidinfoCustGroupRowChanged(this, new SidinfoCustGroupRowChangeEvent(((SidinfoCustGroupRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.SidinfoCustGroupRowChanging != null)) { + this.SidinfoCustGroupRowChanging(this, new SidinfoCustGroupRowChangeEvent(((SidinfoCustGroupRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.SidinfoCustGroupRowDeleted != null)) { + this.SidinfoCustGroupRowDeleted(this, new SidinfoCustGroupRowChangeEvent(((SidinfoCustGroupRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.SidinfoCustGroupRowDeleting != null)) { + this.SidinfoCustGroupRowDeleting(this, new SidinfoCustGroupRowChangeEvent(((SidinfoCustGroupRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveSidinfoCustGroupRow(SidinfoCustGroupRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "SidinfoCustGroupDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class UsersDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnidx; + + private global::System.Data.DataColumn columnNo; + + private global::System.Data.DataColumn columnName; + + private global::System.Data.DataColumn columnMemo; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public UsersDataTable() { + this.TableName = "Users"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal UsersDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected UsersDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn idxColumn { + get { + return this.columnidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn NoColumn { + get { + return this.columnNo; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn NameColumn { + get { + return this.columnName; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn MemoColumn { + get { + return this.columnMemo; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public UsersRow this[int index] { + get { + return ((UsersRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event UsersRowChangeEventHandler UsersRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event UsersRowChangeEventHandler UsersRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event UsersRowChangeEventHandler UsersRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event UsersRowChangeEventHandler UsersRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddUsersRow(UsersRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public UsersRow AddUsersRow(string No, string Name, string Memo) { + UsersRow rowUsersRow = ((UsersRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + No, + Name, + Memo}; + rowUsersRow.ItemArray = columnValuesArray; + this.Rows.Add(rowUsersRow); + return rowUsersRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public UsersRow FindByidx(int idx) { + return ((UsersRow)(this.Rows.Find(new object[] { + idx}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + UsersDataTable cln = ((UsersDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new UsersDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnidx = base.Columns["idx"]; + this.columnNo = base.Columns["No"]; + this.columnName = base.Columns["Name"]; + this.columnMemo = base.Columns["Memo"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnidx = new global::System.Data.DataColumn("idx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnidx); + this.columnNo = new global::System.Data.DataColumn("No", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnNo); + this.columnName = new global::System.Data.DataColumn("Name", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnName); + this.columnMemo = new global::System.Data.DataColumn("Memo", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMemo); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnidx}, true)); + this.columnidx.AutoIncrement = true; + this.columnidx.AutoIncrementSeed = 1; + this.columnidx.AllowDBNull = false; + this.columnidx.Unique = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public UsersRow NewUsersRow() { + return ((UsersRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new UsersRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(UsersRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.UsersRowChanged != null)) { + this.UsersRowChanged(this, new UsersRowChangeEvent(((UsersRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.UsersRowChanging != null)) { + this.UsersRowChanging(this, new UsersRowChangeEvent(((UsersRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.UsersRowDeleted != null)) { + this.UsersRowDeleted(this, new UsersRowChangeEvent(((UsersRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.UsersRowDeleting != null)) { + this.UsersRowDeleting(this, new UsersRowChangeEvent(((UsersRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveUsersRow(UsersRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "UsersDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class MCModelDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnidx; + + private global::System.Data.DataColumn columnTitle; + + private global::System.Data.DataColumn columnpidx; + + private global::System.Data.DataColumn columnMotIndex; + + private global::System.Data.DataColumn columnPosIndex; + + private global::System.Data.DataColumn columnPosTitle; + + private global::System.Data.DataColumn columnPosition; + + private global::System.Data.DataColumn columnSpdTitle; + + private global::System.Data.DataColumn columnSpeed; + + private global::System.Data.DataColumn columnSpeedAcc; + + private global::System.Data.DataColumn columnCheck; + + private global::System.Data.DataColumn columnSpeedDcc; + + private global::System.Data.DataColumn columnDescription; + + private global::System.Data.DataColumn columnCategory; + + private global::System.Data.DataColumn columnMotName; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public MCModelDataTable() { + this.TableName = "MCModel"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal MCModelDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected MCModelDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn idxColumn { + get { + return this.columnidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn TitleColumn { + get { + return this.columnTitle; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn pidxColumn { + get { + return this.columnpidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn MotIndexColumn { + get { + return this.columnMotIndex; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn PosIndexColumn { + get { + return this.columnPosIndex; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn PosTitleColumn { + get { + return this.columnPosTitle; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn PositionColumn { + get { + return this.columnPosition; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SpdTitleColumn { + get { + return this.columnSpdTitle; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SpeedColumn { + get { + return this.columnSpeed; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SpeedAccColumn { + get { + return this.columnSpeedAcc; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn CheckColumn { + get { + return this.columnCheck; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SpeedDccColumn { + get { + return this.columnSpeedDcc; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn DescriptionColumn { + get { + return this.columnDescription; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn CategoryColumn { + get { + return this.columnCategory; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn MotNameColumn { + get { + return this.columnMotName; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public MCModelRow this[int index] { + get { + return ((MCModelRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event MCModelRowChangeEventHandler MCModelRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event MCModelRowChangeEventHandler MCModelRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event MCModelRowChangeEventHandler MCModelRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event MCModelRowChangeEventHandler MCModelRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddMCModelRow(MCModelRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public MCModelRow AddMCModelRow(int idx, string Title, int pidx, short MotIndex, short PosIndex, string PosTitle, double Position, string SpdTitle, double Speed, double SpeedAcc, bool Check, double SpeedDcc, string Description, string Category, string MotName) { + MCModelRow rowMCModelRow = ((MCModelRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + idx, + Title, + pidx, + MotIndex, + PosIndex, + PosTitle, + Position, + SpdTitle, + Speed, + SpeedAcc, + Check, + SpeedDcc, + Description, + Category, + MotName}; + rowMCModelRow.ItemArray = columnValuesArray; + this.Rows.Add(rowMCModelRow); + return rowMCModelRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public MCModelRow FindByidx(int idx) { + return ((MCModelRow)(this.Rows.Find(new object[] { + idx}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + MCModelDataTable cln = ((MCModelDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new MCModelDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnidx = base.Columns["idx"]; + this.columnTitle = base.Columns["Title"]; + this.columnpidx = base.Columns["pidx"]; + this.columnMotIndex = base.Columns["MotIndex"]; + this.columnPosIndex = base.Columns["PosIndex"]; + this.columnPosTitle = base.Columns["PosTitle"]; + this.columnPosition = base.Columns["Position"]; + this.columnSpdTitle = base.Columns["SpdTitle"]; + this.columnSpeed = base.Columns["Speed"]; + this.columnSpeedAcc = base.Columns["SpeedAcc"]; + this.columnCheck = base.Columns["Check"]; + this.columnSpeedDcc = base.Columns["SpeedDcc"]; + this.columnDescription = base.Columns["Description"]; + this.columnCategory = base.Columns["Category"]; + this.columnMotName = base.Columns["MotName"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnidx = new global::System.Data.DataColumn("idx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnidx); + this.columnTitle = new global::System.Data.DataColumn("Title", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTitle); + this.columnpidx = new global::System.Data.DataColumn("pidx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnpidx); + this.columnMotIndex = new global::System.Data.DataColumn("MotIndex", typeof(short), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMotIndex); + this.columnPosIndex = new global::System.Data.DataColumn("PosIndex", typeof(short), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPosIndex); + this.columnPosTitle = new global::System.Data.DataColumn("PosTitle", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPosTitle); + this.columnPosition = new global::System.Data.DataColumn("Position", typeof(double), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPosition); + this.columnSpdTitle = new global::System.Data.DataColumn("SpdTitle", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSpdTitle); + this.columnSpeed = new global::System.Data.DataColumn("Speed", typeof(double), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSpeed); + this.columnSpeedAcc = new global::System.Data.DataColumn("SpeedAcc", typeof(double), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSpeedAcc); + this.columnCheck = new global::System.Data.DataColumn("Check", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCheck); + this.columnSpeedDcc = new global::System.Data.DataColumn("SpeedDcc", typeof(double), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSpeedDcc); + this.columnDescription = new global::System.Data.DataColumn("Description", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnDescription); + this.columnCategory = new global::System.Data.DataColumn("Category", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCategory); + this.columnMotName = new global::System.Data.DataColumn("MotName", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMotName); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnidx}, true)); + this.columnidx.AutoIncrementSeed = 1; + this.columnidx.AllowDBNull = false; + this.columnidx.Unique = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public MCModelRow NewMCModelRow() { + return ((MCModelRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new MCModelRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(MCModelRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.MCModelRowChanged != null)) { + this.MCModelRowChanged(this, new MCModelRowChangeEvent(((MCModelRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.MCModelRowChanging != null)) { + this.MCModelRowChanging(this, new MCModelRowChangeEvent(((MCModelRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.MCModelRowDeleted != null)) { + this.MCModelRowDeleted(this, new MCModelRowChangeEvent(((MCModelRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.MCModelRowDeleting != null)) { + this.MCModelRowDeleting(this, new MCModelRowChangeEvent(((MCModelRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveMCModelRow(MCModelRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "MCModelDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class languageDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnSection; + + private global::System.Data.DataColumn columnKey; + + private global::System.Data.DataColumn columnValue; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public languageDataTable() { + this.TableName = "language"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal languageDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected languageDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SectionColumn { + get { + return this.columnSection; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn KeyColumn { + get { + return this.columnKey; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ValueColumn { + get { + return this.columnValue; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public languageRow this[int index] { + get { + return ((languageRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event languageRowChangeEventHandler languageRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event languageRowChangeEventHandler languageRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event languageRowChangeEventHandler languageRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event languageRowChangeEventHandler languageRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddlanguageRow(languageRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public languageRow AddlanguageRow(string Section, string Key, string Value) { + languageRow rowlanguageRow = ((languageRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + Section, + Key, + Value}; + rowlanguageRow.ItemArray = columnValuesArray; + this.Rows.Add(rowlanguageRow); + return rowlanguageRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public languageRow FindByKeySection(string Key, string Section) { + return ((languageRow)(this.Rows.Find(new object[] { + Key, + Section}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + languageDataTable cln = ((languageDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new languageDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnSection = base.Columns["Section"]; + this.columnKey = base.Columns["Key"]; + this.columnValue = base.Columns["Value"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnSection = new global::System.Data.DataColumn("Section", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSection); + this.columnKey = new global::System.Data.DataColumn("Key", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnKey); + this.columnValue = new global::System.Data.DataColumn("Value", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnValue); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnKey, + this.columnSection}, true)); + this.columnSection.AllowDBNull = false; + this.columnKey.AllowDBNull = false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public languageRow NewlanguageRow() { + return ((languageRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new languageRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(languageRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.languageRowChanged != null)) { + this.languageRowChanged(this, new languageRowChangeEvent(((languageRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.languageRowChanging != null)) { + this.languageRowChanging(this, new languageRowChangeEvent(((languageRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.languageRowDeleted != null)) { + this.languageRowDeleted(this, new languageRowChangeEvent(((languageRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.languageRowDeleting != null)) { + this.languageRowDeleting(this, new languageRowChangeEvent(((languageRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemovelanguageRow(languageRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "languageDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class OPModelDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnidx; + + private global::System.Data.DataColumn columnMidx; + + private global::System.Data.DataColumn columnTitle; + + private global::System.Data.DataColumn columnMemo; + + private global::System.Data.DataColumn columnCode; + + private global::System.Data.DataColumn columnMotion; + + private global::System.Data.DataColumn columnBCD_1D; + + private global::System.Data.DataColumn columnBCD_QR; + + private global::System.Data.DataColumn columnBCD_DM; + + private global::System.Data.DataColumn columnvOption; + + private global::System.Data.DataColumn columnvSIDInfo; + + private global::System.Data.DataColumn columnvJobInfo; + + private global::System.Data.DataColumn columnvSIDConv; + + private global::System.Data.DataColumn columnDef_VName; + + private global::System.Data.DataColumn columnDef_MFG; + + private global::System.Data.DataColumn columnIgnoreOtherBarcode; + + private global::System.Data.DataColumn columnbConv; + + private global::System.Data.DataColumn columnBSave; + + private global::System.Data.DataColumn columnDisableCamera; + + private global::System.Data.DataColumn columnDisablePrinter; + + private global::System.Data.DataColumn columnCheckSIDExsit; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public OPModelDataTable() { + this.TableName = "OPModel"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal OPModelDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected OPModelDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn idxColumn { + get { + return this.columnidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn MidxColumn { + get { + return this.columnMidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn TitleColumn { + get { + return this.columnTitle; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn MemoColumn { + get { + return this.columnMemo; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn CodeColumn { + get { + return this.columnCode; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn MotionColumn { + get { + return this.columnMotion; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn BCD_1DColumn { + get { + return this.columnBCD_1D; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn BCD_QRColumn { + get { + return this.columnBCD_QR; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn BCD_DMColumn { + get { + return this.columnBCD_DM; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn vOptionColumn { + get { + return this.columnvOption; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn vSIDInfoColumn { + get { + return this.columnvSIDInfo; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn vJobInfoColumn { + get { + return this.columnvJobInfo; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn vSIDConvColumn { + get { + return this.columnvSIDConv; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn Def_VNameColumn { + get { + return this.columnDef_VName; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn Def_MFGColumn { + get { + return this.columnDef_MFG; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IgnoreOtherBarcodeColumn { + get { + return this.columnIgnoreOtherBarcode; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn bConvColumn { + get { + return this.columnbConv; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn BSaveColumn { + get { + return this.columnBSave; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn DisableCameraColumn { + get { + return this.columnDisableCamera; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn DisablePrinterColumn { + get { + return this.columnDisablePrinter; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn CheckSIDExsitColumn { + get { + return this.columnCheckSIDExsit; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public OPModelRow this[int index] { + get { + return ((OPModelRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event OPModelRowChangeEventHandler OPModelRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event OPModelRowChangeEventHandler OPModelRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event OPModelRowChangeEventHandler OPModelRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event OPModelRowChangeEventHandler OPModelRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddOPModelRow(OPModelRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public OPModelRow AddOPModelRow( + int Midx, + string Title, + string Memo, + string Code, + string Motion, + bool BCD_1D, + bool BCD_QR, + bool BCD_DM, + ushort vOption, + ushort vSIDInfo, + ushort vJobInfo, + ushort vSIDConv, + string Def_VName, + string Def_MFG, + bool IgnoreOtherBarcode, + bool bConv, + int BSave, + bool DisableCamera, + bool DisablePrinter, + bool CheckSIDExsit) { + OPModelRow rowOPModelRow = ((OPModelRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + Midx, + Title, + Memo, + Code, + Motion, + BCD_1D, + BCD_QR, + BCD_DM, + vOption, + vSIDInfo, + vJobInfo, + vSIDConv, + Def_VName, + Def_MFG, + IgnoreOtherBarcode, + bConv, + BSave, + DisableCamera, + DisablePrinter, + CheckSIDExsit}; + rowOPModelRow.ItemArray = columnValuesArray; + this.Rows.Add(rowOPModelRow); + return rowOPModelRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public OPModelRow FindByidx(int idx) { + return ((OPModelRow)(this.Rows.Find(new object[] { + idx}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + OPModelDataTable cln = ((OPModelDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new OPModelDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnidx = base.Columns["idx"]; + this.columnMidx = base.Columns["Midx"]; + this.columnTitle = base.Columns["Title"]; + this.columnMemo = base.Columns["Memo"]; + this.columnCode = base.Columns["Code"]; + this.columnMotion = base.Columns["Motion"]; + this.columnBCD_1D = base.Columns["BCD_1D"]; + this.columnBCD_QR = base.Columns["BCD_QR"]; + this.columnBCD_DM = base.Columns["BCD_DM"]; + this.columnvOption = base.Columns["vOption"]; + this.columnvSIDInfo = base.Columns["vSIDInfo"]; + this.columnvJobInfo = base.Columns["vJobInfo"]; + this.columnvSIDConv = base.Columns["vSIDConv"]; + this.columnDef_VName = base.Columns["Def_VName"]; + this.columnDef_MFG = base.Columns["Def_MFG"]; + this.columnIgnoreOtherBarcode = base.Columns["IgnoreOtherBarcode"]; + this.columnbConv = base.Columns["bConv"]; + this.columnBSave = base.Columns["BSave"]; + this.columnDisableCamera = base.Columns["DisableCamera"]; + this.columnDisablePrinter = base.Columns["DisablePrinter"]; + this.columnCheckSIDExsit = base.Columns["CheckSIDExsit"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnidx = new global::System.Data.DataColumn("idx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnidx); + this.columnMidx = new global::System.Data.DataColumn("Midx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMidx); + this.columnTitle = new global::System.Data.DataColumn("Title", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTitle); + this.columnMemo = new global::System.Data.DataColumn("Memo", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMemo); + this.columnCode = new global::System.Data.DataColumn("Code", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCode); + this.columnMotion = new global::System.Data.DataColumn("Motion", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMotion); + this.columnBCD_1D = new global::System.Data.DataColumn("BCD_1D", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnBCD_1D); + this.columnBCD_QR = new global::System.Data.DataColumn("BCD_QR", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnBCD_QR); + this.columnBCD_DM = new global::System.Data.DataColumn("BCD_DM", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnBCD_DM); + this.columnvOption = new global::System.Data.DataColumn("vOption", typeof(ushort), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnvOption); + this.columnvSIDInfo = new global::System.Data.DataColumn("vSIDInfo", typeof(ushort), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnvSIDInfo); + this.columnvJobInfo = new global::System.Data.DataColumn("vJobInfo", typeof(ushort), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnvJobInfo); + this.columnvSIDConv = new global::System.Data.DataColumn("vSIDConv", typeof(ushort), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnvSIDConv); + this.columnDef_VName = new global::System.Data.DataColumn("Def_VName", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnDef_VName); + this.columnDef_MFG = new global::System.Data.DataColumn("Def_MFG", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnDef_MFG); + this.columnIgnoreOtherBarcode = new global::System.Data.DataColumn("IgnoreOtherBarcode", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIgnoreOtherBarcode); + this.columnbConv = new global::System.Data.DataColumn("bConv", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnbConv); + this.columnBSave = new global::System.Data.DataColumn("BSave", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnBSave); + this.columnDisableCamera = new global::System.Data.DataColumn("DisableCamera", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnDisableCamera); + this.columnDisablePrinter = new global::System.Data.DataColumn("DisablePrinter", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnDisablePrinter); + this.columnCheckSIDExsit = new global::System.Data.DataColumn("CheckSIDExsit", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCheckSIDExsit); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnidx}, true)); + this.columnidx.AutoIncrement = true; + this.columnidx.AutoIncrementSeed = 1; + this.columnidx.AllowDBNull = false; + this.columnidx.Unique = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public OPModelRow NewOPModelRow() { + return ((OPModelRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new OPModelRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(OPModelRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.OPModelRowChanged != null)) { + this.OPModelRowChanged(this, new OPModelRowChangeEvent(((OPModelRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.OPModelRowChanging != null)) { + this.OPModelRowChanging(this, new OPModelRowChangeEvent(((OPModelRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.OPModelRowDeleted != null)) { + this.OPModelRowDeleted(this, new OPModelRowChangeEvent(((OPModelRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.OPModelRowDeleting != null)) { + this.OPModelRowDeleting(this, new OPModelRowChangeEvent(((OPModelRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveOPModelRow(OPModelRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "OPModelDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class BCDDataDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnStart; + + private global::System.Data.DataColumn columnID; + + private global::System.Data.DataColumn columnSID; + + private global::System.Data.DataColumn columnRAW; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public BCDDataDataTable() { + this.TableName = "BCDData"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal BCDDataDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected BCDDataDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn StartColumn { + get { + return this.columnStart; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IDColumn { + get { + return this.columnID; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SIDColumn { + get { + return this.columnSID; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn RAWColumn { + get { + return this.columnRAW; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public BCDDataRow this[int index] { + get { + return ((BCDDataRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event BCDDataRowChangeEventHandler BCDDataRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event BCDDataRowChangeEventHandler BCDDataRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event BCDDataRowChangeEventHandler BCDDataRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event BCDDataRowChangeEventHandler BCDDataRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddBCDDataRow(BCDDataRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public BCDDataRow AddBCDDataRow(System.DateTime Start, string ID, string SID, string RAW) { + BCDDataRow rowBCDDataRow = ((BCDDataRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + Start, + ID, + SID, + RAW}; + rowBCDDataRow.ItemArray = columnValuesArray; + this.Rows.Add(rowBCDDataRow); + return rowBCDDataRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public BCDDataRow FindByStart(System.DateTime Start) { + return ((BCDDataRow)(this.Rows.Find(new object[] { + Start}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + BCDDataDataTable cln = ((BCDDataDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new BCDDataDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnStart = base.Columns["Start"]; + this.columnID = base.Columns["ID"]; + this.columnSID = base.Columns["SID"]; + this.columnRAW = base.Columns["RAW"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnStart = new global::System.Data.DataColumn("Start", typeof(global::System.DateTime), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnStart); + this.columnID = new global::System.Data.DataColumn("ID", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnID); + this.columnSID = new global::System.Data.DataColumn("SID", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSID); + this.columnRAW = new global::System.Data.DataColumn("RAW", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnRAW); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnStart}, true)); + this.columnStart.AllowDBNull = false; + this.columnStart.Unique = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public BCDDataRow NewBCDDataRow() { + return ((BCDDataRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new BCDDataRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(BCDDataRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.BCDDataRowChanged != null)) { + this.BCDDataRowChanged(this, new BCDDataRowChangeEvent(((BCDDataRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.BCDDataRowChanging != null)) { + this.BCDDataRowChanging(this, new BCDDataRowChangeEvent(((BCDDataRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.BCDDataRowDeleted != null)) { + this.BCDDataRowDeleted(this, new BCDDataRowChangeEvent(((BCDDataRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.BCDDataRowDeleting != null)) { + this.BCDDataRowDeleting(this, new BCDDataRowChangeEvent(((BCDDataRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveBCDDataRow(BCDDataRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "BCDDataDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class UserSIDDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnidx; + + private global::System.Data.DataColumn columnPort; + + private global::System.Data.DataColumn columnSID; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public UserSIDDataTable() { + this.TableName = "UserSID"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal UserSIDDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected UserSIDDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn idxColumn { + get { + return this.columnidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn PortColumn { + get { + return this.columnPort; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SIDColumn { + get { + return this.columnSID; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public UserSIDRow this[int index] { + get { + return ((UserSIDRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event UserSIDRowChangeEventHandler UserSIDRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event UserSIDRowChangeEventHandler UserSIDRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event UserSIDRowChangeEventHandler UserSIDRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event UserSIDRowChangeEventHandler UserSIDRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddUserSIDRow(UserSIDRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public UserSIDRow AddUserSIDRow(string Port, string SID) { + UserSIDRow rowUserSIDRow = ((UserSIDRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + Port, + SID}; + rowUserSIDRow.ItemArray = columnValuesArray; + this.Rows.Add(rowUserSIDRow); + return rowUserSIDRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public UserSIDRow FindByidx(int idx) { + return ((UserSIDRow)(this.Rows.Find(new object[] { + idx}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + UserSIDDataTable cln = ((UserSIDDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new UserSIDDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnidx = base.Columns["idx"]; + this.columnPort = base.Columns["Port"]; + this.columnSID = base.Columns["SID"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnidx = new global::System.Data.DataColumn("idx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnidx); + this.columnPort = new global::System.Data.DataColumn("Port", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPort); + this.columnSID = new global::System.Data.DataColumn("SID", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSID); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnidx}, true)); + this.columnidx.AutoIncrement = true; + this.columnidx.AutoIncrementSeed = -1; + this.columnidx.AutoIncrementStep = -1; + this.columnidx.AllowDBNull = false; + this.columnidx.Unique = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public UserSIDRow NewUserSIDRow() { + return ((UserSIDRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new UserSIDRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(UserSIDRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.UserSIDRowChanged != null)) { + this.UserSIDRowChanged(this, new UserSIDRowChangeEvent(((UserSIDRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.UserSIDRowChanging != null)) { + this.UserSIDRowChanging(this, new UserSIDRowChangeEvent(((UserSIDRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.UserSIDRowDeleted != null)) { + this.UserSIDRowDeleted(this, new UserSIDRowChangeEvent(((UserSIDRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.UserSIDRowDeleting != null)) { + this.UserSIDRowDeleting(this, new UserSIDRowChangeEvent(((UserSIDRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveUserSIDRow(UserSIDRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "UserSIDDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class MailFormatDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnsubject; + + private global::System.Data.DataColumn columncontent; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public MailFormatDataTable() { + this.TableName = "MailFormat"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal MailFormatDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected MailFormatDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn subjectColumn { + get { + return this.columnsubject; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn contentColumn { + get { + return this.columncontent; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public MailFormatRow this[int index] { + get { + return ((MailFormatRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event MailFormatRowChangeEventHandler MailFormatRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event MailFormatRowChangeEventHandler MailFormatRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event MailFormatRowChangeEventHandler MailFormatRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event MailFormatRowChangeEventHandler MailFormatRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddMailFormatRow(MailFormatRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public MailFormatRow AddMailFormatRow(string subject, string content) { + MailFormatRow rowMailFormatRow = ((MailFormatRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + subject, + content}; + rowMailFormatRow.ItemArray = columnValuesArray; + this.Rows.Add(rowMailFormatRow); + return rowMailFormatRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + MailFormatDataTable cln = ((MailFormatDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new MailFormatDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnsubject = base.Columns["subject"]; + this.columncontent = base.Columns["content"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnsubject = new global::System.Data.DataColumn("subject", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnsubject); + this.columncontent = new global::System.Data.DataColumn("content", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columncontent); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public MailFormatRow NewMailFormatRow() { + return ((MailFormatRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new MailFormatRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(MailFormatRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.MailFormatRowChanged != null)) { + this.MailFormatRowChanged(this, new MailFormatRowChangeEvent(((MailFormatRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.MailFormatRowChanging != null)) { + this.MailFormatRowChanging(this, new MailFormatRowChangeEvent(((MailFormatRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.MailFormatRowDeleted != null)) { + this.MailFormatRowDeleted(this, new MailFormatRowChangeEvent(((MailFormatRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.MailFormatRowDeleting != null)) { + this.MailFormatRowDeleting(this, new MailFormatRowChangeEvent(((MailFormatRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveMailFormatRow(MailFormatRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "MailFormatDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class MailRecipientDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnidx; + + private global::System.Data.DataColumn columnName; + + private global::System.Data.DataColumn columnAddress; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public MailRecipientDataTable() { + this.TableName = "MailRecipient"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal MailRecipientDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected MailRecipientDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn idxColumn { + get { + return this.columnidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn NameColumn { + get { + return this.columnName; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn AddressColumn { + get { + return this.columnAddress; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public MailRecipientRow this[int index] { + get { + return ((MailRecipientRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event MailRecipientRowChangeEventHandler MailRecipientRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event MailRecipientRowChangeEventHandler MailRecipientRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event MailRecipientRowChangeEventHandler MailRecipientRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event MailRecipientRowChangeEventHandler MailRecipientRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddMailRecipientRow(MailRecipientRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public MailRecipientRow AddMailRecipientRow(string Name, string Address) { + MailRecipientRow rowMailRecipientRow = ((MailRecipientRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + Name, + Address}; + rowMailRecipientRow.ItemArray = columnValuesArray; + this.Rows.Add(rowMailRecipientRow); + return rowMailRecipientRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public MailRecipientRow FindByidx(int idx) { + return ((MailRecipientRow)(this.Rows.Find(new object[] { + idx}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + MailRecipientDataTable cln = ((MailRecipientDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new MailRecipientDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnidx = base.Columns["idx"]; + this.columnName = base.Columns["Name"]; + this.columnAddress = base.Columns["Address"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnidx = new global::System.Data.DataColumn("idx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnidx); + this.columnName = new global::System.Data.DataColumn("Name", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnName); + this.columnAddress = new global::System.Data.DataColumn("Address", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnAddress); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnidx}, true)); + this.columnidx.AutoIncrement = true; + this.columnidx.AutoIncrementSeed = 1; + this.columnidx.AllowDBNull = false; + this.columnidx.Unique = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public MailRecipientRow NewMailRecipientRow() { + return ((MailRecipientRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new MailRecipientRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(MailRecipientRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.MailRecipientRowChanged != null)) { + this.MailRecipientRowChanged(this, new MailRecipientRowChangeEvent(((MailRecipientRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.MailRecipientRowChanging != null)) { + this.MailRecipientRowChanging(this, new MailRecipientRowChangeEvent(((MailRecipientRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.MailRecipientRowDeleted != null)) { + this.MailRecipientRowDeleted(this, new MailRecipientRowChangeEvent(((MailRecipientRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.MailRecipientRowDeleting != null)) { + this.MailRecipientRowDeleting(this, new MailRecipientRowChangeEvent(((MailRecipientRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveMailRecipientRow(MailRecipientRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "MailRecipientDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class SIDHistoryDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnidx; + + private global::System.Data.DataColumn columntime; + + private global::System.Data.DataColumn columnseqdate; + + private global::System.Data.DataColumn columnseqno; + + private global::System.Data.DataColumn columnsid; + + private global::System.Data.DataColumn columnrid; + + private global::System.Data.DataColumn columnqty; + + private global::System.Data.DataColumn columnrev; + + private global::System.Data.DataColumn columnacc; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public SIDHistoryDataTable() { + this.TableName = "SIDHistory"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal SIDHistoryDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected SIDHistoryDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn idxColumn { + get { + return this.columnidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn timeColumn { + get { + return this.columntime; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn seqdateColumn { + get { + return this.columnseqdate; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn seqnoColumn { + get { + return this.columnseqno; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn sidColumn { + get { + return this.columnsid; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ridColumn { + get { + return this.columnrid; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn qtyColumn { + get { + return this.columnqty; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn revColumn { + get { + return this.columnrev; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn accColumn { + get { + return this.columnacc; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public SIDHistoryRow this[int index] { + get { + return ((SIDHistoryRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event SIDHistoryRowChangeEventHandler SIDHistoryRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event SIDHistoryRowChangeEventHandler SIDHistoryRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event SIDHistoryRowChangeEventHandler SIDHistoryRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event SIDHistoryRowChangeEventHandler SIDHistoryRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddSIDHistoryRow(SIDHistoryRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public SIDHistoryRow AddSIDHistoryRow(System.DateTime time, string seqdate, string seqno, string sid, string rid, int qty, int rev, int acc) { + SIDHistoryRow rowSIDHistoryRow = ((SIDHistoryRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + time, + seqdate, + seqno, + sid, + rid, + qty, + rev, + acc}; + rowSIDHistoryRow.ItemArray = columnValuesArray; + this.Rows.Add(rowSIDHistoryRow); + return rowSIDHistoryRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + SIDHistoryDataTable cln = ((SIDHistoryDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new SIDHistoryDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnidx = base.Columns["idx"]; + this.columntime = base.Columns["time"]; + this.columnseqdate = base.Columns["seqdate"]; + this.columnseqno = base.Columns["seqno"]; + this.columnsid = base.Columns["sid"]; + this.columnrid = base.Columns["rid"]; + this.columnqty = base.Columns["qty"]; + this.columnrev = base.Columns["rev"]; + this.columnacc = base.Columns["acc"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnidx = new global::System.Data.DataColumn("idx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnidx); + this.columntime = new global::System.Data.DataColumn("time", typeof(global::System.DateTime), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columntime); + this.columnseqdate = new global::System.Data.DataColumn("seqdate", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnseqdate); + this.columnseqno = new global::System.Data.DataColumn("seqno", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnseqno); + this.columnsid = new global::System.Data.DataColumn("sid", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnsid); + this.columnrid = new global::System.Data.DataColumn("rid", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnrid); + this.columnqty = new global::System.Data.DataColumn("qty", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnqty); + this.columnrev = new global::System.Data.DataColumn("rev", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnrev); + this.columnacc = new global::System.Data.DataColumn("acc", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnacc); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint11", new global::System.Data.DataColumn[] { + this.columnidx}, false)); + this.columnidx.AutoIncrement = true; + this.columnidx.AutoIncrementSeed = 1; + this.columnidx.AllowDBNull = false; + this.columnidx.Unique = true; + this.columnsid.Caption = "info_filename"; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public SIDHistoryRow NewSIDHistoryRow() { + return ((SIDHistoryRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new SIDHistoryRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(SIDHistoryRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.SIDHistoryRowChanged != null)) { + this.SIDHistoryRowChanged(this, new SIDHistoryRowChangeEvent(((SIDHistoryRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.SIDHistoryRowChanging != null)) { + this.SIDHistoryRowChanging(this, new SIDHistoryRowChangeEvent(((SIDHistoryRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.SIDHistoryRowDeleted != null)) { + this.SIDHistoryRowDeleted(this, new SIDHistoryRowChangeEvent(((SIDHistoryRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.SIDHistoryRowDeleting != null)) { + this.SIDHistoryRowDeleting(this, new SIDHistoryRowChangeEvent(((SIDHistoryRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveSIDHistoryRow(SIDHistoryRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "SIDHistoryDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class InputDescriptionDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnIdx; + + private global::System.Data.DataColumn columnTitle; + + private global::System.Data.DataColumn columnDescription; + + private global::System.Data.DataColumn columnTerminalNo; + + private global::System.Data.DataColumn columnInvert; + + private global::System.Data.DataColumn columnName; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public InputDescriptionDataTable() { + this.TableName = "InputDescription"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal InputDescriptionDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected InputDescriptionDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IdxColumn { + get { + return this.columnIdx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn TitleColumn { + get { + return this.columnTitle; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn DescriptionColumn { + get { + return this.columnDescription; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn TerminalNoColumn { + get { + return this.columnTerminalNo; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn InvertColumn { + get { + return this.columnInvert; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn NameColumn { + get { + return this.columnName; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public InputDescriptionRow this[int index] { + get { + return ((InputDescriptionRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event InputDescriptionRowChangeEventHandler InputDescriptionRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event InputDescriptionRowChangeEventHandler InputDescriptionRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event InputDescriptionRowChangeEventHandler InputDescriptionRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event InputDescriptionRowChangeEventHandler InputDescriptionRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddInputDescriptionRow(InputDescriptionRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public InputDescriptionRow AddInputDescriptionRow(short Idx, string Title, string Description, int TerminalNo, bool Invert, string Name) { + InputDescriptionRow rowInputDescriptionRow = ((InputDescriptionRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + Idx, + Title, + Description, + TerminalNo, + Invert, + Name}; + rowInputDescriptionRow.ItemArray = columnValuesArray; + this.Rows.Add(rowInputDescriptionRow); + return rowInputDescriptionRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public InputDescriptionRow FindByIdx(short Idx) { + return ((InputDescriptionRow)(this.Rows.Find(new object[] { + Idx}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + InputDescriptionDataTable cln = ((InputDescriptionDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new InputDescriptionDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnIdx = base.Columns["Idx"]; + this.columnTitle = base.Columns["Title"]; + this.columnDescription = base.Columns["Description"]; + this.columnTerminalNo = base.Columns["TerminalNo"]; + this.columnInvert = base.Columns["Invert"]; + this.columnName = base.Columns["Name"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnIdx = new global::System.Data.DataColumn("Idx", typeof(short), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIdx); + this.columnTitle = new global::System.Data.DataColumn("Title", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTitle); + this.columnDescription = new global::System.Data.DataColumn("Description", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnDescription); + this.columnTerminalNo = new global::System.Data.DataColumn("TerminalNo", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTerminalNo); + this.columnInvert = new global::System.Data.DataColumn("Invert", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnInvert); + this.columnName = new global::System.Data.DataColumn("Name", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnName); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnIdx}, true)); + this.columnIdx.AllowDBNull = false; + this.columnIdx.Unique = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public InputDescriptionRow NewInputDescriptionRow() { + return ((InputDescriptionRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new InputDescriptionRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(InputDescriptionRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.InputDescriptionRowChanged != null)) { + this.InputDescriptionRowChanged(this, new InputDescriptionRowChangeEvent(((InputDescriptionRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.InputDescriptionRowChanging != null)) { + this.InputDescriptionRowChanging(this, new InputDescriptionRowChangeEvent(((InputDescriptionRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.InputDescriptionRowDeleted != null)) { + this.InputDescriptionRowDeleted(this, new InputDescriptionRowChangeEvent(((InputDescriptionRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.InputDescriptionRowDeleting != null)) { + this.InputDescriptionRowDeleting(this, new InputDescriptionRowChangeEvent(((InputDescriptionRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveInputDescriptionRow(InputDescriptionRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "InputDescriptionDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class OutputDescriptionDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnIdx; + + private global::System.Data.DataColumn columnTitle; + + private global::System.Data.DataColumn columnDescription; + + private global::System.Data.DataColumn columnTerminalNo; + + private global::System.Data.DataColumn columnInvert; + + private global::System.Data.DataColumn columnName; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public OutputDescriptionDataTable() { + this.TableName = "OutputDescription"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal OutputDescriptionDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected OutputDescriptionDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IdxColumn { + get { + return this.columnIdx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn TitleColumn { + get { + return this.columnTitle; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn DescriptionColumn { + get { + return this.columnDescription; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn TerminalNoColumn { + get { + return this.columnTerminalNo; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn InvertColumn { + get { + return this.columnInvert; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn NameColumn { + get { + return this.columnName; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public OutputDescriptionRow this[int index] { + get { + return ((OutputDescriptionRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event OutputDescriptionRowChangeEventHandler OutputDescriptionRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event OutputDescriptionRowChangeEventHandler OutputDescriptionRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event OutputDescriptionRowChangeEventHandler OutputDescriptionRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event OutputDescriptionRowChangeEventHandler OutputDescriptionRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddOutputDescriptionRow(OutputDescriptionRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public OutputDescriptionRow AddOutputDescriptionRow(short Idx, string Title, string Description, int TerminalNo, bool Invert, string Name) { + OutputDescriptionRow rowOutputDescriptionRow = ((OutputDescriptionRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + Idx, + Title, + Description, + TerminalNo, + Invert, + Name}; + rowOutputDescriptionRow.ItemArray = columnValuesArray; + this.Rows.Add(rowOutputDescriptionRow); + return rowOutputDescriptionRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public OutputDescriptionRow FindByIdx(short Idx) { + return ((OutputDescriptionRow)(this.Rows.Find(new object[] { + Idx}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + OutputDescriptionDataTable cln = ((OutputDescriptionDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new OutputDescriptionDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnIdx = base.Columns["Idx"]; + this.columnTitle = base.Columns["Title"]; + this.columnDescription = base.Columns["Description"]; + this.columnTerminalNo = base.Columns["TerminalNo"]; + this.columnInvert = base.Columns["Invert"]; + this.columnName = base.Columns["Name"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnIdx = new global::System.Data.DataColumn("Idx", typeof(short), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIdx); + this.columnTitle = new global::System.Data.DataColumn("Title", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTitle); + this.columnDescription = new global::System.Data.DataColumn("Description", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnDescription); + this.columnTerminalNo = new global::System.Data.DataColumn("TerminalNo", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTerminalNo); + this.columnInvert = new global::System.Data.DataColumn("Invert", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnInvert); + this.columnName = new global::System.Data.DataColumn("Name", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnName); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnIdx}, true)); + this.columnIdx.AllowDBNull = false; + this.columnIdx.Unique = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public OutputDescriptionRow NewOutputDescriptionRow() { + return ((OutputDescriptionRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new OutputDescriptionRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(OutputDescriptionRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.OutputDescriptionRowChanged != null)) { + this.OutputDescriptionRowChanged(this, new OutputDescriptionRowChangeEvent(((OutputDescriptionRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.OutputDescriptionRowChanging != null)) { + this.OutputDescriptionRowChanging(this, new OutputDescriptionRowChangeEvent(((OutputDescriptionRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.OutputDescriptionRowDeleted != null)) { + this.OutputDescriptionRowDeleted(this, new OutputDescriptionRowChangeEvent(((OutputDescriptionRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.OutputDescriptionRowDeleting != null)) { + this.OutputDescriptionRowDeleting(this, new OutputDescriptionRowChangeEvent(((OutputDescriptionRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveOutputDescriptionRow(OutputDescriptionRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "OutputDescriptionDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class UserTableDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnID; + + private global::System.Data.DataColumn columnPASS; + + private global::System.Data.DataColumn columnLEVEL; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public UserTableDataTable() { + this.TableName = "UserTable"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal UserTableDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected UserTableDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IDColumn { + get { + return this.columnID; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn PASSColumn { + get { + return this.columnPASS; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn LEVELColumn { + get { + return this.columnLEVEL; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public UserTableRow this[int index] { + get { + return ((UserTableRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event UserTableRowChangeEventHandler UserTableRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event UserTableRowChangeEventHandler UserTableRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event UserTableRowChangeEventHandler UserTableRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event UserTableRowChangeEventHandler UserTableRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddUserTableRow(UserTableRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public UserTableRow AddUserTableRow(string ID, string PASS, string LEVEL) { + UserTableRow rowUserTableRow = ((UserTableRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + ID, + PASS, + LEVEL}; + rowUserTableRow.ItemArray = columnValuesArray; + this.Rows.Add(rowUserTableRow); + return rowUserTableRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public UserTableRow FindByID(string ID) { + return ((UserTableRow)(this.Rows.Find(new object[] { + ID}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + UserTableDataTable cln = ((UserTableDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new UserTableDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnID = base.Columns["ID"]; + this.columnPASS = base.Columns["PASS"]; + this.columnLEVEL = base.Columns["LEVEL"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnID = new global::System.Data.DataColumn("ID", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnID); + this.columnPASS = new global::System.Data.DataColumn("PASS", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPASS); + this.columnLEVEL = new global::System.Data.DataColumn("LEVEL", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnLEVEL); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnID}, true)); + this.columnID.AllowDBNull = false; + this.columnID.Unique = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public UserTableRow NewUserTableRow() { + return ((UserTableRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new UserTableRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(UserTableRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.UserTableRowChanged != null)) { + this.UserTableRowChanged(this, new UserTableRowChangeEvent(((UserTableRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.UserTableRowChanging != null)) { + this.UserTableRowChanging(this, new UserTableRowChangeEvent(((UserTableRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.UserTableRowDeleted != null)) { + this.UserTableRowDeleted(this, new UserTableRowChangeEvent(((UserTableRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.UserTableRowDeleting != null)) { + this.UserTableRowDeleting(this, new UserTableRowChangeEvent(((UserTableRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveUserTableRow(UserTableRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "UserTableDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class ErrorDescriptionDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnIdx; + + private global::System.Data.DataColumn columnTitle; + + private global::System.Data.DataColumn columnDescription; + + private global::System.Data.DataColumn columnShorts; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ErrorDescriptionDataTable() { + this.TableName = "ErrorDescription"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal ErrorDescriptionDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected ErrorDescriptionDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn IdxColumn { + get { + return this.columnIdx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn TitleColumn { + get { + return this.columnTitle; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn DescriptionColumn { + get { + return this.columnDescription; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ShortsColumn { + get { + return this.columnShorts; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ErrorDescriptionRow this[int index] { + get { + return ((ErrorDescriptionRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event ErrorDescriptionRowChangeEventHandler ErrorDescriptionRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event ErrorDescriptionRowChangeEventHandler ErrorDescriptionRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event ErrorDescriptionRowChangeEventHandler ErrorDescriptionRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event ErrorDescriptionRowChangeEventHandler ErrorDescriptionRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddErrorDescriptionRow(ErrorDescriptionRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ErrorDescriptionRow AddErrorDescriptionRow(short Idx, string Title, string Description, string Shorts) { + ErrorDescriptionRow rowErrorDescriptionRow = ((ErrorDescriptionRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + Idx, + Title, + Description, + Shorts}; + rowErrorDescriptionRow.ItemArray = columnValuesArray; + this.Rows.Add(rowErrorDescriptionRow); + return rowErrorDescriptionRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ErrorDescriptionRow FindByIdx(short Idx) { + return ((ErrorDescriptionRow)(this.Rows.Find(new object[] { + Idx}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + ErrorDescriptionDataTable cln = ((ErrorDescriptionDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new ErrorDescriptionDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnIdx = base.Columns["Idx"]; + this.columnTitle = base.Columns["Title"]; + this.columnDescription = base.Columns["Description"]; + this.columnShorts = base.Columns["Shorts"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnIdx = new global::System.Data.DataColumn("Idx", typeof(short), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnIdx); + this.columnTitle = new global::System.Data.DataColumn("Title", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTitle); + this.columnDescription = new global::System.Data.DataColumn("Description", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnDescription); + this.columnShorts = new global::System.Data.DataColumn("Shorts", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnShorts); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnIdx}, true)); + this.columnIdx.AllowDBNull = false; + this.columnIdx.Unique = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ErrorDescriptionRow NewErrorDescriptionRow() { + return ((ErrorDescriptionRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new ErrorDescriptionRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(ErrorDescriptionRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.ErrorDescriptionRowChanged != null)) { + this.ErrorDescriptionRowChanged(this, new ErrorDescriptionRowChangeEvent(((ErrorDescriptionRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.ErrorDescriptionRowChanging != null)) { + this.ErrorDescriptionRowChanging(this, new ErrorDescriptionRowChangeEvent(((ErrorDescriptionRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.ErrorDescriptionRowDeleted != null)) { + this.ErrorDescriptionRowDeleted(this, new ErrorDescriptionRowChangeEvent(((ErrorDescriptionRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.ErrorDescriptionRowDeleting != null)) { + this.ErrorDescriptionRowDeleting(this, new ErrorDescriptionRowChangeEvent(((ErrorDescriptionRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveErrorDescriptionRow(ErrorDescriptionRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "ErrorDescriptionDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class ModelListDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnTitle; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ModelListDataTable() { + this.TableName = "ModelList"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal ModelListDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected ModelListDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn TitleColumn { + get { + return this.columnTitle; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ModelListRow this[int index] { + get { + return ((ModelListRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event ModelListRowChangeEventHandler ModelListRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event ModelListRowChangeEventHandler ModelListRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event ModelListRowChangeEventHandler ModelListRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event ModelListRowChangeEventHandler ModelListRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddModelListRow(ModelListRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ModelListRow AddModelListRow(string Title) { + ModelListRow rowModelListRow = ((ModelListRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + Title}; + rowModelListRow.ItemArray = columnValuesArray; + this.Rows.Add(rowModelListRow); + return rowModelListRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ModelListRow FindByTitle(string Title) { + return ((ModelListRow)(this.Rows.Find(new object[] { + Title}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + ModelListDataTable cln = ((ModelListDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new ModelListDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnTitle = base.Columns["Title"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnTitle = new global::System.Data.DataColumn("Title", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTitle); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnTitle}, true)); + this.columnTitle.AllowDBNull = false; + this.columnTitle.Unique = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ModelListRow NewModelListRow() { + return ((ModelListRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new ModelListRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(ModelListRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.ModelListRowChanged != null)) { + this.ModelListRowChanged(this, new ModelListRowChangeEvent(((ModelListRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.ModelListRowChanging != null)) { + this.ModelListRowChanging(this, new ModelListRowChangeEvent(((ModelListRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.ModelListRowDeleted != null)) { + this.ModelListRowDeleted(this, new ModelListRowChangeEvent(((ModelListRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.ModelListRowDeleting != null)) { + this.ModelListRowDeleting(this, new ModelListRowChangeEvent(((ModelListRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveModelListRow(ModelListRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "ModelListDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class Component_Reel_ResultRow : global::System.Data.DataRow { + + private Component_Reel_ResultDataTable tableComponent_Reel_Result; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal Component_Reel_ResultRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableComponent_Reel_Result = ((Component_Reel_ResultDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int idx { + get { + return ((int)(this[this.tableComponent_Reel_Result.idxColumn])); + } + set { + this[this.tableComponent_Reel_Result.idxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public System.DateTime STIME { + get { + return ((global::System.DateTime)(this[this.tableComponent_Reel_Result.STIMEColumn])); + } + set { + this[this.tableComponent_Reel_Result.STIMEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public System.DateTime ETIME { + get { + try { + return ((global::System.DateTime)(this[this.tableComponent_Reel_Result.ETIMEColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'Component_Reel_Result\' 테이블의 \'ETIME\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableComponent_Reel_Result.ETIMEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string PDATE { + get { + if (this.IsPDATENull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.PDATEColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.PDATEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string JTYPE { + get { + if (this.IsJTYPENull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.JTYPEColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.JTYPEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string JGUID { + get { + if (this.IsJGUIDNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.JGUIDColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.JGUIDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string SID { + get { + if (this.IsSIDNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.SIDColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.SIDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string SID0 { + get { + if (this.IsSID0Null()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.SID0Column])); + } + } + set { + this[this.tableComponent_Reel_Result.SID0Column] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string RID { + get { + if (this.IsRIDNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.RIDColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.RIDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string RID0 { + get { + if (this.IsRID0Null()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.RID0Column])); + } + } + set { + this[this.tableComponent_Reel_Result.RID0Column] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string RSN { + get { + if (this.IsRSNNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.RSNColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.RSNColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string QR { + get { + if (this.IsQRNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.QRColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.QRColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string ZPL { + get { + if (this.IsZPLNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.ZPLColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.ZPLColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string POS { + get { + if (this.IsPOSNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.POSColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.POSColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string LOC { + get { + if (this.IsLOCNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.LOCColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.LOCColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public double ANGLE { + get { + if (this.IsANGLENull()) { + return 0D; + } + else { + return ((double)(this[this.tableComponent_Reel_Result.ANGLEColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.ANGLEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int QTY { + get { + if (this.IsQTYNull()) { + return 0; + } + else { + return ((int)(this[this.tableComponent_Reel_Result.QTYColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.QTYColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int QTY0 { + get { + if (this.IsQTY0Null()) { + return 0; + } + else { + return ((int)(this[this.tableComponent_Reel_Result.QTY0Column])); + } + } + set { + this[this.tableComponent_Reel_Result.QTY0Column] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public System.DateTime wdate { + get { + return ((global::System.DateTime)(this[this.tableComponent_Reel_Result.wdateColumn])); + } + set { + this[this.tableComponent_Reel_Result.wdateColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string VNAME { + get { + if (this.IsVNAMENull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.VNAMEColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.VNAMEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool PRNATTACH { + get { + if (this.IsPRNATTACHNull()) { + return false; + } + else { + return ((bool)(this[this.tableComponent_Reel_Result.PRNATTACHColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.PRNATTACHColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool PRNVALID { + get { + if (this.IsPRNVALIDNull()) { + return false; + } + else { + return ((bool)(this[this.tableComponent_Reel_Result.PRNVALIDColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.PRNVALIDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public System.DateTime PTIME { + get { + try { + return ((global::System.DateTime)(this[this.tableComponent_Reel_Result.PTIMEColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'Component_Reel_Result\' 테이블의 \'PTIME\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableComponent_Reel_Result.PTIMEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string MFGDATE { + get { + if (this.IsMFGDATENull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.MFGDATEColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.MFGDATEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string VLOT { + get { + if (this.IsVLOTNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.VLOTColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.VLOTColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string REMARK { + get { + if (this.IsREMARKNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.REMARKColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.REMARKColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string MC { + get { + return ((string)(this[this.tableComponent_Reel_Result.MCColumn])); + } + set { + this[this.tableComponent_Reel_Result.MCColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string PARTNO { + get { + if (this.IsPARTNONull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.PARTNOColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.PARTNOColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string CUSTCODE { + get { + if (this.IsCUSTCODENull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.CUSTCODEColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.CUSTCODEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public System.DateTime ATIME { + get { + try { + return ((global::System.DateTime)(this[this.tableComponent_Reel_Result.ATIMEColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'Component_Reel_Result\' 테이블의 \'ATIME\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableComponent_Reel_Result.ATIMEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string BATCH { + get { + if (this.IsBATCHNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.BATCHColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.BATCHColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int qtymax { + get { + if (this.IsqtymaxNull()) { + return 0; + } + else { + return ((int)(this[this.tableComponent_Reel_Result.qtymaxColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.qtymaxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public System.Guid GUID { + get { + try { + return ((global::System.Guid)(this[this.tableComponent_Reel_Result.GUIDColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'Component_Reel_Result\' 테이블의 \'GUID\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableComponent_Reel_Result.GUIDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string iNBOUND { + get { + if (this.IsiNBOUNDNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.iNBOUNDColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.iNBOUNDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string MCN { + get { + if (this.IsMCNNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.MCNColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.MCNColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string target { + get { + if (this.IstargetNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.targetColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.targetColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsETIMENull() { + return this.IsNull(this.tableComponent_Reel_Result.ETIMEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetETIMENull() { + this[this.tableComponent_Reel_Result.ETIMEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsPDATENull() { + return this.IsNull(this.tableComponent_Reel_Result.PDATEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetPDATENull() { + this[this.tableComponent_Reel_Result.PDATEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsJTYPENull() { + return this.IsNull(this.tableComponent_Reel_Result.JTYPEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetJTYPENull() { + this[this.tableComponent_Reel_Result.JTYPEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsJGUIDNull() { + return this.IsNull(this.tableComponent_Reel_Result.JGUIDColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetJGUIDNull() { + this[this.tableComponent_Reel_Result.JGUIDColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsSIDNull() { + return this.IsNull(this.tableComponent_Reel_Result.SIDColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetSIDNull() { + this[this.tableComponent_Reel_Result.SIDColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsSID0Null() { + return this.IsNull(this.tableComponent_Reel_Result.SID0Column); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetSID0Null() { + this[this.tableComponent_Reel_Result.SID0Column] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsRIDNull() { + return this.IsNull(this.tableComponent_Reel_Result.RIDColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetRIDNull() { + this[this.tableComponent_Reel_Result.RIDColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsRID0Null() { + return this.IsNull(this.tableComponent_Reel_Result.RID0Column); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetRID0Null() { + this[this.tableComponent_Reel_Result.RID0Column] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsRSNNull() { + return this.IsNull(this.tableComponent_Reel_Result.RSNColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetRSNNull() { + this[this.tableComponent_Reel_Result.RSNColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsQRNull() { + return this.IsNull(this.tableComponent_Reel_Result.QRColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetQRNull() { + this[this.tableComponent_Reel_Result.QRColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsZPLNull() { + return this.IsNull(this.tableComponent_Reel_Result.ZPLColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetZPLNull() { + this[this.tableComponent_Reel_Result.ZPLColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsPOSNull() { + return this.IsNull(this.tableComponent_Reel_Result.POSColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetPOSNull() { + this[this.tableComponent_Reel_Result.POSColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsLOCNull() { + return this.IsNull(this.tableComponent_Reel_Result.LOCColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetLOCNull() { + this[this.tableComponent_Reel_Result.LOCColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsANGLENull() { + return this.IsNull(this.tableComponent_Reel_Result.ANGLEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetANGLENull() { + this[this.tableComponent_Reel_Result.ANGLEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsQTYNull() { + return this.IsNull(this.tableComponent_Reel_Result.QTYColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetQTYNull() { + this[this.tableComponent_Reel_Result.QTYColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsQTY0Null() { + return this.IsNull(this.tableComponent_Reel_Result.QTY0Column); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetQTY0Null() { + this[this.tableComponent_Reel_Result.QTY0Column] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsVNAMENull() { + return this.IsNull(this.tableComponent_Reel_Result.VNAMEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetVNAMENull() { + this[this.tableComponent_Reel_Result.VNAMEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsPRNATTACHNull() { + return this.IsNull(this.tableComponent_Reel_Result.PRNATTACHColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetPRNATTACHNull() { + this[this.tableComponent_Reel_Result.PRNATTACHColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsPRNVALIDNull() { + return this.IsNull(this.tableComponent_Reel_Result.PRNVALIDColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetPRNVALIDNull() { + this[this.tableComponent_Reel_Result.PRNVALIDColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsPTIMENull() { + return this.IsNull(this.tableComponent_Reel_Result.PTIMEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetPTIMENull() { + this[this.tableComponent_Reel_Result.PTIMEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsMFGDATENull() { + return this.IsNull(this.tableComponent_Reel_Result.MFGDATEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetMFGDATENull() { + this[this.tableComponent_Reel_Result.MFGDATEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsVLOTNull() { + return this.IsNull(this.tableComponent_Reel_Result.VLOTColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetVLOTNull() { + this[this.tableComponent_Reel_Result.VLOTColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsREMARKNull() { + return this.IsNull(this.tableComponent_Reel_Result.REMARKColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetREMARKNull() { + this[this.tableComponent_Reel_Result.REMARKColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsPARTNONull() { + return this.IsNull(this.tableComponent_Reel_Result.PARTNOColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetPARTNONull() { + this[this.tableComponent_Reel_Result.PARTNOColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsCUSTCODENull() { + return this.IsNull(this.tableComponent_Reel_Result.CUSTCODEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetCUSTCODENull() { + this[this.tableComponent_Reel_Result.CUSTCODEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsATIMENull() { + return this.IsNull(this.tableComponent_Reel_Result.ATIMEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetATIMENull() { + this[this.tableComponent_Reel_Result.ATIMEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsBATCHNull() { + return this.IsNull(this.tableComponent_Reel_Result.BATCHColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetBATCHNull() { + this[this.tableComponent_Reel_Result.BATCHColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsqtymaxNull() { + return this.IsNull(this.tableComponent_Reel_Result.qtymaxColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetqtymaxNull() { + this[this.tableComponent_Reel_Result.qtymaxColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsGUIDNull() { + return this.IsNull(this.tableComponent_Reel_Result.GUIDColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetGUIDNull() { + this[this.tableComponent_Reel_Result.GUIDColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsiNBOUNDNull() { + return this.IsNull(this.tableComponent_Reel_Result.iNBOUNDColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetiNBOUNDNull() { + this[this.tableComponent_Reel_Result.iNBOUNDColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsMCNNull() { + return this.IsNull(this.tableComponent_Reel_Result.MCNColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetMCNNull() { + this[this.tableComponent_Reel_Result.MCNColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IstargetNull() { + return this.IsNull(this.tableComponent_Reel_Result.targetColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SettargetNull() { + this[this.tableComponent_Reel_Result.targetColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class Component_Reel_RegExRuleRow : global::System.Data.DataRow { + + private Component_Reel_RegExRuleDataTable tableComponent_Reel_RegExRule; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal Component_Reel_RegExRuleRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableComponent_Reel_RegExRule = ((Component_Reel_RegExRuleDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int Id { + get { + return ((int)(this[this.tableComponent_Reel_RegExRule.IdColumn])); + } + set { + this[this.tableComponent_Reel_RegExRule.IdColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int Seq { + get { + if (this.IsSeqNull()) { + return 0; + } + else { + return ((int)(this[this.tableComponent_Reel_RegExRule.SeqColumn])); + } + } + set { + this[this.tableComponent_Reel_RegExRule.SeqColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string CustCode { + get { + if (this.IsCustCodeNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_RegExRule.CustCodeColumn])); + } + } + set { + this[this.tableComponent_Reel_RegExRule.CustCodeColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Description { + get { + if (this.IsDescriptionNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_RegExRule.DescriptionColumn])); + } + } + set { + this[this.tableComponent_Reel_RegExRule.DescriptionColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Symbol { + get { + if (this.IsSymbolNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_RegExRule.SymbolColumn])); + } + } + set { + this[this.tableComponent_Reel_RegExRule.SymbolColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Pattern { + get { + if (this.IsPatternNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_RegExRule.PatternColumn])); + } + } + set { + this[this.tableComponent_Reel_RegExRule.PatternColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Groups { + get { + if (this.IsGroupsNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_RegExRule.GroupsColumn])); + } + } + set { + this[this.tableComponent_Reel_RegExRule.GroupsColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsEnable { + get { + if (this.IsIsEnableNull()) { + return false; + } + else { + return ((bool)(this[this.tableComponent_Reel_RegExRule.IsEnableColumn])); + } + } + set { + this[this.tableComponent_Reel_RegExRule.IsEnableColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsTrust { + get { + if (this.IsIsTrustNull()) { + return false; + } + else { + return ((bool)(this[this.tableComponent_Reel_RegExRule.IsTrustColumn])); + } + } + set { + this[this.tableComponent_Reel_RegExRule.IsTrustColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsAmkStd { + get { + if (this.IsIsAmkStdNull()) { + return false; + } + else { + return ((bool)(this[this.tableComponent_Reel_RegExRule.IsAmkStdColumn])); + } + } + set { + this[this.tableComponent_Reel_RegExRule.IsAmkStdColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsIgnore { + get { + if (this.IsIsIgnoreNull()) { + return false; + } + else { + return ((bool)(this[this.tableComponent_Reel_RegExRule.IsIgnoreColumn])); + } + } + set { + this[this.tableComponent_Reel_RegExRule.IsIgnoreColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsSeqNull() { + return this.IsNull(this.tableComponent_Reel_RegExRule.SeqColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetSeqNull() { + this[this.tableComponent_Reel_RegExRule.SeqColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsCustCodeNull() { + return this.IsNull(this.tableComponent_Reel_RegExRule.CustCodeColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetCustCodeNull() { + this[this.tableComponent_Reel_RegExRule.CustCodeColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsDescriptionNull() { + return this.IsNull(this.tableComponent_Reel_RegExRule.DescriptionColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetDescriptionNull() { + this[this.tableComponent_Reel_RegExRule.DescriptionColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsSymbolNull() { + return this.IsNull(this.tableComponent_Reel_RegExRule.SymbolColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetSymbolNull() { + this[this.tableComponent_Reel_RegExRule.SymbolColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsPatternNull() { + return this.IsNull(this.tableComponent_Reel_RegExRule.PatternColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetPatternNull() { + this[this.tableComponent_Reel_RegExRule.PatternColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsGroupsNull() { + return this.IsNull(this.tableComponent_Reel_RegExRule.GroupsColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetGroupsNull() { + this[this.tableComponent_Reel_RegExRule.GroupsColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsIsEnableNull() { + return this.IsNull(this.tableComponent_Reel_RegExRule.IsEnableColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetIsEnableNull() { + this[this.tableComponent_Reel_RegExRule.IsEnableColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsIsTrustNull() { + return this.IsNull(this.tableComponent_Reel_RegExRule.IsTrustColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetIsTrustNull() { + this[this.tableComponent_Reel_RegExRule.IsTrustColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsIsAmkStdNull() { + return this.IsNull(this.tableComponent_Reel_RegExRule.IsAmkStdColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetIsAmkStdNull() { + this[this.tableComponent_Reel_RegExRule.IsAmkStdColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsIsIgnoreNull() { + return this.IsNull(this.tableComponent_Reel_RegExRule.IsIgnoreColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetIsIgnoreNull() { + this[this.tableComponent_Reel_RegExRule.IsIgnoreColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class Component_Reel_SID_ConvertRow : global::System.Data.DataRow { + + private Component_Reel_SID_ConvertDataTable tableComponent_Reel_SID_Convert; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal Component_Reel_SID_ConvertRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableComponent_Reel_SID_Convert = ((Component_Reel_SID_ConvertDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int idx { + get { + return ((int)(this[this.tableComponent_Reel_SID_Convert.idxColumn])); + } + set { + this[this.tableComponent_Reel_SID_Convert.idxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool Chk { + get { + if (this.IsChkNull()) { + return false; + } + else { + return ((bool)(this[this.tableComponent_Reel_SID_Convert.ChkColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Convert.ChkColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string SIDFrom { + get { + if (this.IsSIDFromNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SID_Convert.SIDFromColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Convert.SIDFromColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string SIDTo { + get { + if (this.IsSIDToNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SID_Convert.SIDToColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Convert.SIDToColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Remark { + get { + if (this.IsRemarkNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SID_Convert.RemarkColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Convert.RemarkColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public System.DateTime wdate { + get { + try { + return ((global::System.DateTime)(this[this.tableComponent_Reel_SID_Convert.wdateColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'Component_Reel_SID_Convert\' 테이블의 \'wdate\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableComponent_Reel_SID_Convert.wdateColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string MC { + get { + if (this.IsMCNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SID_Convert.MCColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Convert.MCColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsChkNull() { + return this.IsNull(this.tableComponent_Reel_SID_Convert.ChkColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetChkNull() { + this[this.tableComponent_Reel_SID_Convert.ChkColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsSIDFromNull() { + return this.IsNull(this.tableComponent_Reel_SID_Convert.SIDFromColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetSIDFromNull() { + this[this.tableComponent_Reel_SID_Convert.SIDFromColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsSIDToNull() { + return this.IsNull(this.tableComponent_Reel_SID_Convert.SIDToColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetSIDToNull() { + this[this.tableComponent_Reel_SID_Convert.SIDToColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsRemarkNull() { + return this.IsNull(this.tableComponent_Reel_SID_Convert.RemarkColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetRemarkNull() { + this[this.tableComponent_Reel_SID_Convert.RemarkColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IswdateNull() { + return this.IsNull(this.tableComponent_Reel_SID_Convert.wdateColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetwdateNull() { + this[this.tableComponent_Reel_SID_Convert.wdateColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsMCNull() { + return this.IsNull(this.tableComponent_Reel_SID_Convert.MCColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetMCNull() { + this[this.tableComponent_Reel_SID_Convert.MCColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class Component_Reel_SID_InformationRow : global::System.Data.DataRow { + + private Component_Reel_SID_InformationDataTable tableComponent_Reel_SID_Information; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal Component_Reel_SID_InformationRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableComponent_Reel_SID_Information = ((Component_Reel_SID_InformationDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int idx { + get { + return ((int)(this[this.tableComponent_Reel_SID_Information.idxColumn])); + } + set { + this[this.tableComponent_Reel_SID_Information.idxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string SID { + get { + return ((string)(this[this.tableComponent_Reel_SID_Information.SIDColumn])); + } + set { + this[this.tableComponent_Reel_SID_Information.SIDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string CustCode { + get { + return ((string)(this[this.tableComponent_Reel_SID_Information.CustCodeColumn])); + } + set { + this[this.tableComponent_Reel_SID_Information.CustCodeColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string PartNo { + get { + return ((string)(this[this.tableComponent_Reel_SID_Information.PartNoColumn])); + } + set { + this[this.tableComponent_Reel_SID_Information.PartNoColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string CustName { + get { + if (this.IsCustNameNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SID_Information.CustNameColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Information.CustNameColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string VenderName { + get { + if (this.IsVenderNameNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SID_Information.VenderNameColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Information.VenderNameColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Remark { + get { + if (this.IsRemarkNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SID_Information.RemarkColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Information.RemarkColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public System.DateTime wdate { + get { + try { + return ((global::System.DateTime)(this[this.tableComponent_Reel_SID_Information.wdateColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'Component_Reel_SID_Information\' 테이블의 \'wdate\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableComponent_Reel_SID_Information.wdateColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string MC { + get { + if (this.IsMCNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SID_Information.MCColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Information.MCColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string batch { + get { + if (this.IsbatchNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SID_Information.batchColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Information.batchColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int qtymax { + get { + if (this.IsqtymaxNull()) { + return 0; + } + else { + return ((int)(this[this.tableComponent_Reel_SID_Information.qtymaxColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Information.qtymaxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string VenderLot { + get { + if (this.IsVenderLotNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SID_Information.VenderLotColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Information.VenderLotColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string attach { + get { + if (this.IsattachNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SID_Information.attachColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Information.attachColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsCustNameNull() { + return this.IsNull(this.tableComponent_Reel_SID_Information.CustNameColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetCustNameNull() { + this[this.tableComponent_Reel_SID_Information.CustNameColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsVenderNameNull() { + return this.IsNull(this.tableComponent_Reel_SID_Information.VenderNameColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetVenderNameNull() { + this[this.tableComponent_Reel_SID_Information.VenderNameColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsRemarkNull() { + return this.IsNull(this.tableComponent_Reel_SID_Information.RemarkColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetRemarkNull() { + this[this.tableComponent_Reel_SID_Information.RemarkColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IswdateNull() { + return this.IsNull(this.tableComponent_Reel_SID_Information.wdateColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetwdateNull() { + this[this.tableComponent_Reel_SID_Information.wdateColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsMCNull() { + return this.IsNull(this.tableComponent_Reel_SID_Information.MCColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetMCNull() { + this[this.tableComponent_Reel_SID_Information.MCColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsbatchNull() { + return this.IsNull(this.tableComponent_Reel_SID_Information.batchColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetbatchNull() { + this[this.tableComponent_Reel_SID_Information.batchColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsqtymaxNull() { + return this.IsNull(this.tableComponent_Reel_SID_Information.qtymaxColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetqtymaxNull() { + this[this.tableComponent_Reel_SID_Information.qtymaxColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsVenderLotNull() { + return this.IsNull(this.tableComponent_Reel_SID_Information.VenderLotColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetVenderLotNull() { + this[this.tableComponent_Reel_SID_Information.VenderLotColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsattachNull() { + return this.IsNull(this.tableComponent_Reel_SID_Information.attachColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetattachNull() { + this[this.tableComponent_Reel_SID_Information.attachColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class Component_Reel_PreSetRow : global::System.Data.DataRow { + + private Component_Reel_PreSetDataTable tableComponent_Reel_PreSet; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal Component_Reel_PreSetRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableComponent_Reel_PreSet = ((Component_Reel_PreSetDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int idx { + get { + return ((int)(this[this.tableComponent_Reel_PreSet.idxColumn])); + } + set { + this[this.tableComponent_Reel_PreSet.idxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string MC { + get { + if (this.IsMCNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_PreSet.MCColumn])); + } + } + set { + this[this.tableComponent_Reel_PreSet.MCColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Title { + get { + return ((string)(this[this.tableComponent_Reel_PreSet.TitleColumn])); + } + set { + this[this.tableComponent_Reel_PreSet.TitleColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Remark { + get { + if (this.IsRemarkNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_PreSet.RemarkColumn])); + } + } + set { + this[this.tableComponent_Reel_PreSet.RemarkColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public System.DateTime wdate { + get { + try { + return ((global::System.DateTime)(this[this.tableComponent_Reel_PreSet.wdateColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'Component_Reel_PreSet\' 테이블의 \'wdate\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableComponent_Reel_PreSet.wdateColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int vOption { + get { + if (this.IsvOptionNull()) { + return 0; + } + else { + return ((int)(this[this.tableComponent_Reel_PreSet.vOptionColumn])); + } + } + set { + this[this.tableComponent_Reel_PreSet.vOptionColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int vJobInfo { + get { + if (this.IsvJobInfoNull()) { + return 0; + } + else { + return ((int)(this[this.tableComponent_Reel_PreSet.vJobInfoColumn])); + } + } + set { + this[this.tableComponent_Reel_PreSet.vJobInfoColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int vSidInfo { + get { + if (this.IsvSidInfoNull()) { + return 0; + } + else { + return ((int)(this[this.tableComponent_Reel_PreSet.vSidInfoColumn])); + } + } + set { + this[this.tableComponent_Reel_PreSet.vSidInfoColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int vServerWrite { + get { + if (this.IsvServerWriteNull()) { + return 0; + } + else { + return ((int)(this[this.tableComponent_Reel_PreSet.vServerWriteColumn])); + } + } + set { + this[this.tableComponent_Reel_PreSet.vServerWriteColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string jobtype { + get { + if (this.IsjobtypeNull()) { + return "ㅡ"; + } + else { + return ((string)(this[this.tableComponent_Reel_PreSet.jobtypeColumn])); + } + } + set { + this[this.tableComponent_Reel_PreSet.jobtypeColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string bypasssid { + get { + if (this.IsbypasssidNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_PreSet.bypasssidColumn])); + } + } + set { + this[this.tableComponent_Reel_PreSet.bypasssidColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsMCNull() { + return this.IsNull(this.tableComponent_Reel_PreSet.MCColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetMCNull() { + this[this.tableComponent_Reel_PreSet.MCColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsRemarkNull() { + return this.IsNull(this.tableComponent_Reel_PreSet.RemarkColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetRemarkNull() { + this[this.tableComponent_Reel_PreSet.RemarkColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IswdateNull() { + return this.IsNull(this.tableComponent_Reel_PreSet.wdateColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetwdateNull() { + this[this.tableComponent_Reel_PreSet.wdateColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsvOptionNull() { + return this.IsNull(this.tableComponent_Reel_PreSet.vOptionColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetvOptionNull() { + this[this.tableComponent_Reel_PreSet.vOptionColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsvJobInfoNull() { + return this.IsNull(this.tableComponent_Reel_PreSet.vJobInfoColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetvJobInfoNull() { + this[this.tableComponent_Reel_PreSet.vJobInfoColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsvSidInfoNull() { + return this.IsNull(this.tableComponent_Reel_PreSet.vSidInfoColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetvSidInfoNull() { + this[this.tableComponent_Reel_PreSet.vSidInfoColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsvServerWriteNull() { + return this.IsNull(this.tableComponent_Reel_PreSet.vServerWriteColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetvServerWriteNull() { + this[this.tableComponent_Reel_PreSet.vServerWriteColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsjobtypeNull() { + return this.IsNull(this.tableComponent_Reel_PreSet.jobtypeColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetjobtypeNull() { + this[this.tableComponent_Reel_PreSet.jobtypeColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsbypasssidNull() { + return this.IsNull(this.tableComponent_Reel_PreSet.bypasssidColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetbypasssidNull() { + this[this.tableComponent_Reel_PreSet.bypasssidColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class Component_Reel_CustInfoRow : global::System.Data.DataRow { + + private Component_Reel_CustInfoDataTable tableComponent_Reel_CustInfo; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal Component_Reel_CustInfoRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableComponent_Reel_CustInfo = ((Component_Reel_CustInfoDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string code { + get { + return ((string)(this[this.tableComponent_Reel_CustInfo.codeColumn])); + } + set { + this[this.tableComponent_Reel_CustInfo.codeColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string name { + get { + if (this.IsnameNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_CustInfo.nameColumn])); + } + } + set { + this[this.tableComponent_Reel_CustInfo.nameColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsnameNull() { + return this.IsNull(this.tableComponent_Reel_CustInfo.nameColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetnameNull() { + this[this.tableComponent_Reel_CustInfo.nameColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class ResultSummaryRow : global::System.Data.DataRow { + + private ResultSummaryDataTable tableResultSummary; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal ResultSummaryRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableResultSummary = ((ResultSummaryDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string PARTNO { + get { + return ((string)(this[this.tableResultSummary.PARTNOColumn])); + } + set { + this[this.tableResultSummary.PARTNOColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string VLOT { + get { + return ((string)(this[this.tableResultSummary.VLOTColumn])); + } + set { + this[this.tableResultSummary.VLOTColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int QTY { + get { + if (this.IsQTYNull()) { + return 0; + } + else { + return ((int)(this[this.tableResultSummary.QTYColumn])); + } + } + set { + this[this.tableResultSummary.QTYColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int KPC { + get { + if (this.IsKPCNull()) { + return 0; + } + else { + return ((int)(this[this.tableResultSummary.KPCColumn])); + } + } + set { + this[this.tableResultSummary.KPCColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsQTYNull() { + return this.IsNull(this.tableResultSummary.QTYColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetQTYNull() { + this[this.tableResultSummary.QTYColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsKPCNull() { + return this.IsNull(this.tableResultSummary.KPCColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetKPCNull() { + this[this.tableResultSummary.KPCColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class Component_Reel_Print_InformationRow : global::System.Data.DataRow { + + private Component_Reel_Print_InformationDataTable tableComponent_Reel_Print_Information; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal Component_Reel_Print_InformationRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableComponent_Reel_Print_Information = ((Component_Reel_Print_InformationDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int idx { + get { + return ((int)(this[this.tableComponent_Reel_Print_Information.idxColumn])); + } + set { + this[this.tableComponent_Reel_Print_Information.idxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string MC { + get { + if (this.IsMCNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Print_Information.MCColumn])); + } + } + set { + this[this.tableComponent_Reel_Print_Information.MCColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string SID { + get { + return ((string)(this[this.tableComponent_Reel_Print_Information.SIDColumn])); + } + set { + this[this.tableComponent_Reel_Print_Information.SIDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string PrintPosition { + get { + if (this.IsPrintPositionNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Print_Information.PrintPositionColumn])); + } + } + set { + this[this.tableComponent_Reel_Print_Information.PrintPositionColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Remark { + get { + if (this.IsRemarkNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Print_Information.RemarkColumn])); + } + } + set { + this[this.tableComponent_Reel_Print_Information.RemarkColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public System.DateTime wdate { + get { + try { + return ((global::System.DateTime)(this[this.tableComponent_Reel_Print_Information.wdateColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'Component_Reel_Print_Information\' 테이블의 \'wdate\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableComponent_Reel_Print_Information.wdateColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsMCNull() { + return this.IsNull(this.tableComponent_Reel_Print_Information.MCColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetMCNull() { + this[this.tableComponent_Reel_Print_Information.MCColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsPrintPositionNull() { + return this.IsNull(this.tableComponent_Reel_Print_Information.PrintPositionColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetPrintPositionNull() { + this[this.tableComponent_Reel_Print_Information.PrintPositionColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsRemarkNull() { + return this.IsNull(this.tableComponent_Reel_Print_Information.RemarkColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetRemarkNull() { + this[this.tableComponent_Reel_Print_Information.RemarkColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IswdateNull() { + return this.IsNull(this.tableComponent_Reel_Print_Information.wdateColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetwdateNull() { + this[this.tableComponent_Reel_Print_Information.wdateColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class Component_Reel_PrintRegExRuleRow : global::System.Data.DataRow { + + private Component_Reel_PrintRegExRuleDataTable tableComponent_Reel_PrintRegExRule; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal Component_Reel_PrintRegExRuleRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableComponent_Reel_PrintRegExRule = ((Component_Reel_PrintRegExRuleDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int Id { + get { + return ((int)(this[this.tableComponent_Reel_PrintRegExRule.IdColumn])); + } + set { + this[this.tableComponent_Reel_PrintRegExRule.IdColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int Seq { + get { + if (this.IsSeqNull()) { + return 0; + } + else { + return ((int)(this[this.tableComponent_Reel_PrintRegExRule.SeqColumn])); + } + } + set { + this[this.tableComponent_Reel_PrintRegExRule.SeqColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string CustCode { + get { + if (this.IsCustCodeNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_PrintRegExRule.CustCodeColumn])); + } + } + set { + this[this.tableComponent_Reel_PrintRegExRule.CustCodeColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Description { + get { + if (this.IsDescriptionNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_PrintRegExRule.DescriptionColumn])); + } + } + set { + this[this.tableComponent_Reel_PrintRegExRule.DescriptionColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Symbol { + get { + if (this.IsSymbolNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_PrintRegExRule.SymbolColumn])); + } + } + set { + this[this.tableComponent_Reel_PrintRegExRule.SymbolColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Pattern { + get { + if (this.IsPatternNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_PrintRegExRule.PatternColumn])); + } + } + set { + this[this.tableComponent_Reel_PrintRegExRule.PatternColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Groups { + get { + if (this.IsGroupsNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_PrintRegExRule.GroupsColumn])); + } + } + set { + this[this.tableComponent_Reel_PrintRegExRule.GroupsColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsEnable { + get { + if (this.IsIsEnableNull()) { + return false; + } + else { + return ((bool)(this[this.tableComponent_Reel_PrintRegExRule.IsEnableColumn])); + } + } + set { + this[this.tableComponent_Reel_PrintRegExRule.IsEnableColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsTrust { + get { + if (this.IsIsTrustNull()) { + return false; + } + else { + return ((bool)(this[this.tableComponent_Reel_PrintRegExRule.IsTrustColumn])); + } + } + set { + this[this.tableComponent_Reel_PrintRegExRule.IsTrustColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsAmkStd { + get { + if (this.IsIsAmkStdNull()) { + return false; + } + else { + return ((bool)(this[this.tableComponent_Reel_PrintRegExRule.IsAmkStdColumn])); + } + } + set { + this[this.tableComponent_Reel_PrintRegExRule.IsAmkStdColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsIgnore { + get { + if (this.IsIsIgnoreNull()) { + return false; + } + else { + return ((bool)(this[this.tableComponent_Reel_PrintRegExRule.IsIgnoreColumn])); + } + } + set { + this[this.tableComponent_Reel_PrintRegExRule.IsIgnoreColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsSeqNull() { + return this.IsNull(this.tableComponent_Reel_PrintRegExRule.SeqColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetSeqNull() { + this[this.tableComponent_Reel_PrintRegExRule.SeqColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsCustCodeNull() { + return this.IsNull(this.tableComponent_Reel_PrintRegExRule.CustCodeColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetCustCodeNull() { + this[this.tableComponent_Reel_PrintRegExRule.CustCodeColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsDescriptionNull() { + return this.IsNull(this.tableComponent_Reel_PrintRegExRule.DescriptionColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetDescriptionNull() { + this[this.tableComponent_Reel_PrintRegExRule.DescriptionColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsSymbolNull() { + return this.IsNull(this.tableComponent_Reel_PrintRegExRule.SymbolColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetSymbolNull() { + this[this.tableComponent_Reel_PrintRegExRule.SymbolColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsPatternNull() { + return this.IsNull(this.tableComponent_Reel_PrintRegExRule.PatternColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetPatternNull() { + this[this.tableComponent_Reel_PrintRegExRule.PatternColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsGroupsNull() { + return this.IsNull(this.tableComponent_Reel_PrintRegExRule.GroupsColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetGroupsNull() { + this[this.tableComponent_Reel_PrintRegExRule.GroupsColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsIsEnableNull() { + return this.IsNull(this.tableComponent_Reel_PrintRegExRule.IsEnableColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetIsEnableNull() { + this[this.tableComponent_Reel_PrintRegExRule.IsEnableColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsIsTrustNull() { + return this.IsNull(this.tableComponent_Reel_PrintRegExRule.IsTrustColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetIsTrustNull() { + this[this.tableComponent_Reel_PrintRegExRule.IsTrustColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsIsAmkStdNull() { + return this.IsNull(this.tableComponent_Reel_PrintRegExRule.IsAmkStdColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetIsAmkStdNull() { + this[this.tableComponent_Reel_PrintRegExRule.IsAmkStdColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsIsIgnoreNull() { + return this.IsNull(this.tableComponent_Reel_PrintRegExRule.IsIgnoreColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetIsIgnoreNull() { + this[this.tableComponent_Reel_PrintRegExRule.IsIgnoreColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class SidinfoCustGroupRow : global::System.Data.DataRow { + + private SidinfoCustGroupDataTable tableSidinfoCustGroup; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal SidinfoCustGroupRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableSidinfoCustGroup = ((SidinfoCustGroupDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string CustCode { + get { + return ((string)(this[this.tableSidinfoCustGroup.CustCodeColumn])); + } + set { + this[this.tableSidinfoCustGroup.CustCodeColumn] = value; + } + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class UsersRow : global::System.Data.DataRow { + + private UsersDataTable tableUsers; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal UsersRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableUsers = ((UsersDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int idx { + get { + return ((int)(this[this.tableUsers.idxColumn])); + } + set { + this[this.tableUsers.idxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string No { + get { + if (this.IsNoNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableUsers.NoColumn])); + } + } + set { + this[this.tableUsers.NoColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Name { + get { + if (this.IsNameNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableUsers.NameColumn])); + } + } + set { + this[this.tableUsers.NameColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Memo { + get { + if (this.IsMemoNull()) { + return ""; + } + else { + return ((string)(this[this.tableUsers.MemoColumn])); + } + } + set { + this[this.tableUsers.MemoColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsNoNull() { + return this.IsNull(this.tableUsers.NoColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetNoNull() { + this[this.tableUsers.NoColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsNameNull() { + return this.IsNull(this.tableUsers.NameColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetNameNull() { + this[this.tableUsers.NameColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsMemoNull() { + return this.IsNull(this.tableUsers.MemoColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetMemoNull() { + this[this.tableUsers.MemoColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class MCModelRow : global::System.Data.DataRow { + + private MCModelDataTable tableMCModel; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal MCModelRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableMCModel = ((MCModelDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int idx { + get { + return ((int)(this[this.tableMCModel.idxColumn])); + } + set { + this[this.tableMCModel.idxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Title { + get { + if (this.IsTitleNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableMCModel.TitleColumn])); + } + } + set { + this[this.tableMCModel.TitleColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int pidx { + get { + if (this.IspidxNull()) { + return -1; + } + else { + return ((int)(this[this.tableMCModel.pidxColumn])); + } + } + set { + this[this.tableMCModel.pidxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public short MotIndex { + get { + if (this.IsMotIndexNull()) { + return -1; + } + else { + return ((short)(this[this.tableMCModel.MotIndexColumn])); + } + } + set { + this[this.tableMCModel.MotIndexColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public short PosIndex { + get { + if (this.IsPosIndexNull()) { + return -1; + } + else { + return ((short)(this[this.tableMCModel.PosIndexColumn])); + } + } + set { + this[this.tableMCModel.PosIndexColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string PosTitle { + get { + if (this.IsPosTitleNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableMCModel.PosTitleColumn])); + } + } + set { + this[this.tableMCModel.PosTitleColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public double Position { + get { + if (this.IsPositionNull()) { + return 0D; + } + else { + return ((double)(this[this.tableMCModel.PositionColumn])); + } + } + set { + this[this.tableMCModel.PositionColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string SpdTitle { + get { + if (this.IsSpdTitleNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableMCModel.SpdTitleColumn])); + } + } + set { + this[this.tableMCModel.SpdTitleColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public double Speed { + get { + if (this.IsSpeedNull()) { + return 0D; + } + else { + return ((double)(this[this.tableMCModel.SpeedColumn])); + } + } + set { + this[this.tableMCModel.SpeedColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public double SpeedAcc { + get { + if (this.IsSpeedAccNull()) { + return 0D; + } + else { + return ((double)(this[this.tableMCModel.SpeedAccColumn])); + } + } + set { + this[this.tableMCModel.SpeedAccColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool Check { + get { + if (this.IsCheckNull()) { + return false; + } + else { + return ((bool)(this[this.tableMCModel.CheckColumn])); + } + } + set { + this[this.tableMCModel.CheckColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public double SpeedDcc { + get { + if (this.IsSpeedDccNull()) { + return 0D; + } + else { + return ((double)(this[this.tableMCModel.SpeedDccColumn])); + } + } + set { + this[this.tableMCModel.SpeedDccColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Description { + get { + if (this.IsDescriptionNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableMCModel.DescriptionColumn])); + } + } + set { + this[this.tableMCModel.DescriptionColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Category { + get { + if (this.IsCategoryNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableMCModel.CategoryColumn])); + } + } + set { + this[this.tableMCModel.CategoryColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string MotName { + get { + if (this.IsMotNameNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableMCModel.MotNameColumn])); + } + } + set { + this[this.tableMCModel.MotNameColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsTitleNull() { + return this.IsNull(this.tableMCModel.TitleColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetTitleNull() { + this[this.tableMCModel.TitleColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IspidxNull() { + return this.IsNull(this.tableMCModel.pidxColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetpidxNull() { + this[this.tableMCModel.pidxColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsMotIndexNull() { + return this.IsNull(this.tableMCModel.MotIndexColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetMotIndexNull() { + this[this.tableMCModel.MotIndexColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsPosIndexNull() { + return this.IsNull(this.tableMCModel.PosIndexColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetPosIndexNull() { + this[this.tableMCModel.PosIndexColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsPosTitleNull() { + return this.IsNull(this.tableMCModel.PosTitleColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetPosTitleNull() { + this[this.tableMCModel.PosTitleColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsPositionNull() { + return this.IsNull(this.tableMCModel.PositionColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetPositionNull() { + this[this.tableMCModel.PositionColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsSpdTitleNull() { + return this.IsNull(this.tableMCModel.SpdTitleColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetSpdTitleNull() { + this[this.tableMCModel.SpdTitleColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsSpeedNull() { + return this.IsNull(this.tableMCModel.SpeedColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetSpeedNull() { + this[this.tableMCModel.SpeedColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsSpeedAccNull() { + return this.IsNull(this.tableMCModel.SpeedAccColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetSpeedAccNull() { + this[this.tableMCModel.SpeedAccColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsCheckNull() { + return this.IsNull(this.tableMCModel.CheckColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetCheckNull() { + this[this.tableMCModel.CheckColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsSpeedDccNull() { + return this.IsNull(this.tableMCModel.SpeedDccColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetSpeedDccNull() { + this[this.tableMCModel.SpeedDccColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsDescriptionNull() { + return this.IsNull(this.tableMCModel.DescriptionColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetDescriptionNull() { + this[this.tableMCModel.DescriptionColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsCategoryNull() { + return this.IsNull(this.tableMCModel.CategoryColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetCategoryNull() { + this[this.tableMCModel.CategoryColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsMotNameNull() { + return this.IsNull(this.tableMCModel.MotNameColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetMotNameNull() { + this[this.tableMCModel.MotNameColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class languageRow : global::System.Data.DataRow { + + private languageDataTable tablelanguage; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal languageRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tablelanguage = ((languageDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Section { + get { + return ((string)(this[this.tablelanguage.SectionColumn])); + } + set { + this[this.tablelanguage.SectionColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Key { + get { + return ((string)(this[this.tablelanguage.KeyColumn])); + } + set { + this[this.tablelanguage.KeyColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Value { + get { + if (this.IsValueNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tablelanguage.ValueColumn])); + } + } + set { + this[this.tablelanguage.ValueColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsValueNull() { + return this.IsNull(this.tablelanguage.ValueColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetValueNull() { + this[this.tablelanguage.ValueColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class OPModelRow : global::System.Data.DataRow { + + private OPModelDataTable tableOPModel; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal OPModelRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableOPModel = ((OPModelDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int idx { + get { + return ((int)(this[this.tableOPModel.idxColumn])); + } + set { + this[this.tableOPModel.idxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int Midx { + get { + if (this.IsMidxNull()) { + return -1; + } + else { + return ((int)(this[this.tableOPModel.MidxColumn])); + } + } + set { + this[this.tableOPModel.MidxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Title { + get { + if (this.IsTitleNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableOPModel.TitleColumn])); + } + } + set { + this[this.tableOPModel.TitleColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Memo { + get { + if (this.IsMemoNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableOPModel.MemoColumn])); + } + } + set { + this[this.tableOPModel.MemoColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Code { + get { + if (this.IsCodeNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableOPModel.CodeColumn])); + } + } + set { + this[this.tableOPModel.CodeColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Motion { + get { + if (this.IsMotionNull()) { + return "Default"; + } + else { + return ((string)(this[this.tableOPModel.MotionColumn])); + } + } + set { + this[this.tableOPModel.MotionColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool BCD_1D { + get { + if (this.IsBCD_1DNull()) { + return false; + } + else { + return ((bool)(this[this.tableOPModel.BCD_1DColumn])); + } + } + set { + this[this.tableOPModel.BCD_1DColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool BCD_QR { + get { + if (this.IsBCD_QRNull()) { + return false; + } + else { + return ((bool)(this[this.tableOPModel.BCD_QRColumn])); + } + } + set { + this[this.tableOPModel.BCD_QRColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool BCD_DM { + get { + if (this.IsBCD_DMNull()) { + return false; + } + else { + return ((bool)(this[this.tableOPModel.BCD_DMColumn])); + } + } + set { + this[this.tableOPModel.BCD_DMColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ushort vOption { + get { + if (this.IsvOptionNull()) { + return 0; + } + else { + return ((ushort)(this[this.tableOPModel.vOptionColumn])); + } + } + set { + this[this.tableOPModel.vOptionColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ushort vSIDInfo { + get { + if (this.IsvSIDInfoNull()) { + return 0; + } + else { + return ((ushort)(this[this.tableOPModel.vSIDInfoColumn])); + } + } + set { + this[this.tableOPModel.vSIDInfoColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ushort vJobInfo { + get { + if (this.IsvJobInfoNull()) { + return 0; + } + else { + return ((ushort)(this[this.tableOPModel.vJobInfoColumn])); + } + } + set { + this[this.tableOPModel.vJobInfoColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ushort vSIDConv { + get { + if (this.IsvSIDConvNull()) { + return 0; + } + else { + return ((ushort)(this[this.tableOPModel.vSIDConvColumn])); + } + } + set { + this[this.tableOPModel.vSIDConvColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Def_VName { + get { + if (this.IsDef_VNameNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableOPModel.Def_VNameColumn])); + } + } + set { + this[this.tableOPModel.Def_VNameColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Def_MFG { + get { + if (this.IsDef_MFGNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableOPModel.Def_MFGColumn])); + } + } + set { + this[this.tableOPModel.Def_MFGColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IgnoreOtherBarcode { + get { + if (this.IsIgnoreOtherBarcodeNull()) { + return false; + } + else { + return ((bool)(this[this.tableOPModel.IgnoreOtherBarcodeColumn])); + } + } + set { + this[this.tableOPModel.IgnoreOtherBarcodeColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool bConv { + get { + if (this.IsbConvNull()) { + return false; + } + else { + return ((bool)(this[this.tableOPModel.bConvColumn])); + } + } + set { + this[this.tableOPModel.bConvColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int BSave { + get { + if (this.IsBSaveNull()) { + return 0; + } + else { + return ((int)(this[this.tableOPModel.BSaveColumn])); + } + } + set { + this[this.tableOPModel.BSaveColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool DisableCamera { + get { + if (this.IsDisableCameraNull()) { + return false; + } + else { + return ((bool)(this[this.tableOPModel.DisableCameraColumn])); + } + } + set { + this[this.tableOPModel.DisableCameraColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool DisablePrinter { + get { + if (this.IsDisablePrinterNull()) { + return false; + } + else { + return ((bool)(this[this.tableOPModel.DisablePrinterColumn])); + } + } + set { + this[this.tableOPModel.DisablePrinterColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool CheckSIDExsit { + get { + if (this.IsCheckSIDExsitNull()) { + return false; + } + else { + return ((bool)(this[this.tableOPModel.CheckSIDExsitColumn])); + } + } + set { + this[this.tableOPModel.CheckSIDExsitColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsMidxNull() { + return this.IsNull(this.tableOPModel.MidxColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetMidxNull() { + this[this.tableOPModel.MidxColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsTitleNull() { + return this.IsNull(this.tableOPModel.TitleColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetTitleNull() { + this[this.tableOPModel.TitleColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsMemoNull() { + return this.IsNull(this.tableOPModel.MemoColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetMemoNull() { + this[this.tableOPModel.MemoColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsCodeNull() { + return this.IsNull(this.tableOPModel.CodeColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetCodeNull() { + this[this.tableOPModel.CodeColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsMotionNull() { + return this.IsNull(this.tableOPModel.MotionColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetMotionNull() { + this[this.tableOPModel.MotionColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsBCD_1DNull() { + return this.IsNull(this.tableOPModel.BCD_1DColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetBCD_1DNull() { + this[this.tableOPModel.BCD_1DColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsBCD_QRNull() { + return this.IsNull(this.tableOPModel.BCD_QRColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetBCD_QRNull() { + this[this.tableOPModel.BCD_QRColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsBCD_DMNull() { + return this.IsNull(this.tableOPModel.BCD_DMColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetBCD_DMNull() { + this[this.tableOPModel.BCD_DMColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsvOptionNull() { + return this.IsNull(this.tableOPModel.vOptionColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetvOptionNull() { + this[this.tableOPModel.vOptionColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsvSIDInfoNull() { + return this.IsNull(this.tableOPModel.vSIDInfoColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetvSIDInfoNull() { + this[this.tableOPModel.vSIDInfoColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsvJobInfoNull() { + return this.IsNull(this.tableOPModel.vJobInfoColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetvJobInfoNull() { + this[this.tableOPModel.vJobInfoColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsvSIDConvNull() { + return this.IsNull(this.tableOPModel.vSIDConvColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetvSIDConvNull() { + this[this.tableOPModel.vSIDConvColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsDef_VNameNull() { + return this.IsNull(this.tableOPModel.Def_VNameColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetDef_VNameNull() { + this[this.tableOPModel.Def_VNameColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsDef_MFGNull() { + return this.IsNull(this.tableOPModel.Def_MFGColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetDef_MFGNull() { + this[this.tableOPModel.Def_MFGColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsIgnoreOtherBarcodeNull() { + return this.IsNull(this.tableOPModel.IgnoreOtherBarcodeColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetIgnoreOtherBarcodeNull() { + this[this.tableOPModel.IgnoreOtherBarcodeColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsbConvNull() { + return this.IsNull(this.tableOPModel.bConvColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetbConvNull() { + this[this.tableOPModel.bConvColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsBSaveNull() { + return this.IsNull(this.tableOPModel.BSaveColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetBSaveNull() { + this[this.tableOPModel.BSaveColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsDisableCameraNull() { + return this.IsNull(this.tableOPModel.DisableCameraColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetDisableCameraNull() { + this[this.tableOPModel.DisableCameraColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsDisablePrinterNull() { + return this.IsNull(this.tableOPModel.DisablePrinterColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetDisablePrinterNull() { + this[this.tableOPModel.DisablePrinterColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsCheckSIDExsitNull() { + return this.IsNull(this.tableOPModel.CheckSIDExsitColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetCheckSIDExsitNull() { + this[this.tableOPModel.CheckSIDExsitColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class BCDDataRow : global::System.Data.DataRow { + + private BCDDataDataTable tableBCDData; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal BCDDataRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableBCDData = ((BCDDataDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public System.DateTime Start { + get { + return ((global::System.DateTime)(this[this.tableBCDData.StartColumn])); + } + set { + this[this.tableBCDData.StartColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string ID { + get { + if (this.IsIDNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableBCDData.IDColumn])); + } + } + set { + this[this.tableBCDData.IDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string SID { + get { + if (this.IsSIDNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableBCDData.SIDColumn])); + } + } + set { + this[this.tableBCDData.SIDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string RAW { + get { + if (this.IsRAWNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableBCDData.RAWColumn])); + } + } + set { + this[this.tableBCDData.RAWColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsIDNull() { + return this.IsNull(this.tableBCDData.IDColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetIDNull() { + this[this.tableBCDData.IDColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsSIDNull() { + return this.IsNull(this.tableBCDData.SIDColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetSIDNull() { + this[this.tableBCDData.SIDColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsRAWNull() { + return this.IsNull(this.tableBCDData.RAWColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetRAWNull() { + this[this.tableBCDData.RAWColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class UserSIDRow : global::System.Data.DataRow { + + private UserSIDDataTable tableUserSID; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal UserSIDRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableUserSID = ((UserSIDDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int idx { + get { + return ((int)(this[this.tableUserSID.idxColumn])); + } + set { + this[this.tableUserSID.idxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Port { + get { + if (this.IsPortNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableUserSID.PortColumn])); + } + } + set { + this[this.tableUserSID.PortColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string SID { + get { + if (this.IsSIDNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableUserSID.SIDColumn])); + } + } + set { + this[this.tableUserSID.SIDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsPortNull() { + return this.IsNull(this.tableUserSID.PortColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetPortNull() { + this[this.tableUserSID.PortColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsSIDNull() { + return this.IsNull(this.tableUserSID.SIDColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetSIDNull() { + this[this.tableUserSID.SIDColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class MailFormatRow : global::System.Data.DataRow { + + private MailFormatDataTable tableMailFormat; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal MailFormatRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableMailFormat = ((MailFormatDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string subject { + get { + try { + return ((string)(this[this.tableMailFormat.subjectColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'MailFormat\' 테이블의 \'subject\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableMailFormat.subjectColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string content { + get { + try { + return ((string)(this[this.tableMailFormat.contentColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'MailFormat\' 테이블의 \'content\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableMailFormat.contentColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IssubjectNull() { + return this.IsNull(this.tableMailFormat.subjectColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetsubjectNull() { + this[this.tableMailFormat.subjectColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IscontentNull() { + return this.IsNull(this.tableMailFormat.contentColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetcontentNull() { + this[this.tableMailFormat.contentColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class MailRecipientRow : global::System.Data.DataRow { + + private MailRecipientDataTable tableMailRecipient; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal MailRecipientRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableMailRecipient = ((MailRecipientDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int idx { + get { + return ((int)(this[this.tableMailRecipient.idxColumn])); + } + set { + this[this.tableMailRecipient.idxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Name { + get { + try { + return ((string)(this[this.tableMailRecipient.NameColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'MailRecipient\' 테이블의 \'Name\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableMailRecipient.NameColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Address { + get { + try { + return ((string)(this[this.tableMailRecipient.AddressColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'MailRecipient\' 테이블의 \'Address\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableMailRecipient.AddressColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsNameNull() { + return this.IsNull(this.tableMailRecipient.NameColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetNameNull() { + this[this.tableMailRecipient.NameColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsAddressNull() { + return this.IsNull(this.tableMailRecipient.AddressColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetAddressNull() { + this[this.tableMailRecipient.AddressColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class SIDHistoryRow : global::System.Data.DataRow { + + private SIDHistoryDataTable tableSIDHistory; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal SIDHistoryRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableSIDHistory = ((SIDHistoryDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int idx { + get { + return ((int)(this[this.tableSIDHistory.idxColumn])); + } + set { + this[this.tableSIDHistory.idxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public System.DateTime time { + get { + try { + return ((global::System.DateTime)(this[this.tableSIDHistory.timeColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'SIDHistory\' 테이블의 \'time\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableSIDHistory.timeColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string seqdate { + get { + if (this.IsseqdateNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableSIDHistory.seqdateColumn])); + } + } + set { + this[this.tableSIDHistory.seqdateColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string seqno { + get { + if (this.IsseqnoNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableSIDHistory.seqnoColumn])); + } + } + set { + this[this.tableSIDHistory.seqnoColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string sid { + get { + if (this.IssidNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableSIDHistory.sidColumn])); + } + } + set { + this[this.tableSIDHistory.sidColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string rid { + get { + if (this.IsridNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableSIDHistory.ridColumn])); + } + } + set { + this[this.tableSIDHistory.ridColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int qty { + get { + if (this.IsqtyNull()) { + return 0; + } + else { + return ((int)(this[this.tableSIDHistory.qtyColumn])); + } + } + set { + this[this.tableSIDHistory.qtyColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int rev { + get { + if (this.IsrevNull()) { + return 0; + } + else { + return ((int)(this[this.tableSIDHistory.revColumn])); + } + } + set { + this[this.tableSIDHistory.revColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int acc { + get { + if (this.IsaccNull()) { + return 0; + } + else { + return ((int)(this[this.tableSIDHistory.accColumn])); + } + } + set { + this[this.tableSIDHistory.accColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IstimeNull() { + return this.IsNull(this.tableSIDHistory.timeColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SettimeNull() { + this[this.tableSIDHistory.timeColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsseqdateNull() { + return this.IsNull(this.tableSIDHistory.seqdateColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetseqdateNull() { + this[this.tableSIDHistory.seqdateColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsseqnoNull() { + return this.IsNull(this.tableSIDHistory.seqnoColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetseqnoNull() { + this[this.tableSIDHistory.seqnoColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IssidNull() { + return this.IsNull(this.tableSIDHistory.sidColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetsidNull() { + this[this.tableSIDHistory.sidColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsridNull() { + return this.IsNull(this.tableSIDHistory.ridColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetridNull() { + this[this.tableSIDHistory.ridColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsqtyNull() { + return this.IsNull(this.tableSIDHistory.qtyColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetqtyNull() { + this[this.tableSIDHistory.qtyColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsrevNull() { + return this.IsNull(this.tableSIDHistory.revColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetrevNull() { + this[this.tableSIDHistory.revColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsaccNull() { + return this.IsNull(this.tableSIDHistory.accColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetaccNull() { + this[this.tableSIDHistory.accColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class InputDescriptionRow : global::System.Data.DataRow { + + private InputDescriptionDataTable tableInputDescription; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal InputDescriptionRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableInputDescription = ((InputDescriptionDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public short Idx { + get { + return ((short)(this[this.tableInputDescription.IdxColumn])); + } + set { + this[this.tableInputDescription.IdxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Title { + get { + if (this.IsTitleNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableInputDescription.TitleColumn])); + } + } + set { + this[this.tableInputDescription.TitleColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Description { + get { + if (this.IsDescriptionNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableInputDescription.DescriptionColumn])); + } + } + set { + this[this.tableInputDescription.DescriptionColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int TerminalNo { + get { + try { + return ((int)(this[this.tableInputDescription.TerminalNoColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'InputDescription\' 테이블의 \'TerminalNo\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableInputDescription.TerminalNoColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool Invert { + get { + try { + return ((bool)(this[this.tableInputDescription.InvertColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'InputDescription\' 테이블의 \'Invert\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableInputDescription.InvertColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Name { + get { + if (this.IsNameNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableInputDescription.NameColumn])); + } + } + set { + this[this.tableInputDescription.NameColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsTitleNull() { + return this.IsNull(this.tableInputDescription.TitleColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetTitleNull() { + this[this.tableInputDescription.TitleColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsDescriptionNull() { + return this.IsNull(this.tableInputDescription.DescriptionColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetDescriptionNull() { + this[this.tableInputDescription.DescriptionColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsTerminalNoNull() { + return this.IsNull(this.tableInputDescription.TerminalNoColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetTerminalNoNull() { + this[this.tableInputDescription.TerminalNoColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsInvertNull() { + return this.IsNull(this.tableInputDescription.InvertColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetInvertNull() { + this[this.tableInputDescription.InvertColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsNameNull() { + return this.IsNull(this.tableInputDescription.NameColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetNameNull() { + this[this.tableInputDescription.NameColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class OutputDescriptionRow : global::System.Data.DataRow { + + private OutputDescriptionDataTable tableOutputDescription; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal OutputDescriptionRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableOutputDescription = ((OutputDescriptionDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public short Idx { + get { + return ((short)(this[this.tableOutputDescription.IdxColumn])); + } + set { + this[this.tableOutputDescription.IdxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Title { + get { + if (this.IsTitleNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableOutputDescription.TitleColumn])); + } + } + set { + this[this.tableOutputDescription.TitleColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Description { + get { + if (this.IsDescriptionNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableOutputDescription.DescriptionColumn])); + } + } + set { + this[this.tableOutputDescription.DescriptionColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int TerminalNo { + get { + try { + return ((int)(this[this.tableOutputDescription.TerminalNoColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'OutputDescription\' 테이블의 \'TerminalNo\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableOutputDescription.TerminalNoColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool Invert { + get { + try { + return ((bool)(this[this.tableOutputDescription.InvertColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'OutputDescription\' 테이블의 \'Invert\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableOutputDescription.InvertColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Name { + get { + if (this.IsNameNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableOutputDescription.NameColumn])); + } + } + set { + this[this.tableOutputDescription.NameColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsTitleNull() { + return this.IsNull(this.tableOutputDescription.TitleColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetTitleNull() { + this[this.tableOutputDescription.TitleColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsDescriptionNull() { + return this.IsNull(this.tableOutputDescription.DescriptionColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetDescriptionNull() { + this[this.tableOutputDescription.DescriptionColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsTerminalNoNull() { + return this.IsNull(this.tableOutputDescription.TerminalNoColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetTerminalNoNull() { + this[this.tableOutputDescription.TerminalNoColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsInvertNull() { + return this.IsNull(this.tableOutputDescription.InvertColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetInvertNull() { + this[this.tableOutputDescription.InvertColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsNameNull() { + return this.IsNull(this.tableOutputDescription.NameColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetNameNull() { + this[this.tableOutputDescription.NameColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class UserTableRow : global::System.Data.DataRow { + + private UserTableDataTable tableUserTable; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal UserTableRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableUserTable = ((UserTableDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string ID { + get { + return ((string)(this[this.tableUserTable.IDColumn])); + } + set { + this[this.tableUserTable.IDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string PASS { + get { + if (this.IsPASSNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableUserTable.PASSColumn])); + } + } + set { + this[this.tableUserTable.PASSColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string LEVEL { + get { + if (this.IsLEVELNull()) { + return "O"; + } + else { + return ((string)(this[this.tableUserTable.LEVELColumn])); + } + } + set { + this[this.tableUserTable.LEVELColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsPASSNull() { + return this.IsNull(this.tableUserTable.PASSColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetPASSNull() { + this[this.tableUserTable.PASSColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsLEVELNull() { + return this.IsNull(this.tableUserTable.LEVELColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetLEVELNull() { + this[this.tableUserTable.LEVELColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class ErrorDescriptionRow : global::System.Data.DataRow { + + private ErrorDescriptionDataTable tableErrorDescription; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal ErrorDescriptionRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableErrorDescription = ((ErrorDescriptionDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public short Idx { + get { + return ((short)(this[this.tableErrorDescription.IdxColumn])); + } + set { + this[this.tableErrorDescription.IdxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Title { + get { + if (this.IsTitleNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableErrorDescription.TitleColumn])); + } + } + set { + this[this.tableErrorDescription.TitleColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Description { + get { + if (this.IsDescriptionNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableErrorDescription.DescriptionColumn])); + } + } + set { + this[this.tableErrorDescription.DescriptionColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Shorts { + get { + if (this.IsShortsNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableErrorDescription.ShortsColumn])); + } + } + set { + this[this.tableErrorDescription.ShortsColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsTitleNull() { + return this.IsNull(this.tableErrorDescription.TitleColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetTitleNull() { + this[this.tableErrorDescription.TitleColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsDescriptionNull() { + return this.IsNull(this.tableErrorDescription.DescriptionColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetDescriptionNull() { + this[this.tableErrorDescription.DescriptionColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsShortsNull() { + return this.IsNull(this.tableErrorDescription.ShortsColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetShortsNull() { + this[this.tableErrorDescription.ShortsColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class ModelListRow : global::System.Data.DataRow { + + private ModelListDataTable tableModelList; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal ModelListRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableModelList = ((ModelListDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Title { + get { + return ((string)(this[this.tableModelList.TitleColumn])); + } + set { + this[this.tableModelList.TitleColumn] = value; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class Component_Reel_ResultRowChangeEvent : global::System.EventArgs { + + private Component_Reel_ResultRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_ResultRowChangeEvent(Component_Reel_ResultRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_ResultRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class Component_Reel_RegExRuleRowChangeEvent : global::System.EventArgs { + + private Component_Reel_RegExRuleRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_RegExRuleRowChangeEvent(Component_Reel_RegExRuleRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_RegExRuleRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class Component_Reel_SID_ConvertRowChangeEvent : global::System.EventArgs { + + private Component_Reel_SID_ConvertRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_ConvertRowChangeEvent(Component_Reel_SID_ConvertRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_ConvertRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class Component_Reel_SID_InformationRowChangeEvent : global::System.EventArgs { + + private Component_Reel_SID_InformationRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_InformationRowChangeEvent(Component_Reel_SID_InformationRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_InformationRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class Component_Reel_PreSetRowChangeEvent : global::System.EventArgs { + + private Component_Reel_PreSetRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_PreSetRowChangeEvent(Component_Reel_PreSetRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_PreSetRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class Component_Reel_CustInfoRowChangeEvent : global::System.EventArgs { + + private Component_Reel_CustInfoRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_CustInfoRowChangeEvent(Component_Reel_CustInfoRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_CustInfoRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class ResultSummaryRowChangeEvent : global::System.EventArgs { + + private ResultSummaryRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ResultSummaryRowChangeEvent(ResultSummaryRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ResultSummaryRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class Component_Reel_Print_InformationRowChangeEvent : global::System.EventArgs { + + private Component_Reel_Print_InformationRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_Print_InformationRowChangeEvent(Component_Reel_Print_InformationRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_Print_InformationRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class Component_Reel_PrintRegExRuleRowChangeEvent : global::System.EventArgs { + + private Component_Reel_PrintRegExRuleRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_PrintRegExRuleRowChangeEvent(Component_Reel_PrintRegExRuleRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_PrintRegExRuleRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class SidinfoCustGroupRowChangeEvent : global::System.EventArgs { + + private SidinfoCustGroupRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public SidinfoCustGroupRowChangeEvent(SidinfoCustGroupRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public SidinfoCustGroupRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class UsersRowChangeEvent : global::System.EventArgs { + + private UsersRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public UsersRowChangeEvent(UsersRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public UsersRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class MCModelRowChangeEvent : global::System.EventArgs { + + private MCModelRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public MCModelRowChangeEvent(MCModelRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public MCModelRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class languageRowChangeEvent : global::System.EventArgs { + + private languageRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public languageRowChangeEvent(languageRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public languageRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class OPModelRowChangeEvent : global::System.EventArgs { + + private OPModelRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public OPModelRowChangeEvent(OPModelRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public OPModelRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class BCDDataRowChangeEvent : global::System.EventArgs { + + private BCDDataRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public BCDDataRowChangeEvent(BCDDataRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public BCDDataRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class UserSIDRowChangeEvent : global::System.EventArgs { + + private UserSIDRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public UserSIDRowChangeEvent(UserSIDRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public UserSIDRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class MailFormatRowChangeEvent : global::System.EventArgs { + + private MailFormatRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public MailFormatRowChangeEvent(MailFormatRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public MailFormatRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class MailRecipientRowChangeEvent : global::System.EventArgs { + + private MailRecipientRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public MailRecipientRowChangeEvent(MailRecipientRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public MailRecipientRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class SIDHistoryRowChangeEvent : global::System.EventArgs { + + private SIDHistoryRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public SIDHistoryRowChangeEvent(SIDHistoryRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public SIDHistoryRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class InputDescriptionRowChangeEvent : global::System.EventArgs { + + private InputDescriptionRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public InputDescriptionRowChangeEvent(InputDescriptionRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public InputDescriptionRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class OutputDescriptionRowChangeEvent : global::System.EventArgs { + + private OutputDescriptionRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public OutputDescriptionRowChangeEvent(OutputDescriptionRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public OutputDescriptionRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class UserTableRowChangeEvent : global::System.EventArgs { + + private UserTableRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public UserTableRowChangeEvent(UserTableRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public UserTableRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class ErrorDescriptionRowChangeEvent : global::System.EventArgs { + + private ErrorDescriptionRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ErrorDescriptionRowChangeEvent(ErrorDescriptionRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ErrorDescriptionRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class ModelListRowChangeEvent : global::System.EventArgs { + + private ModelListRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ModelListRowChangeEvent(ModelListRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ModelListRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + } +} +namespace Project.DataSet1TableAdapters { + + + /// + ///Represents the connection and commands used to retrieve and save data. + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DataObjectAttribute(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + + ", Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public partial class Component_Reel_ResultTableAdapter : global::System.ComponentModel.Component { + + private global::System.Data.SqlClient.SqlDataAdapter _adapter; + + private global::System.Data.SqlClient.SqlConnection _connection; + + private global::System.Data.SqlClient.SqlTransaction _transaction; + + private global::System.Data.SqlClient.SqlCommand[] _commandCollection; + + private bool _clearBeforeFill; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_ResultTableAdapter() { + this.ClearBeforeFill = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected internal global::System.Data.SqlClient.SqlDataAdapter Adapter { + get { + if ((this._adapter == null)) { + this.InitAdapter(); + } + return this._adapter; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlConnection Connection { + get { + if ((this._connection == null)) { + this.InitConnection(); + } + return this._connection; + } + set { + this._connection = value; + if ((this.Adapter.InsertCommand != null)) { + this.Adapter.InsertCommand.Connection = value; + } + if ((this.Adapter.DeleteCommand != null)) { + this.Adapter.DeleteCommand.Connection = value; + } + if ((this.Adapter.UpdateCommand != null)) { + this.Adapter.UpdateCommand.Connection = value; + } + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + if ((this.CommandCollection[i] != null)) { + ((global::System.Data.SqlClient.SqlCommand)(this.CommandCollection[i])).Connection = value; + } + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlTransaction Transaction { + get { + return this._transaction; + } + set { + this._transaction = value; + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + this.CommandCollection[i].Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.DeleteCommand != null))) { + this.Adapter.DeleteCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.InsertCommand != null))) { + this.Adapter.InsertCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.UpdateCommand != null))) { + this.Adapter.UpdateCommand.Transaction = this._transaction; + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected global::System.Data.SqlClient.SqlCommand[] CommandCollection { + get { + if ((this._commandCollection == null)) { + this.InitCommandCollection(); + } + return this._commandCollection; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool ClearBeforeFill { + get { + return this._clearBeforeFill; + } + set { + this._clearBeforeFill = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitAdapter() { + this._adapter = new global::System.Data.SqlClient.SqlDataAdapter(); + global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); + tableMapping.SourceTable = "Table"; + tableMapping.DataSetTable = "Component_Reel_Result"; + tableMapping.ColumnMappings.Add("idx", "idx"); + tableMapping.ColumnMappings.Add("STIME", "STIME"); + tableMapping.ColumnMappings.Add("ETIME", "ETIME"); + tableMapping.ColumnMappings.Add("PDATE", "PDATE"); + tableMapping.ColumnMappings.Add("JTYPE", "JTYPE"); + tableMapping.ColumnMappings.Add("JGUID", "JGUID"); + tableMapping.ColumnMappings.Add("SID", "SID"); + tableMapping.ColumnMappings.Add("SID0", "SID0"); + tableMapping.ColumnMappings.Add("RID", "RID"); + tableMapping.ColumnMappings.Add("RID0", "RID0"); + tableMapping.ColumnMappings.Add("RSN", "RSN"); + tableMapping.ColumnMappings.Add("QR", "QR"); + tableMapping.ColumnMappings.Add("ZPL", "ZPL"); + tableMapping.ColumnMappings.Add("POS", "POS"); + tableMapping.ColumnMappings.Add("LOC", "LOC"); + tableMapping.ColumnMappings.Add("ANGLE", "ANGLE"); + tableMapping.ColumnMappings.Add("QTY", "QTY"); + tableMapping.ColumnMappings.Add("QTY0", "QTY0"); + tableMapping.ColumnMappings.Add("wdate", "wdate"); + tableMapping.ColumnMappings.Add("VNAME", "VNAME"); + tableMapping.ColumnMappings.Add("PRNATTACH", "PRNATTACH"); + tableMapping.ColumnMappings.Add("PRNVALID", "PRNVALID"); + tableMapping.ColumnMappings.Add("PTIME", "PTIME"); + tableMapping.ColumnMappings.Add("MFGDATE", "MFGDATE"); + tableMapping.ColumnMappings.Add("VLOT", "VLOT"); + tableMapping.ColumnMappings.Add("REMARK", "REMARK"); + tableMapping.ColumnMappings.Add("MC", "MC"); + tableMapping.ColumnMappings.Add("PARTNO", "PARTNO"); + tableMapping.ColumnMappings.Add("CUSTCODE", "CUSTCODE"); + tableMapping.ColumnMappings.Add("ATIME", "ATIME"); + tableMapping.ColumnMappings.Add("BATCH", "BATCH"); + tableMapping.ColumnMappings.Add("qtymax", "qtymax"); + tableMapping.ColumnMappings.Add("GUID", "GUID"); + tableMapping.ColumnMappings.Add("iNBOUND", "iNBOUND"); + tableMapping.ColumnMappings.Add("MCN", "MCN"); + tableMapping.ColumnMappings.Add("target", "target"); + this._adapter.TableMappings.Add(tableMapping); + this._adapter.DeleteCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.DeleteCommand.Connection = this.Connection; + this._adapter.DeleteCommand.CommandText = "DELETE FROM [Component_Reel_Result] WHERE (([idx] = @Original_idx) AND ([STIME] =" + + " @Original_STIME) AND ((@IsNull_ETIME = 1 AND [ETIME] IS NULL) OR ([ETIME] = @Or" + + "iginal_ETIME)) AND ((@IsNull_PDATE = 1 AND [PDATE] IS NULL) OR ([PDATE] = @Origi" + + "nal_PDATE)) AND ((@IsNull_JTYPE = 1 AND [JTYPE] IS NULL) OR ([JTYPE] = @Original" + + "_JTYPE)) AND ((@IsNull_JGUID = 1 AND [JGUID] IS NULL) OR ([JGUID] = @Original_JG" + + "UID)) AND ((@IsNull_SID = 1 AND [SID] IS NULL) OR ([SID] = @Original_SID)) AND (" + + "(@IsNull_SID0 = 1 AND [SID0] IS NULL) OR ([SID0] = @Original_SID0)) AND ((@IsNul" + + "l_RID = 1 AND [RID] IS NULL) OR ([RID] = @Original_RID)) AND ((@IsNull_RID0 = 1 " + + "AND [RID0] IS NULL) OR ([RID0] = @Original_RID0)) AND ((@IsNull_RSN = 1 AND [RSN" + + "] IS NULL) OR ([RSN] = @Original_RSN)) AND ((@IsNull_QR = 1 AND [QR] IS NULL) OR" + + " ([QR] = @Original_QR)) AND ((@IsNull_ZPL = 1 AND [ZPL] IS NULL) OR ([ZPL] = @Or" + + "iginal_ZPL)) AND ((@IsNull_POS = 1 AND [POS] IS NULL) OR ([POS] = @Original_POS)" + + ") AND ((@IsNull_LOC = 1 AND [LOC] IS NULL) OR ([LOC] = @Original_LOC)) AND ((@Is" + + "Null_ANGLE = 1 AND [ANGLE] IS NULL) OR ([ANGLE] = @Original_ANGLE)) AND ((@IsNul" + + "l_QTY = 1 AND [QTY] IS NULL) OR ([QTY] = @Original_QTY)) AND ((@IsNull_QTY0 = 1 " + + "AND [QTY0] IS NULL) OR ([QTY0] = @Original_QTY0)) AND ([wdate] = @Original_wdate" + + ") AND ((@IsNull_VNAME = 1 AND [VNAME] IS NULL) OR ([VNAME] = @Original_VNAME)) A" + + "ND ((@IsNull_PRNATTACH = 1 AND [PRNATTACH] IS NULL) OR ([PRNATTACH] = @Original_" + + "PRNATTACH)) AND ((@IsNull_PRNVALID = 1 AND [PRNVALID] IS NULL) OR ([PRNVALID] = " + + "@Original_PRNVALID)) AND ((@IsNull_PTIME = 1 AND [PTIME] IS NULL) OR ([PTIME] = " + + "@Original_PTIME)) AND ((@IsNull_MFGDATE = 1 AND [MFGDATE] IS NULL) OR ([MFGDATE]" + + " = @Original_MFGDATE)) AND ((@IsNull_VLOT = 1 AND [VLOT] IS NULL) OR ([VLOT] = @" + + "Original_VLOT)) AND ((@IsNull_REMARK = 1 AND [REMARK] IS NULL) OR ([REMARK] = @O" + + "riginal_REMARK)) AND ((@IsNull_MC = 1 AND [MC] IS NULL) OR ([MC] = @Original_MC)" + + ") AND ((@IsNull_PARTNO = 1 AND [PARTNO] IS NULL) OR ([PARTNO] = @Original_PARTNO" + + ")) AND ((@IsNull_CUSTCODE = 1 AND [CUSTCODE] IS NULL) OR ([CUSTCODE] = @Original" + + "_CUSTCODE)) AND ((@IsNull_ATIME = 1 AND [ATIME] IS NULL) OR ([ATIME] = @Original" + + "_ATIME)) AND ((@IsNull_BATCH = 1 AND [BATCH] IS NULL) OR ([BATCH] = @Original_BA" + + "TCH)) AND ((@IsNull_qtymax = 1 AND [qtymax] IS NULL) OR ([qtymax] = @Original_qt" + + "ymax)) AND ((@IsNull_GUID = 1 AND [GUID] IS NULL) OR ([GUID] = @Original_GUID)))" + + ""; + this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_idx", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_STIME", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "STIME", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_ETIME", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ETIME", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_ETIME", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ETIME", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_PDATE", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PDATE", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PDATE", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PDATE", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_JTYPE", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "JTYPE", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_JTYPE", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "JTYPE", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_JGUID", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "JGUID", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_JGUID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "JGUID", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_SID", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_SID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_SID0", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID0", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_SID0", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID0", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_RID", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "RID", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_RID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "RID", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_RID0", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "RID0", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_RID0", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "RID0", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_RSN", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "RSN", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_RSN", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "RSN", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_QR", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QR", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_QR", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QR", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_ZPL", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ZPL", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_ZPL", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ZPL", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_POS", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "POS", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_POS", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "POS", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_LOC", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "LOC", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_LOC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "LOC", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_ANGLE", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ANGLE", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_ANGLE", global::System.Data.SqlDbType.Float, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ANGLE", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_QTY", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QTY", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_QTY", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QTY", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_QTY0", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QTY0", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_QTY0", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QTY0", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_VNAME", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VNAME", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_VNAME", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VNAME", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_PRNATTACH", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PRNATTACH", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PRNATTACH", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PRNATTACH", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_PRNVALID", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PRNVALID", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PRNVALID", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PRNVALID", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_PTIME", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PTIME", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PTIME", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PTIME", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_MFGDATE", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MFGDATE", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_MFGDATE", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MFGDATE", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_VLOT", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VLOT", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_VLOT", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VLOT", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_REMARK", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "REMARK", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_REMARK", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "REMARK", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_MC", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_MC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_PARTNO", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PARTNO", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PARTNO", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PARTNO", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_CUSTCODE", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CUSTCODE", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CUSTCODE", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CUSTCODE", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_ATIME", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ATIME", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_ATIME", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ATIME", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_BATCH", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "BATCH", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_BATCH", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "BATCH", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_qtymax", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "qtymax", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_qtymax", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "qtymax", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_GUID", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "GUID", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_GUID", global::System.Data.SqlDbType.UniqueIdentifier, 0, global::System.Data.ParameterDirection.Input, 0, 0, "GUID", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.InsertCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.InsertCommand.Connection = this.Connection; + this._adapter.InsertCommand.CommandText = @"INSERT INTO [Component_Reel_Result] ([STIME], [ETIME], [PDATE], [JTYPE], [JGUID], [SID], [SID0], [RID], [RID0], [RSN], [QR], [ZPL], [POS], [LOC], [ANGLE], [QTY], [QTY0], [wdate], [VNAME], [PRNATTACH], [PRNVALID], [PTIME], [MFGDATE], [VLOT], [REMARK], [MC], [PARTNO], [CUSTCODE], [ATIME], [BATCH], [qtymax], [GUID], [iNBOUND], [MCN], [target]) VALUES (@STIME, @ETIME, @PDATE, @JTYPE, @JGUID, @SID, @SID0, @RID, @RID0, @RSN, @QR, @ZPL, @POS, @LOC, @ANGLE, @QTY, @QTY0, @wdate, @VNAME, @PRNATTACH, @PRNVALID, @PTIME, @MFGDATE, @VLOT, @REMARK, @MC, @PARTNO, @CUSTCODE, @ATIME, @BATCH, @qtymax, @GUID, @iNBOUND, @MCN, @target)"; + this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@STIME", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "STIME", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@ETIME", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ETIME", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PDATE", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PDATE", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@JTYPE", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "JTYPE", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@JGUID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "JGUID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SID0", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID0", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "RID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RID0", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "RID0", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RSN", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "RSN", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@QR", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QR", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@ZPL", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ZPL", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@POS", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "POS", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@LOC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "LOC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@ANGLE", global::System.Data.SqlDbType.Float, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ANGLE", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@QTY", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QTY", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@QTY0", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QTY0", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@VNAME", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VNAME", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PRNATTACH", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PRNATTACH", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PRNVALID", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PRNVALID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PTIME", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PTIME", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@MFGDATE", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MFGDATE", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@VLOT", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VLOT", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@REMARK", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "REMARK", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@MC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PARTNO", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PARTNO", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CUSTCODE", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CUSTCODE", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@ATIME", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ATIME", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@BATCH", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "BATCH", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@qtymax", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "qtymax", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@GUID", global::System.Data.SqlDbType.UniqueIdentifier, 0, global::System.Data.ParameterDirection.Input, 0, 0, "GUID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@iNBOUND", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "iNBOUND", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@MCN", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MCN", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@target", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "target", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.UpdateCommand.Connection = this.Connection; + this._adapter.UpdateCommand.CommandText = @"UPDATE Component_Reel_Result +SET STIME = @STIME, ETIME = @ETIME, PDATE = @PDATE, JTYPE = @JTYPE, JGUID = @JGUID, SID = @SID, SID0 = @SID0, RID = @RID, RID0 = @RID0, RSN = @RSN, QR = @QR, + ZPL = @ZPL, POS = @POS, LOC = @LOC, ANGLE = @ANGLE, QTY = @QTY, QTY0 = @QTY0, wdate = @wdate, VNAME = @VNAME, PRNATTACH = @PRNATTACH, PRNVALID = @PRNVALID, + PTIME = @PTIME, MFGDATE = @MFGDATE, VLOT = @VLOT, REMARK = @REMARK, MC = @MC, PARTNO = @PARTNO, CUSTCODE = @CUSTCODE, ATIME = @ATIME, BATCH = @BATCH, + qtymax = @qtymax, GUID = @GUID, iNBOUND = @iNBOUND, MCN = @MCN +WHERE (STIME = @Original_STIME) AND (JGUID = @Original_JGUID) AND (GUID = @Original_GUID); +SELECT idx, STIME, ETIME, PDATE, JTYPE, JGUID, SID, SID0, RID, RID0, RSN, QR, ZPL, POS, LOC, ANGLE, QTY, QTY0, wdate, VNAME, PRNATTACH, PRNVALID, PTIME, MFGDATE, VLOT, REMARK, MC, PARTNO, CUSTCODE, ATIME, BATCH, qtymax, GUID FROM Component_Reel_Result WHERE (idx = @idx) ORDER BY wdate DESC"; + this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@STIME", global::System.Data.SqlDbType.DateTime, 8, global::System.Data.ParameterDirection.Input, 0, 0, "STIME", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@ETIME", global::System.Data.SqlDbType.DateTime, 8, global::System.Data.ParameterDirection.Input, 0, 0, "ETIME", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PDATE", global::System.Data.SqlDbType.VarChar, 10, global::System.Data.ParameterDirection.Input, 0, 0, "PDATE", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@JTYPE", global::System.Data.SqlDbType.VarChar, 10, global::System.Data.ParameterDirection.Input, 0, 0, "JTYPE", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@JGUID", global::System.Data.SqlDbType.VarChar, 50, global::System.Data.ParameterDirection.Input, 0, 0, "JGUID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SID", global::System.Data.SqlDbType.VarChar, 20, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SID0", global::System.Data.SqlDbType.VarChar, 20, global::System.Data.ParameterDirection.Input, 0, 0, "SID0", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RID", global::System.Data.SqlDbType.VarChar, 50, global::System.Data.ParameterDirection.Input, 0, 0, "RID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RID0", global::System.Data.SqlDbType.VarChar, 50, global::System.Data.ParameterDirection.Input, 0, 0, "RID0", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RSN", global::System.Data.SqlDbType.VarChar, 10, global::System.Data.ParameterDirection.Input, 0, 0, "RSN", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@QR", global::System.Data.SqlDbType.VarChar, 100, global::System.Data.ParameterDirection.Input, 0, 0, "QR", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@ZPL", global::System.Data.SqlDbType.VarChar, 1000, global::System.Data.ParameterDirection.Input, 0, 0, "ZPL", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@POS", global::System.Data.SqlDbType.VarChar, 10, global::System.Data.ParameterDirection.Input, 0, 0, "POS", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@LOC", global::System.Data.SqlDbType.VarChar, 1, global::System.Data.ParameterDirection.Input, 0, 0, "LOC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@ANGLE", global::System.Data.SqlDbType.Float, 8, global::System.Data.ParameterDirection.Input, 0, 0, "ANGLE", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@QTY", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 0, 0, "QTY", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@QTY0", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 0, 0, "QTY0", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@wdate", global::System.Data.SqlDbType.DateTime, 8, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@VNAME", global::System.Data.SqlDbType.VarChar, 100, global::System.Data.ParameterDirection.Input, 0, 0, "VNAME", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PRNATTACH", global::System.Data.SqlDbType.Bit, 1, global::System.Data.ParameterDirection.Input, 0, 0, "PRNATTACH", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PRNVALID", global::System.Data.SqlDbType.Bit, 1, global::System.Data.ParameterDirection.Input, 0, 0, "PRNVALID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PTIME", global::System.Data.SqlDbType.DateTime, 8, global::System.Data.ParameterDirection.Input, 0, 0, "PTIME", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@MFGDATE", global::System.Data.SqlDbType.VarChar, 20, global::System.Data.ParameterDirection.Input, 0, 0, "MFGDATE", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@VLOT", global::System.Data.SqlDbType.VarChar, 100, global::System.Data.ParameterDirection.Input, 0, 0, "VLOT", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@REMARK", global::System.Data.SqlDbType.VarChar, 200, global::System.Data.ParameterDirection.Input, 0, 0, "REMARK", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@MC", global::System.Data.SqlDbType.VarChar, 10, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PARTNO", global::System.Data.SqlDbType.VarChar, 100, global::System.Data.ParameterDirection.Input, 0, 0, "PARTNO", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CUSTCODE", global::System.Data.SqlDbType.VarChar, 20, global::System.Data.ParameterDirection.Input, 0, 0, "CUSTCODE", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@ATIME", global::System.Data.SqlDbType.DateTime, 8, global::System.Data.ParameterDirection.Input, 0, 0, "ATIME", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@BATCH", global::System.Data.SqlDbType.VarChar, 100, global::System.Data.ParameterDirection.Input, 0, 0, "BATCH", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@qtymax", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 0, 0, "qtymax", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@GUID", global::System.Data.SqlDbType.UniqueIdentifier, 16, global::System.Data.ParameterDirection.Input, 0, 0, "GUID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@iNBOUND", global::System.Data.SqlDbType.VarChar, 200, global::System.Data.ParameterDirection.Input, 0, 0, "iNBOUND", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@MCN", global::System.Data.SqlDbType.VarChar, 50, global::System.Data.ParameterDirection.Input, 0, 0, "MCN", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_STIME", global::System.Data.SqlDbType.DateTime, 8, global::System.Data.ParameterDirection.Input, 0, 0, "STIME", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_JGUID", global::System.Data.SqlDbType.VarChar, 50, global::System.Data.ParameterDirection.Input, 0, 0, "JGUID", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_GUID", global::System.Data.SqlDbType.UniqueIdentifier, 16, global::System.Data.ParameterDirection.Input, 0, 0, "GUID", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@idx", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitConnection() { + this._connection = new global::System.Data.SqlClient.SqlConnection(); + this._connection.ConnectionString = global::Project.Properties.Settings.Default.CS; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitCommandCollection() { + this._commandCollection = new global::System.Data.SqlClient.SqlCommand[11]; + this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[0].Connection = this.Connection; + this._commandCollection[0].CommandText = @"SELECT idx, STIME, ETIME, PDATE, JTYPE, JGUID, SID, SID0, RID, RID0, RSN, QR, ZPL, POS, LOC, ANGLE, QTY, QTY0, wdate, VNAME, PRNATTACH, PRNVALID, PTIME, MFGDATE, VLOT, REMARK, + MC, PARTNO, CUSTCODE, ATIME, BATCH, qtymax, GUID, iNBOUND, MCN, target +FROM Component_Reel_Result WITH (NOLOCK) +WHERE (CONVERT(varchar(10), wdate, 120) BETWEEN @sd AND @ed) AND (ISNULL(MC, '') = @mc) +ORDER BY wdate DESC, idx"; + this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[0].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@sd", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[0].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@ed", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[0].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@mc", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[1] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[1].Connection = this.Connection; + this._commandCollection[1].CommandText = @"SELECT TOP (50) ANGLE, ATIME, BATCH, CUSTCODE, ETIME, GUID, JGUID, JTYPE, LOC, MC, MCN, MFGDATE, PARTNO, PDATE, POS, PRNATTACH, PRNVALID, PTIME, QR, QTY, QTY0, REMARK, RID, RID0, RSN, SID, SID0, STIME, VLOT, VNAME, ZPL, iNBOUND, idx, qtymax, target, wdate FROM Component_Reel_Result WITH (NOLOCK) WHERE (CONVERT (varchar(10), wdate, 120) BETWEEN @sd AND @ed) AND (ISNULL(MC, '') = @mc) ORDER BY wdate DESC"; + this._commandCollection[1].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[1].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@sd", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[1].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@ed", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[1].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@mc", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[2] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[2].Connection = this.Connection; + this._commandCollection[2].CommandText = @"SELECT ANGLE, ATIME, BATCH, CUSTCODE, ETIME, GUID, JGUID, JTYPE, LOC, MC, MCN, MFGDATE, PARTNO, PDATE, POS, PRNATTACH, PRNVALID, PTIME, QR, QTY, QTY0, REMARK, RID, RID0, RSN, SID, SID0, STIME, VLOT, VNAME, ZPL, iNBOUND, idx, qtymax, target, wdate FROM Component_Reel_Result WITH (NOLOCK) WHERE (GUID = @guid) AND (ISNULL(MC, '') = @mc) AND (PRNATTACH = 1) AND (PRNVALID = 1) ORDER BY wdate DESC"; + this._commandCollection[2].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[2].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@guid", global::System.Data.SqlDbType.UniqueIdentifier, 16, global::System.Data.ParameterDirection.Input, 0, 0, "GUID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[2].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@mc", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[3] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[3].Connection = this.Connection; + this._commandCollection[3].CommandText = @"SELECT ANGLE, ATIME, BATCH, CUSTCODE, ETIME, GUID, JGUID, JTYPE, LOC, MC, MCN, MFGDATE, PARTNO, PDATE, POS, PRNATTACH, PRNVALID, PTIME, QR, QTY, QTY0, REMARK, RID, RID0, RSN, SID, SID0, STIME, VLOT, VNAME, ZPL, iNBOUND, idx, qtymax, target, wdate FROM Component_Reel_Result WITH (NOLOCK) WHERE (JGUID = @jguid)"; + this._commandCollection[3].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[3].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@jguid", global::System.Data.SqlDbType.VarChar, 50, global::System.Data.ParameterDirection.Input, 0, 0, "JGUID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[4] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[4].Connection = this.Connection; + this._commandCollection[4].CommandText = @"SELECT TOP (1) ANGLE, ATIME, BATCH, CUSTCODE, ETIME, GUID, JGUID, JTYPE, LOC, MC, MCN, MFGDATE, PARTNO, PDATE, POS, PRNATTACH, PRNVALID, PTIME, QR, QTY, QTY0, REMARK, RID, RID0, RSN, SID, SID0, STIME, VLOT, VNAME, ZPL, iNBOUND, idx, qtymax, target, wdate FROM Component_Reel_Result WITH (NOLOCK) WHERE (MC = @mc) AND (VLOT = @vlot) ORDER BY wdate DESC"; + this._commandCollection[4].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[4].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@mc", global::System.Data.SqlDbType.VarChar, 10, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[4].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@vlot", global::System.Data.SqlDbType.VarChar, 100, global::System.Data.ParameterDirection.Input, 0, 0, "VLOT", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[5] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[5].Connection = this.Connection; + this._commandCollection[5].CommandText = @"SELECT TOP (50) ANGLE, ATIME, BATCH, CUSTCODE, ETIME, GUID, JGUID, JTYPE, LOC, MC, MCN, MFGDATE, PARTNO, PDATE, POS, PRNATTACH, PRNVALID, PTIME, QR, QTY, QTY0, REMARK, RID, RID0, RSN, SID, SID0, STIME, VLOT, VNAME, ZPL, iNBOUND, idx, qtymax, target, wdate FROM Component_Reel_Result WITH (NOLOCK) WHERE (CONVERT (varchar(10), wdate, 120) BETWEEN @sd AND @ed) AND (ISNULL(MC, '') = @mc) ORDER BY wdate DESC"; + this._commandCollection[5].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[5].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@sd", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[5].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@ed", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[5].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@mc", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[6] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[6].Connection = this.Connection; + this._commandCollection[6].CommandText = @"SELECT idx, STIME, ETIME, PDATE, JTYPE, JGUID, SID, SID0, RID, RID0, RSN, QR, ZPL, POS, LOC, ANGLE, QTY, QTY0, wdate, VNAME, PRNATTACH, PRNVALID, PTIME, MFGDATE, VLOT, REMARK, + MC, PARTNO, CUSTCODE, ATIME, BATCH, qtymax, GUID, iNBOUND, MCN, target +FROM Component_Reel_Result WITH (NOLOCK) +WHERE (MC = @mc) AND (CONVERT(varchar(10), wdate, 120) BETWEEN @sd AND @ed) AND (ISNULL(QR, '') LIKE @search) +ORDER BY wdate DESC"; + this._commandCollection[6].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[6].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@mc", global::System.Data.SqlDbType.VarChar, 10, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[6].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@sd", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[6].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@ed", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[6].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@search", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[7] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[7].Connection = this.Connection; + this._commandCollection[7].CommandText = @"SELECT ANGLE, ATIME, BATCH, CUSTCODE, ETIME, GUID, JGUID, JTYPE, LOC, MC, MCN, MFGDATE, PARTNO, PDATE, POS, PRNATTACH, PRNVALID, PTIME, QR, QTY, QTY0, REMARK, RID, RID0, RSN, SID, SID0, STIME, VLOT, VNAME, ZPL, iNBOUND, idx, qtymax, target, wdate FROM Component_Reel_Result WITH (NOLOCK) WHERE (STIME BETWEEN @sd AND @ed) AND (MC = @mc) AND (ISNULL(PRNVALID, 0) = 1) AND (ISNULL(PRNATTACH, 0) = 1) ORDER BY wdate DESC, idx"; + this._commandCollection[7].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[7].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@sd", global::System.Data.SqlDbType.DateTime, 8, global::System.Data.ParameterDirection.Input, 0, 0, "STIME", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[7].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@ed", global::System.Data.SqlDbType.DateTime, 8, global::System.Data.ParameterDirection.Input, 0, 0, "STIME", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[7].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@mc", global::System.Data.SqlDbType.VarChar, 10, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[8] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[8].Connection = this.Connection; + this._commandCollection[8].CommandText = @"SELECT ANGLE, ATIME, BATCH, CUSTCODE, ETIME, GUID, JGUID, JTYPE, LOC, MC, MCN, MFGDATE, PARTNO, PDATE, POS, PRNATTACH, PRNVALID, PTIME, QR, QTY, QTY0, REMARK, RID, RID0, RSN, SID, SID0, STIME, VLOT, VNAME, ZPL, iNBOUND, idx, qtymax, target, wdate FROM Component_Reel_Result WITH (NOLOCK) WHERE (STIME BETWEEN @sd AND @ed) AND (MC = @mc) AND (ISNULL(PRNVALID, 0) = 1) AND (ISNULL(PRNATTACH, 0) = 1) AND (GUID = @guid) ORDER BY wdate DESC, idx"; + this._commandCollection[8].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[8].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@sd", global::System.Data.SqlDbType.DateTime, 8, global::System.Data.ParameterDirection.Input, 0, 0, "STIME", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[8].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@ed", global::System.Data.SqlDbType.DateTime, 8, global::System.Data.ParameterDirection.Input, 0, 0, "STIME", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[8].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@mc", global::System.Data.SqlDbType.VarChar, 10, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[8].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@guid", global::System.Data.SqlDbType.UniqueIdentifier, 16, global::System.Data.ParameterDirection.Input, 0, 0, "GUID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[9] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[9].Connection = this.Connection; + this._commandCollection[9].CommandText = "SELECT COUNT(*) AS Expr1\r\nFROM Component_Reel_Result\r\nWHERE (iNBOUND = \'OK\'" + + ") AND (SID = @sid) AND (BATCH = @batch) AND (MC <> \'R0\')"; + this._commandCollection[9].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[9].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@sid", global::System.Data.SqlDbType.VarChar, 20, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[9].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@batch", global::System.Data.SqlDbType.VarChar, 100, global::System.Data.ParameterDirection.Input, 0, 0, "BATCH", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[10] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[10].Connection = this.Connection; + this._commandCollection[10].CommandText = "SELECT TOP (1) ISNULL(POS, \'\') AS Expr1\r\nFROM Component_Reel_Result\r\nWHERE " + + "(MC = @mc) AND (SID = @sid) AND (ISNULL(POS, \'\') <> \'\')\r\nORDER BY wdate DESC"; + this._commandCollection[10].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[10].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@mc", global::System.Data.SqlDbType.VarChar, 10, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[10].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@sid", global::System.Data.SqlDbType.VarChar, 20, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] + public virtual int Fill(DataSet1.Component_Reel_ResultDataTable dataTable, string sd, string ed, string mc) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((sd == null)) { + throw new global::System.ArgumentNullException("sd"); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(sd)); + } + if ((ed == null)) { + throw new global::System.ArgumentNullException("ed"); + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(ed)); + } + if ((mc == null)) { + throw new global::System.ArgumentNullException("mc"); + } + else { + this.Adapter.SelectCommand.Parameters[2].Value = ((string)(mc)); + } + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] + public virtual DataSet1.Component_Reel_ResultDataTable GetData(string sd, string ed, string mc) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((sd == null)) { + throw new global::System.ArgumentNullException("sd"); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(sd)); + } + if ((ed == null)) { + throw new global::System.ArgumentNullException("ed"); + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(ed)); + } + if ((mc == null)) { + throw new global::System.ArgumentNullException("mc"); + } + else { + this.Adapter.SelectCommand.Parameters[2].Value = ((string)(mc)); + } + DataSet1.Component_Reel_ResultDataTable dataTable = new DataSet1.Component_Reel_ResultDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, false)] + public virtual int FillBy50(DataSet1.Component_Reel_ResultDataTable dataTable, string sd, string ed, string mc) { + this.Adapter.SelectCommand = this.CommandCollection[1]; + if ((sd == null)) { + throw new global::System.ArgumentNullException("sd"); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(sd)); + } + if ((ed == null)) { + throw new global::System.ArgumentNullException("ed"); + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(ed)); + } + if ((mc == null)) { + throw new global::System.ArgumentNullException("mc"); + } + else { + this.Adapter.SelectCommand.Parameters[2].Value = ((string)(mc)); + } + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, false)] + public virtual DataSet1.Component_Reel_ResultDataTable GetBy50(string sd, string ed, string mc) { + this.Adapter.SelectCommand = this.CommandCollection[1]; + if ((sd == null)) { + throw new global::System.ArgumentNullException("sd"); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(sd)); + } + if ((ed == null)) { + throw new global::System.ArgumentNullException("ed"); + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(ed)); + } + if ((mc == null)) { + throw new global::System.ArgumentNullException("mc"); + } + else { + this.Adapter.SelectCommand.Parameters[2].Value = ((string)(mc)); + } + DataSet1.Component_Reel_ResultDataTable dataTable = new DataSet1.Component_Reel_ResultDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, false)] + public virtual int FillByAllGUID(DataSet1.Component_Reel_ResultDataTable dataTable, global::System.Nullable guid, string mc) { + this.Adapter.SelectCommand = this.CommandCollection[2]; + if ((guid.HasValue == true)) { + this.Adapter.SelectCommand.Parameters[0].Value = ((System.Guid)(guid.Value)); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = global::System.DBNull.Value; + } + if ((mc == null)) { + throw new global::System.ArgumentNullException("mc"); + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(mc)); + } + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, false)] + public virtual DataSet1.Component_Reel_ResultDataTable GetByAllGUID(global::System.Nullable guid, string mc) { + this.Adapter.SelectCommand = this.CommandCollection[2]; + if ((guid.HasValue == true)) { + this.Adapter.SelectCommand.Parameters[0].Value = ((System.Guid)(guid.Value)); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = global::System.DBNull.Value; + } + if ((mc == null)) { + throw new global::System.ArgumentNullException("mc"); + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(mc)); + } + DataSet1.Component_Reel_ResultDataTable dataTable = new DataSet1.Component_Reel_ResultDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, false)] + public virtual int FillByJGUID(DataSet1.Component_Reel_ResultDataTable dataTable, string jguid) { + this.Adapter.SelectCommand = this.CommandCollection[3]; + if ((jguid == null)) { + this.Adapter.SelectCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(jguid)); + } + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, false)] + public virtual DataSet1.Component_Reel_ResultDataTable GetByJGUID(string jguid) { + this.Adapter.SelectCommand = this.CommandCollection[3]; + if ((jguid == null)) { + this.Adapter.SelectCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(jguid)); + } + DataSet1.Component_Reel_ResultDataTable dataTable = new DataSet1.Component_Reel_ResultDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, false)] + public virtual int FillByLastVLotOne(DataSet1.Component_Reel_ResultDataTable dataTable, string mc, string vlot) { + this.Adapter.SelectCommand = this.CommandCollection[4]; + if ((mc == null)) { + throw new global::System.ArgumentNullException("mc"); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(mc)); + } + if ((vlot == null)) { + this.Adapter.SelectCommand.Parameters[1].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(vlot)); + } + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, false)] + public virtual DataSet1.Component_Reel_ResultDataTable GetByLastVLotOne(string mc, string vlot) { + this.Adapter.SelectCommand = this.CommandCollection[4]; + if ((mc == null)) { + throw new global::System.ArgumentNullException("mc"); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(mc)); + } + if ((vlot == null)) { + this.Adapter.SelectCommand.Parameters[1].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(vlot)); + } + DataSet1.Component_Reel_ResultDataTable dataTable = new DataSet1.Component_Reel_ResultDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, false)] + public virtual int FillByLen7(DataSet1.Component_Reel_ResultDataTable dataTable, string sd, string ed, string mc) { + this.Adapter.SelectCommand = this.CommandCollection[5]; + if ((sd == null)) { + throw new global::System.ArgumentNullException("sd"); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(sd)); + } + if ((ed == null)) { + throw new global::System.ArgumentNullException("ed"); + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(ed)); + } + if ((mc == null)) { + throw new global::System.ArgumentNullException("mc"); + } + else { + this.Adapter.SelectCommand.Parameters[2].Value = ((string)(mc)); + } + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, false)] + public virtual DataSet1.Component_Reel_ResultDataTable GetByLen7(string sd, string ed, string mc) { + this.Adapter.SelectCommand = this.CommandCollection[5]; + if ((sd == null)) { + throw new global::System.ArgumentNullException("sd"); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(sd)); + } + if ((ed == null)) { + throw new global::System.ArgumentNullException("ed"); + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(ed)); + } + if ((mc == null)) { + throw new global::System.ArgumentNullException("mc"); + } + else { + this.Adapter.SelectCommand.Parameters[2].Value = ((string)(mc)); + } + DataSet1.Component_Reel_ResultDataTable dataTable = new DataSet1.Component_Reel_ResultDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, false)] + public virtual int FillBySearch(DataSet1.Component_Reel_ResultDataTable dataTable, string mc, string sd, string ed, string search) { + this.Adapter.SelectCommand = this.CommandCollection[6]; + if ((mc == null)) { + throw new global::System.ArgumentNullException("mc"); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(mc)); + } + if ((sd == null)) { + throw new global::System.ArgumentNullException("sd"); + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(sd)); + } + if ((ed == null)) { + throw new global::System.ArgumentNullException("ed"); + } + else { + this.Adapter.SelectCommand.Parameters[2].Value = ((string)(ed)); + } + if ((search == null)) { + throw new global::System.ArgumentNullException("search"); + } + else { + this.Adapter.SelectCommand.Parameters[3].Value = ((string)(search)); + } + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, false)] + public virtual DataSet1.Component_Reel_ResultDataTable GetBySearch(string mc, string sd, string ed, string search) { + this.Adapter.SelectCommand = this.CommandCollection[6]; + if ((mc == null)) { + throw new global::System.ArgumentNullException("mc"); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(mc)); + } + if ((sd == null)) { + throw new global::System.ArgumentNullException("sd"); + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(sd)); + } + if ((ed == null)) { + throw new global::System.ArgumentNullException("ed"); + } + else { + this.Adapter.SelectCommand.Parameters[2].Value = ((string)(ed)); + } + if ((search == null)) { + throw new global::System.ArgumentNullException("search"); + } + else { + this.Adapter.SelectCommand.Parameters[3].Value = ((string)(search)); + } + DataSet1.Component_Reel_ResultDataTable dataTable = new DataSet1.Component_Reel_ResultDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, false)] + public virtual int FillByValid(DataSet1.Component_Reel_ResultDataTable dataTable, System.DateTime sd, System.DateTime ed, string mc) { + this.Adapter.SelectCommand = this.CommandCollection[7]; + this.Adapter.SelectCommand.Parameters[0].Value = ((System.DateTime)(sd)); + this.Adapter.SelectCommand.Parameters[1].Value = ((System.DateTime)(ed)); + if ((mc == null)) { + throw new global::System.ArgumentNullException("mc"); + } + else { + this.Adapter.SelectCommand.Parameters[2].Value = ((string)(mc)); + } + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, false)] + public virtual DataSet1.Component_Reel_ResultDataTable GetByValid(System.DateTime sd, System.DateTime ed, string mc) { + this.Adapter.SelectCommand = this.CommandCollection[7]; + this.Adapter.SelectCommand.Parameters[0].Value = ((System.DateTime)(sd)); + this.Adapter.SelectCommand.Parameters[1].Value = ((System.DateTime)(ed)); + if ((mc == null)) { + throw new global::System.ArgumentNullException("mc"); + } + else { + this.Adapter.SelectCommand.Parameters[2].Value = ((string)(mc)); + } + DataSet1.Component_Reel_ResultDataTable dataTable = new DataSet1.Component_Reel_ResultDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, false)] + public virtual int FillByValidGuid(DataSet1.Component_Reel_ResultDataTable dataTable, System.DateTime sd, System.DateTime ed, string mc, global::System.Nullable guid) { + this.Adapter.SelectCommand = this.CommandCollection[8]; + this.Adapter.SelectCommand.Parameters[0].Value = ((System.DateTime)(sd)); + this.Adapter.SelectCommand.Parameters[1].Value = ((System.DateTime)(ed)); + if ((mc == null)) { + throw new global::System.ArgumentNullException("mc"); + } + else { + this.Adapter.SelectCommand.Parameters[2].Value = ((string)(mc)); + } + if ((guid.HasValue == true)) { + this.Adapter.SelectCommand.Parameters[3].Value = ((System.Guid)(guid.Value)); + } + else { + this.Adapter.SelectCommand.Parameters[3].Value = global::System.DBNull.Value; + } + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, false)] + public virtual DataSet1.Component_Reel_ResultDataTable GetByValidGuid(System.DateTime sd, System.DateTime ed, string mc, global::System.Nullable guid) { + this.Adapter.SelectCommand = this.CommandCollection[8]; + this.Adapter.SelectCommand.Parameters[0].Value = ((System.DateTime)(sd)); + this.Adapter.SelectCommand.Parameters[1].Value = ((System.DateTime)(ed)); + if ((mc == null)) { + throw new global::System.ArgumentNullException("mc"); + } + else { + this.Adapter.SelectCommand.Parameters[2].Value = ((string)(mc)); + } + if ((guid.HasValue == true)) { + this.Adapter.SelectCommand.Parameters[3].Value = ((System.Guid)(guid.Value)); + } + else { + this.Adapter.SelectCommand.Parameters[3].Value = global::System.DBNull.Value; + } + DataSet1.Component_Reel_ResultDataTable dataTable = new DataSet1.Component_Reel_ResultDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1.Component_Reel_ResultDataTable dataTable) { + return this.Adapter.Update(dataTable); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1 dataSet) { + return this.Adapter.Update(dataSet, "Component_Reel_Result"); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow dataRow) { + return this.Adapter.Update(new global::System.Data.DataRow[] { + dataRow}); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow[] dataRows) { + return this.Adapter.Update(dataRows); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, true)] + public virtual int Delete( + int Original_idx, + System.DateTime Original_STIME, + global::System.Nullable Original_ETIME, + string Original_PDATE, + string Original_JTYPE, + string Original_JGUID, + string Original_SID, + string Original_SID0, + string Original_RID, + string Original_RID0, + string Original_RSN, + string Original_QR, + string Original_ZPL, + string Original_POS, + string Original_LOC, + global::System.Nullable Original_ANGLE, + global::System.Nullable Original_QTY, + global::System.Nullable Original_QTY0, + System.DateTime Original_wdate, + string Original_VNAME, + global::System.Nullable Original_PRNATTACH, + global::System.Nullable Original_PRNVALID, + global::System.Nullable Original_PTIME, + string Original_MFGDATE, + string Original_VLOT, + string Original_REMARK, + string Original_MC, + string Original_PARTNO, + string Original_CUSTCODE, + global::System.Nullable Original_ATIME, + string Original_BATCH, + global::System.Nullable Original_qtymax, + global::System.Nullable Original_GUID) { + this.Adapter.DeleteCommand.Parameters[0].Value = ((int)(Original_idx)); + this.Adapter.DeleteCommand.Parameters[1].Value = ((System.DateTime)(Original_STIME)); + if ((Original_ETIME.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[2].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[3].Value = ((System.DateTime)(Original_ETIME.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[2].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[3].Value = global::System.DBNull.Value; + } + if ((Original_PDATE == null)) { + this.Adapter.DeleteCommand.Parameters[4].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[5].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[4].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[5].Value = ((string)(Original_PDATE)); + } + if ((Original_JTYPE == null)) { + this.Adapter.DeleteCommand.Parameters[6].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[7].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[6].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[7].Value = ((string)(Original_JTYPE)); + } + if ((Original_JGUID == null)) { + this.Adapter.DeleteCommand.Parameters[8].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[9].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[8].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[9].Value = ((string)(Original_JGUID)); + } + if ((Original_SID == null)) { + this.Adapter.DeleteCommand.Parameters[10].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[11].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[10].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[11].Value = ((string)(Original_SID)); + } + if ((Original_SID0 == null)) { + this.Adapter.DeleteCommand.Parameters[12].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[13].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[12].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[13].Value = ((string)(Original_SID0)); + } + if ((Original_RID == null)) { + this.Adapter.DeleteCommand.Parameters[14].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[15].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[14].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[15].Value = ((string)(Original_RID)); + } + if ((Original_RID0 == null)) { + this.Adapter.DeleteCommand.Parameters[16].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[17].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[16].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[17].Value = ((string)(Original_RID0)); + } + if ((Original_RSN == null)) { + this.Adapter.DeleteCommand.Parameters[18].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[19].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[18].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[19].Value = ((string)(Original_RSN)); + } + if ((Original_QR == null)) { + this.Adapter.DeleteCommand.Parameters[20].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[21].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[20].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[21].Value = ((string)(Original_QR)); + } + if ((Original_ZPL == null)) { + this.Adapter.DeleteCommand.Parameters[22].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[23].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[22].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[23].Value = ((string)(Original_ZPL)); + } + if ((Original_POS == null)) { + this.Adapter.DeleteCommand.Parameters[24].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[25].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[24].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[25].Value = ((string)(Original_POS)); + } + if ((Original_LOC == null)) { + this.Adapter.DeleteCommand.Parameters[26].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[27].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[26].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[27].Value = ((string)(Original_LOC)); + } + if ((Original_ANGLE.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[28].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[29].Value = ((double)(Original_ANGLE.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[28].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[29].Value = global::System.DBNull.Value; + } + if ((Original_QTY.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[30].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[31].Value = ((int)(Original_QTY.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[30].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[31].Value = global::System.DBNull.Value; + } + if ((Original_QTY0.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[32].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[33].Value = ((int)(Original_QTY0.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[32].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[33].Value = global::System.DBNull.Value; + } + this.Adapter.DeleteCommand.Parameters[34].Value = ((System.DateTime)(Original_wdate)); + if ((Original_VNAME == null)) { + this.Adapter.DeleteCommand.Parameters[35].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[36].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[35].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[36].Value = ((string)(Original_VNAME)); + } + if ((Original_PRNATTACH.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[37].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[38].Value = ((bool)(Original_PRNATTACH.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[37].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[38].Value = global::System.DBNull.Value; + } + if ((Original_PRNVALID.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[39].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[40].Value = ((bool)(Original_PRNVALID.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[39].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[40].Value = global::System.DBNull.Value; + } + if ((Original_PTIME.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[41].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[42].Value = ((System.DateTime)(Original_PTIME.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[41].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[42].Value = global::System.DBNull.Value; + } + if ((Original_MFGDATE == null)) { + this.Adapter.DeleteCommand.Parameters[43].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[44].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[43].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[44].Value = ((string)(Original_MFGDATE)); + } + if ((Original_VLOT == null)) { + this.Adapter.DeleteCommand.Parameters[45].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[46].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[45].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[46].Value = ((string)(Original_VLOT)); + } + if ((Original_REMARK == null)) { + this.Adapter.DeleteCommand.Parameters[47].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[48].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[47].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[48].Value = ((string)(Original_REMARK)); + } + if ((Original_MC == null)) { + this.Adapter.DeleteCommand.Parameters[49].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[50].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[49].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[50].Value = ((string)(Original_MC)); + } + if ((Original_PARTNO == null)) { + this.Adapter.DeleteCommand.Parameters[51].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[52].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[51].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[52].Value = ((string)(Original_PARTNO)); + } + if ((Original_CUSTCODE == null)) { + this.Adapter.DeleteCommand.Parameters[53].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[54].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[53].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[54].Value = ((string)(Original_CUSTCODE)); + } + if ((Original_ATIME.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[55].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[56].Value = ((System.DateTime)(Original_ATIME.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[55].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[56].Value = global::System.DBNull.Value; + } + if ((Original_BATCH == null)) { + this.Adapter.DeleteCommand.Parameters[57].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[58].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[57].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[58].Value = ((string)(Original_BATCH)); + } + if ((Original_qtymax.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[59].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[60].Value = ((int)(Original_qtymax.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[59].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[60].Value = global::System.DBNull.Value; + } + if ((Original_GUID.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[61].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[62].Value = ((System.Guid)(Original_GUID.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[61].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[62].Value = global::System.DBNull.Value; + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; + if (((this.Adapter.DeleteCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.DeleteCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.DeleteCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.DeleteCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] + public virtual int Insert( + System.DateTime STIME, + global::System.Nullable ETIME, + string PDATE, + string JTYPE, + string JGUID, + string SID, + string SID0, + string RID, + string RID0, + string RSN, + string QR, + string ZPL, + string POS, + string LOC, + global::System.Nullable ANGLE, + global::System.Nullable QTY, + global::System.Nullable QTY0, + System.DateTime wdate, + string VNAME, + global::System.Nullable PRNATTACH, + global::System.Nullable PRNVALID, + global::System.Nullable PTIME, + string MFGDATE, + string VLOT, + string REMARK, + string MC, + string PARTNO, + string CUSTCODE, + global::System.Nullable ATIME, + string BATCH, + global::System.Nullable qtymax, + global::System.Nullable GUID, + string iNBOUND, + string MCN, + string target) { + this.Adapter.InsertCommand.Parameters[0].Value = ((System.DateTime)(STIME)); + if ((ETIME.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[1].Value = ((System.DateTime)(ETIME.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; + } + if ((PDATE == null)) { + this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[2].Value = ((string)(PDATE)); + } + if ((JTYPE == null)) { + this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[3].Value = ((string)(JTYPE)); + } + if ((JGUID == null)) { + this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[4].Value = ((string)(JGUID)); + } + if ((SID == null)) { + this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[5].Value = ((string)(SID)); + } + if ((SID0 == null)) { + this.Adapter.InsertCommand.Parameters[6].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[6].Value = ((string)(SID0)); + } + if ((RID == null)) { + this.Adapter.InsertCommand.Parameters[7].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[7].Value = ((string)(RID)); + } + if ((RID0 == null)) { + this.Adapter.InsertCommand.Parameters[8].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[8].Value = ((string)(RID0)); + } + if ((RSN == null)) { + this.Adapter.InsertCommand.Parameters[9].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[9].Value = ((string)(RSN)); + } + if ((QR == null)) { + this.Adapter.InsertCommand.Parameters[10].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[10].Value = ((string)(QR)); + } + if ((ZPL == null)) { + this.Adapter.InsertCommand.Parameters[11].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[11].Value = ((string)(ZPL)); + } + if ((POS == null)) { + this.Adapter.InsertCommand.Parameters[12].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[12].Value = ((string)(POS)); + } + if ((LOC == null)) { + this.Adapter.InsertCommand.Parameters[13].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[13].Value = ((string)(LOC)); + } + if ((ANGLE.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[14].Value = ((double)(ANGLE.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[14].Value = global::System.DBNull.Value; + } + if ((QTY.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[15].Value = ((int)(QTY.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[15].Value = global::System.DBNull.Value; + } + if ((QTY0.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[16].Value = ((int)(QTY0.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[16].Value = global::System.DBNull.Value; + } + this.Adapter.InsertCommand.Parameters[17].Value = ((System.DateTime)(wdate)); + if ((VNAME == null)) { + this.Adapter.InsertCommand.Parameters[18].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[18].Value = ((string)(VNAME)); + } + if ((PRNATTACH.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[19].Value = ((bool)(PRNATTACH.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[19].Value = global::System.DBNull.Value; + } + if ((PRNVALID.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[20].Value = ((bool)(PRNVALID.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[20].Value = global::System.DBNull.Value; + } + if ((PTIME.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[21].Value = ((System.DateTime)(PTIME.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[21].Value = global::System.DBNull.Value; + } + if ((MFGDATE == null)) { + this.Adapter.InsertCommand.Parameters[22].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[22].Value = ((string)(MFGDATE)); + } + if ((VLOT == null)) { + this.Adapter.InsertCommand.Parameters[23].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[23].Value = ((string)(VLOT)); + } + if ((REMARK == null)) { + this.Adapter.InsertCommand.Parameters[24].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[24].Value = ((string)(REMARK)); + } + if ((MC == null)) { + throw new global::System.ArgumentNullException("MC"); + } + else { + this.Adapter.InsertCommand.Parameters[25].Value = ((string)(MC)); + } + if ((PARTNO == null)) { + this.Adapter.InsertCommand.Parameters[26].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[26].Value = ((string)(PARTNO)); + } + if ((CUSTCODE == null)) { + this.Adapter.InsertCommand.Parameters[27].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[27].Value = ((string)(CUSTCODE)); + } + if ((ATIME.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[28].Value = ((System.DateTime)(ATIME.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[28].Value = global::System.DBNull.Value; + } + if ((BATCH == null)) { + this.Adapter.InsertCommand.Parameters[29].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[29].Value = ((string)(BATCH)); + } + if ((qtymax.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[30].Value = ((int)(qtymax.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[30].Value = global::System.DBNull.Value; + } + if ((GUID.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[31].Value = ((System.Guid)(GUID.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[31].Value = global::System.DBNull.Value; + } + if ((iNBOUND == null)) { + this.Adapter.InsertCommand.Parameters[32].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[32].Value = ((string)(iNBOUND)); + } + if ((MCN == null)) { + this.Adapter.InsertCommand.Parameters[33].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[33].Value = ((string)(MCN)); + } + if ((target == null)) { + this.Adapter.InsertCommand.Parameters[34].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[34].Value = ((string)(target)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; + if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.InsertCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.InsertCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update( + System.DateTime STIME, + global::System.Nullable ETIME, + string PDATE, + string JTYPE, + string JGUID, + string SID, + string SID0, + string RID, + string RID0, + string RSN, + string QR, + string ZPL, + string POS, + string LOC, + global::System.Nullable ANGLE, + global::System.Nullable QTY, + global::System.Nullable QTY0, + System.DateTime wdate, + string VNAME, + global::System.Nullable PRNATTACH, + global::System.Nullable PRNVALID, + global::System.Nullable PTIME, + string MFGDATE, + string VLOT, + string REMARK, + string MC, + string PARTNO, + string CUSTCODE, + global::System.Nullable ATIME, + string BATCH, + global::System.Nullable qtymax, + global::System.Nullable GUID, + string iNBOUND, + string MCN, + System.DateTime Original_STIME, + string Original_JGUID, + global::System.Nullable Original_GUID, + int idx) { + this.Adapter.UpdateCommand.Parameters[0].Value = ((System.DateTime)(STIME)); + if ((ETIME.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[1].Value = ((System.DateTime)(ETIME.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[1].Value = global::System.DBNull.Value; + } + if ((PDATE == null)) { + this.Adapter.UpdateCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[2].Value = ((string)(PDATE)); + } + if ((JTYPE == null)) { + this.Adapter.UpdateCommand.Parameters[3].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[3].Value = ((string)(JTYPE)); + } + if ((JGUID == null)) { + this.Adapter.UpdateCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[4].Value = ((string)(JGUID)); + } + if ((SID == null)) { + this.Adapter.UpdateCommand.Parameters[5].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[5].Value = ((string)(SID)); + } + if ((SID0 == null)) { + this.Adapter.UpdateCommand.Parameters[6].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[6].Value = ((string)(SID0)); + } + if ((RID == null)) { + this.Adapter.UpdateCommand.Parameters[7].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[7].Value = ((string)(RID)); + } + if ((RID0 == null)) { + this.Adapter.UpdateCommand.Parameters[8].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[8].Value = ((string)(RID0)); + } + if ((RSN == null)) { + this.Adapter.UpdateCommand.Parameters[9].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[9].Value = ((string)(RSN)); + } + if ((QR == null)) { + this.Adapter.UpdateCommand.Parameters[10].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[10].Value = ((string)(QR)); + } + if ((ZPL == null)) { + this.Adapter.UpdateCommand.Parameters[11].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[11].Value = ((string)(ZPL)); + } + if ((POS == null)) { + this.Adapter.UpdateCommand.Parameters[12].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[12].Value = ((string)(POS)); + } + if ((LOC == null)) { + this.Adapter.UpdateCommand.Parameters[13].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[13].Value = ((string)(LOC)); + } + if ((ANGLE.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[14].Value = ((double)(ANGLE.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[14].Value = global::System.DBNull.Value; + } + if ((QTY.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[15].Value = ((int)(QTY.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[15].Value = global::System.DBNull.Value; + } + if ((QTY0.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[16].Value = ((int)(QTY0.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[16].Value = global::System.DBNull.Value; + } + this.Adapter.UpdateCommand.Parameters[17].Value = ((System.DateTime)(wdate)); + if ((VNAME == null)) { + this.Adapter.UpdateCommand.Parameters[18].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[18].Value = ((string)(VNAME)); + } + if ((PRNATTACH.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[19].Value = ((bool)(PRNATTACH.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[19].Value = global::System.DBNull.Value; + } + if ((PRNVALID.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[20].Value = ((bool)(PRNVALID.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[20].Value = global::System.DBNull.Value; + } + if ((PTIME.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[21].Value = ((System.DateTime)(PTIME.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[21].Value = global::System.DBNull.Value; + } + if ((MFGDATE == null)) { + this.Adapter.UpdateCommand.Parameters[22].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[22].Value = ((string)(MFGDATE)); + } + if ((VLOT == null)) { + this.Adapter.UpdateCommand.Parameters[23].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[23].Value = ((string)(VLOT)); + } + if ((REMARK == null)) { + this.Adapter.UpdateCommand.Parameters[24].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[24].Value = ((string)(REMARK)); + } + if ((MC == null)) { + throw new global::System.ArgumentNullException("MC"); + } + else { + this.Adapter.UpdateCommand.Parameters[25].Value = ((string)(MC)); + } + if ((PARTNO == null)) { + this.Adapter.UpdateCommand.Parameters[26].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[26].Value = ((string)(PARTNO)); + } + if ((CUSTCODE == null)) { + this.Adapter.UpdateCommand.Parameters[27].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[27].Value = ((string)(CUSTCODE)); + } + if ((ATIME.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[28].Value = ((System.DateTime)(ATIME.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[28].Value = global::System.DBNull.Value; + } + if ((BATCH == null)) { + this.Adapter.UpdateCommand.Parameters[29].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[29].Value = ((string)(BATCH)); + } + if ((qtymax.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[30].Value = ((int)(qtymax.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[30].Value = global::System.DBNull.Value; + } + if ((GUID.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[31].Value = ((System.Guid)(GUID.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[31].Value = global::System.DBNull.Value; + } + if ((iNBOUND == null)) { + this.Adapter.UpdateCommand.Parameters[32].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[32].Value = ((string)(iNBOUND)); + } + if ((MCN == null)) { + this.Adapter.UpdateCommand.Parameters[33].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[33].Value = ((string)(MCN)); + } + this.Adapter.UpdateCommand.Parameters[34].Value = ((System.DateTime)(Original_STIME)); + if ((Original_JGUID == null)) { + this.Adapter.UpdateCommand.Parameters[35].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[35].Value = ((string)(Original_JGUID)); + } + if ((Original_GUID.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[36].Value = ((System.Guid)(Original_GUID.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[36].Value = global::System.DBNull.Value; + } + this.Adapter.UpdateCommand.Parameters[37].Value = ((int)(idx)); + global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; + if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.UpdateCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.UpdateCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual global::System.Nullable GetInboundCheckCount(string sid, string batch) { + global::System.Data.SqlClient.SqlCommand command = this.CommandCollection[9]; + if ((sid == null)) { + command.Parameters[0].Value = global::System.DBNull.Value; + } + else { + command.Parameters[0].Value = ((string)(sid)); + } + if ((batch == null)) { + command.Parameters[1].Value = global::System.DBNull.Value; + } + else { + command.Parameters[1].Value = ((string)(batch)); + } + global::System.Data.ConnectionState previousConnectionState = command.Connection.State; + if (((command.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + command.Connection.Open(); + } + object returnValue; + try { + returnValue = command.ExecuteScalar(); + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + command.Connection.Close(); + } + } + if (((returnValue == null) + || (returnValue.GetType() == typeof(global::System.DBNull)))) { + return new global::System.Nullable(); + } + else { + return new global::System.Nullable(((int)(returnValue))); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual string GetPrintPosition(string mc, string sid) { + global::System.Data.SqlClient.SqlCommand command = this.CommandCollection[10]; + if ((mc == null)) { + throw new global::System.ArgumentNullException("mc"); + } + else { + command.Parameters[0].Value = ((string)(mc)); + } + if ((sid == null)) { + command.Parameters[1].Value = global::System.DBNull.Value; + } + else { + command.Parameters[1].Value = ((string)(sid)); + } + global::System.Data.ConnectionState previousConnectionState = command.Connection.State; + if (((command.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + command.Connection.Open(); + } + object returnValue; + try { + returnValue = command.ExecuteScalar(); + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + command.Connection.Close(); + } + } + if (((returnValue == null) + || (returnValue.GetType() == typeof(global::System.DBNull)))) { + return null; + } + else { + return ((string)(returnValue)); + } + } + } + + /// + ///Represents the connection and commands used to retrieve and save data. + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DataObjectAttribute(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + + ", Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public partial class Component_Reel_RegExRuleTableAdapter : global::System.ComponentModel.Component { + + private global::System.Data.SqlClient.SqlDataAdapter _adapter; + + private global::System.Data.SqlClient.SqlConnection _connection; + + private global::System.Data.SqlClient.SqlTransaction _transaction; + + private global::System.Data.SqlClient.SqlCommand[] _commandCollection; + + private bool _clearBeforeFill; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_RegExRuleTableAdapter() { + this.ClearBeforeFill = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected internal global::System.Data.SqlClient.SqlDataAdapter Adapter { + get { + if ((this._adapter == null)) { + this.InitAdapter(); + } + return this._adapter; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlConnection Connection { + get { + if ((this._connection == null)) { + this.InitConnection(); + } + return this._connection; + } + set { + this._connection = value; + if ((this.Adapter.InsertCommand != null)) { + this.Adapter.InsertCommand.Connection = value; + } + if ((this.Adapter.DeleteCommand != null)) { + this.Adapter.DeleteCommand.Connection = value; + } + if ((this.Adapter.UpdateCommand != null)) { + this.Adapter.UpdateCommand.Connection = value; + } + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + if ((this.CommandCollection[i] != null)) { + ((global::System.Data.SqlClient.SqlCommand)(this.CommandCollection[i])).Connection = value; + } + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlTransaction Transaction { + get { + return this._transaction; + } + set { + this._transaction = value; + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + this.CommandCollection[i].Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.DeleteCommand != null))) { + this.Adapter.DeleteCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.InsertCommand != null))) { + this.Adapter.InsertCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.UpdateCommand != null))) { + this.Adapter.UpdateCommand.Transaction = this._transaction; + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected global::System.Data.SqlClient.SqlCommand[] CommandCollection { + get { + if ((this._commandCollection == null)) { + this.InitCommandCollection(); + } + return this._commandCollection; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool ClearBeforeFill { + get { + return this._clearBeforeFill; + } + set { + this._clearBeforeFill = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitAdapter() { + this._adapter = new global::System.Data.SqlClient.SqlDataAdapter(); + global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); + tableMapping.SourceTable = "Table"; + tableMapping.DataSetTable = "Component_Reel_RegExRule"; + tableMapping.ColumnMappings.Add("Id", "Id"); + tableMapping.ColumnMappings.Add("Seq", "Seq"); + tableMapping.ColumnMappings.Add("CustCode", "CustCode"); + tableMapping.ColumnMappings.Add("Description", "Description"); + tableMapping.ColumnMappings.Add("Symbol", "Symbol"); + tableMapping.ColumnMappings.Add("Pattern", "Pattern"); + tableMapping.ColumnMappings.Add("Groups", "Groups"); + tableMapping.ColumnMappings.Add("IsEnable", "IsEnable"); + tableMapping.ColumnMappings.Add("IsTrust", "IsTrust"); + tableMapping.ColumnMappings.Add("IsAmkStd", "IsAmkStd"); + tableMapping.ColumnMappings.Add("IsIgnore", "IsIgnore"); + this._adapter.TableMappings.Add(tableMapping); + this._adapter.DeleteCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.DeleteCommand.Connection = this.Connection; + this._adapter.DeleteCommand.CommandText = @"DELETE FROM [Component_Reel_RegExRule] WHERE (([Id] = @Original_Id) AND ((@IsNull_Seq = 1 AND [Seq] IS NULL) OR ([Seq] = @Original_Seq)) AND ((@IsNull_CustCode = 1 AND [CustCode] IS NULL) OR ([CustCode] = @Original_CustCode)) AND ((@IsNull_Description = 1 AND [Description] IS NULL) OR ([Description] = @Original_Description)) AND ((@IsNull_Symbol = 1 AND [Symbol] IS NULL) OR ([Symbol] = @Original_Symbol)) AND ((@IsNull_Groups = 1 AND [Groups] IS NULL) OR ([Groups] = @Original_Groups)) AND ((@IsNull_IsEnable = 1 AND [IsEnable] IS NULL) OR ([IsEnable] = @Original_IsEnable)) AND ((@IsNull_IsTrust = 1 AND [IsTrust] IS NULL) OR ([IsTrust] = @Original_IsTrust)) AND ((@IsNull_IsAmkStd = 1 AND [IsAmkStd] IS NULL) OR ([IsAmkStd] = @Original_IsAmkStd)) AND ((@IsNull_IsIgnore = 1 AND [IsIgnore] IS NULL) OR ([IsIgnore] = @Original_IsIgnore)))"; + this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Id", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Id", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Seq", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Seq", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Seq", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Seq", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_CustCode", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CustCode", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Description", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Description", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Description", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Description", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Symbol", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Symbol", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Symbol", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Symbol", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Groups", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Groups", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Groups", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Groups", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_IsEnable", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsEnable", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsEnable", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsEnable", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_IsTrust", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsTrust", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsTrust", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsTrust", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_IsAmkStd", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsAmkStd", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsAmkStd", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsAmkStd", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_IsIgnore", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsIgnore", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsIgnore", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsIgnore", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.InsertCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.InsertCommand.Connection = this.Connection; + this._adapter.InsertCommand.CommandText = @"INSERT INTO [Component_Reel_RegExRule] ([Seq], [CustCode], [Description], [Symbol], [Pattern], [Groups], [IsEnable], [IsTrust], [IsAmkStd], [IsIgnore]) VALUES (@Seq, @CustCode, @Description, @Symbol, @Pattern, @Groups, @IsEnable, @IsTrust, @IsAmkStd, @IsIgnore); +SELECT Id, Seq, CustCode, Description, Symbol, Pattern, Groups, IsEnable, IsTrust, IsAmkStd, IsIgnore FROM Component_Reel_RegExRule WHERE (Id = SCOPE_IDENTITY()) ORDER BY CustCode, Seq, Description"; + this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Seq", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Seq", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CustCode", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Description", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Description", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Symbol", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Symbol", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Pattern", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Pattern", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Groups", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Groups", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsEnable", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsEnable", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsTrust", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsTrust", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsAmkStd", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsAmkStd", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsIgnore", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsIgnore", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.UpdateCommand.Connection = this.Connection; + this._adapter.UpdateCommand.CommandText = @"UPDATE [Component_Reel_RegExRule] SET [Seq] = @Seq, [CustCode] = @CustCode, [Description] = @Description, [Symbol] = @Symbol, [Pattern] = @Pattern, [Groups] = @Groups, [IsEnable] = @IsEnable, [IsTrust] = @IsTrust, [IsAmkStd] = @IsAmkStd, [IsIgnore] = @IsIgnore WHERE (([Id] = @Original_Id) AND ((@IsNull_Seq = 1 AND [Seq] IS NULL) OR ([Seq] = @Original_Seq)) AND ((@IsNull_CustCode = 1 AND [CustCode] IS NULL) OR ([CustCode] = @Original_CustCode)) AND ((@IsNull_Description = 1 AND [Description] IS NULL) OR ([Description] = @Original_Description)) AND ((@IsNull_Symbol = 1 AND [Symbol] IS NULL) OR ([Symbol] = @Original_Symbol)) AND ((@IsNull_Groups = 1 AND [Groups] IS NULL) OR ([Groups] = @Original_Groups)) AND ((@IsNull_IsEnable = 1 AND [IsEnable] IS NULL) OR ([IsEnable] = @Original_IsEnable)) AND ((@IsNull_IsTrust = 1 AND [IsTrust] IS NULL) OR ([IsTrust] = @Original_IsTrust)) AND ((@IsNull_IsAmkStd = 1 AND [IsAmkStd] IS NULL) OR ([IsAmkStd] = @Original_IsAmkStd)) AND ((@IsNull_IsIgnore = 1 AND [IsIgnore] IS NULL) OR ([IsIgnore] = @Original_IsIgnore))); +SELECT Id, Seq, CustCode, Description, Symbol, Pattern, Groups, IsEnable, IsTrust, IsAmkStd, IsIgnore FROM Component_Reel_RegExRule WHERE (Id = @Id) ORDER BY CustCode, Seq, Description"; + this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Seq", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Seq", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CustCode", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Description", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Description", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Symbol", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Symbol", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Pattern", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Pattern", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Groups", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Groups", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsEnable", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsEnable", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsTrust", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsTrust", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsAmkStd", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsAmkStd", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsIgnore", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsIgnore", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Id", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Id", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Seq", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Seq", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Seq", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Seq", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_CustCode", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CustCode", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Description", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Description", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Description", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Description", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Symbol", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Symbol", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Symbol", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Symbol", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Groups", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Groups", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Groups", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Groups", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_IsEnable", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsEnable", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsEnable", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsEnable", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_IsTrust", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsTrust", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsTrust", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsTrust", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_IsAmkStd", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsAmkStd", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsAmkStd", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsAmkStd", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_IsIgnore", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsIgnore", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsIgnore", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsIgnore", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Id", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 0, 0, "Id", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitConnection() { + this._connection = new global::System.Data.SqlClient.SqlConnection(); + this._connection.ConnectionString = global::Project.Properties.Settings.Default.CS; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitCommandCollection() { + this._commandCollection = new global::System.Data.SqlClient.SqlCommand[4]; + this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[0].Connection = this.Connection; + this._commandCollection[0].CommandText = "SELECT Id, Seq, CustCode, Description, Symbol, Pattern, Groups, IsEnable, IsTrus" + + "t, IsAmkStd, IsIgnore\r\nFROM Component_Reel_RegExRule\r\nWHERE (ISNULL(CustCod" + + "e, \'\') LIKE @custcode)\r\nORDER BY CustCode, Seq, Description"; + this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[0].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@custcode", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[1] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[1].Connection = this.Connection; + this._commandCollection[1].CommandText = "SELECT CustCode, Description, Groups, Id, IsAmkStd, IsEnable, IsIgnore, IsTrust, " + + "Pattern, Seq, Symbol FROM Component_Reel_RegExRule\r\nORDER BY CustCode, Seq, Desc" + + "ription"; + this._commandCollection[1].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[2] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[2].Connection = this.Connection; + this._commandCollection[2].CommandText = "SELECT CustCode, Description, Groups, Id, IsAmkStd, IsEnable, IsIgnore, IsTrust, " + + "Pattern, Seq, Symbol FROM Component_Reel_RegExRule WHERE (ISNULL(CustCode, \'\') =" + + " \'\') OR (ISNULL(CustCode, \'\') LIKE @custcode) ORDER BY CustCode, Seq, Descriptio" + + "n"; + this._commandCollection[2].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[2].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@custcode", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[3] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[3].Connection = this.Connection; + this._commandCollection[3].CommandText = "SELECT CustCode, Description, Groups, Id, IsAmkStd, IsEnable, IsIgnore, IsTrust," + + " Pattern, Seq, Symbol\r\nFROM Component_Reel_RegExRule\r\nWHERE (ISNULL(CustCod" + + "e, \'\') LIKE @custcode) AND (ISNULL(IsIgnore, 0) = 1)\r\nORDER BY CustCode, Seq, De" + + "scription"; + this._commandCollection[3].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[3].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@custcode", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] + public virtual int Fill(DataSet1.Component_Reel_RegExRuleDataTable dataTable, string custcode) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((custcode == null)) { + throw new global::System.ArgumentNullException("custcode"); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(custcode)); + } + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] + public virtual DataSet1.Component_Reel_RegExRuleDataTable GetData(string custcode) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((custcode == null)) { + throw new global::System.ArgumentNullException("custcode"); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(custcode)); + } + DataSet1.Component_Reel_RegExRuleDataTable dataTable = new DataSet1.Component_Reel_RegExRuleDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, false)] + public virtual int FillAll(DataSet1.Component_Reel_RegExRuleDataTable dataTable) { + this.Adapter.SelectCommand = this.CommandCollection[1]; + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, false)] + public virtual DataSet1.Component_Reel_RegExRuleDataTable GetAll() { + this.Adapter.SelectCommand = this.CommandCollection[1]; + DataSet1.Component_Reel_RegExRuleDataTable dataTable = new DataSet1.Component_Reel_RegExRuleDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, false)] + public virtual int FillByWithSample(DataSet1.Component_Reel_RegExRuleDataTable dataTable, string custcode) { + this.Adapter.SelectCommand = this.CommandCollection[2]; + if ((custcode == null)) { + throw new global::System.ArgumentNullException("custcode"); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(custcode)); + } + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, false)] + public virtual DataSet1.Component_Reel_RegExRuleDataTable GetByWithSample(string custcode) { + this.Adapter.SelectCommand = this.CommandCollection[2]; + if ((custcode == null)) { + throw new global::System.ArgumentNullException("custcode"); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(custcode)); + } + DataSet1.Component_Reel_RegExRuleDataTable dataTable = new DataSet1.Component_Reel_RegExRuleDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, false)] + public virtual int FillIgnore(DataSet1.Component_Reel_RegExRuleDataTable dataTable, string custcode) { + this.Adapter.SelectCommand = this.CommandCollection[3]; + if ((custcode == null)) { + throw new global::System.ArgumentNullException("custcode"); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(custcode)); + } + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, false)] + public virtual DataSet1.Component_Reel_RegExRuleDataTable GetIgnore(string custcode) { + this.Adapter.SelectCommand = this.CommandCollection[3]; + if ((custcode == null)) { + throw new global::System.ArgumentNullException("custcode"); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(custcode)); + } + DataSet1.Component_Reel_RegExRuleDataTable dataTable = new DataSet1.Component_Reel_RegExRuleDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1.Component_Reel_RegExRuleDataTable dataTable) { + return this.Adapter.Update(dataTable); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1 dataSet) { + return this.Adapter.Update(dataSet, "Component_Reel_RegExRule"); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow dataRow) { + return this.Adapter.Update(new global::System.Data.DataRow[] { + dataRow}); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow[] dataRows) { + return this.Adapter.Update(dataRows); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, true)] + public virtual int Delete(int Original_Id, global::System.Nullable Original_Seq, string Original_CustCode, string Original_Description, string Original_Symbol, string Original_Groups, global::System.Nullable Original_IsEnable, global::System.Nullable Original_IsTrust, global::System.Nullable Original_IsAmkStd, global::System.Nullable Original_IsIgnore) { + this.Adapter.DeleteCommand.Parameters[0].Value = ((int)(Original_Id)); + if ((Original_Seq.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[2].Value = ((int)(Original_Seq.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[2].Value = global::System.DBNull.Value; + } + if ((Original_CustCode == null)) { + this.Adapter.DeleteCommand.Parameters[3].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[3].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[4].Value = ((string)(Original_CustCode)); + } + if ((Original_Description == null)) { + this.Adapter.DeleteCommand.Parameters[5].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[6].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[5].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[6].Value = ((string)(Original_Description)); + } + if ((Original_Symbol == null)) { + this.Adapter.DeleteCommand.Parameters[7].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[8].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[7].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[8].Value = ((string)(Original_Symbol)); + } + if ((Original_Groups == null)) { + this.Adapter.DeleteCommand.Parameters[9].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[10].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[9].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[10].Value = ((string)(Original_Groups)); + } + if ((Original_IsEnable.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[11].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[12].Value = ((bool)(Original_IsEnable.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[11].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[12].Value = global::System.DBNull.Value; + } + if ((Original_IsTrust.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[13].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[14].Value = ((bool)(Original_IsTrust.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[13].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[14].Value = global::System.DBNull.Value; + } + if ((Original_IsAmkStd.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[15].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[16].Value = ((bool)(Original_IsAmkStd.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[15].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[16].Value = global::System.DBNull.Value; + } + if ((Original_IsIgnore.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[17].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[18].Value = ((bool)(Original_IsIgnore.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[17].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[18].Value = global::System.DBNull.Value; + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; + if (((this.Adapter.DeleteCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.DeleteCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.DeleteCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.DeleteCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] + public virtual int Insert(global::System.Nullable Seq, string CustCode, string Description, string Symbol, string Pattern, string Groups, global::System.Nullable IsEnable, global::System.Nullable IsTrust, global::System.Nullable IsAmkStd, global::System.Nullable IsIgnore) { + if ((Seq.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[0].Value = ((int)(Seq.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; + } + if ((CustCode == null)) { + this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[1].Value = ((string)(CustCode)); + } + if ((Description == null)) { + this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[2].Value = ((string)(Description)); + } + if ((Symbol == null)) { + this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[3].Value = ((string)(Symbol)); + } + if ((Pattern == null)) { + this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[4].Value = ((string)(Pattern)); + } + if ((Groups == null)) { + this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[5].Value = ((string)(Groups)); + } + if ((IsEnable.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[6].Value = ((bool)(IsEnable.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[6].Value = global::System.DBNull.Value; + } + if ((IsTrust.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[7].Value = ((bool)(IsTrust.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[7].Value = global::System.DBNull.Value; + } + if ((IsAmkStd.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[8].Value = ((bool)(IsAmkStd.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[8].Value = global::System.DBNull.Value; + } + if ((IsIgnore.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[9].Value = ((bool)(IsIgnore.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[9].Value = global::System.DBNull.Value; + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; + if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.InsertCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.InsertCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update( + global::System.Nullable Seq, + string CustCode, + string Description, + string Symbol, + string Pattern, + string Groups, + global::System.Nullable IsEnable, + global::System.Nullable IsTrust, + global::System.Nullable IsAmkStd, + global::System.Nullable IsIgnore, + int Original_Id, + global::System.Nullable Original_Seq, + string Original_CustCode, + string Original_Description, + string Original_Symbol, + string Original_Groups, + global::System.Nullable Original_IsEnable, + global::System.Nullable Original_IsTrust, + global::System.Nullable Original_IsAmkStd, + global::System.Nullable Original_IsIgnore, + int Id) { + if ((Seq.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[0].Value = ((int)(Seq.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[0].Value = global::System.DBNull.Value; + } + if ((CustCode == null)) { + this.Adapter.UpdateCommand.Parameters[1].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[1].Value = ((string)(CustCode)); + } + if ((Description == null)) { + this.Adapter.UpdateCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[2].Value = ((string)(Description)); + } + if ((Symbol == null)) { + this.Adapter.UpdateCommand.Parameters[3].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[3].Value = ((string)(Symbol)); + } + if ((Pattern == null)) { + this.Adapter.UpdateCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[4].Value = ((string)(Pattern)); + } + if ((Groups == null)) { + this.Adapter.UpdateCommand.Parameters[5].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[5].Value = ((string)(Groups)); + } + if ((IsEnable.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[6].Value = ((bool)(IsEnable.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[6].Value = global::System.DBNull.Value; + } + if ((IsTrust.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[7].Value = ((bool)(IsTrust.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[7].Value = global::System.DBNull.Value; + } + if ((IsAmkStd.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[8].Value = ((bool)(IsAmkStd.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[8].Value = global::System.DBNull.Value; + } + if ((IsIgnore.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[9].Value = ((bool)(IsIgnore.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[9].Value = global::System.DBNull.Value; + } + this.Adapter.UpdateCommand.Parameters[10].Value = ((int)(Original_Id)); + if ((Original_Seq.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[12].Value = ((int)(Original_Seq.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[12].Value = global::System.DBNull.Value; + } + if ((Original_CustCode == null)) { + this.Adapter.UpdateCommand.Parameters[13].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[14].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[13].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[14].Value = ((string)(Original_CustCode)); + } + if ((Original_Description == null)) { + this.Adapter.UpdateCommand.Parameters[15].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[16].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[15].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[16].Value = ((string)(Original_Description)); + } + if ((Original_Symbol == null)) { + this.Adapter.UpdateCommand.Parameters[17].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[18].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[17].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[18].Value = ((string)(Original_Symbol)); + } + if ((Original_Groups == null)) { + this.Adapter.UpdateCommand.Parameters[19].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[20].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[19].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[20].Value = ((string)(Original_Groups)); + } + if ((Original_IsEnable.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[21].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[22].Value = ((bool)(Original_IsEnable.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[21].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[22].Value = global::System.DBNull.Value; + } + if ((Original_IsTrust.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[23].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[24].Value = ((bool)(Original_IsTrust.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[23].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[24].Value = global::System.DBNull.Value; + } + if ((Original_IsAmkStd.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[25].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[26].Value = ((bool)(Original_IsAmkStd.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[25].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[26].Value = global::System.DBNull.Value; + } + if ((Original_IsIgnore.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[27].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[28].Value = ((bool)(Original_IsIgnore.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[27].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[28].Value = global::System.DBNull.Value; + } + this.Adapter.UpdateCommand.Parameters[29].Value = ((int)(Id)); + global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; + if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.UpdateCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.UpdateCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update( + global::System.Nullable Seq, + string CustCode, + string Description, + string Symbol, + string Pattern, + string Groups, + global::System.Nullable IsEnable, + global::System.Nullable IsTrust, + global::System.Nullable IsAmkStd, + global::System.Nullable IsIgnore, + int Original_Id, + global::System.Nullable Original_Seq, + string Original_CustCode, + string Original_Description, + string Original_Symbol, + string Original_Groups, + global::System.Nullable Original_IsEnable, + global::System.Nullable Original_IsTrust, + global::System.Nullable Original_IsAmkStd, + global::System.Nullable Original_IsIgnore) { + return this.Update(Seq, CustCode, Description, Symbol, Pattern, Groups, IsEnable, IsTrust, IsAmkStd, IsIgnore, Original_Id, Original_Seq, Original_CustCode, Original_Description, Original_Symbol, Original_Groups, Original_IsEnable, Original_IsTrust, Original_IsAmkStd, Original_IsIgnore, Original_Id); + } + } + + /// + ///Represents the connection and commands used to retrieve and save data. + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DataObjectAttribute(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + + ", Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public partial class Component_Reel_SID_ConvertTableAdapter : global::System.ComponentModel.Component { + + private global::System.Data.SqlClient.SqlDataAdapter _adapter; + + private global::System.Data.SqlClient.SqlConnection _connection; + + private global::System.Data.SqlClient.SqlTransaction _transaction; + + private global::System.Data.SqlClient.SqlCommand[] _commandCollection; + + private bool _clearBeforeFill; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_ConvertTableAdapter() { + this.ClearBeforeFill = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected internal global::System.Data.SqlClient.SqlDataAdapter Adapter { + get { + if ((this._adapter == null)) { + this.InitAdapter(); + } + return this._adapter; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlConnection Connection { + get { + if ((this._connection == null)) { + this.InitConnection(); + } + return this._connection; + } + set { + this._connection = value; + if ((this.Adapter.InsertCommand != null)) { + this.Adapter.InsertCommand.Connection = value; + } + if ((this.Adapter.DeleteCommand != null)) { + this.Adapter.DeleteCommand.Connection = value; + } + if ((this.Adapter.UpdateCommand != null)) { + this.Adapter.UpdateCommand.Connection = value; + } + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + if ((this.CommandCollection[i] != null)) { + ((global::System.Data.SqlClient.SqlCommand)(this.CommandCollection[i])).Connection = value; + } + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlTransaction Transaction { + get { + return this._transaction; + } + set { + this._transaction = value; + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + this.CommandCollection[i].Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.DeleteCommand != null))) { + this.Adapter.DeleteCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.InsertCommand != null))) { + this.Adapter.InsertCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.UpdateCommand != null))) { + this.Adapter.UpdateCommand.Transaction = this._transaction; + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected global::System.Data.SqlClient.SqlCommand[] CommandCollection { + get { + if ((this._commandCollection == null)) { + this.InitCommandCollection(); + } + return this._commandCollection; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool ClearBeforeFill { + get { + return this._clearBeforeFill; + } + set { + this._clearBeforeFill = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitAdapter() { + this._adapter = new global::System.Data.SqlClient.SqlDataAdapter(); + global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); + tableMapping.SourceTable = "Table"; + tableMapping.DataSetTable = "Component_Reel_SID_Convert"; + tableMapping.ColumnMappings.Add("idx", "idx"); + tableMapping.ColumnMappings.Add("Chk", "Chk"); + tableMapping.ColumnMappings.Add("SIDFrom", "SIDFrom"); + tableMapping.ColumnMappings.Add("SIDTo", "SIDTo"); + tableMapping.ColumnMappings.Add("Remark", "Remark"); + tableMapping.ColumnMappings.Add("wdate", "wdate"); + tableMapping.ColumnMappings.Add("MC", "MC"); + this._adapter.TableMappings.Add(tableMapping); + this._adapter.DeleteCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.DeleteCommand.Connection = this.Connection; + this._adapter.DeleteCommand.CommandText = @"DELETE FROM [Component_Reel_SID_Convert] WHERE (([idx] = @Original_idx) AND ((@IsNull_MC = 1 AND [MC] IS NULL) OR ([MC] = @Original_MC)) AND ((@IsNull_Chk = 1 AND [Chk] IS NULL) OR ([Chk] = @Original_Chk)) AND ((@IsNull_SIDFrom = 1 AND [SIDFrom] IS NULL) OR ([SIDFrom] = @Original_SIDFrom)) AND ((@IsNull_SIDTo = 1 AND [SIDTo] IS NULL) OR ([SIDTo] = @Original_SIDTo)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_wdate = 1 AND [wdate] IS NULL) OR ([wdate] = @Original_wdate)))"; + this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_idx", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_MC", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_MC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Chk", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Chk", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Chk", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Chk", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_SIDFrom", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDFrom", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_SIDFrom", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDFrom", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_SIDTo", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDTo", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_SIDTo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDTo", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Remark", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_wdate", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.InsertCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.InsertCommand.Connection = this.Connection; + this._adapter.InsertCommand.CommandText = @"INSERT INTO [Component_Reel_SID_Convert] ([MC], [Chk], [SIDFrom], [SIDTo], [Remark], [wdate]) VALUES (@MC, @Chk, @SIDFrom, @SIDTo, @Remark, @wdate); +SELECT idx, MC, Chk, SIDFrom, SIDTo, Remark, wdate FROM Component_Reel_SID_Convert WHERE (idx = SCOPE_IDENTITY()) ORDER BY SIDFrom"; + this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@MC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Chk", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Chk", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SIDFrom", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDFrom", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SIDTo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDTo", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.UpdateCommand.Connection = this.Connection; + this._adapter.UpdateCommand.CommandText = @"UPDATE [Component_Reel_SID_Convert] SET [MC] = @MC, [Chk] = @Chk, [SIDFrom] = @SIDFrom, [SIDTo] = @SIDTo, [Remark] = @Remark, [wdate] = @wdate WHERE (([idx] = @Original_idx) AND ((@IsNull_MC = 1 AND [MC] IS NULL) OR ([MC] = @Original_MC)) AND ((@IsNull_Chk = 1 AND [Chk] IS NULL) OR ([Chk] = @Original_Chk)) AND ((@IsNull_SIDFrom = 1 AND [SIDFrom] IS NULL) OR ([SIDFrom] = @Original_SIDFrom)) AND ((@IsNull_SIDTo = 1 AND [SIDTo] IS NULL) OR ([SIDTo] = @Original_SIDTo)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_wdate = 1 AND [wdate] IS NULL) OR ([wdate] = @Original_wdate))); +SELECT idx, MC, Chk, SIDFrom, SIDTo, Remark, wdate FROM Component_Reel_SID_Convert WHERE (idx = @idx) ORDER BY SIDFrom"; + this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@MC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Chk", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Chk", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SIDFrom", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDFrom", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SIDTo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDTo", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_idx", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_MC", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_MC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Chk", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Chk", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Chk", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Chk", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_SIDFrom", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDFrom", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_SIDFrom", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDFrom", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_SIDTo", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDTo", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_SIDTo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDTo", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Remark", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_wdate", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@idx", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitConnection() { + this._connection = new global::System.Data.SqlClient.SqlConnection(); + this._connection.ConnectionString = global::Project.Properties.Settings.Default.CS; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitCommandCollection() { + this._commandCollection = new global::System.Data.SqlClient.SqlCommand[1]; + this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[0].Connection = this.Connection; + this._commandCollection[0].CommandText = "SELECT idx, MC, Chk, SIDFrom, SIDTo, Remark, wdate\r\nFROM Component_Reel_SID_" + + "Convert WITH (NOLOCK)\r\nWHERE (ISNULL(SIDFrom, \'\') <> \'\') AND (ISNULL(SIDTo, \'\')" + + " <> \'\') AND (ISNULL(SIDFrom, \'\') <> ISNULL(SIDTo, \'\'))\r\nORDER BY SIDFrom"; + this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] + public virtual int Fill(DataSet1.Component_Reel_SID_ConvertDataTable dataTable) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] + public virtual DataSet1.Component_Reel_SID_ConvertDataTable GetData() { + this.Adapter.SelectCommand = this.CommandCollection[0]; + DataSet1.Component_Reel_SID_ConvertDataTable dataTable = new DataSet1.Component_Reel_SID_ConvertDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1.Component_Reel_SID_ConvertDataTable dataTable) { + return this.Adapter.Update(dataTable); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1 dataSet) { + return this.Adapter.Update(dataSet, "Component_Reel_SID_Convert"); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow dataRow) { + return this.Adapter.Update(new global::System.Data.DataRow[] { + dataRow}); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow[] dataRows) { + return this.Adapter.Update(dataRows); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, true)] + public virtual int Delete(int Original_idx, string Original_MC, global::System.Nullable Original_Chk, string Original_SIDFrom, string Original_SIDTo, string Original_Remark, global::System.Nullable Original_wdate) { + this.Adapter.DeleteCommand.Parameters[0].Value = ((int)(Original_idx)); + if ((Original_MC == null)) { + this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[2].Value = ((string)(Original_MC)); + } + if ((Original_Chk.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[3].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[4].Value = ((bool)(Original_Chk.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[3].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[4].Value = global::System.DBNull.Value; + } + if ((Original_SIDFrom == null)) { + this.Adapter.DeleteCommand.Parameters[5].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[6].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[5].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[6].Value = ((string)(Original_SIDFrom)); + } + if ((Original_SIDTo == null)) { + this.Adapter.DeleteCommand.Parameters[7].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[8].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[7].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[8].Value = ((string)(Original_SIDTo)); + } + if ((Original_Remark == null)) { + this.Adapter.DeleteCommand.Parameters[9].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[10].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[9].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[10].Value = ((string)(Original_Remark)); + } + if ((Original_wdate.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[11].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[12].Value = ((System.DateTime)(Original_wdate.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[11].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[12].Value = global::System.DBNull.Value; + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; + if (((this.Adapter.DeleteCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.DeleteCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.DeleteCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.DeleteCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] + public virtual int Insert(string MC, global::System.Nullable Chk, string SIDFrom, string SIDTo, string Remark, global::System.Nullable wdate) { + if ((MC == null)) { + this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[0].Value = ((string)(MC)); + } + if ((Chk.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[1].Value = ((bool)(Chk.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; + } + if ((SIDFrom == null)) { + this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[2].Value = ((string)(SIDFrom)); + } + if ((SIDTo == null)) { + this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[3].Value = ((string)(SIDTo)); + } + if ((Remark == null)) { + this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[4].Value = ((string)(Remark)); + } + if ((wdate.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[5].Value = ((System.DateTime)(wdate.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; + if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.InsertCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.InsertCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update(string MC, global::System.Nullable Chk, string SIDFrom, string SIDTo, string Remark, global::System.Nullable wdate, int Original_idx, string Original_MC, global::System.Nullable Original_Chk, string Original_SIDFrom, string Original_SIDTo, string Original_Remark, global::System.Nullable Original_wdate, int idx) { + if ((MC == null)) { + this.Adapter.UpdateCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[0].Value = ((string)(MC)); + } + if ((Chk.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[1].Value = ((bool)(Chk.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[1].Value = global::System.DBNull.Value; + } + if ((SIDFrom == null)) { + this.Adapter.UpdateCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[2].Value = ((string)(SIDFrom)); + } + if ((SIDTo == null)) { + this.Adapter.UpdateCommand.Parameters[3].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[3].Value = ((string)(SIDTo)); + } + if ((Remark == null)) { + this.Adapter.UpdateCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[4].Value = ((string)(Remark)); + } + if ((wdate.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[5].Value = ((System.DateTime)(wdate.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[5].Value = global::System.DBNull.Value; + } + this.Adapter.UpdateCommand.Parameters[6].Value = ((int)(Original_idx)); + if ((Original_MC == null)) { + this.Adapter.UpdateCommand.Parameters[7].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[8].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[7].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[8].Value = ((string)(Original_MC)); + } + if ((Original_Chk.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[9].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[10].Value = ((bool)(Original_Chk.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[9].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[10].Value = global::System.DBNull.Value; + } + if ((Original_SIDFrom == null)) { + this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[12].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[12].Value = ((string)(Original_SIDFrom)); + } + if ((Original_SIDTo == null)) { + this.Adapter.UpdateCommand.Parameters[13].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[14].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[13].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[14].Value = ((string)(Original_SIDTo)); + } + if ((Original_Remark == null)) { + this.Adapter.UpdateCommand.Parameters[15].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[16].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[15].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[16].Value = ((string)(Original_Remark)); + } + if ((Original_wdate.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[17].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[18].Value = ((System.DateTime)(Original_wdate.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[17].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[18].Value = global::System.DBNull.Value; + } + this.Adapter.UpdateCommand.Parameters[19].Value = ((int)(idx)); + global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; + if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.UpdateCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.UpdateCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update(string MC, global::System.Nullable Chk, string SIDFrom, string SIDTo, string Remark, global::System.Nullable wdate, int Original_idx, string Original_MC, global::System.Nullable Original_Chk, string Original_SIDFrom, string Original_SIDTo, string Original_Remark, global::System.Nullable Original_wdate) { + return this.Update(MC, Chk, SIDFrom, SIDTo, Remark, wdate, Original_idx, Original_MC, Original_Chk, Original_SIDFrom, Original_SIDTo, Original_Remark, Original_wdate, Original_idx); + } + } + + /// + ///Represents the connection and commands used to retrieve and save data. + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DataObjectAttribute(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + + ", Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public partial class Component_Reel_SID_InformationTableAdapter : global::System.ComponentModel.Component { + + private global::System.Data.SqlClient.SqlDataAdapter _adapter; + + private global::System.Data.SqlClient.SqlConnection _connection; + + private global::System.Data.SqlClient.SqlTransaction _transaction; + + private global::System.Data.SqlClient.SqlCommand[] _commandCollection; + + private bool _clearBeforeFill; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_InformationTableAdapter() { + this.ClearBeforeFill = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected internal global::System.Data.SqlClient.SqlDataAdapter Adapter { + get { + if ((this._adapter == null)) { + this.InitAdapter(); + } + return this._adapter; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlConnection Connection { + get { + if ((this._connection == null)) { + this.InitConnection(); + } + return this._connection; + } + set { + this._connection = value; + if ((this.Adapter.InsertCommand != null)) { + this.Adapter.InsertCommand.Connection = value; + } + if ((this.Adapter.DeleteCommand != null)) { + this.Adapter.DeleteCommand.Connection = value; + } + if ((this.Adapter.UpdateCommand != null)) { + this.Adapter.UpdateCommand.Connection = value; + } + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + if ((this.CommandCollection[i] != null)) { + ((global::System.Data.SqlClient.SqlCommand)(this.CommandCollection[i])).Connection = value; + } + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlTransaction Transaction { + get { + return this._transaction; + } + set { + this._transaction = value; + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + this.CommandCollection[i].Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.DeleteCommand != null))) { + this.Adapter.DeleteCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.InsertCommand != null))) { + this.Adapter.InsertCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.UpdateCommand != null))) { + this.Adapter.UpdateCommand.Transaction = this._transaction; + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected global::System.Data.SqlClient.SqlCommand[] CommandCollection { + get { + if ((this._commandCollection == null)) { + this.InitCommandCollection(); + } + return this._commandCollection; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool ClearBeforeFill { + get { + return this._clearBeforeFill; + } + set { + this._clearBeforeFill = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitAdapter() { + this._adapter = new global::System.Data.SqlClient.SqlDataAdapter(); + global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); + tableMapping.SourceTable = "Table"; + tableMapping.DataSetTable = "Component_Reel_SID_Information"; + tableMapping.ColumnMappings.Add("idx", "idx"); + tableMapping.ColumnMappings.Add("SID", "SID"); + tableMapping.ColumnMappings.Add("CustCode", "CustCode"); + tableMapping.ColumnMappings.Add("PartNo", "PartNo"); + tableMapping.ColumnMappings.Add("CustName", "CustName"); + tableMapping.ColumnMappings.Add("VenderName", "VenderName"); + tableMapping.ColumnMappings.Add("Remark", "Remark"); + tableMapping.ColumnMappings.Add("wdate", "wdate"); + tableMapping.ColumnMappings.Add("MC", "MC"); + tableMapping.ColumnMappings.Add("batch", "batch"); + tableMapping.ColumnMappings.Add("qtymax", "qtymax"); + tableMapping.ColumnMappings.Add("VenderLot", "VenderLot"); + tableMapping.ColumnMappings.Add("attach", "attach"); + this._adapter.TableMappings.Add(tableMapping); + this._adapter.DeleteCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.DeleteCommand.Connection = this.Connection; + this._adapter.DeleteCommand.CommandText = @"DELETE FROM [Component_Reel_SID_Information] WHERE (([idx] = @Original_idx) AND ((@IsNull_MC = 1 AND [MC] IS NULL) OR ([MC] = @Original_MC)) AND ([SID] = @Original_SID) AND ([CustCode] = @Original_CustCode) AND ([PartNo] = @Original_PartNo) AND ((@IsNull_CustName = 1 AND [CustName] IS NULL) OR ([CustName] = @Original_CustName)) AND ((@IsNull_VenderName = 1 AND [VenderName] IS NULL) OR ([VenderName] = @Original_VenderName)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_wdate = 1 AND [wdate] IS NULL) OR ([wdate] = @Original_wdate)) AND ((@IsNull_batch = 1 AND [batch] IS NULL) OR ([batch] = @Original_batch)) AND ((@IsNull_qtymax = 1 AND [qtymax] IS NULL) OR ([qtymax] = @Original_qtymax)) AND ((@IsNull_VenderLot = 1 AND [VenderLot] IS NULL) OR ([VenderLot] = @Original_VenderLot)) AND ((@IsNull_attach = 1 AND [attach] IS NULL) OR ([attach] = @Original_attach)))"; + this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_idx", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_MC", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_MC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_SID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CustCode", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PartNo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PartNo", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_CustName", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustName", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CustName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustName", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_VenderName", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderName", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_VenderName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderName", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Remark", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_wdate", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_batch", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "batch", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_batch", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "batch", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_qtymax", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "qtymax", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_qtymax", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "qtymax", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_VenderLot", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderLot", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_VenderLot", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderLot", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_attach", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "attach", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_attach", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "attach", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.InsertCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.InsertCommand.Connection = this.Connection; + this._adapter.InsertCommand.CommandText = @"INSERT INTO [Component_Reel_SID_Information] ([MC], [SID], [CustCode], [PartNo], [CustName], [VenderName], [Remark], [wdate], [batch], [qtymax], [VenderLot], [attach]) VALUES (@MC, @SID, @CustCode, @PartNo, @CustName, @VenderName, @Remark, @wdate, @batch, @qtymax, @VenderLot, @attach); +SELECT idx, MC, SID, CustCode, PartNo, CustName, VenderName, Remark, wdate, batch, qtymax, VenderLot, attach FROM Component_Reel_SID_Information WITH (NOLOCK) WHERE (idx = SCOPE_IDENTITY()) ORDER BY idx"; + this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@MC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CustCode", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PartNo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PartNo", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CustName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustName", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@VenderName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderName", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@batch", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "batch", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@qtymax", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "qtymax", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@VenderLot", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderLot", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@attach", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "attach", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.UpdateCommand.Connection = this.Connection; + this._adapter.UpdateCommand.CommandText = @"UPDATE [Component_Reel_SID_Information] SET [MC] = @MC, [SID] = @SID, [CustCode] = @CustCode, [PartNo] = @PartNo, [CustName] = @CustName, [VenderName] = @VenderName, [Remark] = @Remark, [wdate] = @wdate, [batch] = @batch, [qtymax] = @qtymax, [VenderLot] = @VenderLot, [attach] = @attach WHERE (([idx] = @Original_idx) AND ((@IsNull_MC = 1 AND [MC] IS NULL) OR ([MC] = @Original_MC)) AND ([SID] = @Original_SID) AND ([CustCode] = @Original_CustCode) AND ([PartNo] = @Original_PartNo) AND ((@IsNull_CustName = 1 AND [CustName] IS NULL) OR ([CustName] = @Original_CustName)) AND ((@IsNull_VenderName = 1 AND [VenderName] IS NULL) OR ([VenderName] = @Original_VenderName)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_wdate = 1 AND [wdate] IS NULL) OR ([wdate] = @Original_wdate)) AND ((@IsNull_batch = 1 AND [batch] IS NULL) OR ([batch] = @Original_batch)) AND ((@IsNull_qtymax = 1 AND [qtymax] IS NULL) OR ([qtymax] = @Original_qtymax)) AND ((@IsNull_VenderLot = 1 AND [VenderLot] IS NULL) OR ([VenderLot] = @Original_VenderLot)) AND ((@IsNull_attach = 1 AND [attach] IS NULL) OR ([attach] = @Original_attach))); +SELECT idx, MC, SID, CustCode, PartNo, CustName, VenderName, Remark, wdate, batch, qtymax, VenderLot, attach FROM Component_Reel_SID_Information WITH (NOLOCK) WHERE (idx = @idx) ORDER BY idx"; + this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@MC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CustCode", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PartNo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PartNo", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CustName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustName", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@VenderName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderName", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@batch", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "batch", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@qtymax", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "qtymax", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@VenderLot", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderLot", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@attach", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "attach", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_idx", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_MC", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_MC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_SID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CustCode", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PartNo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PartNo", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_CustName", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustName", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CustName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustName", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_VenderName", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderName", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_VenderName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderName", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Remark", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_wdate", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_batch", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "batch", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_batch", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "batch", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_qtymax", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "qtymax", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_qtymax", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "qtymax", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_VenderLot", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderLot", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_VenderLot", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderLot", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_attach", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "attach", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_attach", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "attach", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@idx", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitConnection() { + this._connection = new global::System.Data.SqlClient.SqlConnection(); + this._connection.ConnectionString = global::Project.Properties.Settings.Default.CS; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitCommandCollection() { + this._commandCollection = new global::System.Data.SqlClient.SqlCommand[5]; + this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[0].Connection = this.Connection; + this._commandCollection[0].CommandText = "SELECT idx, MC, SID, CustCode, PartNo, CustName, VenderName, Remark, wdate, batc" + + "h, qtymax, VenderLot, attach\r\nFROM Component_Reel_SID_Information WITH (NOLO" + + "CK)\r\nWHERE (MC = @mcname)\r\nORDER BY idx"; + this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[0].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@mcname", global::System.Data.SqlDbType.VarChar, 20, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[1] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[1].Connection = this.Connection; + this._commandCollection[1].CommandText = "DELETE FROM [Component_Reel_SID_Information] WHERE mc = @mcname"; + this._commandCollection[1].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[1].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@mcname", global::System.Data.SqlDbType.VarChar, 20, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._commandCollection[2] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[2].Connection = this.Connection; + this._commandCollection[2].CommandText = "SELECT CustCode, CustName, MC, PartNo, Remark, SID, VenderLot, VenderName, attach" + + ", batch, idx, qtymax, wdate FROM Component_Reel_SID_Information WITH (NOLOCK) WH" + + "ERE (MC = @mcname) AND (SID = @sid)"; + this._commandCollection[2].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[2].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@mcname", global::System.Data.SqlDbType.VarChar, 20, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[2].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@sid", global::System.Data.SqlDbType.VarChar, 50, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[3] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[3].Connection = this.Connection; + this._commandCollection[3].CommandText = "SELECT CustCode, CustName, MC, PartNo, Remark, SID, VenderLot, VenderName, attach" + + ", batch, idx, qtymax, wdate FROM Component_Reel_SID_Information WITH (NOLOCK) WH" + + "ERE (MC = @mcname) AND (SID = @sid) AND (ISNULL(CustCode, \'\') <> \'\')"; + this._commandCollection[3].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[3].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@mcname", global::System.Data.SqlDbType.VarChar, 20, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[3].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@sid", global::System.Data.SqlDbType.VarChar, 50, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[4] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[4].Connection = this.Connection; + this._commandCollection[4].CommandText = @"insert into Component_Reel_SID_Information(mc,sid,custcode,partno,custname,vendername,venderlot,printposition,remark,mfg,qtymax,batch,wdate) +select 'IB',sid,custcode,partno,custname,vendername,venderlot,printposition,'disable ECS',mfg,qtymax,batch,wdate +from Component_Reel_SID_Information +where mc = @mcname"; + this._commandCollection[4].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[4].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@mcname", global::System.Data.SqlDbType.VarChar, 20, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] + public virtual int Fill(DataSet1.Component_Reel_SID_InformationDataTable dataTable, string mcname) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((mcname == null)) { + this.Adapter.SelectCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(mcname)); + } + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] + public virtual DataSet1.Component_Reel_SID_InformationDataTable GetData(string mcname) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((mcname == null)) { + this.Adapter.SelectCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(mcname)); + } + DataSet1.Component_Reel_SID_InformationDataTable dataTable = new DataSet1.Component_Reel_SID_InformationDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, false)] + public virtual int FillBySID(DataSet1.Component_Reel_SID_InformationDataTable dataTable, string mcname, string sid) { + this.Adapter.SelectCommand = this.CommandCollection[2]; + if ((mcname == null)) { + this.Adapter.SelectCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(mcname)); + } + if ((sid == null)) { + throw new global::System.ArgumentNullException("sid"); + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(sid)); + } + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, false)] + public virtual DataSet1.Component_Reel_SID_InformationDataTable GetBySID(string mcname, string sid) { + this.Adapter.SelectCommand = this.CommandCollection[2]; + if ((mcname == null)) { + this.Adapter.SelectCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(mcname)); + } + if ((sid == null)) { + throw new global::System.ArgumentNullException("sid"); + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(sid)); + } + DataSet1.Component_Reel_SID_InformationDataTable dataTable = new DataSet1.Component_Reel_SID_InformationDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, false)] + public virtual int FillBySIDNoCustCode(DataSet1.Component_Reel_SID_InformationDataTable dataTable, string mcname, string sid) { + this.Adapter.SelectCommand = this.CommandCollection[3]; + if ((mcname == null)) { + this.Adapter.SelectCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(mcname)); + } + if ((sid == null)) { + throw new global::System.ArgumentNullException("sid"); + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(sid)); + } + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, false)] + public virtual DataSet1.Component_Reel_SID_InformationDataTable GetbySIDNoCustCode(string mcname, string sid) { + this.Adapter.SelectCommand = this.CommandCollection[3]; + if ((mcname == null)) { + this.Adapter.SelectCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(mcname)); + } + if ((sid == null)) { + throw new global::System.ArgumentNullException("sid"); + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(sid)); + } + DataSet1.Component_Reel_SID_InformationDataTable dataTable = new DataSet1.Component_Reel_SID_InformationDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1.Component_Reel_SID_InformationDataTable dataTable) { + return this.Adapter.Update(dataTable); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1 dataSet) { + return this.Adapter.Update(dataSet, "Component_Reel_SID_Information"); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow dataRow) { + return this.Adapter.Update(new global::System.Data.DataRow[] { + dataRow}); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow[] dataRows) { + return this.Adapter.Update(dataRows); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, true)] + public virtual int Delete(int Original_idx, string Original_MC, string Original_SID, string Original_CustCode, string Original_PartNo, string Original_CustName, string Original_VenderName, string Original_Remark, global::System.Nullable Original_wdate, string Original_batch, global::System.Nullable Original_qtymax, string Original_VenderLot, string Original_attach) { + this.Adapter.DeleteCommand.Parameters[0].Value = ((int)(Original_idx)); + if ((Original_MC == null)) { + this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[2].Value = ((string)(Original_MC)); + } + if ((Original_SID == null)) { + throw new global::System.ArgumentNullException("Original_SID"); + } + else { + this.Adapter.DeleteCommand.Parameters[3].Value = ((string)(Original_SID)); + } + if ((Original_CustCode == null)) { + throw new global::System.ArgumentNullException("Original_CustCode"); + } + else { + this.Adapter.DeleteCommand.Parameters[4].Value = ((string)(Original_CustCode)); + } + if ((Original_PartNo == null)) { + throw new global::System.ArgumentNullException("Original_PartNo"); + } + else { + this.Adapter.DeleteCommand.Parameters[5].Value = ((string)(Original_PartNo)); + } + if ((Original_CustName == null)) { + this.Adapter.DeleteCommand.Parameters[6].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[7].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[6].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[7].Value = ((string)(Original_CustName)); + } + if ((Original_VenderName == null)) { + this.Adapter.DeleteCommand.Parameters[8].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[9].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[8].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[9].Value = ((string)(Original_VenderName)); + } + if ((Original_Remark == null)) { + this.Adapter.DeleteCommand.Parameters[10].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[11].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[10].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[11].Value = ((string)(Original_Remark)); + } + if ((Original_wdate.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[12].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[13].Value = ((System.DateTime)(Original_wdate.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[12].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[13].Value = global::System.DBNull.Value; + } + if ((Original_batch == null)) { + this.Adapter.DeleteCommand.Parameters[14].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[15].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[14].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[15].Value = ((string)(Original_batch)); + } + if ((Original_qtymax.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[16].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[17].Value = ((int)(Original_qtymax.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[16].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[17].Value = global::System.DBNull.Value; + } + if ((Original_VenderLot == null)) { + this.Adapter.DeleteCommand.Parameters[18].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[19].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[18].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[19].Value = ((string)(Original_VenderLot)); + } + if ((Original_attach == null)) { + this.Adapter.DeleteCommand.Parameters[20].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[21].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[20].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[21].Value = ((string)(Original_attach)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; + if (((this.Adapter.DeleteCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.DeleteCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.DeleteCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.DeleteCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] + public virtual int Insert(string MC, string SID, string CustCode, string PartNo, string CustName, string VenderName, string Remark, global::System.Nullable wdate, string batch, global::System.Nullable qtymax, string VenderLot, string attach) { + if ((MC == null)) { + this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[0].Value = ((string)(MC)); + } + if ((SID == null)) { + throw new global::System.ArgumentNullException("SID"); + } + else { + this.Adapter.InsertCommand.Parameters[1].Value = ((string)(SID)); + } + if ((CustCode == null)) { + throw new global::System.ArgumentNullException("CustCode"); + } + else { + this.Adapter.InsertCommand.Parameters[2].Value = ((string)(CustCode)); + } + if ((PartNo == null)) { + throw new global::System.ArgumentNullException("PartNo"); + } + else { + this.Adapter.InsertCommand.Parameters[3].Value = ((string)(PartNo)); + } + if ((CustName == null)) { + this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[4].Value = ((string)(CustName)); + } + if ((VenderName == null)) { + this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[5].Value = ((string)(VenderName)); + } + if ((Remark == null)) { + this.Adapter.InsertCommand.Parameters[6].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[6].Value = ((string)(Remark)); + } + if ((wdate.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[7].Value = ((System.DateTime)(wdate.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[7].Value = global::System.DBNull.Value; + } + if ((batch == null)) { + this.Adapter.InsertCommand.Parameters[8].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[8].Value = ((string)(batch)); + } + if ((qtymax.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[9].Value = ((int)(qtymax.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[9].Value = global::System.DBNull.Value; + } + if ((VenderLot == null)) { + this.Adapter.InsertCommand.Parameters[10].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[10].Value = ((string)(VenderLot)); + } + if ((attach == null)) { + this.Adapter.InsertCommand.Parameters[11].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[11].Value = ((string)(attach)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; + if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.InsertCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.InsertCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update( + string MC, + string SID, + string CustCode, + string PartNo, + string CustName, + string VenderName, + string Remark, + global::System.Nullable wdate, + string batch, + global::System.Nullable qtymax, + string VenderLot, + string attach, + int Original_idx, + string Original_MC, + string Original_SID, + string Original_CustCode, + string Original_PartNo, + string Original_CustName, + string Original_VenderName, + string Original_Remark, + global::System.Nullable Original_wdate, + string Original_batch, + global::System.Nullable Original_qtymax, + string Original_VenderLot, + string Original_attach, + int idx) { + if ((MC == null)) { + this.Adapter.UpdateCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[0].Value = ((string)(MC)); + } + if ((SID == null)) { + throw new global::System.ArgumentNullException("SID"); + } + else { + this.Adapter.UpdateCommand.Parameters[1].Value = ((string)(SID)); + } + if ((CustCode == null)) { + throw new global::System.ArgumentNullException("CustCode"); + } + else { + this.Adapter.UpdateCommand.Parameters[2].Value = ((string)(CustCode)); + } + if ((PartNo == null)) { + throw new global::System.ArgumentNullException("PartNo"); + } + else { + this.Adapter.UpdateCommand.Parameters[3].Value = ((string)(PartNo)); + } + if ((CustName == null)) { + this.Adapter.UpdateCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[4].Value = ((string)(CustName)); + } + if ((VenderName == null)) { + this.Adapter.UpdateCommand.Parameters[5].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[5].Value = ((string)(VenderName)); + } + if ((Remark == null)) { + this.Adapter.UpdateCommand.Parameters[6].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[6].Value = ((string)(Remark)); + } + if ((wdate.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[7].Value = ((System.DateTime)(wdate.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[7].Value = global::System.DBNull.Value; + } + if ((batch == null)) { + this.Adapter.UpdateCommand.Parameters[8].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[8].Value = ((string)(batch)); + } + if ((qtymax.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[9].Value = ((int)(qtymax.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[9].Value = global::System.DBNull.Value; + } + if ((VenderLot == null)) { + this.Adapter.UpdateCommand.Parameters[10].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[10].Value = ((string)(VenderLot)); + } + if ((attach == null)) { + this.Adapter.UpdateCommand.Parameters[11].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[11].Value = ((string)(attach)); + } + this.Adapter.UpdateCommand.Parameters[12].Value = ((int)(Original_idx)); + if ((Original_MC == null)) { + this.Adapter.UpdateCommand.Parameters[13].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[14].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[13].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[14].Value = ((string)(Original_MC)); + } + if ((Original_SID == null)) { + throw new global::System.ArgumentNullException("Original_SID"); + } + else { + this.Adapter.UpdateCommand.Parameters[15].Value = ((string)(Original_SID)); + } + if ((Original_CustCode == null)) { + throw new global::System.ArgumentNullException("Original_CustCode"); + } + else { + this.Adapter.UpdateCommand.Parameters[16].Value = ((string)(Original_CustCode)); + } + if ((Original_PartNo == null)) { + throw new global::System.ArgumentNullException("Original_PartNo"); + } + else { + this.Adapter.UpdateCommand.Parameters[17].Value = ((string)(Original_PartNo)); + } + if ((Original_CustName == null)) { + this.Adapter.UpdateCommand.Parameters[18].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[19].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[18].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[19].Value = ((string)(Original_CustName)); + } + if ((Original_VenderName == null)) { + this.Adapter.UpdateCommand.Parameters[20].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[21].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[20].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[21].Value = ((string)(Original_VenderName)); + } + if ((Original_Remark == null)) { + this.Adapter.UpdateCommand.Parameters[22].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[23].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[22].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[23].Value = ((string)(Original_Remark)); + } + if ((Original_wdate.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[24].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[25].Value = ((System.DateTime)(Original_wdate.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[24].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[25].Value = global::System.DBNull.Value; + } + if ((Original_batch == null)) { + this.Adapter.UpdateCommand.Parameters[26].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[27].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[26].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[27].Value = ((string)(Original_batch)); + } + if ((Original_qtymax.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[28].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[29].Value = ((int)(Original_qtymax.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[28].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[29].Value = global::System.DBNull.Value; + } + if ((Original_VenderLot == null)) { + this.Adapter.UpdateCommand.Parameters[30].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[31].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[30].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[31].Value = ((string)(Original_VenderLot)); + } + if ((Original_attach == null)) { + this.Adapter.UpdateCommand.Parameters[32].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[33].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[32].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[33].Value = ((string)(Original_attach)); + } + this.Adapter.UpdateCommand.Parameters[34].Value = ((int)(idx)); + global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; + if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.UpdateCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.UpdateCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update( + string MC, + string SID, + string CustCode, + string PartNo, + string CustName, + string VenderName, + string Remark, + global::System.Nullable wdate, + string batch, + global::System.Nullable qtymax, + string VenderLot, + string attach, + int Original_idx, + string Original_MC, + string Original_SID, + string Original_CustCode, + string Original_PartNo, + string Original_CustName, + string Original_VenderName, + string Original_Remark, + global::System.Nullable Original_wdate, + string Original_batch, + global::System.Nullable Original_qtymax, + string Original_VenderLot, + string Original_attach) { + return this.Update(MC, SID, CustCode, PartNo, CustName, VenderName, Remark, wdate, batch, qtymax, VenderLot, attach, Original_idx, Original_MC, Original_SID, Original_CustCode, Original_PartNo, Original_CustName, Original_VenderName, Original_Remark, Original_wdate, Original_batch, Original_qtymax, Original_VenderLot, Original_attach, Original_idx); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, false)] + public virtual int DeleteAll(string mcname) { + global::System.Data.SqlClient.SqlCommand command = this.CommandCollection[1]; + if ((mcname == null)) { + command.Parameters[0].Value = global::System.DBNull.Value; + } + else { + command.Parameters[0].Value = ((string)(mcname)); + } + global::System.Data.ConnectionState previousConnectionState = command.Connection.State; + if (((command.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + command.Connection.Open(); + } + int returnValue; + try { + returnValue = command.ExecuteNonQuery(); + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + command.Connection.Close(); + } + } + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, false)] + public virtual int MakeIBData(string mcname) { + global::System.Data.SqlClient.SqlCommand command = this.CommandCollection[4]; + if ((mcname == null)) { + command.Parameters[0].Value = global::System.DBNull.Value; + } + else { + command.Parameters[0].Value = ((string)(mcname)); + } + global::System.Data.ConnectionState previousConnectionState = command.Connection.State; + if (((command.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + command.Connection.Open(); + } + int returnValue; + try { + returnValue = command.ExecuteNonQuery(); + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + command.Connection.Close(); + } + } + return returnValue; + } + } + + /// + ///Represents the connection and commands used to retrieve and save data. + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DataObjectAttribute(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + + ", Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public partial class Component_Reel_PreSetTableAdapter : global::System.ComponentModel.Component { + + private global::System.Data.SqlClient.SqlDataAdapter _adapter; + + private global::System.Data.SqlClient.SqlConnection _connection; + + private global::System.Data.SqlClient.SqlTransaction _transaction; + + private global::System.Data.SqlClient.SqlCommand[] _commandCollection; + + private bool _clearBeforeFill; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_PreSetTableAdapter() { + this.ClearBeforeFill = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected internal global::System.Data.SqlClient.SqlDataAdapter Adapter { + get { + if ((this._adapter == null)) { + this.InitAdapter(); + } + return this._adapter; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlConnection Connection { + get { + if ((this._connection == null)) { + this.InitConnection(); + } + return this._connection; + } + set { + this._connection = value; + if ((this.Adapter.InsertCommand != null)) { + this.Adapter.InsertCommand.Connection = value; + } + if ((this.Adapter.DeleteCommand != null)) { + this.Adapter.DeleteCommand.Connection = value; + } + if ((this.Adapter.UpdateCommand != null)) { + this.Adapter.UpdateCommand.Connection = value; + } + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + if ((this.CommandCollection[i] != null)) { + ((global::System.Data.SqlClient.SqlCommand)(this.CommandCollection[i])).Connection = value; + } + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlTransaction Transaction { + get { + return this._transaction; + } + set { + this._transaction = value; + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + this.CommandCollection[i].Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.DeleteCommand != null))) { + this.Adapter.DeleteCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.InsertCommand != null))) { + this.Adapter.InsertCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.UpdateCommand != null))) { + this.Adapter.UpdateCommand.Transaction = this._transaction; + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected global::System.Data.SqlClient.SqlCommand[] CommandCollection { + get { + if ((this._commandCollection == null)) { + this.InitCommandCollection(); + } + return this._commandCollection; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool ClearBeforeFill { + get { + return this._clearBeforeFill; + } + set { + this._clearBeforeFill = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitAdapter() { + this._adapter = new global::System.Data.SqlClient.SqlDataAdapter(); + global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); + tableMapping.SourceTable = "Table"; + tableMapping.DataSetTable = "Component_Reel_PreSet"; + tableMapping.ColumnMappings.Add("idx", "idx"); + tableMapping.ColumnMappings.Add("MC", "MC"); + tableMapping.ColumnMappings.Add("Title", "Title"); + tableMapping.ColumnMappings.Add("Remark", "Remark"); + tableMapping.ColumnMappings.Add("wdate", "wdate"); + tableMapping.ColumnMappings.Add("vOption", "vOption"); + tableMapping.ColumnMappings.Add("vJobInfo", "vJobInfo"); + tableMapping.ColumnMappings.Add("vSidInfo", "vSidInfo"); + tableMapping.ColumnMappings.Add("vServerWrite", "vServerWrite"); + tableMapping.ColumnMappings.Add("jobtype", "jobtype"); + tableMapping.ColumnMappings.Add("bypasssid", "bypasssid"); + this._adapter.TableMappings.Add(tableMapping); + this._adapter.DeleteCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.DeleteCommand.Connection = this.Connection; + this._adapter.DeleteCommand.CommandText = @"DELETE FROM [Component_Reel_PreSet] WHERE (([idx] = @Original_idx) AND ((@IsNull_MC = 1 AND [MC] IS NULL) OR ([MC] = @Original_MC)) AND ([Title] = @Original_Title) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_wdate = 1 AND [wdate] IS NULL) OR ([wdate] = @Original_wdate)) AND ((@IsNull_vOption = 1 AND [vOption] IS NULL) OR ([vOption] = @Original_vOption)) AND ((@IsNull_vJobInfo = 1 AND [vJobInfo] IS NULL) OR ([vJobInfo] = @Original_vJobInfo)) AND ((@IsNull_vSidInfo = 1 AND [vSidInfo] IS NULL) OR ([vSidInfo] = @Original_vSidInfo)) AND ((@IsNull_vServerWrite = 1 AND [vServerWrite] IS NULL) OR ([vServerWrite] = @Original_vServerWrite)) AND ((@IsNull_jobtype = 1 AND [jobtype] IS NULL) OR ([jobtype] = @Original_jobtype)) AND ((@IsNull_bypasssid = 1 AND [bypasssid] IS NULL) OR ([bypasssid] = @Original_bypasssid)))"; + this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_idx", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_MC", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_MC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Title", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Title", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Remark", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_wdate", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_vOption", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "vOption", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_vOption", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "vOption", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_vJobInfo", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "vJobInfo", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_vJobInfo", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "vJobInfo", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_vSidInfo", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "vSidInfo", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_vSidInfo", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "vSidInfo", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_vServerWrite", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "vServerWrite", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_vServerWrite", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "vServerWrite", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_jobtype", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "jobtype", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_jobtype", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "jobtype", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_bypasssid", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "bypasssid", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_bypasssid", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "bypasssid", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.InsertCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.InsertCommand.Connection = this.Connection; + this._adapter.InsertCommand.CommandText = @"INSERT INTO [Component_Reel_PreSet] ([MC], [Title], [Remark], [wdate], [vOption], [vJobInfo], [vSidInfo], [vServerWrite], [jobtype], [bypasssid]) VALUES (@MC, @Title, @Remark, @wdate, @vOption, @vJobInfo, @vSidInfo, @vServerWrite, @jobtype, @bypasssid); +SELECT idx, MC, Title, Remark, wdate, vOption, vJobInfo, vSidInfo, vServerWrite, jobtype, bypasssid FROM Component_Reel_PreSet WHERE (idx = SCOPE_IDENTITY())"; + this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@MC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Title", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Title", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@vOption", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "vOption", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@vJobInfo", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "vJobInfo", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@vSidInfo", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "vSidInfo", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@vServerWrite", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "vServerWrite", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@jobtype", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "jobtype", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@bypasssid", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "bypasssid", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.UpdateCommand.Connection = this.Connection; + this._adapter.UpdateCommand.CommandText = @"UPDATE [Component_Reel_PreSet] SET [MC] = @MC, [Title] = @Title, [Remark] = @Remark, [wdate] = @wdate, [vOption] = @vOption, [vJobInfo] = @vJobInfo, [vSidInfo] = @vSidInfo, [vServerWrite] = @vServerWrite, [jobtype] = @jobtype, [bypasssid] = @bypasssid WHERE (([idx] = @Original_idx) AND ((@IsNull_MC = 1 AND [MC] IS NULL) OR ([MC] = @Original_MC)) AND ([Title] = @Original_Title) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_wdate = 1 AND [wdate] IS NULL) OR ([wdate] = @Original_wdate)) AND ((@IsNull_vOption = 1 AND [vOption] IS NULL) OR ([vOption] = @Original_vOption)) AND ((@IsNull_vJobInfo = 1 AND [vJobInfo] IS NULL) OR ([vJobInfo] = @Original_vJobInfo)) AND ((@IsNull_vSidInfo = 1 AND [vSidInfo] IS NULL) OR ([vSidInfo] = @Original_vSidInfo)) AND ((@IsNull_vServerWrite = 1 AND [vServerWrite] IS NULL) OR ([vServerWrite] = @Original_vServerWrite)) AND ((@IsNull_jobtype = 1 AND [jobtype] IS NULL) OR ([jobtype] = @Original_jobtype)) AND ((@IsNull_bypasssid = 1 AND [bypasssid] IS NULL) OR ([bypasssid] = @Original_bypasssid))); +SELECT idx, MC, Title, Remark, wdate, vOption, vJobInfo, vSidInfo, vServerWrite, jobtype, bypasssid FROM Component_Reel_PreSet WHERE (idx = @idx)"; + this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@MC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Title", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Title", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@vOption", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "vOption", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@vJobInfo", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "vJobInfo", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@vSidInfo", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "vSidInfo", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@vServerWrite", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "vServerWrite", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@jobtype", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "jobtype", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@bypasssid", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "bypasssid", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_idx", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_MC", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_MC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Title", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Title", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Remark", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_wdate", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_vOption", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "vOption", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_vOption", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "vOption", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_vJobInfo", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "vJobInfo", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_vJobInfo", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "vJobInfo", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_vSidInfo", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "vSidInfo", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_vSidInfo", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "vSidInfo", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_vServerWrite", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "vServerWrite", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_vServerWrite", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "vServerWrite", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_jobtype", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "jobtype", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_jobtype", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "jobtype", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_bypasssid", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "bypasssid", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_bypasssid", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "bypasssid", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@idx", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitConnection() { + this._connection = new global::System.Data.SqlClient.SqlConnection(); + this._connection.ConnectionString = global::Project.Properties.Settings.Default.CS; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitCommandCollection() { + this._commandCollection = new global::System.Data.SqlClient.SqlCommand[1]; + this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[0].Connection = this.Connection; + this._commandCollection[0].CommandText = "SELECT idx, MC, Title, Remark, wdate, vOption, vJobInfo, vSidInfo, vServerWrite," + + " jobtype, bypasssid\r\nFROM Component_Reel_PreSet\r\nWHERE (ISNULL(MC, \'\') = @m" + + "c)"; + this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[0].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@mc", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] + public virtual int Fill(DataSet1.Component_Reel_PreSetDataTable dataTable, string mc) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((mc == null)) { + throw new global::System.ArgumentNullException("mc"); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(mc)); + } + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] + public virtual DataSet1.Component_Reel_PreSetDataTable GetData(string mc) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((mc == null)) { + throw new global::System.ArgumentNullException("mc"); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(mc)); + } + DataSet1.Component_Reel_PreSetDataTable dataTable = new DataSet1.Component_Reel_PreSetDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1.Component_Reel_PreSetDataTable dataTable) { + return this.Adapter.Update(dataTable); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1 dataSet) { + return this.Adapter.Update(dataSet, "Component_Reel_PreSet"); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow dataRow) { + return this.Adapter.Update(new global::System.Data.DataRow[] { + dataRow}); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow[] dataRows) { + return this.Adapter.Update(dataRows); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, true)] + public virtual int Delete(int Original_idx, string Original_MC, string Original_Title, string Original_Remark, global::System.Nullable Original_wdate, global::System.Nullable Original_vOption, global::System.Nullable Original_vJobInfo, global::System.Nullable Original_vSidInfo, global::System.Nullable Original_vServerWrite, string Original_jobtype, string Original_bypasssid) { + this.Adapter.DeleteCommand.Parameters[0].Value = ((int)(Original_idx)); + if ((Original_MC == null)) { + this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[2].Value = ((string)(Original_MC)); + } + if ((Original_Title == null)) { + throw new global::System.ArgumentNullException("Original_Title"); + } + else { + this.Adapter.DeleteCommand.Parameters[3].Value = ((string)(Original_Title)); + } + if ((Original_Remark == null)) { + this.Adapter.DeleteCommand.Parameters[4].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[5].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[4].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[5].Value = ((string)(Original_Remark)); + } + if ((Original_wdate.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[6].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[7].Value = ((System.DateTime)(Original_wdate.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[6].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[7].Value = global::System.DBNull.Value; + } + if ((Original_vOption.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[8].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[9].Value = ((int)(Original_vOption.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[8].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[9].Value = global::System.DBNull.Value; + } + if ((Original_vJobInfo.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[10].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[11].Value = ((int)(Original_vJobInfo.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[10].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[11].Value = global::System.DBNull.Value; + } + if ((Original_vSidInfo.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[12].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[13].Value = ((int)(Original_vSidInfo.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[12].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[13].Value = global::System.DBNull.Value; + } + if ((Original_vServerWrite.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[14].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[15].Value = ((int)(Original_vServerWrite.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[14].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[15].Value = global::System.DBNull.Value; + } + if ((Original_jobtype == null)) { + this.Adapter.DeleteCommand.Parameters[16].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[17].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[16].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[17].Value = ((string)(Original_jobtype)); + } + if ((Original_bypasssid == null)) { + this.Adapter.DeleteCommand.Parameters[18].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[19].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[18].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[19].Value = ((string)(Original_bypasssid)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; + if (((this.Adapter.DeleteCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.DeleteCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.DeleteCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.DeleteCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] + public virtual int Insert(string MC, string Title, string Remark, global::System.Nullable wdate, global::System.Nullable vOption, global::System.Nullable vJobInfo, global::System.Nullable vSidInfo, global::System.Nullable vServerWrite, string jobtype, string bypasssid) { + if ((MC == null)) { + this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[0].Value = ((string)(MC)); + } + if ((Title == null)) { + throw new global::System.ArgumentNullException("Title"); + } + else { + this.Adapter.InsertCommand.Parameters[1].Value = ((string)(Title)); + } + if ((Remark == null)) { + this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[2].Value = ((string)(Remark)); + } + if ((wdate.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[3].Value = ((System.DateTime)(wdate.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; + } + if ((vOption.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[4].Value = ((int)(vOption.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; + } + if ((vJobInfo.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[5].Value = ((int)(vJobInfo.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; + } + if ((vSidInfo.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[6].Value = ((int)(vSidInfo.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[6].Value = global::System.DBNull.Value; + } + if ((vServerWrite.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[7].Value = ((int)(vServerWrite.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[7].Value = global::System.DBNull.Value; + } + if ((jobtype == null)) { + this.Adapter.InsertCommand.Parameters[8].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[8].Value = ((string)(jobtype)); + } + if ((bypasssid == null)) { + this.Adapter.InsertCommand.Parameters[9].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[9].Value = ((string)(bypasssid)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; + if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.InsertCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.InsertCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update( + string MC, + string Title, + string Remark, + global::System.Nullable wdate, + global::System.Nullable vOption, + global::System.Nullable vJobInfo, + global::System.Nullable vSidInfo, + global::System.Nullable vServerWrite, + string jobtype, + string bypasssid, + int Original_idx, + string Original_MC, + string Original_Title, + string Original_Remark, + global::System.Nullable Original_wdate, + global::System.Nullable Original_vOption, + global::System.Nullable Original_vJobInfo, + global::System.Nullable Original_vSidInfo, + global::System.Nullable Original_vServerWrite, + string Original_jobtype, + string Original_bypasssid, + int idx) { + if ((MC == null)) { + this.Adapter.UpdateCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[0].Value = ((string)(MC)); + } + if ((Title == null)) { + throw new global::System.ArgumentNullException("Title"); + } + else { + this.Adapter.UpdateCommand.Parameters[1].Value = ((string)(Title)); + } + if ((Remark == null)) { + this.Adapter.UpdateCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[2].Value = ((string)(Remark)); + } + if ((wdate.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[3].Value = ((System.DateTime)(wdate.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[3].Value = global::System.DBNull.Value; + } + if ((vOption.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[4].Value = ((int)(vOption.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[4].Value = global::System.DBNull.Value; + } + if ((vJobInfo.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[5].Value = ((int)(vJobInfo.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[5].Value = global::System.DBNull.Value; + } + if ((vSidInfo.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[6].Value = ((int)(vSidInfo.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[6].Value = global::System.DBNull.Value; + } + if ((vServerWrite.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[7].Value = ((int)(vServerWrite.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[7].Value = global::System.DBNull.Value; + } + if ((jobtype == null)) { + this.Adapter.UpdateCommand.Parameters[8].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[8].Value = ((string)(jobtype)); + } + if ((bypasssid == null)) { + this.Adapter.UpdateCommand.Parameters[9].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[9].Value = ((string)(bypasssid)); + } + this.Adapter.UpdateCommand.Parameters[10].Value = ((int)(Original_idx)); + if ((Original_MC == null)) { + this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[12].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[12].Value = ((string)(Original_MC)); + } + if ((Original_Title == null)) { + throw new global::System.ArgumentNullException("Original_Title"); + } + else { + this.Adapter.UpdateCommand.Parameters[13].Value = ((string)(Original_Title)); + } + if ((Original_Remark == null)) { + this.Adapter.UpdateCommand.Parameters[14].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[15].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[14].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[15].Value = ((string)(Original_Remark)); + } + if ((Original_wdate.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[16].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[17].Value = ((System.DateTime)(Original_wdate.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[16].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[17].Value = global::System.DBNull.Value; + } + if ((Original_vOption.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[18].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[19].Value = ((int)(Original_vOption.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[18].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[19].Value = global::System.DBNull.Value; + } + if ((Original_vJobInfo.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[20].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[21].Value = ((int)(Original_vJobInfo.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[20].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[21].Value = global::System.DBNull.Value; + } + if ((Original_vSidInfo.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[22].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[23].Value = ((int)(Original_vSidInfo.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[22].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[23].Value = global::System.DBNull.Value; + } + if ((Original_vServerWrite.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[24].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[25].Value = ((int)(Original_vServerWrite.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[24].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[25].Value = global::System.DBNull.Value; + } + if ((Original_jobtype == null)) { + this.Adapter.UpdateCommand.Parameters[26].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[27].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[26].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[27].Value = ((string)(Original_jobtype)); + } + if ((Original_bypasssid == null)) { + this.Adapter.UpdateCommand.Parameters[28].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[29].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[28].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[29].Value = ((string)(Original_bypasssid)); + } + this.Adapter.UpdateCommand.Parameters[30].Value = ((int)(idx)); + global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; + if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.UpdateCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.UpdateCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update( + string MC, + string Title, + string Remark, + global::System.Nullable wdate, + global::System.Nullable vOption, + global::System.Nullable vJobInfo, + global::System.Nullable vSidInfo, + global::System.Nullable vServerWrite, + string jobtype, + string bypasssid, + int Original_idx, + string Original_MC, + string Original_Title, + string Original_Remark, + global::System.Nullable Original_wdate, + global::System.Nullable Original_vOption, + global::System.Nullable Original_vJobInfo, + global::System.Nullable Original_vSidInfo, + global::System.Nullable Original_vServerWrite, + string Original_jobtype, + string Original_bypasssid) { + return this.Update(MC, Title, Remark, wdate, vOption, vJobInfo, vSidInfo, vServerWrite, jobtype, bypasssid, Original_idx, Original_MC, Original_Title, Original_Remark, Original_wdate, Original_vOption, Original_vJobInfo, Original_vSidInfo, Original_vServerWrite, Original_jobtype, Original_bypasssid, Original_idx); + } + } + + /// + ///Represents the connection and commands used to retrieve and save data. + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DataObjectAttribute(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + + ", Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public partial class Component_Reel_CustInfoTableAdapter : global::System.ComponentModel.Component { + + private global::System.Data.SqlClient.SqlDataAdapter _adapter; + + private global::System.Data.SqlClient.SqlConnection _connection; + + private global::System.Data.SqlClient.SqlTransaction _transaction; + + private global::System.Data.SqlClient.SqlCommand[] _commandCollection; + + private bool _clearBeforeFill; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_CustInfoTableAdapter() { + this.ClearBeforeFill = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected internal global::System.Data.SqlClient.SqlDataAdapter Adapter { + get { + if ((this._adapter == null)) { + this.InitAdapter(); + } + return this._adapter; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlConnection Connection { + get { + if ((this._connection == null)) { + this.InitConnection(); + } + return this._connection; + } + set { + this._connection = value; + if ((this.Adapter.InsertCommand != null)) { + this.Adapter.InsertCommand.Connection = value; + } + if ((this.Adapter.DeleteCommand != null)) { + this.Adapter.DeleteCommand.Connection = value; + } + if ((this.Adapter.UpdateCommand != null)) { + this.Adapter.UpdateCommand.Connection = value; + } + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + if ((this.CommandCollection[i] != null)) { + ((global::System.Data.SqlClient.SqlCommand)(this.CommandCollection[i])).Connection = value; + } + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlTransaction Transaction { + get { + return this._transaction; + } + set { + this._transaction = value; + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + this.CommandCollection[i].Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.DeleteCommand != null))) { + this.Adapter.DeleteCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.InsertCommand != null))) { + this.Adapter.InsertCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.UpdateCommand != null))) { + this.Adapter.UpdateCommand.Transaction = this._transaction; + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected global::System.Data.SqlClient.SqlCommand[] CommandCollection { + get { + if ((this._commandCollection == null)) { + this.InitCommandCollection(); + } + return this._commandCollection; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool ClearBeforeFill { + get { + return this._clearBeforeFill; + } + set { + this._clearBeforeFill = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitAdapter() { + this._adapter = new global::System.Data.SqlClient.SqlDataAdapter(); + global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); + tableMapping.SourceTable = "Table"; + tableMapping.DataSetTable = "Component_Reel_CustInfo"; + tableMapping.ColumnMappings.Add("code", "code"); + tableMapping.ColumnMappings.Add("name", "name"); + this._adapter.TableMappings.Add(tableMapping); + this._adapter.DeleteCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.DeleteCommand.Connection = this.Connection; + this._adapter.DeleteCommand.CommandText = "DELETE FROM [Component_Reel_CustInfo] WHERE (([code] = @Original_code) AND ((@IsN" + + "ull_name = 1 AND [name] IS NULL) OR ([name] = @Original_name)))"; + this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_code", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "code", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_name", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "name", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_name", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "name", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.InsertCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.InsertCommand.Connection = this.Connection; + this._adapter.InsertCommand.CommandText = "INSERT INTO [Component_Reel_CustInfo] ([code], [name]) VALUES (@code, @name);\r\nSE" + + "LECT code, name FROM Component_Reel_CustInfo WHERE (code = @code)"; + this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@code", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "code", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@name", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "name", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.UpdateCommand.Connection = this.Connection; + this._adapter.UpdateCommand.CommandText = "UPDATE [Component_Reel_CustInfo] SET [code] = @code, [name] = @name WHERE (([code" + + "] = @Original_code) AND ((@IsNull_name = 1 AND [name] IS NULL) OR ([name] = @Ori" + + "ginal_name)));\r\nSELECT code, name FROM Component_Reel_CustInfo WHERE (code = @co" + + "de)"; + this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@code", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "code", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@name", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "name", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_code", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "code", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_name", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "name", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_name", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "name", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitConnection() { + this._connection = new global::System.Data.SqlClient.SqlConnection(); + this._connection.ConnectionString = global::Project.Properties.Settings.Default.CS; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitCommandCollection() { + this._commandCollection = new global::System.Data.SqlClient.SqlCommand[1]; + this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[0].Connection = this.Connection; + this._commandCollection[0].CommandText = "SELECT code, name\r\nFROM Component_Reel_CustInfo WITH (NOLOCK)"; + this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] + public virtual int Fill(DataSet1.Component_Reel_CustInfoDataTable dataTable) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] + public virtual DataSet1.Component_Reel_CustInfoDataTable GetData() { + this.Adapter.SelectCommand = this.CommandCollection[0]; + DataSet1.Component_Reel_CustInfoDataTable dataTable = new DataSet1.Component_Reel_CustInfoDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1.Component_Reel_CustInfoDataTable dataTable) { + return this.Adapter.Update(dataTable); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1 dataSet) { + return this.Adapter.Update(dataSet, "Component_Reel_CustInfo"); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow dataRow) { + return this.Adapter.Update(new global::System.Data.DataRow[] { + dataRow}); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow[] dataRows) { + return this.Adapter.Update(dataRows); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, true)] + public virtual int Delete(string Original_code, string Original_name) { + if ((Original_code == null)) { + throw new global::System.ArgumentNullException("Original_code"); + } + else { + this.Adapter.DeleteCommand.Parameters[0].Value = ((string)(Original_code)); + } + if ((Original_name == null)) { + this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[2].Value = ((string)(Original_name)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; + if (((this.Adapter.DeleteCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.DeleteCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.DeleteCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.DeleteCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] + public virtual int Insert(string code, string name) { + if ((code == null)) { + throw new global::System.ArgumentNullException("code"); + } + else { + this.Adapter.InsertCommand.Parameters[0].Value = ((string)(code)); + } + if ((name == null)) { + this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[1].Value = ((string)(name)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; + if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.InsertCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.InsertCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update(string code, string name, string Original_code, string Original_name) { + if ((code == null)) { + throw new global::System.ArgumentNullException("code"); + } + else { + this.Adapter.UpdateCommand.Parameters[0].Value = ((string)(code)); + } + if ((name == null)) { + this.Adapter.UpdateCommand.Parameters[1].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[1].Value = ((string)(name)); + } + if ((Original_code == null)) { + throw new global::System.ArgumentNullException("Original_code"); + } + else { + this.Adapter.UpdateCommand.Parameters[2].Value = ((string)(Original_code)); + } + if ((Original_name == null)) { + this.Adapter.UpdateCommand.Parameters[3].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[3].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[4].Value = ((string)(Original_name)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; + if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.UpdateCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.UpdateCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update(string name, string Original_code, string Original_name) { + return this.Update(Original_code, name, Original_code, Original_name); + } + } + + /// + ///Represents the connection and commands used to retrieve and save data. + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DataObjectAttribute(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + + ", Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public partial class ResultSummaryTableAdapter : global::System.ComponentModel.Component { + + private global::System.Data.SqlClient.SqlDataAdapter _adapter; + + private global::System.Data.SqlClient.SqlConnection _connection; + + private global::System.Data.SqlClient.SqlTransaction _transaction; + + private global::System.Data.SqlClient.SqlCommand[] _commandCollection; + + private bool _clearBeforeFill; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public ResultSummaryTableAdapter() { + this.ClearBeforeFill = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected internal global::System.Data.SqlClient.SqlDataAdapter Adapter { + get { + if ((this._adapter == null)) { + this.InitAdapter(); + } + return this._adapter; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlConnection Connection { + get { + if ((this._connection == null)) { + this.InitConnection(); + } + return this._connection; + } + set { + this._connection = value; + if ((this.Adapter.InsertCommand != null)) { + this.Adapter.InsertCommand.Connection = value; + } + if ((this.Adapter.DeleteCommand != null)) { + this.Adapter.DeleteCommand.Connection = value; + } + if ((this.Adapter.UpdateCommand != null)) { + this.Adapter.UpdateCommand.Connection = value; + } + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + if ((this.CommandCollection[i] != null)) { + ((global::System.Data.SqlClient.SqlCommand)(this.CommandCollection[i])).Connection = value; + } + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlTransaction Transaction { + get { + return this._transaction; + } + set { + this._transaction = value; + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + this.CommandCollection[i].Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.DeleteCommand != null))) { + this.Adapter.DeleteCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.InsertCommand != null))) { + this.Adapter.InsertCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.UpdateCommand != null))) { + this.Adapter.UpdateCommand.Transaction = this._transaction; + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected global::System.Data.SqlClient.SqlCommand[] CommandCollection { + get { + if ((this._commandCollection == null)) { + this.InitCommandCollection(); + } + return this._commandCollection; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool ClearBeforeFill { + get { + return this._clearBeforeFill; + } + set { + this._clearBeforeFill = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitAdapter() { + this._adapter = new global::System.Data.SqlClient.SqlDataAdapter(); + global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); + tableMapping.SourceTable = "Table"; + tableMapping.DataSetTable = "ResultSummary"; + tableMapping.ColumnMappings.Add("PARTNO", "PARTNO"); + tableMapping.ColumnMappings.Add("VLOT", "VLOT"); + tableMapping.ColumnMappings.Add("QTY", "QTY"); + tableMapping.ColumnMappings.Add("KPC", "KPC"); + this._adapter.TableMappings.Add(tableMapping); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitConnection() { + this._connection = new global::System.Data.SqlClient.SqlConnection(); + this._connection.ConnectionString = global::Project.Properties.Settings.Default.CS; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitCommandCollection() { + this._commandCollection = new global::System.Data.SqlClient.SqlCommand[1]; + this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[0].Connection = this.Connection; + this._commandCollection[0].CommandText = "SELECT PARTNO, VLOT, COUNT(*) AS QTY, SUM(QTY) / 1000 AS KPC\r\nFROM Component" + + "_Reel_Result\r\nWHERE (ISNULL(MC, \'\') = @mc) AND (PRNATTACH = 1) AND (CONVERT(var" + + "char(10), STIME, 120) BETWEEN @sd AND @ed)\r\nGROUP BY PARTNO, VLOT\r\nORDER BY PART" + + "NO, VLOT"; + this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[0].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@mc", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[0].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@sd", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[0].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@ed", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] + public virtual int Fill(DataSet1.ResultSummaryDataTable dataTable, string mc, string sd, string ed) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((mc == null)) { + throw new global::System.ArgumentNullException("mc"); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(mc)); + } + if ((sd == null)) { + throw new global::System.ArgumentNullException("sd"); + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(sd)); + } + if ((ed == null)) { + throw new global::System.ArgumentNullException("ed"); + } + else { + this.Adapter.SelectCommand.Parameters[2].Value = ((string)(ed)); + } + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] + public virtual DataSet1.ResultSummaryDataTable GetData(string mc, string sd, string ed) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((mc == null)) { + throw new global::System.ArgumentNullException("mc"); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(mc)); + } + if ((sd == null)) { + throw new global::System.ArgumentNullException("sd"); + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(sd)); + } + if ((ed == null)) { + throw new global::System.ArgumentNullException("ed"); + } + else { + this.Adapter.SelectCommand.Parameters[2].Value = ((string)(ed)); + } + DataSet1.ResultSummaryDataTable dataTable = new DataSet1.ResultSummaryDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + } + + /// + ///Represents the connection and commands used to retrieve and save data. + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DataObjectAttribute(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + + ", Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public partial class Component_Reel_Print_InformationTableAdapter : global::System.ComponentModel.Component { + + private global::System.Data.SqlClient.SqlDataAdapter _adapter; + + private global::System.Data.SqlClient.SqlConnection _connection; + + private global::System.Data.SqlClient.SqlTransaction _transaction; + + private global::System.Data.SqlClient.SqlCommand[] _commandCollection; + + private bool _clearBeforeFill; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_Print_InformationTableAdapter() { + this.ClearBeforeFill = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected internal global::System.Data.SqlClient.SqlDataAdapter Adapter { + get { + if ((this._adapter == null)) { + this.InitAdapter(); + } + return this._adapter; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlConnection Connection { + get { + if ((this._connection == null)) { + this.InitConnection(); + } + return this._connection; + } + set { + this._connection = value; + if ((this.Adapter.InsertCommand != null)) { + this.Adapter.InsertCommand.Connection = value; + } + if ((this.Adapter.DeleteCommand != null)) { + this.Adapter.DeleteCommand.Connection = value; + } + if ((this.Adapter.UpdateCommand != null)) { + this.Adapter.UpdateCommand.Connection = value; + } + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + if ((this.CommandCollection[i] != null)) { + ((global::System.Data.SqlClient.SqlCommand)(this.CommandCollection[i])).Connection = value; + } + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlTransaction Transaction { + get { + return this._transaction; + } + set { + this._transaction = value; + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + this.CommandCollection[i].Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.DeleteCommand != null))) { + this.Adapter.DeleteCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.InsertCommand != null))) { + this.Adapter.InsertCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.UpdateCommand != null))) { + this.Adapter.UpdateCommand.Transaction = this._transaction; + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected global::System.Data.SqlClient.SqlCommand[] CommandCollection { + get { + if ((this._commandCollection == null)) { + this.InitCommandCollection(); + } + return this._commandCollection; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool ClearBeforeFill { + get { + return this._clearBeforeFill; + } + set { + this._clearBeforeFill = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitAdapter() { + this._adapter = new global::System.Data.SqlClient.SqlDataAdapter(); + global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); + tableMapping.SourceTable = "Table"; + tableMapping.DataSetTable = "Component_Reel_Print_Information"; + tableMapping.ColumnMappings.Add("idx", "idx"); + tableMapping.ColumnMappings.Add("MC", "MC"); + tableMapping.ColumnMappings.Add("SID", "SID"); + tableMapping.ColumnMappings.Add("PrintPosition", "PrintPosition"); + tableMapping.ColumnMappings.Add("Remark", "Remark"); + tableMapping.ColumnMappings.Add("wdate", "wdate"); + this._adapter.TableMappings.Add(tableMapping); + this._adapter.DeleteCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.DeleteCommand.Connection = this.Connection; + this._adapter.DeleteCommand.CommandText = @"DELETE FROM [Component_Reel_Print_Information] WHERE (([idx] = @Original_idx) AND ((@IsNull_MC = 1 AND [MC] IS NULL) OR ([MC] = @Original_MC)) AND ([SID] = @Original_SID) AND ((@IsNull_PrintPosition = 1 AND [PrintPosition] IS NULL) OR ([PrintPosition] = @Original_PrintPosition)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_wdate = 1 AND [wdate] IS NULL) OR ([wdate] = @Original_wdate)))"; + this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_idx", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_MC", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_MC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_SID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_PrintPosition", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PrintPosition", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PrintPosition", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PrintPosition", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Remark", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_wdate", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.InsertCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.InsertCommand.Connection = this.Connection; + this._adapter.InsertCommand.CommandText = @"INSERT INTO [Component_Reel_Print_Information] ([MC], [SID], [PrintPosition], [Remark], [wdate]) VALUES (@MC, @SID, @PrintPosition, @Remark, @wdate); +SELECT idx, MC, SID, PrintPosition, Remark, wdate FROM Component_Reel_Print_Information WHERE (idx = SCOPE_IDENTITY())"; + this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@MC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PrintPosition", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PrintPosition", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.UpdateCommand.Connection = this.Connection; + this._adapter.UpdateCommand.CommandText = @"UPDATE [Component_Reel_Print_Information] SET [MC] = @MC, [SID] = @SID, [PrintPosition] = @PrintPosition, [Remark] = @Remark, [wdate] = @wdate WHERE (([idx] = @Original_idx) AND ((@IsNull_MC = 1 AND [MC] IS NULL) OR ([MC] = @Original_MC)) AND ([SID] = @Original_SID) AND ((@IsNull_PrintPosition = 1 AND [PrintPosition] IS NULL) OR ([PrintPosition] = @Original_PrintPosition)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_wdate = 1 AND [wdate] IS NULL) OR ([wdate] = @Original_wdate))); +SELECT idx, MC, SID, PrintPosition, Remark, wdate FROM Component_Reel_Print_Information WHERE (idx = @idx)"; + this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@MC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PrintPosition", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PrintPosition", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_idx", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_MC", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_MC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_SID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_PrintPosition", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PrintPosition", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PrintPosition", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PrintPosition", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Remark", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_wdate", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@idx", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitConnection() { + this._connection = new global::System.Data.SqlClient.SqlConnection(); + this._connection.ConnectionString = global::Project.Properties.Settings.Default.CS; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitCommandCollection() { + this._commandCollection = new global::System.Data.SqlClient.SqlCommand[2]; + this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[0].Connection = this.Connection; + this._commandCollection[0].CommandText = "SELECT idx, MC, SID, PrintPosition, Remark, wdate\r\nFROM Component_Reel_Print" + + "_Information WITH (NOLOCK)\r\nWHERE (MC = @mc)"; + this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[0].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@mc", global::System.Data.SqlDbType.VarChar, 20, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[1] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[1].Connection = this.Connection; + this._commandCollection[1].CommandText = "SELECT idx, MC, SID, PrintPosition, Remark, wdate\r\nFROM Component_Reel_Print" + + "_Information WITH (NOLOCK)\r\nWHERE (MC = @mc) AND (SID = @sid)"; + this._commandCollection[1].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[1].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@mc", global::System.Data.SqlDbType.VarChar, 20, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[1].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@sid", global::System.Data.SqlDbType.VarChar, 50, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] + public virtual int Fill(DataSet1.Component_Reel_Print_InformationDataTable dataTable, string mc) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((mc == null)) { + this.Adapter.SelectCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(mc)); + } + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] + public virtual DataSet1.Component_Reel_Print_InformationDataTable GetData(string mc) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((mc == null)) { + this.Adapter.SelectCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(mc)); + } + DataSet1.Component_Reel_Print_InformationDataTable dataTable = new DataSet1.Component_Reel_Print_InformationDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, false)] + public virtual int FillBySID(DataSet1.Component_Reel_Print_InformationDataTable dataTable, string mc, string sid) { + this.Adapter.SelectCommand = this.CommandCollection[1]; + if ((mc == null)) { + this.Adapter.SelectCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(mc)); + } + if ((sid == null)) { + throw new global::System.ArgumentNullException("sid"); + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(sid)); + } + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, false)] + public virtual DataSet1.Component_Reel_Print_InformationDataTable GetBySID(string mc, string sid) { + this.Adapter.SelectCommand = this.CommandCollection[1]; + if ((mc == null)) { + this.Adapter.SelectCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(mc)); + } + if ((sid == null)) { + throw new global::System.ArgumentNullException("sid"); + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(sid)); + } + DataSet1.Component_Reel_Print_InformationDataTable dataTable = new DataSet1.Component_Reel_Print_InformationDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1.Component_Reel_Print_InformationDataTable dataTable) { + return this.Adapter.Update(dataTable); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1 dataSet) { + return this.Adapter.Update(dataSet, "Component_Reel_Print_Information"); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow dataRow) { + return this.Adapter.Update(new global::System.Data.DataRow[] { + dataRow}); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow[] dataRows) { + return this.Adapter.Update(dataRows); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, true)] + public virtual int Delete(int Original_idx, string Original_MC, string Original_SID, string Original_PrintPosition, string Original_Remark, global::System.Nullable Original_wdate) { + this.Adapter.DeleteCommand.Parameters[0].Value = ((int)(Original_idx)); + if ((Original_MC == null)) { + this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[2].Value = ((string)(Original_MC)); + } + if ((Original_SID == null)) { + throw new global::System.ArgumentNullException("Original_SID"); + } + else { + this.Adapter.DeleteCommand.Parameters[3].Value = ((string)(Original_SID)); + } + if ((Original_PrintPosition == null)) { + this.Adapter.DeleteCommand.Parameters[4].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[5].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[4].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[5].Value = ((string)(Original_PrintPosition)); + } + if ((Original_Remark == null)) { + this.Adapter.DeleteCommand.Parameters[6].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[7].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[6].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[7].Value = ((string)(Original_Remark)); + } + if ((Original_wdate.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[8].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[9].Value = ((System.DateTime)(Original_wdate.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[8].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[9].Value = global::System.DBNull.Value; + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; + if (((this.Adapter.DeleteCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.DeleteCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.DeleteCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.DeleteCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] + public virtual int Insert(string MC, string SID, string PrintPosition, string Remark, global::System.Nullable wdate) { + if ((MC == null)) { + this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[0].Value = ((string)(MC)); + } + if ((SID == null)) { + throw new global::System.ArgumentNullException("SID"); + } + else { + this.Adapter.InsertCommand.Parameters[1].Value = ((string)(SID)); + } + if ((PrintPosition == null)) { + this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[2].Value = ((string)(PrintPosition)); + } + if ((Remark == null)) { + this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[3].Value = ((string)(Remark)); + } + if ((wdate.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[4].Value = ((System.DateTime)(wdate.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; + if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.InsertCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.InsertCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update(string MC, string SID, string PrintPosition, string Remark, global::System.Nullable wdate, int Original_idx, string Original_MC, string Original_SID, string Original_PrintPosition, string Original_Remark, global::System.Nullable Original_wdate, int idx) { + if ((MC == null)) { + this.Adapter.UpdateCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[0].Value = ((string)(MC)); + } + if ((SID == null)) { + throw new global::System.ArgumentNullException("SID"); + } + else { + this.Adapter.UpdateCommand.Parameters[1].Value = ((string)(SID)); + } + if ((PrintPosition == null)) { + this.Adapter.UpdateCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[2].Value = ((string)(PrintPosition)); + } + if ((Remark == null)) { + this.Adapter.UpdateCommand.Parameters[3].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[3].Value = ((string)(Remark)); + } + if ((wdate.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[4].Value = ((System.DateTime)(wdate.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[4].Value = global::System.DBNull.Value; + } + this.Adapter.UpdateCommand.Parameters[5].Value = ((int)(Original_idx)); + if ((Original_MC == null)) { + this.Adapter.UpdateCommand.Parameters[6].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[7].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[6].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[7].Value = ((string)(Original_MC)); + } + if ((Original_SID == null)) { + throw new global::System.ArgumentNullException("Original_SID"); + } + else { + this.Adapter.UpdateCommand.Parameters[8].Value = ((string)(Original_SID)); + } + if ((Original_PrintPosition == null)) { + this.Adapter.UpdateCommand.Parameters[9].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[10].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[9].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[10].Value = ((string)(Original_PrintPosition)); + } + if ((Original_Remark == null)) { + this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[12].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[12].Value = ((string)(Original_Remark)); + } + if ((Original_wdate.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[13].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[14].Value = ((System.DateTime)(Original_wdate.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[13].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[14].Value = global::System.DBNull.Value; + } + this.Adapter.UpdateCommand.Parameters[15].Value = ((int)(idx)); + global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; + if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.UpdateCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.UpdateCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update(string MC, string SID, string PrintPosition, string Remark, global::System.Nullable wdate, int Original_idx, string Original_MC, string Original_SID, string Original_PrintPosition, string Original_Remark, global::System.Nullable Original_wdate) { + return this.Update(MC, SID, PrintPosition, Remark, wdate, Original_idx, Original_MC, Original_SID, Original_PrintPosition, Original_Remark, Original_wdate, Original_idx); + } + } + + /// + ///Represents the connection and commands used to retrieve and save data. + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DataObjectAttribute(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + + ", Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public partial class Component_Reel_PrintRegExRuleTableAdapter : global::System.ComponentModel.Component { + + private global::System.Data.SqlClient.SqlDataAdapter _adapter; + + private global::System.Data.SqlClient.SqlConnection _connection; + + private global::System.Data.SqlClient.SqlTransaction _transaction; + + private global::System.Data.SqlClient.SqlCommand[] _commandCollection; + + private bool _clearBeforeFill; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_PrintRegExRuleTableAdapter() { + this.ClearBeforeFill = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected internal global::System.Data.SqlClient.SqlDataAdapter Adapter { + get { + if ((this._adapter == null)) { + this.InitAdapter(); + } + return this._adapter; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlConnection Connection { + get { + if ((this._connection == null)) { + this.InitConnection(); + } + return this._connection; + } + set { + this._connection = value; + if ((this.Adapter.InsertCommand != null)) { + this.Adapter.InsertCommand.Connection = value; + } + if ((this.Adapter.DeleteCommand != null)) { + this.Adapter.DeleteCommand.Connection = value; + } + if ((this.Adapter.UpdateCommand != null)) { + this.Adapter.UpdateCommand.Connection = value; + } + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + if ((this.CommandCollection[i] != null)) { + ((global::System.Data.SqlClient.SqlCommand)(this.CommandCollection[i])).Connection = value; + } + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlTransaction Transaction { + get { + return this._transaction; + } + set { + this._transaction = value; + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + this.CommandCollection[i].Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.DeleteCommand != null))) { + this.Adapter.DeleteCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.InsertCommand != null))) { + this.Adapter.InsertCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.UpdateCommand != null))) { + this.Adapter.UpdateCommand.Transaction = this._transaction; + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected global::System.Data.SqlClient.SqlCommand[] CommandCollection { + get { + if ((this._commandCollection == null)) { + this.InitCommandCollection(); + } + return this._commandCollection; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool ClearBeforeFill { + get { + return this._clearBeforeFill; + } + set { + this._clearBeforeFill = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitAdapter() { + this._adapter = new global::System.Data.SqlClient.SqlDataAdapter(); + global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); + tableMapping.SourceTable = "Table"; + tableMapping.DataSetTable = "Component_Reel_PrintRegExRule"; + tableMapping.ColumnMappings.Add("Id", "Id"); + tableMapping.ColumnMappings.Add("Seq", "Seq"); + tableMapping.ColumnMappings.Add("CustCode", "CustCode"); + tableMapping.ColumnMappings.Add("Description", "Description"); + tableMapping.ColumnMappings.Add("Symbol", "Symbol"); + tableMapping.ColumnMappings.Add("Pattern", "Pattern"); + tableMapping.ColumnMappings.Add("Groups", "Groups"); + tableMapping.ColumnMappings.Add("IsEnable", "IsEnable"); + tableMapping.ColumnMappings.Add("IsTrust", "IsTrust"); + tableMapping.ColumnMappings.Add("IsAmkStd", "IsAmkStd"); + tableMapping.ColumnMappings.Add("IsIgnore", "IsIgnore"); + this._adapter.TableMappings.Add(tableMapping); + this._adapter.DeleteCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.DeleteCommand.Connection = this.Connection; + this._adapter.DeleteCommand.CommandText = @"DELETE FROM [Component_Reel_PrintRegExRule] WHERE (([Id] = @Original_Id) AND ((@IsNull_Seq = 1 AND [Seq] IS NULL) OR ([Seq] = @Original_Seq)) AND ((@IsNull_CustCode = 1 AND [CustCode] IS NULL) OR ([CustCode] = @Original_CustCode)) AND ((@IsNull_Description = 1 AND [Description] IS NULL) OR ([Description] = @Original_Description)) AND ((@IsNull_Symbol = 1 AND [Symbol] IS NULL) OR ([Symbol] = @Original_Symbol)) AND ((@IsNull_Groups = 1 AND [Groups] IS NULL) OR ([Groups] = @Original_Groups)) AND ((@IsNull_IsEnable = 1 AND [IsEnable] IS NULL) OR ([IsEnable] = @Original_IsEnable)) AND ((@IsNull_IsTrust = 1 AND [IsTrust] IS NULL) OR ([IsTrust] = @Original_IsTrust)) AND ((@IsNull_IsAmkStd = 1 AND [IsAmkStd] IS NULL) OR ([IsAmkStd] = @Original_IsAmkStd)) AND ((@IsNull_IsIgnore = 1 AND [IsIgnore] IS NULL) OR ([IsIgnore] = @Original_IsIgnore)))"; + this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Id", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Id", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Seq", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Seq", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Seq", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Seq", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_CustCode", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CustCode", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Description", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Description", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Description", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Description", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Symbol", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Symbol", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Symbol", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Symbol", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Groups", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Groups", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Groups", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Groups", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_IsEnable", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsEnable", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsEnable", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsEnable", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_IsTrust", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsTrust", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsTrust", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsTrust", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_IsAmkStd", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsAmkStd", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsAmkStd", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsAmkStd", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_IsIgnore", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsIgnore", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsIgnore", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsIgnore", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.InsertCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.InsertCommand.Connection = this.Connection; + this._adapter.InsertCommand.CommandText = @"INSERT INTO [Component_Reel_PrintRegExRule] ([Seq], [CustCode], [Description], [Symbol], [Pattern], [Groups], [IsEnable], [IsTrust], [IsAmkStd], [IsIgnore]) VALUES (@Seq, @CustCode, @Description, @Symbol, @Pattern, @Groups, @IsEnable, @IsTrust, @IsAmkStd, @IsIgnore); +SELECT Id, Seq, CustCode, Description, Symbol, Pattern, Groups, IsEnable, IsTrust, IsAmkStd, IsIgnore FROM Component_Reel_PrintRegExRule WHERE (Id = SCOPE_IDENTITY())"; + this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Seq", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Seq", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CustCode", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Description", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Description", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Symbol", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Symbol", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Pattern", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Pattern", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Groups", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Groups", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsEnable", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsEnable", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsTrust", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsTrust", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsAmkStd", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsAmkStd", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsIgnore", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsIgnore", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.UpdateCommand.Connection = this.Connection; + this._adapter.UpdateCommand.CommandText = @"UPDATE [Component_Reel_PrintRegExRule] SET [Seq] = @Seq, [CustCode] = @CustCode, [Description] = @Description, [Symbol] = @Symbol, [Pattern] = @Pattern, [Groups] = @Groups, [IsEnable] = @IsEnable, [IsTrust] = @IsTrust, [IsAmkStd] = @IsAmkStd, [IsIgnore] = @IsIgnore WHERE (([Id] = @Original_Id) AND ((@IsNull_Seq = 1 AND [Seq] IS NULL) OR ([Seq] = @Original_Seq)) AND ((@IsNull_CustCode = 1 AND [CustCode] IS NULL) OR ([CustCode] = @Original_CustCode)) AND ((@IsNull_Description = 1 AND [Description] IS NULL) OR ([Description] = @Original_Description)) AND ((@IsNull_Symbol = 1 AND [Symbol] IS NULL) OR ([Symbol] = @Original_Symbol)) AND ((@IsNull_Groups = 1 AND [Groups] IS NULL) OR ([Groups] = @Original_Groups)) AND ((@IsNull_IsEnable = 1 AND [IsEnable] IS NULL) OR ([IsEnable] = @Original_IsEnable)) AND ((@IsNull_IsTrust = 1 AND [IsTrust] IS NULL) OR ([IsTrust] = @Original_IsTrust)) AND ((@IsNull_IsAmkStd = 1 AND [IsAmkStd] IS NULL) OR ([IsAmkStd] = @Original_IsAmkStd)) AND ((@IsNull_IsIgnore = 1 AND [IsIgnore] IS NULL) OR ([IsIgnore] = @Original_IsIgnore))); +SELECT Id, Seq, CustCode, Description, Symbol, Pattern, Groups, IsEnable, IsTrust, IsAmkStd, IsIgnore FROM Component_Reel_PrintRegExRule WHERE (Id = @Id)"; + this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Seq", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Seq", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CustCode", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Description", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Description", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Symbol", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Symbol", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Pattern", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Pattern", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Groups", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Groups", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsEnable", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsEnable", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsTrust", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsTrust", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsAmkStd", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsAmkStd", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsIgnore", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsIgnore", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Id", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Id", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Seq", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Seq", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Seq", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Seq", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_CustCode", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CustCode", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Description", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Description", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Description", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Description", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Symbol", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Symbol", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Symbol", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Symbol", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Groups", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Groups", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Groups", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Groups", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_IsEnable", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsEnable", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsEnable", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsEnable", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_IsTrust", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsTrust", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsTrust", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsTrust", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_IsAmkStd", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsAmkStd", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsAmkStd", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsAmkStd", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_IsIgnore", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsIgnore", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsIgnore", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsIgnore", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Id", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 0, 0, "Id", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitConnection() { + this._connection = new global::System.Data.SqlClient.SqlConnection(); + this._connection.ConnectionString = global::Project.Properties.Settings.Default.CS; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitCommandCollection() { + this._commandCollection = new global::System.Data.SqlClient.SqlCommand[1]; + this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[0].Connection = this.Connection; + this._commandCollection[0].CommandText = "SELECT Component_Reel_PrintRegExRule.*\r\nFROM Component_Reel_PrintRegExRule"; + this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] + public virtual int Fill(DataSet1.Component_Reel_PrintRegExRuleDataTable dataTable) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] + public virtual DataSet1.Component_Reel_PrintRegExRuleDataTable GetData() { + this.Adapter.SelectCommand = this.CommandCollection[0]; + DataSet1.Component_Reel_PrintRegExRuleDataTable dataTable = new DataSet1.Component_Reel_PrintRegExRuleDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1.Component_Reel_PrintRegExRuleDataTable dataTable) { + return this.Adapter.Update(dataTable); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1 dataSet) { + return this.Adapter.Update(dataSet, "Component_Reel_PrintRegExRule"); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow dataRow) { + return this.Adapter.Update(new global::System.Data.DataRow[] { + dataRow}); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow[] dataRows) { + return this.Adapter.Update(dataRows); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, true)] + public virtual int Delete(int Original_Id, global::System.Nullable Original_Seq, string Original_CustCode, string Original_Description, string Original_Symbol, string Original_Groups, global::System.Nullable Original_IsEnable, global::System.Nullable Original_IsTrust, global::System.Nullable Original_IsAmkStd, global::System.Nullable Original_IsIgnore) { + this.Adapter.DeleteCommand.Parameters[0].Value = ((int)(Original_Id)); + if ((Original_Seq.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[2].Value = ((int)(Original_Seq.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[2].Value = global::System.DBNull.Value; + } + if ((Original_CustCode == null)) { + this.Adapter.DeleteCommand.Parameters[3].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[3].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[4].Value = ((string)(Original_CustCode)); + } + if ((Original_Description == null)) { + this.Adapter.DeleteCommand.Parameters[5].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[6].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[5].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[6].Value = ((string)(Original_Description)); + } + if ((Original_Symbol == null)) { + this.Adapter.DeleteCommand.Parameters[7].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[8].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[7].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[8].Value = ((string)(Original_Symbol)); + } + if ((Original_Groups == null)) { + this.Adapter.DeleteCommand.Parameters[9].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[10].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[9].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[10].Value = ((string)(Original_Groups)); + } + if ((Original_IsEnable.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[11].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[12].Value = ((bool)(Original_IsEnable.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[11].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[12].Value = global::System.DBNull.Value; + } + if ((Original_IsTrust.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[13].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[14].Value = ((bool)(Original_IsTrust.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[13].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[14].Value = global::System.DBNull.Value; + } + if ((Original_IsAmkStd.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[15].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[16].Value = ((bool)(Original_IsAmkStd.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[15].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[16].Value = global::System.DBNull.Value; + } + if ((Original_IsIgnore.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[17].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[18].Value = ((bool)(Original_IsIgnore.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[17].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[18].Value = global::System.DBNull.Value; + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; + if (((this.Adapter.DeleteCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.DeleteCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.DeleteCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.DeleteCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] + public virtual int Insert(global::System.Nullable Seq, string CustCode, string Description, string Symbol, string Pattern, string Groups, global::System.Nullable IsEnable, global::System.Nullable IsTrust, global::System.Nullable IsAmkStd, global::System.Nullable IsIgnore) { + if ((Seq.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[0].Value = ((int)(Seq.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; + } + if ((CustCode == null)) { + this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[1].Value = ((string)(CustCode)); + } + if ((Description == null)) { + this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[2].Value = ((string)(Description)); + } + if ((Symbol == null)) { + this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[3].Value = ((string)(Symbol)); + } + if ((Pattern == null)) { + this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[4].Value = ((string)(Pattern)); + } + if ((Groups == null)) { + this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[5].Value = ((string)(Groups)); + } + if ((IsEnable.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[6].Value = ((bool)(IsEnable.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[6].Value = global::System.DBNull.Value; + } + if ((IsTrust.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[7].Value = ((bool)(IsTrust.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[7].Value = global::System.DBNull.Value; + } + if ((IsAmkStd.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[8].Value = ((bool)(IsAmkStd.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[8].Value = global::System.DBNull.Value; + } + if ((IsIgnore.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[9].Value = ((bool)(IsIgnore.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[9].Value = global::System.DBNull.Value; + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; + if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.InsertCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.InsertCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update( + global::System.Nullable Seq, + string CustCode, + string Description, + string Symbol, + string Pattern, + string Groups, + global::System.Nullable IsEnable, + global::System.Nullable IsTrust, + global::System.Nullable IsAmkStd, + global::System.Nullable IsIgnore, + int Original_Id, + global::System.Nullable Original_Seq, + string Original_CustCode, + string Original_Description, + string Original_Symbol, + string Original_Groups, + global::System.Nullable Original_IsEnable, + global::System.Nullable Original_IsTrust, + global::System.Nullable Original_IsAmkStd, + global::System.Nullable Original_IsIgnore, + int Id) { + if ((Seq.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[0].Value = ((int)(Seq.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[0].Value = global::System.DBNull.Value; + } + if ((CustCode == null)) { + this.Adapter.UpdateCommand.Parameters[1].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[1].Value = ((string)(CustCode)); + } + if ((Description == null)) { + this.Adapter.UpdateCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[2].Value = ((string)(Description)); + } + if ((Symbol == null)) { + this.Adapter.UpdateCommand.Parameters[3].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[3].Value = ((string)(Symbol)); + } + if ((Pattern == null)) { + this.Adapter.UpdateCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[4].Value = ((string)(Pattern)); + } + if ((Groups == null)) { + this.Adapter.UpdateCommand.Parameters[5].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[5].Value = ((string)(Groups)); + } + if ((IsEnable.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[6].Value = ((bool)(IsEnable.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[6].Value = global::System.DBNull.Value; + } + if ((IsTrust.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[7].Value = ((bool)(IsTrust.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[7].Value = global::System.DBNull.Value; + } + if ((IsAmkStd.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[8].Value = ((bool)(IsAmkStd.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[8].Value = global::System.DBNull.Value; + } + if ((IsIgnore.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[9].Value = ((bool)(IsIgnore.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[9].Value = global::System.DBNull.Value; + } + this.Adapter.UpdateCommand.Parameters[10].Value = ((int)(Original_Id)); + if ((Original_Seq.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[12].Value = ((int)(Original_Seq.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[12].Value = global::System.DBNull.Value; + } + if ((Original_CustCode == null)) { + this.Adapter.UpdateCommand.Parameters[13].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[14].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[13].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[14].Value = ((string)(Original_CustCode)); + } + if ((Original_Description == null)) { + this.Adapter.UpdateCommand.Parameters[15].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[16].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[15].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[16].Value = ((string)(Original_Description)); + } + if ((Original_Symbol == null)) { + this.Adapter.UpdateCommand.Parameters[17].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[18].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[17].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[18].Value = ((string)(Original_Symbol)); + } + if ((Original_Groups == null)) { + this.Adapter.UpdateCommand.Parameters[19].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[20].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[19].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[20].Value = ((string)(Original_Groups)); + } + if ((Original_IsEnable.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[21].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[22].Value = ((bool)(Original_IsEnable.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[21].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[22].Value = global::System.DBNull.Value; + } + if ((Original_IsTrust.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[23].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[24].Value = ((bool)(Original_IsTrust.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[23].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[24].Value = global::System.DBNull.Value; + } + if ((Original_IsAmkStd.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[25].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[26].Value = ((bool)(Original_IsAmkStd.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[25].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[26].Value = global::System.DBNull.Value; + } + if ((Original_IsIgnore.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[27].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[28].Value = ((bool)(Original_IsIgnore.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[27].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[28].Value = global::System.DBNull.Value; + } + this.Adapter.UpdateCommand.Parameters[29].Value = ((int)(Id)); + global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; + if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.UpdateCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.UpdateCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update( + global::System.Nullable Seq, + string CustCode, + string Description, + string Symbol, + string Pattern, + string Groups, + global::System.Nullable IsEnable, + global::System.Nullable IsTrust, + global::System.Nullable IsAmkStd, + global::System.Nullable IsIgnore, + int Original_Id, + global::System.Nullable Original_Seq, + string Original_CustCode, + string Original_Description, + string Original_Symbol, + string Original_Groups, + global::System.Nullable Original_IsEnable, + global::System.Nullable Original_IsTrust, + global::System.Nullable Original_IsAmkStd, + global::System.Nullable Original_IsIgnore) { + return this.Update(Seq, CustCode, Description, Symbol, Pattern, Groups, IsEnable, IsTrust, IsAmkStd, IsIgnore, Original_Id, Original_Seq, Original_CustCode, Original_Description, Original_Symbol, Original_Groups, Original_IsEnable, Original_IsTrust, Original_IsAmkStd, Original_IsIgnore, Original_Id); + } + } + + /// + ///Represents the connection and commands used to retrieve and save data. + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DataObjectAttribute(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + + ", Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public partial class SidinfoCustGroupTableAdapter : global::System.ComponentModel.Component { + + private global::System.Data.SqlClient.SqlDataAdapter _adapter; + + private global::System.Data.SqlClient.SqlConnection _connection; + + private global::System.Data.SqlClient.SqlTransaction _transaction; + + private global::System.Data.SqlClient.SqlCommand[] _commandCollection; + + private bool _clearBeforeFill; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public SidinfoCustGroupTableAdapter() { + this.ClearBeforeFill = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected internal global::System.Data.SqlClient.SqlDataAdapter Adapter { + get { + if ((this._adapter == null)) { + this.InitAdapter(); + } + return this._adapter; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlConnection Connection { + get { + if ((this._connection == null)) { + this.InitConnection(); + } + return this._connection; + } + set { + this._connection = value; + if ((this.Adapter.InsertCommand != null)) { + this.Adapter.InsertCommand.Connection = value; + } + if ((this.Adapter.DeleteCommand != null)) { + this.Adapter.DeleteCommand.Connection = value; + } + if ((this.Adapter.UpdateCommand != null)) { + this.Adapter.UpdateCommand.Connection = value; + } + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + if ((this.CommandCollection[i] != null)) { + ((global::System.Data.SqlClient.SqlCommand)(this.CommandCollection[i])).Connection = value; + } + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlTransaction Transaction { + get { + return this._transaction; + } + set { + this._transaction = value; + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + this.CommandCollection[i].Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.DeleteCommand != null))) { + this.Adapter.DeleteCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.InsertCommand != null))) { + this.Adapter.InsertCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.UpdateCommand != null))) { + this.Adapter.UpdateCommand.Transaction = this._transaction; + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected global::System.Data.SqlClient.SqlCommand[] CommandCollection { + get { + if ((this._commandCollection == null)) { + this.InitCommandCollection(); + } + return this._commandCollection; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool ClearBeforeFill { + get { + return this._clearBeforeFill; + } + set { + this._clearBeforeFill = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitAdapter() { + this._adapter = new global::System.Data.SqlClient.SqlDataAdapter(); + global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); + tableMapping.SourceTable = "Table"; + tableMapping.DataSetTable = "SidinfoCustGroup"; + tableMapping.ColumnMappings.Add("CustCode", "CustCode"); + this._adapter.TableMappings.Add(tableMapping); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitConnection() { + this._connection = new global::System.Data.SqlClient.SqlConnection(); + this._connection.ConnectionString = global::Project.Properties.Settings.Default.CS; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitCommandCollection() { + this._commandCollection = new global::System.Data.SqlClient.SqlCommand[1]; + this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[0].Connection = this.Connection; + this._commandCollection[0].CommandText = "SELECT CustCode\r\nFROM Component_Reel_SID_Information WITH (NOLOCK)\r\nWHERE (" + + "MC = @mcname)\r\nGROUP BY CustCode\r\nORDER BY CustCode"; + this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[0].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@mcname", global::System.Data.SqlDbType.VarChar, 20, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] + public virtual int Fill(DataSet1.SidinfoCustGroupDataTable dataTable, string mcname) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((mcname == null)) { + this.Adapter.SelectCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(mcname)); + } + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] + public virtual DataSet1.SidinfoCustGroupDataTable GetData(string mcname) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((mcname == null)) { + this.Adapter.SelectCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(mcname)); + } + DataSet1.SidinfoCustGroupDataTable dataTable = new DataSet1.SidinfoCustGroupDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + } + + /// + ///Represents the connection and commands used to retrieve and save data. + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DataObjectAttribute(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + + ", Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public partial class QueriesTableAdapter : global::System.ComponentModel.Component { + + private global::System.Data.IDbCommand[] _commandCollection; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected global::System.Data.IDbCommand[] CommandCollection { + get { + if ((this._commandCollection == null)) { + this.InitCommandCollection(); + } + return this._commandCollection; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitCommandCollection() { + this._commandCollection = new global::System.Data.IDbCommand[6]; + this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); + ((global::System.Data.SqlClient.SqlCommand)(this._commandCollection[0])).Connection = new global::System.Data.SqlClient.SqlConnection(global::Project.Properties.Settings.Default.CS); + ((global::System.Data.SqlClient.SqlCommand)(this._commandCollection[0])).CommandText = "select isnull(name,\'\') \r\nfrom [Component_Reel_CustInfo]\r\nwhere code = @code"; + ((global::System.Data.SqlClient.SqlCommand)(this._commandCollection[0])).CommandType = global::System.Data.CommandType.Text; + ((global::System.Data.SqlClient.SqlCommand)(this._commandCollection[0])).Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@code", global::System.Data.SqlDbType.VarChar, 10, global::System.Data.ParameterDirection.Input, 0, 0, "code", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[1] = new global::System.Data.SqlClient.SqlCommand(); + ((global::System.Data.SqlClient.SqlCommand)(this._commandCollection[1])).Connection = new global::System.Data.SqlClient.SqlConnection(global::Project.Properties.Settings.Default.CS); + ((global::System.Data.SqlClient.SqlCommand)(this._commandCollection[1])).CommandText = "UPDATE [Component_Reel_CustInfo] set name = @newname\r\nwhere code = @custcode"; + ((global::System.Data.SqlClient.SqlCommand)(this._commandCollection[1])).CommandType = global::System.Data.CommandType.Text; + ((global::System.Data.SqlClient.SqlCommand)(this._commandCollection[1])).Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@newname", global::System.Data.SqlDbType.VarChar, 100, global::System.Data.ParameterDirection.Input, 0, 0, "name", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + ((global::System.Data.SqlClient.SqlCommand)(this._commandCollection[1])).Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@custcode", global::System.Data.SqlDbType.VarChar, 10, global::System.Data.ParameterDirection.Input, 0, 0, "code", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._commandCollection[2] = new global::System.Data.SqlClient.SqlCommand(); + ((global::System.Data.SqlClient.SqlCommand)(this._commandCollection[2])).Connection = new global::System.Data.SqlClient.SqlConnection(global::Project.Properties.Settings.Default.CS); + ((global::System.Data.SqlClient.SqlCommand)(this._commandCollection[2])).CommandText = "select isnull(sid,\'\') \r\nfrom Component_Reel_SID_Information\r\nwhere custcode = @cu" + + "stcode and partno = @partno"; + ((global::System.Data.SqlClient.SqlCommand)(this._commandCollection[2])).CommandType = global::System.Data.CommandType.Text; + ((global::System.Data.SqlClient.SqlCommand)(this._commandCollection[2])).Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@custcode", global::System.Data.SqlDbType.VarChar, 10, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + ((global::System.Data.SqlClient.SqlCommand)(this._commandCollection[2])).Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@partno", global::System.Data.SqlDbType.VarChar, 100, global::System.Data.ParameterDirection.Input, 0, 0, "PartNo", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[3] = new global::System.Data.SqlClient.SqlCommand(); + ((global::System.Data.SqlClient.SqlCommand)(this._commandCollection[3])).Connection = new global::System.Data.SqlClient.SqlConnection(global::Project.Properties.Settings.Default.CS); + ((global::System.Data.SqlClient.SqlCommand)(this._commandCollection[3])).CommandText = "SELECT TOP (1) ISNULL(VLOT, \'\') AS Expr1\r\nFROM Component_Reel_Result\r\nWHERE " + + " (SID = @isd)\r\nORDER BY wdate DESC"; + ((global::System.Data.SqlClient.SqlCommand)(this._commandCollection[3])).CommandType = global::System.Data.CommandType.Text; + ((global::System.Data.SqlClient.SqlCommand)(this._commandCollection[3])).Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@isd", global::System.Data.SqlDbType.VarChar, 20, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[4] = new global::System.Data.SqlClient.SqlCommand(); + ((global::System.Data.SqlClient.SqlCommand)(this._commandCollection[4])).Connection = new global::System.Data.SqlClient.SqlConnection(global::Project.Properties.Settings.Default.CS); + ((global::System.Data.SqlClient.SqlCommand)(this._commandCollection[4])).CommandText = "SELECT count(*) FROM Component_Reel_SID_Information WHERE (MC = @mcname) and sid" + + " = @sid"; + ((global::System.Data.SqlClient.SqlCommand)(this._commandCollection[4])).CommandType = global::System.Data.CommandType.Text; + ((global::System.Data.SqlClient.SqlCommand)(this._commandCollection[4])).Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@mcname", global::System.Data.SqlDbType.VarChar, 20, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + ((global::System.Data.SqlClient.SqlCommand)(this._commandCollection[4])).Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@sid", global::System.Data.SqlDbType.VarChar, 50, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[5] = new global::System.Data.SqlClient.SqlCommand(); + ((global::System.Data.SqlClient.SqlCommand)(this._commandCollection[5])).Connection = new global::System.Data.SqlClient.SqlConnection(global::Project.Properties.Settings.Default.CS); + ((global::System.Data.SqlClient.SqlCommand)(this._commandCollection[5])).CommandText = "SELECT COUNT(*) AS Expr1\r\nFROM Component_Reel_Result\r\nWHERE (iNBOUND = \'OK\'" + + ") AND (STIME >= @stime) AND (SID = @sid) AND (BATCH = @batch)"; + ((global::System.Data.SqlClient.SqlCommand)(this._commandCollection[5])).CommandType = global::System.Data.CommandType.Text; + ((global::System.Data.SqlClient.SqlCommand)(this._commandCollection[5])).Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@stime", global::System.Data.SqlDbType.DateTime, 8, global::System.Data.ParameterDirection.Input, 0, 0, "STIME", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + ((global::System.Data.SqlClient.SqlCommand)(this._commandCollection[5])).Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@sid", global::System.Data.SqlDbType.VarChar, 20, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + ((global::System.Data.SqlClient.SqlCommand)(this._commandCollection[5])).Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@batch", global::System.Data.SqlDbType.VarChar, 100, global::System.Data.ParameterDirection.Input, 0, 0, "BATCH", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual string GetCustName(string code) { + global::System.Data.SqlClient.SqlCommand command = ((global::System.Data.SqlClient.SqlCommand)(this.CommandCollection[0])); + if ((code == null)) { + throw new global::System.ArgumentNullException("code"); + } + else { + command.Parameters[0].Value = ((string)(code)); + } + global::System.Data.ConnectionState previousConnectionState = command.Connection.State; + if (((command.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + command.Connection.Open(); + } + object returnValue; + try { + returnValue = command.ExecuteScalar(); + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + command.Connection.Close(); + } + } + if (((returnValue == null) + || (returnValue.GetType() == typeof(global::System.DBNull)))) { + return null; + } + else { + return ((string)(returnValue)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, false)] + public virtual int SetCustName(string newname, string custcode) { + global::System.Data.SqlClient.SqlCommand command = ((global::System.Data.SqlClient.SqlCommand)(this.CommandCollection[1])); + if ((newname == null)) { + command.Parameters[0].Value = global::System.DBNull.Value; + } + else { + command.Parameters[0].Value = ((string)(newname)); + } + if ((custcode == null)) { + throw new global::System.ArgumentNullException("custcode"); + } + else { + command.Parameters[1].Value = ((string)(custcode)); + } + global::System.Data.ConnectionState previousConnectionState = command.Connection.State; + if (((command.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + command.Connection.Open(); + } + int returnValue; + try { + returnValue = command.ExecuteNonQuery(); + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + command.Connection.Close(); + } + } + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual string GetSIDFromCustAndPart(string custcode, string partno) { + global::System.Data.SqlClient.SqlCommand command = ((global::System.Data.SqlClient.SqlCommand)(this.CommandCollection[2])); + if ((custcode == null)) { + throw new global::System.ArgumentNullException("custcode"); + } + else { + command.Parameters[0].Value = ((string)(custcode)); + } + if ((partno == null)) { + throw new global::System.ArgumentNullException("partno"); + } + else { + command.Parameters[1].Value = ((string)(partno)); + } + global::System.Data.ConnectionState previousConnectionState = command.Connection.State; + if (((command.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + command.Connection.Open(); + } + object returnValue; + try { + returnValue = command.ExecuteScalar(); + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + command.Connection.Close(); + } + } + if (((returnValue == null) + || (returnValue.GetType() == typeof(global::System.DBNull)))) { + return null; + } + else { + return ((string)(returnValue)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual string GetLastVLotFromSID(string isd) { + global::System.Data.SqlClient.SqlCommand command = ((global::System.Data.SqlClient.SqlCommand)(this.CommandCollection[3])); + if ((isd == null)) { + command.Parameters[0].Value = global::System.DBNull.Value; + } + else { + command.Parameters[0].Value = ((string)(isd)); + } + global::System.Data.ConnectionState previousConnectionState = command.Connection.State; + if (((command.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + command.Connection.Open(); + } + object returnValue; + try { + returnValue = command.ExecuteScalar(); + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + command.Connection.Close(); + } + } + if (((returnValue == null) + || (returnValue.GetType() == typeof(global::System.DBNull)))) { + return null; + } + else { + return ((string)(returnValue)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual global::System.Nullable CheckSIDExist(string mcname, string sid) { + global::System.Data.SqlClient.SqlCommand command = ((global::System.Data.SqlClient.SqlCommand)(this.CommandCollection[4])); + if ((mcname == null)) { + command.Parameters[0].Value = global::System.DBNull.Value; + } + else { + command.Parameters[0].Value = ((string)(mcname)); + } + if ((sid == null)) { + throw new global::System.ArgumentNullException("sid"); + } + else { + command.Parameters[1].Value = ((string)(sid)); + } + global::System.Data.ConnectionState previousConnectionState = command.Connection.State; + if (((command.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + command.Connection.Open(); + } + object returnValue; + try { + returnValue = command.ExecuteScalar(); + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + command.Connection.Close(); + } + } + if (((returnValue == null) + || (returnValue.GetType() == typeof(global::System.DBNull)))) { + return new global::System.Nullable(); + } + else { + return new global::System.Nullable(((int)(returnValue))); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual global::System.Nullable GetIBResultCountBySIDBatch(System.DateTime stime, string sid, string batch) { + global::System.Data.SqlClient.SqlCommand command = ((global::System.Data.SqlClient.SqlCommand)(this.CommandCollection[5])); + command.Parameters[0].Value = ((System.DateTime)(stime)); + if ((sid == null)) { + command.Parameters[1].Value = global::System.DBNull.Value; + } + else { + command.Parameters[1].Value = ((string)(sid)); + } + if ((batch == null)) { + command.Parameters[2].Value = global::System.DBNull.Value; + } + else { + command.Parameters[2].Value = ((string)(batch)); + } + global::System.Data.ConnectionState previousConnectionState = command.Connection.State; + if (((command.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + command.Connection.Open(); + } + object returnValue; + try { + returnValue = command.ExecuteScalar(); + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + command.Connection.Close(); + } + } + if (((returnValue == null) + || (returnValue.GetType() == typeof(global::System.DBNull)))) { + return new global::System.Nullable(); + } + else { + return new global::System.Nullable(((int)(returnValue))); + } + } + } + + /// + ///TableAdapterManager is used to coordinate TableAdapters in the dataset to enable Hierarchical Update scenarios + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterManagerDesigner, Microsoft.VSD" + + "esigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapterManager")] + public partial class TableAdapterManager : global::System.ComponentModel.Component { + + private UpdateOrderOption _updateOrder; + + private Component_Reel_ResultTableAdapter _component_Reel_ResultTableAdapter; + + private Component_Reel_RegExRuleTableAdapter _component_Reel_RegExRuleTableAdapter; + + private Component_Reel_SID_ConvertTableAdapter _component_Reel_SID_ConvertTableAdapter; + + private Component_Reel_SID_InformationTableAdapter _component_Reel_SID_InformationTableAdapter; + + private Component_Reel_PreSetTableAdapter _component_Reel_PreSetTableAdapter; + + private Component_Reel_CustInfoTableAdapter _component_Reel_CustInfoTableAdapter; + + private Component_Reel_Print_InformationTableAdapter _component_Reel_Print_InformationTableAdapter; + + private Component_Reel_PrintRegExRuleTableAdapter _component_Reel_PrintRegExRuleTableAdapter; + + private bool _backupDataSetBeforeUpdate; + + private global::System.Data.IDbConnection _connection; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public UpdateOrderOption UpdateOrder { + get { + return this._updateOrder; + } + set { + this._updateOrder = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.EditorAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterManagerPropertyEditor, Microso" + + "ft.VSDesigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3" + + "a", "System.Drawing.Design.UITypeEditor")] + public Component_Reel_ResultTableAdapter Component_Reel_ResultTableAdapter { + get { + return this._component_Reel_ResultTableAdapter; + } + set { + this._component_Reel_ResultTableAdapter = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.EditorAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterManagerPropertyEditor, Microso" + + "ft.VSDesigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3" + + "a", "System.Drawing.Design.UITypeEditor")] + public Component_Reel_RegExRuleTableAdapter Component_Reel_RegExRuleTableAdapter { + get { + return this._component_Reel_RegExRuleTableAdapter; + } + set { + this._component_Reel_RegExRuleTableAdapter = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.EditorAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterManagerPropertyEditor, Microso" + + "ft.VSDesigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3" + + "a", "System.Drawing.Design.UITypeEditor")] + public Component_Reel_SID_ConvertTableAdapter Component_Reel_SID_ConvertTableAdapter { + get { + return this._component_Reel_SID_ConvertTableAdapter; + } + set { + this._component_Reel_SID_ConvertTableAdapter = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.EditorAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterManagerPropertyEditor, Microso" + + "ft.VSDesigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3" + + "a", "System.Drawing.Design.UITypeEditor")] + public Component_Reel_SID_InformationTableAdapter Component_Reel_SID_InformationTableAdapter { + get { + return this._component_Reel_SID_InformationTableAdapter; + } + set { + this._component_Reel_SID_InformationTableAdapter = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.EditorAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterManagerPropertyEditor, Microso" + + "ft.VSDesigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3" + + "a", "System.Drawing.Design.UITypeEditor")] + public Component_Reel_PreSetTableAdapter Component_Reel_PreSetTableAdapter { + get { + return this._component_Reel_PreSetTableAdapter; + } + set { + this._component_Reel_PreSetTableAdapter = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.EditorAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterManagerPropertyEditor, Microso" + + "ft.VSDesigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3" + + "a", "System.Drawing.Design.UITypeEditor")] + public Component_Reel_CustInfoTableAdapter Component_Reel_CustInfoTableAdapter { + get { + return this._component_Reel_CustInfoTableAdapter; + } + set { + this._component_Reel_CustInfoTableAdapter = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.EditorAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterManagerPropertyEditor, Microso" + + "ft.VSDesigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3" + + "a", "System.Drawing.Design.UITypeEditor")] + public Component_Reel_Print_InformationTableAdapter Component_Reel_Print_InformationTableAdapter { + get { + return this._component_Reel_Print_InformationTableAdapter; + } + set { + this._component_Reel_Print_InformationTableAdapter = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.EditorAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterManagerPropertyEditor, Microso" + + "ft.VSDesigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3" + + "a", "System.Drawing.Design.UITypeEditor")] + public Component_Reel_PrintRegExRuleTableAdapter Component_Reel_PrintRegExRuleTableAdapter { + get { + return this._component_Reel_PrintRegExRuleTableAdapter; + } + set { + this._component_Reel_PrintRegExRuleTableAdapter = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool BackupDataSetBeforeUpdate { + get { + return this._backupDataSetBeforeUpdate; + } + set { + this._backupDataSetBeforeUpdate = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public global::System.Data.IDbConnection Connection { + get { + if ((this._connection != null)) { + return this._connection; + } + if (((this._component_Reel_ResultTableAdapter != null) + && (this._component_Reel_ResultTableAdapter.Connection != null))) { + return this._component_Reel_ResultTableAdapter.Connection; + } + if (((this._component_Reel_RegExRuleTableAdapter != null) + && (this._component_Reel_RegExRuleTableAdapter.Connection != null))) { + return this._component_Reel_RegExRuleTableAdapter.Connection; + } + if (((this._component_Reel_SID_ConvertTableAdapter != null) + && (this._component_Reel_SID_ConvertTableAdapter.Connection != null))) { + return this._component_Reel_SID_ConvertTableAdapter.Connection; + } + if (((this._component_Reel_SID_InformationTableAdapter != null) + && (this._component_Reel_SID_InformationTableAdapter.Connection != null))) { + return this._component_Reel_SID_InformationTableAdapter.Connection; + } + if (((this._component_Reel_PreSetTableAdapter != null) + && (this._component_Reel_PreSetTableAdapter.Connection != null))) { + return this._component_Reel_PreSetTableAdapter.Connection; + } + if (((this._component_Reel_CustInfoTableAdapter != null) + && (this._component_Reel_CustInfoTableAdapter.Connection != null))) { + return this._component_Reel_CustInfoTableAdapter.Connection; + } + if (((this._component_Reel_Print_InformationTableAdapter != null) + && (this._component_Reel_Print_InformationTableAdapter.Connection != null))) { + return this._component_Reel_Print_InformationTableAdapter.Connection; + } + if (((this._component_Reel_PrintRegExRuleTableAdapter != null) + && (this._component_Reel_PrintRegExRuleTableAdapter.Connection != null))) { + return this._component_Reel_PrintRegExRuleTableAdapter.Connection; + } + return null; + } + set { + this._connection = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int TableAdapterInstanceCount { + get { + int count = 0; + if ((this._component_Reel_ResultTableAdapter != null)) { + count = (count + 1); + } + if ((this._component_Reel_RegExRuleTableAdapter != null)) { + count = (count + 1); + } + if ((this._component_Reel_SID_ConvertTableAdapter != null)) { + count = (count + 1); + } + if ((this._component_Reel_SID_InformationTableAdapter != null)) { + count = (count + 1); + } + if ((this._component_Reel_PreSetTableAdapter != null)) { + count = (count + 1); + } + if ((this._component_Reel_CustInfoTableAdapter != null)) { + count = (count + 1); + } + if ((this._component_Reel_Print_InformationTableAdapter != null)) { + count = (count + 1); + } + if ((this._component_Reel_PrintRegExRuleTableAdapter != null)) { + count = (count + 1); + } + return count; + } + } + + /// + ///Update rows in top-down order. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private int UpdateUpdatedRows(DataSet1 dataSet, global::System.Collections.Generic.List allChangedRows, global::System.Collections.Generic.List allAddedRows) { + int result = 0; + if ((this._component_Reel_Print_InformationTableAdapter != null)) { + global::System.Data.DataRow[] updatedRows = dataSet.Component_Reel_Print_Information.Select(null, null, global::System.Data.DataViewRowState.ModifiedCurrent); + updatedRows = this.GetRealUpdatedRows(updatedRows, allAddedRows); + if (((updatedRows != null) + && (0 < updatedRows.Length))) { + result = (result + this._component_Reel_Print_InformationTableAdapter.Update(updatedRows)); + allChangedRows.AddRange(updatedRows); + } + } + if ((this._component_Reel_CustInfoTableAdapter != null)) { + global::System.Data.DataRow[] updatedRows = dataSet.Component_Reel_CustInfo.Select(null, null, global::System.Data.DataViewRowState.ModifiedCurrent); + updatedRows = this.GetRealUpdatedRows(updatedRows, allAddedRows); + if (((updatedRows != null) + && (0 < updatedRows.Length))) { + result = (result + this._component_Reel_CustInfoTableAdapter.Update(updatedRows)); + allChangedRows.AddRange(updatedRows); + } + } + if ((this._component_Reel_PreSetTableAdapter != null)) { + global::System.Data.DataRow[] updatedRows = dataSet.Component_Reel_PreSet.Select(null, null, global::System.Data.DataViewRowState.ModifiedCurrent); + updatedRows = this.GetRealUpdatedRows(updatedRows, allAddedRows); + if (((updatedRows != null) + && (0 < updatedRows.Length))) { + result = (result + this._component_Reel_PreSetTableAdapter.Update(updatedRows)); + allChangedRows.AddRange(updatedRows); + } + } + if ((this._component_Reel_SID_InformationTableAdapter != null)) { + global::System.Data.DataRow[] updatedRows = dataSet.Component_Reel_SID_Information.Select(null, null, global::System.Data.DataViewRowState.ModifiedCurrent); + updatedRows = this.GetRealUpdatedRows(updatedRows, allAddedRows); + if (((updatedRows != null) + && (0 < updatedRows.Length))) { + result = (result + this._component_Reel_SID_InformationTableAdapter.Update(updatedRows)); + allChangedRows.AddRange(updatedRows); + } + } + if ((this._component_Reel_SID_ConvertTableAdapter != null)) { + global::System.Data.DataRow[] updatedRows = dataSet.Component_Reel_SID_Convert.Select(null, null, global::System.Data.DataViewRowState.ModifiedCurrent); + updatedRows = this.GetRealUpdatedRows(updatedRows, allAddedRows); + if (((updatedRows != null) + && (0 < updatedRows.Length))) { + result = (result + this._component_Reel_SID_ConvertTableAdapter.Update(updatedRows)); + allChangedRows.AddRange(updatedRows); + } + } + if ((this._component_Reel_RegExRuleTableAdapter != null)) { + global::System.Data.DataRow[] updatedRows = dataSet.Component_Reel_RegExRule.Select(null, null, global::System.Data.DataViewRowState.ModifiedCurrent); + updatedRows = this.GetRealUpdatedRows(updatedRows, allAddedRows); + if (((updatedRows != null) + && (0 < updatedRows.Length))) { + result = (result + this._component_Reel_RegExRuleTableAdapter.Update(updatedRows)); + allChangedRows.AddRange(updatedRows); + } + } + if ((this._component_Reel_ResultTableAdapter != null)) { + global::System.Data.DataRow[] updatedRows = dataSet.Component_Reel_Result.Select(null, null, global::System.Data.DataViewRowState.ModifiedCurrent); + updatedRows = this.GetRealUpdatedRows(updatedRows, allAddedRows); + if (((updatedRows != null) + && (0 < updatedRows.Length))) { + result = (result + this._component_Reel_ResultTableAdapter.Update(updatedRows)); + allChangedRows.AddRange(updatedRows); + } + } + if ((this._component_Reel_PrintRegExRuleTableAdapter != null)) { + global::System.Data.DataRow[] updatedRows = dataSet.Component_Reel_PrintRegExRule.Select(null, null, global::System.Data.DataViewRowState.ModifiedCurrent); + updatedRows = this.GetRealUpdatedRows(updatedRows, allAddedRows); + if (((updatedRows != null) + && (0 < updatedRows.Length))) { + result = (result + this._component_Reel_PrintRegExRuleTableAdapter.Update(updatedRows)); + allChangedRows.AddRange(updatedRows); + } + } + return result; + } + + /// + ///Insert rows in top-down order. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private int UpdateInsertedRows(DataSet1 dataSet, global::System.Collections.Generic.List allAddedRows) { + int result = 0; + if ((this._component_Reel_Print_InformationTableAdapter != null)) { + global::System.Data.DataRow[] addedRows = dataSet.Component_Reel_Print_Information.Select(null, null, global::System.Data.DataViewRowState.Added); + if (((addedRows != null) + && (0 < addedRows.Length))) { + result = (result + this._component_Reel_Print_InformationTableAdapter.Update(addedRows)); + allAddedRows.AddRange(addedRows); + } + } + if ((this._component_Reel_CustInfoTableAdapter != null)) { + global::System.Data.DataRow[] addedRows = dataSet.Component_Reel_CustInfo.Select(null, null, global::System.Data.DataViewRowState.Added); + if (((addedRows != null) + && (0 < addedRows.Length))) { + result = (result + this._component_Reel_CustInfoTableAdapter.Update(addedRows)); + allAddedRows.AddRange(addedRows); + } + } + if ((this._component_Reel_PreSetTableAdapter != null)) { + global::System.Data.DataRow[] addedRows = dataSet.Component_Reel_PreSet.Select(null, null, global::System.Data.DataViewRowState.Added); + if (((addedRows != null) + && (0 < addedRows.Length))) { + result = (result + this._component_Reel_PreSetTableAdapter.Update(addedRows)); + allAddedRows.AddRange(addedRows); + } + } + if ((this._component_Reel_SID_InformationTableAdapter != null)) { + global::System.Data.DataRow[] addedRows = dataSet.Component_Reel_SID_Information.Select(null, null, global::System.Data.DataViewRowState.Added); + if (((addedRows != null) + && (0 < addedRows.Length))) { + result = (result + this._component_Reel_SID_InformationTableAdapter.Update(addedRows)); + allAddedRows.AddRange(addedRows); + } + } + if ((this._component_Reel_SID_ConvertTableAdapter != null)) { + global::System.Data.DataRow[] addedRows = dataSet.Component_Reel_SID_Convert.Select(null, null, global::System.Data.DataViewRowState.Added); + if (((addedRows != null) + && (0 < addedRows.Length))) { + result = (result + this._component_Reel_SID_ConvertTableAdapter.Update(addedRows)); + allAddedRows.AddRange(addedRows); + } + } + if ((this._component_Reel_RegExRuleTableAdapter != null)) { + global::System.Data.DataRow[] addedRows = dataSet.Component_Reel_RegExRule.Select(null, null, global::System.Data.DataViewRowState.Added); + if (((addedRows != null) + && (0 < addedRows.Length))) { + result = (result + this._component_Reel_RegExRuleTableAdapter.Update(addedRows)); + allAddedRows.AddRange(addedRows); + } + } + if ((this._component_Reel_ResultTableAdapter != null)) { + global::System.Data.DataRow[] addedRows = dataSet.Component_Reel_Result.Select(null, null, global::System.Data.DataViewRowState.Added); + if (((addedRows != null) + && (0 < addedRows.Length))) { + result = (result + this._component_Reel_ResultTableAdapter.Update(addedRows)); + allAddedRows.AddRange(addedRows); + } + } + if ((this._component_Reel_PrintRegExRuleTableAdapter != null)) { + global::System.Data.DataRow[] addedRows = dataSet.Component_Reel_PrintRegExRule.Select(null, null, global::System.Data.DataViewRowState.Added); + if (((addedRows != null) + && (0 < addedRows.Length))) { + result = (result + this._component_Reel_PrintRegExRuleTableAdapter.Update(addedRows)); + allAddedRows.AddRange(addedRows); + } + } + return result; + } + + /// + ///Delete rows in bottom-up order. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private int UpdateDeletedRows(DataSet1 dataSet, global::System.Collections.Generic.List allChangedRows) { + int result = 0; + if ((this._component_Reel_PrintRegExRuleTableAdapter != null)) { + global::System.Data.DataRow[] deletedRows = dataSet.Component_Reel_PrintRegExRule.Select(null, null, global::System.Data.DataViewRowState.Deleted); + if (((deletedRows != null) + && (0 < deletedRows.Length))) { + result = (result + this._component_Reel_PrintRegExRuleTableAdapter.Update(deletedRows)); + allChangedRows.AddRange(deletedRows); + } + } + if ((this._component_Reel_ResultTableAdapter != null)) { + global::System.Data.DataRow[] deletedRows = dataSet.Component_Reel_Result.Select(null, null, global::System.Data.DataViewRowState.Deleted); + if (((deletedRows != null) + && (0 < deletedRows.Length))) { + result = (result + this._component_Reel_ResultTableAdapter.Update(deletedRows)); + allChangedRows.AddRange(deletedRows); + } + } + if ((this._component_Reel_RegExRuleTableAdapter != null)) { + global::System.Data.DataRow[] deletedRows = dataSet.Component_Reel_RegExRule.Select(null, null, global::System.Data.DataViewRowState.Deleted); + if (((deletedRows != null) + && (0 < deletedRows.Length))) { + result = (result + this._component_Reel_RegExRuleTableAdapter.Update(deletedRows)); + allChangedRows.AddRange(deletedRows); + } + } + if ((this._component_Reel_SID_ConvertTableAdapter != null)) { + global::System.Data.DataRow[] deletedRows = dataSet.Component_Reel_SID_Convert.Select(null, null, global::System.Data.DataViewRowState.Deleted); + if (((deletedRows != null) + && (0 < deletedRows.Length))) { + result = (result + this._component_Reel_SID_ConvertTableAdapter.Update(deletedRows)); + allChangedRows.AddRange(deletedRows); + } + } + if ((this._component_Reel_SID_InformationTableAdapter != null)) { + global::System.Data.DataRow[] deletedRows = dataSet.Component_Reel_SID_Information.Select(null, null, global::System.Data.DataViewRowState.Deleted); + if (((deletedRows != null) + && (0 < deletedRows.Length))) { + result = (result + this._component_Reel_SID_InformationTableAdapter.Update(deletedRows)); + allChangedRows.AddRange(deletedRows); + } + } + if ((this._component_Reel_PreSetTableAdapter != null)) { + global::System.Data.DataRow[] deletedRows = dataSet.Component_Reel_PreSet.Select(null, null, global::System.Data.DataViewRowState.Deleted); + if (((deletedRows != null) + && (0 < deletedRows.Length))) { + result = (result + this._component_Reel_PreSetTableAdapter.Update(deletedRows)); + allChangedRows.AddRange(deletedRows); + } + } + if ((this._component_Reel_CustInfoTableAdapter != null)) { + global::System.Data.DataRow[] deletedRows = dataSet.Component_Reel_CustInfo.Select(null, null, global::System.Data.DataViewRowState.Deleted); + if (((deletedRows != null) + && (0 < deletedRows.Length))) { + result = (result + this._component_Reel_CustInfoTableAdapter.Update(deletedRows)); + allChangedRows.AddRange(deletedRows); + } + } + if ((this._component_Reel_Print_InformationTableAdapter != null)) { + global::System.Data.DataRow[] deletedRows = dataSet.Component_Reel_Print_Information.Select(null, null, global::System.Data.DataViewRowState.Deleted); + if (((deletedRows != null) + && (0 < deletedRows.Length))) { + result = (result + this._component_Reel_Print_InformationTableAdapter.Update(deletedRows)); + allChangedRows.AddRange(deletedRows); + } + } + return result; + } + + /// + ///Remove inserted rows that become updated rows after calling TableAdapter.Update(inserted rows) first + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private global::System.Data.DataRow[] GetRealUpdatedRows(global::System.Data.DataRow[] updatedRows, global::System.Collections.Generic.List allAddedRows) { + if (((updatedRows == null) + || (updatedRows.Length < 1))) { + return updatedRows; + } + if (((allAddedRows == null) + || (allAddedRows.Count < 1))) { + return updatedRows; + } + global::System.Collections.Generic.List realUpdatedRows = new global::System.Collections.Generic.List(); + for (int i = 0; (i < updatedRows.Length); i = (i + 1)) { + global::System.Data.DataRow row = updatedRows[i]; + if ((allAddedRows.Contains(row) == false)) { + realUpdatedRows.Add(row); + } + } + return realUpdatedRows.ToArray(); + } + + /// + ///Update all changes to the dataset. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public virtual int UpdateAll(DataSet1 dataSet) { + if ((dataSet == null)) { + throw new global::System.ArgumentNullException("dataSet"); + } + if ((dataSet.HasChanges() == false)) { + return 0; + } + if (((this._component_Reel_ResultTableAdapter != null) + && (this.MatchTableAdapterConnection(this._component_Reel_ResultTableAdapter.Connection) == false))) { + throw new global::System.ArgumentException("TableAdapterManager에서 관리하는 모든 TableAdapter에는 동일한 연결 문자열을 사용해야 합니다."); + } + if (((this._component_Reel_RegExRuleTableAdapter != null) + && (this.MatchTableAdapterConnection(this._component_Reel_RegExRuleTableAdapter.Connection) == false))) { + throw new global::System.ArgumentException("TableAdapterManager에서 관리하는 모든 TableAdapter에는 동일한 연결 문자열을 사용해야 합니다."); + } + if (((this._component_Reel_SID_ConvertTableAdapter != null) + && (this.MatchTableAdapterConnection(this._component_Reel_SID_ConvertTableAdapter.Connection) == false))) { + throw new global::System.ArgumentException("TableAdapterManager에서 관리하는 모든 TableAdapter에는 동일한 연결 문자열을 사용해야 합니다."); + } + if (((this._component_Reel_SID_InformationTableAdapter != null) + && (this.MatchTableAdapterConnection(this._component_Reel_SID_InformationTableAdapter.Connection) == false))) { + throw new global::System.ArgumentException("TableAdapterManager에서 관리하는 모든 TableAdapter에는 동일한 연결 문자열을 사용해야 합니다."); + } + if (((this._component_Reel_PreSetTableAdapter != null) + && (this.MatchTableAdapterConnection(this._component_Reel_PreSetTableAdapter.Connection) == false))) { + throw new global::System.ArgumentException("TableAdapterManager에서 관리하는 모든 TableAdapter에는 동일한 연결 문자열을 사용해야 합니다."); + } + if (((this._component_Reel_CustInfoTableAdapter != null) + && (this.MatchTableAdapterConnection(this._component_Reel_CustInfoTableAdapter.Connection) == false))) { + throw new global::System.ArgumentException("TableAdapterManager에서 관리하는 모든 TableAdapter에는 동일한 연결 문자열을 사용해야 합니다."); + } + if (((this._component_Reel_Print_InformationTableAdapter != null) + && (this.MatchTableAdapterConnection(this._component_Reel_Print_InformationTableAdapter.Connection) == false))) { + throw new global::System.ArgumentException("TableAdapterManager에서 관리하는 모든 TableAdapter에는 동일한 연결 문자열을 사용해야 합니다."); + } + if (((this._component_Reel_PrintRegExRuleTableAdapter != null) + && (this.MatchTableAdapterConnection(this._component_Reel_PrintRegExRuleTableAdapter.Connection) == false))) { + throw new global::System.ArgumentException("TableAdapterManager에서 관리하는 모든 TableAdapter에는 동일한 연결 문자열을 사용해야 합니다."); + } + global::System.Data.IDbConnection workConnection = this.Connection; + if ((workConnection == null)) { + throw new global::System.ApplicationException("TableAdapterManager에 연결 정보가 없습니다. 각 TableAdapterManager TableAdapter 속성을 올바른 Tabl" + + "eAdapter 인스턴스로 설정하십시오."); + } + bool workConnOpened = false; + if (((workConnection.State & global::System.Data.ConnectionState.Broken) + == global::System.Data.ConnectionState.Broken)) { + workConnection.Close(); + } + if ((workConnection.State == global::System.Data.ConnectionState.Closed)) { + workConnection.Open(); + workConnOpened = true; + } + global::System.Data.IDbTransaction workTransaction = workConnection.BeginTransaction(); + if ((workTransaction == null)) { + throw new global::System.ApplicationException("트랜잭션을 시작할 수 없습니다. 현재 데이터 연결에서 트랜잭션이 지원되지 않거나 현재 상태에서 트랜잭션을 시작할 수 없습니다."); + } + global::System.Collections.Generic.List allChangedRows = new global::System.Collections.Generic.List(); + global::System.Collections.Generic.List allAddedRows = new global::System.Collections.Generic.List(); + global::System.Collections.Generic.List adaptersWithAcceptChangesDuringUpdate = new global::System.Collections.Generic.List(); + global::System.Collections.Generic.Dictionary revertConnections = new global::System.Collections.Generic.Dictionary(); + int result = 0; + global::System.Data.DataSet backupDataSet = null; + if (this.BackupDataSetBeforeUpdate) { + backupDataSet = new global::System.Data.DataSet(); + backupDataSet.Merge(dataSet); + } + try { + // ---- Prepare for update ----------- + // + if ((this._component_Reel_ResultTableAdapter != null)) { + revertConnections.Add(this._component_Reel_ResultTableAdapter, this._component_Reel_ResultTableAdapter.Connection); + this._component_Reel_ResultTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(workConnection)); + this._component_Reel_ResultTableAdapter.Transaction = ((global::System.Data.SqlClient.SqlTransaction)(workTransaction)); + if (this._component_Reel_ResultTableAdapter.Adapter.AcceptChangesDuringUpdate) { + this._component_Reel_ResultTableAdapter.Adapter.AcceptChangesDuringUpdate = false; + adaptersWithAcceptChangesDuringUpdate.Add(this._component_Reel_ResultTableAdapter.Adapter); + } + } + if ((this._component_Reel_RegExRuleTableAdapter != null)) { + revertConnections.Add(this._component_Reel_RegExRuleTableAdapter, this._component_Reel_RegExRuleTableAdapter.Connection); + this._component_Reel_RegExRuleTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(workConnection)); + this._component_Reel_RegExRuleTableAdapter.Transaction = ((global::System.Data.SqlClient.SqlTransaction)(workTransaction)); + if (this._component_Reel_RegExRuleTableAdapter.Adapter.AcceptChangesDuringUpdate) { + this._component_Reel_RegExRuleTableAdapter.Adapter.AcceptChangesDuringUpdate = false; + adaptersWithAcceptChangesDuringUpdate.Add(this._component_Reel_RegExRuleTableAdapter.Adapter); + } + } + if ((this._component_Reel_SID_ConvertTableAdapter != null)) { + revertConnections.Add(this._component_Reel_SID_ConvertTableAdapter, this._component_Reel_SID_ConvertTableAdapter.Connection); + this._component_Reel_SID_ConvertTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(workConnection)); + this._component_Reel_SID_ConvertTableAdapter.Transaction = ((global::System.Data.SqlClient.SqlTransaction)(workTransaction)); + if (this._component_Reel_SID_ConvertTableAdapter.Adapter.AcceptChangesDuringUpdate) { + this._component_Reel_SID_ConvertTableAdapter.Adapter.AcceptChangesDuringUpdate = false; + adaptersWithAcceptChangesDuringUpdate.Add(this._component_Reel_SID_ConvertTableAdapter.Adapter); + } + } + if ((this._component_Reel_SID_InformationTableAdapter != null)) { + revertConnections.Add(this._component_Reel_SID_InformationTableAdapter, this._component_Reel_SID_InformationTableAdapter.Connection); + this._component_Reel_SID_InformationTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(workConnection)); + this._component_Reel_SID_InformationTableAdapter.Transaction = ((global::System.Data.SqlClient.SqlTransaction)(workTransaction)); + if (this._component_Reel_SID_InformationTableAdapter.Adapter.AcceptChangesDuringUpdate) { + this._component_Reel_SID_InformationTableAdapter.Adapter.AcceptChangesDuringUpdate = false; + adaptersWithAcceptChangesDuringUpdate.Add(this._component_Reel_SID_InformationTableAdapter.Adapter); + } + } + if ((this._component_Reel_PreSetTableAdapter != null)) { + revertConnections.Add(this._component_Reel_PreSetTableAdapter, this._component_Reel_PreSetTableAdapter.Connection); + this._component_Reel_PreSetTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(workConnection)); + this._component_Reel_PreSetTableAdapter.Transaction = ((global::System.Data.SqlClient.SqlTransaction)(workTransaction)); + if (this._component_Reel_PreSetTableAdapter.Adapter.AcceptChangesDuringUpdate) { + this._component_Reel_PreSetTableAdapter.Adapter.AcceptChangesDuringUpdate = false; + adaptersWithAcceptChangesDuringUpdate.Add(this._component_Reel_PreSetTableAdapter.Adapter); + } + } + if ((this._component_Reel_CustInfoTableAdapter != null)) { + revertConnections.Add(this._component_Reel_CustInfoTableAdapter, this._component_Reel_CustInfoTableAdapter.Connection); + this._component_Reel_CustInfoTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(workConnection)); + this._component_Reel_CustInfoTableAdapter.Transaction = ((global::System.Data.SqlClient.SqlTransaction)(workTransaction)); + if (this._component_Reel_CustInfoTableAdapter.Adapter.AcceptChangesDuringUpdate) { + this._component_Reel_CustInfoTableAdapter.Adapter.AcceptChangesDuringUpdate = false; + adaptersWithAcceptChangesDuringUpdate.Add(this._component_Reel_CustInfoTableAdapter.Adapter); + } + } + if ((this._component_Reel_Print_InformationTableAdapter != null)) { + revertConnections.Add(this._component_Reel_Print_InformationTableAdapter, this._component_Reel_Print_InformationTableAdapter.Connection); + this._component_Reel_Print_InformationTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(workConnection)); + this._component_Reel_Print_InformationTableAdapter.Transaction = ((global::System.Data.SqlClient.SqlTransaction)(workTransaction)); + if (this._component_Reel_Print_InformationTableAdapter.Adapter.AcceptChangesDuringUpdate) { + this._component_Reel_Print_InformationTableAdapter.Adapter.AcceptChangesDuringUpdate = false; + adaptersWithAcceptChangesDuringUpdate.Add(this._component_Reel_Print_InformationTableAdapter.Adapter); + } + } + if ((this._component_Reel_PrintRegExRuleTableAdapter != null)) { + revertConnections.Add(this._component_Reel_PrintRegExRuleTableAdapter, this._component_Reel_PrintRegExRuleTableAdapter.Connection); + this._component_Reel_PrintRegExRuleTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(workConnection)); + this._component_Reel_PrintRegExRuleTableAdapter.Transaction = ((global::System.Data.SqlClient.SqlTransaction)(workTransaction)); + if (this._component_Reel_PrintRegExRuleTableAdapter.Adapter.AcceptChangesDuringUpdate) { + this._component_Reel_PrintRegExRuleTableAdapter.Adapter.AcceptChangesDuringUpdate = false; + adaptersWithAcceptChangesDuringUpdate.Add(this._component_Reel_PrintRegExRuleTableAdapter.Adapter); + } + } + // + //---- Perform updates ----------- + // + if ((this.UpdateOrder == UpdateOrderOption.UpdateInsertDelete)) { + result = (result + this.UpdateUpdatedRows(dataSet, allChangedRows, allAddedRows)); + result = (result + this.UpdateInsertedRows(dataSet, allAddedRows)); + } + else { + result = (result + this.UpdateInsertedRows(dataSet, allAddedRows)); + result = (result + this.UpdateUpdatedRows(dataSet, allChangedRows, allAddedRows)); + } + result = (result + this.UpdateDeletedRows(dataSet, allChangedRows)); + // + //---- Commit updates ----------- + // + workTransaction.Commit(); + if ((0 < allAddedRows.Count)) { + global::System.Data.DataRow[] rows = new System.Data.DataRow[allAddedRows.Count]; + allAddedRows.CopyTo(rows); + for (int i = 0; (i < rows.Length); i = (i + 1)) { + global::System.Data.DataRow row = rows[i]; + row.AcceptChanges(); + } + } + if ((0 < allChangedRows.Count)) { + global::System.Data.DataRow[] rows = new System.Data.DataRow[allChangedRows.Count]; + allChangedRows.CopyTo(rows); + for (int i = 0; (i < rows.Length); i = (i + 1)) { + global::System.Data.DataRow row = rows[i]; + row.AcceptChanges(); + } + } + } + catch (global::System.Exception ex) { + workTransaction.Rollback(); + // ---- Restore the dataset ----------- + if (this.BackupDataSetBeforeUpdate) { + global::System.Diagnostics.Debug.Assert((backupDataSet != null)); + dataSet.Clear(); + dataSet.Merge(backupDataSet); + } + else { + if ((0 < allAddedRows.Count)) { + global::System.Data.DataRow[] rows = new System.Data.DataRow[allAddedRows.Count]; + allAddedRows.CopyTo(rows); + for (int i = 0; (i < rows.Length); i = (i + 1)) { + global::System.Data.DataRow row = rows[i]; + row.AcceptChanges(); + row.SetAdded(); + } + } + } + throw ex; + } + finally { + if (workConnOpened) { + workConnection.Close(); + } + if ((this._component_Reel_ResultTableAdapter != null)) { + this._component_Reel_ResultTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(revertConnections[this._component_Reel_ResultTableAdapter])); + this._component_Reel_ResultTableAdapter.Transaction = null; + } + if ((this._component_Reel_RegExRuleTableAdapter != null)) { + this._component_Reel_RegExRuleTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(revertConnections[this._component_Reel_RegExRuleTableAdapter])); + this._component_Reel_RegExRuleTableAdapter.Transaction = null; + } + if ((this._component_Reel_SID_ConvertTableAdapter != null)) { + this._component_Reel_SID_ConvertTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(revertConnections[this._component_Reel_SID_ConvertTableAdapter])); + this._component_Reel_SID_ConvertTableAdapter.Transaction = null; + } + if ((this._component_Reel_SID_InformationTableAdapter != null)) { + this._component_Reel_SID_InformationTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(revertConnections[this._component_Reel_SID_InformationTableAdapter])); + this._component_Reel_SID_InformationTableAdapter.Transaction = null; + } + if ((this._component_Reel_PreSetTableAdapter != null)) { + this._component_Reel_PreSetTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(revertConnections[this._component_Reel_PreSetTableAdapter])); + this._component_Reel_PreSetTableAdapter.Transaction = null; + } + if ((this._component_Reel_CustInfoTableAdapter != null)) { + this._component_Reel_CustInfoTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(revertConnections[this._component_Reel_CustInfoTableAdapter])); + this._component_Reel_CustInfoTableAdapter.Transaction = null; + } + if ((this._component_Reel_Print_InformationTableAdapter != null)) { + this._component_Reel_Print_InformationTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(revertConnections[this._component_Reel_Print_InformationTableAdapter])); + this._component_Reel_Print_InformationTableAdapter.Transaction = null; + } + if ((this._component_Reel_PrintRegExRuleTableAdapter != null)) { + this._component_Reel_PrintRegExRuleTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(revertConnections[this._component_Reel_PrintRegExRuleTableAdapter])); + this._component_Reel_PrintRegExRuleTableAdapter.Transaction = null; + } + if ((0 < adaptersWithAcceptChangesDuringUpdate.Count)) { + global::System.Data.Common.DataAdapter[] adapters = new System.Data.Common.DataAdapter[adaptersWithAcceptChangesDuringUpdate.Count]; + adaptersWithAcceptChangesDuringUpdate.CopyTo(adapters); + for (int i = 0; (i < adapters.Length); i = (i + 1)) { + global::System.Data.Common.DataAdapter adapter = adapters[i]; + adapter.AcceptChangesDuringUpdate = true; + } + } + } + return result; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected virtual void SortSelfReferenceRows(global::System.Data.DataRow[] rows, global::System.Data.DataRelation relation, bool childFirst) { + global::System.Array.Sort(rows, new SelfReferenceComparer(relation, childFirst)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected virtual bool MatchTableAdapterConnection(global::System.Data.IDbConnection inputConnection) { + if ((this._connection != null)) { + return true; + } + if (((this.Connection == null) + || (inputConnection == null))) { + return true; + } + if (string.Equals(this.Connection.ConnectionString, inputConnection.ConnectionString, global::System.StringComparison.Ordinal)) { + return true; + } + return false; + } + + /// + ///Update Order Option + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public enum UpdateOrderOption { + + InsertUpdateDelete = 0, + + UpdateInsertDelete = 1, + } + + /// + ///Used to sort self-referenced table's rows + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private class SelfReferenceComparer : object, global::System.Collections.Generic.IComparer { + + private global::System.Data.DataRelation _relation; + + private int _childFirst; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal SelfReferenceComparer(global::System.Data.DataRelation relation, bool childFirst) { + this._relation = relation; + if (childFirst) { + this._childFirst = -1; + } + else { + this._childFirst = 1; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private global::System.Data.DataRow GetRoot(global::System.Data.DataRow row, out int distance) { + global::System.Diagnostics.Debug.Assert((row != null)); + global::System.Data.DataRow root = row; + distance = 0; + + global::System.Collections.Generic.IDictionary traversedRows = new global::System.Collections.Generic.Dictionary(); + traversedRows[row] = row; + + global::System.Data.DataRow parent = row.GetParentRow(this._relation, global::System.Data.DataRowVersion.Default); + for ( + ; ((parent != null) + && (traversedRows.ContainsKey(parent) == false)); + ) { + distance = (distance + 1); + root = parent; + traversedRows[parent] = parent; + parent = parent.GetParentRow(this._relation, global::System.Data.DataRowVersion.Default); + } + + if ((distance == 0)) { + traversedRows.Clear(); + traversedRows[row] = row; + parent = row.GetParentRow(this._relation, global::System.Data.DataRowVersion.Original); + for ( + ; ((parent != null) + && (traversedRows.ContainsKey(parent) == false)); + ) { + distance = (distance + 1); + root = parent; + traversedRows[parent] = parent; + parent = parent.GetParentRow(this._relation, global::System.Data.DataRowVersion.Original); + } + } + + return root; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int Compare(global::System.Data.DataRow row1, global::System.Data.DataRow row2) { + if (object.ReferenceEquals(row1, row2)) { + return 0; + } + if ((row1 == null)) { + return -1; + } + if ((row2 == null)) { + return 1; + } + + int distance1 = 0; + global::System.Data.DataRow root1 = this.GetRoot(row1, out distance1); + + int distance2 = 0; + global::System.Data.DataRow root2 = this.GetRoot(row2, out distance2); + + if (object.ReferenceEquals(root1, root2)) { + return (this._childFirst * distance1.CompareTo(distance2)); + } + else { + global::System.Diagnostics.Debug.Assert(((root1.Table != null) + && (root2.Table != null))); + if ((root1.Table.Rows.IndexOf(root1) < root2.Table.Rows.IndexOf(root2))) { + return -1; + } + else { + return 1; + } + } + } + } + } +} + +#pragma warning restore 1591 \ No newline at end of file diff --git a/Handler/Project/DataSet1.cs b/Handler/Project/DataSet1.cs new file mode 100644 index 0000000..648e496 --- /dev/null +++ b/Handler/Project/DataSet1.cs @@ -0,0 +1,16 @@ +namespace Project +{ + + + public partial class DataSet1 + { + partial class ResultDataDataTable + { + } + + partial class OPModelDataTable + { + + } + } +} diff --git a/Handler/Project/DataSet1.xsc b/Handler/Project/DataSet1.xsc new file mode 100644 index 0000000..05b0199 --- /dev/null +++ b/Handler/Project/DataSet1.xsc @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/Handler/Project/DataSet1.xsd b/Handler/Project/DataSet1.xsd new file mode 100644 index 0000000..1bcfcce --- /dev/null +++ b/Handler/Project/DataSet1.xsd @@ -0,0 +1,2049 @@ + + + + + + + + + + + + + + + DELETE FROM [Component_Reel_Result] WHERE (([idx] = @Original_idx) AND ([STIME] = @Original_STIME) AND ((@IsNull_ETIME = 1 AND [ETIME] IS NULL) OR ([ETIME] = @Original_ETIME)) AND ((@IsNull_PDATE = 1 AND [PDATE] IS NULL) OR ([PDATE] = @Original_PDATE)) AND ((@IsNull_JTYPE = 1 AND [JTYPE] IS NULL) OR ([JTYPE] = @Original_JTYPE)) AND ((@IsNull_JGUID = 1 AND [JGUID] IS NULL) OR ([JGUID] = @Original_JGUID)) AND ((@IsNull_SID = 1 AND [SID] IS NULL) OR ([SID] = @Original_SID)) AND ((@IsNull_SID0 = 1 AND [SID0] IS NULL) OR ([SID0] = @Original_SID0)) AND ((@IsNull_RID = 1 AND [RID] IS NULL) OR ([RID] = @Original_RID)) AND ((@IsNull_RID0 = 1 AND [RID0] IS NULL) OR ([RID0] = @Original_RID0)) AND ((@IsNull_RSN = 1 AND [RSN] IS NULL) OR ([RSN] = @Original_RSN)) AND ((@IsNull_QR = 1 AND [QR] IS NULL) OR ([QR] = @Original_QR)) AND ((@IsNull_ZPL = 1 AND [ZPL] IS NULL) OR ([ZPL] = @Original_ZPL)) AND ((@IsNull_POS = 1 AND [POS] IS NULL) OR ([POS] = @Original_POS)) AND ((@IsNull_LOC = 1 AND [LOC] IS NULL) OR ([LOC] = @Original_LOC)) AND ((@IsNull_ANGLE = 1 AND [ANGLE] IS NULL) OR ([ANGLE] = @Original_ANGLE)) AND ((@IsNull_QTY = 1 AND [QTY] IS NULL) OR ([QTY] = @Original_QTY)) AND ((@IsNull_QTY0 = 1 AND [QTY0] IS NULL) OR ([QTY0] = @Original_QTY0)) AND ([wdate] = @Original_wdate) AND ((@IsNull_VNAME = 1 AND [VNAME] IS NULL) OR ([VNAME] = @Original_VNAME)) AND ((@IsNull_PRNATTACH = 1 AND [PRNATTACH] IS NULL) OR ([PRNATTACH] = @Original_PRNATTACH)) AND ((@IsNull_PRNVALID = 1 AND [PRNVALID] IS NULL) OR ([PRNVALID] = @Original_PRNVALID)) AND ((@IsNull_PTIME = 1 AND [PTIME] IS NULL) OR ([PTIME] = @Original_PTIME)) AND ((@IsNull_MFGDATE = 1 AND [MFGDATE] IS NULL) OR ([MFGDATE] = @Original_MFGDATE)) AND ((@IsNull_VLOT = 1 AND [VLOT] IS NULL) OR ([VLOT] = @Original_VLOT)) AND ((@IsNull_REMARK = 1 AND [REMARK] IS NULL) OR ([REMARK] = @Original_REMARK)) AND ((@IsNull_MC = 1 AND [MC] IS NULL) OR ([MC] = @Original_MC)) AND ((@IsNull_PARTNO = 1 AND [PARTNO] IS NULL) OR ([PARTNO] = @Original_PARTNO)) AND ((@IsNull_CUSTCODE = 1 AND [CUSTCODE] IS NULL) OR ([CUSTCODE] = @Original_CUSTCODE)) AND ((@IsNull_ATIME = 1 AND [ATIME] IS NULL) OR ([ATIME] = @Original_ATIME)) AND ((@IsNull_BATCH = 1 AND [BATCH] IS NULL) OR ([BATCH] = @Original_BATCH)) AND ((@IsNull_qtymax = 1 AND [qtymax] IS NULL) OR ([qtymax] = @Original_qtymax)) AND ((@IsNull_GUID = 1 AND [GUID] IS NULL) OR ([GUID] = @Original_GUID))) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO [Component_Reel_Result] ([STIME], [ETIME], [PDATE], [JTYPE], [JGUID], [SID], [SID0], [RID], [RID0], [RSN], [QR], [ZPL], [POS], [LOC], [ANGLE], [QTY], [QTY0], [wdate], [VNAME], [PRNATTACH], [PRNVALID], [PTIME], [MFGDATE], [VLOT], [REMARK], [MC], [PARTNO], [CUSTCODE], [ATIME], [BATCH], [qtymax], [GUID], [iNBOUND], [MCN], [target]) VALUES (@STIME, @ETIME, @PDATE, @JTYPE, @JGUID, @SID, @SID0, @RID, @RID0, @RSN, @QR, @ZPL, @POS, @LOC, @ANGLE, @QTY, @QTY0, @wdate, @VNAME, @PRNATTACH, @PRNVALID, @PTIME, @MFGDATE, @VLOT, @REMARK, @MC, @PARTNO, @CUSTCODE, @ATIME, @BATCH, @qtymax, @GUID, @iNBOUND, @MCN, @target) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT idx, STIME, ETIME, PDATE, JTYPE, JGUID, SID, SID0, RID, RID0, RSN, QR, ZPL, POS, LOC, ANGLE, QTY, QTY0, wdate, VNAME, PRNATTACH, PRNVALID, PTIME, MFGDATE, VLOT, REMARK, + MC, PARTNO, CUSTCODE, ATIME, BATCH, qtymax, GUID, iNBOUND, MCN, target +FROM Component_Reel_Result WITH (NOLOCK) +WHERE (CONVERT(varchar(10), wdate, 120) BETWEEN @sd AND @ed) AND (ISNULL(MC, '') = @mc) +ORDER BY wdate DESC, idx + + + + + + + + + + UPDATE Component_Reel_Result +SET STIME = @STIME, ETIME = @ETIME, PDATE = @PDATE, JTYPE = @JTYPE, JGUID = @JGUID, SID = @SID, SID0 = @SID0, RID = @RID, RID0 = @RID0, RSN = @RSN, QR = @QR, + ZPL = @ZPL, POS = @POS, LOC = @LOC, ANGLE = @ANGLE, QTY = @QTY, QTY0 = @QTY0, wdate = @wdate, VNAME = @VNAME, PRNATTACH = @PRNATTACH, PRNVALID = @PRNVALID, + PTIME = @PTIME, MFGDATE = @MFGDATE, VLOT = @VLOT, REMARK = @REMARK, MC = @MC, PARTNO = @PARTNO, CUSTCODE = @CUSTCODE, ATIME = @ATIME, BATCH = @BATCH, + qtymax = @qtymax, GUID = @GUID, iNBOUND = @iNBOUND, MCN = @MCN +WHERE (STIME = @Original_STIME) AND (JGUID = @Original_JGUID) AND (GUID = @Original_GUID); +SELECT idx, STIME, ETIME, PDATE, JTYPE, JGUID, SID, SID0, RID, RID0, RSN, QR, ZPL, POS, LOC, ANGLE, QTY, QTY0, wdate, VNAME, PRNATTACH, PRNVALID, PTIME, MFGDATE, VLOT, REMARK, MC, PARTNO, CUSTCODE, ATIME, BATCH, qtymax, GUID FROM Component_Reel_Result WHERE (idx = @idx) ORDER BY wdate DESC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT TOP (50) ANGLE, ATIME, BATCH, CUSTCODE, ETIME, GUID, JGUID, JTYPE, LOC, MC, MCN, MFGDATE, PARTNO, PDATE, POS, PRNATTACH, PRNVALID, PTIME, QR, QTY, QTY0, REMARK, RID, RID0, RSN, SID, SID0, STIME, VLOT, VNAME, ZPL, iNBOUND, idx, qtymax, target, wdate FROM Component_Reel_Result WITH (NOLOCK) WHERE (CONVERT (varchar(10), wdate, 120) BETWEEN @sd AND @ed) AND (ISNULL(MC, '') = @mc) ORDER BY wdate DESC + + + + + + + + + + + + SELECT ANGLE, ATIME, BATCH, CUSTCODE, ETIME, GUID, JGUID, JTYPE, LOC, MC, MCN, MFGDATE, PARTNO, PDATE, POS, PRNATTACH, PRNVALID, PTIME, QR, QTY, QTY0, REMARK, RID, RID0, RSN, SID, SID0, STIME, VLOT, VNAME, ZPL, iNBOUND, idx, qtymax, target, wdate FROM Component_Reel_Result WITH (NOLOCK) WHERE (GUID = @guid) AND (ISNULL(MC, '') = @mc) AND (PRNATTACH = 1) AND (PRNVALID = 1) ORDER BY wdate DESC + + + + + + + + + + + SELECT ANGLE, ATIME, BATCH, CUSTCODE, ETIME, GUID, JGUID, JTYPE, LOC, MC, MCN, MFGDATE, PARTNO, PDATE, POS, PRNATTACH, PRNVALID, PTIME, QR, QTY, QTY0, REMARK, RID, RID0, RSN, SID, SID0, STIME, VLOT, VNAME, ZPL, iNBOUND, idx, qtymax, target, wdate FROM Component_Reel_Result WITH (NOLOCK) WHERE (JGUID = @jguid) + + + + + + + + + + SELECT TOP (1) ANGLE, ATIME, BATCH, CUSTCODE, ETIME, GUID, JGUID, JTYPE, LOC, MC, MCN, MFGDATE, PARTNO, PDATE, POS, PRNATTACH, PRNVALID, PTIME, QR, QTY, QTY0, REMARK, RID, RID0, RSN, SID, SID0, STIME, VLOT, VNAME, ZPL, iNBOUND, idx, qtymax, target, wdate FROM Component_Reel_Result WITH (NOLOCK) WHERE (MC = @mc) AND (VLOT = @vlot) ORDER BY wdate DESC + + + + + + + + + + + SELECT TOP (50) ANGLE, ATIME, BATCH, CUSTCODE, ETIME, GUID, JGUID, JTYPE, LOC, MC, MCN, MFGDATE, PARTNO, PDATE, POS, PRNATTACH, PRNVALID, PTIME, QR, QTY, QTY0, REMARK, RID, RID0, RSN, SID, SID0, STIME, VLOT, VNAME, ZPL, iNBOUND, idx, qtymax, target, wdate FROM Component_Reel_Result WITH (NOLOCK) WHERE (CONVERT (varchar(10), wdate, 120) BETWEEN @sd AND @ed) AND (ISNULL(MC, '') = @mc) ORDER BY wdate DESC + + + + + + + + + + + + SELECT idx, STIME, ETIME, PDATE, JTYPE, JGUID, SID, SID0, RID, RID0, RSN, QR, ZPL, POS, LOC, ANGLE, QTY, QTY0, wdate, VNAME, PRNATTACH, PRNVALID, PTIME, MFGDATE, VLOT, REMARK, + MC, PARTNO, CUSTCODE, ATIME, BATCH, qtymax, GUID, iNBOUND, MCN, target +FROM Component_Reel_Result WITH (NOLOCK) +WHERE (MC = @mc) AND (CONVERT(varchar(10), wdate, 120) BETWEEN @sd AND @ed) AND (ISNULL(QR, '') LIKE @search) +ORDER BY wdate DESC + + + + + + + + + + + + + SELECT ANGLE, ATIME, BATCH, CUSTCODE, ETIME, GUID, JGUID, JTYPE, LOC, MC, MCN, MFGDATE, PARTNO, PDATE, POS, PRNATTACH, PRNVALID, PTIME, QR, QTY, QTY0, REMARK, RID, RID0, RSN, SID, SID0, STIME, VLOT, VNAME, ZPL, iNBOUND, idx, qtymax, target, wdate FROM Component_Reel_Result WITH (NOLOCK) WHERE (STIME BETWEEN @sd AND @ed) AND (MC = @mc) AND (ISNULL(PRNVALID, 0) = 1) AND (ISNULL(PRNATTACH, 0) = 1) ORDER BY wdate DESC, idx + + + + + + + + + + + + SELECT ANGLE, ATIME, BATCH, CUSTCODE, ETIME, GUID, JGUID, JTYPE, LOC, MC, MCN, MFGDATE, PARTNO, PDATE, POS, PRNATTACH, PRNVALID, PTIME, QR, QTY, QTY0, REMARK, RID, RID0, RSN, SID, SID0, STIME, VLOT, VNAME, ZPL, iNBOUND, idx, qtymax, target, wdate FROM Component_Reel_Result WITH (NOLOCK) WHERE (STIME BETWEEN @sd AND @ed) AND (MC = @mc) AND (ISNULL(PRNVALID, 0) = 1) AND (ISNULL(PRNATTACH, 0) = 1) AND (GUID = @guid) ORDER BY wdate DESC, idx + + + + + + + + + + + + + SELECT COUNT(*) AS Expr1 +FROM Component_Reel_Result +WHERE (iNBOUND = 'OK') AND (SID = @sid) AND (BATCH = @batch) AND (MC <> 'R0') + + + + + + + + + + + SELECT TOP (1) ISNULL(POS, '') AS Expr1 +FROM Component_Reel_Result +WHERE (MC = @mc) AND (SID = @sid) AND (ISNULL(POS, '') <> '') +ORDER BY wdate DESC + + + + + + + + + + + + + + + DELETE FROM [Component_Reel_RegExRule] WHERE (([Id] = @Original_Id) AND ((@IsNull_Seq = 1 AND [Seq] IS NULL) OR ([Seq] = @Original_Seq)) AND ((@IsNull_CustCode = 1 AND [CustCode] IS NULL) OR ([CustCode] = @Original_CustCode)) AND ((@IsNull_Description = 1 AND [Description] IS NULL) OR ([Description] = @Original_Description)) AND ((@IsNull_Symbol = 1 AND [Symbol] IS NULL) OR ([Symbol] = @Original_Symbol)) AND ((@IsNull_Groups = 1 AND [Groups] IS NULL) OR ([Groups] = @Original_Groups)) AND ((@IsNull_IsEnable = 1 AND [IsEnable] IS NULL) OR ([IsEnable] = @Original_IsEnable)) AND ((@IsNull_IsTrust = 1 AND [IsTrust] IS NULL) OR ([IsTrust] = @Original_IsTrust)) AND ((@IsNull_IsAmkStd = 1 AND [IsAmkStd] IS NULL) OR ([IsAmkStd] = @Original_IsAmkStd)) AND ((@IsNull_IsIgnore = 1 AND [IsIgnore] IS NULL) OR ([IsIgnore] = @Original_IsIgnore))) + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO [Component_Reel_RegExRule] ([Seq], [CustCode], [Description], [Symbol], [Pattern], [Groups], [IsEnable], [IsTrust], [IsAmkStd], [IsIgnore]) VALUES (@Seq, @CustCode, @Description, @Symbol, @Pattern, @Groups, @IsEnable, @IsTrust, @IsAmkStd, @IsIgnore); +SELECT Id, Seq, CustCode, Description, Symbol, Pattern, Groups, IsEnable, IsTrust, IsAmkStd, IsIgnore FROM Component_Reel_RegExRule WHERE (Id = SCOPE_IDENTITY()) ORDER BY CustCode, Seq, Description + + + + + + + + + + + + + + + + + SELECT Id, Seq, CustCode, Description, Symbol, Pattern, Groups, IsEnable, IsTrust, IsAmkStd, IsIgnore +FROM Component_Reel_RegExRule +WHERE (ISNULL(CustCode, '') LIKE @custcode) +ORDER BY CustCode, Seq, Description + + + + + + + + UPDATE [Component_Reel_RegExRule] SET [Seq] = @Seq, [CustCode] = @CustCode, [Description] = @Description, [Symbol] = @Symbol, [Pattern] = @Pattern, [Groups] = @Groups, [IsEnable] = @IsEnable, [IsTrust] = @IsTrust, [IsAmkStd] = @IsAmkStd, [IsIgnore] = @IsIgnore WHERE (([Id] = @Original_Id) AND ((@IsNull_Seq = 1 AND [Seq] IS NULL) OR ([Seq] = @Original_Seq)) AND ((@IsNull_CustCode = 1 AND [CustCode] IS NULL) OR ([CustCode] = @Original_CustCode)) AND ((@IsNull_Description = 1 AND [Description] IS NULL) OR ([Description] = @Original_Description)) AND ((@IsNull_Symbol = 1 AND [Symbol] IS NULL) OR ([Symbol] = @Original_Symbol)) AND ((@IsNull_Groups = 1 AND [Groups] IS NULL) OR ([Groups] = @Original_Groups)) AND ((@IsNull_IsEnable = 1 AND [IsEnable] IS NULL) OR ([IsEnable] = @Original_IsEnable)) AND ((@IsNull_IsTrust = 1 AND [IsTrust] IS NULL) OR ([IsTrust] = @Original_IsTrust)) AND ((@IsNull_IsAmkStd = 1 AND [IsAmkStd] IS NULL) OR ([IsAmkStd] = @Original_IsAmkStd)) AND ((@IsNull_IsIgnore = 1 AND [IsIgnore] IS NULL) OR ([IsIgnore] = @Original_IsIgnore))); +SELECT Id, Seq, CustCode, Description, Symbol, Pattern, Groups, IsEnable, IsTrust, IsAmkStd, IsIgnore FROM Component_Reel_RegExRule WHERE (Id = @Id) ORDER BY CustCode, Seq, Description + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT CustCode, Description, Groups, Id, IsAmkStd, IsEnable, IsIgnore, IsTrust, Pattern, Seq, Symbol FROM Component_Reel_RegExRule +ORDER BY CustCode, Seq, Description + + + + + + + + SELECT CustCode, Description, Groups, Id, IsAmkStd, IsEnable, IsIgnore, IsTrust, Pattern, Seq, Symbol FROM Component_Reel_RegExRule WHERE (ISNULL(CustCode, '') = '') OR (ISNULL(CustCode, '') LIKE @custcode) ORDER BY CustCode, Seq, Description + + + + + + + + + + SELECT CustCode, Description, Groups, Id, IsAmkStd, IsEnable, IsIgnore, IsTrust, Pattern, Seq, Symbol +FROM Component_Reel_RegExRule +WHERE (ISNULL(CustCode, '') LIKE @custcode) AND (ISNULL(IsIgnore, 0) = 1) +ORDER BY CustCode, Seq, Description + + + + + + + + + + + + + + DELETE FROM [Component_Reel_SID_Convert] WHERE (([idx] = @Original_idx) AND ((@IsNull_MC = 1 AND [MC] IS NULL) OR ([MC] = @Original_MC)) AND ((@IsNull_Chk = 1 AND [Chk] IS NULL) OR ([Chk] = @Original_Chk)) AND ((@IsNull_SIDFrom = 1 AND [SIDFrom] IS NULL) OR ([SIDFrom] = @Original_SIDFrom)) AND ((@IsNull_SIDTo = 1 AND [SIDTo] IS NULL) OR ([SIDTo] = @Original_SIDTo)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_wdate = 1 AND [wdate] IS NULL) OR ([wdate] = @Original_wdate))) + + + + + + + + + + + + + + + + + + + + INSERT INTO [Component_Reel_SID_Convert] ([MC], [Chk], [SIDFrom], [SIDTo], [Remark], [wdate]) VALUES (@MC, @Chk, @SIDFrom, @SIDTo, @Remark, @wdate); +SELECT idx, MC, Chk, SIDFrom, SIDTo, Remark, wdate FROM Component_Reel_SID_Convert WHERE (idx = SCOPE_IDENTITY()) ORDER BY SIDFrom + + + + + + + + + + + + + SELECT idx, MC, Chk, SIDFrom, SIDTo, Remark, wdate +FROM Component_Reel_SID_Convert WITH (NOLOCK) +WHERE (ISNULL(SIDFrom, '') <> '') AND (ISNULL(SIDTo, '') <> '') AND (ISNULL(SIDFrom, '') <> ISNULL(SIDTo, '')) +ORDER BY SIDFrom + + + + + + UPDATE [Component_Reel_SID_Convert] SET [MC] = @MC, [Chk] = @Chk, [SIDFrom] = @SIDFrom, [SIDTo] = @SIDTo, [Remark] = @Remark, [wdate] = @wdate WHERE (([idx] = @Original_idx) AND ((@IsNull_MC = 1 AND [MC] IS NULL) OR ([MC] = @Original_MC)) AND ((@IsNull_Chk = 1 AND [Chk] IS NULL) OR ([Chk] = @Original_Chk)) AND ((@IsNull_SIDFrom = 1 AND [SIDFrom] IS NULL) OR ([SIDFrom] = @Original_SIDFrom)) AND ((@IsNull_SIDTo = 1 AND [SIDTo] IS NULL) OR ([SIDTo] = @Original_SIDTo)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_wdate = 1 AND [wdate] IS NULL) OR ([wdate] = @Original_wdate))); +SELECT idx, MC, Chk, SIDFrom, SIDTo, Remark, wdate FROM Component_Reel_SID_Convert WHERE (idx = @idx) ORDER BY SIDFrom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DELETE FROM [Component_Reel_SID_Information] WHERE (([idx] = @Original_idx) AND ((@IsNull_MC = 1 AND [MC] IS NULL) OR ([MC] = @Original_MC)) AND ([SID] = @Original_SID) AND ([CustCode] = @Original_CustCode) AND ([PartNo] = @Original_PartNo) AND ((@IsNull_CustName = 1 AND [CustName] IS NULL) OR ([CustName] = @Original_CustName)) AND ((@IsNull_VenderName = 1 AND [VenderName] IS NULL) OR ([VenderName] = @Original_VenderName)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_wdate = 1 AND [wdate] IS NULL) OR ([wdate] = @Original_wdate)) AND ((@IsNull_batch = 1 AND [batch] IS NULL) OR ([batch] = @Original_batch)) AND ((@IsNull_qtymax = 1 AND [qtymax] IS NULL) OR ([qtymax] = @Original_qtymax)) AND ((@IsNull_VenderLot = 1 AND [VenderLot] IS NULL) OR ([VenderLot] = @Original_VenderLot)) AND ((@IsNull_attach = 1 AND [attach] IS NULL) OR ([attach] = @Original_attach))) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO [Component_Reel_SID_Information] ([MC], [SID], [CustCode], [PartNo], [CustName], [VenderName], [Remark], [wdate], [batch], [qtymax], [VenderLot], [attach]) VALUES (@MC, @SID, @CustCode, @PartNo, @CustName, @VenderName, @Remark, @wdate, @batch, @qtymax, @VenderLot, @attach); +SELECT idx, MC, SID, CustCode, PartNo, CustName, VenderName, Remark, wdate, batch, qtymax, VenderLot, attach FROM Component_Reel_SID_Information WITH (NOLOCK) WHERE (idx = SCOPE_IDENTITY()) ORDER BY idx + + + + + + + + + + + + + + + + + + + SELECT idx, MC, SID, CustCode, PartNo, CustName, VenderName, Remark, wdate, batch, qtymax, VenderLot, attach +FROM Component_Reel_SID_Information WITH (NOLOCK) +WHERE (MC = @mcname) +ORDER BY idx + + + + + + + + UPDATE [Component_Reel_SID_Information] SET [MC] = @MC, [SID] = @SID, [CustCode] = @CustCode, [PartNo] = @PartNo, [CustName] = @CustName, [VenderName] = @VenderName, [Remark] = @Remark, [wdate] = @wdate, [batch] = @batch, [qtymax] = @qtymax, [VenderLot] = @VenderLot, [attach] = @attach WHERE (([idx] = @Original_idx) AND ((@IsNull_MC = 1 AND [MC] IS NULL) OR ([MC] = @Original_MC)) AND ([SID] = @Original_SID) AND ([CustCode] = @Original_CustCode) AND ([PartNo] = @Original_PartNo) AND ((@IsNull_CustName = 1 AND [CustName] IS NULL) OR ([CustName] = @Original_CustName)) AND ((@IsNull_VenderName = 1 AND [VenderName] IS NULL) OR ([VenderName] = @Original_VenderName)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_wdate = 1 AND [wdate] IS NULL) OR ([wdate] = @Original_wdate)) AND ((@IsNull_batch = 1 AND [batch] IS NULL) OR ([batch] = @Original_batch)) AND ((@IsNull_qtymax = 1 AND [qtymax] IS NULL) OR ([qtymax] = @Original_qtymax)) AND ((@IsNull_VenderLot = 1 AND [VenderLot] IS NULL) OR ([VenderLot] = @Original_VenderLot)) AND ((@IsNull_attach = 1 AND [attach] IS NULL) OR ([attach] = @Original_attach))); +SELECT idx, MC, SID, CustCode, PartNo, CustName, VenderName, Remark, wdate, batch, qtymax, VenderLot, attach FROM Component_Reel_SID_Information WITH (NOLOCK) WHERE (idx = @idx) ORDER BY idx + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DELETE FROM [Component_Reel_SID_Information] WHERE mc = @mcname + + + + + + + + + + SELECT CustCode, CustName, MC, PartNo, Remark, SID, VenderLot, VenderName, attach, batch, idx, qtymax, wdate FROM Component_Reel_SID_Information WITH (NOLOCK) WHERE (MC = @mcname) AND (SID = @sid) + + + + + + + + + + + SELECT CustCode, CustName, MC, PartNo, Remark, SID, VenderLot, VenderName, attach, batch, idx, qtymax, wdate FROM Component_Reel_SID_Information WITH (NOLOCK) WHERE (MC = @mcname) AND (SID = @sid) AND (ISNULL(CustCode, '') <> '') + + + + + + + + + + + insert into Component_Reel_SID_Information(mc,sid,custcode,partno,custname,vendername,venderlot,printposition,remark,mfg,qtymax,batch,wdate) +select 'IB',sid,custcode,partno,custname,vendername,venderlot,printposition,'disable ECS',mfg,qtymax,batch,wdate +from Component_Reel_SID_Information +where mc = @mcname + + + + + + + + + + + + + + DELETE FROM [Component_Reel_PreSet] WHERE (([idx] = @Original_idx) AND ((@IsNull_MC = 1 AND [MC] IS NULL) OR ([MC] = @Original_MC)) AND ([Title] = @Original_Title) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_wdate = 1 AND [wdate] IS NULL) OR ([wdate] = @Original_wdate)) AND ((@IsNull_vOption = 1 AND [vOption] IS NULL) OR ([vOption] = @Original_vOption)) AND ((@IsNull_vJobInfo = 1 AND [vJobInfo] IS NULL) OR ([vJobInfo] = @Original_vJobInfo)) AND ((@IsNull_vSidInfo = 1 AND [vSidInfo] IS NULL) OR ([vSidInfo] = @Original_vSidInfo)) AND ((@IsNull_vServerWrite = 1 AND [vServerWrite] IS NULL) OR ([vServerWrite] = @Original_vServerWrite)) AND ((@IsNull_jobtype = 1 AND [jobtype] IS NULL) OR ([jobtype] = @Original_jobtype)) AND ((@IsNull_bypasssid = 1 AND [bypasssid] IS NULL) OR ([bypasssid] = @Original_bypasssid))) + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO [Component_Reel_PreSet] ([MC], [Title], [Remark], [wdate], [vOption], [vJobInfo], [vSidInfo], [vServerWrite], [jobtype], [bypasssid]) VALUES (@MC, @Title, @Remark, @wdate, @vOption, @vJobInfo, @vSidInfo, @vServerWrite, @jobtype, @bypasssid); +SELECT idx, MC, Title, Remark, wdate, vOption, vJobInfo, vSidInfo, vServerWrite, jobtype, bypasssid FROM Component_Reel_PreSet WHERE (idx = SCOPE_IDENTITY()) + + + + + + + + + + + + + + + + + SELECT idx, MC, Title, Remark, wdate, vOption, vJobInfo, vSidInfo, vServerWrite, jobtype, bypasssid +FROM Component_Reel_PreSet +WHERE (ISNULL(MC, '') = @mc) + + + + + + + + UPDATE [Component_Reel_PreSet] SET [MC] = @MC, [Title] = @Title, [Remark] = @Remark, [wdate] = @wdate, [vOption] = @vOption, [vJobInfo] = @vJobInfo, [vSidInfo] = @vSidInfo, [vServerWrite] = @vServerWrite, [jobtype] = @jobtype, [bypasssid] = @bypasssid WHERE (([idx] = @Original_idx) AND ((@IsNull_MC = 1 AND [MC] IS NULL) OR ([MC] = @Original_MC)) AND ([Title] = @Original_Title) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_wdate = 1 AND [wdate] IS NULL) OR ([wdate] = @Original_wdate)) AND ((@IsNull_vOption = 1 AND [vOption] IS NULL) OR ([vOption] = @Original_vOption)) AND ((@IsNull_vJobInfo = 1 AND [vJobInfo] IS NULL) OR ([vJobInfo] = @Original_vJobInfo)) AND ((@IsNull_vSidInfo = 1 AND [vSidInfo] IS NULL) OR ([vSidInfo] = @Original_vSidInfo)) AND ((@IsNull_vServerWrite = 1 AND [vServerWrite] IS NULL) OR ([vServerWrite] = @Original_vServerWrite)) AND ((@IsNull_jobtype = 1 AND [jobtype] IS NULL) OR ([jobtype] = @Original_jobtype)) AND ((@IsNull_bypasssid = 1 AND [bypasssid] IS NULL) OR ([bypasssid] = @Original_bypasssid))); +SELECT idx, MC, Title, Remark, wdate, vOption, vJobInfo, vSidInfo, vServerWrite, jobtype, bypasssid FROM Component_Reel_PreSet WHERE (idx = @idx) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DELETE FROM [Component_Reel_CustInfo] WHERE (([code] = @Original_code) AND ((@IsNull_name = 1 AND [name] IS NULL) OR ([name] = @Original_name))) + + + + + + + + + + INSERT INTO [Component_Reel_CustInfo] ([code], [name]) VALUES (@code, @name); +SELECT code, name FROM Component_Reel_CustInfo WHERE (code = @code) + + + + + + + + + SELECT code, name +FROM Component_Reel_CustInfo WITH (NOLOCK) + + + + + + UPDATE [Component_Reel_CustInfo] SET [code] = @code, [name] = @name WHERE (([code] = @Original_code) AND ((@IsNull_name = 1 AND [name] IS NULL) OR ([name] = @Original_name))); +SELECT code, name FROM Component_Reel_CustInfo WHERE (code = @code) + + + + + + + + + + + + + + + + + + + + + + + SELECT PARTNO, VLOT, COUNT(*) AS QTY, SUM(QTY) / 1000 AS KPC +FROM Component_Reel_Result +WHERE (ISNULL(MC, '') = @mc) AND (PRNATTACH = 1) AND (CONVERT(varchar(10), STIME, 120) BETWEEN @sd AND @ed) +GROUP BY PARTNO, VLOT +ORDER BY PARTNO, VLOT + + + + + + + + + + + + + + + + + + + + + + + DELETE FROM [Component_Reel_Print_Information] WHERE (([idx] = @Original_idx) AND ((@IsNull_MC = 1 AND [MC] IS NULL) OR ([MC] = @Original_MC)) AND ([SID] = @Original_SID) AND ((@IsNull_PrintPosition = 1 AND [PrintPosition] IS NULL) OR ([PrintPosition] = @Original_PrintPosition)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_wdate = 1 AND [wdate] IS NULL) OR ([wdate] = @Original_wdate))) + + + + + + + + + + + + + + + + + INSERT INTO [Component_Reel_Print_Information] ([MC], [SID], [PrintPosition], [Remark], [wdate]) VALUES (@MC, @SID, @PrintPosition, @Remark, @wdate); +SELECT idx, MC, SID, PrintPosition, Remark, wdate FROM Component_Reel_Print_Information WHERE (idx = SCOPE_IDENTITY()) + + + + + + + + + + + + SELECT idx, MC, SID, PrintPosition, Remark, wdate +FROM Component_Reel_Print_Information WITH (NOLOCK) +WHERE (MC = @mc) + + + + + + + + UPDATE [Component_Reel_Print_Information] SET [MC] = @MC, [SID] = @SID, [PrintPosition] = @PrintPosition, [Remark] = @Remark, [wdate] = @wdate WHERE (([idx] = @Original_idx) AND ((@IsNull_MC = 1 AND [MC] IS NULL) OR ([MC] = @Original_MC)) AND ([SID] = @Original_SID) AND ((@IsNull_PrintPosition = 1 AND [PrintPosition] IS NULL) OR ([PrintPosition] = @Original_PrintPosition)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_wdate = 1 AND [wdate] IS NULL) OR ([wdate] = @Original_wdate))); +SELECT idx, MC, SID, PrintPosition, Remark, wdate FROM Component_Reel_Print_Information WHERE (idx = @idx) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT idx, MC, SID, PrintPosition, Remark, wdate +FROM Component_Reel_Print_Information WITH (NOLOCK) +WHERE (MC = @mc) AND (SID = @sid) + + + + + + + + + + + + + + + DELETE FROM [Component_Reel_PrintRegExRule] WHERE (([Id] = @Original_Id) AND ((@IsNull_Seq = 1 AND [Seq] IS NULL) OR ([Seq] = @Original_Seq)) AND ((@IsNull_CustCode = 1 AND [CustCode] IS NULL) OR ([CustCode] = @Original_CustCode)) AND ((@IsNull_Description = 1 AND [Description] IS NULL) OR ([Description] = @Original_Description)) AND ((@IsNull_Symbol = 1 AND [Symbol] IS NULL) OR ([Symbol] = @Original_Symbol)) AND ((@IsNull_Groups = 1 AND [Groups] IS NULL) OR ([Groups] = @Original_Groups)) AND ((@IsNull_IsEnable = 1 AND [IsEnable] IS NULL) OR ([IsEnable] = @Original_IsEnable)) AND ((@IsNull_IsTrust = 1 AND [IsTrust] IS NULL) OR ([IsTrust] = @Original_IsTrust)) AND ((@IsNull_IsAmkStd = 1 AND [IsAmkStd] IS NULL) OR ([IsAmkStd] = @Original_IsAmkStd)) AND ((@IsNull_IsIgnore = 1 AND [IsIgnore] IS NULL) OR ([IsIgnore] = @Original_IsIgnore))) + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO [Component_Reel_PrintRegExRule] ([Seq], [CustCode], [Description], [Symbol], [Pattern], [Groups], [IsEnable], [IsTrust], [IsAmkStd], [IsIgnore]) VALUES (@Seq, @CustCode, @Description, @Symbol, @Pattern, @Groups, @IsEnable, @IsTrust, @IsAmkStd, @IsIgnore); +SELECT Id, Seq, CustCode, Description, Symbol, Pattern, Groups, IsEnable, IsTrust, IsAmkStd, IsIgnore FROM Component_Reel_PrintRegExRule WHERE (Id = SCOPE_IDENTITY()) + + + + + + + + + + + + + + + + + SELECT Component_Reel_PrintRegExRule.* +FROM Component_Reel_PrintRegExRule + + + + + + UPDATE [Component_Reel_PrintRegExRule] SET [Seq] = @Seq, [CustCode] = @CustCode, [Description] = @Description, [Symbol] = @Symbol, [Pattern] = @Pattern, [Groups] = @Groups, [IsEnable] = @IsEnable, [IsTrust] = @IsTrust, [IsAmkStd] = @IsAmkStd, [IsIgnore] = @IsIgnore WHERE (([Id] = @Original_Id) AND ((@IsNull_Seq = 1 AND [Seq] IS NULL) OR ([Seq] = @Original_Seq)) AND ((@IsNull_CustCode = 1 AND [CustCode] IS NULL) OR ([CustCode] = @Original_CustCode)) AND ((@IsNull_Description = 1 AND [Description] IS NULL) OR ([Description] = @Original_Description)) AND ((@IsNull_Symbol = 1 AND [Symbol] IS NULL) OR ([Symbol] = @Original_Symbol)) AND ((@IsNull_Groups = 1 AND [Groups] IS NULL) OR ([Groups] = @Original_Groups)) AND ((@IsNull_IsEnable = 1 AND [IsEnable] IS NULL) OR ([IsEnable] = @Original_IsEnable)) AND ((@IsNull_IsTrust = 1 AND [IsTrust] IS NULL) OR ([IsTrust] = @Original_IsTrust)) AND ((@IsNull_IsAmkStd = 1 AND [IsAmkStd] IS NULL) OR ([IsAmkStd] = @Original_IsAmkStd)) AND ((@IsNull_IsIgnore = 1 AND [IsIgnore] IS NULL) OR ([IsIgnore] = @Original_IsIgnore))); +SELECT Id, Seq, CustCode, Description, Symbol, Pattern, Groups, IsEnable, IsTrust, IsAmkStd, IsIgnore FROM Component_Reel_PrintRegExRule WHERE (Id = @Id) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT CustCode +FROM Component_Reel_SID_Information WITH (NOLOCK) +WHERE (MC = @mcname) +GROUP BY CustCode +ORDER BY CustCode + + + + + + + + + + + + + + + + + + select isnull(name,'') +from [Component_Reel_CustInfo] +where code = @code + + + + + + + + + + UPDATE [Component_Reel_CustInfo] set name = @newname +where code = @custcode + + + + + + + + + + + select isnull(sid,'') +from Component_Reel_SID_Information +where custcode = @custcode and partno = @partno + + + + + + + + + + + SELECT TOP (1) ISNULL(VLOT, '') AS Expr1 +FROM Component_Reel_Result +WHERE (SID = @isd) +ORDER BY wdate DESC + + + + + + + + + + SELECT count(*) FROM Component_Reel_SID_Information WHERE (MC = @mcname) and sid = @sid + + + + + + + + + + + SELECT COUNT(*) AS Expr1 +FROM Component_Reel_Result +WHERE (iNBOUND = 'OK') AND (STIME >= @stime) AND (SID = @sid) AND (BATCH = @batch) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Handler/Project/DataSet1.xss b/Handler/Project/DataSet1.xss new file mode 100644 index 0000000..62c54e7 --- /dev/null +++ b/Handler/Project/DataSet1.xss @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Handler/Project/Device/KeyenceBarcode.cs b/Handler/Project/Device/KeyenceBarcode.cs new file mode 100644 index 0000000..dbc765d --- /dev/null +++ b/Handler/Project/Device/KeyenceBarcode.cs @@ -0,0 +1,455 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Net; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using System.Drawing.Imaging; +using System.Runtime.InteropServices; +using AR; + +namespace Project.Device +{ + public class KeyenceBarcode : IDisposable + { + public string IP { get; set; } + public int Port { get; set; } + private Winsock_Orcas.Winsock ws; + public event EventHandler BarcodeRecv; + public event EventHandler ImageRecv; + RecvDataEvent LastData = null; + RecvImageEvent LastImage = null; + + public Boolean IsTriggerOn { get; set; } = false; + private DateTime LastTrigOnTime = DateTime.Now; + private System.Threading.Thread thliveimage = null; + public int LiveImagetDelay = 500; + public bool disposed = false; + bool bRunConnectionK = true; + public string Tag { get; set; } + + + public string baseZPL { get; set; } + + public class RecvDataEvent : EventArgs + { + public string RawData { get; set; } + public RecvDataEvent(string rawdata) + { + this.RawData = rawdata; + } + } + public class RecvImageEvent : EventArgs + { + public Image Image { get; set; } + public RecvImageEvent(Image rawdata) + { + this.Image = rawdata; + } + } + + public KeyenceBarcode(string ip = "192.168.100.100", int port = 9004) + { + this.IP = ip; + this.Port = port; + ws = new Winsock_Orcas.Winsock(); + ws.LegacySupport = true; + ws.DataArrival += Ws_DataArrival; + ws.Connected += Ws_Connected; + thliveimage = new Thread(new ThreadStart(GetLiveImage)); + thliveimage.IsBackground = false; + thliveimage.Start(); + Console.WriteLine($"{ip} / Port:{port}"); + } + + ~KeyenceBarcode() + { + Dispose(disposing: false); + } + public void Dispose() + { + Dispose(disposing: true); + GC.SuppressFinalize(this); + } + + #region "Image Utility" + + /// + /// 8bpp 이미지의 팔레트를 설정합니다 + /// + /// + public void UpdateGrayPallete(ref Bitmap bmp) + { + if (bmp.PixelFormat == System.Drawing.Imaging.PixelFormat.Format8bppIndexed) + { + System.Drawing.Imaging.ColorPalette pal = bmp.Palette; + for (int i = 0; i < 256; i++) + { + pal.Entries[i] = Color.FromArgb(i, i, i); + } + bmp.Palette = pal; + } + } + public void GetImagePtr(Bitmap bmp, out IntPtr ptr, out int stride) + { + stride = 0; + ptr = IntPtr.Zero; + try + { + BitmapData bmpdata = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), System.Drawing.Imaging.ImageLockMode.ReadOnly, bmp.PixelFormat); + ptr = bmpdata.Scan0; + stride = bmpdata.Stride; + bmp.UnlockBits(bmpdata); + } + catch (Exception ex) + { + + } + } + + public bool IsCompatible(Bitmap source, Bitmap target) + { + if (source == null) return false; + try + { + if (source.Height != target.Height || + source.Width != target.Width || + source.PixelFormat != target.PixelFormat) return false; + return true; + } + catch (Exception ex) + { + PUB.log.AddE("keyence compatiable : " + ex.Message); + return false; + } + + + } + public bool IsCompatible(Bitmap source, int w, int h, PixelFormat pf) + { + if (source == null) return false; + if (source.Height != h || + source.Width != w || + source.PixelFormat != pf) return false; + + return true; + } + + public Bitmap CreateBitmap(int w, int h) + { + + Bitmap bmp = new Bitmap(w, h, PixelFormat.Format8bppIndexed); + UpdateGrayPallete(ref bmp); + return bmp; + } + + byte[] memorybuffer; + public void UpdateBitmap(Bitmap source, Bitmap target) + { + if (source.Width < 10 || source.Height < 10) return; + if (target == null || target.Width < 10 || target.Height < 10) + { + target = CreateBitmap(source.Width, source.Height); + } + + var bitmaperrcnt = AR.VAR.I32[eVarInt32.BitmapCompatErr]; + if (IsCompatible(source, target) == false) + { + PUB.log.AddE($"키엔스비트맵호환오류 원본:{source.Width}x{source.Height} => 대상:{target.Width}x{target.Height}"); + + if (bitmaperrcnt > 5) + { + var o = target; + target = CreateBitmap(source.Width, source.Height); + if (o != null) o.Dispose(); + bitmaperrcnt = 0; + } + else AR.VAR.I32[eVarInt32.BitmapCompatErr] += 1; + + return; + } + else + { + if (bitmaperrcnt > 0) + AR.VAR.I32[eVarInt32.BitmapCompatErr] = 0; + } + + //get image pointer + BitmapData bmpdatas = source.LockBits(new Rectangle(0, 0, source.Width, source.Height), System.Drawing.Imaging.ImageLockMode.ReadOnly, source.PixelFormat); + var ptrs = bmpdatas.Scan0; + var strides = bmpdatas.Stride; + + BitmapData bmpdatat = target.LockBits(new Rectangle(0, 0, target.Width, target.Height), System.Drawing.Imaging.ImageLockMode.WriteOnly, target.PixelFormat); + var ptrt = bmpdatat.Scan0; + var stridet = bmpdatat.Stride; + + //read source data + var sourcesize = Math.Abs(bmpdatas.Stride) * source.Height; + if (memorybuffer == null || memorybuffer.Length != sourcesize) + { + memorybuffer = new byte[sourcesize]; + } + + Marshal.Copy(ptrs, memorybuffer, 0, sourcesize); + + //write target data + Marshal.Copy(memorybuffer, 0, ptrt, sourcesize); + + source.UnlockBits(bmpdatas); + target.UnlockBits(bmpdatat); + + } + + public void UpdateBitmap(Bitmap target, byte[] buffer, int w, int h) + { + if (IsCompatible(target, w, h, target.PixelFormat) == false) + { + throw new Exception("cannot udate incompatible bitmap."); + } + + //get image pointer + BitmapData bmpdata = target.LockBits(new Rectangle(0, 0, target.Width, target.Height), System.Drawing.Imaging.ImageLockMode.ReadWrite, target.PixelFormat); + var ptr = bmpdata.Scan0; + var stride = bmpdata.Stride; + + + if (stride == w) //image x4 + { + Marshal.Copy(buffer, 0, ptr, stride * h); + } + else + { + for (int i = 0; i < target.Height; ++i) + { + Marshal.Copy(buffer, i * w, new IntPtr(ptr.ToInt64() + i * stride), w); + } + } + + target.UnlockBits(bmpdata); + + + } + + + #endregion + + + protected virtual void Dispose(bool disposing) + { + if (!this.disposed) + { + if (disposing) + { + //dipose managed resources; + bRunConnectionK = false; + Trigger(false); + ws.DataArrival -= Ws_DataArrival; + ws.Connected -= Ws_Connected; + Disconnect(); + if (thliveimage != null && thliveimage.IsAlive) thliveimage.Abort(); + } + + //dispose unmmanged resources; + } + + disposed = true; + } + + void GetLiveImage() + { + while (bRunConnectionK) + { + if (IsConnect && IsTriggerOn) + { + var tagname = this.Tag; + var img = GetImage(); + this.LastImage = new RecvImageEvent(img); + ImageRecv?.Invoke(this, this.LastImage); + System.Threading.Thread.Sleep(LiveImagetDelay); + } + else System.Threading.Thread.Sleep(1000); + } + } + + private void Ws_Connected(object sender, Winsock_Orcas.WinsockConnectedEventArgs e) + { + this.Trigger(true); + } + + public void Connect() + { + if (this.ws.State == Winsock_Orcas.WinsockStates.Closed) + { + this.ws.RemoteHost = this.IP; + this.ws.RemotePort = this.Port; + this.ws.Connect(); + } + + } + public void Disconnect() + { + if (this.ws.State != Winsock_Orcas.WinsockStates.Closed) + this.ws.Close(); + } + + private void Ws_DataArrival(object sender, Winsock_Orcas.WinsockDataArrivalEventArgs e) + { + var data = ws.Get(); + this.LastData = new RecvDataEvent(data); + BarcodeRecv?.Invoke(this, LastData); + } + + public bool Reset() + { + //if (IsTriggerOn) return; + string cmd = "RESET"; + if (IsConnect == false) + { + PUB.log.AddE("Keyence Not Connected : RESET"); + return false; + } + try + { + ws.Send(cmd + "\r"); + return true; + } + catch (Exception ex) + { + PUB.log.AddE(ex.Message); + return false; + } + } + + + public void Trigger(bool bOn) + { + //if (IsTriggerOn) return; + string cmd = bOn ? "LON" : "LOFF"; + + if (bOn) LastTrigOnTime = DateTime.Now; + + try + { + ws.Send(cmd + "\r"); + IsTriggerOn = bOn; + } + catch { } + } + public void ExecCommand(string cmd) + { + try + { + ws.Send(cmd + "\r"); + } + catch { } + } + public bool IsConnect + { + get + { + if (ws == null) return false; + return ws.State == Winsock_Orcas.WinsockStates.Connected; + } + } + + private bool readimage = false; + ManualResetEvent mre = new ManualResetEvent(true); + bool mreSetOK = true; + bool mreResetOK = true; + + public Image GetImage() + { + Image oimg = null; + if (mreResetOK && mre.WaitOne(1000) == false) + { + mreResetOK = false; + return oimg; + } + else + { + mreResetOK = mre.Reset(); + try + { + var url = $"http://{this.IP}/liveimage.jpg"; + var data = UTIL.DownloadImagefromUrl(url); + var ms = new System.IO.MemoryStream(data); + oimg = Image.FromStream(ms); + } + catch (Exception ex) + { + PUB.log.AddE("Keyence GetImage:" + ex.Message); + } + + if (mreResetOK) + { + mreSetOK = mre.Set(); + } + } + return oimg; + } + + public bool SaveImage(string fn) + { + var fi = new System.IO.FileInfo(fn); + if (fi.Directory.Exists == false) + fi.Directory.Create(); + + + + if (mreResetOK && mre.WaitOne(1000) == false) + { + mreResetOK = false; + return false; + } + else + { + bool retval = false; + mreResetOK = mre.Reset(); + try + { + var url = $"http://{this.IP}/liveimage.jpg"; + var data = UTIL.DownloadImagefromUrl(url); + using (var ms = new System.IO.MemoryStream(data)) + { + using (var oimg = Image.FromStream(ms)) + oimg.Save(fi.FullName); + } + retval = true; + } + catch (Exception ex) + { + + } + if (mreResetOK) + mre.Set(); + return retval; + } + } + + public bool UpdateKeyenceImage(ref System.Windows.Forms.PictureBox pic) + { + bool retval = false; + if (readimage) + { + PUB.log.AddAT("키엔스 이미지를 받고 잇어 명령을 처리하지 않음"); + } + else + { + readimage = true; + var oimg = pic.Image; + + var newimage = GetImage(); + + pic.Image = newimage; + retval = newimage != null; + if (oimg != null) oimg.Dispose(); + + } + readimage = false; + return retval; + } + } +} diff --git a/Handler/Project/Device/SATOPrinter.cs b/Handler/Project/Device/SATOPrinter.cs new file mode 100644 index 0000000..68f1988 --- /dev/null +++ b/Handler/Project/Device/SATOPrinter.cs @@ -0,0 +1,116 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Project.Device +{ + public class SATOPrinter : arDev.RS232 + { + public string LastPrintZPL = string.Empty; + public string qrData = string.Empty; + public string baseZPL + { + get + { + var fi = new System.IO.FileInfo(AR.SETTING.Data.baseZPLFile); + if (fi.Exists) + { + return System.IO.File.ReadAllText(fi.FullName, System.Text.Encoding.Default); + } + else return Properties.Settings.Default.ZPL7; + } + } + + public SATOPrinter() + { + //this.baseZPL = Properties.Settings.Default.ZPL7; + this.Terminal = eTerminal.CR; + this.ReceiveData += SATOPrinter_ReceiveData; + this.ReceiveData_Raw += SATOPrinter_ReceiveData_Raw; + } + + private void SATOPrinter_ReceiveData_Raw(object sender, ReceiveDataEventArgs e) + { + PUB.log.Add($"SATO Recv(RAW) : " + e.StrValue); + } + + private void SATOPrinter_ReceiveData(object sender, ReceiveDataEventArgs e) + { + PUB.log.Add($"SATO Recv : " + e.StrValue); + } + + public Boolean TestPrint(Boolean drawbox, string manu = "", string mfgdate = "") + { + var dtstr = DateTime.Now.ToShortDateString(); + var printcode = "103077807;Z577603504;105-35282-1105;15000;RC00004A219001W;20210612"; + var reel = new Class.Reel(printcode); + //reel.id = "RLID" + DateTime.Now.ToString("MMHHmmssfff"); + reel.sid = "103000000"; + reel.partnum = "PARTNO".PadRight(20, '0'); //20자리 + + if (mfgdate == "") reel.mfg = dtstr; + else reel.mfg = mfgdate; + + reel.lot = "LOT000000000"; + if (manu == "") reel.manu = "ATK4EET1"; + else reel.manu = manu; + + reel.qty = 15000; + var rlt = Print(reel, true, drawbox); + var fi = new System.IO.FileInfo(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "temp_zpl.txt")); + System.IO.File.WriteAllText(fi.FullName, LastPrintZPL, System.Text.Encoding.Default); + return rlt; + } + + + public Boolean Print(Class.Reel reel, Boolean display1drid, Boolean drawOUtBox) + { + string prtData; + prtData = makeZPL_210908(reel, drawOUtBox, out qrData); + + return Print(prtData); + } + + public bool Print(string _zpl) + { + this.LastPrintZPL = _zpl; + if (this.IsOpen() == false) return false; + + try + { + this.Write(_zpl); + return true; + } + catch (Exception ex) + { + return false; + } + } + + public string makeZPL_210908(Class.Reel reel, Boolean drawbox, out string qrData) + { + string m_strSend = string.Empty; + qrData = string.Format("{0};{1};{2};{3};{4};{5};{6}", reel.sid, reel.lot, reel.manu, reel.qty, reel.id, reel.mfg, reel.partnum); + + var reeid = reel.id; + if (reeid.Length > 20) + reeid = "..." + reeid.Substring(reeid.Length - 20); + + m_strSend = this.baseZPL; + m_strSend = m_strSend.Replace("{qrData}", qrData); + m_strSend = m_strSend.Replace("{sid}", reel.sid); + m_strSend = m_strSend.Replace("{lot}", reel.lot); + m_strSend = m_strSend.Replace("{partnum}", reel.partnum); + m_strSend = m_strSend.Replace("{rid}", reeid); + m_strSend = m_strSend.Replace("{qty}", reel.qty.ToString()); + m_strSend = m_strSend.Replace("{mfg}", reel.mfg); + m_strSend = m_strSend.Replace("{supply}", reel.manu); + + //줄바꿈제거 + m_strSend = m_strSend.Replace("\r", "").Replace("\n", ""); + return m_strSend; + } + } +} \ No newline at end of file diff --git a/Handler/Project/Device/SATOPrinterAPI.cs b/Handler/Project/Device/SATOPrinterAPI.cs new file mode 100644 index 0000000..3c42e54 --- /dev/null +++ b/Handler/Project/Device/SATOPrinterAPI.cs @@ -0,0 +1,282 @@ +using arCtl; +using SATOPrinterAPI; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Project.Device +{ + public class SATOPrinterAPI : IDisposable + { + private bool disposed = false; + Printer SATOPrinter = null; + public string LastPrintZPL = string.Empty; + public string qrData = string.Empty; + public string PortName { get; set; } + public int BaudRate { get; set; } + public string baseZPL + { + get + { + var fi = new System.IO.FileInfo(AR.SETTING.Data.baseZPLFile); + if (fi.Exists) + { + return System.IO.File.ReadAllText(fi.FullName, System.Text.Encoding.Default); + } + else return Properties.Settings.Default.ZPL7; + } + } + + public SATOPrinterAPI() + { + SATOPrinter = new Printer(); + SATOPrinter.Timeout = 2500; + SATOPrinter.Interface = Printer.InterfaceType.COM; + SATOPrinter.ByteAvailable += SATOPrinter_ByteAvailable; + } + + + bool _isopen = false; + public bool Open() + { + try + { + SATOPrinter.COMPort = this.PortName; + SATOPrinter.COMSetting.Baudrate = this.BaudRate; + SATOPrinter.Connect(); + _isopen = true; + return _isopen; + } + catch { _isopen = false; return false; } + + } + private string ControlCharReplace(string data) + { + Dictionary chrList = ControlCharList(); + foreach (string key in chrList.Keys) + { + data = data.Replace(key, chrList[key].ToString()); + } + return data; + } + private Dictionary ControlCharList() + { + Dictionary ctr = new Dictionary(); + ctr.Add("[NUL]", '\u0000'); + ctr.Add("[SOH]", '\u0001'); + ctr.Add("[STX]", '\u0002'); + ctr.Add("[ETX]", '\u0003'); + ctr.Add("[EOT]", '\u0004'); + ctr.Add("[ENQ]", '\u0005'); + ctr.Add("[ACK]", '\u0006'); + ctr.Add("[BEL]", '\u0007'); + ctr.Add("[BS]", '\u0008'); + ctr.Add("[HT]", '\u0009'); + ctr.Add("[LF]", '\u000A'); + ctr.Add("[VT]", '\u000B'); + ctr.Add("[FF]", '\u000C'); + ctr.Add("[CR]", '\u000D'); + ctr.Add("[SO]", '\u000E'); + ctr.Add("[SI]", '\u000F'); + ctr.Add("[DLE]", '\u0010'); + ctr.Add("[DC1]", '\u0011'); + ctr.Add("[DC2]", '\u0012'); + ctr.Add("[DC3]", '\u0013'); + ctr.Add("[DC4]", '\u0014'); + ctr.Add("[NAK]", '\u0015'); + ctr.Add("[SYN]", '\u0016'); + ctr.Add("[ETB]", '\u0017'); + ctr.Add("[CAN]", '\u0018'); + ctr.Add("[EM]", '\u0019'); + ctr.Add("[SUB]", '\u001A'); + ctr.Add("[ESC]", '\u001B'); + ctr.Add("[FS]", '\u001C'); + ctr.Add("[GS]", '\u001D'); + ctr.Add("[RS]", '\u001E'); + ctr.Add("[US]", '\u001F'); + ctr.Add("[DEL]", '\u007F'); + return ctr; + } + + + private bool Query(string cmd, out string errmsg) + { + errmsg = string.Empty; + if (string.IsNullOrEmpty(cmd)) + { + errmsg = "No Command"; + return false; + } + + try + { + byte[] cmddata = Utils.StringToByteArray(ControlCharReplace(cmd)); + byte[] receiveData = SATOPrinter.Query(cmddata); + + if (receiveData != null) + { + errmsg = ControlCharConvert(Utils.ByteArrayToString(receiveData)); + } + return true; + } + catch (Exception ex) + { + errmsg = ex.Message; + return false; + } + + } + private string ControlCharConvert(string data) + { + Dictionary chrList = ControlCharList().ToDictionary(x => x.Value, x => x.Key); + foreach (char key in chrList.Keys) + { + data = data.Replace(key.ToString(), chrList[key]); + } + return data; + } + + + ~SATOPrinterAPI() + { + Dispose(disposing: false); + } + public void Dispose() + { + Dispose(disposing: true); + // This object will be cleaned up by the Dispose method. + // Therefore, you should call GC.SuppressFinalize to + // take this object off the finalization queue + // and prevent finalization code for this object + // from executing a second time. + GC.SuppressFinalize(this); + } + protected virtual void Dispose(bool disposing) + { + // Check to see if Dispose has already been called. + if (!this.disposed) + { + // If disposing equals true, dispose all managed + // and unmanaged resources. + if (disposing) + { + // Dispose managed resources. + //component.Dispose(); + + } + SATOPrinter.Disconnect(); + // Note disposing has been done. + disposed = true; + } + } + + public bool IsOpen + { + get + { + + if (_isopen == false || SATOPrinter == null) return false; + try + { + return true;// return SATOPrinter.IsBusy; + //var prn = this.SATOPrinter.GetPrinterStatus(); + //return prn.IsOnline; + } + catch { return false; } + + } + } + private void SATOPrinter_ByteAvailable(object sender, Printer.ByteAvailableEventArgs e) + { + byte[] rawData = e.Data; + var msg = Utils.ByteArrayToString(rawData);// System.Text.Encoding.Default.GetString(rawData); + PUB.log.Add($"SATO Recv : " + msg); + } + + + // private void SATOPrinter_ReceiveData_Raw(object sender, ReceiveDataEventArgs e) + //{ + // PUB.log.Add($"SATO Recv(RAW) : " + e.StrValue); + //} + + //private void SATOPrinter_ReceiveData(object sender, ReceiveDataEventArgs e) + //{ + // PUB.log.Add($"SATO Recv : " + e.StrValue); + //} + + public Boolean TestPrint(Boolean drawbox, string manu = "", string mfgdate = "") + { + var dtstr = DateTime.Now.ToShortDateString(); + var printcode = "103077807;Z577603504;105-35282-1105;15000;RC00004A219001W;20210612"; + var reel = new Class.Reel(printcode); + //reel.id = "RLID" + DateTime.Now.ToString("MMHHmmssfff"); + reel.sid = "103000000"; + reel.partnum = "PARTNO".PadRight(20, '0'); //20자리 + + if (mfgdate == "") reel.mfg = dtstr; + else reel.mfg = mfgdate; + + reel.lot = "LOT000000000"; + if (manu == "") reel.manu = "ATK4EET1"; + else reel.manu = manu; + + reel.qty = 15000; + var rlt = Print(reel, true, drawbox); + var fi = new System.IO.FileInfo(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "temp_zpl.txt")); + System.IO.File.WriteAllText(fi.FullName, LastPrintZPL, System.Text.Encoding.Default); + return rlt; + } + + + public Boolean Print(Class.Reel reel, Boolean display1drid, Boolean drawOUtBox) + { + string prtData; + prtData = makeZPL_210908(reel, drawOUtBox, out qrData); + + return Print(prtData); + } + + public bool Print(string _zpl) + { + this.LastPrintZPL = _zpl; + //if (this.IsOpen == false) return false; + try + { + byte[] cmddata = Utils.StringToByteArray(ControlCharReplace(_zpl)); + SATOPrinter.Send(cmddata); + return true; + } + catch (Exception ex) + { + return false; + } + } + + public string makeZPL_210908(Class.Reel reel, Boolean drawbox, out string qrData) + { + string m_strSend = string.Empty; + qrData = string.Format("{0};{1};{2};{3};{4};{5};{6}", reel.sid, reel.lot, reel.manu, reel.qty, reel.id, reel.mfg, reel.partnum); + + var reeid = reel.id; + if (reeid.Length > 20) + reeid = "..." + reeid.Substring(reeid.Length - 20); + + m_strSend = this.baseZPL; + m_strSend = m_strSend.Replace("{qrData}", qrData); + m_strSend = m_strSend.Replace("{sid}", reel.sid); + m_strSend = m_strSend.Replace("{lot}", reel.lot); + m_strSend = m_strSend.Replace("{partnum}", reel.partnum); + m_strSend = m_strSend.Replace("{rid}", reeid); + m_strSend = m_strSend.Replace("{qty}", reel.qty.ToString()); + m_strSend = m_strSend.Replace("{mfg}", reel.mfg); + m_strSend = m_strSend.Replace("{supply}", reel.manu); + + //줄바꿈제거 + m_strSend = m_strSend.Replace("\r", "").Replace("\n", ""); + return m_strSend; + } + } +} \ No newline at end of file diff --git a/Handler/Project/Device/StateMachine.cs b/Handler/Project/Device/StateMachine.cs new file mode 100644 index 0000000..45c1ce2 --- /dev/null +++ b/Handler/Project/Device/StateMachine.cs @@ -0,0 +1,91 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Project.Device +{ + public class CSequence : AR.StateMachineSequence + { + public CSequence(int stepLen = 255) : base(stepLen) { } + + public void Clear(eSMStep idx) + { + base.Clear((int)idx); + } + public int Get(eSMStep idx) + { + return base.Get((int)idx); + } + + public void Set(eSMStep idx, byte value) + { + base.Set((int)idx, value); + } + + + public void Update(eSMStep idx, int incValue = 1) + { + base.Update((int)idx, incValue); + } + public TimeSpan GetTime(eSMStep idx = 0) + { + return base.GetTime((int)idx); + } + public int GetData(eSMStep idx) + { + return base.GetData((int)idx); + } + public void ClearData(eSMStep idx) { base.ClearData((int)idx); } + public void AddData(eSMStep idx, byte value = 1) + { + base.AddData((int)idx, value); + } + public void SetData(eSMStep idx, byte value) + { + _runseqdata[(int)idx] = value; + } + + public void UpdateTime(eSMStep idx) + { + _runseqtime[(int)idx] = DateTime.Now; + } + } + + public class CStateMachine : AR.StateMachine + { + /// + /// Sequece Value / data + /// + public CSequence seq; + public eSMStep PrePauseStep = eSMStep.NOTSET; + public CStateMachine() + { + seq = new CSequence(255); + } + + public new eSMStep Step { get { return (eSMStep)base.Step; } } + public void SetNewStep(eSMStep newstep_, Boolean force = false) + { + //일시중지라면 중지전의 상태를 백업한다 + if (newstep_ == eSMStep.PAUSE && this.Step != eSMStep.PAUSE && this.Step != eSMStep.WAITSTART) PrePauseStep = this.Step; + base.SetNewStep((byte)newstep_, force); + } + + public new eSMStep getNewStep + { + get + { + return (eSMStep)newstep_; + } + } + public new eSMStep getOldStep + { + get + { + return (eSMStep)oldstep_; + } + } + } +} diff --git a/Handler/Project/Device/TowerLamp.cs b/Handler/Project/Device/TowerLamp.cs new file mode 100644 index 0000000..f7ca364 --- /dev/null +++ b/Handler/Project/Device/TowerLamp.cs @@ -0,0 +1,154 @@ +//#define OLD + +using Project; +using Project.Device; +using System; + +#if OLD +using static Project.StateMachine; +#endif + +/// +/// 타워램프조작 +/// +public static class TowerLamp +{ + static bool enable = true; +#if OLD + static arDev.AzinAxt.DIO DIO = null; +#else + static arDev.DIO.IDIO DIO = null; +#endif + static int R = -1; + static int G = -1; + static int Y = -1; + static DateTime updatetime = DateTime.Now; + + /// + /// 타워램프 사용여부 false 가 입력되면 모든 램프가 꺼집니다 + /// + public static Boolean Enable + { + get { return enable; } + set + { + enable = value; + if (enable == false) + { + RED = false; + YEL = false; + GRN = false; + } + } + } + + /// + /// 갱신주기 250ms 기본설정 + /// + public static int UpdateInterval = 250; + +#if OLD + + public static void Init(arDev.AzinAxt.DIO dio_, int R_, int G_, int Y_) +#else + public static void Init(arDev.DIO.IDIO dio_, int R_, int G_, int Y_) +#endif + + + { + DIO = dio_; + R = R_; + G = G_; + Y = Y_; + } + public static void Update(eSMStep Step) + { + if (Enable == false) return; + if (DIO == null) return; ;// throw new Exception("DIO가 설정되지 않았습니다. Init 함수를 호출 하세요"); + + var ts = DateTime.Now - updatetime; + if (ts.TotalMilliseconds < UpdateInterval) return; + + if (Step == eSMStep.RUN) //동작중에는 녹색을 점등 + { + if (GRN == false) GRN = true; + if (RED == true) RED = false; + if (YEL == true) YEL = false; + } + else if (Step < eSMStep.IDLE || Step.ToString().StartsWith("HOME")) //초기화관련 + { + GRN = false; + var cur = YEL; + RED = !cur; + YEL = !cur; + } + else if (Step == eSMStep.FINISH) //작업종료 + { + var cur = GRN; + GRN = !cur; + YEL = !cur; + RED = false; + } + else if (Step == eSMStep.WAITSTART) //사용자대기 + { + var cur = YEL; + YEL = !cur; + GRN = false; + RED = false; + } + else if (Step == eSMStep.ERROR || Step == eSMStep.EMERGENCY) + { + RED = !RED; + YEL = false; + GRN = false; + } + else if (Step == eSMStep.PAUSE) + { + if (RED == false) RED = true; + if (YEL == true) YEL = false; + if (GRN == true) GRN = false; + } + else + { + //나머지 모든 상황은 대기로 한다 + if (YEL == false) YEL = true; + if (GRN == true) GRN = false; + if (RED == true) RED = false; + } + } + + + static void SetLamp(int port, bool value) + { + if (DIO == null || !DIO.IsInit || port < 0) return; + DIO.SetOutput(port, value); + } + static bool GetLamp(int port) + { + if (DIO == null || !DIO.IsInit || port < 0) return false; +#if OLD + return DIO.OUTPUT(port); +#else + return DIO.GetDOValue(port); +#endif + } + + public static Boolean GRN + { + get { return GetLamp(G); } + set { SetLamp(G, value); } + } + public static Boolean YEL + { + get { return GetLamp(Y); } + set { SetLamp(Y, value); } + } + public static Boolean RED + { + get { return GetLamp(R); } + set { SetLamp(R, value); } + } +} + +//230619 chi PAUSE 상태추가 => RED ON +// 전처리추가 \ No newline at end of file diff --git a/Handler/Project/Device/_CONNECTION.cs b/Handler/Project/Device/_CONNECTION.cs new file mode 100644 index 0000000..4347e9e --- /dev/null +++ b/Handler/Project/Device/_CONNECTION.cs @@ -0,0 +1,380 @@ +using AR; +using Emgu.CV; +using Emgu.CV.Structure; +using System; +using System.ComponentModel; +using System.Diagnostics; +using System.Drawing; +using System.IO; +using System.Net; +using System.Runtime.InteropServices; +using System.Text; +using System.Windows.Forms; +using UIControl; + +namespace Project +{ + public partial class FMain : Form + { + DateTime CameraConTimeL = DateTime.Now; + DateTime CameraConTimeR = DateTime.Now; + DateTime BarcodeConTime = DateTime.Now; + DateTime KeyenceConTimeF = DateTime.Now; + DateTime KeyenceConTimeR = DateTime.Now; + DateTime PrintLConTime = DateTime.Now; + DateTime PrintRConTime = DateTime.Now; + DateTime swPLCConTime = DateTime.Now; + Boolean bRunConnection = true; + + DateTime SendStatusTime = DateTime.Now; + void bwDeviceConnection() + { + while (bRunConnection && this.Disposing == false && this.Disposing == false) + { + //초기혹은 파괴상태는 처리안함 + if (PUB.keyenceF != null && PUB.keyenceF.disposed && + PUB.keyenceR != null && PUB.keyenceR.disposed) + { + System.Threading.Thread.Sleep(1000); + continue; + } + + if (ConnectSeq == 0) //키엔스 + { + var tscam = DateTime.Now - KeyenceConTimeF; + if (tscam.TotalSeconds > 5 && PUB.flag.get(eVarBool.FG_KEYENCE_OFFF) == false) + { + if (AR.SETTING.Data.Keyence_IPF.isEmpty() == false) + { + if (PUB.keyenceF != null && PUB.keyenceF.IsConnect == false) + { + PUB.keyenceF.Connect(); + KeyenceConTimeF = DateTime.Now; + } + else + { + //연결이 되어있다면 상태값을 요청한다 + KeyenceConTimeF = DateTime.Now.AddSeconds(-4); + } + } + else KeyenceConTimeF = DateTime.Now.AddSeconds(-4); + } + ConnectSeq += 1; + } + else if (ConnectSeq == 1) //키엔스 + { + var tscam = DateTime.Now - KeyenceConTimeR; + if (tscam.TotalSeconds > 5 && PUB.flag.get(eVarBool.FG_KEYENCE_OFFR) == false) + { + if (AR.SETTING.Data.Keyence_IPR.isEmpty() == false) + { + if (PUB.keyenceR != null && PUB.keyenceR.IsConnect == false) + { + PUB.keyenceR.Connect(); + KeyenceConTimeR = DateTime.Now; + } + else + { + //연결이 되어있다면 상태값을 요청한다 + KeyenceConTimeR = DateTime.Now.AddSeconds(-4); + } + } + else KeyenceConTimeR = DateTime.Now.AddSeconds(-4); + } + ConnectSeq += 1; + } + else if (ConnectSeq == 2) //카메라(왼) + { + var tscam = DateTime.Now - CameraConTimeL; + if (tscam.TotalSeconds > 7) + { + //if (COMM.SETTING.Data.EnableExtVision) + if (PUB.wsL == null || PUB.wsL.Connected == false) + { + if (AR.SETTING.Data.Log_CameraConn) + PUB.log.Add($"카메라(L) 접속 시도({AR.SETTING.Data.HostIPL}:{AR.SETTING.Data.HostPortL})"); + if (PUB.wsL != null) + { + DetachCameraEventL(); //이벤트 종료 + PUB.wsL.Dispose(); + } + + PUB.wsL = new WatsonWebsocket.WatsonWsClient(AR.SETTING.Data.HostIPL, AR.SETTING.Data.HostPortL, false); + AttachCameraEventL(); + try + { + PUB.wsL.StartWithTimeout(); + } + catch (Exception ex) + { + PUB.log.AddE(ex.Message); //220214 + } + + CameraConTimeL = DateTime.Now; + } + else + { + //연결이 되어있다면 상태값을 요청한다 + //if (PUB.flag.get(eVarBool.FG_RDY_CAMERA_L) == false) + { + //마지막 수신시간으로 부터 5초가 지나면 전송한다 + //var tsRecv = DateTime.Now - lastRecvWSL; + //if (tsRecv.TotalSeconds >= 15) + //{ + // PUB.wsL.Dispose(); + //} + //else if (tsRecv.TotalSeconds >= 5) + { + WS_Send(eWorkPort.Left, PUB.wsL, string.Empty, "STATUS", ""); + } + CameraConTimeL = DateTime.Now.AddSeconds(-4); + } + } + } + ConnectSeq += 1; + } + else if (ConnectSeq == 3) //카메라(우) + { + var tscam = DateTime.Now - CameraConTimeR; + if (tscam.TotalSeconds > 7) + { + //if (COMM.SETTING.Data.EnableExtVision) + if (PUB.wsR == null || PUB.wsR.Connected == false) + { + if (AR.SETTING.Data.Log_CameraConn) + PUB.log.Add($"카메라(R) 접속 시도({AR.SETTING.Data.HostIPR}:{AR.SETTING.Data.HostPortR})"); + if (PUB.wsR != null) + { + DetachCameraEventR(); //이벤트 종료 + PUB.wsR.Dispose(); + } + + PUB.wsR = new WatsonWebsocket.WatsonWsClient(AR.SETTING.Data.HostIPR, AR.SETTING.Data.HostPortR, false); + AttachCameraEventR(); + + try + { + PUB.wsR.Start(); + } + catch (Exception ex) + { + PUB.log.AddE(ex.Message); //220214 + } + + + CameraConTimeR = DateTime.Now; + } + else + { + //연결이 되어있다면 상태값을 요청한다 + //if (PUB.flag.get(eVarBool.FG_RDY_CAMERA_R) == false) + { + //마지막 수신시간으로 부터 5초가 지나면 전송한다 + //var tsRecv = DateTime.Now - lastRecvWSR; + //if (tsRecv.TotalSeconds >= 15) + //{ + // PUB.wsR.Dispose(); + //} + //else if (tsRecv.TotalSeconds >= 5) + { + WS_Send(eWorkPort.Right, PUB.wsR, string.Empty, "STATUS", ""); + } + CameraConTimeR = DateTime.Now.AddSeconds(-4); + + + + + } + } + } + ConnectSeq += 1; + } + else if (ConnectSeq == 4) //바코드연결 + { + var tscam = DateTime.Now - BarcodeConTime; + if (tscam.TotalSeconds > 5) + { + if (AR.SETTING.Data.Barcode_Port.isEmpty() == false) + { + if (PUB.BarcodeFix == null || PUB.BarcodeFix.IsOpen() == false) + { + PUB.BarcodeFix.PortName = AR.SETTING.Data.Barcode_Port; + PUB.BarcodeFix.BaudRate = AR.SETTING.Data.Barcode_Baud; + PUB.BarcodeFix.Open(); + BarcodeConTime = DateTime.Now; + } + else + { + //연결이 되어있다면 상태값을 요청한다 + BarcodeConTime = DateTime.Now.AddSeconds(-4); + } + } + else BarcodeConTime = DateTime.Now.AddSeconds(-4); + } + ConnectSeq += 1; + } + else if (ConnectSeq == 5) //프린터(좌) + { + var tscam = DateTime.Now - PrintLConTime; + if (tscam.TotalSeconds > 5) + { + if (AR.SETTING.Data.PrintL_Port.isEmpty() == false) + { + if (PUB.PrinterL == null || PUB.PrinterL.IsOpen == false) + { + try + { + PUB.PrinterL.PortName = AR.SETTING.Data.PrintL_Port; + PUB.PrinterL.BaudRate = AR.SETTING.Data.PrintL_Baud; + PUB.PrinterL.Open(); + PrintLConTime = DateTime.Now; + } + catch (Exception ex) + { + + } + } + else + { + //연결이 되어있다면 상태값을 요청한다 + PrintLConTime = DateTime.Now.AddSeconds(-4); + } + } + else PrintLConTime = DateTime.Now.AddSeconds(-4); + } + ConnectSeq += 1; + } + else if (ConnectSeq == 6) //프린터(우) + { + var tscam = DateTime.Now - PrintRConTime; + if (tscam.TotalSeconds > 5) + { + if (AR.SETTING.Data.PrintR_Port.isEmpty() == false) + { + if (PUB.PrinterR == null || PUB.PrinterR.IsOpen == false) + { + try + { + PUB.PrinterR.PortName = AR.SETTING.Data.PrintR_Port; + PUB.PrinterR.BaudRate = AR.SETTING.Data.PrintR_Baud; + PUB.PrinterR.Open(); + PrintRConTime = DateTime.Now; + } + catch (Exception ex) { } + } + else + { + //연결이 되어있다면 상태값을 요청한다 + PrintRConTime = DateTime.Now.AddSeconds(-4); + } + } + else PrintRConTime = DateTime.Now.AddSeconds(-4); + } + ConnectSeq = 7; + } + else if (ConnectSeq == 7) //swPLC 230725 + { + var tscam = DateTime.Now - swPLCConTime; + if (tscam.TotalSeconds > 5) + { + if (PUB.plc != null && PUB.plc.Init == false) + { + PUB.plc.Start(); + } + swPLCConTime = DateTime.Now; + } + ConnectSeq = 0; + } + + var tsst = DateTime.Now - SendStatusTime; + if (tsst.TotalSeconds > 3) + { + //내정보를 전송한다. + + var modelVision = ""; + if (PUB.Result.isSetvModel) modelVision = PUB.Result.vModel.Title; + + var dt = new + { + mc = SETTING.Data.McName, + status = PUB.sm.Step.ToString(), + model = modelVision, + bypass = (VAR.BOOL[eVarBool.Opt_DisablePrinter] ? true : false), + }; + string jsonStr = Newtonsoft.Json.JsonConvert.SerializeObject(dt); + var url = $@"http://10.131.32.29:8080/api/updatelastatus"; + var rlt = PostFromUrl(url, jsonStr, out bool iserr, _timeout: 1000); + if (iserr) PUB.log.AddE($"ECS 상태정보실패 메세지:{rlt}"); + SendStatusTime = DateTime.Now; + } + + System.Threading.Thread.Sleep(2000); + + } + Console.WriteLine("Close : bwDeviceConnection"); + } + + + public string PostFromUrl(string url, string jsonStr, out Boolean isError, string authid = "", string authpw = "", int _timeout = 0) + { + isError = false; + string result = ""; + try + { + var timeout = 1000; + //RaiseMessage(false, "POST : " + url); + HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(url)); + if (_timeout == 0) + { + request.Timeout = timeout; + request.ReadWriteTimeout = timeout; + } + else + { + request.Timeout = _timeout; + request.ReadWriteTimeout = _timeout; + } + + + if (string.IsNullOrEmpty(authid) == false && string.IsNullOrEmpty(authpw) == false) + { + string authInfo = $"{authid}:{authpw}"; + authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo)); + request.Headers["Authorization"] = "Basic " + authInfo; + } + + request.Method = "POST"; + request.ContentType = "application/json"; + request.ContentLength = jsonStr.Length; + request.MaximumAutomaticRedirections = 4; + request.MaximumResponseHeadersLength = 4; + request.Credentials = CredentialCache.DefaultCredentials; + + using (StreamWriter sw = new StreamWriter(request.GetRequestStream())) + { + sw.Write(jsonStr); + sw.Flush(); + sw.Close(); + + var response = request.GetResponse() as HttpWebResponse; + using (var txtReader = new StreamReader(response.GetResponseStream())) + { + result = txtReader.ReadToEnd(); + } + } + + // LastQueryBUF = result; + //LastQueryURL = url; + //RaiseRawMessage(url, "RESULT\n" + result); //181026 - show data + } + catch (WebException wex) + { + isError = true; + result = wex.ToString();// new StreamReader(wex.Response.GetResponseStream()).ReadToEnd(); + //RaiseMessage(true, "POST-ERROR\n" + result); + } + + return result; + } + } +} diff --git a/Handler/Project/Dialog/DIOMonitor.Designer.cs b/Handler/Project/Dialog/DIOMonitor.Designer.cs new file mode 100644 index 0000000..da0f645 --- /dev/null +++ b/Handler/Project/Dialog/DIOMonitor.Designer.cs @@ -0,0 +1,1746 @@ +namespace Project.Dialog +{ + partial class fIOMonitor + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + arDev.AjinEXTEK.ColorListItem colorListItem1 = new arDev.AjinEXTEK.ColorListItem(); + arDev.AjinEXTEK.ColorListItem colorListItem2 = new arDev.AjinEXTEK.ColorListItem(); + arDev.AjinEXTEK.ColorListItem colorListItem3 = new arDev.AjinEXTEK.ColorListItem(); + arDev.AjinEXTEK.ColorListItem colorListItem4 = new arDev.AjinEXTEK.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem5 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem6 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem7 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem8 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem9 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem10 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem11 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem12 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem13 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem14 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem15 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem16 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem17 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem18 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem19 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem20 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem21 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem22 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem23 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem24 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem25 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem26 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem27 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem28 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem29 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem30 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem31 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem32 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem33 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem34 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem35 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem36 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem37 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem38 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem39 = new arCtl.GridView.ColorListItem(); + arCtl.GridView.ColorListItem colorListItem40 = new arCtl.GridView.ColorListItem(); + this.panel3 = new System.Windows.Forms.Panel(); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.panel2 = new System.Windows.Forms.Panel(); + this.tblDI = new arDev.AjinEXTEK.IOPanel(); + this.lbTitle1 = new arCtl.arLabel(); + this.tabPage4 = new System.Windows.Forms.TabPage(); + this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); + this.panel6 = new System.Windows.Forms.Panel(); + this.tblDO = new arDev.AjinEXTEK.IOPanel(); + this.arLabel2 = new arCtl.arLabel(); + this.tabPage3 = new System.Windows.Forms.TabPage(); + this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); + this.panel5 = new System.Windows.Forms.Panel(); + this.gbi01 = new arCtl.GridView.GridView(); + this.lbi01 = new System.Windows.Forms.Label(); + this.panel8 = new System.Windows.Forms.Panel(); + this.gbi02 = new arCtl.GridView.GridView(); + this.lbi02 = new System.Windows.Forms.Label(); + this.panel11 = new System.Windows.Forms.Panel(); + this.gbi00 = new arCtl.GridView.GridView(); + this.lbi00 = new System.Windows.Forms.Label(); + this.panel7 = new System.Windows.Forms.Panel(); + this.gbi04 = new arCtl.GridView.GridView(); + this.lbi04 = new System.Windows.Forms.Label(); + this.panel10 = new System.Windows.Forms.Panel(); + this.gbi03 = new arCtl.GridView.GridView(); + this.lbi03 = new System.Windows.Forms.Label(); + this.panel12 = new System.Windows.Forms.Panel(); + this.gbi06 = new arCtl.GridView.GridView(); + this.lbi06 = new System.Windows.Forms.Label(); + this.panel13 = new System.Windows.Forms.Panel(); + this.gbi07 = new arCtl.GridView.GridView(); + this.lbi07 = new System.Windows.Forms.Label(); + this.panel14 = new System.Windows.Forms.Panel(); + this.gbi08 = new arCtl.GridView.GridView(); + this.lbi08 = new System.Windows.Forms.Label(); + this.panel17 = new System.Windows.Forms.Panel(); + this.gbi11 = new arCtl.GridView.GridView(); + this.lbi11 = new System.Windows.Forms.Label(); + this.panel18 = new System.Windows.Forms.Panel(); + this.gbi10 = new arCtl.GridView.GridView(); + this.lbi10 = new System.Windows.Forms.Label(); + this.panel19 = new System.Windows.Forms.Panel(); + this.gbi09 = new arCtl.GridView.GridView(); + this.lbi09 = new System.Windows.Forms.Label(); + this.panel20 = new System.Windows.Forms.Panel(); + this.gbi12 = new arCtl.GridView.GridView(); + this.lbi12 = new System.Windows.Forms.Label(); + this.panel21 = new System.Windows.Forms.Panel(); + this.gbi13 = new arCtl.GridView.GridView(); + this.lbi13 = new System.Windows.Forms.Label(); + this.panel22 = new System.Windows.Forms.Panel(); + this.gbi14 = new arCtl.GridView.GridView(); + this.lbi14 = new System.Windows.Forms.Label(); + this.panel1 = new System.Windows.Forms.Panel(); + this.gbi05 = new arCtl.GridView.GridView(); + this.lbi05 = new System.Windows.Forms.Label(); + this.panel4 = new System.Windows.Forms.Panel(); + this.gbi15 = new arCtl.GridView.GridView(); + this.lbi15 = new System.Windows.Forms.Label(); + this.panel15 = new System.Windows.Forms.Panel(); + this.gbi16 = new arCtl.GridView.GridView(); + this.lbi16 = new System.Windows.Forms.Label(); + this.panel24 = new System.Windows.Forms.Panel(); + this.gbi17 = new arCtl.GridView.GridView(); + this.lbi17 = new System.Windows.Forms.Label(); + this.tmDisplay = new System.Windows.Forms.Timer(this.components); + this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); + this.pinDefineToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.tabControl1.SuspendLayout(); + this.tabPage1.SuspendLayout(); + this.tableLayoutPanel1.SuspendLayout(); + this.panel2.SuspendLayout(); + this.tabPage4.SuspendLayout(); + this.tableLayoutPanel3.SuspendLayout(); + this.panel6.SuspendLayout(); + this.tabPage3.SuspendLayout(); + this.tableLayoutPanel2.SuspendLayout(); + this.panel5.SuspendLayout(); + this.panel8.SuspendLayout(); + this.panel11.SuspendLayout(); + this.panel7.SuspendLayout(); + this.panel10.SuspendLayout(); + this.panel12.SuspendLayout(); + this.panel13.SuspendLayout(); + this.panel14.SuspendLayout(); + this.panel17.SuspendLayout(); + this.panel18.SuspendLayout(); + this.panel19.SuspendLayout(); + this.panel20.SuspendLayout(); + this.panel21.SuspendLayout(); + this.panel22.SuspendLayout(); + this.panel1.SuspendLayout(); + this.panel4.SuspendLayout(); + this.panel15.SuspendLayout(); + this.panel24.SuspendLayout(); + this.contextMenuStrip1.SuspendLayout(); + this.SuspendLayout(); + // + // panel3 + // + this.panel3.Dock = System.Windows.Forms.DockStyle.Right; + this.panel3.Location = new System.Drawing.Point(927, 0); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(300, 748); + this.panel3.TabIndex = 1; + // + // tabControl1 + // + this.tabControl1.Alignment = System.Windows.Forms.TabAlignment.Left; + this.tabControl1.Controls.Add(this.tabPage1); + this.tabControl1.Controls.Add(this.tabPage4); + this.tabControl1.Controls.Add(this.tabPage3); + this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tabControl1.Location = new System.Drawing.Point(0, 0); + this.tabControl1.Multiline = true; + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(927, 748); + this.tabControl1.TabIndex = 2; + // + // tabPage1 + // + this.tabPage1.Controls.Add(this.tableLayoutPanel1); + this.tabPage1.Location = new System.Drawing.Point(25, 4); + this.tabPage1.Margin = new System.Windows.Forms.Padding(0); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Size = new System.Drawing.Size(898, 740); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "IN"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 1; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel1.Controls.Add(this.panel2, 0, 0); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(0); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 1; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(898, 740); + this.tableLayoutPanel1.TabIndex = 0; + // + // panel2 + // + this.panel2.BackColor = System.Drawing.Color.White; + this.panel2.Controls.Add(this.tblDI); + this.panel2.Controls.Add(this.lbTitle1); + this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel2.Location = new System.Drawing.Point(0, 0); + this.panel2.Margin = new System.Windows.Forms.Padding(0); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(898, 740); + this.panel2.TabIndex = 1; + // + // tblDI + // + this.tblDI.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.tblDI.BorderSize = 0; + colorListItem1.BackColor1 = System.Drawing.Color.DimGray; + colorListItem1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + colorListItem1.Remark = "OFF"; + colorListItem2.BackColor1 = System.Drawing.Color.Lime; + colorListItem2.BackColor2 = System.Drawing.Color.Green; + colorListItem2.Remark = "ON"; + this.tblDI.ColorList = new arDev.AjinEXTEK.ColorListItem[] { + colorListItem1, + colorListItem2}; + this.tblDI.ContextMenuStrip = this.contextMenuStrip1; + this.tblDI.Dock = System.Windows.Forms.DockStyle.Fill; + this.tblDI.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tblDI.FontPin = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.tblDI.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.tblDI.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.tblDI.Location = new System.Drawing.Point(0, 23); + this.tblDI.MatrixSize = new System.Drawing.Point(4, 32); + this.tblDI.MenuBorderSize = 1; + this.tblDI.MenuGap = 5; + this.tblDI.MinimumSize = new System.Drawing.Size(100, 50); + this.tblDI.Name = "tblDI"; + this.tblDI.ShadowColor = System.Drawing.Color.Transparent; + this.tblDI.showDebugInfo = false; + this.tblDI.ShowPinName = true; + this.tblDI.Size = new System.Drawing.Size(898, 717); + this.tblDI.TabIndex = 3; + this.tblDI.Text = "ioPanel1"; + this.tblDI.TextAttachToImage = true; + // + // lbTitle1 + // + this.lbTitle1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(60)))), ((int)(((byte)(60))))); + this.lbTitle1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lbTitle1.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbTitle1.BorderColor = System.Drawing.Color.Cyan; + this.lbTitle1.BorderColorOver = System.Drawing.Color.Cyan; + this.lbTitle1.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); + this.lbTitle1.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbTitle1.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbTitle1.Dock = System.Windows.Forms.DockStyle.Top; + this.lbTitle1.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbTitle1.ForeColor = System.Drawing.Color.White; + this.lbTitle1.GradientEnable = true; + this.lbTitle1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lbTitle1.GradientRepeatBG = false; + this.lbTitle1.isButton = false; + this.lbTitle1.Location = new System.Drawing.Point(0, 0); + this.lbTitle1.MouseDownColor = System.Drawing.Color.Yellow; + this.lbTitle1.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbTitle1.msg = null; + this.lbTitle1.Name = "lbTitle1"; + this.lbTitle1.ProgressBorderColor = System.Drawing.Color.Black; + this.lbTitle1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbTitle1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbTitle1.ProgressEnable = false; + this.lbTitle1.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbTitle1.ProgressForeColor = System.Drawing.Color.Black; + this.lbTitle1.ProgressMax = 100F; + this.lbTitle1.ProgressMin = 0F; + this.lbTitle1.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbTitle1.ProgressValue = 0F; + this.lbTitle1.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.lbTitle1.Sign = ""; + this.lbTitle1.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbTitle1.SignColor = System.Drawing.Color.SkyBlue; + this.lbTitle1.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbTitle1.Size = new System.Drawing.Size(898, 23); + this.lbTitle1.TabIndex = 0; + this.lbTitle1.Text = "Digital Input"; + this.lbTitle1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbTitle1.TextShadow = false; + this.lbTitle1.TextVisible = true; + this.lbTitle1.Click += new System.EventHandler(this.lbTitle1_Click); + // + // tabPage4 + // + this.tabPage4.Controls.Add(this.tableLayoutPanel3); + this.tabPage4.Location = new System.Drawing.Point(22, 4); + this.tabPage4.Name = "tabPage4"; + this.tabPage4.Size = new System.Drawing.Size(901, 740); + this.tabPage4.TabIndex = 3; + this.tabPage4.Text = "OUT"; + this.tabPage4.UseVisualStyleBackColor = true; + // + // tableLayoutPanel3 + // + this.tableLayoutPanel3.ColumnCount = 1; + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel3.Controls.Add(this.panel6, 0, 0); + this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel3.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel3.Margin = new System.Windows.Forms.Padding(0); + this.tableLayoutPanel3.Name = "tableLayoutPanel3"; + this.tableLayoutPanel3.RowCount = 1; + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel3.Size = new System.Drawing.Size(901, 740); + this.tableLayoutPanel3.TabIndex = 1; + // + // panel6 + // + this.panel6.BackColor = System.Drawing.Color.White; + this.panel6.Controls.Add(this.tblDO); + this.panel6.Controls.Add(this.arLabel2); + this.panel6.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel6.Location = new System.Drawing.Point(0, 0); + this.panel6.Margin = new System.Windows.Forms.Padding(0); + this.panel6.Name = "panel6"; + this.panel6.Size = new System.Drawing.Size(901, 740); + this.panel6.TabIndex = 0; + // + // tblDO + // + this.tblDO.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.tblDO.BorderSize = 0; + colorListItem3.BackColor1 = System.Drawing.Color.DimGray; + colorListItem3.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + colorListItem3.Remark = "OFF"; + colorListItem4.BackColor1 = System.Drawing.Color.Lime; + colorListItem4.BackColor2 = System.Drawing.Color.Green; + colorListItem4.Remark = "ON"; + this.tblDO.ColorList = new arDev.AjinEXTEK.ColorListItem[] { + colorListItem3, + colorListItem4}; + this.tblDO.Dock = System.Windows.Forms.DockStyle.Fill; + this.tblDO.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tblDO.FontPin = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.tblDO.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.tblDO.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.tblDO.Location = new System.Drawing.Point(0, 23); + this.tblDO.MatrixSize = new System.Drawing.Point(4, 32); + this.tblDO.MenuBorderSize = 1; + this.tblDO.MenuGap = 5; + this.tblDO.MinimumSize = new System.Drawing.Size(100, 50); + this.tblDO.Name = "tblDO"; + this.tblDO.ShadowColor = System.Drawing.Color.Transparent; + this.tblDO.showDebugInfo = false; + this.tblDO.ShowPinName = true; + this.tblDO.Size = new System.Drawing.Size(901, 717); + this.tblDO.TabIndex = 4; + this.tblDO.Text = "ioPanel2"; + this.tblDO.TextAttachToImage = true; + // + // arLabel2 + // + this.arLabel2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(60)))), ((int)(((byte)(60))))); + this.arLabel2.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.arLabel2.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel2.BorderColor = System.Drawing.Color.Tomato; + this.arLabel2.BorderColorOver = System.Drawing.Color.Tomato; + this.arLabel2.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); + this.arLabel2.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel2.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel2.Dock = System.Windows.Forms.DockStyle.Top; + this.arLabel2.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.arLabel2.ForeColor = System.Drawing.Color.White; + this.arLabel2.GradientEnable = true; + this.arLabel2.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arLabel2.GradientRepeatBG = false; + this.arLabel2.isButton = false; + this.arLabel2.Location = new System.Drawing.Point(0, 0); + this.arLabel2.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel2.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel2.msg = null; + this.arLabel2.Name = "arLabel2"; + this.arLabel2.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel2.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel2.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel2.ProgressEnable = false; + this.arLabel2.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel2.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel2.ProgressMax = 100F; + this.arLabel2.ProgressMin = 0F; + this.arLabel2.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel2.ProgressValue = 0F; + this.arLabel2.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.arLabel2.Sign = ""; + this.arLabel2.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel2.SignColor = System.Drawing.Color.Yellow; + this.arLabel2.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel2.Size = new System.Drawing.Size(901, 23); + this.arLabel2.TabIndex = 1; + this.arLabel2.Text = "Digital Output"; + this.arLabel2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel2.TextShadow = false; + this.arLabel2.TextVisible = true; + this.arLabel2.Click += new System.EventHandler(this.arLabel2_Click); + // + // tabPage3 + // + this.tabPage3.Controls.Add(this.tableLayoutPanel2); + this.tabPage3.Location = new System.Drawing.Point(22, 4); + this.tabPage3.Name = "tabPage3"; + this.tabPage3.Size = new System.Drawing.Size(901, 740); + this.tabPage3.TabIndex = 2; + this.tabPage3.Text = "I-LOCK"; + this.tabPage3.UseVisualStyleBackColor = true; + // + // tableLayoutPanel2 + // + this.tableLayoutPanel2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); + this.tableLayoutPanel2.ColumnCount = 3; + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel2.Controls.Add(this.panel5, 1, 0); + this.tableLayoutPanel2.Controls.Add(this.panel8, 2, 0); + this.tableLayoutPanel2.Controls.Add(this.panel11, 0, 0); + this.tableLayoutPanel2.Controls.Add(this.panel7, 1, 1); + this.tableLayoutPanel2.Controls.Add(this.panel10, 0, 1); + this.tableLayoutPanel2.Controls.Add(this.panel12, 0, 2); + this.tableLayoutPanel2.Controls.Add(this.panel13, 1, 2); + this.tableLayoutPanel2.Controls.Add(this.panel14, 2, 2); + this.tableLayoutPanel2.Controls.Add(this.panel17, 2, 3); + this.tableLayoutPanel2.Controls.Add(this.panel18, 1, 3); + this.tableLayoutPanel2.Controls.Add(this.panel19, 0, 3); + this.tableLayoutPanel2.Controls.Add(this.panel20, 0, 4); + this.tableLayoutPanel2.Controls.Add(this.panel21, 1, 4); + this.tableLayoutPanel2.Controls.Add(this.panel22, 2, 4); + this.tableLayoutPanel2.Controls.Add(this.panel1, 2, 1); + this.tableLayoutPanel2.Controls.Add(this.panel4, 0, 5); + this.tableLayoutPanel2.Controls.Add(this.panel15, 1, 5); + this.tableLayoutPanel2.Controls.Add(this.panel24, 2, 5); + this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel2.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel2.Name = "tableLayoutPanel2"; + this.tableLayoutPanel2.RowCount = 6; + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); + this.tableLayoutPanel2.Size = new System.Drawing.Size(901, 740); + this.tableLayoutPanel2.TabIndex = 0; + // + // panel5 + // + this.panel5.Controls.Add(this.gbi01); + this.panel5.Controls.Add(this.lbi01); + this.panel5.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel5.Location = new System.Drawing.Point(303, 3); + this.panel5.Name = "panel5"; + this.panel5.Size = new System.Drawing.Size(294, 117); + this.panel5.TabIndex = 0; + // + // gbi01 + // + this.gbi01.arVeriticalDraw = false; + this.gbi01.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.gbi01.BorderSize = 1; + colorListItem5.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem5.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem5.Remark = ""; + colorListItem6.BackColor1 = System.Drawing.Color.Orange; + colorListItem6.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem6.Remark = ""; + this.gbi01.ColorList = new arCtl.GridView.ColorListItem[] { + colorListItem5, + colorListItem6}; + this.gbi01.Cursor = System.Windows.Forms.Cursors.Arrow; + this.gbi01.Dock = System.Windows.Forms.DockStyle.Fill; + this.gbi01.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.gbi01.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gbi01.ForeColor = System.Drawing.Color.White; + this.gbi01.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gbi01.Location = new System.Drawing.Point(0, 14); + this.gbi01.MatrixSize = new System.Drawing.Point(4, 5); + this.gbi01.MenuBorderSize = 1; + this.gbi01.MenuGap = 5; + this.gbi01.MinimumSize = new System.Drawing.Size(100, 50); + this.gbi01.Name = "gbi01"; + this.gbi01.Names = null; + this.gbi01.ShadowColor = System.Drawing.Color.Black; + this.gbi01.showDebugInfo = false; + this.gbi01.ShowIndexString = true; + this.gbi01.ShowNameString = true; + this.gbi01.ShowValueString = false; + this.gbi01.Size = new System.Drawing.Size(294, 103); + this.gbi01.TabIndex = 3; + this.gbi01.Tag = "PKX"; + this.gbi01.Tags = null; + this.gbi01.Text = "gridView1"; + this.gbi01.TextAttachToImage = true; + this.gbi01.Titles = null; + this.gbi01.Values = null; + // + // lbi01 + // + this.lbi01.Dock = System.Windows.Forms.DockStyle.Top; + this.lbi01.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbi01.ForeColor = System.Drawing.Color.Cyan; + this.lbi01.Location = new System.Drawing.Point(0, 0); + this.lbi01.Name = "lbi01"; + this.lbi01.Size = new System.Drawing.Size(294, 14); + this.lbi01.TabIndex = 4; + this.lbi01.Text = "X-MIDDLE"; + this.lbi01.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel8 + // + this.panel8.Controls.Add(this.gbi02); + this.panel8.Controls.Add(this.lbi02); + this.panel8.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel8.Location = new System.Drawing.Point(603, 3); + this.panel8.Name = "panel8"; + this.panel8.Size = new System.Drawing.Size(295, 117); + this.panel8.TabIndex = 0; + // + // gbi02 + // + this.gbi02.arVeriticalDraw = false; + this.gbi02.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.gbi02.BorderSize = 1; + colorListItem7.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem7.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem7.Remark = ""; + colorListItem8.BackColor1 = System.Drawing.Color.Orange; + colorListItem8.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem8.Remark = ""; + this.gbi02.ColorList = new arCtl.GridView.ColorListItem[] { + colorListItem7, + colorListItem8}; + this.gbi02.Cursor = System.Windows.Forms.Cursors.Arrow; + this.gbi02.Dock = System.Windows.Forms.DockStyle.Fill; + this.gbi02.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.gbi02.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gbi02.ForeColor = System.Drawing.Color.White; + this.gbi02.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gbi02.Location = new System.Drawing.Point(0, 16); + this.gbi02.MatrixSize = new System.Drawing.Point(4, 5); + this.gbi02.MenuBorderSize = 1; + this.gbi02.MenuGap = 5; + this.gbi02.MinimumSize = new System.Drawing.Size(100, 50); + this.gbi02.Name = "gbi02"; + this.gbi02.Names = null; + this.gbi02.ShadowColor = System.Drawing.Color.Black; + this.gbi02.showDebugInfo = false; + this.gbi02.ShowIndexString = true; + this.gbi02.ShowNameString = true; + this.gbi02.ShowValueString = false; + this.gbi02.Size = new System.Drawing.Size(295, 101); + this.gbi02.TabIndex = 3; + this.gbi02.Tag = "PKZ"; + this.gbi02.Tags = null; + this.gbi02.Text = "gridView1"; + this.gbi02.TextAttachToImage = true; + this.gbi02.Titles = null; + this.gbi02.Values = null; + // + // lbi02 + // + this.lbi02.Dock = System.Windows.Forms.DockStyle.Top; + this.lbi02.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbi02.ForeColor = System.Drawing.Color.Cyan; + this.lbi02.Location = new System.Drawing.Point(0, 0); + this.lbi02.Name = "lbi02"; + this.lbi02.Size = new System.Drawing.Size(295, 16); + this.lbi02.TabIndex = 4; + this.lbi02.Text = "X-FRONT"; + this.lbi02.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel11 + // + this.panel11.Controls.Add(this.gbi00); + this.panel11.Controls.Add(this.lbi00); + this.panel11.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel11.Location = new System.Drawing.Point(3, 3); + this.panel11.Name = "panel11"; + this.panel11.Size = new System.Drawing.Size(294, 117); + this.panel11.TabIndex = 0; + // + // gbi00 + // + this.gbi00.arVeriticalDraw = false; + this.gbi00.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.gbi00.BorderSize = 1; + colorListItem9.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem9.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem9.Remark = ""; + colorListItem10.BackColor1 = System.Drawing.Color.Orange; + colorListItem10.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem10.Remark = ""; + this.gbi00.ColorList = new arCtl.GridView.ColorListItem[] { + colorListItem9, + colorListItem10}; + this.gbi00.Cursor = System.Windows.Forms.Cursors.Arrow; + this.gbi00.Dock = System.Windows.Forms.DockStyle.Fill; + this.gbi00.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.gbi00.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gbi00.ForeColor = System.Drawing.Color.White; + this.gbi00.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gbi00.Location = new System.Drawing.Point(0, 16); + this.gbi00.MatrixSize = new System.Drawing.Point(4, 5); + this.gbi00.MenuBorderSize = 1; + this.gbi00.MenuGap = 5; + this.gbi00.MinimumSize = new System.Drawing.Size(100, 50); + this.gbi00.Name = "gbi00"; + this.gbi00.Names = null; + this.gbi00.ShadowColor = System.Drawing.Color.Black; + this.gbi00.showDebugInfo = false; + this.gbi00.ShowIndexString = true; + this.gbi00.ShowNameString = true; + this.gbi00.ShowValueString = false; + this.gbi00.Size = new System.Drawing.Size(294, 101); + this.gbi00.TabIndex = 3; + this.gbi00.Tag = "PKT"; + this.gbi00.Tags = null; + this.gbi00.Text = "gridView1"; + this.gbi00.TextAttachToImage = true; + this.gbi00.Titles = null; + this.gbi00.Values = null; + // + // lbi00 + // + this.lbi00.Dock = System.Windows.Forms.DockStyle.Top; + this.lbi00.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbi00.ForeColor = System.Drawing.Color.Cyan; + this.lbi00.Location = new System.Drawing.Point(0, 0); + this.lbi00.Name = "lbi00"; + this.lbi00.Size = new System.Drawing.Size(294, 16); + this.lbi00.TabIndex = 4; + this.lbi00.Text = "X-REAR"; + this.lbi00.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel7 + // + this.panel7.Controls.Add(this.gbi04); + this.panel7.Controls.Add(this.lbi04); + this.panel7.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel7.Location = new System.Drawing.Point(303, 126); + this.panel7.Name = "panel7"; + this.panel7.Size = new System.Drawing.Size(294, 117); + this.panel7.TabIndex = 0; + // + // gbi04 + // + this.gbi04.arVeriticalDraw = false; + this.gbi04.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.gbi04.BorderSize = 1; + colorListItem11.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem11.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem11.Remark = ""; + colorListItem12.BackColor1 = System.Drawing.Color.Orange; + colorListItem12.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem12.Remark = ""; + this.gbi04.ColorList = new arCtl.GridView.ColorListItem[] { + colorListItem11, + colorListItem12}; + this.gbi04.Cursor = System.Windows.Forms.Cursors.Arrow; + this.gbi04.Dock = System.Windows.Forms.DockStyle.Fill; + this.gbi04.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.gbi04.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gbi04.ForeColor = System.Drawing.Color.White; + this.gbi04.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gbi04.Location = new System.Drawing.Point(0, 16); + this.gbi04.MatrixSize = new System.Drawing.Point(4, 5); + this.gbi04.MenuBorderSize = 1; + this.gbi04.MenuGap = 5; + this.gbi04.MinimumSize = new System.Drawing.Size(100, 50); + this.gbi04.Name = "gbi04"; + this.gbi04.Names = null; + this.gbi04.ShadowColor = System.Drawing.Color.Black; + this.gbi04.showDebugInfo = false; + this.gbi04.ShowIndexString = true; + this.gbi04.ShowNameString = true; + this.gbi04.ShowValueString = false; + this.gbi04.Size = new System.Drawing.Size(294, 101); + this.gbi04.TabIndex = 3; + this.gbi04.Tag = "PKZ"; + this.gbi04.Tags = null; + this.gbi04.Text = "gridView1"; + this.gbi04.TextAttachToImage = true; + this.gbi04.Titles = null; + this.gbi04.Values = null; + // + // lbi04 + // + this.lbi04.Dock = System.Windows.Forms.DockStyle.Top; + this.lbi04.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbi04.ForeColor = System.Drawing.Color.Yellow; + this.lbi04.Location = new System.Drawing.Point(0, 0); + this.lbi04.Name = "lbi04"; + this.lbi04.Size = new System.Drawing.Size(294, 16); + this.lbi04.TabIndex = 4; + this.lbi04.Text = "ELEVATOR2-R"; + this.lbi04.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel10 + // + this.panel10.Controls.Add(this.gbi03); + this.panel10.Controls.Add(this.lbi03); + this.panel10.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel10.Location = new System.Drawing.Point(3, 126); + this.panel10.Name = "panel10"; + this.panel10.Size = new System.Drawing.Size(294, 117); + this.panel10.TabIndex = 0; + // + // gbi03 + // + this.gbi03.arVeriticalDraw = false; + this.gbi03.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.gbi03.BorderSize = 1; + colorListItem13.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem13.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem13.Remark = ""; + colorListItem14.BackColor1 = System.Drawing.Color.Orange; + colorListItem14.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem14.Remark = ""; + this.gbi03.ColorList = new arCtl.GridView.ColorListItem[] { + colorListItem13, + colorListItem14}; + this.gbi03.Cursor = System.Windows.Forms.Cursors.Arrow; + this.gbi03.Dock = System.Windows.Forms.DockStyle.Fill; + this.gbi03.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.gbi03.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gbi03.ForeColor = System.Drawing.Color.White; + this.gbi03.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gbi03.Location = new System.Drawing.Point(0, 16); + this.gbi03.MatrixSize = new System.Drawing.Point(4, 5); + this.gbi03.MenuBorderSize = 1; + this.gbi03.MenuGap = 5; + this.gbi03.MinimumSize = new System.Drawing.Size(100, 50); + this.gbi03.Name = "gbi03"; + this.gbi03.Names = null; + this.gbi03.ShadowColor = System.Drawing.Color.Black; + this.gbi03.showDebugInfo = false; + this.gbi03.ShowIndexString = true; + this.gbi03.ShowNameString = true; + this.gbi03.ShowValueString = false; + this.gbi03.Size = new System.Drawing.Size(294, 101); + this.gbi03.TabIndex = 3; + this.gbi03.Tag = "PKZ"; + this.gbi03.Tags = null; + this.gbi03.Text = "gridView1"; + this.gbi03.TextAttachToImage = true; + this.gbi03.Titles = null; + this.gbi03.Values = null; + // + // lbi03 + // + this.lbi03.Dock = System.Windows.Forms.DockStyle.Top; + this.lbi03.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbi03.ForeColor = System.Drawing.Color.Yellow; + this.lbi03.Location = new System.Drawing.Point(0, 0); + this.lbi03.Name = "lbi03"; + this.lbi03.Size = new System.Drawing.Size(294, 16); + this.lbi03.TabIndex = 4; + this.lbi03.Text = "ELEVATOR1-R"; + this.lbi03.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel12 + // + this.panel12.Controls.Add(this.gbi06); + this.panel12.Controls.Add(this.lbi06); + this.panel12.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel12.Location = new System.Drawing.Point(3, 249); + this.panel12.Name = "panel12"; + this.panel12.Size = new System.Drawing.Size(294, 117); + this.panel12.TabIndex = 0; + // + // gbi06 + // + this.gbi06.arVeriticalDraw = false; + this.gbi06.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.gbi06.BorderSize = 1; + colorListItem15.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem15.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem15.Remark = ""; + colorListItem16.BackColor1 = System.Drawing.Color.Orange; + colorListItem16.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem16.Remark = ""; + this.gbi06.ColorList = new arCtl.GridView.ColorListItem[] { + colorListItem15, + colorListItem16}; + this.gbi06.Cursor = System.Windows.Forms.Cursors.Arrow; + this.gbi06.Dock = System.Windows.Forms.DockStyle.Fill; + this.gbi06.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.gbi06.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gbi06.ForeColor = System.Drawing.Color.White; + this.gbi06.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gbi06.Location = new System.Drawing.Point(0, 16); + this.gbi06.MatrixSize = new System.Drawing.Point(4, 5); + this.gbi06.MenuBorderSize = 1; + this.gbi06.MenuGap = 5; + this.gbi06.MinimumSize = new System.Drawing.Size(100, 50); + this.gbi06.Name = "gbi06"; + this.gbi06.Names = null; + this.gbi06.ShadowColor = System.Drawing.Color.Black; + this.gbi06.showDebugInfo = false; + this.gbi06.ShowIndexString = true; + this.gbi06.ShowNameString = true; + this.gbi06.ShowValueString = false; + this.gbi06.Size = new System.Drawing.Size(294, 101); + this.gbi06.TabIndex = 3; + this.gbi06.Tag = "PKZ"; + this.gbi06.Tags = null; + this.gbi06.Text = "gridView1"; + this.gbi06.TextAttachToImage = true; + this.gbi06.Titles = null; + this.gbi06.Values = null; + // + // lbi06 + // + this.lbi06.Dock = System.Windows.Forms.DockStyle.Top; + this.lbi06.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbi06.ForeColor = System.Drawing.Color.Yellow; + this.lbi06.Location = new System.Drawing.Point(0, 0); + this.lbi06.Name = "lbi06"; + this.lbi06.Size = new System.Drawing.Size(294, 16); + this.lbi06.TabIndex = 4; + this.lbi06.Text = "ELEVATOR1-F"; + this.lbi06.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel13 + // + this.panel13.Controls.Add(this.gbi07); + this.panel13.Controls.Add(this.lbi07); + this.panel13.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel13.Location = new System.Drawing.Point(303, 249); + this.panel13.Name = "panel13"; + this.panel13.Size = new System.Drawing.Size(294, 117); + this.panel13.TabIndex = 0; + // + // gbi07 + // + this.gbi07.arVeriticalDraw = false; + this.gbi07.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.gbi07.BorderSize = 1; + colorListItem17.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem17.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem17.Remark = ""; + colorListItem18.BackColor1 = System.Drawing.Color.Orange; + colorListItem18.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem18.Remark = ""; + this.gbi07.ColorList = new arCtl.GridView.ColorListItem[] { + colorListItem17, + colorListItem18}; + this.gbi07.Cursor = System.Windows.Forms.Cursors.Arrow; + this.gbi07.Dock = System.Windows.Forms.DockStyle.Fill; + this.gbi07.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.gbi07.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gbi07.ForeColor = System.Drawing.Color.White; + this.gbi07.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gbi07.Location = new System.Drawing.Point(0, 16); + this.gbi07.MatrixSize = new System.Drawing.Point(4, 5); + this.gbi07.MenuBorderSize = 1; + this.gbi07.MenuGap = 5; + this.gbi07.MinimumSize = new System.Drawing.Size(100, 50); + this.gbi07.Name = "gbi07"; + this.gbi07.Names = null; + this.gbi07.ShadowColor = System.Drawing.Color.Black; + this.gbi07.showDebugInfo = false; + this.gbi07.ShowIndexString = true; + this.gbi07.ShowNameString = true; + this.gbi07.ShowValueString = false; + this.gbi07.Size = new System.Drawing.Size(294, 101); + this.gbi07.TabIndex = 3; + this.gbi07.Tag = "PKZ"; + this.gbi07.Tags = null; + this.gbi07.Text = "gridView1"; + this.gbi07.TextAttachToImage = true; + this.gbi07.Titles = null; + this.gbi07.Values = null; + // + // lbi07 + // + this.lbi07.Dock = System.Windows.Forms.DockStyle.Top; + this.lbi07.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbi07.ForeColor = System.Drawing.Color.Yellow; + this.lbi07.Location = new System.Drawing.Point(0, 0); + this.lbi07.Name = "lbi07"; + this.lbi07.Size = new System.Drawing.Size(294, 16); + this.lbi07.TabIndex = 4; + this.lbi07.Text = "ELEVATOR2-F"; + this.lbi07.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel14 + // + this.panel14.Controls.Add(this.gbi08); + this.panel14.Controls.Add(this.lbi08); + this.panel14.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel14.Location = new System.Drawing.Point(603, 249); + this.panel14.Name = "panel14"; + this.panel14.Size = new System.Drawing.Size(295, 117); + this.panel14.TabIndex = 0; + // + // gbi08 + // + this.gbi08.arVeriticalDraw = false; + this.gbi08.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.gbi08.BorderSize = 1; + colorListItem19.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem19.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem19.Remark = ""; + colorListItem20.BackColor1 = System.Drawing.Color.Orange; + colorListItem20.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem20.Remark = ""; + this.gbi08.ColorList = new arCtl.GridView.ColorListItem[] { + colorListItem19, + colorListItem20}; + this.gbi08.Cursor = System.Windows.Forms.Cursors.Arrow; + this.gbi08.Dock = System.Windows.Forms.DockStyle.Fill; + this.gbi08.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.gbi08.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gbi08.ForeColor = System.Drawing.Color.White; + this.gbi08.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gbi08.Location = new System.Drawing.Point(0, 16); + this.gbi08.MatrixSize = new System.Drawing.Point(4, 5); + this.gbi08.MenuBorderSize = 1; + this.gbi08.MenuGap = 5; + this.gbi08.MinimumSize = new System.Drawing.Size(100, 50); + this.gbi08.Name = "gbi08"; + this.gbi08.Names = null; + this.gbi08.ShadowColor = System.Drawing.Color.Black; + this.gbi08.showDebugInfo = false; + this.gbi08.ShowIndexString = true; + this.gbi08.ShowNameString = true; + this.gbi08.ShowValueString = false; + this.gbi08.Size = new System.Drawing.Size(295, 101); + this.gbi08.TabIndex = 3; + this.gbi08.Tag = "PKZ"; + this.gbi08.Tags = null; + this.gbi08.Text = "gridView1"; + this.gbi08.TextAttachToImage = true; + this.gbi08.Titles = null; + this.gbi08.Values = null; + // + // lbi08 + // + this.lbi08.Dock = System.Windows.Forms.DockStyle.Top; + this.lbi08.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbi08.ForeColor = System.Drawing.Color.Yellow; + this.lbi08.Location = new System.Drawing.Point(0, 0); + this.lbi08.Name = "lbi08"; + this.lbi08.Size = new System.Drawing.Size(295, 16); + this.lbi08.TabIndex = 4; + this.lbi08.Text = "ELEVATOR3-F"; + this.lbi08.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel17 + // + this.panel17.Controls.Add(this.gbi11); + this.panel17.Controls.Add(this.lbi11); + this.panel17.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel17.Location = new System.Drawing.Point(603, 372); + this.panel17.Name = "panel17"; + this.panel17.Size = new System.Drawing.Size(295, 117); + this.panel17.TabIndex = 0; + // + // gbi11 + // + this.gbi11.arVeriticalDraw = false; + this.gbi11.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.gbi11.BorderSize = 1; + colorListItem21.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem21.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem21.Remark = ""; + colorListItem22.BackColor1 = System.Drawing.Color.Orange; + colorListItem22.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem22.Remark = ""; + this.gbi11.ColorList = new arCtl.GridView.ColorListItem[] { + colorListItem21, + colorListItem22}; + this.gbi11.Cursor = System.Windows.Forms.Cursors.Arrow; + this.gbi11.Dock = System.Windows.Forms.DockStyle.Fill; + this.gbi11.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.gbi11.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gbi11.ForeColor = System.Drawing.Color.White; + this.gbi11.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gbi11.Location = new System.Drawing.Point(0, 16); + this.gbi11.MatrixSize = new System.Drawing.Point(4, 5); + this.gbi11.MenuBorderSize = 1; + this.gbi11.MenuGap = 5; + this.gbi11.MinimumSize = new System.Drawing.Size(100, 50); + this.gbi11.Name = "gbi11"; + this.gbi11.Names = null; + this.gbi11.ShadowColor = System.Drawing.Color.Black; + this.gbi11.showDebugInfo = false; + this.gbi11.ShowIndexString = true; + this.gbi11.ShowNameString = true; + this.gbi11.ShowValueString = false; + this.gbi11.Size = new System.Drawing.Size(295, 101); + this.gbi11.TabIndex = 3; + this.gbi11.Tag = "PKZ"; + this.gbi11.Tags = null; + this.gbi11.Text = "gridView1"; + this.gbi11.TextAttachToImage = true; + this.gbi11.Titles = null; + this.gbi11.Values = null; + // + // lbi11 + // + this.lbi11.Dock = System.Windows.Forms.DockStyle.Top; + this.lbi11.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbi11.ForeColor = System.Drawing.Color.SkyBlue; + this.lbi11.Location = new System.Drawing.Point(0, 0); + this.lbi11.Name = "lbi11"; + this.lbi11.Size = new System.Drawing.Size(295, 16); + this.lbi11.TabIndex = 4; + this.lbi11.Text = "Y3"; + this.lbi11.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel18 + // + this.panel18.Controls.Add(this.gbi10); + this.panel18.Controls.Add(this.lbi10); + this.panel18.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel18.Location = new System.Drawing.Point(303, 372); + this.panel18.Name = "panel18"; + this.panel18.Size = new System.Drawing.Size(294, 117); + this.panel18.TabIndex = 0; + // + // gbi10 + // + this.gbi10.arVeriticalDraw = false; + this.gbi10.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.gbi10.BorderSize = 1; + colorListItem23.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem23.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem23.Remark = ""; + colorListItem24.BackColor1 = System.Drawing.Color.Orange; + colorListItem24.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem24.Remark = ""; + this.gbi10.ColorList = new arCtl.GridView.ColorListItem[] { + colorListItem23, + colorListItem24}; + this.gbi10.Cursor = System.Windows.Forms.Cursors.Arrow; + this.gbi10.Dock = System.Windows.Forms.DockStyle.Fill; + this.gbi10.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.gbi10.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gbi10.ForeColor = System.Drawing.Color.White; + this.gbi10.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gbi10.Location = new System.Drawing.Point(0, 16); + this.gbi10.MatrixSize = new System.Drawing.Point(4, 5); + this.gbi10.MenuBorderSize = 1; + this.gbi10.MenuGap = 5; + this.gbi10.MinimumSize = new System.Drawing.Size(100, 50); + this.gbi10.Name = "gbi10"; + this.gbi10.Names = null; + this.gbi10.ShadowColor = System.Drawing.Color.Black; + this.gbi10.showDebugInfo = false; + this.gbi10.ShowIndexString = true; + this.gbi10.ShowNameString = true; + this.gbi10.ShowValueString = false; + this.gbi10.Size = new System.Drawing.Size(294, 101); + this.gbi10.TabIndex = 3; + this.gbi10.Tag = "PKZ"; + this.gbi10.Tags = null; + this.gbi10.Text = "gridView1"; + this.gbi10.TextAttachToImage = true; + this.gbi10.Titles = null; + this.gbi10.Values = null; + // + // lbi10 + // + this.lbi10.Dock = System.Windows.Forms.DockStyle.Top; + this.lbi10.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbi10.ForeColor = System.Drawing.Color.SkyBlue; + this.lbi10.Location = new System.Drawing.Point(0, 0); + this.lbi10.Name = "lbi10"; + this.lbi10.Size = new System.Drawing.Size(294, 16); + this.lbi10.TabIndex = 4; + this.lbi10.Text = "Y2"; + this.lbi10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel19 + // + this.panel19.Controls.Add(this.gbi09); + this.panel19.Controls.Add(this.lbi09); + this.panel19.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel19.Location = new System.Drawing.Point(3, 372); + this.panel19.Name = "panel19"; + this.panel19.Size = new System.Drawing.Size(294, 117); + this.panel19.TabIndex = 0; + // + // gbi09 + // + this.gbi09.arVeriticalDraw = false; + this.gbi09.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.gbi09.BorderSize = 1; + colorListItem25.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem25.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem25.Remark = ""; + colorListItem26.BackColor1 = System.Drawing.Color.Orange; + colorListItem26.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem26.Remark = ""; + this.gbi09.ColorList = new arCtl.GridView.ColorListItem[] { + colorListItem25, + colorListItem26}; + this.gbi09.Cursor = System.Windows.Forms.Cursors.Arrow; + this.gbi09.Dock = System.Windows.Forms.DockStyle.Fill; + this.gbi09.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.gbi09.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gbi09.ForeColor = System.Drawing.Color.White; + this.gbi09.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gbi09.Location = new System.Drawing.Point(0, 16); + this.gbi09.MatrixSize = new System.Drawing.Point(4, 5); + this.gbi09.MenuBorderSize = 1; + this.gbi09.MenuGap = 5; + this.gbi09.MinimumSize = new System.Drawing.Size(100, 50); + this.gbi09.Name = "gbi09"; + this.gbi09.Names = null; + this.gbi09.ShadowColor = System.Drawing.Color.Black; + this.gbi09.showDebugInfo = false; + this.gbi09.ShowIndexString = true; + this.gbi09.ShowNameString = true; + this.gbi09.ShowValueString = false; + this.gbi09.Size = new System.Drawing.Size(294, 101); + this.gbi09.TabIndex = 3; + this.gbi09.Tag = "PKZ"; + this.gbi09.Tags = null; + this.gbi09.Text = "gridView1"; + this.gbi09.TextAttachToImage = true; + this.gbi09.Titles = null; + this.gbi09.Values = null; + // + // lbi09 + // + this.lbi09.Dock = System.Windows.Forms.DockStyle.Top; + this.lbi09.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbi09.ForeColor = System.Drawing.Color.SkyBlue; + this.lbi09.Location = new System.Drawing.Point(0, 0); + this.lbi09.Name = "lbi09"; + this.lbi09.Size = new System.Drawing.Size(294, 16); + this.lbi09.TabIndex = 4; + this.lbi09.Text = "Y1"; + this.lbi09.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel20 + // + this.panel20.Controls.Add(this.gbi12); + this.panel20.Controls.Add(this.lbi12); + this.panel20.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel20.Location = new System.Drawing.Point(3, 495); + this.panel20.Name = "panel20"; + this.panel20.Size = new System.Drawing.Size(294, 117); + this.panel20.TabIndex = 0; + // + // gbi12 + // + this.gbi12.arVeriticalDraw = false; + this.gbi12.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.gbi12.BorderSize = 1; + colorListItem27.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem27.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem27.Remark = ""; + colorListItem28.BackColor1 = System.Drawing.Color.Orange; + colorListItem28.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem28.Remark = ""; + this.gbi12.ColorList = new arCtl.GridView.ColorListItem[] { + colorListItem27, + colorListItem28}; + this.gbi12.Cursor = System.Windows.Forms.Cursors.Arrow; + this.gbi12.Dock = System.Windows.Forms.DockStyle.Fill; + this.gbi12.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.gbi12.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gbi12.ForeColor = System.Drawing.Color.White; + this.gbi12.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gbi12.Location = new System.Drawing.Point(0, 16); + this.gbi12.MatrixSize = new System.Drawing.Point(4, 5); + this.gbi12.MenuBorderSize = 1; + this.gbi12.MenuGap = 5; + this.gbi12.MinimumSize = new System.Drawing.Size(100, 50); + this.gbi12.Name = "gbi12"; + this.gbi12.Names = null; + this.gbi12.ShadowColor = System.Drawing.Color.Black; + this.gbi12.showDebugInfo = false; + this.gbi12.ShowIndexString = true; + this.gbi12.ShowNameString = true; + this.gbi12.ShowValueString = false; + this.gbi12.Size = new System.Drawing.Size(294, 101); + this.gbi12.TabIndex = 3; + this.gbi12.Tag = "PKZ"; + this.gbi12.Tags = null; + this.gbi12.Text = "gridView1"; + this.gbi12.TextAttachToImage = true; + this.gbi12.Titles = null; + this.gbi12.Values = null; + // + // lbi12 + // + this.lbi12.Dock = System.Windows.Forms.DockStyle.Top; + this.lbi12.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbi12.ForeColor = System.Drawing.Color.SkyBlue; + this.lbi12.Location = new System.Drawing.Point(0, 0); + this.lbi12.Name = "lbi12"; + this.lbi12.Size = new System.Drawing.Size(294, 16); + this.lbi12.TabIndex = 4; + this.lbi12.Text = "Z-PICKER1-F"; + this.lbi12.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel21 + // + this.panel21.Controls.Add(this.gbi13); + this.panel21.Controls.Add(this.lbi13); + this.panel21.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel21.Location = new System.Drawing.Point(303, 495); + this.panel21.Name = "panel21"; + this.panel21.Size = new System.Drawing.Size(294, 117); + this.panel21.TabIndex = 0; + // + // gbi13 + // + this.gbi13.arVeriticalDraw = false; + this.gbi13.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.gbi13.BorderSize = 1; + colorListItem29.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem29.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem29.Remark = ""; + colorListItem30.BackColor1 = System.Drawing.Color.Orange; + colorListItem30.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem30.Remark = ""; + this.gbi13.ColorList = new arCtl.GridView.ColorListItem[] { + colorListItem29, + colorListItem30}; + this.gbi13.Cursor = System.Windows.Forms.Cursors.Arrow; + this.gbi13.Dock = System.Windows.Forms.DockStyle.Fill; + this.gbi13.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.gbi13.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gbi13.ForeColor = System.Drawing.Color.White; + this.gbi13.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gbi13.Location = new System.Drawing.Point(0, 16); + this.gbi13.MatrixSize = new System.Drawing.Point(4, 5); + this.gbi13.MenuBorderSize = 1; + this.gbi13.MenuGap = 5; + this.gbi13.MinimumSize = new System.Drawing.Size(100, 50); + this.gbi13.Name = "gbi13"; + this.gbi13.Names = null; + this.gbi13.ShadowColor = System.Drawing.Color.Black; + this.gbi13.showDebugInfo = false; + this.gbi13.ShowIndexString = true; + this.gbi13.ShowNameString = true; + this.gbi13.ShowValueString = false; + this.gbi13.Size = new System.Drawing.Size(294, 101); + this.gbi13.TabIndex = 3; + this.gbi13.Tag = "PKZ"; + this.gbi13.Tags = null; + this.gbi13.Text = "gridView1"; + this.gbi13.TextAttachToImage = true; + this.gbi13.Titles = null; + this.gbi13.Values = null; + // + // lbi13 + // + this.lbi13.Dock = System.Windows.Forms.DockStyle.Top; + this.lbi13.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbi13.ForeColor = System.Drawing.Color.SkyBlue; + this.lbi13.Location = new System.Drawing.Point(0, 0); + this.lbi13.Name = "lbi13"; + this.lbi13.Size = new System.Drawing.Size(294, 16); + this.lbi13.TabIndex = 4; + this.lbi13.Text = "Z-PICKER2-F"; + this.lbi13.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel22 + // + this.panel22.Controls.Add(this.gbi14); + this.panel22.Controls.Add(this.lbi14); + this.panel22.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel22.Location = new System.Drawing.Point(603, 495); + this.panel22.Name = "panel22"; + this.panel22.Size = new System.Drawing.Size(295, 117); + this.panel22.TabIndex = 0; + // + // gbi14 + // + this.gbi14.arVeriticalDraw = false; + this.gbi14.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.gbi14.BorderSize = 1; + colorListItem31.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem31.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem31.Remark = ""; + colorListItem32.BackColor1 = System.Drawing.Color.Orange; + colorListItem32.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem32.Remark = ""; + this.gbi14.ColorList = new arCtl.GridView.ColorListItem[] { + colorListItem31, + colorListItem32}; + this.gbi14.Cursor = System.Windows.Forms.Cursors.Arrow; + this.gbi14.Dock = System.Windows.Forms.DockStyle.Fill; + this.gbi14.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.gbi14.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gbi14.ForeColor = System.Drawing.Color.White; + this.gbi14.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gbi14.Location = new System.Drawing.Point(0, 16); + this.gbi14.MatrixSize = new System.Drawing.Point(4, 5); + this.gbi14.MenuBorderSize = 1; + this.gbi14.MenuGap = 5; + this.gbi14.MinimumSize = new System.Drawing.Size(100, 50); + this.gbi14.Name = "gbi14"; + this.gbi14.Names = null; + this.gbi14.ShadowColor = System.Drawing.Color.Black; + this.gbi14.showDebugInfo = false; + this.gbi14.ShowIndexString = true; + this.gbi14.ShowNameString = true; + this.gbi14.ShowValueString = false; + this.gbi14.Size = new System.Drawing.Size(295, 101); + this.gbi14.TabIndex = 3; + this.gbi14.Tag = "PKZ"; + this.gbi14.Tags = null; + this.gbi14.Text = "gridView1"; + this.gbi14.TextAttachToImage = true; + this.gbi14.Titles = null; + this.gbi14.Values = null; + // + // lbi14 + // + this.lbi14.Dock = System.Windows.Forms.DockStyle.Top; + this.lbi14.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbi14.ForeColor = System.Drawing.Color.SkyBlue; + this.lbi14.Location = new System.Drawing.Point(0, 0); + this.lbi14.Name = "lbi14"; + this.lbi14.Size = new System.Drawing.Size(295, 16); + this.lbi14.TabIndex = 4; + this.lbi14.Text = "Z-PICKER3-F"; + this.lbi14.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel1 + // + this.panel1.Controls.Add(this.gbi05); + this.panel1.Controls.Add(this.lbi05); + this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel1.Location = new System.Drawing.Point(603, 126); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(295, 117); + this.panel1.TabIndex = 0; + // + // gbi05 + // + this.gbi05.arVeriticalDraw = false; + this.gbi05.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.gbi05.BorderSize = 1; + colorListItem33.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem33.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem33.Remark = ""; + colorListItem34.BackColor1 = System.Drawing.Color.Orange; + colorListItem34.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem34.Remark = ""; + this.gbi05.ColorList = new arCtl.GridView.ColorListItem[] { + colorListItem33, + colorListItem34}; + this.gbi05.Cursor = System.Windows.Forms.Cursors.Arrow; + this.gbi05.Dock = System.Windows.Forms.DockStyle.Fill; + this.gbi05.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.gbi05.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gbi05.ForeColor = System.Drawing.Color.White; + this.gbi05.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gbi05.Location = new System.Drawing.Point(0, 16); + this.gbi05.MatrixSize = new System.Drawing.Point(4, 5); + this.gbi05.MenuBorderSize = 1; + this.gbi05.MenuGap = 5; + this.gbi05.MinimumSize = new System.Drawing.Size(100, 50); + this.gbi05.Name = "gbi05"; + this.gbi05.Names = null; + this.gbi05.ShadowColor = System.Drawing.Color.Black; + this.gbi05.showDebugInfo = false; + this.gbi05.ShowIndexString = true; + this.gbi05.ShowNameString = true; + this.gbi05.ShowValueString = false; + this.gbi05.Size = new System.Drawing.Size(295, 101); + this.gbi05.TabIndex = 3; + this.gbi05.Tag = "PKZ"; + this.gbi05.Tags = null; + this.gbi05.Text = "gridView1"; + this.gbi05.TextAttachToImage = true; + this.gbi05.Titles = null; + this.gbi05.Values = null; + // + // lbi05 + // + this.lbi05.Dock = System.Windows.Forms.DockStyle.Top; + this.lbi05.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbi05.ForeColor = System.Drawing.Color.Cyan; + this.lbi05.Location = new System.Drawing.Point(0, 0); + this.lbi05.Name = "lbi05"; + this.lbi05.Size = new System.Drawing.Size(295, 16); + this.lbi05.TabIndex = 4; + this.lbi05.Text = "X-FRONT"; + this.lbi05.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel4 + // + this.panel4.Controls.Add(this.gbi15); + this.panel4.Controls.Add(this.lbi15); + this.panel4.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel4.Location = new System.Drawing.Point(3, 618); + this.panel4.Name = "panel4"; + this.panel4.Size = new System.Drawing.Size(294, 119); + this.panel4.TabIndex = 0; + // + // gbi15 + // + this.gbi15.arVeriticalDraw = false; + this.gbi15.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.gbi15.BorderSize = 1; + colorListItem35.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem35.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem35.Remark = ""; + colorListItem36.BackColor1 = System.Drawing.Color.Orange; + colorListItem36.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem36.Remark = ""; + this.gbi15.ColorList = new arCtl.GridView.ColorListItem[] { + colorListItem35, + colorListItem36}; + this.gbi15.Cursor = System.Windows.Forms.Cursors.Arrow; + this.gbi15.Dock = System.Windows.Forms.DockStyle.Fill; + this.gbi15.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.gbi15.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gbi15.ForeColor = System.Drawing.Color.White; + this.gbi15.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gbi15.Location = new System.Drawing.Point(0, 16); + this.gbi15.MatrixSize = new System.Drawing.Point(4, 5); + this.gbi15.MenuBorderSize = 1; + this.gbi15.MenuGap = 5; + this.gbi15.MinimumSize = new System.Drawing.Size(100, 50); + this.gbi15.Name = "gbi15"; + this.gbi15.Names = null; + this.gbi15.ShadowColor = System.Drawing.Color.Black; + this.gbi15.showDebugInfo = false; + this.gbi15.ShowIndexString = true; + this.gbi15.ShowNameString = true; + this.gbi15.ShowValueString = false; + this.gbi15.Size = new System.Drawing.Size(294, 103); + this.gbi15.TabIndex = 3; + this.gbi15.Tag = "PKZ"; + this.gbi15.Tags = null; + this.gbi15.Text = "gridView1"; + this.gbi15.TextAttachToImage = true; + this.gbi15.Titles = null; + this.gbi15.Values = null; + // + // lbi15 + // + this.lbi15.Dock = System.Windows.Forms.DockStyle.Top; + this.lbi15.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbi15.ForeColor = System.Drawing.Color.Cyan; + this.lbi15.Location = new System.Drawing.Point(0, 0); + this.lbi15.Name = "lbi15"; + this.lbi15.Size = new System.Drawing.Size(294, 16); + this.lbi15.TabIndex = 4; + this.lbi15.Text = "X-FRONT"; + this.lbi15.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel15 + // + this.panel15.Controls.Add(this.gbi16); + this.panel15.Controls.Add(this.lbi16); + this.panel15.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel15.Location = new System.Drawing.Point(303, 618); + this.panel15.Name = "panel15"; + this.panel15.Size = new System.Drawing.Size(294, 119); + this.panel15.TabIndex = 0; + // + // gbi16 + // + this.gbi16.arVeriticalDraw = false; + this.gbi16.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.gbi16.BorderSize = 1; + colorListItem37.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem37.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem37.Remark = ""; + colorListItem38.BackColor1 = System.Drawing.Color.Orange; + colorListItem38.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem38.Remark = ""; + this.gbi16.ColorList = new arCtl.GridView.ColorListItem[] { + colorListItem37, + colorListItem38}; + this.gbi16.Cursor = System.Windows.Forms.Cursors.Arrow; + this.gbi16.Dock = System.Windows.Forms.DockStyle.Fill; + this.gbi16.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.gbi16.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gbi16.ForeColor = System.Drawing.Color.White; + this.gbi16.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gbi16.Location = new System.Drawing.Point(0, 16); + this.gbi16.MatrixSize = new System.Drawing.Point(4, 5); + this.gbi16.MenuBorderSize = 1; + this.gbi16.MenuGap = 5; + this.gbi16.MinimumSize = new System.Drawing.Size(100, 50); + this.gbi16.Name = "gbi16"; + this.gbi16.Names = null; + this.gbi16.ShadowColor = System.Drawing.Color.Black; + this.gbi16.showDebugInfo = false; + this.gbi16.ShowIndexString = true; + this.gbi16.ShowNameString = true; + this.gbi16.ShowValueString = false; + this.gbi16.Size = new System.Drawing.Size(294, 103); + this.gbi16.TabIndex = 3; + this.gbi16.Tag = "PKZ"; + this.gbi16.Tags = null; + this.gbi16.Text = "gridView1"; + this.gbi16.TextAttachToImage = true; + this.gbi16.Titles = null; + this.gbi16.Values = null; + // + // lbi16 + // + this.lbi16.Dock = System.Windows.Forms.DockStyle.Top; + this.lbi16.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbi16.ForeColor = System.Drawing.Color.Cyan; + this.lbi16.Location = new System.Drawing.Point(0, 0); + this.lbi16.Name = "lbi16"; + this.lbi16.Size = new System.Drawing.Size(294, 16); + this.lbi16.TabIndex = 4; + this.lbi16.Text = "X-FRONT"; + this.lbi16.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel24 + // + this.panel24.Controls.Add(this.gbi17); + this.panel24.Controls.Add(this.lbi17); + this.panel24.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel24.Location = new System.Drawing.Point(603, 618); + this.panel24.Name = "panel24"; + this.panel24.Size = new System.Drawing.Size(295, 119); + this.panel24.TabIndex = 0; + // + // gbi17 + // + this.gbi17.arVeriticalDraw = false; + this.gbi17.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.gbi17.BorderSize = 1; + colorListItem39.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem39.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem39.Remark = ""; + colorListItem40.BackColor1 = System.Drawing.Color.Orange; + colorListItem40.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem40.Remark = ""; + this.gbi17.ColorList = new arCtl.GridView.ColorListItem[] { + colorListItem39, + colorListItem40}; + this.gbi17.Cursor = System.Windows.Forms.Cursors.Arrow; + this.gbi17.Dock = System.Windows.Forms.DockStyle.Fill; + this.gbi17.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.gbi17.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gbi17.ForeColor = System.Drawing.Color.White; + this.gbi17.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gbi17.Location = new System.Drawing.Point(0, 16); + this.gbi17.MatrixSize = new System.Drawing.Point(4, 5); + this.gbi17.MenuBorderSize = 1; + this.gbi17.MenuGap = 5; + this.gbi17.MinimumSize = new System.Drawing.Size(100, 50); + this.gbi17.Name = "gbi17"; + this.gbi17.Names = null; + this.gbi17.ShadowColor = System.Drawing.Color.Black; + this.gbi17.showDebugInfo = false; + this.gbi17.ShowIndexString = true; + this.gbi17.ShowNameString = true; + this.gbi17.ShowValueString = false; + this.gbi17.Size = new System.Drawing.Size(295, 103); + this.gbi17.TabIndex = 3; + this.gbi17.Tag = "PKZ"; + this.gbi17.Tags = null; + this.gbi17.Text = "gridView1"; + this.gbi17.TextAttachToImage = true; + this.gbi17.Titles = null; + this.gbi17.Values = null; + // + // lbi17 + // + this.lbi17.Dock = System.Windows.Forms.DockStyle.Top; + this.lbi17.Font = new System.Drawing.Font("Tahoma", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbi17.ForeColor = System.Drawing.Color.Cyan; + this.lbi17.Location = new System.Drawing.Point(0, 0); + this.lbi17.Name = "lbi17"; + this.lbi17.Size = new System.Drawing.Size(295, 16); + this.lbi17.TabIndex = 4; + this.lbi17.Text = "X-FRONT"; + this.lbi17.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // tmDisplay + // + this.tmDisplay.Interval = 250; + this.tmDisplay.Tick += new System.EventHandler(this.tmDisplay_Tick); + // + // contextMenuStrip1 + // + this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.pinDefineToolStripMenuItem}); + this.contextMenuStrip1.Name = "contextMenuStrip1"; + this.contextMenuStrip1.Size = new System.Drawing.Size(153, 48); + // + // pinDefineToolStripMenuItem + // + this.pinDefineToolStripMenuItem.Name = "pinDefineToolStripMenuItem"; + this.pinDefineToolStripMenuItem.Size = new System.Drawing.Size(152, 22); + this.pinDefineToolStripMenuItem.Text = "Pin Define"; + this.pinDefineToolStripMenuItem.Click += new System.EventHandler(this.pinDefineToolStripMenuItem_Click); + // + // fIOMonitor + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.SystemColors.Control; + this.ClientSize = new System.Drawing.Size(1227, 748); + this.Controls.Add(this.tabControl1); + this.Controls.Add(this.panel3); + this.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.KeyPreview = true; + this.Name = "fIOMonitor"; + this.Opacity = 0.95D; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "I/O Monitor"; + this.Load += new System.EventHandler(this.fIOMonitor_Load); + this.tabControl1.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + this.tableLayoutPanel1.ResumeLayout(false); + this.panel2.ResumeLayout(false); + this.tabPage4.ResumeLayout(false); + this.tableLayoutPanel3.ResumeLayout(false); + this.panel6.ResumeLayout(false); + this.tabPage3.ResumeLayout(false); + this.tableLayoutPanel2.ResumeLayout(false); + this.panel5.ResumeLayout(false); + this.panel8.ResumeLayout(false); + this.panel11.ResumeLayout(false); + this.panel7.ResumeLayout(false); + this.panel10.ResumeLayout(false); + this.panel12.ResumeLayout(false); + this.panel13.ResumeLayout(false); + this.panel14.ResumeLayout(false); + this.panel17.ResumeLayout(false); + this.panel18.ResumeLayout(false); + this.panel19.ResumeLayout(false); + this.panel20.ResumeLayout(false); + this.panel21.ResumeLayout(false); + this.panel22.ResumeLayout(false); + this.panel1.ResumeLayout(false); + this.panel4.ResumeLayout(false); + this.panel15.ResumeLayout(false); + this.panel24.ResumeLayout(false); + this.contextMenuStrip1.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Panel panel3; + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Panel panel2; + private arCtl.arLabel lbTitle1; + private System.Windows.Forms.TabPage tabPage3; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; + private arCtl.GridView.GridView gbi00; + private System.Windows.Forms.Panel panel5; + private System.Windows.Forms.Panel panel8; + private System.Windows.Forms.Panel panel11; + private System.Windows.Forms.Label lbi01; + private System.Windows.Forms.Label lbi02; + private System.Windows.Forms.Label lbi00; + private System.Windows.Forms.Timer tmDisplay; + private arCtl.GridView.GridView gbi10; + private arCtl.GridView.GridView gbi02; + private System.Windows.Forms.TabPage tabPage4; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; + private System.Windows.Forms.Panel panel6; + private arCtl.arLabel arLabel2; + private System.Windows.Forms.Panel panel7; + private arCtl.GridView.GridView gbi04; + private System.Windows.Forms.Label lbi04; + private System.Windows.Forms.Panel panel10; + private arCtl.GridView.GridView gbi03; + private System.Windows.Forms.Label lbi03; + private System.Windows.Forms.Panel panel12; + private arCtl.GridView.GridView gbi06; + private System.Windows.Forms.Label lbi06; + private System.Windows.Forms.Panel panel13; + private arCtl.GridView.GridView gbi07; + private System.Windows.Forms.Label lbi07; + private System.Windows.Forms.Panel panel14; + private arCtl.GridView.GridView gbi08; + private System.Windows.Forms.Label lbi08; + private System.Windows.Forms.Panel panel17; + private arCtl.GridView.GridView gbi11; + private System.Windows.Forms.Label lbi11; + private System.Windows.Forms.Panel panel18; + private arCtl.GridView.GridView gbi01; + private System.Windows.Forms.Label lbi10; + private System.Windows.Forms.Panel panel19; + private arCtl.GridView.GridView gbi09; + private System.Windows.Forms.Label lbi09; + private System.Windows.Forms.Panel panel20; + private arCtl.GridView.GridView gbi12; + private System.Windows.Forms.Label lbi12; + private System.Windows.Forms.Panel panel21; + private arCtl.GridView.GridView gbi13; + private System.Windows.Forms.Label lbi13; + private System.Windows.Forms.Panel panel22; + private arCtl.GridView.GridView gbi14; + private System.Windows.Forms.Label lbi14; + private arDev.AjinEXTEK.IOPanel tblDI; + private arDev.AjinEXTEK.IOPanel tblDO; + private System.Windows.Forms.Panel panel1; + private arCtl.GridView.GridView gbi05; + private System.Windows.Forms.Label lbi05; + private System.Windows.Forms.Panel panel4; + private arCtl.GridView.GridView gbi15; + private System.Windows.Forms.Label lbi15; + private System.Windows.Forms.Panel panel15; + private arCtl.GridView.GridView gbi16; + private System.Windows.Forms.Label lbi16; + private System.Windows.Forms.Panel panel24; + private arCtl.GridView.GridView gbi17; + private System.Windows.Forms.Label lbi17; + private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; + private System.Windows.Forms.ToolStripMenuItem pinDefineToolStripMenuItem; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/DIOMonitor.cs b/Handler/Project/Dialog/DIOMonitor.cs new file mode 100644 index 0000000..f7cd732 --- /dev/null +++ b/Handler/Project/Dialog/DIOMonitor.cs @@ -0,0 +1,431 @@ +#pragma warning disable IDE1006 // 명명 스타일 + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using arDev.DIO; +using arDev.AjinEXTEK; +using AR; +using AR; + +namespace Project.Dialog +{ + public partial class fIOMonitor : Form + { + arCtl.GridView.GridView[] gvIlog; + Label[] lbILog; + + public fIOMonitor() + { + InitializeComponent(); + this.FormClosed += fIOMonitor_FormClosed; + + this.Opacity = 1.0; + + gvIlog = new arCtl.GridView.GridView[] { + gbi00,gbi01,gbi02,gbi03,gbi04,gbi05, + gbi06,gbi07,gbi08,gbi09,gbi10,gbi11, + gbi12,gbi13,gbi14,gbi15,gbi16,gbi17, + }; + lbILog = new Label[] { + lbi00,lbi01,lbi02,lbi03,lbi04,lbi05, + lbi06,lbi07,lbi08,lbi09,lbi10,lbi11, + lbi12,lbi13,lbi14,lbi15,lbi16,lbi17, + }; + + //DI,DO, + var dinames = DIO.Pin.GetDIName; + var donames = DIO.Pin.GetDOName; + tblDI.setTitle(dinames); + tblDO.setTitle(donames); + //tblFG.setTitle(PUB.flag.Name); + var pinNameI = DIO.Pin.GetDIPinName;// new string[dinames.Length]; + var pinNameO = DIO.Pin.GetDOPinName;// new string[donames.Length]; + //for (int i = 0; i < pinNameI.Length; i++) pinNameI[i] = Enum.GetName(typeof(eDIPin), i); + //for (int i = 0; i < pinNameO.Length; i++) pinNameO[i] = Enum.GetName(typeof(eDOPin), i); + tblDI.setNames(pinNameI); + tblDO.setNames(pinNameO); + + tblDI.setItemTextAlign(ContentAlignment.MiddleLeft); + tblDO.setItemTextAlign(ContentAlignment.MiddleLeft); + + // tblFG.setItemTextAlign(ContentAlignment.BottomLeft); + tblDI.ColorList = new arDev.AjinEXTEK.ColorListItem[] { + new arDev.AjinEXTEK.ColorListItem{ BackColor1 = Color.DimGray, BackColor2 = Color.FromArgb(30,30,30), Remark="False" }, + new arDev.AjinEXTEK.ColorListItem{ BackColor1 = Color.Lime, BackColor2 = Color.Green, Remark="True" }, + }; + tblDO.ColorList = new arDev.AjinEXTEK.ColorListItem[] { + new arDev.AjinEXTEK.ColorListItem{ BackColor1 = Color.DimGray, BackColor2 = Color.FromArgb(30,30,30), Remark="False" }, + new arDev.AjinEXTEK.ColorListItem{ BackColor1 = Color.Tomato, BackColor2 = Color.Red, Remark="True" }, + }; + + //인터락이름 + //var ILNameEV = new string[Pub.iLock.Length]; + for (int i = 0; i < PUB.iLock.Length; i++) + { + var axisname = ((eAxis)i).ToString(); + var nonaxis = false; + if (i >= 7) //이름이없는경우 + { + axisname = PUB.iLock[i].Tag.ToString(); + nonaxis = true; + } + string[] ILNameEV; + + //if (axisname.StartsWith("X")) ILNameEV = Enum.GetNames(typeof(eILockPKX)); + //else if (axisname.StartsWith("Y")) ILNameEV = Enum.GetNames(typeof(eILockPKY)); + //else if (axisname.StartsWith("Z")) ILNameEV = Enum.GetNames(typeof(eILockPKZ)); + //else if (axisname.StartsWith("U")) ILNameEV = Enum.GetNames(typeof(eILockEV)); + //else if (axisname.StartsWith("L")) ILNameEV = Enum.GetNames(typeof(eILockEV)); + //else + if (i == 7) ILNameEV = Enum.GetNames(typeof(eILockPRL)); + else if (i == 8) ILNameEV = Enum.GetNames(typeof(eILockPRR)); + else if (i == 9) ILNameEV = Enum.GetNames(typeof(eILockVS0)); + else if (i == 10) ILNameEV = Enum.GetNames(typeof(eILockVS1)); + else if (i == 11) ILNameEV = Enum.GetNames(typeof(eILockVS2)); + else if (i == 12) ILNameEV = Enum.GetNames(typeof(eILockCV)); + else if (i == 13) ILNameEV = Enum.GetNames(typeof(eILockCV)); + else ILNameEV = Enum.GetNames(typeof(eILock)); + + this.lbILog[i].Text = axisname; + this.gvIlog[i].setTitle(ILNameEV); + this.gvIlog[i].setItemTextAlign(ContentAlignment.MiddleCenter); + this.gvIlog[i].ColorList[1].BackColor1 = Color.IndianRed; + this.gvIlog[i].ColorList[1].BackColor2 = Color.LightCoral; + + if (nonaxis) + { + lbILog[i].ForeColor = Color.Gold; + } + else + { + if (axisname.StartsWith("PX")) this.lbILog[i].ForeColor = Color.Gold; + else if (axisname.StartsWith("PY")) this.lbILog[i].ForeColor = Color.Tomato; + else if (axisname.StartsWith("PZ")) this.lbILog[i].ForeColor = Color.Lime; + else if (axisname.StartsWith("PU")) this.lbILog[i].ForeColor = Color.SkyBlue; + else if (axisname.StartsWith("PL")) this.lbILog[i].ForeColor = Color.Magenta; + else this.lbILog[i].ForeColor = Color.DimGray; + } + + } + + + + //값확인 + List diValue = new List(); + for (int i = 0; i < PUB.dio.GetDICount; i++) + diValue.Add(PUB.dio.GetDIValue(i)); + + List doValue = new List(); + for (int i = 0; i < PUB.dio.GetDOCount; i++) + doValue.Add(PUB.dio.GetDOValue(i)); + //List fgValue = new List(); + //for (int i = 0; i < PUB.flag.Length; i++) + // fgValue.Add(PUB.flag.get(i)); + + tblDI.setValue(diValue.ToArray()); + tblDO.setValue(doValue.ToArray()); + // tblFG.setValue(fgValue.ToArray()); + + PUB.dio.IOValueChanged += dio_IOValueChanged; + //PUB.flag.ValueChanged += flag_ValueChanged; + + //interlock + var axislist = Enum.GetNames(typeof(eAxis)); + + + + for (int i = 0; i < PUB.iLock.Length; i++) + { + List PKValues = new List(); + + //인터락에는 값이 몇개 있지? + for (int j = 0; j < 64; j++) + { + PKValues.Add(PUB.iLock[i].get(j)); + } + + gvIlog[i].setValue(PKValues.ToArray()); + gvIlog[i].Tag = i; + + PUB.iLock[i].ValueChanged += LockXF_ValueChanged; + + if (PUB.sm.isRunning == false) + { + gvIlog[i].ItemClick += gvILXF_ItemClick; + } + gvIlog[i].Invalidate(); + } + + + if (PUB.sm.isRunning == false) + { + this.tblDI.ItemClick += tblDI_ItemClick; + this.tblDO.ItemClick += tblDO_ItemClick; + //this.tblFG.ItemClick += tblFG_ItemClick; + } + + this.tblDI.Invalidate(); + this.tblDO.Invalidate(); + // this.tblFG.Invalidate(); + + this.KeyDown += fIOMonitor_KeyDown; + this.WindowState = FormWindowState.Maximized; + } + + + void fIOMonitor_FormClosed(object sender, FormClosedEventArgs e) + { + PUB.dio.IOValueChanged -= dio_IOValueChanged; + // PUB.flag.ValueChanged -= flag_ValueChanged; + + for (int i = 0; i < PUB.iLock.Length; i++) + { + PUB.iLock[i].ValueChanged -= LockXF_ValueChanged; + } + + + if (PUB.sm.isRunning == false) + { + this.tblDI.ItemClick -= tblDI_ItemClick; + this.tblDO.ItemClick -= tblDO_ItemClick; + // this.tblFG.ItemClick -= tblFG_ItemClick; + + for (int i = 0; i < PUB.iLock.Length; i++) + { + gvIlog[i].ItemClick -= gvILXF_ItemClick; + } + + } + + this.KeyDown -= fIOMonitor_KeyDown; + } + + void LockXF_ValueChanged(object sender, AR.InterfaceValueEventArgs e) + { + var item = sender as CInterLock; + //var tagStr = item.Tag.ToString(); + //var axis = (eAxis)Enum.Parse(typeof(eAxis), tagStr); + var axisno = item.idx;// (int)axis; + + if (this.gvIlog[axisno].setValue((int)e.ArrIDX, e.NewValue)) + this.gvIlog[axisno].Invalidate(); + + } + + void gvILXF_ItemClick(object sender, arCtl.GridView.GridView.ItemClickEventArgs e) + { + var gv = sender as arCtl.GridView.GridView; + var tagStr = gv.Tag.ToString(); + + var axis = (eAxis)Enum.Parse(typeof(eAxis), tagStr); + var axisno = (int)axis; + + var curValue = PUB.iLock[axisno].get((int)e.idx); + PUB.iLock[axisno].set((int)e.idx, !curValue, "IOMONITOR"); + } + + void fIOMonitor_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Escape) this.Close(); + else if (e.KeyCode == Keys.D && e.Control) + { + this.tblDO.showDebugInfo = !this.tblDO.showDebugInfo; + this.tblDI.showDebugInfo = this.tblDO.showDebugInfo; + // this.tblFG.showDebugInfo = this.tblDO.showDebugInfo; + } + } + + private void fIOMonitor_Load(object sender, EventArgs e) + { + this.Text = "I/O Monitor"; + this.Show(); + //'Application.DoEvents(); + + + + Dialog.Quick_Control fctl = new Quick_Control + { + TopLevel = false, + Visible = true + }; + this.panel3.Controls.Add(fctl); + fctl.Dock = DockStyle.Top; + fctl.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + fctl.panBG.BackColor = this.BackColor; + fctl.panBG.BorderStyle = BorderStyle.None; + fctl.Show(); + fctl.Dock = DockStyle.Fill; + + this.tmDisplay.Start(); + } + + + + + + //void tblFG_ItemClick(object sender, arCtl.GridView.GridView.ItemClickEventArgs e) + //{ + // var curValue = PUB.flag.get((int)e.idx); + // PUB.flag.set((int)e.idx, !curValue, "IOMONITOR"); + //} + + void tblDO_ItemClick(object sender, arDev.AjinEXTEK.IOPanel.ItemClickEventArgs e) + { + var newValue = !PUB.dio.GetDOValue(e.idx); + if (PUB.dio.IsInit == false) + { + //임시시그널 + var dlg = UTIL.MsgQ("가상 시그널을 생성하시겠습니까?"); + if (dlg == System.Windows.Forms.DialogResult.Yes) + { + PUB.dio.RaiseEvent(eIOPINDIR.OUTPUT, e.idx, newValue); + PUB.log.Add("fake do : " + e.idx.ToString() + ",val=" + newValue.ToString()); + } + } + else + { + PUB.dio.SetOutput(e.idx, newValue); + PUB.log.Add(string.Format("set output(iomonitor-userclick) idx={0},val={1}", e.idx, newValue)); + } + } + + void tblDI_ItemClick(object sender, arDev.AjinEXTEK.IOPanel.ItemClickEventArgs e) + { + var newValue = !PUB.dio.GetDIValue(e.idx); + if (PUB.dio.IsInit == false || PUB.flag.get(eVarBool.FG_DEBUG) == true) + { + //임시시그널 + var dlg = UTIL.MsgQ("가상 시그널을 생성하시겠습니까?"); + if (dlg == System.Windows.Forms.DialogResult.Yes) + { + PUB.dio.RaiseEvent(eIOPINDIR.INPUT, e.idx, newValue); + PUB.log.Add("fake di : " + e.idx.ToString() + ",val=" + newValue.ToString()); + } + } + } + + //void flag_ValueChanged(object sender, AR.InterfaceValueEventArgs e) + //{ + // //var butIndex = getControlIndex(e.ArrIDX); + // //if (butIndex >= this.tblFG.Controls.Count) return; + + // //해당 아이템의 값을 변경하고 다시 그린다. + // if (tblFG.setValue((int)e.ArrIDX, e.NewValue)) + // tblFG.Invalidate();//.drawItem(e.ArrIDX); + //} + + + void dio_IOValueChanged(object sender, arDev.DIO.IOValueEventArgs e) + { + //var butIndex = getControlIndex(e.ArrIDX); + if (e.Direction == eIOPINDIR.INPUT) + { + //해당 아이템의 값을 변경하고 다시 그린다. + if (tblDI.setValue(e.ArrIDX, e.NewValue)) + tblDI.Invalidate();//.drawItem(e.ArrIDX); + } + else + { + //해당 아이템의 값을 변경하고 다시 그린다. + if (tblDO.setValue(e.ArrIDX, e.NewValue)) + tblDO.Invalidate();//.drawItem(e.ArrIDX); + } + } + + + private void tmDisplay_Tick(object sender, EventArgs e) + { + if (this.tabControl1.SelectedIndex == 2) + { + //flag + //var fvalue = PUB.flag.Value(); + //lbTitle3.Text = "FLAG(" + fvalue.HexString() + ")"; + //for (int i = 0; i < 128; i++) + // tblFG.setValue((int)i, PUB.flag.get(i)); + //tblFG.Invalidate(); + } + else if (this.tabControl1.SelectedIndex == 3) + { + //inter lock + for (uint i = 0; i < PUB.iLock.Length; i++) + { + var axis = (eAxis)i; + var axisname = axis.ToString(); + if (axisname.Equals(i.ToString())) + { + axisname = PUB.iLock[i].Tag.ToString(); + } + this.lbILog[i].Text = string.Format("{0}({1})", axisname, PUB.iLock[i].Value().HexString()); + } + } + } + + private void lbTitle1_Click(object sender, EventArgs e) + { + //input list + var fn = "descin.txt"; + var sb = new System.Text.StringBuilder(); + sb.AppendLine("No\tTitle\tDesc"); + foreach (var item in Enum.GetValues(typeof(eDIName))) + { + var em = (eDIName)item; + var dr = PUB.mdm.dataSet.InputDescription.Where(t => t.Idx == (int)em).FirstOrDefault(); + var pinNo = $"X{(int)em:X2}"; + var pinTitle = item.ToString(); + var Desc = dr == null ? "" : dr.Description; + sb.Append(pinNo); + sb.Append("\t"); + sb.Append(pinTitle); + sb.Append("\t"); + sb.Append(Desc); + sb.AppendLine(); + } + System.IO.File.WriteAllText(fn, sb.ToString(), System.Text.Encoding.Default); + UTIL.RunExplorer(fn); + } + + private void arLabel2_Click(object sender, EventArgs e) + { + //oputput list + var fn = "descout.txt"; + var sb = new System.Text.StringBuilder(); + sb.AppendLine("No\tTitle\tDesc"); + foreach (var item in Enum.GetValues(typeof(eDOName))) + { + var em = (eDOName)item; + var dr = PUB.mdm.dataSet.InputDescription.Where(t => t.Idx == (int)item).FirstOrDefault(); + var pinNo = $"Y{(int)em:X2}"; + var pinTitle = item.ToString(); + var Desc = dr == null ? "" : dr.Description; + sb.Append(pinNo); + sb.Append("\t"); + sb.Append(pinTitle); + sb.Append("\t"); + sb.Append(Desc); + sb.AppendLine(); + } + System.IO.File.WriteAllText(fn, sb.ToString(), System.Text.Encoding.Default); + UTIL.RunExplorer(fn); + } + + private void pinDefineToolStripMenuItem_Click(object sender, EventArgs e) + { + var f = new fSetting_IOMessage(); + f.ShowDialog(); + + + tblDI.setTitle(DIO.Pin.GetDIName); + tblDO.setTitle(DIO.Pin.GetDOName); + tblDI.setNames(DIO.Pin.GetDIPinName); + tblDO.setNames(DIO.Pin.GetDOPinName); + tblDI.Invalidate(); + tblDO.Invalidate(); + } + } +} diff --git a/Handler/Project/Dialog/DIOMonitor.resx b/Handler/Project/Dialog/DIOMonitor.resx new file mode 100644 index 0000000..8100324 --- /dev/null +++ b/Handler/Project/Dialog/DIOMonitor.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 124, 17 + + + 17, 17 + + \ No newline at end of file diff --git a/Handler/Project/Dialog/Debug/fSendInboutData.Designer.cs b/Handler/Project/Dialog/Debug/fSendInboutData.Designer.cs new file mode 100644 index 0000000..0fbc195 --- /dev/null +++ b/Handler/Project/Dialog/Debug/fSendInboutData.Designer.cs @@ -0,0 +1,395 @@ + +namespace Project.Dialog.Debug +{ + partial class fSendInboutData + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.label1 = new System.Windows.Forms.Label(); + this.tbsid = new System.Windows.Forms.TextBox(); + this.tbrid = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.tbvname = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.tblot = new System.Windows.Forms.TextBox(); + this.label4 = new System.Windows.Forms.Label(); + this.tbpart = new System.Windows.Forms.TextBox(); + this.label5 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.tbbatch = new System.Windows.Forms.TextBox(); + this.tbbadge = new System.Windows.Forms.TextBox(); + this.label7 = new System.Windows.Forms.Label(); + this.tbinch = new System.Windows.Forms.TextBox(); + this.label8 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.tbmfg = new System.Windows.Forms.TextBox(); + this.label10 = new System.Windows.Forms.Label(); + this.tbqty = new System.Windows.Forms.TextBox(); + this.tbeqid = new System.Windows.Forms.TextBox(); + this.label11 = new System.Windows.Forms.Label(); + this.tbeqname = new System.Windows.Forms.TextBox(); + this.label12 = new System.Windows.Forms.Label(); + this.tboper = new System.Windows.Forms.TextBox(); + this.button1 = new System.Windows.Forms.Button(); + this.dv1 = new arCtl.arDatagridView(); + this.button2 = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.dv1)).BeginInit(); + this.SuspendLayout(); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(37, 28); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(22, 12); + this.label1.TabIndex = 0; + this.label1.Text = "sid"; + // + // tbsid + // + this.tbsid.Location = new System.Drawing.Point(69, 25); + this.tbsid.Name = "tbsid"; + this.tbsid.Size = new System.Drawing.Size(261, 21); + this.tbsid.TabIndex = 1; + this.tbsid.Text = "103000000"; + this.tbsid.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // tbrid + // + this.tbrid.Location = new System.Drawing.Point(69, 131); + this.tbrid.Name = "tbrid"; + this.tbrid.Size = new System.Drawing.Size(261, 21); + this.tbrid.TabIndex = 3; + this.tbrid.Text = "RCTEST000000000"; + this.tbrid.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(40, 134); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(19, 12); + this.label2.TabIndex = 2; + this.label2.Text = "rid"; + // + // tbvname + // + this.tbvname.Location = new System.Drawing.Point(69, 77); + this.tbvname.Name = "tbvname"; + this.tbvname.Size = new System.Drawing.Size(261, 21); + this.tbvname.TabIndex = 7; + this.tbvname.Text = "v.name"; + this.tbvname.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(16, 80); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(43, 12); + this.label3.TabIndex = 6; + this.label3.Text = "vname"; + // + // tblot + // + this.tblot.Location = new System.Drawing.Point(69, 52); + this.tblot.Name = "tblot"; + this.tblot.Size = new System.Drawing.Size(261, 21); + this.tblot.TabIndex = 5; + this.tblot.Text = "v.lot"; + this.tblot.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(41, 55); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(18, 12); + this.label4.TabIndex = 4; + this.label4.Text = "lot"; + // + // tbpart + // + this.tbpart.Location = new System.Drawing.Point(69, 185); + this.tbpart.Name = "tbpart"; + this.tbpart.Size = new System.Drawing.Size(261, 21); + this.tbpart.TabIndex = 9; + this.tbpart.Text = "part"; + this.tbpart.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(33, 188); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(26, 12); + this.label5.TabIndex = 8; + this.label5.Text = "part"; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(23, 223); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(36, 12); + this.label6.TabIndex = 8; + this.label6.Text = "batch"; + // + // tbbatch + // + this.tbbatch.Location = new System.Drawing.Point(69, 220); + this.tbbatch.Name = "tbbatch"; + this.tbbatch.Size = new System.Drawing.Size(261, 21); + this.tbbatch.TabIndex = 9; + this.tbbatch.Text = "batch"; + this.tbbatch.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // tbbadge + // + this.tbbadge.Location = new System.Drawing.Point(69, 247); + this.tbbadge.Name = "tbbadge"; + this.tbbadge.Size = new System.Drawing.Size(261, 21); + this.tbbadge.TabIndex = 11; + this.tbbadge.Text = "badge"; + this.tbbadge.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(19, 250); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(40, 12); + this.label7.TabIndex = 10; + this.label7.Text = "badge"; + // + // tbinch + // + this.tbinch.Location = new System.Drawing.Point(69, 274); + this.tbinch.Name = "tbinch"; + this.tbinch.Size = new System.Drawing.Size(261, 21); + this.tbinch.TabIndex = 13; + this.tbinch.Text = "7"; + this.tbinch.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point(30, 277); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(29, 12); + this.label8.TabIndex = 12; + this.label8.Text = "inch"; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(33, 161); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(26, 12); + this.label9.TabIndex = 8; + this.label9.Text = "mfg"; + // + // tbmfg + // + this.tbmfg.Location = new System.Drawing.Point(69, 158); + this.tbmfg.Name = "tbmfg"; + this.tbmfg.Size = new System.Drawing.Size(261, 21); + this.tbmfg.TabIndex = 9; + this.tbmfg.Text = "2325"; + this.tbmfg.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Location = new System.Drawing.Point(37, 107); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(22, 12); + this.label10.TabIndex = 8; + this.label10.Text = "qty"; + // + // tbqty + // + this.tbqty.Location = new System.Drawing.Point(69, 104); + this.tbqty.Name = "tbqty"; + this.tbqty.Size = new System.Drawing.Size(261, 21); + this.tbqty.TabIndex = 9; + this.tbqty.Text = "1000"; + this.tbqty.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // tbeqid + // + this.tbeqid.Location = new System.Drawing.Point(69, 301); + this.tbeqid.Name = "tbeqid"; + this.tbeqid.Size = new System.Drawing.Size(100, 21); + this.tbeqid.TabIndex = 15; + this.tbeqid.Text = "R0"; + this.tbeqid.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // label11 + // + this.label11.AutoSize = true; + this.label11.Location = new System.Drawing.Point(40, 304); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(19, 12); + this.label11.TabIndex = 14; + this.label11.Text = "eq"; + // + // tbeqname + // + this.tbeqname.Location = new System.Drawing.Point(175, 301); + this.tbeqname.Name = "tbeqname"; + this.tbeqname.Size = new System.Drawing.Size(155, 21); + this.tbeqname.TabIndex = 15; + this.tbeqname.Text = "eq name"; + this.tbeqname.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // label12 + // + this.label12.AutoSize = true; + this.label12.Location = new System.Drawing.Point(29, 331); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(30, 12); + this.label12.TabIndex = 12; + this.label12.Text = "oper"; + // + // tboper + // + this.tboper.Location = new System.Drawing.Point(69, 328); + this.tboper.Name = "tboper"; + this.tboper.Size = new System.Drawing.Size(261, 21); + this.tboper.TabIndex = 13; + this.tboper.Text = "chi"; + this.tboper.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // button1 + // + this.button1.Location = new System.Drawing.Point(350, 25); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(98, 324); + this.button1.TabIndex = 16; + this.button1.Text = "post"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // dv1 + // + this.dv1.A_DelCurrentCell = true; + this.dv1.A_EnterToTab = true; + this.dv1.A_KoreanField = null; + this.dv1.A_UpperField = null; + this.dv1.A_ViewRownumOnHeader = true; + this.dv1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dv1.Location = new System.Drawing.Point(474, 25); + this.dv1.Name = "dv1"; + this.dv1.RowTemplate.Height = 23; + this.dv1.Size = new System.Drawing.Size(496, 324); + this.dv1.TabIndex = 17; + // + // button2 + // + this.button2.Location = new System.Drawing.Point(474, 355); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(496, 44); + this.button2.TabIndex = 18; + this.button2.Text = "Read"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // fSendInboutData + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(997, 407); + this.Controls.Add(this.button2); + this.Controls.Add(this.dv1); + this.Controls.Add(this.button1); + this.Controls.Add(this.tbeqname); + this.Controls.Add(this.tbeqid); + this.Controls.Add(this.label11); + this.Controls.Add(this.tboper); + this.Controls.Add(this.label12); + this.Controls.Add(this.tbinch); + this.Controls.Add(this.label8); + this.Controls.Add(this.tbbadge); + this.Controls.Add(this.label7); + this.Controls.Add(this.tbbatch); + this.Controls.Add(this.label6); + this.Controls.Add(this.tbqty); + this.Controls.Add(this.label10); + this.Controls.Add(this.tbmfg); + this.Controls.Add(this.label9); + this.Controls.Add(this.tbpart); + this.Controls.Add(this.label5); + this.Controls.Add(this.tbvname); + this.Controls.Add(this.label3); + this.Controls.Add(this.tblot); + this.Controls.Add(this.label4); + this.Controls.Add(this.tbrid); + this.Controls.Add(this.label2); + this.Controls.Add(this.tbsid); + this.Controls.Add(this.label1); + this.Name = "fSendInboutData"; + this.Text = "fSendInboutData"; + this.Load += new System.EventHandler(this.fSendInboutData_Load); + ((System.ComponentModel.ISupportInitialize)(this.dv1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox tbsid; + private System.Windows.Forms.TextBox tbrid; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox tbvname; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox tblot; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox tbpart; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.TextBox tbbatch; + private System.Windows.Forms.TextBox tbbadge; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.TextBox tbinch; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.TextBox tbmfg; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.TextBox tbqty; + private System.Windows.Forms.TextBox tbeqid; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.TextBox tbeqname; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.TextBox tboper; + private System.Windows.Forms.Button button1; + private arCtl.arDatagridView dv1; + private System.Windows.Forms.Button button2; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/Debug/fSendInboutData.cs b/Handler/Project/Dialog/Debug/fSendInboutData.cs new file mode 100644 index 0000000..4cfc14d --- /dev/null +++ b/Handler/Project/Dialog/Debug/fSendInboutData.cs @@ -0,0 +1,68 @@ +using AR; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog.Debug +{ + public partial class fSendInboutData : Form + { + public fSendInboutData() + { + InitializeComponent(); + } + + public class reelinfo + { + public string ReelId { get; set; } + public string C { get; set; } + public reelinfo() + { + + } + } + private void button1_Click(object sender, EventArgs e) + { + //post + + var reelinfo = new + { + AMKOR_SID = tbsid.Text, + AMKOR_BATCH = tbbatch.Text, + REEL_ID = tbrid.Text, + REEL_VENDOR_LOT = tblot.Text, + REEL_AMKOR_SID = tbsid.Text, + REEL_QTY = tbqty.Text, + REEL_MANUFACTURER = tbvname.Text, + REEL_PRODUCTION_DATE = tbmfg.Text, + REEL_INCH_INFO = tbinch.Text, + REEL_PART_NUM = tbpart.Text, + EQP_ID = tbeqid.Text, + EQP_NAME = tbeqname.Text, + BADGE = tbbadge.Text, + OPER_NAME = tboper.Text, + HOST_NAME = System.Net.Dns.GetHostEntry("").HostName, + }; + var rlt = Amkor.RestfulService.Inbound_label_attach_reel_info(reelinfo, out string errmsg); + if (rlt == false) UTIL.MsgE(errmsg); + + } + + private void button2_Click(object sender, EventArgs e) + { + //read + } + + private void fSendInboutData_Load(object sender, EventArgs e) + { + tbeqid.Text = AR.SETTING.Data.MCID; + tbeqname.Text = $"Label Attach {tbeqid.Text}"; + } + } +} diff --git a/Handler/Project/Dialog/Debug/fSendInboutData.resx b/Handler/Project/Dialog/Debug/fSendInboutData.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/Project/Dialog/Debug/fSendInboutData.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/Project/Dialog/Model_Motion.Designer.cs b/Handler/Project/Dialog/Model_Motion.Designer.cs new file mode 100644 index 0000000..4a91c66 --- /dev/null +++ b/Handler/Project/Dialog/Model_Motion.Designer.cs @@ -0,0 +1,1724 @@ +namespace Project +{ + partial class Model_Motion + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Model_Motion)); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = 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 dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle(); + this.ds1 = new Project.DataSet1(); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.dvPosition = new arCtl.arDatagridView(); + this.bsPosData = new System.Windows.Forms.BindingSource(this.components); + this.bn = new System.Windows.Forms.BindingNavigator(this.components); + this.bindingNavigatorCountItem = new System.Windows.Forms.ToolStripLabel(); + this.bindingNavigatorMoveFirstItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMovePreviousItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorPositionItem = new System.Windows.Forms.ToolStripTextBox(); + this.bindingNavigatorSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorMoveNextItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMoveLastItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripButton1 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton2 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton3 = new System.Windows.Forms.ToolStripButton(); + this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.btJogLeft = new arFrame.Control.MotCommandButton(); + this.btJogStop = new arFrame.Control.MotCommandButton(); + this.btJogDn = new arFrame.Control.MotCommandButton(); + this.btJogUp = new arFrame.Control.MotCommandButton(); + this.button5 = new arFrame.Control.MotCommandButton(); + this.btPClear = new arFrame.Control.MotCommandButton(); + this.btSVY = new arFrame.Control.MotCommandButton(); + this.btAClear = new arFrame.Control.MotCommandButton(); + this.btJogRight = new arFrame.Control.MotCommandButton(); + this.panel7 = new System.Windows.Forms.Panel(); + this.nudPosRel = new arFrame.Control.MotValueNumericUpDown(); + this.button3 = new arFrame.Control.MotCommandButton(); + this.linkLabel11 = new arFrame.Control.MotLinkLabel(); + this.panel14 = new System.Windows.Forms.Panel(); + this.chkJogMoveForce = new System.Windows.Forms.CheckBox(); + this.panel8 = new System.Windows.Forms.Panel(); + this.nudPosAbs = new arFrame.Control.MotValueNumericUpDown(); + this.button1 = new arFrame.Control.MotCommandButton(); + this.linkLabel10 = new arFrame.Control.MotLinkLabel(); + this.panel11 = new System.Windows.Forms.Panel(); + this.nudJogVel = new arFrame.Control.MotValueNumericUpDown(); + this.linkLabel8 = new arFrame.Control.MotLinkLabel(); + this.tabControl2 = new System.Windows.Forms.TabControl(); + this.tabPage7 = new System.Windows.Forms.TabPage(); + this.RtLog = new arCtl.LogTextBox(); + this.tabControl3 = new System.Windows.Forms.TabControl(); + this.tabPage2 = new System.Windows.Forms.TabPage(); + this.dvMot = new arCtl.arDatagridView(); + this.dvc_axis = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column10 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column5 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column6 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column7 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column8 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column9 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dvc_desc = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.tmDisplay = new System.Windows.Forms.Timer(this.components); + this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); + this.nudJogAcc = new arFrame.Control.MotValueNumericUpDown(); + this.motLinkLabel1 = new arFrame.Control.MotLinkLabel(); + this.panLeft = new System.Windows.Forms.Panel(); + this.listView1 = new System.Windows.Forms.ListView(); + this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.tabControl4 = new System.Windows.Forms.TabControl(); + this.tabPage4 = new System.Windows.Forms.TabPage(); + this.panel2 = new System.Windows.Forms.Panel(); + this.linkLabel6 = new System.Windows.Forms.LinkLabel(); + this.linkLabel5 = new System.Windows.Forms.LinkLabel(); + this.linkLabel4 = new System.Windows.Forms.LinkLabel(); + this.linkLabel3 = new System.Windows.Forms.LinkLabel(); + this.linkLabel2 = new System.Windows.Forms.LinkLabel(); + this.linkLabel1 = new System.Windows.Forms.LinkLabel(); + this.label1 = new System.Windows.Forms.Label(); + this.panel1 = new System.Windows.Forms.Panel(); + this.lbModelTitle = new arCtl.arLabel(); + this.panel6 = new System.Windows.Forms.Panel(); + this.panel3 = new System.Windows.Forms.Panel(); + this.tabControl5 = new System.Windows.Forms.TabControl(); + this.tabPage5 = new System.Windows.Forms.TabPage(); + this.splitH = new System.Windows.Forms.Panel(); + this.toolStrip1 = new System.Windows.Forms.ToolStrip(); + this.btAdd = new System.Windows.Forms.ToolStripButton(); + this.btEdit = new System.Windows.Forms.ToolStripButton(); + this.btDel = new System.Windows.Forms.ToolStripButton(); + this.btSave = new System.Windows.Forms.ToolStripButton(); + this.btCopy = new System.Windows.Forms.ToolStripButton(); + this.btSelect = new System.Windows.Forms.ToolStripButton(); + this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripButton11 = new System.Windows.Forms.ToolStripSplitButton(); + this.그룹설정ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.pidx = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.MotIndex = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.PosIndex = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.posTitleDataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Description = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.btPos = new System.Windows.Forms.DataGridViewButtonColumn(); + this.btspeed = new System.Windows.Forms.DataGridViewButtonColumn(); + this.btacc = new System.Windows.Forms.DataGridViewButtonColumn(); + this.btdcc = new System.Windows.Forms.DataGridViewButtonColumn(); + this.btGo = new System.Windows.Forms.DataGridViewButtonColumn(); + this.btSet = new System.Windows.Forms.DataGridViewButtonColumn(); + ((System.ComponentModel.ISupportInitialize)(this.ds1)).BeginInit(); + this.tabControl1.SuspendLayout(); + this.tabPage1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dvPosition)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsPosData)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bn)).BeginInit(); + this.bn.SuspendLayout(); + this.tableLayoutPanel1.SuspendLayout(); + this.panel7.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudPosRel)).BeginInit(); + this.panel14.SuspendLayout(); + this.panel8.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudPosAbs)).BeginInit(); + this.panel11.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudJogVel)).BeginInit(); + this.tabControl2.SuspendLayout(); + this.tabPage7.SuspendLayout(); + this.tabControl3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dvMot)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudJogAcc)).BeginInit(); + this.panLeft.SuspendLayout(); + this.tabControl4.SuspendLayout(); + this.tabPage4.SuspendLayout(); + this.panel2.SuspendLayout(); + this.panel1.SuspendLayout(); + this.panel6.SuspendLayout(); + this.panel3.SuspendLayout(); + this.tabControl5.SuspendLayout(); + this.tabPage5.SuspendLayout(); + this.toolStrip1.SuspendLayout(); + this.SuspendLayout(); + // + // ds1 + // + this.ds1.DataSetName = "DataSet1"; + this.ds1.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + // + // tabControl1 + // + this.tabControl1.Controls.Add(this.tabPage1); + this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tabControl1.Location = new System.Drawing.Point(0, 0); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(711, 449); + this.tabControl1.TabIndex = 141; + // + // tabPage1 + // + this.tabPage1.Controls.Add(this.dvPosition); + this.tabPage1.Controls.Add(this.bn); + this.tabPage1.Location = new System.Drawing.Point(4, 27); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(3); + this.tabPage1.Size = new System.Drawing.Size(703, 418); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "Position"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // dvPosition + // + this.dvPosition.A_DelCurrentCell = true; + this.dvPosition.A_EnterToTab = true; + this.dvPosition.A_KoreanField = null; + this.dvPosition.A_UpperField = null; + this.dvPosition.A_ViewRownumOnHeader = true; + this.dvPosition.AllowUserToAddRows = false; + this.dvPosition.AllowUserToDeleteRows = false; + this.dvPosition.AllowUserToResizeColumns = false; + this.dvPosition.AllowUserToResizeRows = false; + this.dvPosition.AutoGenerateColumns = false; + this.dvPosition.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; + this.dvPosition.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dvPosition.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.Column1, + this.pidx, + this.MotIndex, + this.PosIndex, + this.posTitleDataGridViewTextBoxColumn1, + this.Description, + this.btPos, + this.btspeed, + this.btacc, + this.btdcc, + this.btGo, + this.btSet}); + this.dvPosition.DataSource = this.bsPosData; + dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle6.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle6.Font = new System.Drawing.Font("Calibri", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle6.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle6.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle6.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dvPosition.DefaultCellStyle = dataGridViewCellStyle6; + this.dvPosition.Dock = System.Windows.Forms.DockStyle.Fill; + this.dvPosition.Location = new System.Drawing.Point(3, 3); + this.dvPosition.Name = "dvPosition"; + this.dvPosition.ReadOnly = true; + dataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle7.BackColor = System.Drawing.Color.White; + dataGridViewCellStyle7.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle7.ForeColor = System.Drawing.Color.Black; + dataGridViewCellStyle7.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle7.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dvPosition.RowHeadersDefaultCellStyle = dataGridViewCellStyle7; + this.dvPosition.RowHeadersVisible = false; + this.dvPosition.RowTemplate.DefaultCellStyle.BackColor = System.Drawing.Color.White; + this.dvPosition.RowTemplate.DefaultCellStyle.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.dvPosition.RowTemplate.DefaultCellStyle.ForeColor = System.Drawing.Color.Black; + this.dvPosition.RowTemplate.DefaultCellStyle.Padding = new System.Windows.Forms.Padding(2); + this.dvPosition.RowTemplate.Height = 50; + this.dvPosition.Size = new System.Drawing.Size(697, 387); + this.dvPosition.TabIndex = 140; + this.dvPosition.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.arDatagridView2_CellClick); + this.dvPosition.DataError += new System.Windows.Forms.DataGridViewDataErrorEventHandler(this.dvPosition_DataError); + // + // bsPosData + // + this.bsPosData.DataMember = "MCModel"; + this.bsPosData.DataSource = this.ds1; + this.bsPosData.Sort = "PosTitle,idx"; + // + // bn + // + this.bn.AddNewItem = null; + this.bn.BindingSource = this.bsPosData; + this.bn.CountItem = this.bindingNavigatorCountItem; + this.bn.DeleteItem = null; + this.bn.Dock = System.Windows.Forms.DockStyle.Bottom; + this.bn.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.bindingNavigatorMoveFirstItem, + this.bindingNavigatorMovePreviousItem, + this.bindingNavigatorSeparator, + this.bindingNavigatorPositionItem, + this.bindingNavigatorCountItem, + this.bindingNavigatorSeparator1, + this.bindingNavigatorMoveNextItem, + this.bindingNavigatorMoveLastItem, + this.bindingNavigatorSeparator2, + this.toolStripButton1, + this.toolStripButton2, + this.toolStripButton3, + this.toolStripSeparator1}); + this.bn.Location = new System.Drawing.Point(3, 390); + this.bn.MoveFirstItem = this.bindingNavigatorMoveFirstItem; + this.bn.MoveLastItem = this.bindingNavigatorMoveLastItem; + this.bn.MoveNextItem = this.bindingNavigatorMoveNextItem; + this.bn.MovePreviousItem = this.bindingNavigatorMovePreviousItem; + this.bn.Name = "bn"; + this.bn.PositionItem = this.bindingNavigatorPositionItem; + this.bn.Size = new System.Drawing.Size(697, 25); + this.bn.TabIndex = 141; + this.bn.Text = "bindingNavigator1"; + // + // bindingNavigatorCountItem + // + this.bindingNavigatorCountItem.ForeColor = System.Drawing.Color.Black; + this.bindingNavigatorCountItem.Name = "bindingNavigatorCountItem"; + this.bindingNavigatorCountItem.Size = new System.Drawing.Size(27, 22); + this.bindingNavigatorCountItem.Text = "/{0}"; + this.bindingNavigatorCountItem.ToolTipText = "전체 항목 수"; + // + // bindingNavigatorMoveFirstItem + // + this.bindingNavigatorMoveFirstItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveFirstItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveFirstItem.Image"))); + this.bindingNavigatorMoveFirstItem.Name = "bindingNavigatorMoveFirstItem"; + this.bindingNavigatorMoveFirstItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveFirstItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveFirstItem.Text = "처음으로 이동"; + // + // bindingNavigatorMovePreviousItem + // + this.bindingNavigatorMovePreviousItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMovePreviousItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMovePreviousItem.Image"))); + this.bindingNavigatorMovePreviousItem.Name = "bindingNavigatorMovePreviousItem"; + this.bindingNavigatorMovePreviousItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMovePreviousItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMovePreviousItem.Text = "이전으로 이동"; + // + // bindingNavigatorSeparator + // + this.bindingNavigatorSeparator.Name = "bindingNavigatorSeparator"; + this.bindingNavigatorSeparator.Size = new System.Drawing.Size(6, 25); + // + // bindingNavigatorPositionItem + // + this.bindingNavigatorPositionItem.AccessibleName = "위치"; + this.bindingNavigatorPositionItem.AutoSize = false; + this.bindingNavigatorPositionItem.Font = new System.Drawing.Font("맑은 고딕", 9F); + this.bindingNavigatorPositionItem.Name = "bindingNavigatorPositionItem"; + this.bindingNavigatorPositionItem.Size = new System.Drawing.Size(50, 23); + this.bindingNavigatorPositionItem.Text = "0"; + this.bindingNavigatorPositionItem.ToolTipText = "현재 위치"; + // + // bindingNavigatorSeparator1 + // + this.bindingNavigatorSeparator1.Name = "bindingNavigatorSeparator1"; + this.bindingNavigatorSeparator1.Size = new System.Drawing.Size(6, 25); + // + // bindingNavigatorMoveNextItem + // + this.bindingNavigatorMoveNextItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveNextItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveNextItem.Image"))); + this.bindingNavigatorMoveNextItem.Name = "bindingNavigatorMoveNextItem"; + this.bindingNavigatorMoveNextItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveNextItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveNextItem.Text = "다음으로 이동"; + // + // bindingNavigatorMoveLastItem + // + this.bindingNavigatorMoveLastItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveLastItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveLastItem.Image"))); + this.bindingNavigatorMoveLastItem.Name = "bindingNavigatorMoveLastItem"; + this.bindingNavigatorMoveLastItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveLastItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveLastItem.Text = "마지막으로 이동"; + // + // bindingNavigatorSeparator2 + // + this.bindingNavigatorSeparator2.Name = "bindingNavigatorSeparator2"; + this.bindingNavigatorSeparator2.Size = new System.Drawing.Size(6, 25); + // + // toolStripButton1 + // + this.toolStripButton1.ForeColor = System.Drawing.Color.Black; + this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image"))); + this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton1.Name = "toolStripButton1"; + this.toolStripButton1.Size = new System.Drawing.Size(51, 22); + this.toolStripButton1.Text = "속도"; + this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click); + // + // toolStripButton2 + // + this.toolStripButton2.ForeColor = System.Drawing.Color.Black; + this.toolStripButton2.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton2.Image"))); + this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton2.Name = "toolStripButton2"; + this.toolStripButton2.Size = new System.Drawing.Size(63, 22); + this.toolStripButton2.Text = "가속도"; + this.toolStripButton2.Click += new System.EventHandler(this.toolStripButton2_Click_2); + // + // toolStripButton3 + // + this.toolStripButton3.ForeColor = System.Drawing.Color.Black; + this.toolStripButton3.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton3.Image"))); + this.toolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton3.Name = "toolStripButton3"; + this.toolStripButton3.Size = new System.Drawing.Size(63, 22); + this.toolStripButton3.Text = "감속도"; + this.toolStripButton3.Click += new System.EventHandler(this.toolStripButton3_Click_1); + // + // toolStripSeparator1 + // + this.toolStripSeparator1.Name = "toolStripSeparator1"; + this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25); + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.Single; + this.tableLayoutPanel1.ColumnCount = 3; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25.00062F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25.00062F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25.00062F)); + this.tableLayoutPanel1.Controls.Add(this.btJogLeft, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.btJogStop, 1, 1); + this.tableLayoutPanel1.Controls.Add(this.btJogDn, 1, 2); + this.tableLayoutPanel1.Controls.Add(this.btJogUp, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.button5, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.btPClear, 2, 2); + this.tableLayoutPanel1.Controls.Add(this.btSVY, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.btAClear, 2, 0); + this.tableLayoutPanel1.Controls.Add(this.btJogRight, 2, 1); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Top; + this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 123); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 3; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(224, 247); + this.tableLayoutPanel1.TabIndex = 2; + // + // btJogLeft + // + this.btJogLeft.BackColor = System.Drawing.Color.Turquoise; + this.btJogLeft.Dock = System.Windows.Forms.DockStyle.Fill; + this.btJogLeft.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.btJogLeft.ForeColor = System.Drawing.Color.Red; + this.btJogLeft.Location = new System.Drawing.Point(1, 83); + this.btJogLeft.Margin = new System.Windows.Forms.Padding(0); + this.btJogLeft.motAccControl = null; + this.btJogLeft.motCommand = arFrame.Control.MotCommandButton.eCommand.AbsoluteMove; + this.btJogLeft.motSpdControl = null; + this.btJogLeft.motValueControl = null; + this.btJogLeft.Name = "btJogLeft"; + this.btJogLeft.Size = new System.Drawing.Size(73, 81); + this.btJogLeft.TabIndex = 0; + this.btJogLeft.Tag = "CCW"; + this.btJogLeft.Text = "NEG(-)"; + this.toolTip1.SetToolTip(this.btJogLeft, "역방향 이동"); + this.btJogLeft.UseVisualStyleBackColor = false; + this.btJogLeft.Click += new System.EventHandler(this.btJogLeft_Click); + this.btJogLeft.MouseDown += new System.Windows.Forms.MouseEventHandler(this.btJogDown_Click); + this.btJogLeft.MouseUp += new System.Windows.Forms.MouseEventHandler(this.btJogUp_Click); + // + // btJogStop + // + this.btJogStop.Dock = System.Windows.Forms.DockStyle.Fill; + this.btJogStop.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Bold); + this.btJogStop.ForeColor = System.Drawing.Color.Black; + this.btJogStop.Location = new System.Drawing.Point(75, 83); + this.btJogStop.Margin = new System.Windows.Forms.Padding(0); + this.btJogStop.motAccControl = null; + this.btJogStop.motCommand = arFrame.Control.MotCommandButton.eCommand.AbsoluteMove; + this.btJogStop.motSpdControl = null; + this.btJogStop.motValueControl = null; + this.btJogStop.Name = "btJogStop"; + this.btJogStop.Size = new System.Drawing.Size(73, 81); + this.btJogStop.TabIndex = 0; + this.btJogStop.Tag = "STOP"; + this.btJogStop.Text = "■"; + this.toolTip1.SetToolTip(this.btJogStop, "비상 정지"); + this.btJogStop.UseVisualStyleBackColor = true; + this.btJogStop.Click += new System.EventHandler(this.btJogStop_Click); + // + // btJogDn + // + this.btJogDn.BackColor = System.Drawing.Color.Turquoise; + this.btJogDn.Dock = System.Windows.Forms.DockStyle.Fill; + this.btJogDn.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.btJogDn.ForeColor = System.Drawing.Color.Blue; + this.btJogDn.Location = new System.Drawing.Point(75, 165); + this.btJogDn.Margin = new System.Windows.Forms.Padding(0); + this.btJogDn.motAccControl = null; + this.btJogDn.motCommand = arFrame.Control.MotCommandButton.eCommand.AbsoluteMove; + this.btJogDn.motSpdControl = null; + this.btJogDn.motValueControl = null; + this.btJogDn.Name = "btJogDn"; + this.btJogDn.Size = new System.Drawing.Size(73, 81); + this.btJogDn.TabIndex = 0; + this.btJogDn.Tag = "CW"; + this.btJogDn.Text = "POS(+)"; + this.toolTip1.SetToolTip(this.btJogDn, "정방향 이동"); + this.btJogDn.UseVisualStyleBackColor = false; + this.btJogDn.MouseDown += new System.Windows.Forms.MouseEventHandler(this.btJogDown_Click); + this.btJogDn.MouseUp += new System.Windows.Forms.MouseEventHandler(this.btJogUp_Click); + // + // btJogUp + // + this.btJogUp.BackColor = System.Drawing.Color.Turquoise; + this.btJogUp.Dock = System.Windows.Forms.DockStyle.Fill; + this.btJogUp.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.btJogUp.ForeColor = System.Drawing.Color.Red; + this.btJogUp.Location = new System.Drawing.Point(75, 1); + this.btJogUp.Margin = new System.Windows.Forms.Padding(0); + this.btJogUp.motAccControl = null; + this.btJogUp.motCommand = arFrame.Control.MotCommandButton.eCommand.AbsoluteMove; + this.btJogUp.motSpdControl = null; + this.btJogUp.motValueControl = null; + this.btJogUp.Name = "btJogUp"; + this.btJogUp.Size = new System.Drawing.Size(73, 81); + this.btJogUp.TabIndex = 0; + this.btJogUp.Tag = "CCW"; + this.btJogUp.Text = "NEG(-)"; + this.toolTip1.SetToolTip(this.btJogUp, "역 방향 이동"); + this.btJogUp.UseVisualStyleBackColor = false; + this.btJogUp.MouseDown += new System.Windows.Forms.MouseEventHandler(this.btJogDown_Click); + this.btJogUp.MouseUp += new System.Windows.Forms.MouseEventHandler(this.btJogUp_Click); + // + // button5 + // + this.button5.Dock = System.Windows.Forms.DockStyle.Fill; + this.button5.Font = new System.Drawing.Font("맑은 고딕", 10F); + this.button5.ForeColor = System.Drawing.Color.Black; + this.button5.Location = new System.Drawing.Point(1, 165); + this.button5.Margin = new System.Windows.Forms.Padding(0); + this.button5.motAccControl = null; + this.button5.motCommand = arFrame.Control.MotCommandButton.eCommand.AbsoluteMove; + this.button5.motSpdControl = null; + this.button5.motValueControl = null; + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(73, 81); + this.button5.TabIndex = 3; + this.button5.Text = "홈\r\n검색"; + this.toolTip1.SetToolTip(this.button5, "홈 검색 실행"); + this.button5.UseVisualStyleBackColor = true; + this.button5.Click += new System.EventHandler(this.btJogHome_Click); + // + // btPClear + // + this.btPClear.Dock = System.Windows.Forms.DockStyle.Fill; + this.btPClear.Font = new System.Drawing.Font("맑은 고딕", 10F); + this.btPClear.ForeColor = System.Drawing.Color.Black; + this.btPClear.Location = new System.Drawing.Point(149, 165); + this.btPClear.Margin = new System.Windows.Forms.Padding(0); + this.btPClear.motAccControl = null; + this.btPClear.motCommand = arFrame.Control.MotCommandButton.eCommand.AbsoluteMove; + this.btPClear.motSpdControl = null; + this.btPClear.motValueControl = null; + this.btPClear.Name = "btPClear"; + this.btPClear.Size = new System.Drawing.Size(74, 81); + this.btPClear.TabIndex = 3; + this.btPClear.Text = "위치\r\n초기화"; + this.toolTip1.SetToolTip(this.btPClear, "현재 위치 초기화"); + this.btPClear.UseVisualStyleBackColor = true; + this.btPClear.Click += new System.EventHandler(this.btJogPClear_Click); + // + // btSVY + // + this.btSVY.Dock = System.Windows.Forms.DockStyle.Fill; + this.btSVY.Font = new System.Drawing.Font("Calibri", 10F); + this.btSVY.ForeColor = System.Drawing.Color.Black; + this.btSVY.Location = new System.Drawing.Point(1, 1); + this.btSVY.Margin = new System.Windows.Forms.Padding(0); + this.btSVY.motAccControl = null; + this.btSVY.motCommand = arFrame.Control.MotCommandButton.eCommand.AbsoluteMove; + this.btSVY.motSpdControl = null; + this.btSVY.motValueControl = null; + this.btSVY.Name = "btSVY"; + this.btSVY.Size = new System.Drawing.Size(73, 81); + this.btSVY.TabIndex = 4; + this.btSVY.Text = "SVON"; + this.toolTip1.SetToolTip(this.btSVY, "서보 ON/OFF"); + this.btSVY.UseVisualStyleBackColor = true; + this.btSVY.Click += new System.EventHandler(this.btJogSVon_Click); + // + // btAClear + // + this.btAClear.Dock = System.Windows.Forms.DockStyle.Fill; + this.btAClear.Font = new System.Drawing.Font("맑은 고딕", 10F); + this.btAClear.ForeColor = System.Drawing.Color.Black; + this.btAClear.Location = new System.Drawing.Point(149, 1); + this.btAClear.Margin = new System.Windows.Forms.Padding(0); + this.btAClear.motAccControl = null; + this.btAClear.motCommand = arFrame.Control.MotCommandButton.eCommand.AbsoluteMove; + this.btAClear.motSpdControl = null; + this.btAClear.motValueControl = null; + this.btAClear.Name = "btAClear"; + this.btAClear.Size = new System.Drawing.Size(74, 81); + this.btAClear.TabIndex = 4; + this.btAClear.Text = "알람\r\n제거"; + this.toolTip1.SetToolTip(this.btAClear, "서보알람 제거"); + this.btAClear.UseVisualStyleBackColor = true; + this.btAClear.Click += new System.EventHandler(this.btJogAClear_Click); + // + // btJogRight + // + this.btJogRight.BackColor = System.Drawing.Color.Turquoise; + this.btJogRight.Dock = System.Windows.Forms.DockStyle.Fill; + this.btJogRight.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.btJogRight.ForeColor = System.Drawing.Color.Blue; + this.btJogRight.Location = new System.Drawing.Point(149, 83); + this.btJogRight.Margin = new System.Windows.Forms.Padding(0); + this.btJogRight.motAccControl = null; + this.btJogRight.motCommand = arFrame.Control.MotCommandButton.eCommand.AbsoluteMove; + this.btJogRight.motSpdControl = null; + this.btJogRight.motValueControl = null; + this.btJogRight.Name = "btJogRight"; + this.btJogRight.Size = new System.Drawing.Size(74, 81); + this.btJogRight.TabIndex = 0; + this.btJogRight.Tag = "CW"; + this.btJogRight.Text = "POS(+)"; + this.toolTip1.SetToolTip(this.btJogRight, "정 방향 이동"); + this.btJogRight.UseVisualStyleBackColor = false; + this.btJogRight.MouseDown += new System.Windows.Forms.MouseEventHandler(this.btJogDown_Click); + this.btJogRight.MouseUp += new System.Windows.Forms.MouseEventHandler(this.btJogUp_Click); + // + // panel7 + // + this.panel7.Controls.Add(this.nudPosRel); + this.panel7.Controls.Add(this.button3); + this.panel7.Controls.Add(this.linkLabel11); + this.panel7.Dock = System.Windows.Forms.DockStyle.Top; + this.panel7.Location = new System.Drawing.Point(3, 63); + this.panel7.Name = "panel7"; + this.panel7.Padding = new System.Windows.Forms.Padding(2); + this.panel7.Size = new System.Drawing.Size(224, 30); + this.panel7.TabIndex = 61; + // + // nudPosRel + // + this.nudPosRel.DecimalPlaces = 3; + this.nudPosRel.Dock = System.Windows.Forms.DockStyle.Fill; + this.nudPosRel.Location = new System.Drawing.Point(79, 2); + this.nudPosRel.Maximum = new decimal(new int[] { + 9999999, + 0, + 0, + 0}); + this.nudPosRel.MotionIndex = -1; + this.nudPosRel.Name = "nudPosRel"; + this.nudPosRel.Size = new System.Drawing.Size(98, 26); + this.nudPosRel.TabIndex = 50; + this.nudPosRel.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.toolTip1.SetToolTip(this.nudPosRel, "이동 할 임의 위치값 우측의 GO버튼을 누르면 이동 함"); + // + // button3 + // + this.button3.Dock = System.Windows.Forms.DockStyle.Right; + this.button3.ForeColor = System.Drawing.Color.Black; + this.button3.Location = new System.Drawing.Point(177, 2); + this.button3.motAccControl = null; + this.button3.motCommand = arFrame.Control.MotCommandButton.eCommand.AbsoluteMove; + this.button3.motSpdControl = null; + this.button3.motValueControl = null; + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(45, 26); + this.button3.TabIndex = 51; + this.button3.Text = "이동"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click_1); + // + // linkLabel11 + // + this.linkLabel11.Dock = System.Windows.Forms.DockStyle.Left; + this.linkLabel11.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.linkLabel11.LinkColor = System.Drawing.Color.Blue; + this.linkLabel11.Location = new System.Drawing.Point(2, 2); + this.linkLabel11.motValueControl = this.nudPosRel; + this.linkLabel11.Name = "linkLabel11"; + this.linkLabel11.Size = new System.Drawing.Size(77, 26); + this.linkLabel11.TabIndex = 47; + this.linkLabel11.TabStop = true; + this.linkLabel11.Text = "REL.Value"; + this.linkLabel11.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.toolTip1.SetToolTip(this.linkLabel11, "값 변경"); + this.linkLabel11.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel11_LinkClicked); + // + // panel14 + // + this.panel14.Controls.Add(this.chkJogMoveForce); + this.panel14.Dock = System.Windows.Forms.DockStyle.Top; + this.panel14.Location = new System.Drawing.Point(3, 370); + this.panel14.Name = "panel14"; + this.panel14.Size = new System.Drawing.Size(224, 33); + this.panel14.TabIndex = 64; + // + // chkJogMoveForce + // + this.chkJogMoveForce.AutoSize = true; + this.chkJogMoveForce.Dock = System.Windows.Forms.DockStyle.Left; + this.chkJogMoveForce.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.chkJogMoveForce.ForeColor = System.Drawing.Color.Indigo; + this.chkJogMoveForce.Location = new System.Drawing.Point(0, 0); + this.chkJogMoveForce.Name = "chkJogMoveForce"; + this.chkJogMoveForce.Size = new System.Drawing.Size(84, 33); + this.chkJogMoveForce.TabIndex = 59; + this.chkJogMoveForce.Text = "강제조그"; + this.chkJogMoveForce.UseVisualStyleBackColor = true; + this.chkJogMoveForce.Click += new System.EventHandler(this.chkJogMoveForce_Click); + // + // panel8 + // + this.panel8.Controls.Add(this.nudPosAbs); + this.panel8.Controls.Add(this.button1); + this.panel8.Controls.Add(this.linkLabel10); + this.panel8.Dock = System.Windows.Forms.DockStyle.Top; + this.panel8.Location = new System.Drawing.Point(3, 33); + this.panel8.Name = "panel8"; + this.panel8.Padding = new System.Windows.Forms.Padding(2); + this.panel8.Size = new System.Drawing.Size(224, 30); + this.panel8.TabIndex = 62; + // + // nudPosAbs + // + this.nudPosAbs.DecimalPlaces = 3; + this.nudPosAbs.Dock = System.Windows.Forms.DockStyle.Fill; + this.nudPosAbs.Location = new System.Drawing.Point(79, 2); + this.nudPosAbs.Maximum = new decimal(new int[] { + 9999999, + 0, + 0, + 0}); + this.nudPosAbs.MotionIndex = -1; + this.nudPosAbs.Name = "nudPosAbs"; + this.nudPosAbs.Size = new System.Drawing.Size(98, 26); + this.nudPosAbs.TabIndex = 13; + this.nudPosAbs.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.toolTip1.SetToolTip(this.nudPosAbs, "이동 할 임의 위치값 우측의 GO버튼을 누르면 이동 함"); + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Right; + this.button1.ForeColor = System.Drawing.Color.Black; + this.button1.Location = new System.Drawing.Point(177, 2); + this.button1.motAccControl = null; + this.button1.motCommand = arFrame.Control.MotCommandButton.eCommand.AbsoluteMove; + this.button1.motSpdControl = null; + this.button1.motValueControl = null; + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(45, 26); + this.button1.TabIndex = 51; + this.button1.Text = "이동"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // linkLabel10 + // + this.linkLabel10.Dock = System.Windows.Forms.DockStyle.Left; + this.linkLabel10.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.linkLabel10.LinkColor = System.Drawing.Color.Blue; + this.linkLabel10.Location = new System.Drawing.Point(2, 2); + this.linkLabel10.motValueControl = this.nudPosAbs; + this.linkLabel10.Name = "linkLabel10"; + this.linkLabel10.Size = new System.Drawing.Size(77, 26); + this.linkLabel10.TabIndex = 45; + this.linkLabel10.TabStop = true; + this.linkLabel10.Text = "ABS.Value"; + this.linkLabel10.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.toolTip1.SetToolTip(this.linkLabel10, "값 변경"); + this.linkLabel10.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel10_LinkClicked); + // + // panel11 + // + this.panel11.Controls.Add(this.nudJogVel); + this.panel11.Controls.Add(this.linkLabel8); + this.panel11.Dock = System.Windows.Forms.DockStyle.Top; + this.panel11.Location = new System.Drawing.Point(3, 3); + this.panel11.Name = "panel11"; + this.panel11.Padding = new System.Windows.Forms.Padding(2); + this.panel11.Size = new System.Drawing.Size(224, 30); + this.panel11.TabIndex = 63; + // + // nudJogVel + // + this.nudJogVel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.nudJogVel.DecimalPlaces = 2; + this.nudJogVel.Dock = System.Windows.Forms.DockStyle.Fill; + this.nudJogVel.Location = new System.Drawing.Point(79, 2); + this.nudJogVel.Maximum = new decimal(new int[] { + 9999999, + 0, + 0, + 0}); + this.nudJogVel.MotionIndex = -1; + this.nudJogVel.Name = "nudJogVel"; + this.nudJogVel.Size = new System.Drawing.Size(143, 26); + this.nudJogVel.TabIndex = 0; + this.nudJogVel.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.toolTip1.SetToolTip(this.nudJogVel, "조그모드 이동 속도"); + this.nudJogVel.Value = new decimal(new int[] { + 20, + 0, + 0, + 0}); + // + // linkLabel8 + // + this.linkLabel8.Dock = System.Windows.Forms.DockStyle.Left; + this.linkLabel8.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.linkLabel8.LinkColor = System.Drawing.Color.Blue; + this.linkLabel8.Location = new System.Drawing.Point(2, 2); + this.linkLabel8.motValueControl = this.nudJogVel; + this.linkLabel8.Name = "linkLabel8"; + this.linkLabel8.Size = new System.Drawing.Size(77, 26); + this.linkLabel8.TabIndex = 41; + this.linkLabel8.TabStop = true; + this.linkLabel8.Text = "JOG Speed"; + this.linkLabel8.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.toolTip1.SetToolTip(this.linkLabel8, "값 변경"); + this.linkLabel8.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel8_LinkClicked); + // + // tabControl2 + // + this.tabControl2.Controls.Add(this.tabPage7); + this.tabControl2.Dock = System.Windows.Forms.DockStyle.Bottom; + this.tabControl2.Location = new System.Drawing.Point(0, 449); + this.tabControl2.Name = "tabControl2"; + this.tabControl2.SelectedIndex = 0; + this.tabControl2.Size = new System.Drawing.Size(711, 152); + this.tabControl2.TabIndex = 45; + // + // tabPage7 + // + this.tabPage7.Controls.Add(this.RtLog); + this.tabPage7.Location = new System.Drawing.Point(4, 27); + this.tabPage7.Margin = new System.Windows.Forms.Padding(0); + this.tabPage7.Name = "tabPage7"; + this.tabPage7.Size = new System.Drawing.Size(703, 121); + this.tabPage7.TabIndex = 0; + this.tabPage7.Text = "Log"; + this.tabPage7.UseVisualStyleBackColor = true; + // + // RtLog + // + this.RtLog.BackColor = System.Drawing.Color.Silver; + this.RtLog.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.RtLog.ColorList = new arCtl.sLogMessageColor[0]; + this.RtLog.DateFormat = "mm:ss"; + this.RtLog.DefaultColor = System.Drawing.Color.LightGray; + this.RtLog.Dock = System.Windows.Forms.DockStyle.Fill; + this.RtLog.EnableDisplayTimer = true; + this.RtLog.EnableGubunColor = true; + this.RtLog.Font = new System.Drawing.Font("맑은 고딕", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RtLog.ListFormat = "[{0}] {1}"; + this.RtLog.Location = new System.Drawing.Point(0, 0); + this.RtLog.Margin = new System.Windows.Forms.Padding(0); + this.RtLog.MaxListCount = ((ushort)(200)); + this.RtLog.MaxTextLength = ((uint)(4000u)); + this.RtLog.MessageInterval = 50; + this.RtLog.Name = "RtLog"; + this.RtLog.Size = new System.Drawing.Size(703, 121); + this.RtLog.TabIndex = 42; + this.RtLog.Text = ""; + // + // tabControl3 + // + this.tabControl3.Controls.Add(this.tabPage2); + this.tabControl3.Dock = System.Windows.Forms.DockStyle.Right; + this.tabControl3.Location = new System.Drawing.Point(959, 5); + this.tabControl3.Name = "tabControl3"; + this.tabControl3.SelectedIndex = 0; + this.tabControl3.Size = new System.Drawing.Size(300, 920); + this.tabControl3.TabIndex = 142; + // + // tabPage2 + // + this.tabPage2.Location = new System.Drawing.Point(4, 27); + this.tabPage2.Name = "tabPage2"; + this.tabPage2.Padding = new System.Windows.Forms.Padding(3); + this.tabPage2.Size = new System.Drawing.Size(292, 889); + this.tabPage2.TabIndex = 0; + this.tabPage2.Text = "Quick Control"; + this.tabPage2.UseVisualStyleBackColor = true; + // + // dvMot + // + this.dvMot.A_DelCurrentCell = true; + this.dvMot.A_EnterToTab = true; + this.dvMot.A_KoreanField = null; + this.dvMot.A_UpperField = null; + this.dvMot.A_ViewRownumOnHeader = false; + this.dvMot.AllowUserToAddRows = false; + this.dvMot.AllowUserToDeleteRows = false; + this.dvMot.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.dvMot.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dvMot.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dvc_axis, + this.Column10, + this.Column2, + this.Column3, + this.Column4, + this.Column5, + this.Column6, + this.Column7, + this.Column8, + this.Column9, + this.dvc_desc}); + dataGridViewCellStyle12.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle12.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle12.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle12.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle12.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle12.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle12.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dvMot.DefaultCellStyle = dataGridViewCellStyle12; + this.dvMot.Dock = System.Windows.Forms.DockStyle.Fill; + this.dvMot.Location = new System.Drawing.Point(3, 3); + this.dvMot.MultiSelect = false; + this.dvMot.Name = "dvMot"; + this.dvMot.ReadOnly = true; + this.dvMot.RowTemplate.Height = 23; + this.dvMot.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dvMot.Size = new System.Drawing.Size(697, 282); + this.dvMot.TabIndex = 36; + this.dvMot.SelectionChanged += new System.EventHandler(this.dvMot_SelectionChanged); + // + // dvc_axis + // + this.dvc_axis.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + dataGridViewCellStyle8.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(232)))), ((int)(((byte)(232)))), ((int)(((byte)(232))))); + this.dvc_axis.DefaultCellStyle = dataGridViewCellStyle8; + this.dvc_axis.HeaderText = "Axis"; + this.dvc_axis.Name = "dvc_axis"; + this.dvc_axis.ReadOnly = true; + this.dvc_axis.Width = 40; + // + // Column10 + // + this.Column10.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + dataGridViewCellStyle9.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle9.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(232)))), ((int)(((byte)(232)))), ((int)(((byte)(232))))); + this.Column10.DefaultCellStyle = dataGridViewCellStyle9; + this.Column10.HeaderText = "Name"; + this.Column10.Name = "Column10"; + this.Column10.ReadOnly = true; + this.Column10.Width = 180; + // + // Column2 + // + dataGridViewCellStyle10.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight; + this.Column2.DefaultCellStyle = dataGridViewCellStyle10; + this.Column2.HeaderText = "Cmd"; + this.Column2.Name = "Column2"; + this.Column2.ReadOnly = true; + // + // Column3 + // + dataGridViewCellStyle11.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight; + this.Column3.DefaultCellStyle = dataGridViewCellStyle11; + this.Column3.HeaderText = "Act"; + this.Column3.Name = "Column3"; + this.Column3.ReadOnly = true; + // + // Column4 + // + this.Column4.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.Column4.HeaderText = "Home"; + this.Column4.Name = "Column4"; + this.Column4.ReadOnly = true; + this.Column4.Width = 50; + // + // Column5 + // + this.Column5.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.Column5.HeaderText = "-"; + this.Column5.Name = "Column5"; + this.Column5.ReadOnly = true; + this.Column5.Width = 50; + // + // Column6 + // + this.Column6.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.Column6.HeaderText = "+"; + this.Column6.Name = "Column6"; + this.Column6.ReadOnly = true; + this.Column6.Width = 50; + // + // Column7 + // + this.Column7.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.Column7.HeaderText = "Inp"; + this.Column7.Name = "Column7"; + this.Column7.ReadOnly = true; + this.Column7.Width = 50; + // + // Column8 + // + this.Column8.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.Column8.HeaderText = "Alm"; + this.Column8.Name = "Column8"; + this.Column8.ReadOnly = true; + this.Column8.Width = 50; + // + // Column9 + // + this.Column9.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.Column9.HeaderText = "H.Set"; + this.Column9.Name = "Column9"; + this.Column9.ReadOnly = true; + this.Column9.Width = 50; + // + // dvc_desc + // + this.dvc_desc.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; + this.dvc_desc.HeaderText = "Description"; + this.dvc_desc.Name = "dvc_desc"; + this.dvc_desc.ReadOnly = true; + // + // tmDisplay + // + this.tmDisplay.Interval = 500; + this.tmDisplay.Tick += new System.EventHandler(this.tmDisplay_Tick); + // + // nudJogAcc + // + this.nudJogAcc.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.nudJogAcc.DecimalPlaces = 2; + this.nudJogAcc.Dock = System.Windows.Forms.DockStyle.Fill; + this.nudJogAcc.Location = new System.Drawing.Point(79, 2); + this.nudJogAcc.Maximum = new decimal(new int[] { + 9999999, + 0, + 0, + 0}); + this.nudJogAcc.MotionIndex = -1; + this.nudJogAcc.Name = "nudJogAcc"; + this.nudJogAcc.Size = new System.Drawing.Size(143, 26); + this.nudJogAcc.TabIndex = 0; + this.nudJogAcc.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.toolTip1.SetToolTip(this.nudJogAcc, "조그모드 이동 속도"); + this.nudJogAcc.Value = new decimal(new int[] { + 500, + 0, + 0, + 0}); + // + // motLinkLabel1 + // + this.motLinkLabel1.Dock = System.Windows.Forms.DockStyle.Left; + this.motLinkLabel1.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.motLinkLabel1.LinkColor = System.Drawing.Color.Blue; + this.motLinkLabel1.Location = new System.Drawing.Point(2, 2); + this.motLinkLabel1.motValueControl = this.nudJogAcc; + this.motLinkLabel1.Name = "motLinkLabel1"; + this.motLinkLabel1.Size = new System.Drawing.Size(77, 26); + this.motLinkLabel1.TabIndex = 41; + this.motLinkLabel1.TabStop = true; + this.motLinkLabel1.Text = "JOG Acc"; + this.motLinkLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.toolTip1.SetToolTip(this.motLinkLabel1, "값 변경"); + this.motLinkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.motLinkLabel1_LinkClicked); + // + // panLeft + // + this.panLeft.Controls.Add(this.listView1); + this.panLeft.Controls.Add(this.tabControl4); + this.panLeft.Controls.Add(this.lbModelTitle); + this.panLeft.Dock = System.Windows.Forms.DockStyle.Left; + this.panLeft.Location = new System.Drawing.Point(5, 5); + this.panLeft.Name = "panLeft"; + this.panLeft.Size = new System.Drawing.Size(238, 920); + this.panLeft.TabIndex = 3; + // + // listView1 + // + this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader1}); + this.listView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.listView1.FullRowSelect = true; + this.listView1.GridLines = true; + this.listView1.HideSelection = false; + this.listView1.Location = new System.Drawing.Point(0, 34); + this.listView1.MultiSelect = false; + this.listView1.Name = "listView1"; + this.listView1.Size = new System.Drawing.Size(238, 420); + this.listView1.TabIndex = 146; + this.listView1.UseCompatibleStateImageBehavior = false; + this.listView1.View = System.Windows.Forms.View.Details; + this.listView1.SelectedIndexChanged += new System.EventHandler(this.listView1_SelectedIndexChanged); + // + // columnHeader1 + // + this.columnHeader1.Text = "모델명"; + this.columnHeader1.Width = 230; + // + // tabControl4 + // + this.tabControl4.Controls.Add(this.tabPage4); + this.tabControl4.Dock = System.Windows.Forms.DockStyle.Bottom; + this.tabControl4.Location = new System.Drawing.Point(0, 454); + this.tabControl4.Name = "tabControl4"; + this.tabControl4.SelectedIndex = 0; + this.tabControl4.Size = new System.Drawing.Size(238, 466); + this.tabControl4.TabIndex = 145; + // + // tabPage4 + // + this.tabPage4.Controls.Add(this.panel2); + this.tabPage4.Controls.Add(this.panel14); + this.tabPage4.Controls.Add(this.tableLayoutPanel1); + this.tabPage4.Controls.Add(this.panel1); + this.tabPage4.Controls.Add(this.panel7); + this.tabPage4.Controls.Add(this.panel8); + this.tabPage4.Controls.Add(this.panel11); + this.tabPage4.Location = new System.Drawing.Point(4, 27); + this.tabPage4.Name = "tabPage4"; + this.tabPage4.Padding = new System.Windows.Forms.Padding(3); + this.tabPage4.Size = new System.Drawing.Size(230, 435); + this.tabPage4.TabIndex = 1; + this.tabPage4.Text = "JOG"; + this.tabPage4.UseVisualStyleBackColor = true; + // + // panel2 + // + this.panel2.Controls.Add(this.linkLabel6); + this.panel2.Controls.Add(this.linkLabel5); + this.panel2.Controls.Add(this.linkLabel4); + this.panel2.Controls.Add(this.linkLabel3); + this.panel2.Controls.Add(this.linkLabel2); + this.panel2.Controls.Add(this.linkLabel1); + this.panel2.Controls.Add(this.label1); + this.panel2.Dock = System.Windows.Forms.DockStyle.Top; + this.panel2.Location = new System.Drawing.Point(3, 403); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(224, 33); + this.panel2.TabIndex = 66; + // + // linkLabel6 + // + this.linkLabel6.Dock = System.Windows.Forms.DockStyle.Left; + this.linkLabel6.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.linkLabel6.Location = new System.Drawing.Point(194, 0); + this.linkLabel6.Name = "linkLabel6"; + this.linkLabel6.Size = new System.Drawing.Size(32, 33); + this.linkLabel6.TabIndex = 71; + this.linkLabel6.TabStop = true; + this.linkLabel6.Text = "200"; + this.linkLabel6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.linkLabel6.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked); + // + // linkLabel5 + // + this.linkLabel5.Dock = System.Windows.Forms.DockStyle.Left; + this.linkLabel5.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.linkLabel5.Location = new System.Drawing.Point(162, 0); + this.linkLabel5.Name = "linkLabel5"; + this.linkLabel5.Size = new System.Drawing.Size(32, 33); + this.linkLabel5.TabIndex = 70; + this.linkLabel5.TabStop = true; + this.linkLabel5.Text = "100"; + this.linkLabel5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.linkLabel5.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked); + // + // linkLabel4 + // + this.linkLabel4.Dock = System.Windows.Forms.DockStyle.Left; + this.linkLabel4.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.linkLabel4.Location = new System.Drawing.Point(130, 0); + this.linkLabel4.Name = "linkLabel4"; + this.linkLabel4.Size = new System.Drawing.Size(32, 33); + this.linkLabel4.TabIndex = 69; + this.linkLabel4.TabStop = true; + this.linkLabel4.Text = "50"; + this.linkLabel4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.linkLabel4.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked); + // + // linkLabel3 + // + this.linkLabel3.Dock = System.Windows.Forms.DockStyle.Left; + this.linkLabel3.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.linkLabel3.Location = new System.Drawing.Point(98, 0); + this.linkLabel3.Name = "linkLabel3"; + this.linkLabel3.Size = new System.Drawing.Size(32, 33); + this.linkLabel3.TabIndex = 68; + this.linkLabel3.TabStop = true; + this.linkLabel3.Text = "20"; + this.linkLabel3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.linkLabel3.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked); + // + // linkLabel2 + // + this.linkLabel2.Dock = System.Windows.Forms.DockStyle.Left; + this.linkLabel2.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.linkLabel2.Location = new System.Drawing.Point(66, 0); + this.linkLabel2.Name = "linkLabel2"; + this.linkLabel2.Size = new System.Drawing.Size(32, 33); + this.linkLabel2.TabIndex = 67; + this.linkLabel2.TabStop = true; + this.linkLabel2.Text = "10"; + this.linkLabel2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.linkLabel2.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked); + // + // linkLabel1 + // + this.linkLabel1.Dock = System.Windows.Forms.DockStyle.Left; + this.linkLabel1.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.linkLabel1.Location = new System.Drawing.Point(34, 0); + this.linkLabel1.Name = "linkLabel1"; + this.linkLabel1.Size = new System.Drawing.Size(32, 33); + this.linkLabel1.TabIndex = 66; + this.linkLabel1.TabStop = true; + this.linkLabel1.Text = "5"; + this.linkLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked); + // + // label1 + // + this.label1.Dock = System.Windows.Forms.DockStyle.Left; + this.label1.Location = new System.Drawing.Point(0, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(34, 33); + this.label1.TabIndex = 65; + this.label1.Text = "SPD"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // panel1 + // + this.panel1.Controls.Add(this.nudJogAcc); + this.panel1.Controls.Add(this.motLinkLabel1); + this.panel1.Dock = System.Windows.Forms.DockStyle.Top; + this.panel1.Location = new System.Drawing.Point(3, 93); + this.panel1.Name = "panel1"; + this.panel1.Padding = new System.Windows.Forms.Padding(2); + this.panel1.Size = new System.Drawing.Size(224, 30); + this.panel1.TabIndex = 65; + // + // lbModelTitle + // + this.lbModelTitle.BackColor = System.Drawing.Color.Gray; + this.lbModelTitle.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.lbModelTitle.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbModelTitle.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbModelTitle.BorderColorOver = System.Drawing.Color.DodgerBlue; + this.lbModelTitle.BorderSize = new System.Windows.Forms.Padding(0); + this.lbModelTitle.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbModelTitle.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbModelTitle.Dock = System.Windows.Forms.DockStyle.Top; + this.lbModelTitle.Font = new System.Drawing.Font("Cambria", 14.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic)))); + this.lbModelTitle.ForeColor = System.Drawing.Color.White; + this.lbModelTitle.GradientEnable = true; + this.lbModelTitle.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbModelTitle.GradientRepeatBG = false; + this.lbModelTitle.isButton = false; + this.lbModelTitle.Location = new System.Drawing.Point(0, 0); + this.lbModelTitle.Margin = new System.Windows.Forms.Padding(0); + this.lbModelTitle.MouseDownColor = System.Drawing.Color.Yellow; + this.lbModelTitle.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbModelTitle.msg = null; + this.lbModelTitle.Name = "lbModelTitle"; + this.lbModelTitle.ProgressBorderColor = System.Drawing.Color.Black; + this.lbModelTitle.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbModelTitle.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbModelTitle.ProgressEnable = false; + this.lbModelTitle.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbModelTitle.ProgressForeColor = System.Drawing.Color.Black; + this.lbModelTitle.ProgressMax = 100F; + this.lbModelTitle.ProgressMin = 0F; + this.lbModelTitle.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbModelTitle.ProgressValue = 0F; + this.lbModelTitle.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lbModelTitle.Sign = ""; + this.lbModelTitle.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbModelTitle.SignColor = System.Drawing.Color.Yellow; + this.lbModelTitle.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbModelTitle.Size = new System.Drawing.Size(238, 34); + this.lbModelTitle.TabIndex = 6; + this.lbModelTitle.Text = "--"; + this.lbModelTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbModelTitle.TextShadow = true; + this.lbModelTitle.TextVisible = true; + // + // panel6 + // + this.panel6.BackColor = System.Drawing.SystemColors.Control; + this.panel6.Controls.Add(this.panel3); + this.panel6.Controls.Add(this.tabControl5); + this.panel6.Controls.Add(this.tabControl3); + this.panel6.Controls.Add(this.splitH); + this.panel6.Controls.Add(this.panLeft); + this.panel6.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel6.ForeColor = System.Drawing.SystemColors.ControlText; + this.panel6.Location = new System.Drawing.Point(0, 0); + this.panel6.Name = "panel6"; + this.panel6.Padding = new System.Windows.Forms.Padding(5); + this.panel6.Size = new System.Drawing.Size(1264, 930); + this.panel6.TabIndex = 4; + // + // panel3 + // + this.panel3.Controls.Add(this.tabControl1); + this.panel3.Controls.Add(this.tabControl2); + this.panel3.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel3.Location = new System.Drawing.Point(248, 324); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(711, 601); + this.panel3.TabIndex = 136; + // + // tabControl5 + // + this.tabControl5.Controls.Add(this.tabPage5); + this.tabControl5.Dock = System.Windows.Forms.DockStyle.Top; + this.tabControl5.Location = new System.Drawing.Point(248, 5); + this.tabControl5.Name = "tabControl5"; + this.tabControl5.SelectedIndex = 0; + this.tabControl5.Size = new System.Drawing.Size(711, 319); + this.tabControl5.TabIndex = 135; + // + // tabPage5 + // + this.tabPage5.Controls.Add(this.dvMot); + this.tabPage5.Location = new System.Drawing.Point(4, 27); + this.tabPage5.Name = "tabPage5"; + this.tabPage5.Padding = new System.Windows.Forms.Padding(3); + this.tabPage5.Size = new System.Drawing.Size(703, 288); + this.tabPage5.TabIndex = 1; + this.tabPage5.Text = "Motion Status"; + this.tabPage5.UseVisualStyleBackColor = true; + // + // splitH + // + this.splitH.Dock = System.Windows.Forms.DockStyle.Left; + this.splitH.Location = new System.Drawing.Point(243, 5); + this.splitH.Name = "splitH"; + this.splitH.Size = new System.Drawing.Size(5, 920); + this.splitH.TabIndex = 4; + // + // toolStrip1 + // + this.toolStrip1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.toolStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden; + this.toolStrip1.ImageScalingSize = new System.Drawing.Size(48, 48); + this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.btAdd, + this.btEdit, + this.btDel, + this.btSave, + this.btCopy, + this.btSelect, + this.toolStripSeparator2, + this.toolStripButton11}); + this.toolStrip1.Location = new System.Drawing.Point(0, 930); + this.toolStrip1.Name = "toolStrip1"; + this.toolStrip1.Size = new System.Drawing.Size(1264, 55); + this.toolStrip1.TabIndex = 9; + this.toolStrip1.Text = "toolStrip1"; + // + // btAdd + // + this.btAdd.Image = global::Project.Properties.Resources.icons8_add_40; + this.btAdd.ImageTransparentColor = System.Drawing.Color.Magenta; + this.btAdd.Name = "btAdd"; + this.btAdd.Size = new System.Drawing.Size(99, 52); + this.btAdd.Text = "추가(&A)"; + this.btAdd.Click += new System.EventHandler(this.toolStripButton6_Click); + // + // btEdit + // + this.btEdit.Image = global::Project.Properties.Resources.icons8_edit_48; + this.btEdit.ImageTransparentColor = System.Drawing.Color.Magenta; + this.btEdit.Name = "btEdit"; + this.btEdit.Size = new System.Drawing.Size(107, 52); + this.btEdit.Text = "이름변경"; + this.btEdit.Click += new System.EventHandler(this.btEdit_Click); + // + // btDel + // + this.btDel.Image = global::Project.Properties.Resources.icons8_delete_40; + this.btDel.ImageTransparentColor = System.Drawing.Color.Magenta; + this.btDel.Name = "btDel"; + this.btDel.Size = new System.Drawing.Size(100, 52); + this.btDel.Text = "삭제(&D)"; + this.btDel.Click += new System.EventHandler(this.toolStripButton7_Click); + // + // btSave + // + this.btSave.Image = ((System.Drawing.Image)(resources.GetObject("btSave.Image"))); + this.btSave.Name = "btSave"; + this.btSave.Size = new System.Drawing.Size(98, 52); + this.btSave.Text = "저장(&S)"; + this.btSave.Click += new System.EventHandler(this.toolStripButton8_Click); + // + // btCopy + // + this.btCopy.Image = ((System.Drawing.Image)(resources.GetObject("btCopy.Image"))); + this.btCopy.ImageTransparentColor = System.Drawing.Color.Magenta; + this.btCopy.Name = "btCopy"; + this.btCopy.Size = new System.Drawing.Size(83, 52); + this.btCopy.Text = "복사"; + this.btCopy.Click += new System.EventHandler(this.btCopy_Click); + // + // btSelect + // + this.btSelect.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.btSelect.AutoSize = false; + this.btSelect.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(60)))), ((int)(((byte)(60))))); + this.btSelect.ForeColor = System.Drawing.Color.White; + this.btSelect.Image = global::Project.Properties.Resources.icons8_selection_40; + this.btSelect.Name = "btSelect"; + this.btSelect.Size = new System.Drawing.Size(215, 44); + this.btSelect.Text = "이 모델을 선택합니다"; + this.btSelect.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.btSelect.Click += new System.EventHandler(this.toolStripButton10_Click); + // + // toolStripSeparator2 + // + this.toolStripSeparator2.Name = "toolStripSeparator2"; + this.toolStripSeparator2.Size = new System.Drawing.Size(6, 55); + // + // toolStripButton11 + // + this.toolStripButton11.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.그룹설정ToolStripMenuItem}); + this.toolStripButton11.Image = global::Project.Properties.Resources.icons8_move_right_40; + this.toolStripButton11.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton11.Name = "toolStripButton11"; + this.toolStripButton11.Size = new System.Drawing.Size(119, 52); + this.toolStripButton11.Text = "그룹이동"; + this.toolStripButton11.ButtonClick += new System.EventHandler(this.toolStripButton11_ButtonClick); + this.toolStripButton11.Click += new System.EventHandler(this.toolStripButton11_Click); + // + // 그룹설정ToolStripMenuItem + // + this.그룹설정ToolStripMenuItem.Image = global::Project.Properties.Resources.icons8_save_to_grid_40; + this.그룹설정ToolStripMenuItem.Name = "그룹설정ToolStripMenuItem"; + this.그룹설정ToolStripMenuItem.Size = new System.Drawing.Size(154, 54); + this.그룹설정ToolStripMenuItem.Text = "그룹설정"; + this.그룹설정ToolStripMenuItem.Click += new System.EventHandler(this.그룹설정ToolStripMenuItem_Click); + // + // Column1 + // + this.Column1.DataPropertyName = "idx"; + this.Column1.HeaderText = "idx"; + this.Column1.Name = "Column1"; + this.Column1.ReadOnly = true; + this.Column1.Visible = false; + this.Column1.Width = 33; + // + // pidx + // + this.pidx.DataPropertyName = "pidx"; + this.pidx.HeaderText = "pidx"; + this.pidx.Name = "pidx"; + this.pidx.ReadOnly = true; + this.pidx.Visible = false; + this.pidx.Width = 41; + // + // MotIndex + // + this.MotIndex.DataPropertyName = "MotIndex"; + this.MotIndex.HeaderText = "MotIndex"; + this.MotIndex.Name = "MotIndex"; + this.MotIndex.ReadOnly = true; + this.MotIndex.Visible = false; + this.MotIndex.Width = 74; + // + // PosIndex + // + this.PosIndex.DataPropertyName = "PosIndex"; + this.PosIndex.HeaderText = "PosIndex"; + this.PosIndex.Name = "PosIndex"; + this.PosIndex.ReadOnly = true; + this.PosIndex.Visible = false; + this.PosIndex.Width = 71; + // + // posTitleDataGridViewTextBoxColumn1 + // + this.posTitleDataGridViewTextBoxColumn1.DataPropertyName = "PosTitle"; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + this.posTitleDataGridViewTextBoxColumn1.DefaultCellStyle = dataGridViewCellStyle1; + this.posTitleDataGridViewTextBoxColumn1.HeaderText = "Title"; + this.posTitleDataGridViewTextBoxColumn1.Name = "posTitleDataGridViewTextBoxColumn1"; + this.posTitleDataGridViewTextBoxColumn1.ReadOnly = true; + this.posTitleDataGridViewTextBoxColumn1.Width = 61; + // + // Description + // + this.Description.DataPropertyName = "Description"; + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle2.Font = new System.Drawing.Font("맑은 고딕", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.Description.DefaultCellStyle = dataGridViewCellStyle2; + this.Description.HeaderText = "Description"; + this.Description.Name = "Description"; + this.Description.ReadOnly = true; + this.Description.Width = 103; + // + // btPos + // + this.btPos.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.btPos.DataPropertyName = "Position"; + dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle3.Format = "N3"; + this.btPos.DefaultCellStyle = dataGridViewCellStyle3; + this.btPos.HeaderText = "Position"; + this.btPos.Name = "btPos"; + this.btPos.ReadOnly = true; + this.btPos.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.btPos.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + // + // btspeed + // + this.btspeed.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.btspeed.DataPropertyName = "Speed"; + this.btspeed.HeaderText = "Speed"; + this.btspeed.Name = "btspeed"; + this.btspeed.ReadOnly = true; + this.btspeed.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.btspeed.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.btspeed.Width = 50; + // + // btacc + // + this.btacc.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.btacc.DataPropertyName = "SpeedAcc"; + this.btacc.HeaderText = "Acc"; + this.btacc.Name = "btacc"; + this.btacc.ReadOnly = true; + this.btacc.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.btacc.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.btacc.Text = "Acc"; + this.btacc.Width = 50; + // + // btdcc + // + this.btdcc.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.btdcc.DataPropertyName = "SpeedDcc"; + this.btdcc.HeaderText = "Dcc"; + this.btdcc.Name = "btdcc"; + this.btdcc.ReadOnly = true; + this.btdcc.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.btdcc.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.btdcc.Text = "Dcc"; + this.btdcc.Width = 50; + // + // btGo + // + this.btGo.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(0))))); + this.btGo.DefaultCellStyle = dataGridViewCellStyle4; + this.btGo.HeaderText = "Go"; + this.btGo.Name = "btGo"; + this.btGo.ReadOnly = true; + this.btGo.Text = "Go"; + this.btGo.Width = 50; + // + // btSet + // + this.btSet.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle5.BackColor = System.Drawing.Color.Blue; + this.btSet.DefaultCellStyle = dataGridViewCellStyle5; + this.btSet.HeaderText = "Set"; + this.btSet.Name = "btSet"; + this.btSet.ReadOnly = true; + this.btSet.Text = "Set"; + this.btSet.Width = 50; + // + // Model_Motion + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.SystemColors.Control; + this.ClientSize = new System.Drawing.Size(1264, 985); + this.Controls.Add(this.panel6); + this.Controls.Add(this.toolStrip1); + this.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.ForeColor = System.Drawing.Color.Black; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "Model_Motion"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Motion Setting / Select"; + this.WindowState = System.Windows.Forms.FormWindowState.Maximized; + this.Load += new System.EventHandler(this.@__Load); + ((System.ComponentModel.ISupportInitialize)(this.ds1)).EndInit(); + this.tabControl1.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + this.tabPage1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dvPosition)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsPosData)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bn)).EndInit(); + this.bn.ResumeLayout(false); + this.bn.PerformLayout(); + this.tableLayoutPanel1.ResumeLayout(false); + this.panel7.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.nudPosRel)).EndInit(); + this.panel14.ResumeLayout(false); + this.panel14.PerformLayout(); + this.panel8.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.nudPosAbs)).EndInit(); + this.panel11.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.nudJogVel)).EndInit(); + this.tabControl2.ResumeLayout(false); + this.tabPage7.ResumeLayout(false); + this.tabControl3.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dvMot)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.nudJogAcc)).EndInit(); + this.panLeft.ResumeLayout(false); + this.tabControl4.ResumeLayout(false); + this.tabPage4.ResumeLayout(false); + this.panel2.ResumeLayout(false); + this.panel1.ResumeLayout(false); + this.panel6.ResumeLayout(false); + this.panel3.ResumeLayout(false); + this.tabControl5.ResumeLayout(false); + this.tabPage5.ResumeLayout(false); + this.toolStrip1.ResumeLayout(false); + this.toolStrip1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private DataSet1 ds1; + private System.Windows.Forms.Timer tmDisplay; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private arFrame.Control.MotCommandButton btJogUp; + private arFrame.Control.MotCommandButton btJogDn; + private arFrame.Control.MotCommandButton btJogStop; + private arFrame.Control.MotValueNumericUpDown nudJogVel; + private arFrame.Control.MotCommandButton button5; + private arFrame.Control.MotCommandButton btPClear; + private System.Windows.Forms.ToolTip toolTip1; + private arFrame.Control.MotValueNumericUpDown nudPosAbs; + private arFrame.Control.MotLinkLabel linkLabel8; + private System.Windows.Forms.Panel panLeft; + private arFrame.Control.MotLinkLabel linkLabel10; + private arFrame.Control.MotLinkLabel linkLabel11; + private arFrame.Control.MotCommandButton button1; + private arFrame.Control.MotValueNumericUpDown nudPosRel; + private arFrame.Control.MotCommandButton button3; + private arFrame.Control.MotCommandButton btAClear; + private arCtl.arLabel lbModelTitle; + private arFrame.Control.MotCommandButton btSVY; + private arFrame.Control.MotCommandButton btJogLeft; + private arFrame.Control.MotCommandButton btJogRight; + private System.Windows.Forms.Panel panel6; + private System.Windows.Forms.Panel splitH; + private arCtl.LogTextBox RtLog; + private System.Windows.Forms.CheckBox chkJogMoveForce; + private System.Windows.Forms.TabControl tabControl2; + private System.Windows.Forms.TabPage tabPage7; + private System.Windows.Forms.BindingSource bsPosData; + private System.Windows.Forms.Panel panel7; + private System.Windows.Forms.Panel panel8; + private System.Windows.Forms.Panel panel11; + private arCtl.arDatagridView dvPosition; + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.TabControl tabControl3; + private System.Windows.Forms.TabPage tabPage2; + private System.Windows.Forms.BindingNavigator bn; + private System.Windows.Forms.ToolStripLabel bindingNavigatorCountItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveFirstItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMovePreviousItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator; + private System.Windows.Forms.ToolStripTextBox bindingNavigatorPositionItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator1; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveNextItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveLastItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator2; + private System.Windows.Forms.ToolStripButton toolStripButton1; + private System.Windows.Forms.ToolStripButton toolStripButton2; + private System.Windows.Forms.ToolStripButton toolStripButton3; + private System.Windows.Forms.Panel panel14; + private arCtl.arDatagridView dvMot; + private System.Windows.Forms.TabControl tabControl4; + private System.Windows.Forms.TabPage tabPage4; + private System.Windows.Forms.TabControl tabControl5; + private System.Windows.Forms.TabPage tabPage5; + private System.Windows.Forms.Panel panel3; + private System.Windows.Forms.DataGridViewTextBoxColumn dvc_axis; + private System.Windows.Forms.DataGridViewTextBoxColumn Column10; + private System.Windows.Forms.DataGridViewTextBoxColumn Column2; + private System.Windows.Forms.DataGridViewTextBoxColumn Column3; + private System.Windows.Forms.DataGridViewTextBoxColumn Column4; + private System.Windows.Forms.DataGridViewTextBoxColumn Column5; + private System.Windows.Forms.DataGridViewTextBoxColumn Column6; + private System.Windows.Forms.DataGridViewTextBoxColumn Column7; + private System.Windows.Forms.DataGridViewTextBoxColumn Column8; + private System.Windows.Forms.DataGridViewTextBoxColumn Column9; + private System.Windows.Forms.DataGridViewTextBoxColumn dvc_desc; + private System.Windows.Forms.Panel panel1; + private arFrame.Control.MotValueNumericUpDown nudJogAcc; + private arFrame.Control.MotLinkLabel motLinkLabel1; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.LinkLabel linkLabel1; + private System.Windows.Forms.LinkLabel linkLabel6; + private System.Windows.Forms.LinkLabel linkLabel5; + private System.Windows.Forms.LinkLabel linkLabel4; + private System.Windows.Forms.LinkLabel linkLabel3; + private System.Windows.Forms.LinkLabel linkLabel2; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; + private System.Windows.Forms.ToolStrip toolStrip1; + private System.Windows.Forms.ToolStripButton btAdd; + private System.Windows.Forms.ToolStripButton btDel; + private System.Windows.Forms.ToolStripButton btSave; + private System.Windows.Forms.ToolStripButton btCopy; + private System.Windows.Forms.ToolStripButton btSelect; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator2; + private System.Windows.Forms.ToolStripSplitButton toolStripButton11; + private System.Windows.Forms.ToolStripMenuItem 그룹설정ToolStripMenuItem; + private System.Windows.Forms.ListView listView1; + private System.Windows.Forms.ColumnHeader columnHeader1; + private System.Windows.Forms.ToolStripButton btEdit; + private System.Windows.Forms.DataGridViewTextBoxColumn Column1; + private System.Windows.Forms.DataGridViewTextBoxColumn pidx; + private System.Windows.Forms.DataGridViewTextBoxColumn MotIndex; + private System.Windows.Forms.DataGridViewTextBoxColumn PosIndex; + private System.Windows.Forms.DataGridViewTextBoxColumn posTitleDataGridViewTextBoxColumn1; + private System.Windows.Forms.DataGridViewTextBoxColumn Description; + private System.Windows.Forms.DataGridViewButtonColumn btPos; + private System.Windows.Forms.DataGridViewButtonColumn btspeed; + private System.Windows.Forms.DataGridViewButtonColumn btacc; + private System.Windows.Forms.DataGridViewButtonColumn btdcc; + private System.Windows.Forms.DataGridViewButtonColumn btGo; + private System.Windows.Forms.DataGridViewButtonColumn btSet; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/Model_Motion.cs b/Handler/Project/Dialog/Model_Motion.cs new file mode 100644 index 0000000..06f15d2 --- /dev/null +++ b/Handler/Project/Dialog/Model_Motion.cs @@ -0,0 +1,1457 @@ +#pragma warning disable IDE1006 // 명명 스타일 + +using AR; +using System; +using System.Collections.Generic; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Windows.Forms; + +namespace Project +{ + public partial class Model_Motion : Form + { + public string Value = string.Empty; + short axisIndex = -1; + eAxis axis = eAxis.Z_THETA;// + Color sbBackColor = Color.FromArgb(200, 200, 200); + + public Model_Motion() + { + InitializeComponent(); + + if (System.Diagnostics.Debugger.IsAttached == false) + { + // fb = new Dialog.fBlurPanel(); + //fb.Show(); + } + + this.KeyPreview = true; + this.KeyDown += (s1, e1) => { if (e1.KeyCode == Keys.Escape) this.Close(); }; + this.StartPosition = FormStartPosition.CenterScreen; + this.FormClosed += __Closed; + this.FormClosing += __Closing; + + var axlist = Enum.GetNames(typeof(eAxis)); + var axvalues = Enum.GetValues(typeof(eAxis)); + + var preValueList = new List(); + + //모터설정값을 보고 해당 모터의 목록을 표시한다. + //사용하지 않는 축은 표시하지 않는다 + for (int i = 0; i < PUB.system.MotaxisCount; i++) + { + var axis = (eAxis)i; + var axisname = (eAxisName)i; + var axTitle = axisname.ToString();// axis.ToString(); + + if (PUB.system_mot.UseAxis(i) == false) continue;// axTitle = "Disable"; + + if (axisIndex == -1) axisIndex = (short)i; + if (axTitle.Equals(i.ToString())) axTitle = "(No Name)"; + this.dvMot.Rows.Add( + new string[] { + i.ToString(), axTitle, string.Empty, string.Empty, string.Empty, + string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, + string.Empty + }); + } + + //링크레이블과 버튼 연결 + AttachEvents(); + } + Boolean hasChanged() + { + this.Validate(); + this.bsPosData.EndEdit(); + var chg = this.ds1.MCModel.GetChanges(); + if (chg == null || chg.Rows.Count < 1) return false; + return true; + } + + private void __Closing(object sender, FormClosingEventArgs e) + { + if (hasChanged()) + { + var dlg = UTIL.MsgQ("변경된 자료가 있습니다.\n" + + "진행하면 변경된 자료는 손실됩니다\n" + + "진행 할까요?"); + + if (dlg != DialogResult.Yes) + { + e.Cancel = true; + return; + } + } + } + + private void __Load(object sender, EventArgs e) + { + this.Show(); + ////'Application.DoEvents(); + /// + + + + this.ds1.Clear(); + this.ds1.MCModel.Merge(PUB.mdm.dataSet.MCModel); + this.ds1.MCModel.AcceptChanges(); + this.ds1.MCModel.TableNewRow += Model_TableNewRow; + //this.ds1.MCModel.AcceptChanges(); + + + //축이름을 확인 220304 + foreach (DataSet1.MCModelRow dr in ds1.MCModel) + { + if (dr.RowState == DataRowState.Deleted || dr.RowState == DataRowState.Detached) continue; + var curname = dr.MotName; + var axis = (eAxis)dr.MotIndex; + if (axis.ToString() != curname) + { + dr.MotName = axis.ToString(); + dr.EndEdit(); + } + } + this.ds1.MCModel.AcceptChanges(); + + //데이터가 안나오게 한다. + this.bsPosData.Filter = "isnull(title,'') = 'dudrndjqtek' and isnull(motindex,-1) = -1"; + + + + //모델목록을 업데이트한다 (모델은 pidx =-1인데이터를 뜻한다) + RefreshModelList(); + + + //현재 선택된 모델정보를 표시한다. + if (PUB.Result.isSetmModel) + { + //모델명을 표시 + lbModelTitle.Text = PUB.Result.mModel.Title; + + //해당모델명을 찾아서 선택해준다. + foreach (ListViewItem item in this.listView1.Items) + { + if (item.Text == PUB.Result.mModel.Title) + { + item.Focused = true; + item.Selected = true; + break; + } + } + } + else + { + //선택된 모델명이 없다 + lbModelTitle.Text = "--"; + } + + //모델정보가 아에 없다면 + if (this.ds1.MCModel.Rows.Count < 1) + { + var newdr = this.ds1.MCModel.NewMCModelRow(); + newdr.Title = "Default"; + newdr.pidx = -1; + newdr.PosIndex = -1; + newdr.idx = ds1.MCModel.Rows.Count + 1; + this.ds1.MCModel.AddMCModelRow(newdr); + + UTIL.MsgI("등록된 모델이 없어 기본 모델(Default)를 생성 합니다"); + } + + //this.axisIndex = 0; //기본Z축 + //radClick_MotAxisSelect(this.flowLayoutPanel1.Controls[0], null); + //var rad = flowLayoutPanel1.Controls[0] as RadioButton; + //rad.Checked = true; + + //빠른실행폼추가 + var fctl = new Dialog.Quick_Control + { + TopLevel = false, + Visible = true, + Padding = new Padding(0, 0, 0, 0), + ForeColor = Color.Black + }; + fctl.panBG.BackColor = Color.White; + fctl.panBG.ForeColor = Color.Black; + //fctl.groupBox2.ForeColor = Color.Black; + fctl.groupBox3.ForeColor = Color.Black; + this.tabPage2.Controls.Add(fctl); + fctl.Dock = DockStyle.Fill; + fctl.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + //fctl.panTopMenuDiv.Visible = false; + /// fctl.panBG.BackColor = this.panel6.BackColor; + fctl.panBG.BorderStyle = BorderStyle.None; + fctl.Show(); + fctl.Dock = DockStyle.Fill; + PUB.log.RaiseMsg += log_RaiseMsg; + //PUB.flag.set(eVarBool.JOG, true, "MOTION CONTROL"); + + if (PUB.sm.Step != eSMStep.IDLE) + { + btDel.Enabled = false; + btCopy.Enabled = false; + btSelect.Visible = false; + btEdit.Enabled = false; + //Util.MsgE("대기 상태일때만 복사/삭제 기능을 쓸 수 있습니다"); + } + + this.RtLog.ColorList = new arCtl.sLogMessageColor[] { + new arCtl.sLogMessageColor("BARCODE",Color.DarkMagenta), + new arCtl.sLogMessageColor("ERR",Color.Red), + new arCtl.sLogMessageColor("NORMAL", Color.Black), + new arCtl.sLogMessageColor("WARN", Color.DarkMagenta), + new arCtl.sLogMessageColor("ATT", Color.MidnightBlue), + new arCtl.sLogMessageColor("INFO", Color.MidnightBlue), + new arCtl.sLogMessageColor("VIS", Color.Blue), + new arCtl.sLogMessageColor("SM", Color.Indigo), + new arCtl.sLogMessageColor("WATCH", Color.Indigo), + }; + + this.tmDisplay.Start(); + } + + void RefreshModelList() + { + this.listView1.Items.Clear(); + var list = this.ds1.MCModel.Where(t => t.pidx == -1).OrderBy(t => t.Title).ToList(); + if (list.Any()) + { + foreach (var item in list) + { + if (item.Title.isEmpty()) continue; + var lv = this.listView1.Items.Add(item.Title); + lv.Tag = item.idx; + } + } + } + + void AttachEvents() + { + var EventConnectControls = new List + { + tabControl4 + }; + + //linklabel 과 button 에 클릭 이벤트 생성 + foreach (Control page in EventConnectControls) + { + foreach (var ctl in page.Controls) + { + if (ctl.GetType() == typeof(arFrame.Control.MotLinkLabel)) + { + var label = ctl as arFrame.Control.MotLinkLabel; + if (label.motValueControl != null) label.LinkClicked += label_LinkClicked; + + } + else if (ctl.GetType() == typeof(arFrame.Control.MotCommandButton)) + { + var button = ctl as arFrame.Control.MotCommandButton; + if (button.motValueControl != null) button.Click += button_Click; + } + } + } + } + + void button_Click(object sender, EventArgs e) + { + var ctl = sender as arFrame.Control.MotCommandButton; + var nud = ctl.motValueControl as arFrame.Control.MotValueNumericUpDown; + var nudAcc = ctl.motAccControl;// as arFrame.Control.MotValueNumericUpDown; + var nudSpd = ctl.motSpdControl; + if (nud.MotionIndex < 0) + { + UTIL.MsgE("모션 축 번호가 지정되지 않았습니다\n\n" + + "이름 : " + ctl.Name + "\n" + + "제목 : " + ctl.Text); + return; + } + if ((nudAcc == null || nudSpd == null) && ctl.motCommand != arFrame.Control.MotCommandButton.eCommand.AcceptPosition) + { + UTIL.MsgE("속도/가속도 컨트롤이 지정되지 않았습니다\n\n" + + "이름 : " + ctl.Name + "\n" + + "제목 : " + ctl.Text); + return; + } + + var axis = (eAxis)nud.MotionIndex; + var pos = (double)nud.Value; + + //모션이 초기화가 안되있다면 오류로 처리한다 + if (PUB.mot.IsHomeSet(nud.MotionIndex) == false) + { + UTIL.MsgE("해당 축은 홈 검색이 완료되지 않았습니다.\n먼저 홈 검색을 완료 하세요"); + return; + } + + + + switch (ctl.motCommand) + { + case arFrame.Control.MotCommandButton.eCommand.AcceptPosition: + + var msg1 = string.Format("모션의 설정값을 변경 하시겠습니까\n" + + "축 : {0}\n" + + "변경전 : {1}\n" + + "변경후 : {2}\n" + + "변경 후 '저장'을 눌러야 영구 기록 됩니다", axis, PUB.mot.GetActPos(nud.MotionIndex), pos, nud.Value); + + if (UTIL.MsgQ(msg1) != System.Windows.Forms.DialogResult.Yes) return; + + ChangeCurrentPosition(nud.MotionIndex, nud); + break; + case arFrame.Control.MotCommandButton.eCommand.AbsoluteMove: + case arFrame.Control.MotCommandButton.eCommand.RelativeMove: + + var speed = (double)nudSpd.Value; + var acc = (double)nudAcc.Value; + + + + + var relative = false; + if (ctl.motCommand == arFrame.Control.MotCommandButton.eCommand.RelativeMove) + relative = true; + + var msg = string.Format("모션의 위치를 변경 하시겠습니까\n" + + "축 : {0}\n" + + "현재위치 : {1}\n" + + "대상위치 : {2}\n" + + "이동 시 충돌 가능성이 있는지 반드시 확인 하세요", axis, PUB.mot.GetActPos(nud.MotionIndex), pos); + + if (UTIL.MsgQ(msg) != System.Windows.Forms.DialogResult.Yes) return; + + if (!MOT.Move(axis, pos, speed, acc, relative)) + PUB.log.AddE("MOT:MOVE_:" + axis.ToString() + ",Msg=" + PUB.mot.ErrorMessage); + break; + } + } + + void label_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + var ctl = sender as arFrame.Control.MotLinkLabel; + PUB.ChangeUIPopup(ctl.motValueControl); + } + + private void __Closed(object sender, FormClosedEventArgs e) + { + //this.bs.CurrentChanged -= this.bs_CurrentChanged_1; + this.tmDisplay.Enabled = false; + this.ds1.MCModel.TableNewRow -= Model_TableNewRow; + } + + #region "Mouse Form Move" + + private Boolean fMove = false; + private Point MDownPos; + + private void LbTitle_DoubleClick(object sender, EventArgs e) + { + if (this.WindowState == FormWindowState.Maximized) this.WindowState = FormWindowState.Normal; + else this.WindowState = FormWindowState.Maximized; + } + private void LbTitle_MouseMove(object sender, MouseEventArgs e) + { + if (fMove) + { + Point offset = new Point(e.X - MDownPos.X, e.Y - MDownPos.Y); + this.Left += offset.X; + this.Top += offset.Y; + offset = new Point(0, 0); + } + } + private void LbTitle_MouseUp(object sender, MouseEventArgs e) + { + fMove = false; + } + private void LbTitle_MouseDown(object sender, MouseEventArgs e) + { + MDownPos = new Point(e.X, e.Y); + fMove = true; + } + + #endregion + + void log_RaiseMsg(DateTime LogTime, string TypeStr, string Message) + { + if (Message.StartsWith("[EO]") || Message.StartsWith("EO")) + { + return; + } + this.RtLog.AddMsg(LogTime, TypeStr, Message); + } + + void Model_TableNewRow(object sender, DataTableNewRowEventArgs e) + { + // e.Row["SlotCount"] = 20; + } + + private void tmDisplay_Tick(object sender, EventArgs e) + { + tabControl4.TabPages[0].Text = $"({axisIndex}) JOG"; + if (PUB.joypad != null && PUB.joypad.IsOpen) + this.Text = "MODEL(MOTION) SETTING - JOYSTICK GROUP:" + PUB.Result.JoystickAxisGroup.ToString(); + else + this.Text = "MODEL(MOTION) SETTING"; + + if (PUB.mot.IsInit == false) + { + //if (groupBox3.Enabled == true) groupBox3.Enabled = false; + } + else + { + //if (groupBox3.Enabled == false) groupBox3.Enabled = true; + + //각축별 기본 상태를 표시해준다. + dvMot.SuspendLayout(); + for (int r = 0; r < dvMot.RowCount; r++) // 오류수정 2111221 + { + var row = this.dvMot.Rows[r]; + var axis = int.Parse(row.Cells[0].Value.ToString()); + row.Cells[0].Style.BackColor = PUB.mot.IsServOn(axis) ? Color.Lime : Color.Tomato; + row.Cells[2].Value = $"{PUB.mot.GetCmdPos(axis)}"; + row.Cells[3].Value = $"{PUB.mot.GetActPos(axis)}"; + row.Cells[4].Style.BackColor = PUB.mot.IsOrg(axis) ? Color.SkyBlue : Color.Gray; + row.Cells[5].Style.BackColor = PUB.mot.IsLimitN(axis) ? Color.Red : Color.Gray; + row.Cells[6].Style.BackColor = PUB.mot.IsLimitP(axis) ? Color.Red : Color.Gray; + row.Cells[7].Style.BackColor = PUB.mot.IsInp(axis) ? Color.SkyBlue : Color.Gray; + row.Cells[8].Style.BackColor = PUB.mot.IsServAlarm(axis) ? Color.Red : Color.Gray; + row.Cells[9].Style.BackColor = PUB.mot.IsHomeSet(axis) ? Color.Green : Color.Gray; + } + dvMot.ResumeLayout(); + } + // this.tblFG.Invalidate(); + } + + private void dv_DataError(object sender, DataGridViewDataErrorEventArgs e) + { + + } + + #region "jog function" + + private void button1_Click(object sender, EventArgs e) + { + //절대값 이동 + var pos = (double)nudPosAbs.Value; + var vel = (double)nudJogVel.Value; + + var msg = $"모션({axis}) 의 좌표를 ({pos})로 이동 할까요?"; + if (UTIL.MsgQ(msg) != DialogResult.Yes) return; + + MOT.Move(this.axis, pos, vel, 500, false, !chkJogMoveForce.Checked, !chkJogMoveForce.Checked); + PUB.log.AddI(string.Format("{0}번 축 수동이동(ABS) {1}mm", axisIndex, pos)); + } + + private void button3_Click_1(object sender, EventArgs e) + { + + //상대값 이동 + var pos = (double)nudPosRel.Value; + var vel = (double)nudJogVel.Value; + + if(pos == 0.0) + { + UTIL.MsgE("상대 이동시 값은 (0)일 수 없습니다",true); + return; + } + + var msg = $"모션({axis}) 의 좌표를 현재위치에서 ({pos})만큼 이동 할까요?"; + if (UTIL.MsgQ(msg) != DialogResult.Yes) return; + + MOT.Move(this.axis, pos, vel, 500, true, !chkJogMoveForce.Checked, !chkJogMoveForce.Checked); + PUB.log.AddI(string.Format("{0}번 축 수동이동(REL) {1}mm", axisIndex, pos)); + } + + + private void btJogHome_Click(object sender, EventArgs e) + { + //jog-home + var dlg = UTIL.MsgQ(string.Format("{0} 축의 홈 검색을 실행하시겠습니까?", this.axis)); + if (dlg != System.Windows.Forms.DialogResult.Yes) return; + var rlt = MOT.Home("Model(UserControl)", this.axis); + if (rlt == false) + { + UTIL.MsgE(PUB.mot.ErrorMessage); + return; + } + PUB.log.Add(string.Format("user click : home ({0})", axisIndex)); + } + + private void btJogPClear_Click(object sender, EventArgs e) + { + var dlg = UTIL.MsgQ("위치값을 초기화 하시겠습니까?\n" + + "실 사용전에는 반드시 홈 작업을 진행하세요"); + if (dlg != System.Windows.Forms.DialogResult.Yes) return; + //jog pos-clear + PUB.mot.ClearPosition((short)axisIndex); + PUB.mot.SetHomeSet(axisIndex, false); //홈셋도 풀어야한다 201222 + PUB.log.Add(string.Format("user click : pos clear ({0})", axisIndex)); + } + + private void btJogAClear_Click(object sender, EventArgs e) + { + //jog-alaram clear + PUB.mot.SetAlarmClearOn(this.axisIndex); + System.Threading.Thread.Sleep(200); + PUB.mot.SetAlarmClearOff(this.axisIndex); + PUB.log.Add(string.Format("user click : alarm clear ({0})", axisIndex)); + } + + private void btJogBrake_Click(object sender, EventArgs e) + { + //jog-brake + //var curstate = Util_DO.GetIOOutput(eDOName.BRAKE_OFF); + //Util_DO.SetBrake(!curstate); + //Pub.log.Add(string.Format("user click : set brake ({0})", axisIndex)); + } + + private void btJogSVon_Click(object sender, EventArgs e) + { + //jog-svon + var curstate = PUB.mot.IsServOn(axisIndex); + if (curstate) + { + var dlg = UTIL.MsgQ("SERVO-ON 상태를 OFF 할까요?\n\nOFF 되면 HOME-SET 상태도 OFF 됩니다"); + if (dlg != DialogResult.Yes) return; + } + PUB.mot.SetServOn((short)axisIndex, !curstate); + PUB.log.Add(string.Format("user click : servo on ({0})", axisIndex)); + } + + + private void btJogStop_Click(object sender, EventArgs e) + { + //jog-stop + PUB.mot.MoveStop("JOG", this.axisIndex); + PUB.log.Add(string.Format("user click : move stop ({0})", axisIndex)); + } + + private void btJogDown_Click(object sender, MouseEventArgs e) + { + //jog-moouse down + var bt = sender as Button; + var tag = bt.Tag.ToString(); + var vel1 = (double)this.nudJogVel.Value; + var acc1 = (double)this.nudJogAcc.Value; + + var motDir = arDev.MOT.MOTION_DIRECTION.Positive; + if (tag == "CCW") motDir = arDev.MOT.MOTION_DIRECTION.Negative; + + Boolean jogMoveForce = this.chkJogMoveForce.Checked; + if (!MOT.JOG(this.axisIndex, motDir, vel1, acc1, acc1, false, !jogMoveForce, !jogMoveForce)) + PUB.log.AddE("MOT:JOG:" + tag + ":" + PUB.mot.ErrorMessage); + + PUB.log.Add(string.Format("user click : jog start ({0}) - {1}", axisIndex, tag)); + } + + private void btJogUp_Click(object sender, MouseEventArgs e) + { + //jog-mouseup + var bt = sender as Button; + var tag = bt.Tag.ToString(); + //Pub.mot.MoveStop("JOG", this.axisIndex); //선택된 축을 멈춘다. + MOT.Stop((eAxis)this.axisIndex, "JOG"); + PUB.log.Add(string.Format("user click : jog stop ({0})", axisIndex)); + } + + #endregion + + void ChangeCurrentPosition(int Axis, NumericUpDown valueCtl) + { + valueCtl.Value = (decimal)PUB.mot.GetActPos(Axis); + } + /// + /// 상단목록에서 모션을 선택한 경우 + /// + /// + /// + private void MotAxisSelect(int axisindex, string source) + { + if (tabControl4.Tag != null && tabControl4.Tag.ToString().Equals(axisindex.ToString())) + return; + + this.tabControl4.Tag = axisindex; + + //if(this.listView1.FocusedItem == null) + //{ + // Util.MsgE("선택된 모델이 없습니다\n\n좌측 목록에서 모델을 선택 하세요"); + //} + + RefreshMotorPosition($"motaxis({source})"); + } + + private void bs_CurrentChanged_1(object sender, EventArgs e) + { + //if (pauserefreshmot == true) return; + + //RefreshMotorPosition("bs"); + //BindingData(); + } + void RefreshMotorPosition(string source) + { + if (listView1.FocusedItem == null) + { + bsPosData.Filter = "motindex=99 and PosTitle='영구없다'"; + return; + } + var lvitem = listView1.FocusedItem; lvitem.Selected = true; + var idx = int.Parse(listView1.FocusedItem.Tag.ToString()); + + + var dr = ds1.MCModel.Where(t => t.idx == idx).FirstOrDefault(); + if (dr == null) + { + UTIL.MsgE($"선택된 인덱스({idx})에 해당하는 자료가 없습니다. \n다시 시도하세요", true); + bsPosData.Filter = "motindex=99 and PosTitle='영구없다'"; + return; + } + + if (lvitem.Text != lbModelTitle.Text) + { + lbModelTitle.BackColor = Color.Red; + lbModelTitle.BackColor2 = Color.Tomato; + } + else + { + lbModelTitle.BackColor = Color.Gray; + lbModelTitle.BackColor2 = Color.FromArgb(100, 100, 100); + } + + + + + this.tabControl5.TabPages[0].Text = $"[{dr.Title}] Motion Status"; + this.tabControl1.TabPages[0].Text = $"[{dr.Title}-M{this.axisIndex}] Position Data"; + + + RtLog.AddMsg($"모션좌표값확인({dr.Title}[{dr.idx}],축:{this.axisIndex})"); + + + //var rowindex = dvMot.SelectedCells[0].RowIndex; + //var row = dvMot.Rows[rowindex]; + //var axisIndex = short.Parse(row.Cells[0].Value.ToString()); + //var axis = (eAxis)this.axisIndex; + //var axisTitle = row.Cells[1].Value.ToString(); + { + + + //위치정보 표시 + bsPosData.Filter = string.Format("pidx={0} and motindex = {1} and PosTitle not like 'XX_%'", dr.idx, this.axisIndex); + + RtLog.AddMsg($"({bsPosData.Count}) 건의 자료가 확인 됨"); + + + //(위치정보) 데이터수량이 맞지 않으면 재 생성한다 + string[] list = null; + Array val = null; + Type axType = null; + var axis = (eAxis)axisIndex; + + if (axis == eAxis.PX_PICK) axType = typeof(ePXLoc); + else if (axis == eAxis.PZ_PICK) axType = typeof(ePZLoc); + else if (axis == eAxis.Z_THETA) axType = typeof(ePTLoc); + + else if (axis == eAxis.PL_MOVE) axType = typeof(eLMLoc); + else if (axis == eAxis.PL_UPDN) axType = typeof(eLZLoc); + else if (axis == eAxis.PR_MOVE) axType = typeof(eRMLoc); + else if (axis == eAxis.PR_UPDN) axType = typeof(eRZLoc); + + if (axType == null) + { + UTIL.MsgE("지정한 축에 대한 위치정보가 지정되지 않았습니다"); + return; + } + + list = Enum.GetNames(axType); + val = Enum.GetValues(axType); + + var sb = new System.Text.StringBuilder(); + var cntI = 0; + var cntE = 0; + var cntD = 0; + + //posidx == -1인 데이터는 모두 소거한다 + var dellist = ds1.MCModel.Where(t => t.pidx == dr.idx && t.MotIndex == this.axisIndex && t.PosIndex == -1).ToList(); + if (dellist.Any()) + { + RtLog.AddMsg($"모션({axisIndex}) 에 위치정보가 -1인 데이터 ({dellist.Count})건 있으며 삭제 합니다"); + cntD += dellist.Count; + foreach (var item in dellist) + ds1.MCModel.RemoveMCModelRow(item); + + //삭제되었으니 적용처리한다 + ds1.MCModel.AcceptChanges(); + } + + //모든데이터의 체크상태를 off한다. + //작업완료후 CHK가 false 인 데이터는 삭제 처리 한다. + var alllist = this.ds1.MCModel.Where(t => t.pidx == dr.idx && t.MotIndex == this.axisIndex); + alllist.ToList().ForEach(t => t.Check = false); + ds1.MCModel.AcceptChanges(); + + //list는 각 모션의 위치정보 enum list 값이다. + for (int i = 0; i < list.Length; i++) + { + var arrTitle = list[i]; + var vv = val.GetValue(i); + var arrIndex = (byte)vv;// ((eAxis)(val.GetValue(i))); + //if (arrIndex < 50) continue; //여기는 예약된 위치값이므로 사용하지 않는다 + var targetem = Enum.Parse(axType, vv.ToString()); + + //이 값이 데이터가 없다면 추가하고, 있다면 이름을 검사해서 결과를 안내한다 + var pDr = alllist.Where(t => t.PosIndex == arrIndex).FirstOrDefault(); + if (pDr == null) + { + cntI += 1; + var newdr = this.ds1.MCModel.NewMCModelRow(); + + if (ds1.MCModel.Rows.Count == 0) newdr.idx = 1; + else newdr.idx = ds1.MCModel.Max(t => t.idx) + 1; + + newdr.pidx = dr.idx; + newdr.MotIndex = this.axisIndex; + newdr.PosIndex = (short)arrIndex; + newdr.PosTitle = arrTitle; + newdr.Position = 0.0; + newdr.Speed = 50; + newdr.SpeedAcc = 100; + newdr.Check = true; + newdr.Description = targetem.DescriptionAttr(); + newdr.Category = targetem.CategoryAttr(); + + this.ds1.MCModel.AddMCModelRow(newdr); + newdr.EndEdit(); + sb.AppendLine("항목 추가 : " + arrTitle); + } + else + { + //이름이 다르다면 추가해준다. + if (pDr.PosTitle != arrTitle) + { + sb.AppendLine("(위치)항목 변경 : " + pDr.PosTitle + " => " + arrTitle); + cntE += 1; + pDr.PosTitle = arrTitle; + } + //pDr.Description = targetem.DescriptionAttr(); + //pDr.Category = targetem.CategoryAttr(); + pDr.Check = true; + pDr.EndEdit(); + } + } + ds1.MCModel.AcceptChanges(); + + //미사용개체 삭제한다 + var NotUseList = alllist.Where(t => t.Check == false).ToList(); + if (NotUseList.Any()) + { + cntD += NotUseList.Count(); + foreach (var item in NotUseList) + ds1.MCModel.RemoveMCModelRow(item); + + //삭제한 대상이 있으니적용처리 + ds1.MCModel.AcceptChanges(); + } + + + + + + + if (cntI > 0) sb.AppendLine("추가수량 : " + cntI.ToString()); + if (cntE > 0) sb.AppendLine("변경수량 : " + cntE.ToString()); + if (cntD > 0) sb.AppendLine("삭제수량 : " + cntD.ToString()); + + //최종 확정 + this.ds1.MCModel.AcceptChanges(); + + if (sb.Length > 0) + { + UTIL.MsgI(sb.ToString()); + } + } + } + + private void chkJogMoveForce_Click(object sender, EventArgs e) + { + if (chkJogMoveForce.Checked) + { + UTIL.MsgI( + "조그 강제 이동시에는 충돌 조건을 검사하지 않습니다\n" + + "셔틀 이동 시 주변 장애물을 반드시 확인하시기 바랍니다\n" + + "'강제이동' 은 티칭작업시에만 사용하세요"); + } + } + + //private void button6_Click(object sender, EventArgs e) + //{ + // //적용 + + // this.bs.EndEdit(); + // this.bsPosData.EndEdit(); + // this.Validate(); + + // var drv = this.bs.Current as DataRowView; + // if (drv == null) return; + // var dr = drv.Row as DataSet1.MCModelRow; + + // this.Value = dr.Title; + + // if (Pub.LockModel.WaitOne(1) == true) + // { + // Pub.LockModel.Reset(); + // Pub.log.AddI("모션모델을 적용 합니다"); + // Pub.Result.mModel.ReadValue(dr.Title, this.ds1.MCModel); + // Pub.LockModel.Set(); + // if (Pub.Result.mModel.isSet) + // { + // Pub.log.AddAT("모션모델선택완료 : " + Pub.Result.mModel.Title); + // } + // else Util.MsgE("적용 실패\n\n대상 모델 명이 없습니다"); + // } + // else + // { + // Util.MsgE("모션 적용 실패\n잠시 후 다시 시도하세요"); + // } + + //} + + + + private void arDatagridView2_CellClick(object sender, DataGridViewCellEventArgs e) + { + //position click + var dv = sender as DataGridView; + var col = this.dvPosition.Columns[e.ColumnIndex]; + var colName = col.Name.ToLower(); + if (colName == "btgo") + { + if (PUB.mot.HasHomeSetOff) + { + UTIL.MsgE("모션의 홈이 완료되지 않았습니다\n메인화면에서 '장치초기화'를 진행 하세요"); + return; + } + //현재값으로 모터를 이동 + //현재위치값으로 설정 + var cell = dv.Rows[e.RowIndex].Cells["btpos"]; + var value = (double)cell.Value; + var drv = this.bsPosData.Current as DataRowView; + var drParent = drv.Row as DataSet1.MCModelRow; + + //일반 속도값을 찾는다 + //var speedDr = drParent.Speed;// this.ds1.MCModel.Where(t => t.pidx == drParent.idx && t.MotIndex == axisIndex && t.PosIndex == -1 && t.SpdIndex == (int)eAxisSpeed.Normal).FirstOrDefault(); + var speed = drParent.Speed;// speedDr.Speed;// (double)this.nudJogVel.Value; + var acc = drParent.SpeedAcc;// speedDr.SpeedAcc;// ; (double)nudAcc.Value; + + + var relative = false; + //if (ctl.motCommand == arFrame.Control.MotCommandButton.eCommand.RelativeMove) + // relative = true; + + var msg = string.Format("모션의 위치를 변경 하시겠습니까\n" + + "축 : {0}\n" + + "현재위치 : {1}\n" + + "대상위치 : {2}\n" + + "이동속도 : {3}(가속도:{4})\n" + + "이동 시 충돌 가능성이 있는지 반드시 확인 하세요", axis, PUB.mot.GetActPos(axisIndex), value, speed, acc); + + if (UTIL.MsgQ(msg) != System.Windows.Forms.DialogResult.Yes) return; + + if (!MOT.Move(axis, value, speed, acc, relative, !chkJogMoveForce.Checked, !chkJogMoveForce.Checked)) + PUB.log.AddE("MOT:MOVE_:" + axis.ToString() + ",Msg=" + PUB.mot.ErrorMessage); + + + + } + else if (colName == "btset") + { + if (PUB.mot.HasHomeSetOff) + { + UTIL.MsgE("모션의 홈이 완료되지 않았습니다\n메인화면에서 '장치초기화'를 진행 하세요"); + return; + } + + //현재위치값으로 설정 + var cell = dv.Rows[e.RowIndex].Cells["btpos"]; + var value = (double)cell.Value; + var nValue = Math.Round(PUB.mot.GetCmdPos(this.axisIndex), 4); //소수점4자리에서 반올림처리한다 210414 + + var msg1 = string.Format("모션의 설정값을 변경 하시겠습니까\n" + + "축 : {0}\n" + + "변경전 : {1}\n" + + "변경후 : {2}\n" + + "변경 후 '저장'을 눌러야 영구 기록 됩니다", this.axis, value, nValue); + + if (UTIL.MsgQ(msg1) != System.Windows.Forms.DialogResult.Yes) return; + cell.Value = nValue; + } + else if (colName == "btpos") + { + //현재값 변경 팝업 + var cell = dv.Rows[e.RowIndex].Cells[e.ColumnIndex]; + var value = (double)cell.Value; + value = PUB.ChangeValuePopup(value, "위치 입력"); + cell.Value = value; + } + else if (colName == "btspeed") + { + //현재값 변경 팝업 + var cell = dv.Rows[e.RowIndex].Cells[e.ColumnIndex]; + var value = (double)cell.Value; + + var maxvalue = PUB.system_mot.GetMaxSpeed[this.axisIndex]; + if (maxvalue == 0) maxvalue = 1000; + value = PUB.ChangeValuePopup(value, $"속도 입력(최대:{maxvalue}mm/s)"); + if(value > maxvalue) + { + UTIL.MsgE($"입력값({value})이 최대값({maxvalue})을 초과했습니다.\n다시 입력하세요"); + //cell.Value = maxvalue; + } + else + { + cell.Value = value; + } + + } + else if (colName == "btacc") + { + //현재값 변경 팝업 + var cell = dv.Rows[e.RowIndex].Cells[e.ColumnIndex]; + var value = (double)cell.Value; + + var maxvalue = PUB.system_mot.GetMaxAcc[this.axisIndex]; + if (maxvalue == 0) maxvalue = 2000; + value = PUB.ChangeValuePopup(value, $"가속도 입력(최대:{maxvalue}mm/s)"); + if (value > maxvalue) + { + UTIL.MsgE($"입력값({value})이 최대값({maxvalue})을 초과했습니다.\n다시 입력하세요"); + //cell.Value = maxvalue; + } + else + { + cell.Value = value; + } + } + else if (colName == "btdcc") + { + //현재값 변경 팝업 + var cell = dv.Rows[e.RowIndex].Cells[e.ColumnIndex]; + if (cell.Value.ToString().isEmpty()) cell.Value = "0"; + var value = (double)cell.Value; + + var maxvalue = PUB.system_mot.GetMaxAcc[this.axisIndex]; + if (maxvalue == 0) maxvalue = 2000; + value = PUB.ChangeValuePopup(value, $"감속도 입력(최대:{maxvalue}mm/s)"); + if (value > maxvalue) + { + UTIL.MsgE($"입력값({value})이 최대값({maxvalue})을 초과했습니다.\n다시 입력하세요"); + //cell.Value = maxvalue; + } + else + { + cell.Value = value; + } + } + + } + + private void linkLabel8_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + //jopgspeed + var value = (double)nudJogVel.Value; + value = PUB.ChangeValuePopup(value, "속도 입력"); + nudJogVel.Value = (decimal)value; + } + + private void linkLabel10_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + //absvalue + var value = (double)this.nudPosAbs.Value; + value = PUB.ChangeValuePopup(value, "속도 입력"); + nudPosAbs.Value = (decimal)value; + } + + private void linkLabel11_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + //reelvalu + var value = (double)nudPosRel.Value; + value = PUB.ChangeValuePopup(value, "속도 입력"); + nudPosRel.Value = (decimal)value; + } + + private void toolStripButton1_Click(object sender, EventArgs e) + { + var maxspeed = PUB.system_mot.GetMaxSpeed[this.axisIndex]; + if (maxspeed == 0) maxspeed = 1000; + + var dlg = UTIL.MsgQ($"모든 이동좌표의 속도를 일괄 변경하시겠습니까?\n최대:{maxspeed}mm/s"); + if (dlg != System.Windows.Forms.DialogResult.Yes) return; + var value = PUB.ChangeValuePopup(100.0, "일괄 속도 변경"); + + if(value > maxspeed) + { + UTIL.MsgE($"입력값({value})이 최대값({maxspeed})보다 큽니다. 다시 입력 하세요"); + return; + } + for (int i = 0; i < this.bsPosData.Count; i++) + { + this.bsPosData.Position = i; + var drv = this.bsPosData.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.MCModelRow; + dr.Speed = value; + dr.EndEdit(); + } + } + + private void toolStripButton2_Click_2(object sender, EventArgs e) + { + var maxspeed = PUB.system_mot.GetMaxAcc[this.axisIndex]; + if (maxspeed == 0) maxspeed = 2000; + + var dlg = UTIL.MsgQ($"모든 이동좌표의 가(감)속도를 일괄 변경하시겠습니까?\n최대:{maxspeed}mm/s"); + if (dlg != System.Windows.Forms.DialogResult.Yes) return; + var value = PUB.ChangeValuePopup(100.0, "일괄 가(감)속도 변경"); + + if (value > maxspeed) + { + UTIL.MsgE($"입력값({value})이 최대값({maxspeed})보다 큽니다. 다시 입력 하세요"); + return; + } + + for (int i = 0; i < this.bsPosData.Count; i++) + { + this.bsPosData.Position = i; + var drv = this.bsPosData.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.MCModelRow; + dr.SpeedAcc = value; + dr.EndEdit(); + } + } + + private void toolStripButton3_Click_1(object sender, EventArgs e) + { + var maxspeed = PUB.system_mot.GetMaxAcc[this.axisIndex]; + if (maxspeed == 0) maxspeed = 2000; + + var dlg = UTIL.MsgQ($"모든 이동좌표의 감속도를 일괄 변경하시겠습니까?\n최대:{maxspeed}mm/s"); + if (dlg != System.Windows.Forms.DialogResult.Yes) return; + var value = PUB.ChangeValuePopup(0, "일괄 감속도 변경"); + + if (value > maxspeed) + { + UTIL.MsgE($"입력값({value})이 최대값({maxspeed})보다 큽니다. 다시 입력 하세요"); + return; + } + + for (int i = 0; i < this.bsPosData.Count; i++) + { + this.bsPosData.Position = i; + var drv = this.bsPosData.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.MCModelRow; + dr.SpeedDcc = value; + dr.EndEdit(); + } + } + + + private void dvMot_SelectionChanged(object sender, EventArgs e) + { + if (dvMot.SelectedRows.Count < 1) + { + Console.WriteLine("no selecte"); + this.axisIndex = -1; + this.axis = (eAxis)axisIndex; + } + else + { + var selrow = dvMot.SelectedRows[0]; + this.axisIndex = short.Parse(selrow.Cells["dvc_axis"].Value.ToString()); + this.axis = (eAxis)axisIndex; + MotAxisSelect(this.axisIndex, "dvmot"); + Console.WriteLine($"select indx {axisIndex}"); + } + } + + private void motLinkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + //jopgspeed + var value = (double)nudJogAcc.Value; + value = PUB.ChangeValuePopup(value, "조그 가속도 입력"); + nudJogAcc.Value = (decimal)value; + } + + + private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + System.Windows.Forms.LinkLabel lv = sender as System.Windows.Forms.LinkLabel; + var speed = int.Parse(lv.Text); + nudJogVel.Value = speed; + + } + + + + private void toolStripButton6_Click(object sender, EventArgs e) + { + var f = new Dialog.fInput("모델명을 입력하세요",string.Empty); + if (f.ShowDialog() != DialogResult.OK) return; + + //지정한 이름이있는지 확인한다. + if (ds1.MCModel.Where(t => t.Title == f.ValueString).Any()) + { + UTIL.MsgE("이미 사용중인 이름 입니다\n\n" + f.ValueString); + return; + } + + var newdr = this.ds1.MCModel.NewMCModelRow();// this.bs.AddNew() as DataRowView; + newdr.Title = f.ValueString; + newdr.pidx = -1; //메인 모델은 pidx값이 -1이다 + newdr.PosIndex = -1; + newdr.idx = this.ds1.MCModel.Max(t => t.idx) + 1; //현재 인덱스에 더 크게 입력한다 + newdr.EndEdit(); + this.ds1.MCModel.AddMCModelRow(newdr); + this.ds1.MCModel.AcceptChanges(); + + //데이터를 추가 했으니 목록 추가를 해준다. + var lv = listView1.Items.Add(newdr.Title); + lv.Tag = newdr.idx; + + } + + private void toolStripButton7_Click(object sender, EventArgs e) + { + if (this.listView1.FocusedItem == null) + { + UTIL.MsgE("삭제할 대상을 선택하고 다시 시도하세요", true); + return; + } + var idx = int.Parse(listView1.FocusedItem.Tag.ToString()); + var dr = this.ds1.MCModel.Where(t => t.idx == idx).FirstOrDefault(); + if (dr == null) + { + UTIL.MsgE($"인덱스({idx}) 값에 해당하는 자료가 없습니다.\n다시 시도하세요"); + return; + } + + var dlg = UTIL.MsgQ("현재 선택된 자료를 삭제하시겠습니까?\n\n" + + $"모델명 : {dr.Title}\n" + + $"모델번호 : ({dr.idx})"); + + if (dlg != System.Windows.Forms.DialogResult.Yes) return; + + this.ds1.MCModel.RemoveMCModelRow(dr); + this.ds1.MCModel.AcceptChanges(); + this.listView1.Items.Remove(listView1.FocusedItem); + + //데이터가 있다면 첫번쨰 자료를 선택한다. + RefreshMotorPosition("delete button"); + } + + private void toolStripButton8_Click(object sender, EventArgs e) + { + //button - save + this.Validate(); + this.bsPosData.EndEdit(); + this.Validate(); + + if (PUB.PasswordCheck() == false) + { + UTIL.MsgE("Password incorrect"); + return; + } + + //기존의 데이터와 다른점을 표시해준다. + var sb = new System.Text.StringBuilder(); + + //현재 데이터 중 부모데이터가 없는 자료를 삭제한다. + List delrows = new List(); + foreach (var grpdata in this.ds1.MCModel.Where(t => t.pidx != -1).GroupBy(t => t.pidx)) + { + var pidx = grpdata.Key; + //이 데이터의 부모가 존재하는지 확인 + if (ds1.MCModel.Where(t => t.idx == pidx && t.pidx == -1).Any() == false) + { + //삭제 대상에 넣는다. + foreach (var dr in grpdata) + { + delrows.Add(dr); + } + } + } + + //빈데이터삭제 + if (delrows.Any()) + { + sb.AppendLine($"빈데이터삭제 {delrows.Count}건"); + for (int i = 0; i < delrows.Count; i++) + ds1.MCModel.RemoveMCModelRow(delrows[i]); + ds1.MCModel.AcceptChanges(); + } + + //현재데이터에는 있는데 기존에는 없는 것을 찾는다 + foreach (DataSet1.MCModelRow dr in ds1.MCModel) + { + //if (dr.RowState == DataRowState.Detached || dr.RowState == DataRowState.Deleted) continue; + var mpos = PUB.mdm.dataSet.MCModel.Where(t => t.pidx == dr.pidx && t.MotIndex == dr.MotIndex && t.PosIndex == dr.PosIndex); + if (mpos.Any() == false) + { + sb.AppendLine($"[추가] Mot({dr.MotIndex}) {dr.PosTitle}({dr.Position})"); + } + else + { + var first = mpos.First(); + if (dr.Position != first.Position || dr.PosTitle != first.PosTitle) + { + sb.AppendLine($"[변경] Mot({first.MotIndex}) {first.PosTitle}({first.Position}) => {dr.PosTitle}({dr.Position})"); + //sb.AppendLine($" => {dr.PosTitle}({dr.Position})"); + } + } + } + + //삭제건확인 + foreach (DataSet1.MCModelRow dr in PUB.mdm.dataSet.MCModel) + { + //if (dr.RowState == DataRowState.Detached || dr.RowState == DataRowState.Deleted) continue; + //서버데이터인데..나한테 존재하지 않으면 오류 처리핟. + var mpos = ds1.MCModel.Where(t => t.MotIndex == dr.MotIndex && t.PosIndex == dr.PosIndex); + if (mpos.Any() == false) + { + sb.AppendLine($"[삭제] M={dr.MotIndex},P={dr.PosIndex},T={dr.PosTitle},V={dr.Position}"); + } + } + + if (sb.Length > 0) + { + UTIL.MsgI("다음 사항이 변경 되었습니다\n" + sb.ToString()); + } + else PUB.log.AddI("변경된 모션 정보가 없습니다"); + +// if (PUB.LockModel.WaitOne(1000) ==false) + { + //PUB.LockModel.Reset(); + try + { + this.ds1.AcceptChanges(); + PUB.mdm.dataSet.MCModel.Clear(); + PUB.mdm.dataSet.MCModel.Merge(this.ds1.MCModel); + PUB.mdm.dataSet.AcceptChanges(); + PUB.mdm.SaveModelM(); + ds1.MCModel.AcceptChanges(); + + //변경된데이터를 바로 적용 합니다 + var curmodelnmae = PUB.Result.mModel.Title; + if (curmodelnmae.isEmpty()) + { + UTIL.MsgE("지정된 모델이 없어 값이 적용되지 않습니다\n작업 모델을 다시 선택하세요", true); + } + else + { + PUB.log.AddI($"모션모델을 적용 합니다({curmodelnmae})"); + PUB.Result.mModel.ReadValue(curmodelnmae); + if (PUB.Result.mModel.isSet) + { + PUB.log.AddAT("모션모델적용완료 : " + PUB.Result.mModel.Title); + } + else UTIL.MsgE($"모션모델적용실패\n\n대상 모델명({curmodelnmae})이 없습니다"); + } + + + + } + catch (Exception ex) + { + PUB.log.AddE(ex.Message); + } + finally + { + //PUB.LockModel.Set(); + } + + + + + + + } + //else Util.MsgE("모델정보 저장 실패\n잠시 후 다시 시도하세요"); + } + + private void btCopy_Click(object sender, EventArgs e) + { + if (this.listView1.FocusedItem == null) + { + UTIL.MsgE("복사할 모델을 선택하세요", true); + return; + } + + var idx = int.Parse(this.listView1.FocusedItem.Tag.ToString()); + var dr = ds1.MCModel.Where(t => t.idx == idx).FirstOrDefault();// drv.Row as DataSet1.MCModelRow; + if (dr == null) + { + UTIL.MsgE($"모델 번호({idx}) 의 자료를 찾을 수 없습니다\n\n다시 시도하세요"); + return; + } + + var dlg = UTIL.MsgQ(string.Format("다음 모델 정보를 복사하시겠습니까?\n\n모델명 : {0}", dr.Title)); + if (dlg != System.Windows.Forms.DialogResult.Yes) return; + + var newdr = this.ds1.MCModel.NewMCModelRow(); + UTIL.CopyData(dr, newdr); + + var newnameidx = 1; + while (true) + { + var newname = dr.Title + $"-복사됨({newnameidx++})-"; + if (ds1.MCModel.Where(t => t.Title == newname).Any() == false) + { + newdr.Title = newname; + break; + } + } + + newdr.idx = this.ds1.MCModel.Max(t => t.idx) + 1; + newdr.EndEdit(); + this.ds1.MCModel.AddMCModelRow(newdr); + this.ds1.MCModel.AcceptChanges(); + + //목록추가해준다. + var lv = this.listView1.Items.Add(newdr.Title); + lv.Tag = newdr.idx; + + //상세내역 복사해준다. + var childs = ds1.MCModel.Where(t => t.pidx == dr.idx).ToArray(); + foreach (var dr2 in childs) + { + var newdr2 = this.ds1.MCModel.NewMCModelRow(); + UTIL.CopyData(dr2, newdr2); //모든자료를 먼저 복사한다. + newdr2.pidx = newdr.idx; //인덱스를 바꿔준다. + newdr2.EndEdit(); + newdr2.idx = this.ds1.MCModel.Max(t => t.idx) + 1; + this.ds1.MCModel.AddMCModelRow(newdr2); + } + this.ds1.MCModel.AcceptChanges(); + PUB.log.Add($"{dr.Title} 모델 복사 => {newdr.Title}"); + } + + private void toolStripButton10_Click(object sender, EventArgs e) + { + if (PUB.sm.Step == eSMStep.RUN || PUB.sm.Step == eSMStep.WAITSTART || PUB.sm.Step == eSMStep.PAUSE) + { + UTIL.MsgE("현재 동작(대기) 중이므로 모델을 변경 할 수 없습니다"); + return; + } + //select + this.Validate(); + if (listView1.FocusedItem == null) return; + if (hasChanged()) + { + UTIL.MsgE("저장되지 않은 사항이 있어 모델을 선택할 수 없습니다", true); + return; + } + + this.Value = listView1.FocusedItem.Text; + DialogResult = System.Windows.Forms.DialogResult.OK; + } + + private void toolStripButton11_Click(object sender, EventArgs e) + { + + } + + private void 그룹설정ToolStripMenuItem_Click(object sender, EventArgs e) + { + var f = new Dialog.Model_Motion_Desc(this.ds1); + f.ShowDialog(); + } + + private void toolStripButton11_ButtonClick(object sender, EventArgs e) + { + if (this.listView1.FocusedItem == null) + { + UTIL.MsgE("모델을 선택하세요", true); + return; + } + var idx = int.Parse(listView1.FocusedItem.Tag.ToString()); + var dr = this.ds1.MCModel.Where(t => t.idx == idx).FirstOrDefault(); + if (dr == null) + { + UTIL.MsgE($"인덱스({idx}) 에 해당하는 자료가 없습니다\n\n다시 시도하세요", true); + return; + } + + using (var f = new Dialog.Motion_MoveToGroup(this.ds1, dr.idx)) + f.ShowDialog(); + } + + private void btJogLeft_Click(object sender, EventArgs e) + { + + } + + private void dvPosition_DataError(object sender, DataGridViewDataErrorEventArgs e) + { + + } + + private void listView1_SelectedIndexChanged(object sender, EventArgs e) + { + if (listView1.FocusedItem == null) + { + //Util.MsgE("모델을 다시 선택하세요"); + return; + } + RefreshMotorPosition("listview selinde"); + } + + private void btEdit_Click(object sender, EventArgs e) + { + if (this.listView1.FocusedItem == null) + { + UTIL.MsgE("변경할 대상을 선택하고 다시 시도하세요", true); + return; + } + var idx = int.Parse(listView1.FocusedItem.Tag.ToString()); + var dr = this.ds1.MCModel.Where(t => t.idx == idx).FirstOrDefault(); + if (dr == null) + { + UTIL.MsgE($"인덱스({idx}) 값에 해당하는 자료가 없습니다.\n다시 시도하세요"); + return; + } + + var f = new Dialog.fTouchKeyFull("모델명 변경", dr.Title); + if (f.ShowDialog() != DialogResult.OK) return; + + var valstr = f.tbInput.Text.Trim(); + if (dr.Title.Equals(valstr)) + { + UTIL.MsgE("이름이 변경되지 않았습니다", true); + return; + } + + if (ds1.MCModel.Where(t => t.Title == valstr).Any()) + { + UTIL.MsgE("이미 존재하는 이름 입니다", true); + return; + } + + var dlg = UTIL.MsgQ("현재 선택된 모델의 이름을 변경 하시겠습니까?\n\n" + + $"변경전 : {dr.Title}\n" + + $"변경후 : {valstr}"); + + if (dlg != System.Windows.Forms.DialogResult.Yes) return; + + dr.Title = valstr; + dr.EndEdit(); + this.ds1.MCModel.AcceptChanges(); + + this.listView1.FocusedItem.SubItems[0].Text = valstr; + + RefreshMotorPosition("edit button"); + } + } +} + diff --git a/Handler/Project/Dialog/Model_Motion.resx b/Handler/Project/Dialog/Model_Motion.resx new file mode 100644 index 0000000..b83b890 --- /dev/null +++ b/Handler/Project/Dialog/Model_Motion.resx @@ -0,0 +1,2093 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + 292, 17 + + + 402, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 + wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0 + v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg + UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA + Iu/O/9T+11gVGSSd+C+b9vW/bvA83AYYZt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPu + lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w + 5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f + Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+ + 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 + n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI + N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f + oAc0QjgAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// + h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B + twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA + kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG + WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9 + 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHpSURBVDhPlZBNiFJRGIa/VRRUEHF13NxoEUUTDDKINwh1 + /MHAv9qJ7TOjaFO0akJ06S5k1kEtDKbSnCwm8Y8JlJkxciqCyX2Lpnuv3p/F4JtXzizkxuA8q/d8vM93 + DodmYfRZOKFsLNxmx9lQW4u80lq8Z+ThxpWQ0pjvGllr8OflOj/bMqW18FVpzVeU+sWytn0Dwwb/aFCz + iYPq2QSrHM6weWlZ+5KA/uM+9N0nULdCED+cVn/XuJOsYmbYvjw3vrWqNC5A245C/5VB80UU3eIt7Nbu + QO0sQfp0HNJHWmHK/xnW+WW1exPNlzHouo7RaISttwlo3+/ib4W+7ZXpHKuakZtznFy1VsLhMDqdDjRN + Q6/XQ+15CPrPh5DKNJDek8Dq06jrNn6wfqYYi8WQTCaRy+VQKBRQXlkay4+xs0b70hptiiV6yhQz0Wh0 + IguCAK/Xi0gkAmUzBLlqg1w5hb0S8axq5kB2Op3weDywWCzGk5/tvBvfXKKrUpG64mtKsfo08Xgc2Wx2 + IrvdbnAcB2Mul+ia9IYqRsYrOvZnla4beYpgMIhMJmOSDxBXKcCiGZ/Ph3Q6DYfDAZfLZZIPJZVKod/v + w263IxAIHE02MBa0223k8/nJh7Hx7Pj9/gfGs61W69FlIvoH9UQK66qEeO0AAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHpSURBVDhPlZBNiFJRGIa/VRRUEHF13NxoEUUTDDKINwh1 + /MHAv9qJ7TOjaFO0akJ06S5k1kEtDKbSnCwm8Y8JlJkxciqCyX2Lpnuv3p/F4JtXzizkxuA8q/d8vM93 + DodmYfRZOKFsLNxmx9lQW4u80lq8Z+ThxpWQ0pjvGllr8OflOj/bMqW18FVpzVeU+sWytn0Dwwb/aFCz + iYPq2QSrHM6weWlZ+5KA/uM+9N0nULdCED+cVn/XuJOsYmbYvjw3vrWqNC5A245C/5VB80UU3eIt7Nbu + QO0sQfp0HNJHWmHK/xnW+WW1exPNlzHouo7RaISttwlo3+/ib4W+7ZXpHKuakZtznFy1VsLhMDqdDjRN + Q6/XQ+15CPrPh5DKNJDek8Dq06jrNn6wfqYYi8WQTCaRy+VQKBRQXlkay4+xs0b70hptiiV6yhQz0Wh0 + IguCAK/Xi0gkAmUzBLlqg1w5hb0S8axq5kB2Op3weDywWCzGk5/tvBvfXKKrUpG64mtKsfo08Xgc2Wx2 + IrvdbnAcB2Mul+ia9IYqRsYrOvZnla4beYpgMIhMJmOSDxBXKcCiGZ/Ph3Q6DYfDAZfLZZIPJZVKod/v + w263IxAIHE02MBa0223k8/nJh7Hx7Pj9/gfGs61W69FlIvoH9UQK66qEeO0AAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHpSURBVDhPlZBNiFJRGIa/VRRUEHF13NxoEUUTDDKINwh1 + /MHAv9qJ7TOjaFO0akJ06S5k1kEtDKbSnCwm8Y8JlJkxciqCyX2Lpnuv3p/F4JtXzizkxuA8q/d8vM93 + DodmYfRZOKFsLNxmx9lQW4u80lq8Z+ThxpWQ0pjvGllr8OflOj/bMqW18FVpzVeU+sWytn0Dwwb/aFCz + iYPq2QSrHM6weWlZ+5KA/uM+9N0nULdCED+cVn/XuJOsYmbYvjw3vrWqNC5A245C/5VB80UU3eIt7Nbu + QO0sQfp0HNJHWmHK/xnW+WW1exPNlzHouo7RaISttwlo3+/ib4W+7ZXpHKuakZtznFy1VsLhMDqdDjRN + Q6/XQ+15CPrPh5DKNJDek8Dq06jrNn6wfqYYi8WQTCaRy+VQKBRQXlkay4+xs0b70hptiiV6yhQz0Wh0 + IguCAK/Xi0gkAmUzBLlqg1w5hb0S8axq5kB2Op3weDywWCzGk5/tvBvfXKKrUpG64mtKsfo08Xgc2Wx2 + IrvdbnAcB2Mul+ia9IYqRsYrOvZnla4beYpgMIhMJmOSDxBXKcCiGZ/Ph3Q6DYfDAZfLZZIPJZVKod/v + w263IxAIHE02MBa0223k8/nJh7Hx7Pj9/gfGs61W69FlIvoH9UQK66qEeO0AAAAASUVORK5CYII= + + + + 195, 17 + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + 88, 17 + + + 468, 17 + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABGdBTUEAALGPC/xhBQAAAwFJREFUWEft + ldtOE1EUhnkXfQyv9DVUhGJUiIlIENoarDUcDIkHqEZDh85AI+lwIyEQmWCiRfFAIARbUFIKRlCkHqAx + 0Qvpcv7pnrHAps6UmdaLLvIluzvsWV/W2oeKctgVnY0SmcF/XSJ3Z5CaCwRr/R0S3XCHr7LU5gLJE/E0 + l0nlowESLK9v0vtUuiCwFt8I+OUfliTNCqIKvMRWwDfi0ylrkk4I6m3dvQa/8V1LkqUQBKYlSyUITEmW + UhD8U7LUgiCv5P8gCGJTG9p9y7T+hhOC+5FPEBxI0K6LmpdHx7Lg1JPPhmBAGNUS6K2zCtYGHyjcPDqW + BYtNWfCglAUPiilB3gl0ktzcpgWLFWVBs/FmdZF6ojI1RNqpJuTVaJDbqe5eGymTs6UT/LSZIv9wgC5G + 2qg72kuDsSEaXVI0MO5S5y4MtNJluYteT68UJhhdLwx5Pkln+n0UeCaSsvyYlBU+Y8vj1D0h0tk+H/la + 7hangqhcbfgK9c0McqV49M3IVBP00vFg82Gmlg0nBNFWrXIckXyg5S7R84qpZcNuQRwI7Dm0jiexm+dr + L4wx1pwLt6Qrg5eOMT3792DrWEQ9EKEdEvsR/7JAGfVv4es7Y06tYkatYj/Ts7+CuErk+NAOkdwq6cx/ + fctWkDbW5+XYQ6qRPKtMz37B06KXRhKKkXBpM0mZTIZmN+aMOb1yiIUcOTC6NEZVvU2/mJ4zgkiiJ1z8 + ltDmITSXiuWVAyPq2lOC+yfTs38Pnh/o2NNiVBGhiyFy25qL1mLRwRYH1Seta2LvIdErieBVTufWU2Hb + 1esVmZ79grG1RaqPtHKvmcT35L6VA1hTG/alT/Q0H2V69gsirg3fKfCiFn67JM9LppYNJwTXt1JUF/Zp + zxdPhIek/m9VyL1Veb/xEFPLBgRzgaAd1N/sJpfg1Z6vfK/Ko+Q43Y4K29Uhz9ZJoekI0ypO4OHH24rn + CxI4obgjAcaYw55DW/dUrpiBt7Va9Ei4PnAJA3X8wRVyizsOhBEVFX8AAjiR3dGw+TcAAAAASUVORK5C + YII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAD1SURBVFhH7dAxCsJAEAXQ3E4EbbXRCyiewVaIvZ3oAWy9 + ggYUi5BOsLS1TZM1A2Mju9kkf9Yizoff7cw8NupsequTQTtYJxdeJx868HgVrUvz4+W2GMbnhFfKRgJ4 + yHIzKpH9OLnyWrlIAI/3IhxSClgLSY/RznepFeIqzXyAXiQ9RkLz083NLPaZFWPrN7ASKQFMn7mZlMhZ + zZ+0AZ1ICSAdbYKkGV+ZJwekNv1JV4MBqRLIoEAqigwOpCJIcaCvNkRVaYZ5ONAXBaJRIBoFolEgGgWi + USAaBaJRIBoFoqH9bcq83wD5VLso8C+AocunupYoegNn74NeMo6A3wAAAABJRU5ErkJggg== + + + + 81 + + + + AAABAAYAAAAAAAEAIAASGgAAZgAAAICAAAABACAAKAgBAHgaAABAQAAAAQAgAChCAACgIgEAMDAAAAEA + IACoJQAAyGQBACAgAAABACAAqBAAAHCKAQAQEAAAAQAgAGgEAAAYmwEAiVBORw0KGgoAAAANSUhEUgAA + AQAAAAEACAYAAABccqhmAAAZ2UlEQVR42u3da4xu11kf8P+z1r68l5l3Zs7xuXh87OBgk8ZBWEGBGEs0 + caXKBiOiVHI+kMQNbYh6+YIqhBFVq1MqkIxQhVS1KCIo1MT94KhYIBAOaXGDRC7UAoIUm8RxjBOfm89l + 5szMO++7916Xfhh/IlnPPsnMmTMz6/+Tzqe99Mze+333f87WemYtAR1ZH/v4EwMAtTZmOt6OPWWapz/0 + X5tbfS10c5hbfQJEdOswAIgyxgAgyhgDgChjDACijDEAiDLGACDKmNzqE6Dv7MO/9QsVgCJ13FhTlFXx + gFbDGnNaRE5oY6JEtQ8gRlwJHhe1MV3bfTF475Qh7vf+9W+0+3f36EYVuy9BN0kNYKgcHwJ4v1pBcB8E + 9+hDen8HvAzEF3vGfBXATDk+A8AAOID4CkCUMQYAUcYYAEQZYwAQZYwBQJQxBgBRxhgARBljI9BN8OHf + /sVVAAup49aYY6U1/06rUZbFGWPM8dRxY8TcceL4Ga1GXRa2Kgq7m2tpnfNN57w25tzlq6+HEEPqeAjh + ate517UanQ//xYdwTRmy9Xs/9+vnd3Mt9O3YCHRzCADtwSugBMSbFgFMlB9hjIi62o8RI9bs7j95Rowx + Ij3fE5kA6QDAThNQ3/UWPfeMv6xuAr4CEGWMAUCUMQYAUcYYAEQZYwAQZYwBQJQxTq38A49/4heXAVSp + 49aYcWHt/VqNqrC3GyOLqePGmIVRXat/y19Ye8wYk5w6ExFZWRwv6DWMFHZXbQBw3sP5oC4asrY53Yox + vbBICGHLea/N8WO7aZ4NIWyla8TN1vkLPef6ZR/CVBnSPvXRX1/f1Q05YtgH8O1OQ51/x50AfkErYIw5 + VVgzTh0vrLUnVibHtRp1WWK3D+9eKKxFYa36i+L248uL2nHn/aTp3Ko25sKVa7c775MNRw5hCvhLPaf7 + GwC+pRzfALC+LzfukOArAFHGGABEGWMAEGWMAUCUMQYAUcYYAEQZYwAQZexINQI9/ttPvBs7f0f/HVkj + byms+YBWYzwcHLPWJP/OviqLwW2TyV1ajbKw1hiTvLcigDVGn+SXG9iy45CIAKBvQAQfgteGhBBi57y6 + MMmVjY1vtp2bJ3+GD810NlcbkpwPz/gQX1OGbD71c09+af/u3s111BqBBgDGyvFlAOoqOhAsiUiyE1BE + irKw6kIcZWFhdrkQx1EiwE7qKQqrdz2FIEDP91VEbhOR9BZlghbAqOd0lwFcUY53N/l27St+S4kyxgAg + yhgDgChjDACijDEAiDLGACDK2L5MNT/2zGO9P2th++47oEzzGDETgblDqzEoy/tFJLlIRmHNalUU/1Sr + UdfVyBpTpGtYuzQeaVONsNbAyFGZxT8YQozwPqhjrk+3p9qaAj4E1zTttlajdf5PXQjJhUdijFvztv2y + ViMinAsxbChD3Fv+fnSu55Lj2bNn9/o2fpv96gMQ9P9v4wEoTTwA3g5AXUWnrsrlwqYf3kFVFSeWJz2r + 6FgIH94Dx4jA9GxydNvSohrMMUY4749pYy5f3/jAvO2Sc/3OBzdv2+s9p/ssgJeU45sAfv8GLjvewJhd + 4SsAUcYYAEQZYwAQZYwBQJQxBgBRxhgARBljABBlrHfC+2Mf/5hBT1D4wbGHAZSp40bM2wTyoFZjaTy6 + yxhJzuHXZbU4GQ9PazXKorBGWUdDRKSwVr0W9gAcbbFnYRLnQ1B3OYoxds6pC5NsTGcXm67dTNYI0V2f + bn9TPU/Ez4cYvqoM6V55dfBcz+WG/3v2rHrBN9oI1PdUHIeynRZ2dtP5Qa2AEVk2kl4lp7C2HFSVuhBH + YQ0fYFL1fT/KQv8FEWOE1ikKANvz9kTnzHL6JIKHvvsUsLPD0VXleIv+51LQ00zEVwCijDEAiDLGACDK + GAOAKGMMAKKMMQCIMiYf+eRZPQT89HQEVrUhRVH8M0i6D2BQVvcOqvJHtRqLo+GCEUmeS12WxcJoqE4D + WmP6lp8n2pUYAR/0hUm2tmdN03XJ/QlCjGFjOtvSajRd+5fzrn05fSLoOhf/V8/pnjd2eEkbUECfv0eE + vBfAh7UxAvlxxHRPwXhQ2ztOHFPnTuuy5Bw+HXgiO/0mmuXFcQ0g+csqxojlhbG2+A3OX7n2aNN2WsOR + Mybc33O6n8LO4iRJfAUgyhgDgChjDACijDEAiDLGACDKGAOAKGMMAKKMFdj5u2LNn0Hf5AAB8UEoC4JM + m+a+1y5deY9WY1BXJwwkuR7AoCrLpYXRUKtRclMPuslijOi8uh4Irm9tz7TNRQKinzftZa1G03WfC4gv + KkM6AH/Rc7oX0fN878nT8s9/94kHoSwuYsU+YEQe02qMB/WdIukVgRYGdXVieaI2T1RlyS256KYKMUJ5 + tgEAl9c3NrfmTfLBizG66bz5Vs/P+bSP/ovKEPc/PvLk53d7PXwFIMoYA4AoYwwAoowxAIgyxgAgyhgD + gChjN7ovQJ+tnlqX0NNLEGNsoPQS+BgnTded0WugEmVREbOzMYjVaoi2swgdahFADH0bg3gflI1BYoyh + dZ06t+5jPBdj3FBqdAC+0XO6l7DzXCVPdS/uyYH5rj/+O0+8C8Agdbyw5oeskQ9qNQZldZcRSdYY1lV5 + 6tjyklajrkpYw/8YHUU+BDStPod/6dr69ZkyKMQ4n3etuquPD/Fp58PfKkPmT/3LJ1+41fcD4CsAUdYY + AEQZYwAQZYwBQJQxBgBRxhgARBljABBlbK8agfbCKwC0Jp0LAP5OK+BDeGuQdC/BvOtWL1xbf0SrUVp7 + 2ogkFx4prLXLC+MFtUZphb0Ee8uHgK7zahfP+tZ0y/n0ah0hxlnn/UWtRtt1z7ngz6eOx4g5+pt4XgNw + Xbuc/btzugPTCLQXPvLJJ+4BkHx4rTH3GmM+qtWobHGPEUkuPFKXZXn78ZVjWo1BXUqhNxzSd8l5j3nT + qQFw4eratabrtCaezda7r2s1Qgif8CG8rAyZ/e7PPqnWOEz4a4ooYwwAoowxAIgyxgAgyhgDgChjDACi + jB2kPoC90EHpJYjRzGKwa1qBEMs2iknO03qxpuugTkcZExCCMsUqQNHTJyCCI7PJSYwRUV+HAy4EaHfV + +RD77rt3hfdOkp9djKGNMaqff4yYAUFb8ENfUOCQORrfsBv0vn//R0sA3qGNqYbu50Xw9tRxW7b1eOWN + O7UaZT0vjXXJICqs4PTxkXqu40GNujoa+dy0DtN5o465eHUbTunzCb7wXTNQH77p2slv+a5K/qAY8VI7 + K36z53S/8ge/+lPXkQm+AhBljAFAlDEGAFHGGABEGWMAEGWMAUCUMQYAUcYOUB9AVM/lfb/02SVjw1u0 + MUVpH4JgOXm8KEbD4WhVqzGZDH/UFuZ46rixwdbDVl0QBDI3EKdcjwPsBb2EmQJIz52LCCZjvU+grgqU + xe7WJeicR9Pqm9BsTB2i2ulTI4ax/oP87VD70mIREQdBK9HMqq3glSYuF65ubMz+Uqsxm22fd85tp88D + 667zz/fcttee/dVH1nEIHKZOkzGA7+sZ85MA7kgdFJHKWrus/pDx0tJgUCe3KDPGoKoq9SR8aBBj+qEJ + scH6XO81ad0WXJgnjxsRlGWt1jBWdh8A3mPWs5vO2kaDoARAYSpUhd74tDx4K4ykr0ekEGtq9WLasl0K + IZ0R83mzOJ22K1oNEVkHoHUCngPwas9tuwxgHYcAXwGIMsYAIMoYA4AoYwwAoowxAIgyxgAgytieTAM+ + 9tgz6vHwAxMLI+rP8v5zA8R0X0JR2kURo04m28KUIpKcKrLWGmut2m9gjOx6IQ4BtEsBIBD9dsBIBSPp + 6UYRIEY9v0MAfOhZiaNHCNL7c0RK9TeJkar3enfumrqGyg3RPjtjBH2fv7XWxBiVRWViiSh6U4Ng8th/ + +t9TZUQMzusLJITozNc21A1EPv3pD9zgXUnbqz6AvsnmHwDwY9qAsnb/FkByjraqqmrcsyPP6VOnFqqy + TJ6LMQZlVeJmM6bu+a/VCCeK96gjQmgQlF6CGB2ubag9Lbi6dg0uXN3VtRRmGaW9XR1zeuFH1AfcSAFj + 9J6FvdDXn1HXdTmZTI5rY9quO671ErRtd8+lS5feqdWYbk232rbVegnWAPy3nsv5AoCv9YzZ9Q5DfAUg + yhgDgChjDACijDEAiDLGACDKGAOAKGMMAKKMyXvPPq+GwIrvTovyN/YAYK38Yyg9BfVgcHJQD+7Waiws + jH5MjBmmf4Y1Va1P9I5Ho8qadKOHiMDYw5F5MXpEKOtfxICZ0xcV8WGKEGf6z+k5DysjWKP/Lf+wuB2Q + 9H0VGCj9WQeKD0Fd3CR4H6fb29ocP9qmbb33yQ8vhjDb2tr+glZj3sxfbebzN5Qhzvv451qNCJxbs+VF + bUyB/v8FnAJwvzpC8C8ADFKHjZFBVVdq99Sx48cXiyL9dBpjYO3h+BLtBREL0fqrBBhX36fWiNEhRr1X + JPa02Al6mziPFNuzZRuslaqq1K4m732tNRM55xfbzv0TrUbbNVMI5sqQOYC+HYwcAC1E+ApAlDMGAFHG + GABEGWMAEGWMAUCUMQYAUcYYAEQZK07gshoC3k4KQNQGHIE1UMJEYER6ltkROVDbFB0JIsUNrMRDN4O6 + HtTO4kc9v3zFCNSmBAPrep7L2Pt8838ARBljABBljAFAlDEGAFHGGABEGWMAEGWMAUCUsQL9mwtcAPDX + PWM+AWVBkBDDSte16u4S165efY+IJFeeMNYWZVkOtRrj8biyNr2mgIhktaYAffe89+qCIN77sDWdqrv6 + uK6bB++Tu7qEGLe7rv2cViPGeAE7G4gkfwz6n8sL6Hm+96X35v3/8Y/PAHi7Nsaa8pcBJHdtKctyOBwO + jmk1VldXJ1VVJYPIGIO6vvk71NDh1TQN9J2BWnfu/AV1IY75bLbWdZ22FNNVH7pf6zmVl579lUdfv9nX + y1cAoowxAIgyxgAgyhgDgChjDACijDEAiDLGACDK2H6tFnEewKWeMV+E0pfQOndbu7n1Nq3A9tdf+Vci + ktzFyBgzLMtyVatx6tSphcFgoPYSjEZqPxLdItvbM3UOfz6fu0uXLm1pNbrOXQghJOfwY4znOu9+Sz2R + iK8KcEUdAXXTD6C/QW9P7EsAPPsrjwZA2+cKANBpB9/3H56rAKgfntmpkezAMsZ4Y4y6G1bcoY3Yj1tG + 35OodvHFGKP3Xv0AnXM+hOCUIZ1zXv0eAtj4g//8yMatvhs3gq8ARBljABBljAFAlDEGAFHGGABEGWMA + EGXsMO0aMQdwsWfMZwGsKMfHIcS71B8y2/4R59rkugRGTDGfzZa1GvVgIEVRJHsaRARVpe7pkJ22bdUp + POdcbOZzdQqv67r1ENNTeK5zV0OI/6/nVL4JYFs5vob+72HfHP+BkdVmPD/9y3+yAOCt2pjFhfLnRbTF + S2RkpLhPq3Hs+G12OBol760xBsvLS7f6dhwo6+vX1Sae2fZ2vHb1itocE6J7EYjJhzdGvLS51f1mz6l8 + 4w9/7Sf65vmPDL4CEGWMAUCUMQYAUcYYAEQZYwAQZYwBQJQxBgBRxo5UH8DTz/31uwEsJi9WcLeY+DNa + jbqqzxhj0jsUGVPWdX2bVuOV89uytpVe3sD5iAtr6uYyGI0XUNXphUdEBCsry2oNkb35ePX1EYC1tXV1 + TNvMsD3Vp9ZvX6lR2PT5riyU+P7VkXoiTdNcCSEkb3wIYbtpG3WzjRjkf8aIV5Uhmx985J1f2sXtPFAO + UyfgjRgAGKcOimBijZzUCgxrOyysLVPHrTHFcFiqT1ZVAEZZ/0QQ0LWteiGudrBFuu9lrx7uvdC3nZZz + rvd6BQWM8h/SqgAmI/2+z8QXXmkmct4PndM/fx8xiTH9HULPwjWHDV8BiDLGACDKGAOAKGMMAKKMMQCI + MsYAIMrYvkwDPvPMM0BPz4GbfP8d2vkYaybGpDf9AIBhXd8vgoXUcWvNalmYiVpjUA2tMcrGIGKrUr9t + p46NMKyTM4lwPqAsrFqj8RZd1JanF2xtXFdr2LJEUfR8xD3bHDjv4Dp95qsUB0i60HhscftkUa2xenyI + wqZ/H03GJYa1fi3W1FUIMXljfQi2LKy+qIgL93kfkovKxIitZ/7P34y0GiHEc8EHbV8A97Uv/vA56OLZ + szd/qne/+gAE/f/beABKEw+AtwN4v1agrovlwqYf3kFdFidWFha0GkVhYXY5x74y0XcO8iFifUtvBPrK + q+t4/Y1p8ngIEX9/7rJaY7SwiOFYvdzeAJhtb2G6tamOufvUGMak79mZk2O84251+h3LCzWs2e0XfqjN + 3yPECOf8MW3M5bWtD8ybdOI5H9ysafTkBZ4F8JJyfBPA79/ABd30XWj4CkCUMQYAUcYYAEQZYwAQZYwB + QJQxBgBRxhgARBnrnXj9+AsvGPQExdI1+zCAZOeLiLxNBA9qNVaWRndpDTiDulxcXBie1mpUhbWi/KG8 + MSKFNeq17Mff2UcA3gd1zLz1aLv0mBjR20vw+pUZLlzTx/Q5fazGnbfpfQ3LCzW021aVBoNKb3yy1uzL + 6jR9i5s4H0JQBsUQY+u8ukHJ5tbs4rzpks0TPgS3dn37m/p54vMxxq8qQ7pT5fpzPZcbHnroIfWCb7QR + qO+zOQ5A2+vqTgA/qBUwRpaNkeS3pLCmHNZlrV6MNQdqoYwUefNcNQtDAyjPXYxApa+PgfVpi8LoQdNn + cWhxcmXQc64VDsFtB9Af8GXPBxNjhFWazQBgNmtOGCPLyRoQD0DtSAXwLQBXleMt+p9LQU8zEV8BiDLG + ACDKGAOAKGMMAKKMMQCIMsYAIMpY8cnnn1dDoLiG04iyqlYx+EdQ+gDqujgzqEp1Mnk0qEtjJHkuVVXY + /im+QzIXtRdkZ+5cMxmVOLkyvMGC6Rp9Pyen2w5I71RiVRU2KtNvIUTTLnj1g2lad6ZpupkypLvQTu7X + TzWe/+Tzz1/ShhTQ5+8hAe8F8GF1jMiPQ+kpWBgN7JnTK+rc6aAqDsUc/kEhAEY9K+Tce2YJ955ZutWn + eqSI9PdwrEzGNYBkz0qMEcuTkbpE0rlLa4+2rdMajlyE6AEQ8SnsLE6SxFcAoowxAIgyxgAgyhgDgChj + DACijDEAiDLGACDKWIGdvyvW/Bn0TQ4QYnwQSiPQdNbc99r5q+/Ragzr8oSR9HoAdV2WS4tDtXmiKix7 + CeimijFCn54Hrm/OZo2yuUiI0c+aVt3VZd64z4UYX1SGdAD+oud0L6Ln+S5+9qGH+laMuPjmv6SnP/NX + QyiNQPOmq9rOvVOr4X1YMiLJGhGQxbG+MEVEZk1ptO8idnZl0sybzk23Gy0A3HTWaFuHIYT4dR/iXylD + 3Acf/uG/2e318BWAKGMMAKKMMQCIMsYAIMoYA4AoYwwAoozd6L4AfbZ6al1CTy9BjLGJSi+BD2HStN2Z + nhqVkfSiIiIiZWHVHSrECKcSj6gIIPZM4XXO+6hsDBJiDG3n1Ll1H8K5GGNymi/G2AH4Rs/pXsLOc5Xi + 9uKeHJjv+lN/8sK7ACQn+svC/JA15oNajWFd3WVEkjWGg6o8fWKirpAxqEv0bB5Eh5QPAfP09DwA4OLl + jeuzeavN4c9nTavu6uNDeLpz4W+VIfPHf+JdL9zq+wHwFYAoawwAoowxAIgyxgAgyhgDgChjDACijDEA + iDK2V41Ae+EVAFqTzgUAf6cVcM6/VZQ+AMzb1QtvXH9Eq1GW5rSIJBceKQtrlyfjBa1GVVphL8He8iGg + 7bzaxbO+Md3qnE+u1hFjnHVdUNe2mDfdc53z55Uac/Q38bwG4Lp2Oft353QHphFoL3zqj1+4B0Dy4S1K + e6+15qNajaq09xgjyV1b6qosV08uH9NqDOtSikJtOKTvknMes6ZTA+D8G+vXmlZZiSfEzbbzX9dqeB8+ + 4Tr/sjJk9qFH36XWOEz4a4ooYwwAoowxAIgyxgAgyhgDgChjDACijB2kPoC90EHvJZiiZ48DACMAyWnA + iFg7HyqtQOt8FWJU7q3AWqPOExrBkdnkJMaInnU44H3wO0t2fGfOB+d8UBfiiDFeBNAoQzbR//lPoW+m + 0eEIORrfsD301Ge+dBpKL0Fli9XCFP9Gq2GMeYeInEwdLwpr7zi5fJtWYzyqZVAVR+LzmbcuTrcbNQLO + vbF+xelNPG8EH76i1XDB/fc2uPPKkNnjD7+7LwCywlcAoowxAIgyxgAgyhgDgChjDACijDEAiDLGACDK + 2FFrBNoLG9hpBkmZAfgdrUAEVmNMNxOFEMfrG1N1YZLN6fwuYyTZKyAisrQwWNRq1FVpqtLuqpeg7Xxs + 2i5oY65vzTfV3XRCvOK9VzfTCCE+F6Jy3yM2AWhz/MDOojLaZ3dgFuI4KBgA/8DjD797u2dIbzfZU5/5 + 8hKAOnW8NG65bdo7tRpiTaWtTGSMmKowY62GNUZ2GwDO+Tibt2oAXF7b3A4hJsfEGC/GviaeiD/sgqwr + Q5rHH75fW2WHvgd8BSDKGAOAKGMMAKKMMQCIMsYAIMoYA4AoY5wGvDkitNUtgACgb7pxCzs9CSkmxjjR + CoQQKu/Drj7jEIKLMbY9wzbevCbtWvquN/Tcs54lReh7cSQWnDiKnvrMlxehLExiBcNK4i9pNcTKfWLk + nt2cRwzx5eDDi9qYLsqTPspMGTJ7/OH7N/fjvtF3h68ARBljABBljAFAlDEGAFHGGABEGWMAEGWMAUCU + MTYCHVwN9AUs5gCe7anxBQAntAHaQh5vuoL+3XTWADjluAMdSGwEOsKe+ewLAygLkwBA27m+AGg+9JMP + NKAjia8ARBljABBljAFAlDEGAFHGGABEGWMAEGWMAUCUsf8PzNlsT7yleHcAAAAASUVORK5CYIIoAAAA + gAAAAAABAAABACAAAAAAAAAAAQBhCgAAYQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMu6oEzLuqD8y7qg/Mu6oPzLuqD8i2pA7ItqQO + yLakDsi2pA7ItqQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAMy7qgTMu6oPzLuqD8y7qg/Mu6oPyLakDsi2pA7ItqQOyLakDsi2pAQAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLuqBMy7qg/Mu6oPzLuqD8y7qg/ItqQO + yLakDsi2pA7ItqQOyLakBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADMu6oEzLuqD8y7qg/Mu6oPzLuqD8i2pA7ItqQOyLakDsi2pA7ItqQEAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADRuaIN0bmiENG5ohDRuaIQ0LuqQ9C7q2/Qu6tv0Lurb9G9rH/SwK2s0sCtrNLArazSwK2s + 0sCtrNLArazSwK2s0sCtrNC9q37Pu6puz7uqbs+7qm7Pu6lC0bmiENG5ohDRuaIQ0bmiDQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANG5ohLRuaIW0bmiFtG5ohbQu6pb + 0Lurl9C7q5fQu6uX0b2srNLAreXSwK3l0sCt5dLAreXSwK3l0sCt5dLAreXSwK3l0L2rq8+7qpbPu6qW + z7uqls+7qVrRuaIW0bmiFtG5ohbRuaISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA0bmiEtG5ohbRuaIW0bmiFtC7qlvQu6uX0Lurl9C7q5fRvays0sCt5dLAreXSwK3l + 0sCt5dLAreXSwK3l0sCt5dLAreXQvaurz7uqls+7qpbPu6qWz7upWtG5ohbRuaIW0bmiFtG5ohIAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIS0bmiFtG5ohbRuaIW + 0LuqW9C7q5fQu6uX0Lurl9G9rKzSwK3l0sCt5dLAreXSwK3l0sCt5dLAreXSwK3l0sCt5dC9q6vPu6qW + z7uqls+7qpbPu6la0bmiFtG5ohbRuaIW0bmiEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANG5ogPRuaIK0bmiCtG5ogrRuqUO + 0LyrRNC8q0TQvKtE0LyrRNK/rGzTv6x207+sdtO/rHbYx7eg28y9xdvMvcXbzL3F3c7A0eHVxvHh1cbx + 4dXG8eHVxvHh1cbx4dXG8eHVxvHh1cbx3c7A0dvMvcXbzL3F28y9xdjHt6DTv6x207+sdtO/rHbSv6xs + 0LyrRNC8q0TQvKtE0LyrRNG6pQ7RuaIK0bmiCtG5ogrRuaIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA0bmiB9G5ohbRuaIW0bmiFtG6pR7QvKuR0LyrkdC8q5HQvKuR07+t09PArePTwK3j + 08Ct49zNve/j18r649fK+uPXyvrn3ND78erg//Hq4P/x6uD/8erg//Hq4P/x6uD/8erg//Hq4P/n3ND7 + 49fK+uPXyvrj18r63M2979PArePTwK3j08Ct49O/rdPQvKuR0LyrkdC8q5HQvKuR0bqlHtG5ohbRuaIW + 0bmiFtG5ogcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIH0bmiFtG5ohbRuaIW + 0bqlHtC8q5HQvKuR0LyrkdC8q5HTv63T08Ct49PArePTwK3j3M297+PXyvrj18r649fK+ufc0Pvx6uD/ + 8erg//Hq4P/x6uD/8erg//Hq4P/x6uD/8erg/+fc0Pvj18r649fK+uPXyvrczb3v08Ct49PArePTwK3j + 07+t09C8q5HQvKuR0LyrkdC8q5HRuqUe0bmiFtG5ohbRuaIW0bmiBwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAANG5ogfRuaIW0bmiFtG5ohbRuqUe0LyrkdC8q5HQvKuR0LyrkdO/rdPTwK3j + 08Ct49PArePczb3v49fK+uPXyvrj18r659zQ+/Hq4P/x6uD/8erg//Hq4P/x6uD/8erg//Hq4P/x6uD/ + 59zQ++PXyvrj18r649fK+tzNve/TwK3j08Ct49PArePTv63T0LyrkdC8q5HQvKuR0LyrkdG6pR7RuaIW + 0bmiFtG5ohbRuaIHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAMm5ogbJuaIHybmiB8m5ogfQvasW0b6sIdG+rCHRvqwh0r6sK9O/q0DTv6tA + 07+rQNTArUbXxban18W2p9fFtqfXxban2cm429rJuOnaybjp2sm46eHTxfLm28/75tvP++bbz/vp39P8 + 8erg//Hq4P/x6uD/8erg//Hq4P/x6uD/8erg//Hq4P/p39P85tvP++bbz/vm28/74dPF8trJuOnaybjp + 2sm46dnJuNvXxban18W2p9fFtqfXxban1MCtRtO/q0DTv6tA07+rQNK+rCvRvawh0b2sIdG9rCHQvasW + ybmiB8m5ogfJuaIHybmiBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAybmiHcm5oiHJuaIh + ybmiIdC9q3DRvqyl0b6spdG+rKXSv6271MGv5tTBr+bUwa/m1cOx6Ofbzv3n287959vO/efbzv3w6N3/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+fbzv3n287959vO/efbzv3Vw7Ho + 1MGv5tTBr+bUwa/m0r+tu9G9rKXRvayl0b2spdC9q3DJuaIhybmiIcm5oiHJuaIdAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAADJuaIdybmiIcm5oiHJuaIh0L2rcNG+rKXRvqyl0b6spdK/rbvUwa/m + 1MGv5tTBr+bVw7Ho59vO/efbzv3n287959vO/fDo3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6N3/59vO/efbzv3n287959vO/dXDsejUwa/m1MGv5tTBr+bSv6270b2spdG9rKXRvayl + 0L2rcMm5oiHJuaIhybmiIcm5oh0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMm5oh3JuaIh + ybmiIcm5oiHQvatw0b6spdG+rKXRvqyl0r+tu9TBr+bUwa/m1MGv5tXDsejn287959vO/efbzv3n2879 + 8Ojd//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Do3f/n287959vO/efbzv3n2879 + 1cOx6NTBr+bUwa/m1MGv5tK/rbvRvayl0b2spdG9rKXQvatwybmiIcm5oiHJuaIhybmiHQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAybmiHcm5oiHJuaIhybmiIdC9q3DRvqyl0b6spdG+rKXSv627 + 1MGv5tTBr+bUwa/m1cOx6Ofbzv3n287959vO/efbzv3w6N3/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8Ojd/+fbzv3n287959vO/efbzv3Vw7Ho1MGv5tTBr+bUwa/m0r+tu9G9rKXRvayl + 0b2spdC9q3DJuaIhybmiIcm5oiHJuaIdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAADMtaQRzLWkKsy1pCrMtaQqzrinO9G9q6rRvauq0b2rqtG9q6rUw7LT + 1cSz2tXEs9rVxLPa4tXH7One0vjp3tL46d7S+Ovi1vrw6N798Oje/fDo3v3w6d798erg//Hq4P/x6uD/ + 8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8erg//Hq4P/x6uD/ + 8erg//Dp3v3w6N798Oje/fDo3v3r4tb66d7S+One0vjp3tL44tXH7NXEs9rVxLPa1cSz2tTDstPRvauq + 0b2rqtG9q6rRvauqzrinO8y1pCrMtaQqzLWkKsy1pBEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy1pBLMtaQt + zLWkLcy1pC3OuKc/0b2rttG9q7bRvau20b2rttXDsuDVxLPn1cSz59XEs+fi1cj16uDU/urg1P7q4NT+ + 7eTY/vLr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+3k2P7q4NT+ + 6uDU/urg1P7i1cj11cSz59XEs+fVxLPn1cOy4NG9q7bRvau20b2rttG9q7bOuKc/zLWkLcy1pC3MtaQt + zLWkEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLWkEsy1pC3MtaQtzLWkLc64pz/Rvau20b2rttG9q7bRvau2 + 1cOy4NXEs+fVxLPn1cSz5+LVyPXq4NT+6uDU/urg1P7t5Nj+8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7eTY/urg1P7q4NT+6uDU/uLVyPXVxLPn1cSz59XEs+fVw7Lg + 0b2rttG9q7bRvau20b2rts64pz/MtaQtzLWkLcy1pC3MtaQSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMtaQS + zLWkLcy1pC3MtaQtzrinP9G9q7bRvau20b2rttG9q7bVw7Lg1cSz59XEs+fVxLPn4tXI9erg1P7q4NT+ + 6uDU/u3k2P7y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/t5Nj+ + 6uDU/urg1P7q4NT+4tXI9dXEs+fVxLPn1cSz59XDsuDRvau20b2rttG9q7bRvau2zrinP8y1pC3MtaQt + zLWkLcy1pBIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6Il + zLeiKMy3oijMt6Ioz7ypZdC9qoPQvaqD0L2qg9PArpPWxLSs1sS0rNbEtKzYx7e05NjL5+TYy+fk2Mvn + 5NjL5+je0vXp39P36d/T9+nf0/ft5Nn87+fd/+/n3f/v593/8One//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Dp3v/v593/7+fd/+/n3f/t5Nn86d/T9+nf0/fp39P3 + 6N7S9eTYy+fk2Mvn5NjL5+TYy+fYx7e01sS0rNbEtKzWxLSs08Cuk9C9qoPQvaqD0L2qg8+8qWXMt6Io + zLeiKMy3oijMt6IlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy3ojjMt6I8zLeiPMy3ojzPvKmX0L2qxdC9qsXQvarF + 08Gv1NfFtevXxbXr18W169rJuu7r4tb/6+LW/+vi1v/r4tb/8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/x6uD/6+LW/+vi1v/r4tb/6+LW/9rJuu7XxbXr + 18W169fFtevTwa/U0L2qxdC9qsXQvarFz7ypl8y3ojzMt6I8zLeiPMy3ojgAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + zLeiOMy3ojzMt6I8zLeiPM+8qZfQvarF0L2qxdC9qsXTwa/U18W169fFtevXxbXr2sm67uvi1v/r4tb/ + 6+LW/+vi1v/x6uD/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Hq4P/r4tb/6+LW/+vi1v/r4tb/2sm67tfFtevXxbXr18W169PBr9TQvarF0L2qxdC9qsXPvKmX + zLeiPMy3ojzMt6I8zLeiOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6I4zLeiPMy3ojzMt6I8z7ypl9C9qsXQvarF + 0L2qxdPBr9TXxbXr18W169fFtevaybru6+LW/+vi1v/r4tb/6+LW//Hq4P/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8erg/+vi1v/r4tb/6+LW/+vi1v/aybru + 18W169fFtevXxbXr08Gv1NC9qsXQvarF0L2qxc+8qZfMt6I8zLeiPMy3ojzMt6I4AAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM65pQzOuaUZzrmlGc65pRnPu6gk0b6rUdG+q1HRvqtR + 0b6rUdXDsn/Vw7KC1cOygtXDsoLczLy+3c+/3N3Pv9zdz7/c4NLD5eLVx/Pi1cfz4tXH8+TXyvXu5tr/ + 7uba/+7m2v/u5tr/8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/x6uD/7uba/+7m2v/u5tr/7uba/+TXyvXi1cfz4tXH8+LVx/Pg0sPl3c+/3N3Pv9zdz7/c + 3My8vtXDsoLVw7KC1cOygtXDsn/RvqtR0b6rUdG+q1HRvqtRz7uoJM65pRnOuaUZzrmlGc65pQwAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + zrmlHc65pT7OuaU+zrmlPs+7qFrRvqvL0b6ry9G+q8vRvqvL2ce36tnIuOzZyLjs2ci47Ofbzvnt5Nj/ + 7eTY/+3k2P/v59z/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh/+/n3P/t5Nj/7eTY/+3k2P/n28752ci47NnIuOzZyLjs2ce36tG+q8vRvqvL + 0b6ry9G+q8vPu6hazrmlPs65pT7OuaU+zrmlHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOuaUdzrmlPs65pT7OuaU+z7uoWtG+q8vRvqvL + 0b6ry9G+q8vZx7fq2ci47NnIuOzZyLjs59vO+e3k2P/t5Nj/7eTY/+/n3P/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7+fc/+3k2P/t5Nj/ + 7eTY/+fbzvnZyLjs2ci47NnIuOzZx7fq0b6ry9G+q8vRvqvL0b6ry8+7qFrOuaU+zrmlPs65pT7OuaUd + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAM65pR3OuaU+zrmlPs65pT7Pu6ha0b6ry9G+q8vRvqvL0b6ry9nHt+rZyLjs2ci47NnIuOzn2875 + 7eTY/+3k2P/t5Nj/7+fc//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/v59z/7eTY/+3k2P/t5Nj/59vO+dnIuOzZyLjs2ci47NnHt+rRvqvL + 0b6ry9G+q8vRvqvLz7uoWs65pT7OuaU+zrmlPs65pR0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAL+/nwG/v58Bv7+fAb+/nwHNuKQSzbikGM24pBjNuKQYzrqmNs+6p1fPuqdXz7qnV9G+q2/WxLLS + 1sSy0tbEstLWxLLS3My97d3Nvu/dzb7v3c2+7+jd0Pru5dn/7uXZ/+7l2f/v59z/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3P/u5dn/ + 7uXZ/+7l2f/o3dD63c2+793Nvu/dzb7v3My97dXEstLVxLLS1cSy0tXEstLRvqtvz7qnV8+6p1fPuqdX + z7qmNc65pRjOuaUYzrmlGM65pRK/v58Bv7+fAb+/nwG/v58Bv7+fCL+/nwi/v58Iv7+fCM24pIjNuKS3 + zbikt824pLfPuqfV0Lyp+NC8qfjQvKn41sSz+e3k2P/t5Nj/7eTY/+3k2P/y6+D/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/ + 7OPX/+zj1//s49f/7OPX/9bEs/nQvKr40Lyq+NC8qvjPu6jUzrmltc65pbXOuaW1zrmlh7+/nwi/v58I + v7+fCL+/nwi/v58Iv7+fCL+/nwi/v58IzbikiM24pLfNuKS3zbikt8+6p9XQvKn40Lyp+NC8qfjWxLP5 + 7eTY/+3k2P/t5Nj/7eTY//Lr4P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lq4P/s49f/7OPX/+zj1//s49f/1sSz+dC8qvjQvKr4 + 0Lyq+M+7qNTOuaW1zrmltc65pbXOuaWHv7+fCL+/nwi/v58Iv7+fCL+/nwi/v58Iv7+fCL+/nwjNuKSI + zbikt824pLfNuKS3z7qn1dC8qfjQvKn40Lyp+NbEs/nt5Nj/7eTY/+3k2P/t5Nj/8uvg//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8urg/+zj1//s49f/7OPX/+zj1//WxLP50Lyq+NC8qvjQvKr4z7uo1M65pbXOuaW1zrmltc65pYe/v58I + v7+fCL+/nwi/v58Iv7+fCL+/nwi/v58Iv7+fCM24pIjNuKS3zbikt824pLfPuqfV0Lyp+NC8qfjQvKn4 + 1sSz+e3k2P/t5Nj/7eTY/+3k2P/y6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/7OPX/+zj1//s49f/7OPX/9bEs/nQvKr4 + 0Lyq+NC8qvjPu6jUzrmltc65pbXOuaW1zrmlh7+/nwi/v58Iv7+fCL+/nwi/v58Bv7+fAb+/nwG/v58B + zbuiFc27oh3Nu6IdzbuiHc+7p0fPu6h4z7uoeM+7qHjRvauN1MKx4tTCseLUwrHi1MKx4t/Sw/Hg08Xy + 4NPF8uDTxfLq4dX77+jd/+/o3f/v6N3/8One//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7+bb/+3i1v/t4tb/7eLW/+fWxf/WtJj/1rSY/9a0mP/WtJj/ + 1rSY/9a0mP/WtJj/1rSY/+fWxf/t4tb/7eLW/+3i1v/v5tv/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/w6d7/7+jd/+/o3f/v6N3/6uHV++DTxfLg08Xy + 4NPF8t/Sw/HUwrHi1MKx4tTCseLUwrHi0b2rjc+7qXjPu6l4z7upeM+6qEfMuqgczLqoHMy6qBzMuqgV + v7+fAb+/nwG/v58Bv7+fAQAAAAAAAAAAAAAAAAAAAADMzJkEzMyZBczMmQXMzJkFz7unMc+6qGTPuqhk + z7qoZM+7qXzQvKrd0Lyq3dC8qt3QvKrd3M6/793PwPDdz8Dw3c/A8Onf0/rv59z/7+fc/+/n3P/w6d7/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/v5tr/ + 7OHU/+zh1P/s4dT/5dPB/9Ksjf/SrI3/0qyN/9Ksjf/SrI3/0qyN/9Ksjf/SrI3/5dPB/+zh1P/s4dT/ + 7OHU/+/m2v/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Dp3v/v59z/7+fc/+/n3P/p39P63c/A8N3PwPDdz8Dw3M6/79C8qt3QvKrd0Lyq3dC8qt3Pu6l8 + z7qoZM+6qGTPuqhkzrqpMb+/vwS/v78Ev7+/BL+/vwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAMzMmQTMzJkFzMyZBczMmQXPu6cxz7qoZM+6qGTPuqhkz7upfNC8qt3QvKrd0Lyq3dC8qt3czr/v + 3c/A8N3PwPDdz8Dw6d/T+u/n3P/v59z/7+fc//Dp3v/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/m2v/s4dT/7OHU/+zh1P/l08H/0qyN/9Ksjf/SrI3/ + 0qyN/9Ksjf/SrI3/0qyN/9Ksjf/l08H/7OHU/+zh1P/s4dT/7+ba//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8One/+/n3P/v59z/7+fc/+nf0/rdz8Dw + 3c/A8N3PwPDczr/v0Lyq3dC8qt3QvKrd0Lyq3c+7qXzPuqhkz7qoZM+6qGTOuqkxv7+/BL+/vwS/v78E + v7+/AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMyZBMzMmQXMzJkFzMyZBc+7pzHPuqhk + z7qoZM+6qGTPu6l80Lyq3dC8qt3QvKrd0Lyq3dzOv+/dz8Dw3c/A8N3PwPDp39P67+fc/+/n3P/v59z/ + 8One//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 7+ba/+zh1P/s4dT/7OHU/+XTwf/SrI3/0qyN/9Ksjf/SrI3/0qyN/9Ksjf/SrI3/0qyN/+XTwf/s4dT/ + 7OHU/+zh1P/v5tr/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6d7/7+fc/+/n3P/v59z/6d/T+t3PwPDdz8Dw3c/A8NzOv+/QvKrd0Lyq3dC8qt3QvKrd + z7upfM+6qGTPuqhkz7qoZM66qTG/v78Ev7+/BL+/vwS/v78DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADMzJkBzMyZAszMmQLMzJkCz7unFM+6qCjPuqgoz7qoKM+7qTLPvKpaz7yqWs+8qlrPvKpa + 18a2ltfGtprXxraa18a2mtzNvc/ez8Dp3s/A6d7PwOnh1MXu5trN9ebazfXm2s3159zP9/Do3f/w6N3/ + 8Ojd//Do3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/ + 7ePW/+3j1v/t49b/7ePW/+DItP/dwqv/3cKr/93Cq//Yt53/06+R/9Ovkf/Tr5H/1a2N/9ingP/Yp4D/ + 2KeA/9ingP/Yp4D/2KeA/9ingP/Yp4D/1ayM/9Ovkf/Tr5H/06+R/9i3nf/dwqv/3cKr/93Cq//gyLT/ + 7ePW/+3j1v/t49b/7ePW//Lq4P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6N3/8Ojd//Do3f/w6N3/59zP9ubazfXm2s315trN9eHUxe7ez8Dp3s/A6d7PwOnczb3P + 18a2mtfGtprXxraa18a2ltG7qVrRu6la0bupWtG7qVrQuqkyz7qoKM+6qCjPuqgozrqpFL+/vwK/v78C + v7+/Ar+/vwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAqqqqAaqqqgOqqqoDqqqqA6qqqgPNuKZbzbimYc24pmHNuKZhz7ypstC9qtvQvarb + 0L2q29XEsuPdzr7v3c6+793Ovu/f0cLx7ubb/+7m2//u5tv/7ubb//Hq4P/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hq4P/q3c7/6t3O/+rdzv/q3c7/1LGV/8+mh//Ppof/ + z6aH/8mZdf/DjWX/w41l/8ONZf/Kk2r/3KR4/9ykeP/cpHj/3KR4/9yjeP/co3j/3KN4/9yjeP/Kk2n/ + w41k/8ONZP/DjWT/yZl0/8+mh//Ppof/z6aH/9Sxlf/q3c7/6t3O/+rdzv/q3c7/8erg//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8erg/+7m2//u5tv/7ubb/+7m2//f0cLw + 3c6+7t3Ovu7dzr7u1cSy49C9qtvQvarb0L2q28+8qbLNuKZhzbimYc24pmHNuKZb/4CAAv+AgAL/gIAC + /4CAAv+AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqqqoBqqqqA6qqqgOqqqoD + qqqqA824plvNuKZhzbimYc24pmHPvKmy0L2q29C9qtvQvarb1cSy493Ovu/dzr7v3c6+79/RwvHu5tv/ + 7ubb/+7m2//u5tv/8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8erg/+rdzv/q3c7/6t3O/+rdzv/UsZX/z6aH/8+mh//Ppof/yZl1/8ONZf/DjWX/w41l/8qTav/cpHj/ + 3KR4/9ykeP/cpHj/3KN4/9yjeP/co3j/3KN4/8qTaf/DjWT/w41k/8ONZP/JmXT/z6aH/8+mh//Ppof/ + 1LGV/+rdzv/q3c7/6t3O/+rdzv/x6uD/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/x6uD/7ubb/+7m2//u5tv/7ubb/9/RwvDdzr7u3c6+7t3Ovu7VxLLj0L2q29C9qtvQvarb + z7ypss24pmHNuKZhzbimYc24plv/gIAC/4CAAv+AgAL/gIAC/4CAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAKqqqgGqqqoDqqqqA6qqqgOqqqoDzbimW824pmHNuKZhzbimYc+8qbLQvarb + 0L2q29C9qtvVxLLj3c6+793Ovu/dzr7v39HC8e7m2//u5tv/7ubb/+7m2//x6uD/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/x6uD/6t3O/+rdzv/q3c7/6t3O/9Sxlf/Ppof/ + z6aH/8+mh//JmXX/w41l/8ONZf/DjWX/ypNq/9ykeP/cpHj/3KR4/9ykeP/co3j/3KN4/9yjeP/co3j/ + ypNp/8ONZP/DjWT/w41k/8mZdP/Ppof/z6aH/8+mh//UsZX/6t3O/+rdzv/q3c7/6t3O//Hq4P/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hq4P/u5tv/7ubb/+7m2//u5tv/ + 39HC8N3Ovu7dzr7u3c6+7tXEsuPQvarb0L2q29C9qtvPvKmyzbimYc24pmHNuKZhzbimW/+AgAL/gIAC + /4CAAv+AgAL/gIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqqqqAKqqqgKqqqoC + qqqqAqqqqgLNuKY8zbimQc24pkHNuKZBz7ypd9C9qpLQvaqS0L2qktXDsqLby7q628u6utvLurrdzb3B + 5drN8eXazfHl2s3x5drN8erg1Pfr4dX46+HV+Ovh1fjt49f87uTY/+7k2P/u5Nj/69/R/+bUw//m1MP/ + 5tTD/+bTwf/dwqr/3cKq/93Cqv/dwqr/1aqJ/9Okgf/TpIH/06SB/9Kfef/Sm3H/0ptx/9Kbcf/Wn3X/ + 46p+/+Oqfv/jqn7/46p+/+Oqfv/jqn7/46p+/+Oqfv/Wn3T/0ptx/9Kbcf/Sm3H/0p94/9Okgf/TpIH/ + 06SB/9Wqif/dwqr/3cKq/93Cqv/dwqr/5tPB/+bUw//m1MP/5tTD/+vf0f/u5Nj/7uTY/+7k2P/t49f8 + 6+HV+Ovh1fjr4dX46uDU9+XazfHl2s3x5drN8eXazfHdzb3A28u6udvLurnby7q51cOyotC9qpLQvaqS + 0L2qks+8qXfNuKZBzbimQc24pkHNuKY8/4CAAf+AgAH/gIAB/4CAAf+AgAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAz7ilIM+4pU/PuKVPz7ilT8+5pmHPvarVz72q1c+9qtXPvarV2sm559vLu+rby7vq + 28u76uHSwvfl1sf/5dbH/+XWx//exrL/z6aH/8+mh//Ppof/zqSF/8OMY//DjGP/w4xj/8OMY//WnXH/ + 26F1/9uhdf/boXX/5qyA/++2iv/vtor/77aK/++2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/++2iv/vtor/77aK/++2iv/mrID/26F1/9uhdf/boXX/1p1x/8OMY//DjGP/w4xj/8OMY//OpIX/ + z6aH/8+mh//Ppof/3say/+XWx//l1sf/5dbH/+HSwvfby7vq28u76tvLu+raybnnz72q1c+9qtXPvarV + z72q1c+5pmHPuKVPz7ilT8+4pU/PuKUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPuKUgz7ilT8+4pU/PuKVP + z7mmYc+9qtXPvarVz72q1c+9qtXaybnn28u76tvLu+rby7vq4dLC9+XWx//l1sf/5dbH/97Gsv/Ppof/ + z6aH/8+mh//OpIX/w4xj/8OMY//DjGP/w4xj/9adcf/boXX/26F1/9uhdf/mrID/77aK/++2iv/vtor/ + 77aK//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/77aK/++2iv/vtor/77aK/+asgP/boXX/ + 26F1/9uhdf/WnXH/w4xj/8OMY//DjGP/w4xj/86khf/Ppof/z6aH/8+mh//exrL/5dbH/+XWx//l1sf/ + 4dLC99vLu+rby7vq28u76trJuefPvarVz72q1c+9qtXPvarVz7mmYc+4pU/PuKVPz7ilT8+4pSAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAM+4pSDPuKVPz7ilT8+4pU/PuaZhz72q1c+9qtXPvarVz72q1drJuefby7vq + 28u76tvLu+rh0sL35dbH/+XWx//l1sf/3say/8+mh//Ppof/z6aH/86khf/DjGP/w4xj/8OMY//DjGP/ + 1p1x/9uhdf/boXX/26F1/+asgP/vtor/77aK/++2iv/vtor/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//vtor/77aK/++2iv/vtor/5qyA/9uhdf/boXX/26F1/9adcf/DjGP/w4xj/8OMY//DjGP/ + zqSF/8+mh//Ppof/z6aH/97Gsv/l1sf/5dbH/+XWx//h0sL328u76tvLu+rby7vq2sm558+9qtXPvarV + z72q1c+9qtXPuaZhz7ilT8+4pU/PuKVPz7ilIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz7ilHc+4pUrPuKVK + z7ilSs+5plvPvKnKz7ypys+8qcrPvKnK2Ma05NnHtujZx7bo2ce26N/NvPbj0cD/49HA/+PRwP/cw63/ + 0KaG/9Cmhv/Qpob/z6SE/8aPZv/Gj2b/xo9m/8aPZv/Yn3P/3KJ2/9yidv/conb/5q2B/++2iv/vtor/ + 77aK/++2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/++2iv/vtor/77aK/++2iv/mrYH/ + 3KJ2/9yidv/conb/2J9z/8aPZv/Gj2b/xo9m/8aPZv/PpIT/0KaG/9Cmhv/Qpob/3MOt/+PRwP/j0cD/ + 49HA/9/NvPbZx7bo2ce26NnHtujYxrTkz7ypys+8qcrPvKnKz7ypys+5plvPuKVKz7ilSs+4pUrPuKUd + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAt3pOBrd6Ti63ek4ut3pOLrd6Ti68h1yz + vIdcx7yHXMe8h1zHv4hd5sGIXvvBiF77wYhe+8uSZ/zfpXn/36V5/9+lef/gpnr/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/+Cmev/fpXn/36V5/9+lef/Lkmf8wYhe+8GIXvvBiF77v4hd5ryHXMe8h1zHvIdcx7yHXLO3ek4u + t3pOLrd6Ti63ek4ut3pOBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAC3ek4Gt3pOLrd6Ti63ek4ut3pOLryHXLO8h1zHvIdcx7yHXMe/iF3mwYhe+8GIXvvBiF77 + y5Jn/N+lef/fpXn/36V5/+Cmev/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/4KZ6/9+lef/fpXn/36V5/8uSZ/zBiF77 + wYhe+8GIXvu/iF3mvIdcx7yHXMe8h1zHvIdcs7d6Ti63ek4ut3pOLrd6Ti63ek4GAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALd6Tga3ek4ut3pOLrd6Ti63ek4u + vIdcs7yHXMe8h1zHvIdcx7+IXebBiF77wYhe+8GIXvvLkmf836V5/9+lef/fpXn/4KZ6//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//gpnr/36V5/9+lef/fpXn/y5Jn/MGIXvvBiF77wYhe+7+IXea8h1zHvIdcx7yHXMe8h1yz + t3pOLrd6Ti63ek4ut3pOLrd6TgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAt3pOBrd6Ti63ek4ut3pOLrd6Ti68h1yzvIdcx7yHXMe8h1zHv4hd5sGIXvvBiF77 + wYhe+8uSZ/zfpXn/36V5/9+lef/gpnr/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+Cmev/fpXn/36V5/9+lef/Lkmf8 + wYhe+8GIXvvBiF77v4hd5ryHXMe8h1zHvIdcx7yHXLO3ek4ut3pOLrd6Ti63ek4ut3pOBgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAuH1PIbh9TzG4fU8xuH1PMbqAU127gVWgu4FVoLuBVaC8glalwohcyMKIXMjCiFzI + wohcyNqhde7dpHj03aR49N2kePTjqn76566C/ueugv7nroL+6bCE/u2zh//ts4f/7bOH/+20iP/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7bSI/+2zh//ts4f/7bOH/+mwhP7nroL+566C/ueugv7jqn763aR49N2kePTdpHj0 + 2qF17sKIXMjCiFzIwohcyMKIXMi9glamvIFVobyBVaG8gVWhu4BTXrh9TzG4fU8xuH1PMbh9TyEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4fU8puH1PPbh9Tz24fU89 + uoBTdbuBVci7gVXIu4FVyLyCVs3DiV3uw4ld7sOJXe7DiV3u4KZ6/eSqfv/kqn7/5Kp+/+uyhv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+uyhv/kqn7/5Kp+/+Sqfv/gpnr9w4ld7sOJXe7DiV3uw4ld7r2CVs68gVXJ + vIFVybyBVcm7gFN1uH1PPbh9Tz24fU89uH1PKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALh9Tym4fU89uH1PPbh9Tz26gFN1u4FVyLuBVci7gVXIvIJWzcOJXe7DiV3u + w4ld7sOJXe7gpnr95Kp+/+Sqfv/kqn7/67KG//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/67KG/+Sqfv/kqn7/ + 5Kp+/+Cmev3DiV3uw4ld7sOJXe7DiV3uvYJWzryBVcm8gVXJvIFVybuAU3W4fU89uH1PPbh9Tz24fU8p + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuH1PKbh9Tz24fU89 + uH1PPbqAU3W7gVXIu4FVyLuBVci8glbNw4ld7sOJXe7DiV3uw4ld7uCmev3kqn7/5Kp+/+Sqfv/rsob/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//rsob/5Kp+/+Sqfv/kqn7/4KZ6/cOJXe7DiV3uw4ld7sOJXe69glbO + vIFVybyBVcm8gVXJu4BTdbh9Tz24fU89uH1PPbh9TykAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1flEHtX5RJbV+USW1flEl + tX5RJbqAVGu6gFRwuoBUcLqAVHDCiFyNxItfm8SLX5vEi1+bzZNnudWccOXVnHDl1Zxw5dadcejconb3 + 3KJ299yidvfconb36a+D/uqxhf/qsYX/6rGF/+61if/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61if/qsYX/ + 6rGF/+qxhf/pr4P+3KJ299yidvfconb33KJ299adcejVnHDm1Zxw5tWccObNk2e5xYtemsWLXprFi16a + wohbjLqAVHC6gFRwuoBUcLqAVGu1flEltX5RJbV+USW1flEltX5RBwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALV+UQ61flFFtX5RRbV+UUW1flFFuoBUybqAVNK6gFTSuoBU0sOKXuTHjmLt + x45i7ceOYu3Um2/0566C/+eugv/nroL/6K+D//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 6K+D/+eugv/nroL/566C/9Wbb/TIjmHsyI5h7MiOYezEil3juoBU0rqAVNK6gFTSuoBUybV+UUW1flFF + tX5RRbV+UUW1flEOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtX5RDrV+UUW1flFF + tX5RRbV+UUW6gFTJuoBU0rqAVNK6gFTSw4pe5MeOYu3HjmLtx45i7dSbb/TnroL/566C/+eugv/or4P/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//or4P/566C/+eugv/nroL/1Ztv9MiOYezIjmHs + yI5h7MSKXeO6gFTSuoBU0rqAVNK6gFTJtX5RRbV+UUW1flFFtX5RRbV+UQ4AAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAC1flEOtX5RRbV+UUW1flFFtX5RRbqAVMm6gFTSuoBU0rqAVNLDil7k + x45i7ceOYu3HjmLt1Jtv9Oeugv/nroL/566C/+ivg//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/+ivg//nroL/566C/+eugv/Vm2/0yI5h7MiOYezIjmHsxIpd47qAVNK6gFTSuoBU0rqAVMm1flFF + tX5RRbV+UUW1flFFtX5RDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAKqAVQKqgFUCqoBVAqqAVQK5gFIVuYBSHLmAUhy5gFIcvIFVK72BVju9gVY7vYFWO8CFWUfFjGBz + xYxgc8WMYHPFjGBzyY9j18mPZN7Jj2TeyY9k3tCWauvTmm7y05pu8tOabvLco3f36bCE/+mwhP/psIT/ + 6rGF//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/6rGF/+mwhP/psIT/6bCE/9yjd/fTmm3x + 05pt8dOabfHQlmrryY9k3smPZN7Jj2TeyY9j18WMX3PFjF9zxYxfc8WMX3PAhVlHvYFWO72BVju9gVY7 + vIFVK7mAUhy5gFIcuYBSHLmAUhWqgFUCqoBVAqqAVQKqgFUCqoBVBqqAVQaqgFUGqoBVBrmAUk+5gFJq + uYBSarmAUmq8gVWhvYFW372BVt+9gVbfwYZa49KXa/HSl2vx0pdr8dKXa/HpsIX+67KH/+uyh//rsof/ + 7rWK//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61iv/rsof/67KH/+uyh//psIX+ + 0Zdq8tGXavLRl2ry0Zdq8sGGWuO9gVbfvYFW372BVt+8gVWhuYBSarmAUmq5gFJquYBST6qAVQaqgFUG + qoBVBqqAVQaqgFUGqoBVBqqAVQaqgFUGuYBST7mAUmq5gFJquYBSaryBVaG9gVbfvYFW372BVt/Bhlrj + 0pdr8dKXa/HSl2vx0pdr8emwhf7rsof/67KH/+uyh//utYr/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7rWK/+uyh//rsof/67KH/+mwhf7Rl2ry0Zdq8tGXavLRl2rywYZa472BVt+9gVbf + vYFW37yBVaG5gFJquYBSarmAUmq5gFJPqoBVBqqAVQaqgFUGqoBVBqqAVQaqgFUGqoBVBqqAVQa5gFJP + uYBSarmAUmq5gFJqvIFVob2BVt+9gVbfvYFW38GGWuPSl2vx0pdr8dKXa/HSl2vx6bCF/uuyh//rsof/ + 67KH/+61iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utYr/67KH/+uyh//rsof/ + 6bCF/tGXavLRl2ry0Zdq8tGXavLBhlrjvYFW372BVt+9gVbfvIFVobmAUmq5gFJquYBSarmAUk+qgFUG + qoBVBqqAVQaqgFUGqoBVBqqAVQaqgFUGqoBVBrmAUk+5gFJquYBSarmAUmq8gVWhvYFW372BVt+9gVbf + wYZa49KXa/HSl2vx0pdr8dKXa/HpsIX+67KH/+uyh//rsof/7rWK//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+61iv/rsof/67KH/+uyh//psIX+0Zdq8tGXavLRl2ry0Zdq8sGGWuO9gVbf + vYFW372BVt+8gVWhuYBSarmAUmq5gFJquYBST6qAVQaqgFUGqoBVBqqAVQa/gEAEv4BABL+AQAS/gEAE + un1SSrp9UmS6fVJkun1SZLuAVJy7gVXdu4FV3buBVd3AhVnh0ZZq8NGWavDRlmrw0ZZq8OmwhP7rsob/ + 67KG/+uyhv/utYn/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+62iv/ptYn/6bWJ/+m1if/ptYn/ + 6baI/+m2iP/ptoj/6baI/+63iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/7rWJ/+uyhv/rsob/ + 67KG/+mwhP7Rlmrw0ZZq8NGWavDRlmrwwIVZ4buBVd27gVXdu4FV3buAVJy6fVJkun1SZLp9UmS6fVJK + v4BABL+AQAS/gEAEv4BABL+AQAS/gEAEv4BABL+AQAS6fVJKun1SZLp9UmS6fVJku4BUnLuBVd27gVXd + u4FV3cCFWeHRlmrw0ZZq8NGWavDRlmrw6bCE/uuyhv/rsob/67KG/+61if/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7raK/+m1if/ptYn/6bWJ/+m1if/ptoj/6baI/+m2iP/ptoj/7reK//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//utYn/67KG/+uyhv/rsob/6bCE/tGWavDRlmrw0ZZq8NGWavDAhVnh + u4FV3buBVd27gVXdu4BUnLp9UmS6fVJkun1SZLp9Ukq/gEAEv4BABL+AQAS/gEAEv4BABL+AQAS/gEAE + v4BABLp9Ukq6fVJkun1SZLp9UmS7gFScu4FV3buBVd27gVXdwIVZ4dGWavDRlmrw0ZZq8NGWavDpsIT+ + 67KG/+uyhv/rsob/7rWJ//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utor/6bWJ/+m1if/ptYn/ + 6bWJ/+m2iP/ptoj/6baI/+m2iP/ut4r/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61if/rsob/ + 67KG/+uyhv/psIT+0ZZq8NGWavDRlmrw0ZZq8MCFWeG7gVXdu4FV3buBVd27gFScun1SZLp9UmS6fVJk + un1SSr+AQAS/gEAEv4BABL+AQAS/gEAEv4BABL+AQAS/gEAEun1SSrp9UmS6fVJkun1SZLuAVJy7gVXd + u4FV3buBVd3AhVnh0ZZq8NGWavDRlmrw0ZZq8OmwhP7rsob/67KG/+uyhv/utYn/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+62iv/ptYn/6bWJ/+m1if/ptYn/6baI/+m2iP/ptoj/6baI/+63iv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/7rWJ/+uyhv/rsob/67KG/+mwhP7Rlmrw0ZZq8NGWavDRlmrw + wIVZ4buBVd27gVXdu4FV3buAVJy6fVJkun1SZLp9UmS6fVJKv4BABL+AQAS/gEAEv4BABL+AQAG/gEAB + v4BAAb+AQAG6fVIUun1SG7p9Uhu6fVIbun9UK7p/VT26f1U9un9VPb6DWEzEiV6IxIleiMSJXojEiV6I + yo9j4MqPY+fKj2Pnyo9j59OZbPDXnXD0151w9NedcPTfpXn467GG/+uxhv/rsYb/7LKH//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+q1if/otYj/6LWI/+i1iP/RsYH/va16/72tev+9rXr/tqx4/6Opc/+jqXP/ + o6lz/6Opc/+jqnP/o6pz/6Oqc/+jqnP/t6x4/76tev++rXr/vq16/9Kxgf/otYj/6LWI/+i1iP/qtYn/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/7LOG/+uyhf/rsoX/67KF/9+mefjXnXD0151w9NedcPTTmWzw + yo9j58qPY+fKj2Pnyo9j4MSJXojEiV6IxIleiMSJXoi+g1hMun9VPbp/VT26f1U9un9UK7p9Uhu6fVIb + un1SG7p9UhS/gEABv4BAAb+AQAG/gEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUB + qlVVA6pVVQOqVVUDt3lTFrl9U2K5fVNiuX1TYrl9U2K8gVXWvIFV3ryBVd68gVXeyI1h6s2TZvDNk2bw + zZNm8Nmfcvbpr4T/6a+E/+mvhP/qsIX/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/57WI/+W0h//ltIf/ + 5bSH/8avff+rqnT/q6p0/6uqdP+iqXL/iaVr/4mla/+JpWv/iaVr/4mla/+JpWv/iaVr/4mla/+jqXL/ + rKp0/6yqdP+sqnT/x699/+W0h//ltIf/5bSH/+e1iP/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//qsYT/ + 6bCD/+mwg//psIP/2Z9y9s2TZvDNk2bwzZNm8MiNYeq8gVXevIFV3ryBVd68gVXWuX1TYrl9U2K5fVNi + uX1TYrd5UxaqVVUDqlVVA6pVVQOqVVUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKpVVQGqVVUDqlVVA6pVVQO3eVMWuX1TYrl9U2K5fVNi + uX1TYryBVda8gVXevIFV3ryBVd7IjWHqzZNm8M2TZvDNk2bw2Z9y9umvhP/pr4T/6a+E/+qwhf/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//ntYj/5bSH/+W0h//ltIf/xq99/6uqdP+rqnT/q6p0/6Kpcv+JpWv/ + iaVr/4mla/+JpWv/iaVr/4mla/+JpWv/iaVr/6Opcv+sqnT/rKp0/6yqdP/Hr33/5bSH/+W0h//ltIf/ + 57WI//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+qxhP/psIP/6bCD/+mwg//Zn3L2zZNm8M2TZvDNk2bw + yI1h6ryBVd68gVXevIFV3ryBVda5fVNiuX1TYrl9U2K5fVNit3lTFqpVVQOqVVUDqlVVA6pVVQEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + qlVVAapVVQOqVVUDqlVVA7d5Uxa5fVNiuX1TYrl9U2K5fVNivIFV1ryBVd68gVXevIFV3siNYerNk2bw + zZNm8M2TZvDZn3L26a+E/+mvhP/pr4T/6rCF//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+e1iP/ltIf/ + 5bSH/+W0h//Gr33/q6p0/6uqdP+rqnT/oqly/4mla/+JpWv/iaVr/4mla/+JpWv/iaVr/4mla/+JpWv/ + o6ly/6yqdP+sqnT/rKp0/8evff/ltIf/5bSH/+W0h//ntYj/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 6rGE/+mwg//psIP/6bCD/9mfcvbNk2bwzZNm8M2TZvDIjWHqvIFV3ryBVd68gVXevIFV1rl9U2K5fVNi + uX1TYrl9U2K3eVMWqlVVA6pVVQOqVVUDqlVVAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUBqlVVAqpVVQKqVVUCt3lTDLl9UzS5fVM0 + uX1TNLl9UzS8gFVyvIBVd7yAVXe8gFV3xYpelsiOYaXIjmGlyI5hpc+UacHWnHDr1pxw69accOvXnXLt + 4KZ69uCmevbgpnr24KZ69uuyhv7ss4f/7LOH/+yzh//vtor/8LeL//C3i//wt4v/7reK/+u2if/rton/ + 67aJ/+m1if/RsYH/0bGB/9Gxgf/RsYH/v657/7qtev+6rXr/uq16/6yve/+fsXv/n7F7/5+xe/+csnz/ + kraA/5K2gP+StoD/kraA/5K2gP+StoD/kraA/5K2gP+csnz/n7F7/5+xe/+fsXv/rK97/7qtev+6rXr/ + uq16/7+ue//RsYH/0bGB/9Gxgf/RsYH/6bWJ/+u2if/rton/67aJ/+63iv/wt4v/8LeL//C3i//vtor/ + 7LOH/+yzh//ss4f/67KG/uCmevbgpnr24KZ69uCmevbXnnHt1pxw69accOvWnHDrz5VowciOYaXIjmGl + yI5hpcWKXpW8gVV2vIFVdryBVXa8gVVyuX1TNLl9UzS5fVM0uX1TNLd5UwyqVVUCqlVVAqpVVQKqVVUB + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAH/AAAB/wAAAf8AAAG4elA1 + uHtRT7h7UU+4e1FPun9UhbuBVdW7gVXVu4FV1b2DV9jMkWXrzJFl68yRZevMkWXr5at//Oivg//or4P/ + 6K+D/+20iP/wt4v/8LeL//C3i//stor/5bSH/+W0h//ltIf/4bOG/62rdf+tq3X/rat1/62rdf+Qpm3/ + iaVr/4mla/+JpWv/jbB4/5G5g/+RuYP/kbmD/5S9if+dyZj/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/ + ncmY/5S9if+RuYP/kbmD/5G5g/+NsHj/iaVr/4mla/+JpWv/kKZt/62rdf+tq3X/rat1/62rdf/hs4b/ + 5bSH/+W0h//ltIf/7LaK//C3i//wt4v/8LeL/+20iP/or4P/6K+D/+ivg//lq3/8zJFl68yRZevMkWXr + zJFl672DV9i7gVXVu4FV1buBVdW6f1SFuHtRT7h7UU+4e1FPuHtRNQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA/wAAAf8AAAH/AAAB/wAAAbh6UDW4e1FPuHtRT7h7UU+6f1SFu4FV1buBVdW7gVXV + vYNX2MyRZevMkWXrzJFl68yRZevlq3/86K+D/+ivg//or4P/7bSI//C3i//wt4v/8LeL/+y2iv/ltIf/ + 5bSH/+W0h//hs4b/rat1/62rdf+tq3X/rat1/5Cmbf+JpWv/iaVr/4mla/+NsHj/kbmD/5G5g/+RuYP/ + lL2J/53JmP+dyZj/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/lL2J/5G5g/+RuYP/kbmD/42weP+JpWv/ + iaVr/4mla/+Qpm3/rat1/62rdf+tq3X/rat1/+Gzhv/ltIf/5bSH/+W0h//stor/8LeL//C3i//wt4v/ + 7bSI/+ivg//or4P/6K+D/+Wrf/zMkWXrzJFl68yRZevMkWXrvYNX2LuBVdW7gVXVu4FV1bp/VIW4e1FP + uHtRT7h7UU+4e1E1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAB/wAAAf8AAAH/AAAB + uHpQNbh7UU+4e1FPuHtRT7p/VIW7gVXVu4FV1buBVdW9g1fYzJFl68yRZevMkWXrzJFl6+Wrf/zor4P/ + 6K+D/+ivg//ttIj/8LeL//C3i//wt4v/7LaK/+W0h//ltIf/5bSH/+Gzhv+tq3X/rat1/62rdf+tq3X/ + kKZt/4mla/+JpWv/iaVr/42weP+RuYP/kbmD/5G5g/+UvYn/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/ + ncmY/53JmP+UvYn/kbmD/5G5g/+RuYP/jbB4/4mla/+JpWv/iaVr/5Cmbf+tq3X/rat1/62rdf+tq3X/ + 4bOG/+W0h//ltIf/5bSH/+y2iv/wt4v/8LeL//C3i//ttIj/6K+D/+ivg//or4P/5at//MyRZevMkWXr + zJFl68yRZeu9g1fYu4FV1buBVdW7gVXVun9Uhbh7UU+4e1FPuHtRT7h7UTUAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAP8AAAH/AAAB/wAAAf8AAAG4elAquHtRP7h7UT+4e1E/un9UaruBVaq7gVWq + u4FVqr2DV67LkGTIy5BkyMuQZMjLkGTI3KV58N6oe/beqHv23qh79t6ugPvesoP93rKD/d6yg/3asYP+ + 0rGB/9Kxgf/SsYH/0LGB/6iuef+ornn/qK55/6iuef+TrXX/jax0/42sdP+NrHT/kbV+/5S8h/+UvIf/ + lLyH/5bAjP+dyZj/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/ncmY/5bAjP+UvIf/lLyH/5S8h/+RtX7/ + jax0/42sdP+NrHT/k611/6iuef+ornn/qK55/6iuef/QsYH/0rGB/9Kxgf/SsYH/2rGD/t6yg/3esoP9 + 3rKD/d6ugPveqHv23qh79t6oe/bcpXnwy5BkyMuQZMjLkGTIy5BkyL2DV667gVWqu4FVqruBVaq6f1Rq + uHtRP7h7UT+4e1E/uHtRKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtHtPCLR7Tzq0e086tHtPOrR7TzqwhVa/ + sIVW07CFVtOwhVbTnpNf6ZSbZPeUm2T3lJtk95CeZvqIpWv/iKVr/4ila/+Jpm3/k7uH/5O7h/+Tu4f/ + k7uH/5zGlf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cxpX/k7uH/5O7h/+Tu4f/ + k7uH/4mmbf+IpWv/iKVr/4ila/+Qnmb6lJtk95SbZPeUm2T3npNf6bCFVtOwhVbTsIVW07CFVr+0e086 + tHtPOrR7Tzq0e086tHtPCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAC0e08ItHtPOrR7Tzq0e086tHtPOrCFVr+whVbTsIVW07CFVtOek1/plJtk95SbZPeUm2T3 + kJ5m+oila/+IpWv/iKVr/4mmbf+Tu4f/k7uH/5O7h/+Tu4f/nMaV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5zGlf+Tu4f/k7uH/5O7h/+Tu4f/iaZt/4ila/+IpWv/iKVr/5CeZvqUm2T3 + lJtk95SbZPeek1/psIVW07CFVtOwhVbTsIVWv7R7Tzq0e086tHtPOrR7Tzq0e08IAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALR7Twi0e086tHtPOrR7Tzq0e086 + sIVWv7CFVtOwhVbTsIVW056TX+mUm2T3lJtk95SbZPeQnmb6iKVr/4ila/+IpWv/iaZt/5O7h/+Tu4f/ + k7uH/5O7h/+cxpX/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMaV/5O7h/+Tu4f/ + k7uH/5O7h/+Jpm3/iKVr/4ila/+IpWv/kJ5m+pSbZPeUm2T3lJtk956TX+mwhVbTsIVW07CFVtOwhVa/ + tHtPOrR7Tzq0e086tHtPOrR7TwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAtHtPCLR7Tzq0e086tHtPOrR7TzqwhVa/sIVW07CFVtOwhVbTnpNf6ZSbZPeUm2T3 + lJtk95CeZvqIpWv/iKVr/4ila/+Jpm3/k7uH/5O7h/+Tu4f/k7uH/5zGlf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cxpX/k7uH/5O7h/+Tu4f/k7uH/4mmbf+IpWv/iKVr/4ila/+Qnmb6 + lJtk95SbZPeUm2T3npNf6bCFVtOwhVbTsIVW07CFVr+0e086tHtPOrR7Tzq0e086tHtPCAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHefYBF3n2Aqd59gKnefYCp5oGI8fKJlrnyiZa58omWu + fKJlroKla96DpWzmg6Vs5oOlbOaPtH/0lr2K/pa9iv6WvYr+mMCO/p3Hlv+dx5b/nceW/53Hlv+dyJj/ + nciY/53ImP+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/ + nciY/53ImP+dyJj/nceW/53Hlv+dx5b/nceW/5jAjv6WvYr+lr2K/pa9iv6PtH/0g6Vs5oOlbOaDpWzm + gqVr3nyiZa58omWufKJlrnyiZa55oGI8d59gKnefYCp3n2Aqd59gEQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + d59gEnefYC13n2Atd59gLXmhYj97o2W2e6NltnujZbZ7o2W2f6ds4ICnbeeAp23ngKdt5462gfWWv43+ + lr+N/pa/jf6ZwpH+nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + mcKR/pa/jf6Wv43+lr+N/o62gfWAp23ngKdt54Cnbed/p2zge6NltnujZbZ7o2W2e6NltnmhYj93n2At + d59gLXefYC13n2ASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3n2ASd59gLXefYC13n2AteaFiP3ujZbZ7o2W2 + e6NltnujZbZ/p2zggKdt54CnbeeAp23njraB9Za/jf6Wv43+lr+N/pnCkf6eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+ZwpH+lr+N/pa/jf6Wv43+jraB9YCnbeeAp23n + gKdt53+nbOB7o2W2e6NltnujZbZ7o2W2eaFiP3efYC13n2Atd59gLXefYBIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHefYBJ3n2Atd59gLXefYC15oWI/e6NltnujZbZ7o2W2e6Nltn+nbOCAp23ngKdt54CnbeeOtoH1 + lr+N/pa/jf6Wv43+mcKR/p7Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5nCkf6Wv43+lr+N/pa/jf6OtoH1gKdt54CnbeeAp23nf6ds4HujZbZ7o2W2e6NltnujZbZ5oWI/ + d59gLXefYC13n2Atd59gEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHedXiV3nV4od51eKHedXih6oWRleqJlg3qiZYN6omWDfaRpk4CnbqyAp26sgKdurIOqcrSQuYTn + kLmE55C5hOeQuYTnlL6K9ZW+i/eVvov3lb6L95nDkfybxpX/m8aV/5vGlf+cx5b/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMeW/5vGlf+bxpX/m8aV/5nDkfyVvov3 + lb6L95W+i/eUvor1kLmE55C5hOeQuYTnkLmE54OqcrSAp26sgKdurICnbqx9pGmTeqJlg3qiZYN6omWD + eqFkZXedXih3nV4od51eKHedXiUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd51eOHedXjx3nV48d51ePHqhZJd6omXF + eqJlxXqiZcV9pWnUgahv64Gob+uBqG/rhKx07pfBj/+XwY//l8GP/5fBj/+dyJj/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+XwY//l8GP/5fBj/+XwY// + hKx07oGob+uBqG/rgahv632ladR6omXFeqJlxXqiZcV6oWSXd51ePHedXjx3nV48d51eOAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3nV44d51ePHedXjx3nV48eqFkl3qiZcV6omXFeqJlxX2ladSBqG/rgahv64Gob+uErHTu + l8GP/5fBj/+XwY//l8GP/53ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nciY/5fBj/+XwY//l8GP/5fBj/+ErHTugahv64Gob+uBqG/rfaVp1HqiZcV6omXF + eqJlxXqhZJd3nV48d51ePHedXjx3nV44AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHedXjh3nV48d51ePHedXjx6oWSX + eqJlxXqiZcV6omXFfaVp1IGob+uBqG/rgahv64SsdO6XwY//l8GP/5fBj/+XwY//nciY/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/l8GP/5fBj/+XwY// + l8GP/4SsdO6BqG/rgahv64Gob+t9pWnUeqJlxXqiZcV6omXFeqFkl3edXjx3nV48d51ePHedXjgAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd6BfDHegXxl3oF8Zd6BfGXmhYSR7omRR + e6JkUXuiZFF7omRRf6drf4Cna4KAp2uCgKdrgoavdr6IsXnciLF53IixedyKs3zljbaB8422gfONtoHz + j7iD9ZrEk/+axJP/msST/5rEk/+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/53ImP+axJP/msST/5rEk/+axJP/j7iD9Y22gfONtoHzjbaB84qzfOWIsXnc + iLF53IixedyGr3a+gKdrgoCna4KAp2uCf6drf3uiZFF7omRRe6JkUXuiZFF5oWEkd6BfGXegXxl3oF8Z + d6BfDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3oF8dd6BfPnegXz53oF8+eaFhWnuiZMt7omTLe6Jky3uiZMuDqm/qg6tw7IOrcOyDq3Ds + kbuH+ZjDkf+Yw5H/mMOR/5rFlP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/msWU/5jDkf+Yw5H/mMOR/5G7h/mDq3Dsg6tw7IOrcOyDqm/q + e6Jky3uiZMt7omTLe6Jky3mhYVp3oF8+d6BfPnegXz53oF8dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHegXx13oF8+d6BfPnegXz55oWFa + e6Jky3uiZMt7omTLe6Jky4Oqb+qDq3Dsg6tw7IOrcOyRu4f5mMOR/5jDkf+Yw5H/msWU/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+axZT/ + mMOR/5jDkf+Yw5H/kbuH+YOrcOyDq3Dsg6tw7IOqb+p7omTLe6Jky3uiZMt7omTLeaFhWnegXz53oF8+ + d6BfPnegXx0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAd6BfHXegXz53oF8+d6BfPnmhYVp7omTLe6Jky3uiZMt7omTLg6pv6oOrcOyDq3Ds + g6tw7JG7h/mYw5H/mMOR/5jDkf+axZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5rFlP+Yw5H/mMOR/5jDkf+Ru4f5g6tw7IOrcOyDq3Ds + g6pv6nuiZMt7omTLe6Jky3uiZMt5oWFad6BfPnegXz53oF8+d6BfHQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAgJ9gAYCfYAGAn2ABgJ9gAXacXxJ2nF8YdpxfGHacXxh4n2A2eKBhV3igYVd4oGFX + e6Nlb4Cna9KAp2vSgKdr0oCna9KGr3Xth69274evdu+Hr3bvk72J+pnEkv+ZxJL/mcSS/5vGlf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + m8aV/5nEkv+ZxJL/mcSS/5O9ifqHr3bvh69274evdu+Gr3XtgKdr0oCna9KAp2vSgKdr0nujZW94oGFX + eKBhV3igYVd3oGE1dp5gGHaeYBh2nmAYdp5gEoCfYAGAn2ABgJ9gAYCfYAGAn2AIgJ9gCICfYAiAn2AI + dpxfiHacX7d2nF+3dpxft3ieYtV6oGT4eqBk+HqgZPiAp235mMOR/5jDkf+Yw5H/mMOR/57JmP+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57JmP+YwpD/mMKQ/5jCkP+YwpD/f6dt+XmgZPh5oGT4eaBk+HifYtR2nmC1dp5gtXaeYLV2nmCH + gJ9gCICfYAiAn2AIgJ9gCICfYAiAn2AIgJ9gCICfYAh2nF+Idpxft3acX7d2nF+3eJ5i1XqgZPh6oGT4 + eqBk+ICnbfmYw5H/mMOR/5jDkf+Yw5H/nsmY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmY/5jCkP+YwpD/mMKQ/5jCkP9/p235 + eaBk+HmgZPh5oGT4eJ9i1HaeYLV2nmC1dp5gtXaeYIeAn2AIgJ9gCICfYAiAn2AIgJ9gCICfYAiAn2AI + gJ9gCHacX4h2nF+3dpxft3acX7d4nmLVeqBk+HqgZPh6oGT4gKdt+ZjDkf+Yw5H/mMOR/5jDkf+eyZj/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZj/mMKQ/5jCkP+YwpD/mMKQ/3+nbfl5oGT4eaBk+HmgZPh4n2LUdp5gtXaeYLV2nmC1 + dp5gh4CfYAiAn2AIgJ9gCICfYAiAn2AIgJ9gCICfYAiAn2AIdpxfiHacX7d2nF+3dpxft3ieYtV6oGT4 + eqBk+HqgZPiAp235mMOR/5jDkf+Yw5H/mMOR/57JmP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57JmP+YwpD/mMKQ/5jCkP+YwpD/ + f6dt+XmgZPh5oGT4eaBk+HifYtR2nmC1dp5gtXaeYLV2nmCHgJ9gCICfYAiAn2AIgJ9gCICfYAGAn2AB + gJ9gAYCfYAF0nGAVdJxgHXScYB10nGAdd6BjR3mhY3h5oWN4eaFjeHujZo1/p2zif6ds4n+nbOJ/p2zi + irN88Yu0ffKLtH3yi7R98pbAjfubxpX/m8aV/5vGlf+cx5b/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHlv+bxpX/m8aV/5vGlf+WwI37 + i7R98ou0ffKLtH3yirN88X+nbOJ/p2zif6ds4n+nbOJ7o2aNeKFjeHihY3h4oWN4eJ9iR3eaXBx3mlwc + d5pcHHeaXBWAn2ABgJ9gAYCfYAGAn2ABAAAAAAAAAAAAAAAAAAAAAGaZZgRmmWYFZplmBWaZZgV3oWMx + eKFjZHihY2R4oWNkeaFkfHuiZt17ombde6Jm3XuiZt2Hr3jviLB58IiwefCIsHnwlb6L+pvFlP+bxZT/ + m8WU/5zHlv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nMeW/5vFlP+bxZT/m8WU/5W+i/qIsHnwiLB58IiwefCHr3jve6Jm3XuiZt17ombd + e6Jm3XmhZHx4oWNkeKFjZHihY2R4oGExgIBABICAQASAgEAEgIBAAwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAZplmBGaZZgVmmWYFZplmBXehYzF4oWNkeKFjZHihY2R5oWR8e6Jm3XuiZt17ombd + e6Jm3YeveO+IsHnwiLB58IiwefCVvov6m8WU/5vFlP+bxZT/nMeW/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cx5b/m8WU/5vFlP+bxZT/ + lb6L+oiwefCIsHnwiLB58IeveO97ombde6Jm3XuiZt17ombdeaFkfHihY2R4oWNkeKFjZHigYTGAgEAE + gIBABICAQASAgEADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmmWYEZplmBWaZZgVmmWYF + d6FjMXihY2R4oWNkeKFjZHmhZHx7ombde6Jm3XuiZt17ombdh69474iwefCIsHnwiLB58JW+i/qbxZT/ + m8WU/5vFlP+cx5b/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5zHlv+bxZT/m8WU/5vFlP+Vvov6iLB58IiwefCIsHnwh69473uiZt17ombd + e6Jm3XuiZt15oWR8eKFjZHihY2R4oWNkeKBhMYCAQASAgEAEgIBABICAQAMAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAGaZZgFmmWYCZplmAmaZZgJ3oWMUeKFjKHihYyh4oWMoeaFkMnqiZlp6omZa + eqJmWnqiZlqBqnCWgapwmoGqcJqBqnCah693z4ixeemIsXnpiLF56Yy0fu6QuoX1kLqF9ZC6hfWSvIf3 + nMeW/5zHlv+cx5b/nMeW/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5zHlv+cx5b/nMeW/5zHlv+SvIf2kbqF9ZG6hfWRuoX1jLV+7oixeemIsXnp + iLF56Yevd8+BqnCagapwmoGqcJqBqnCWe6JmWnuiZlp7omZae6JmWnmhZDJ4oWMoeKFjKHihYyh4oGEU + gIBAAoCAQAKAgEACgIBAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAABVqlUBVapVA1WqVQNVqlUDVapVA3agYVt2oGFhdqBhYXagYWF5oWOy + eqFk23qhZNt6oWTbf6ds44avd++Gr3fvhq9374mye/GaxZT/msWU/5rFlP+axZT/nciY/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/msWU/5rFlP+axZT/ + msWU/4qze/CHsHfuh7B37oewd+5/p2zjeqFk23qhZNt6oWTbeaFjsnagYWF2oGFhdqBhYXagYVuAgIAC + gICAAoCAgAKAgIACgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFWqVQFVqlUD + VapVA1WqVQNVqlUDdqBhW3agYWF2oGFhdqBhYXmhY7J6oWTbeqFk23qhZNt/p2zjhq9374avd++Gr3fv + ibJ78ZrFlP+axZT/msWU/5rFlP+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/53ImP+axZT/msWU/5rFlP+axZT/irN78Iewd+6HsHfuh7B37n+nbON6oWTb + eqFk23qhZNt5oWOydqBhYXagYWF2oGFhdqBhW4CAgAKAgIACgICAAoCAgAKAgIAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVapVAVWqVQNVqlUDVapVA1WqVQN2oGFbdqBhYXagYWF2oGFh + eaFjsnqhZNt6oWTbeqFk23+nbOOGr3fvhq9374avd++JsnvxmsWU/5rFlP+axZT/msWU/53ImP+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciY/5rFlP+axZT/ + msWU/5rFlP+Ks3vwh7B37oewd+6HsHfuf6ds43qhZNt6oWTbeqFk23mhY7J2oGFhdqBhYXagYWF2oGFb + gICAAoCAgAKAgIACgICAAoCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVqlUA + VapVAlWqVQJVqlUCVapVAnagYTx2oGFBdqBhQXagYUF5oWN3eqFkknqhZJJ6oWSSf6ZrooSsc7qErHO6 + hKxzuoaud8GRuobxkbqG8ZG6hvGRuobxlb+M95bAjfiWwI34lsCN+JrEk/ycx5f/nMeX/5zHl/+dyJf/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciX/5zHl/+cx5f/ + nMeX/5rEk/yWwI34lsCN+JbAjfiVv4z3kbqG8ZG6hvGRuobxkbqG8Yevd8CFrXO5ha1zuYWtc7l/p2ui + eqFkknqhZJJ6oWSSeaFjd3agYUF2oGFBdqBhQXagYTyAgIABgICAAYCAgAGAgIABgICAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB3m14gd5teT3ebXk93m15PeJxgYXqgZdV6oGXVeqBl1XqgZdWEq3Ln + ha106oWtdOqFrXTqkbuH95nDkv+Zw5L/mcOS/5vFlP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+bxZT/mcOS/5nDkv+Zw5L/kbuH94WtdOqFrXTqha106oSrcud6oGXV + eqBl1XqgZdV6oGXVeJxgYXebXk93m15Pd5teT3ebXiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHebXiB3m15P + d5teT3ebXk94nGBheqBl1XqgZdV6oGXVeqBl1YSrcueFrXTqha106oWtdOqRu4f3mcOS/5nDkv+Zw5L/ + m8WU/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5vFlP+Zw5L/ + mcOS/5nDkv+Ru4f3ha106oWtdOqFrXTqhKty53qgZdV6oGXVeqBl1XqgZdV4nGBhd5teT3ebXk93m15P + d5teIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5teIHebXk93m15Pd5teT3icYGF6oGXVeqBl1XqgZdV6oGXV + hKty54WtdOqFrXTqha106pG7h/eZw5L/mcOS/5nDkv+bxZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/m8WU/5nDkv+Zw5L/mcOS/5G7h/eFrXTqha106oWtdOqEq3Ln + eqBl1XqgZdV6oGXVeqBl1XicYGF3m15Pd5teT3ebXk93m14gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3m14d + d5teSnebXkp3m15KeJxgWnqgZcd6oGXHeqBlx3qgZceDq3Lbha103oWtdN6FrXTekLqF8JfBkPuXwZD7 + l8GQ+5nDkvycx5f+nMeX/pzHl/6cx5f+nciY/53ImP+dyJj/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsiY/57ImP+eyJj/nsiY/5zHl/6cx5f+nMeX/pzHl/6Zw5L8 + l8GQ+5fBkPuXwZD7kLqF8IWtdN6FrXTeha103oOrctt6oGXHeqBlx3qgZcd6oGXHeJxgWnebXkp3m15K + d5teSnebXh0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHacXi92nF42dpxeNnacXjZ6oGSNe6Flx3uhZcd7oWXHfqRp0oKqcemCqnHpgqpx6YOsc+qWwY7/ + lsGO/5bBjv+WwY7/nMeX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Hl/+XwY7/ + l8GO/5fBjv+XwY7/hKxz6oKqcemCqnHpgqpx6X6kadJ7oWXHe6Flx3uhZcd6oGSNdpxeNnacXjZ2nF42 + dpxeLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdpxeL3acXjZ2nF42dpxeNnqgZI17oWXH + e6Flx3uhZcd+pGnSgqpx6YKqcemCqnHpg6xz6pbBjv+WwY7/lsGO/5bBjv+cx5f/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nceX/5fBjv+XwY7/l8GO/5fBjv+ErHPqgqpx6YKqcemCqnHp + fqRp0nuhZcd7oWXHe6Flx3qgZI12nF42dpxeNnacXjZ2nF4vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB2nF4vdpxeNnacXjZ2nF42eqBkjXuhZcd7oWXHe6Flx36kadKCqnHpgqpx6YKqcemDrHPq + lsGO/5bBjv+WwY7/lsGO/5zHl/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dx5f/ + l8GO/5fBjv+XwY7/l8GO/4Ssc+qCqnHpgqpx6YKqcel+pGnSe6Flx3uhZcd7oWXHeqBkjXacXjZ2nF42 + dpxeNnacXi8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHacXi92nF42dpxeNnacXjZ6oGSN + e6Flx3uhZcd7oWXHfqRp0oKqcemCqnHpgqpx6YOsc+qWwY7/lsGO/5bBjv+WwY7/nMeX/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Hl/+XwY7/l8GO/5fBjv+XwY7/hKxz6oKqcemCqnHp + gqpx6X6kadJ7oWXHe6Flx3uhZcd6oGSNdpxeNnacXjZ2nF42dpxeLwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAdpxeCXacXgt2nF4LdpxeC3qgZBx7oWUoe6FlKHuhZSh8omc1faRpT32kaU99pGlP + fqVqV4GpcMWBqXDFgalwxYGpcMWGrXXkhq527IauduyGrnbsj7mD9pfBjv6XwY7+l8GO/pnDkf6eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5nDkf6XwY7+l8GO/pfBjv6PuYP2hq527IauduyGrnbs + hq115IKpcMWCqXDFgqlwxYKpcMV+pWpXfaRpT32kaU99pGlPfKJnNXuhZSh7oWUoe6FlKHqgZBx2nF4L + dpxeC3acXgt2nF4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAHabXQ52m10pdptdKXabXSl3nF8yeqBltnqgZbZ6oGW2eqBltn+ma92Ap2zn + gKds54CnbOeMtH3zlb+L/pW/i/6Vv4v+l8KP/p7Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + l8KP/pW/i/6Vv4v+lb+L/oy0ffOAp2zngKds54CnbOd/pmvdeqBltnqgZbZ6oGW2eqBltnecXzJ2m10p + dptdKXabXSl2m10OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdptdDnabXSl2m10p + dptdKXecXzJ6oGW2eqBltnqgZbZ6oGW2f6Zr3YCnbOeAp2zngKds54y0ffOVv4v+lb+L/pW/i/6Xwo/+ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+Xwo/+lb+L/pW/i/6Vv4v+jLR984CnbOeAp2zn + gKds53+ma916oGW2eqBltnqgZbZ6oGW2d5xfMnabXSl2m10pdptdKXabXQ4AAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB2m10OdptdKXabXSl2m10pd5xfMnqgZbZ6oGW2eqBltnqgZbZ/pmvd + gKds54CnbOeAp2znjLR985W/i/6Vv4v+lb+L/pfCj/6eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5fCj/6Vv4v+lb+L/pW/i/6MtH3zgKds54CnbOeAp2znf6Zr3XqgZbZ6oGW2eqBltnqgZbZ3nF8y + dptdKXabXSl2m10pdptdDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHabXQZ2m10T + dptdE3abXRN3nF8YeqBlVXqgZVV6oGVVeqBlVX6lanF/pWt4f6VreH+la3iGrnWiirJ7x4qye8eKsnvH + i7R90o22gPGNtoDxjbaA8Y22gPGNtoDxjbaA8Y22gPGNtoDxjLR90ouze8eLs3vHi7N7x4eudqJ/pWt4 + f6VreH+la3h+pWpxeqBlVXqgZVV6oGVVeqBlVXecXxh2m10TdptdE3abXRN2m10GAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + dJddEnSXXRZ0l10WdJddFnmfY1t6oGSXeqBkl3qgZJd7oWWsfaRo5X2kaOV9pGjlfaRo5X2kaOV9pGjl + faRo5X2kaOV8oWWrfKBklnygZJZ8oGSWe59jWnSXXRZ0l10WdJddFnSXXRIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0l10SdJddFnSXXRZ0l10WeZ9jW3qgZJd6oGSX + eqBkl3uhZax9pGjlfaRo5X2kaOV9pGjlfaRo5X2kaOV9pGjlfaRo5XyhZat8oGSWfKBklnygZJZ7n2Na + dJddFnSXXRZ0l10WdJddEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHSXXRJ0l10WdJddFnSXXRZ5n2NbeqBkl3qgZJd6oGSXe6FlrH2kaOV9pGjlfaRo5X2kaOV9pGjl + faRo5X2kaOV9pGjlfKFlq3ygZJZ8oGSWfKBklnufY1p0l10WdJddFnSXXRZ0l10SAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddDXSXXRB0l10QdJddEHmfY0N6oGRv + eqBkb3qgZG97oWV/faRorH2kaKx9pGisfaRorH2kaKx9pGisfaRorH2kaKx8oWV+fKBkbnygZG58oGRu + e59jQnSXXRB0l10QdJddEHSXXQ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHeZZgR3mWYPd5lmD3eZZg93mWYP + baRbDm2kWw5tpFsObaRbDm2kWwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAd5lmBHeZZg93mWYPd5lmD3eZZg9tpFsObaRbDm2kWw5tpFsObaRbBAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3mWYEd5lmD3eZZg93mWYP + d5lmD22kWw5tpFsObaRbDm2kWw5tpFsEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAHeZZgR3mWYPd5lmD3eZZg93mWYPbaRbDm2kWw5tpFsObaRbDm2kWwQAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/////////g + B///////////////////4Af//////////////////+AH///////////////////gB/////////////// + ///gAAAH////////////////4AAAB////////////////+AAAAf////////////////gAAAH//////// + ///////AAAAAAAP/////////////wAAAAAAD/////////////8AAAAAAA//////////////AAAAAAAP/ + ///////////AAAAAAAAAA///////////wAAAAAAAAAP//////////8AAAAAAAAAD///////////AAAAA + AAAAA///////////wAAAAAAAAAP/////////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAH///////+A + AAAAAAAAAAAB////////gAAAAAAAAAAAAf//////gAAAAAAAAAAAAAAB/////4AAAAAAAAAAAAAAAf// + //+AAAAAAAAAAAAAAAH/////gAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAA + AAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP + 8AAAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAA + AAAP///wAAAAAAAAAAAAAAAAD/////+AAAAAAAAAAAAB////////gAAAAAAAAAAAAf///////4AAAAAA + AAAAAAH///////+AAAAAAAAAAAAB////////+AAAAAAAAAAAH/////////gAAAAAAAAAAB/////////4 + AAAAAAAAAAAf////////+AAAAAAAAAAAH///////+AAAAAAAAAAAAAAf//////gAAAAAAAAAAAAAH/// + ///4AAAAAAAAAAAAAB//////+AAAAAAAAAAAAAAf////8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAA + AAAP///wAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAA + AAAA//8AAAAAAAAAAAAAAAAAAP///4AAAAAAAAAAAAAAH/////+AAAAAAAAAAAAAAB//////gAAAAAAA + AAAAAAAf/////4AAAAAAAAAAAAAAH///////+AAAAAAAAAAAH/////////gAAAAAAAAAAB/////////4 + AAAAAAAAAAAf////////+AAAAAAAAAAAH////////4AAAAAAAAAAAAH///////+AAAAAAAAAAAAB//// + ////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAH//////4AAAAAAAAAAAAAAAf////+AAAAAAAAAAAAA + AAH/////gAAAAAAAAAAAAAAB/////4AAAAAAAAAAAAAAAf///wAAAAAAAAAAAAAAAAAA//8AAAAAAAAA + AAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAA + AAAAD/AAAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAP///wAAAAAAAA + AAAAAAAAD///8AAAAAAAAAAAAAAAAA//////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAH///////+A + AAAAAAAAAAAB////////gAAAAAAAAAAAAf/////////AAAAAAAAAA///////////wAAAAAAAAAP///// + /////8AAAAAAAAAD///////////AAAAAAAAAA///////////wAAAAAAAAAP////////////AAAAAAAP/ + ////////////wAAAAAAD/////////////8AAAAAAA//////////////AAAAAAAP//////////////+AA + AAf////////////////gAAAH////////////////4AAAB////////////////+AAAAf///////////// + ////4Af//////////////////+AH///////////////////gB///////////////////4Af///////// + KAAAAEAAAACAAAAAAQAgAAAAAAAAQAAAYQoAAGEKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLuqAsy7qg/Mu6oPyLakDsi2pA7ItqQC + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy7qgLMu6oP + zLuqD8i2pA7ItqQOyLakAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANG5ogjRuaIT + 0LqoMdC7q4PQvKuM0sCtyNLArcjSwK3I0sCtyNC8q4vPu6qC0LqoMdG5ohPRuaIIAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADRuaIJ0bmiFtC6qDjQu6uX0LyrodLAreXSwK3l0sCt5dLAreXQvKuhz7uqltC6qDjRuaIW + 0bmiCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADRuaIL0bmiENC8qkDQvKtq0r6shdPArazXxrS64NLE4OHUx+Pp4NP46eDT+Ong0/jp4NP4 + 4dTG49/SxN/XxrS608CtrNK+rIXQvKtq0LyqQNG5ohDRuaILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0bmiD9G5ohbQvKpY0LyrkdK+rLLTwK3j2Me16ePXyvrl2s37 + 8erg//Hq4P/x6uD/8erg/+Xazfvj18r62Me16dPArePSvqyy0LyrkdC8qljRuaIW0bmiDwAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAybmiEsm5ohTRvqxT0b6sY9PAroPUwa6T3My8tOHSxNLj1sjf + 5tvO9Ojd0Pbs49j97eTZ/fLr4f/y6+H/8uvh//Lr4f/t5Nn97OPY/ejd0Pbm287049bI3+HSxNLczLy0 + 1MGuk9PAroPRvaxj0b2sU8m5ohTJuaISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMm5oh/JuaIh0b6si9G+rKXTwK7Q + 1MGv5t/PwPLn28796+HW/vLr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh/+vh1v7n287938/A8tTBr+bTwK7Q0b2spdG9rIvJuaIhybmiHwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLWkBMy1pBXNt6YZ0b2rVdG9q1XTwrB7 + 08Kxfd7Qwb7f0sPP4tTG5uPWyPLo3dD47OLX/u7m2/7y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/u5tv+7OLX/ujd0Pjj1sjy4tTG5t/Rw8/ez8G+08KxfdPCsHvRvatV + 0b2rVc23phnMtaQVzLWkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy1pAnMtaQt + zbemNtG9q7bRvau21cSz5NXEs+fm28756uDU/u/n3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3f/q4NT+ + 5tvO+dXEs+fVxLPk0b2rttG9q7bNt6Y2zLWkLcy1pAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy3ognMt6IU + zrunI9C9qkLRvqxK1MGwbNXCsnPczL3O3My9zt/Sw+3f0sPv6uDU++3k2P7w6d7/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6d7/7eTY/urg1Pvf0sPv39LD7dzMvc7czL3O1cKyc9TBsGzRvqxK0L2qQs67pyPMt6IU + zLeiCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADMt6IczLeiPM67p2rQvarF0r+tzdfFtevYx7fs6+LW/+vi1v/y6uD/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lq4P/r4tb/6+LW/9jHt+zXxbXr + 0r+tzdC9qsXOu6dqzLeiPMy3ohwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADOuaUJzrmlDNC9qh3Rvqsp0r+sQtK/rV/Vw7GF18e10djIt9fdzb7v3s/A8Ozk2P/s5Nj/ + 8uvg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+D/ + 7OTY/+zk2P/ez8Dw3c2+79jIt9fXx7XR1cOxhdK/rV/Sv6xC0b6rKdC9qh3OuaUMzrmlCQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzrmlLc65pT7QvaqT0b6ry9XDstrZyLjs4NLD8u3k2P/u5dr/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/u5dr/7eTY/+DSw/LZyLjs1cOy2tG+q8vQvaqT + zrmlPs65pS0AAAAAAAAAAAAAAAAAAAAAv7+fAb+/nwHNuKQLzbikDM66pjrOuqZK0sCtmtPBr87XxrXd + 28u77eHUxfPt5Nn/7uba//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7uba/+3k2f/h1MXz + 28u77dfGtd3Twa/O0sCtms66pkrOuqY6zrmlDM65pQu/v58Bv7+fAb+/nwi/v58IzbikoM24pLfPu6jn + 0Lyp+OLUxvzt5Nj/7+fc//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/v59z/7OPX/+HUxfzQvKr40Lup5s65pbXOuaWev7+fCL+/nwi/v58I + v7+fCM24pKDNuKS3z7uo59C8qfji1Mb87eTY/+/n3P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7+fc/+zj1//h1MX80Lyq+NC7qebOuaW1 + zrmlnr+/nwi/v58Iv7+fAb+/nwHNvqEPzb6hEc+6qFXPuqhu0b6sstK/rt/YyLjo3tHC8eTZy/bv59z/ + 8Ojd//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8ene/+zi1f/p28z/1LCT/9Swk//UsJP/1LCT/+nbzP/s4tX/8ene//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+/n3P/k2cv23tHC8djIuOjSv63f + 0b6sss+6qG7PuqhVyrqrEMq6qw6/v58Bv7+fAQAAAAAAAAAAzMyZBMzMmQXPuqhLz7qoZNC8qq3QvKrd + 1sW15t3PwPDj18r17+fc//Do3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Do3v/s4dT/6drL/9Ksjf/SrI3/0qyN/9Ksjf/p2sv/7OHU//Do3v/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Do3f/v59z/ + 49fK9d3PwPDWxbXm0Lyq3dC8qq3Puqhkz7qoSr+/vwS/v78DAAAAAAAAAAAAAAAAAAAAAMzMmQHMzJkB + z7qoD8+6qBTOu6okzruqL9K/rlPTwbB+1cOyn9fGteLZybnl4dTF8uLVx/Pv59z/7+fc//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh/+/l2f/s4NL/4867/9a0mf/TrpH/y557/82fe//apnz/2qZ8/9qlfP/apXz/ + zZ97/8ueev/TrpH/1rSZ/+POu//s4NL/7+XZ//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3P/v59z/ + 4tXH8uHUxfHZybnl18a14tXDsp/TwbB+07+uU9K6qS7Ruqgjz7qoFM+6qA+/v78Bv7+/AQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqqqqAqqqqgPMuKYvzbimYc+7qIrQvarb08Gu393Ovu/e0MDw + 7ubb/+7m2//y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/u5Nf/6t3O/9/Hsv/Ppof/zJ9+/8ONZf/GkGj/ + 3KR4/9ykeP/co3j/3KN4/8aQZ//DjWT/zJ9+/8+mh//fx7L/6t3O/+7k1//y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/u5tv/7ubb/97QwO/dzr7u08Gu39C9qtvPu6iKzbimYc63pS7/gIAC/4CAAQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKqqqgGqqqoBzLimEM24piDPu6gu + 0L2qSdLArVXXxbSE2Ma1i9vMvOPbzLzj49bI8OPWyPHo3M786d3Q/+DIs//bvaX/1bGV/9Cnh//TpYL/ + 16N7/9mkfP/gqH7/4ql//+mxhf/psYX/6bCF/+mwhf/iqX7/4Kh9/9mkfP/Xo3v/06WC/9Cnh//VsZX/ + 272l/+DIs//p3dD/6NzO/OPWyPHj1sjw28y849vMvOPYxrWK18W0hNLArVXQvapJz7uoLs24piDOt6UP + /4CAAf+AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAADPuKUQz7ilT8+5pljPvarVz72q1drKuunby7vq49TF++XWx//Wtpz/ + z6aH/8mYdP/DjGP/zZRq/9uhdf/gp3v/77aK/++2iv/wt4v/8LeL//C3i//wt4v/77aK/++2iv/gp3v/ + 26F1/82Uav/DjGP/yZh0/8+mh//Wtpz/5dbH/+PUxfvby7vq2sq66c+9qtXPvarVz7mmWM+4pU/PuKUQ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz7ilB8+4pSXOtqIryrCYfMqwmHzMqo3R + zKmM19Gsj/XSrY/91qiF/tilgP/ZpHz/26N4/9+nfP/mrYH/6a+D//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/6a+D/+atgf/fp3z/26N4/9mkfP/YpYD/1qiF/tKtj/3RrI/1zKmM18yqjdHKsJh8 + yrCYfM62oivPuKUlz7ilBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + t3pOA7d6Ti63ek4uvIdcvbyHXMfAiF7xwYhe+9WbcP7fpXn/6K+D//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//or4P/36V5/9WbcP7BiF77 + wIhe8byHXMe8h1y9t3pOLrd6Ti63ek4DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + uH1PCLh9Txi5f1Iku4FVULyBVVPAhlp7wIZae86Wa9fOl2zd05pv9tSbcP3gpnv+5qyA/+uyhv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 67KG/+asgP/gpnv+1Jtw/dOab/bOl2zdzpZr18CGWnvAhlp7vIFVU7yBVVC6f1IkuH1PGLh9TwgAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALh9TxS4fU89uX9SWbuBVci8glbLw4ld7sOJXe7iqHz+5Kp+/+60iP/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utIj/5Kp+/+KofP7DiV3uw4ld7r2CVsu8gVXJ + un9SWbh9Tz24fU8UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALV+UQu1flESuX9TJLqAVDi9g1dJwYdabMOKXYHJj2PXyZBk2dCWavPQlmrz + 5qyA/uetgf/utYn/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/7rWJ/+etgf/mrID+ + 0JZq89CWavPKkGTZyo9j18SKXYHBh1psvoNXSbqAVDi5f1MktX5RErV+UQsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1flEptX5RRbl/U4e6gFTSv4VZ28eOYu3OlWnx + 566C/+ivg//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/6K+D/+eugv/PlWjwyI5h7L+FWdu6gFTSuX9Th7V+UUW1flEp + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqoBVAaqAVQG5gFIMuYBSDryBVRq9gVYev4ZZQ7+HWlzBh1uW + wohc2MaMYODNlGjv05pu8+ivg//psIT/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+mwhP/or4P/05pt8s6UZ+/GjGDg + wohc2MGIW5a/h1pcvoZZQ72BVh68gVUauYBSDrmAUgyqgFUBqoBVAaqAVQaqgFUGuYBSXbmAUmq8gVXA + vYFW38qPY+rSl2vx3qR4+Ouyh//ttIj/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7bSI/+uyh//dpHj40Zdq8smPYuq9gVbfvIFVwLmAUmq5gFJdqoBVBqqAVQaqgFUG + qoBVBrmAUl25gFJqvIFVwL2BVt/Kj2Pq0pdr8d6kePjrsof/7bSI//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+20iP/rsof/3aR4+NGXavLJj2LqvYFW37yBVcC5gFJq + uYBSXaqAVQaqgFUGv4BABL+AQAS6fVJXun1SZLuAVb27gVXdyY5i6NGWavDeo3f367KG/+20iP/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//vt4v/6bWJ/+m1if/ptoj/6baI/++3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//ttIj/67KG/96jd/fRlmrw + yY5i6LuBVd27gFW9un1SZLp9Ule/gEAEv4BABL+AQAS/gEAEun1SV7p9UmS7gFW9u4FV3cmOYujRlmrw + 3qN39+uyhv/ttIj/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/77eL/+m1if/ptYn/6baI/+m2iP/vt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 7bSI/+uyhv/eo3f30ZZq8MmOYui7gVXdu4BVvbp9UmS6fVJXv4BABL+AQAS/gEABv4BAAbp9Ugy6fVIN + un1VG7p9VSC/g1lTwIRZdcKHW6jDiFziyI5i6NKYa/LXnXH16rCF/+qxhf/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/7LaK/+a0iP/ZsoP/tKx3/7Crdv+Wp2//lqdv/5anb/+Wp2// + sat2/7Wsd//ZsoP/5rSI/+y2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 6rGF/+qxhP/XnXD10phr8siOYujDiFziwodbqMCEWXW/g1lTun1VILp9VRu6fVINun1SDL+AQAG/gEAB + AAAAAAAAAAAAAAAAAAAAAKpVVQKqVVUDuXxTPLl9U2K7gFScvIFV3sKHW+TNk2bw05ls8+mvhP/psIT/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+y2if/ltIf/1rGC/6uqdP+mqXP/ + iaVr/4mla/+JpWv/iaVr/6epc/+sqnT/1rGC/+W0h//ston/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+mwhP/psIP/05ls882TZvDCh1vkvIFV3ruAVJy5fVNiuXxTPKpVVQOqVVUC + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUBqlVVAbl8UxC5fVMavH9UKr1/VDzAhFhR + w4hcesWKXo7Jj2PgypBk4daccPDWnHDw6bCE/uqxhf/vtor/8LeL/+u2if/otYj/0rGB/7+ue/+zrHj/ + oqly/5+sdv+YtX//mLaB/5i/jP+Yv4z/mL+M/5i/jP+YtoH/mLV//5+sdv+iqXL/s6x4/7+ue//SsYH/ + 6LWI/+u2if/wt4v/77aK/+qxhf/psIT+1pxw8NaccPDKkGThyY9j4MWKXo7DiFx6wIRZULyBVTu7gFQq + uX1TGrl8UxCqVVUBqlVVAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAP8AAAD/AAABunhPG7h7UU+5fVNqu4FV1byCVtbMkWXrzJFl6+atgf7or4P/7rWJ//C3i//ptYj/ + 5bSH/8evff+tq3X/n6lx/4mla/+LqnH/kbmD/5O7hv+dyZj/ncmY/53JmP+dyZj/k7uG/5G5g/+LqnH/ + iaVr/5+pcf+tq3X/x699/+W0h//ptYj/8LeL/+61if/or4P/5q2B/syRZevMkWXrvIJW1ruBVdW5fVNq + uHtRT7h7URoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAALp4Twu4e1EguX1TKruBVVW8glZYxotfgcaLX4HJl2re + yZhq5bykcva6pnT6sal1/a2rdv+lsHv/nbWA/5q3g/+Wu4f/lr2J/5nDkP+Zw5H/nsmZ/57Jmf+eyZn/ + nsmZ/5nDkf+Zw5D/lr2J/5a7h/+at4P/nbWA/6Wwe/+tq3b/sal1/bqmdPq8pHL2yZhq5cmXat7Gi1+B + xotfgbyCVli7gVVVuX1TKrh7USC4e1ELAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tHtPBLR7Tzq0e086sIVWybCFVtOZl2LwlJtk94yiafyIpWv/jrF6/5O7h/+XwY7/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/l8GO/5O7h/+OsXr/iKVr/4yiafyUm2T3 + mZdi8LCFVtOwhVbJtHtPOrR7Tzq0e08EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3n2AEd59gFXydYBuKmF90iphfdJiWYdWZlmHclqhz9JWsd/qTs339kraA/5W8iP+Ywo// + msWT/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5rFk/+Ywo// + lbyI/5K2gP+Ts339lax3+paoc/SZlmHcmJZh1YqYX3SKmF90fJ1gG3efYBV3n2AEAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd59gCXefYC14oGE2e6NltnujZbaAp23kgKdt55K7h/mWv43+ + m8aV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/m8aV/5a/jf6Su4f5gKdt54CnbeR7o2W2e6NltnigYTZ3n2At + d59gCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd51eCXedXhR5oGIjeqJlQnujZ0p+pmtsf6dsc4evds6Hr3bO + irN87Yuzfe+Wv437mcKR/pzHlv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHlv+ZwpH+lr+N+4uzfe+Ks3zt + h692zoevds5/p2xzfqZrbHujZ0p6omVCeaBiI3edXhR3nV4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHedXhx3nV48eaBianqiZcV8o2fN + gahv64OqceyXwY//l8GP/57ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsiY/5fBj/+XwY//g6px7IGob+t8o2fNeqJlxXmgYmp3nV48d51eHAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHegXwl3oF8MeqJjHXuiZCl8o2ZC + faRnX3+nbIWBqnDRg6ty14eveO+IsHrwmMOR/5jDkf+eyZj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57JmP+Yw5H/mMOR/4iwevCHr3jvg6ty14GqcNF/p2yF + faRnX3yjZkJ7omQpeqJjHXegXwx3oF8JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3oF8t + d6BfPnqiY5N7omTLf6dq2oOrcOyKs3zymMOR/5nEk/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5nEk/+Yw5H/irN88oOrcOx/p2rae6Jky3qiY5N3oF8+d6BfLQAAAAAAAAAAAAAAAAAAAACAn2AB + gJ9gAXacXwt2nF8MeKBgOnigYEp8pGaafaVozoGpbd2FrXPtjLV+85jDkv+axZP/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+axZP/mMOS/4y1fvOFrXPtgalt3X2laM58pGaad6BgSnegYDp2nmAM + dp5gC4CfYAGAn2ABgJ9gCICfYAh2nF+gdpxft3mfY+d6oGT4jLV//JjDkf+bxpX/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5vFlP+YwpD/ + jLV//HmgZPh4oGPmdp5gtXaeYJ6An2AIgJ9gCICfYAiAn2AIdpxfoHacX7d5n2PneqBk+Iy1f/yYw5H/ + m8aV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+bxZT/mMKQ/4y1f/x5oGT4eKBj5naeYLV2nmCegJ9gCICfYAiAn2ABgJ9gAXKbYQ9ym2ER + eKFjVXihY258pGiyfaVp34OrcuiKsnvxkLmE9pvFlP+cxpX/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+cxpX/m8WU/5C5hPaKsnvxg6ty6H2kad98pGiyeKFjbnigY1V4l1gQeJdYDoCfYAGAn2AB + AAAAAAAAAABmmWYEZplmBXihY0t4oWNkeqJlrXuiZt2BqW/miLB58I+3gvWbxZT/nMaV/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMaV/5vFlP+Pt4L1iLB58IGpb+Z7ombdeqJlrXihY2R4oWJK + gIBABICAQAMAAAAAAAAAAAAAAAAAAAAAZplmAWaZZgF4oWMPeKFjFHmiZSR5omUvfKVpU32man5/qGyf + galv4oOscuWLtH7yjLaA85vGlf+bxpX/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/m8aV/5vGlf+NtoDyjLV+8YSscuWBqW/if6hsn32man58pWlT + e6FnLnqhZiN4oWMUeKFiD4CAQAGAgEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVqlUC + VapVA3WgYS92oGFheKFjinqhZNt9pGjfhq9374exefCaxZT/msWU/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5rFlP+axZT/iLF574ewd+59pGjf + eqFk23ihY4p2oGFhdp9iLoCAgAKAgIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAVapVAVWqVQF1oGEQdqBhIHihYy56oWRJfKNnVYCnbYSBqG6Lhq5344aud+ONtoDw + jreB8ZjCkfybxZT/nciX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciX/5vFlP+YwpH8jreB8Y22gPCGrnfj + hq5344GoboqBqG2EfKNnVXqhZEl4oWMudqBhIHafYg+AgIABgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHebXhB3m15P + d5xfWHqgZdV6oGXVhKxz6YWtdOqVv4z7mcOS/5zHl/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHl/+Zw5L/ + lb+M+4WtdOqErHPpeqBl1XqgZdV3nF9Yd5teT3ebXhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3m14Hd5teJXecXyl6oGVjeqBlY4Gpb4eCqW+KirJ70IuzfeGOt4LtkLmF85W/jfqaxZP/ + m8aV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zGlf+axZP/ + lb+N+pC5hfOOt4Lti7N94Yqye9CCqW+Kgalvh3qgZWN6oGVjd5xfKXebXiV3m14HAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2nF4ydpxeNnuhZap7oWXH + gKdt3oKqcemNt4H1lsGO/5nEkv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+axJL/l8GO/463gfWCqnHpgKdt3nuhZcd7oWWqdpxeNnacXjIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + dpxeHnacXiB7oWVme6Fld3+mbJCBqG+ciLF6wY22geKPuYTqk7yI9ZW/i/iaxZP/m8aU/57Jmf+eyZn/ + nsmZ/57Jmf+bxpT/msWT/5W/i/iTvIj1kLmE6o62geKJsXrBgahvnH+mbJB7oWV3e6FlZnacXiB2nF4e + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2m10bdptdKXmfZHR6oGW2faNoyoCnbOeGrnXt + lb+L/pbAjf6eyZn/nsmZ/57Jmf+eyZn/lsCN/pW/i/6GrnXtgKds532jaMp6oGW2eZ9kdHabXSl2m10b + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdptdFHabXR55n2RV + eqBlhX2jaJaApmuvha1zvZC5hOORuoXllsCN+JbAjfiWwI34lsCN+JG6heWRuoTiha1zvYCma699o2iW + eqBlhXmfZFV2m10edptdFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB0l10JdJddFnidYjh6oGSXe6FloX2kaOV9pGjlfaRo5X2kaOV8oWWh + fKBklnqdYjh0l10WdJddCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddCHSXXRN4nWIxeqBkg3uhZYx9pGjI + faRoyH2kaMh9pGjIfKFli3ygZIJ6nWIxdJddE3SXXQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3mWYCd5lmD3eZZg9tpFsObaRbDm2kWwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5lmAneZZg93mWYPbaRbDm2kWw5tpFsCAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////4H/////////gf//// + ////gAH///////+AAf//////+AAAH//////4AAAf/////4AAAAH/////gAAAAf////AAAAAAD///8AAA + AAAP//8AAAAAAAD//wAAAAAAAP/wAAAAAAAAD/AAAAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADAAAAAAAAAA8AAAAAAAAAD/AAAAAAAAD/8AAAAAAAAP//wAAAAAA////AAAAAAD////AAA + AAA////AAAAAAAP//8AAAAAAA//8AAAAAAAAP/wAAAAAAAA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAA/wAAAAAAAAD/8AAAAAAAP//wAAAAAAA////AAA + AAA////wAAAAAA////AAAAAAD///AAAAAAAA//8AAAAAAAD/8AAAAAAAAA/wAAAAAAAADwAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAPAAAAAAAAAA/wAAAAAAAA//AAAAAAAAD//8AAA + AAAP///wAAAAAA////+AAAAB/////4AAAAH/////+AAAH//////4AAAf//////+AAf///////4AB//// + ////+B/////////4H////ygAAAAwAAAAYAAAAAEAIAAAAAAAACQAAGEKAABhCgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLuqCcy7qg/ItqQOyLakCAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0bmiB9C6qBPQu6s80b6sVdHArWXRv6xk0b6sVM+7qjzQuqcT + 0bmiBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0bmiEtC6qDDQu6uX0b6sxtLAreXSwK3l + 0b6sxc+7qpbQuqcw0bmiEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIB0bmiEdC7qTnQvKt007+trNbEs8Ph08bm + 593Q8uvi1/rr4tf6593Q8uDTxubWxLPD07+trNC8q3TQu6k50bmiEdG5ogEAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJuaIBybmiB9C9qxbRvqwi07+rPtbDsmnXxban + 2cm429zNvezm28/77eTZ/fHq4P/x6uD/7eTZ/ebbz/vczb3s2cm429fFtqfWw7Jp07+rPtG9rCLQvasW + ybmiB8m5ogEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJuaIHybmiIdC9q3DRvqyo + 1MGv49zMvO/n28798Ojd//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+fbzv3czLzv + 1MGv49G9rKjQvatwybmiIcm5ogcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMtaQLzLWkG9G9q13Sv612 + 1MOymN7QwcDj1sjc59vO9Orf0/nu5dn+8erf//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8erf/+7l2f7q39P559vO9OPWyNze0MHA1MOymNK/rXbRvatdzLWkG8y1pAsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6ICzLijA9C9qgjOuaga + zrinNdK/rZ/Twa/C1sa16OPWyfXr4dX+8uvg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvg/+vh1f7j1sn11sa16NPBr8LSv62fzrinNc65qBrQvaoI + zLijA8y3ogIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6Ij + zLijP9C9qrfTwa/M18W14+fcz/fs49f88erf/vHq4P/y6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4P/x6uD/8erf/uzj1/zn3M/3 + 18W149PBr8zQvaq3zLijP8y3oiMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOuaUU + z7uoJNG+q1HUwrBv1sSzht3Pv9jg0sPl4tXH8+zi1/3v59z/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh/+/n3P/s4tf94tXH8+DSw+Xdz7/Y1sSzhtTCsG/RvqtRz7uoJM65pRQAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADOuaUyz7uoWtG+q8vWxLPf2sm57ezj1/7v59z/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3P/s49f+2sm57dbEs9/RvqvLz7uoWs65pTIAAAAA + AAAAAAAAAAC/v58GzLikPs24pJLPu6jG1cOy2uje0fXr4tb57eXa+/Hp3//x6uD/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hq4P/x6d//7eXa++vh1vno3dD1 + 1cOy2tC7qcbOuaWRzbmlPr+/nwa/v58GzLmkP824pJPPu6jM1cOy4Ojd0Pjs4tb67ubb/PHq4P/y6+D/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4P/x6d7/7uPW/+ze0P/s3tD/ + 7uPW//Hp3v/y6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4P/x6uD/ + 7ubb/Ovi1vrn3M/41cOy4NC7qczOuaWSzbmlPr+/nwYAAAAAzMyZAszMmQXPuqhRz7upfNC8qt3YyLjo + 3tDB8e7m2/7w6d7/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hp3v/s4dT/ + 3MGp/9Ksjf/SrI3/3MGp/+zh1P/x6d7/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Dp3v/u5tv+3tDB8djIuOjQvKrdz7upfM+6qFG/v78Ev7+/AgAAAAAAAAAAzMyZAczMmQLPuqgg + z7upMs+8qlrVw7OB18e3nt3PwObh1MXu5trN9e7l2v3w6d7/8uvh//Lr4f/y6+H/8uvh//Do3P/t49b/ + 4Mi0/9u+pv/Tr5H/1qqH/9ingP/Yp4D/1qqH/9Ovkf/bvqb/4Mi0/+3j1v/w6Nz/8uvh//Lr4f/y6+H/ + 8uvh//Dp3v/u5dr95trN9eHUxe7dz8Dm18e3ntXDs4DRu6la0LqpMs+6qCC/v78Cv7+/AQAAAAAAAAAA + AAAAAAAAAAAAAAAAqqqqAaqqqgPMuKY5zbimYtC9qs3VxLLb3c6+6Org1Pnu5tv98erg/vHq4P/x6uD/ + 8ejd/+3i1f/o2sr/1LCU/82hgP/Fj2f/05xx/92lef/dpHn/05tx/8WPZv/NoYD/1LCU/+jayv/t4tX/ + 8ejd//Hq4P/x6uD/8erg/u7m2/3q4NT53c6+59XEstrQvarNzbimYs63pTn/gIAC/4CAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqqqqAKqqqgDMuKYCzbimBNC9qgnRu6go0buoVtG/rL3TwrDb + 3My96+LTxPfl1cb/0auN/8yfff/Fj2f/1p5z/96lef/ttIj/7rWK/++2iv/vtor/7rWJ/+20iP/epXn/ + 1p5z/8WPZ//Mn33/0auN/+XVxv/i08T33My969PCsNvRv6y90buoVtG7qCjQvaoJzbimBM63pQL/gIAA + /4CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPuKUT + z7ilL8y1n37NtJ2h0LKZ3NS1nPDXtpz91aaD/9WifP/VnXP/4ad8/+asgP/vtor/8LeL//C3i//wt4v/ + 8LeL/++2iv/mrID/4ad8/9Wdc//Vonz/1aaD/9e2nP3UtZzw0LKZ3M20naHMtZ9+z7ilL8+4pRMAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALd6TiW6gVVNvIdcx7+IXebCiV/73qR4/+asgP/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//mrID/3qR4/8KJX/u/iF3mvIdcx7qBVU23ek4l + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAuH1PArh9Ty+6gFNdu4FVoMGHW8DJj2PQ3aR49OOqfvrnroL+7LOH/+61if/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utYn/7LOH/+eugv7jqn76 + 3aR49MmPY9DBh1vAvIFVobuAU164fU8vuH1PAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAtX5RA7V+UQ65gFMfuoBULL+FWF7DiV2Oxoxg08uRZevSmGz05q2B/+yzh//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//ss4f/5q2B/9KYbPTLkWXrxoxg1MSJXY7AhVheu4BULLmAUx+1flEOtX5RAwAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtX5RDrV+UUW5gFOau4FV08eNYezUm2/0566C/+61if/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utYn/566C/9Wbb/THjWHru4FV07mAU5q1flFF + tX5RDgAAAAAAAAAAAAAAAAAAAACqgFUEuIBSHLmAUkC9gVZ4wYVajc2TZ6zWnHDT2qF17eCne/flrID7 + 7LOH/++2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//vtor/7LOH/+WsgPrgp3v3 + 2qF17dWccNPNk2atwYVajr2BVni5gFJAuIBSHKqAVQSqgFUGuIBSLrmAUmq9gVbIwYZa49KXa/HhqHz5 + 67KH//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/67KH/+GofPrRl2rywYZa472BVsi5gFJquIBSLqqAVQa/gEAEun1RKrp9UmS7gVXF + wIVZ4dGWavDhp3v567KG//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7LaK/+m1if/ptoj/7LaJ//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/67KG/+Gne/nRlmrwwIVZ4buBVcW6fVJkun1RKr+AQAS/gEAC + un1RGbp9Ujy7gFV3v4VZkMyRZbfVm2/a2qB08uKpfPnnrYH77bSI/++2iv/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7LaK/+e1iP/UsoL/yrB//8Ovff/Dr3z/yrB//9Wygv/ntYj/7LaK//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//vtor/7bSI/+eugfviqXz52qB08tWbb9rMkWW3v4VZkLuAVXe6fVI8 + un1RGb+AQAIAAAAAAAAAAAAAAACqVVUCt3lTFrl9U2K7gFWsvYJW38ySZe/Zn3L26a+E/++1iv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/57WI/9myg/+rqnT/l6dv/4mla/+JpWv/l6dv/6yqdP/asoP/ + 57WI//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//vton/6bCD/9mfcvbMkmXvvYJW37uAVay5fVNi + t3lTFqpVVQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUAt3lTBLl9UxS8flMjvn9UMMGFWmzEiV2b + xoxg3dGXa+vYnnLy6rGF/+20iP/wt4v/6LWI/9Wygv+6rXn/oqly/5qrdP+WtoD/mL2J/5nCj/+Zwo// + mL2J/5a2gP+aq3T/oqly/7qtef/VsoL/6LWI//C3i//ttIj/6rGF/9iecvLRl2vrxoxg3cSJXZvBhVps + vIFVL7uAVSK5fVMUt3lTBKpVVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA + yF8/A7h7UT26f1Rqu4FVqsiNYcLPlWnR3qh79t6ugPvesoP907GB/8Gwfv+ornn/k611/46veP+UvIf/ + mcSR/53JmP+dyZj/mcSR/5S8h/+Or3j/k611/6iuef/BsH7/07GB/96yg/3eroD73qh79s+VadHIjWHC + u4FVqrp/VGq4e1E9uHtRAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALR7Ty6ygFJZsIVW056TX+mTm2T3iKVr/4yudv+Tu4f/ + nMaV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMaV/5O7h/+Mrnb/iKVr/5ObZPeek1/p + sIVW07KAUlm0e08uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3n2ALd59gG4ScYW+Jm2KXkppk35SodPCVsX37 + lbqG/5e+i/+aw5L/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciY/5rDkv+Xvov/ + lbqG/5WxffuUqHTwkppk34mbYpeEnGFvd59gG3efYAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3nV4Cd55fA3qiZQh5oWMaeaFjNXykZ59+pmnC + galv6I63gvWXwI7+nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5fAjv6Ot4L1galv6H6macJ8pGefeaFjNXmhYxp6omUId55fA3edXgIAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3nV4jd55fP3qiZbd9pWnM + gahv45K8iPeYwpD8nciX/p3ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/nciX/pjCkPySvIj3gahv432lacx6omW3 + d55fP3edXiMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3oF8UeaFhJHuiZFF+pmlv + gKhshoixediKs3zljbaB85fBj/2bxZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5vFlP+XwY/9 + jbaB84qzfOWIsXnYgKhshn6maW97omRReaFhJHegXxQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3oF8y + eaFhWnuiZMuAqGzfhKxx7ZfCkP6axZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5rFlP+XwpD+hKxx7YCobN97omTLeaFhWnegXzIAAAAAAAAAAAAAAACAn2AG + d5xfPnacX5J5n2PGgKds2pO+ivWXwY75mcSS+53Il/+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+dyJf/mcSS+5fBjvmTvYn1f6Zs2nigY8Z2nmCR + d55gPoCfYAaAn2AGd5xfP3acX5N5n2PMf6ds4JO9ifiXwY/6msST/J3ImP+eyZj/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57JmP+dyJj/msST/JfBj/qTvIn4 + f6Zs4HmgY8x2nmCSd55gPoCfYAYAAAAAZplmAmaZZgV4oWNReaFkfHuiZt2Dq3LoibF68ZrEk/6cx5b/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHlv+axJP+ + ibF68YOrcuh7ombdeaFkfHihY1GAgEAEgIBAAgAAAAAAAAAAZplmAWaZZgJ4oWMgeaFkMnqiZlp/qG2B + gqpwnoixeeaMtH7ukLqF9ZnEk/2cx5f/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHl/+ZxJP9 + kbqF9Yy1fu6IsXnmgqpwnn+obYB7omZaeaFkMnihYyCAgEACgIBAAQAAAAAAAAAAAAAAAAAAAAAAAAAA + VapVAVWqVQN1oGE5dqBhYnqhZM1/p2zbhq936JXAjfmaxZP9nciY/p3ImP+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/ + nciY/prFk/2WwI35h7B353+nbNp6oWTNdqBhYnagYTmAgIACgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAVapVAFWqVQB1oGECdqBhBHqhZAl5nmEoeZ1hVnuhZ71+pWrbhq5265K7h/eZw5P/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5nDk/+Su4f3hq52636latt7oWe9eZ1hVnmeYSh6oWQJdqBhBHagYQKAgIAAgICAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3m14Td5teL3qgZHB8o2iH + g6txoouzfcyPuIPpk72K9pbBjvqbxpX/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nciY/5vGlf+XwY76k72K9o+4g+mLs33Mg6txonyjaId6oGRwd5teL3ebXhMAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB2nF4LdpxeNnqgZI17oWbIgqpx6Iq0ffKWwY7/nMeX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nceX/5fBjv+LtH3ygqpx6HuhZsh6oGSNdpxeNnacXgsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB2nF4CdpxeC3qgZBx7oWUpfaRpToCnbX6BqXDFhq115Iqye++XwY7+ + m8aV/57Jmf+eyZn/m8aV/5fBjv6Ksnvvhq115IKpcMWAp21+faRpTnuhZSl6oGQcdpxeC3acXgIAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2m10BdptdH3mfY056oGWS + f6ZrtISrcsaSu4bplb+M85jCkPqYwpD6lr+M85K7humEq3LGf6ZrtHqgZZJ5n2NOdptdH3abXQEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAdJddEnidYTB6oGSXfKNnxn2kaOV9pGjlfaNnxXygZJZ5nWEwdJddEgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddB3idYRN6oGQ8fKJnVXyjaGV8pGdkfKNmVHygZDx5nWET + dJddBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5lmCXeZZg9tpFsO + baRbCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///w///8AAP//4Af//wAA///gB///AAD//gAA + f/8AAP/wAAAP/wAA//AAAA//AAD/gAAAAf8AAPwAAAAAPwAA/AAAAAA/AADgAAAAAAcAAOAAAAAABwAA + AAAAAAAAAAAAAAAAAAAAAIAAAAAAAQAAgAAAAAABAADwAAAAAA8AAPAAAAAADwAA/4AAAAH/AAD/4AAA + B/8AAP4AAAAAfwAA8AAAAAAPAADwAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 4AAAAAAHAADgAAAAAAcAAPwAAAAAfwAA/+AAAAf/AAD/gAAAAf8AAPwAAAAAPwAA/AAAAAA/AADgAAAA + AAcAAOAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAQAAgAAAAAABAADwAAAAAA8AAPAAAAAADwAA + /4AAAAH/AAD/8AAAD/8AAP/wAAAP/wAA//4AAH//AAD//+AH//8AAP//4Af//wAA///8P///AAAoAAAA + IAAAAEAAAAABACAAAAAAAAAQAABhCgAAYQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMu6oBzLuqD8i2pA7ItqQBAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIE0LqnJdC7q5LSwK3X0sCt18+7qpHQuqYk + 0bmiBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIG0LuoL9G9rIzVw7HN4tbJ7u3l2vzt5dr8 + 4tbJ7tXDsc3RvayM0LuoL9G5ogYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJuaIMz72qRdK/rZfZyLfI5trN6+3k2Prv593+ + 8uvh//Lr4f/v593+7eTY+ubazevZyLfI0r+tl8+8qkXJuaIMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMtaQU0LyqV9PAr5rczr7H59zP7Ozi1/rw6N3/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+zi1/rn3M/s3M6+x9PAr5rQvKpXzLWkFAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6Idz7ypZdTBsJzf0MLL5tvP7uzi1/rw6d7/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Dp3v/s4tf65tvP7t/QwsvUwbCc + z7ypZcy3oh0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOuaUg0b6radbEs5rg0sPS5trN8ezi1/vx6d// + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/x6d// + 7OLX++bazfHg0sPS1sSzmtG+q2nOuaUgAAAAAAAAAAC/v58EzbikW8+7qJnf0cHZ5drM8u3k2Pzx6t// + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8erf/+3k2Pzl2czy3tDB2dC7qZnOuaVav7+fBL+/nwTNuKRe0LuoqN7PwOPm2872 + 7ubb/fHq4P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/7uXZ/+POuv/jzrr/7uXZ//Lq4P/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/x6uD/7ubb/ebbzvbdz7/j0LupqM65pVy/v58EAAAAAMzMmQPPuqg0 + 0Lyqd9jHt6rh1Mbd593Q9e3l2vzx6uD/8uvh//Lr4f/x6t//7eHU/+PNuv/bvqX/1qmF/9aohf/bvqX/ + 4826/+3h1P/x6t//8uvh//Lr4f/x6uD/7eXa/Ofd0PXh1Mbd2Me3qtC7qnfPuqg0v7+/AgAAAAAAAAAA + AAAAAAAAAACqqqoCzbimMM+8qXfXxrWq4dTF1+jd0fTs4tb769/R/+TPvP/bvKL/06N//9Occv/jqn7/ + 46p+/9Occv/To3//27yi/+TPvP/r39H/7OLW++jd0fTh1MXX18a1qc+8qXfNuKYw/4CAAQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM+4pSPOuKR10bqkw9e+p+zZuJ7+0qJ+/9ObcP/jqX3/ + 77aK//C3i//wt4v/77aK/+Opff/Tm3D/0qJ+/9m4nv7Xvqfs0bqkw864pHXPuKUjAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4fU8IuoBUHb2CVkDDi2CPyJBm49OZbv3mrID/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//mrID/05lu/ciQZuPDi2CPvYJWQLuAVB24fU8I + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1flEHuYBUF72DVkLBh1uexoxg4dedcffqsIT/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/6rCE/9edcffHjGDh + wodbn72DVUK5gFQXtX5RBwAAAAAAAAAAAAAAAKqAVQC5gFIHvYFWDruDVkO+hFiyxo1h5tyjd/jss4f/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/+yzh//do3f4x41g5b6EWLK7g1ZDvYFWDrmAUgeqgFUAqoBVBrmAUmO9gVbPzpNn7eWrgPvutYr/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//utYr/5KuA/M2TZu69gVbPuYBSY6qAVQa/gEAEun1SXruBVc3Nkmbs + 5Kt/++61if/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//ptYn/6baI//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61if/kq3/7zZJm7LuBVc26fVJev4BABL+AQAC6fVIG + uHpVELyAVlm/hFjBypBk69+levnttIj/8LeL//C3i//wt4v/8LeL/+62iv/fs4X/rat1/4+mbf+Ppm3/ + rqt1/9+zhf/utor/8LeL//C3i//wt4v/8LeL/+20iP/fpnn5ypBk67+EWMG8gFZZuHpVELp9Uga/gEAA + AAAAAAAAAACqVVUAuX1TC719Uxq/gldNwYdbq8qQZOXdo3f27LOH/+22iv/asoP/r6t2/5Wpcf+VuIL/ + msSS/5rEkv+VuIL/lalx/6+rdv/asoP/7baK/+yzh//do3f2ypBk5cGHW6u+gldNvIBVGbl9UwuqVVUA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAALh6UAu6gFQgv4VZRr6MXpizlmXno6Nu+5qsdv+Zuob/ + msKQ/5zGlf+eyZn/nsmZ/5zGlf+awpD/mbqG/5qsdv+jo277s5Zl576MXpi/hVlGuoBUILh7UQsAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHefYBR/n2Jfh59luZCoc+yWuYb9 + mcGP/5zGlf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cxpX/mcGP/5a5hv2QqHPsh59luX+fYl93n2AU + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHedXh16oWRlfqVrnIqye8uSvIfu + l8GP+pzHlv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMeW/5fBj/qSvIfu + irJ7y36la5x6oWRld51eHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHegXyB7omRpgKhrmou0fdKRu4bx + l8KQ+53Hl/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/53Hl/+XwpD7kbuG8Yu0fdKAqGuae6JkaXegXyAAAAAAAAAAAICfYAR2nF9beaBjmYmyetmQuoXy + mMOR/J3ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/mMOR/JC6hPKJsnrZeKBjmXaeYFqAn2AEgJ9gBHacX155oGOo + ibJ645K7h/aaxJP9nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+axJP9kruH9omxeuN5oGOodp1fXICfYAQAAAAA + ZplmA3ihYzR6omZ3gqpxqoy1ft2TvIj1mcSS/J3ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+ZxJL8k7yI9Yy1ft2CqnGqe6Jmd3ihYzSAgEAC + AAAAAAAAAAAAAAAAAAAAAFWqVQJ2oGEweaFjd4CobqqLtH/Xk72K9JnDkfudyJf/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Il/+Zw5H7k72K9Iy1f9eBqW6peaFjd3agYTCAgIAB + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5teI3mfY25/pmyqi7N80JS9ivOYw5H7 + nMeX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Hl/+Yw5H7lL2K84uzfNB/pmyqeZ9jbnebXiMAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHacXhR6oGNa + faRpq4evd8+TvYrymcOR+5zHlv+eyZn/nsmZ/5zHlv+Zw5H7lL2K8oevd899pGmreqBjWnacXhQAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB2m10MeJ5iRHuiZ6eDqnDQk72J8ZrFk/yaxZP8k72J8YOqcNB7omeneJ5iRHabXQwAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddBHecYSV6oGSSfaRo132kaNd8oGSReJxhJHSXXQQAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHeZZgF3mWYPbaRbDm2kWwEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/8P///8A// + /8AD//8AAP/8AAA/8AAAD8AAAAMAAAAAAAAAAIAAAAHgAAAH/AAAP/gAAB/gAAAHAAAAAAAAAAAAAAAA + AAAAAMAAAAPwAAAf/AAAP/AAAA/AAAADAAAAAAAAAACAAAAB4AAAB/wAAD//AAD//8AD///wD////D// + KAAAABAAAAAgAAAAAQAgAAAAAAAABAAAYQoAAGEKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAANG6pgrRvqxe0b6sXtC6pgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + zrypFNXDsWXg0sTQ7OPY+uzj2Prg0sTQ1cOxZc68qRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPu6ch + 2Ma2dOLVx9Lt5dn58erg//Lr4f/y6+H/8erg/+3l2fni1cfS2Ma2dM+7pyEAAAAAAAAAAMy4pBjWxbN/ + 49fJ1u3l2fvy6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvg/+3l2fvj18nW1sWzf825pRjMuaMZ + 1cOyjuTZy97u5tv88uvh//Lr4P/t4dT/4cav/+HGr//t4dT/8uvg//Lr4f/u5tv85NnL3tXDso7NuqYZ + AAAAAKqqqgDPu6gq2Mi3huDPvujewqr/2amE/+Wtgf/lrYH/2amE/97Cqv/gz77o2Mi3hs+7qCr/gIAA + AAAAAAAAAAC1flECvIJVGMOJXHfVnHHa5q2B/vC3i//wt4v/8LeL//C3i//mrYH+1Zxx2sOJXHe8glUY + tX5RAgAAAAC4gFIcxIleg9ifc+TqsYX98LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//qsYX9 + 2J9z5MSJXYS4gFIcun1RGsOIXYnZn3Pq67KG/vC3i//wt4v/67aJ/8Wvff/Gr33/67aJ//C3i//wt4v/ + 67KG/tmfc+rDiF2Jun1RGgAAAAC4e1MDvoBVHMWKXn3RoHPdwa58/p60f/+aw5D/msOQ/560f//Brnz+ + 0aBz3cWKXn29gVYcuHtTAwAAAAAAAAAAAAAAAHmgYyGDqXB2kbJ945rCkf6dyJj/nsmZ/57Jmf+dyJj/ + msKR/pGyfeODqXB2eaBjIQAAAAAAAAAAdpxfGICobX+OuILWmcOS+57JmP+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZj/mcOS+464gtaAqG1/dp5gGHacXxmAp22OkLmE3prEk/yeyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5rEk/yQuYTef6dtjnedXxkAAAAAVapVAHihYyqDqnKFj7iD2prEk/ueyZj/ + nsmZ/57Jmf+eyZj/msST+4+4g9qDq3KEeKFjKoCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAHmfYhuBqG5y + jLV/2ZrFk/uaxZP7jbV/2YGobnJ5n2IbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHebYAp8omdefKNmXnibYAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8PwAA8A8AAMADAAAAAAAA + AAAAAIABAACAAQAAAAAAAAAAAACAAQAAwAMAAAAAAAAAAAAAgAEAAPAPAAD8PwAA + + + \ No newline at end of file diff --git a/Handler/Project/Dialog/Model_Motion_Desc.Designer.cs b/Handler/Project/Dialog/Model_Motion_Desc.Designer.cs new file mode 100644 index 0000000..5f40049 --- /dev/null +++ b/Handler/Project/Dialog/Model_Motion_Desc.Designer.cs @@ -0,0 +1,1060 @@ +namespace Project.Dialog +{ + partial class Model_Motion_Desc + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = 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 dataGridViewCellStyle4 = 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 dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Model_Motion_Desc)); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle14 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle13 = new System.Windows.Forms.DataGridViewCellStyle(); + this.dv = new System.Windows.Forms.DataGridView(); + this.titleDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.bs = new System.Windows.Forms.BindingSource(this.components); + this.ds1 = new Project.DataSet1(); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.dvPosition = new arCtl.arDatagridView(); + this.MotIndex = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.MotName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.posTitleDataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Category = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Description = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.btPos = new System.Windows.Forms.DataGridViewButtonColumn(); + this.btspeed = new System.Windows.Forms.DataGridViewButtonColumn(); + this.btacc = new System.Windows.Forms.DataGridViewButtonColumn(); + this.btdcc = new System.Windows.Forms.DataGridViewButtonColumn(); + this.btGo = new System.Windows.Forms.DataGridViewButtonColumn(); + this.btSet = new System.Windows.Forms.DataGridViewButtonColumn(); + this.bsPos = new System.Windows.Forms.BindingSource(this.components); + this.panel2 = new System.Windows.Forms.Panel(); + this.treeView1 = new System.Windows.Forms.TreeView(); + this.toolStrip2 = new System.Windows.Forms.ToolStrip(); + this.toolStripButton4 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton6 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton7 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton8 = new System.Windows.Forms.ToolStripButton(); + this.toolStrip1 = new System.Windows.Forms.ToolStrip(); + this.toolStripButton1 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton2 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton3 = new System.Windows.Forms.ToolStripButton(); + this.listView1 = new System.Windows.Forms.ListView(); + this.richTextBox1 = new System.Windows.Forms.RichTextBox(); + this.bindingNavigator1 = new System.Windows.Forms.BindingNavigator(this.components); + this.bindingNavigatorCountItem = new System.Windows.Forms.ToolStripLabel(); + this.bindingNavigatorMoveFirstItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMovePreviousItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorPositionItem = new System.Windows.Forms.ToolStripTextBox(); + this.bindingNavigatorSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorMoveNextItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMoveLastItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripButton5 = new System.Windows.Forms.ToolStripButton(); + this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.lbMotPos = new System.Windows.Forms.ToolStripLabel(); + this.dvMot = new arCtl.arDatagridView(); + this.dvc_axis = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column10 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column5 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column6 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column7 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column8 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column9 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dvc_desc = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.tmDisplay = new System.Windows.Forms.Timer(this.components); + this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); + this.panLeft = new System.Windows.Forms.Panel(); + this.arLabel18 = new arCtl.arLabel(); + this.panel6 = new System.Windows.Forms.Panel(); + this.panel3 = new System.Windows.Forms.Panel(); + this.panel1 = new System.Windows.Forms.Panel(); + this.tabControl5 = new System.Windows.Forms.TabControl(); + this.tabPage5 = new System.Windows.Forms.TabPage(); + this.splitH = new System.Windows.Forms.Panel(); + this.panel9 = new System.Windows.Forms.Panel(); + this.panTopMenu = new System.Windows.Forms.Panel(); + this.btSave = new System.Windows.Forms.Button(); + this.toolStripButton9 = new System.Windows.Forms.ToolStripButton(); + ((System.ComponentModel.ISupportInitialize)(this.dv)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bs)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.ds1)).BeginInit(); + this.tabControl1.SuspendLayout(); + this.tabPage1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dvPosition)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsPos)).BeginInit(); + this.panel2.SuspendLayout(); + this.toolStrip2.SuspendLayout(); + this.toolStrip1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.bindingNavigator1)).BeginInit(); + this.bindingNavigator1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dvMot)).BeginInit(); + this.panLeft.SuspendLayout(); + this.panel6.SuspendLayout(); + this.panel3.SuspendLayout(); + this.panel1.SuspendLayout(); + this.tabControl5.SuspendLayout(); + this.tabPage5.SuspendLayout(); + this.panTopMenu.SuspendLayout(); + this.SuspendLayout(); + // + // dv + // + this.dv.AllowUserToAddRows = false; + this.dv.AllowUserToDeleteRows = false; + this.dv.AutoGenerateColumns = false; + this.dv.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; + this.dv.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells; + this.dv.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.dv.ColumnHeadersHeight = 35; + this.dv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing; + this.dv.ColumnHeadersVisible = false; + this.dv.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.titleDataGridViewTextBoxColumn}); + this.dv.DataSource = this.bs; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle1.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle1.Padding = new System.Windows.Forms.Padding(5); + dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dv.DefaultCellStyle = dataGridViewCellStyle1; + this.dv.Dock = System.Windows.Forms.DockStyle.Fill; + this.dv.Location = new System.Drawing.Point(0, 34); + this.dv.MultiSelect = false; + this.dv.Name = "dv"; + this.dv.RowHeadersVisible = false; + this.dv.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect; + this.dv.Size = new System.Drawing.Size(238, 223); + this.dv.TabIndex = 1; + this.dv.DataError += new System.Windows.Forms.DataGridViewDataErrorEventHandler(this.dv_DataError); + // + // titleDataGridViewTextBoxColumn + // + this.titleDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; + this.titleDataGridViewTextBoxColumn.DataPropertyName = "Title"; + this.titleDataGridViewTextBoxColumn.HeaderText = "Title"; + this.titleDataGridViewTextBoxColumn.Name = "titleDataGridViewTextBoxColumn"; + // + // bs + // + this.bs.DataMember = "MCModel"; + this.bs.DataSource = this.ds1; + this.bs.Filter = "isnull(title,\'\') <> \'\'"; + this.bs.Sort = "idx"; + this.bs.CurrentChanged += new System.EventHandler(this.bs_CurrentChanged_1); + // + // ds1 + // + this.ds1.DataSetName = "DataSet1"; + this.ds1.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + // + // tabControl1 + // + this.tabControl1.Controls.Add(this.tabPage1); + this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tabControl1.Location = new System.Drawing.Point(0, 0); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(1249, 709); + this.tabControl1.TabIndex = 141; + // + // tabPage1 + // + this.tabPage1.Controls.Add(this.dvPosition); + this.tabPage1.Controls.Add(this.panel2); + this.tabPage1.Controls.Add(this.richTextBox1); + this.tabPage1.Controls.Add(this.bindingNavigator1); + this.tabPage1.Location = new System.Drawing.Point(4, 27); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(3); + this.tabPage1.Size = new System.Drawing.Size(1241, 678); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "Position"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // dvPosition + // + this.dvPosition.A_DelCurrentCell = true; + this.dvPosition.A_EnterToTab = true; + this.dvPosition.A_KoreanField = null; + this.dvPosition.A_UpperField = null; + this.dvPosition.A_ViewRownumOnHeader = true; + this.dvPosition.AllowUserToAddRows = false; + this.dvPosition.AllowUserToDeleteRows = false; + this.dvPosition.AllowUserToResizeColumns = false; + this.dvPosition.AllowUserToResizeRows = false; + this.dvPosition.AutoGenerateColumns = false; + this.dvPosition.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; + this.dvPosition.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dvPosition.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.MotIndex, + this.MotName, + this.posTitleDataGridViewTextBoxColumn1, + this.Category, + this.Description, + this.btPos, + this.btspeed, + this.btacc, + this.btdcc, + this.btGo, + this.btSet}); + this.dvPosition.DataSource = this.bsPos; + dataGridViewCellStyle8.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle8.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle8.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle8.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle8.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle8.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dvPosition.DefaultCellStyle = dataGridViewCellStyle8; + this.dvPosition.Dock = System.Windows.Forms.DockStyle.Fill; + this.dvPosition.Location = new System.Drawing.Point(3, 3); + this.dvPosition.Name = "dvPosition"; + dataGridViewCellStyle9.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle9.BackColor = System.Drawing.Color.White; + dataGridViewCellStyle9.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle9.ForeColor = System.Drawing.Color.Black; + dataGridViewCellStyle9.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle9.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle9.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dvPosition.RowHeadersDefaultCellStyle = dataGridViewCellStyle9; + this.dvPosition.RowHeadersVisible = false; + this.dvPosition.RowTemplate.DefaultCellStyle.BackColor = System.Drawing.Color.White; + this.dvPosition.RowTemplate.DefaultCellStyle.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.dvPosition.RowTemplate.DefaultCellStyle.ForeColor = System.Drawing.Color.Black; + this.dvPosition.RowTemplate.DefaultCellStyle.Padding = new System.Windows.Forms.Padding(2); + this.dvPosition.RowTemplate.Height = 50; + this.dvPosition.Size = new System.Drawing.Size(868, 572); + this.dvPosition.TabIndex = 140; + this.dvPosition.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.arDatagridView2_CellClick); + // + // MotIndex + // + this.MotIndex.DataPropertyName = "MotIndex"; + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.MotIndex.DefaultCellStyle = dataGridViewCellStyle2; + this.MotIndex.HeaderText = "Axis"; + this.MotIndex.Name = "MotIndex"; + this.MotIndex.Width = 59; + // + // MotName + // + this.MotName.DataPropertyName = "MotName"; + this.MotName.HeaderText = "MotName"; + this.MotName.Name = "MotName"; + this.MotName.Width = 95; + // + // posTitleDataGridViewTextBoxColumn1 + // + this.posTitleDataGridViewTextBoxColumn1.DataPropertyName = "PosTitle"; + dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + this.posTitleDataGridViewTextBoxColumn1.DefaultCellStyle = dataGridViewCellStyle3; + this.posTitleDataGridViewTextBoxColumn1.HeaderText = "Title"; + this.posTitleDataGridViewTextBoxColumn1.Name = "posTitleDataGridViewTextBoxColumn1"; + this.posTitleDataGridViewTextBoxColumn1.Width = 61; + // + // Category + // + this.Category.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.Category.DataPropertyName = "Category"; + dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + this.Category.DefaultCellStyle = dataGridViewCellStyle4; + this.Category.HeaderText = "Category"; + this.Category.Name = "Category"; + this.Category.Width = 200; + // + // Description + // + this.Description.DataPropertyName = "Description"; + dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle5.Font = new System.Drawing.Font("맑은 고딕", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.Description.DefaultCellStyle = dataGridViewCellStyle5; + this.Description.HeaderText = "Description"; + this.Description.Name = "Description"; + this.Description.Width = 103; + // + // btPos + // + this.btPos.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.btPos.DataPropertyName = "Position"; + this.btPos.HeaderText = "Position"; + this.btPos.Name = "btPos"; + this.btPos.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.btPos.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + // + // btspeed + // + this.btspeed.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.btspeed.DataPropertyName = "Speed"; + this.btspeed.HeaderText = "Speed"; + this.btspeed.Name = "btspeed"; + this.btspeed.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.btspeed.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.btspeed.Width = 50; + // + // btacc + // + this.btacc.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.btacc.DataPropertyName = "SpeedAcc"; + this.btacc.HeaderText = "Acc"; + this.btacc.Name = "btacc"; + this.btacc.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.btacc.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.btacc.Text = "Acc"; + this.btacc.Width = 50; + // + // btdcc + // + this.btdcc.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.btdcc.DataPropertyName = "SpeedDcc"; + this.btdcc.HeaderText = "Dcc"; + this.btdcc.Name = "btdcc"; + this.btdcc.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.btdcc.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.btdcc.Text = "Dcc"; + this.btdcc.Width = 50; + // + // btGo + // + this.btGo.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(0))))); + this.btGo.DefaultCellStyle = dataGridViewCellStyle6; + this.btGo.HeaderText = "Go"; + this.btGo.Name = "btGo"; + this.btGo.Text = "Go"; + this.btGo.Width = 50; + // + // btSet + // + this.btSet.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + dataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle7.BackColor = System.Drawing.Color.Blue; + this.btSet.DefaultCellStyle = dataGridViewCellStyle7; + this.btSet.HeaderText = "Set"; + this.btSet.Name = "btSet"; + this.btSet.Text = "Set"; + this.btSet.Width = 50; + // + // bsPos + // + this.bsPos.DataMember = "MCModel"; + this.bsPos.DataSource = this.ds1; + this.bsPos.Sort = "PosTitle,idx"; + this.bsPos.CurrentChanged += new System.EventHandler(this.bsPos_CurrentChanged); + // + // panel2 + // + this.panel2.Controls.Add(this.treeView1); + this.panel2.Controls.Add(this.toolStrip2); + this.panel2.Controls.Add(this.toolStrip1); + this.panel2.Controls.Add(this.listView1); + this.panel2.Dock = System.Windows.Forms.DockStyle.Right; + this.panel2.Location = new System.Drawing.Point(871, 3); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(367, 572); + this.panel2.TabIndex = 144; + // + // treeView1 + // + this.treeView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.treeView1.Location = new System.Drawing.Point(0, 188); + this.treeView1.Name = "treeView1"; + this.treeView1.Size = new System.Drawing.Size(367, 359); + this.treeView1.TabIndex = 145; + // + // toolStrip2 + // + this.toolStrip2.Dock = System.Windows.Forms.DockStyle.Bottom; + this.toolStrip2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripButton4, + this.toolStripButton6, + this.toolStripButton7, + this.toolStripButton8}); + this.toolStrip2.Location = new System.Drawing.Point(0, 547); + this.toolStrip2.Name = "toolStrip2"; + this.toolStrip2.Size = new System.Drawing.Size(367, 25); + this.toolStrip2.TabIndex = 147; + this.toolStrip2.Text = "toolStrip2"; + // + // toolStripButton4 + // + this.toolStripButton4.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton4.Image"))); + this.toolStripButton4.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton4.Name = "toolStripButton4"; + this.toolStripButton4.Size = new System.Drawing.Size(51, 22); + this.toolStripButton4.Text = "추가"; + this.toolStripButton4.Click += new System.EventHandler(this.toolStripButton4_Click); + // + // toolStripButton6 + // + this.toolStripButton6.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton6.Image"))); + this.toolStripButton6.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton6.Name = "toolStripButton6"; + this.toolStripButton6.Size = new System.Drawing.Size(51, 22); + this.toolStripButton6.Text = "삭제"; + this.toolStripButton6.Click += new System.EventHandler(this.toolStripButton6_Click); + // + // toolStripButton7 + // + this.toolStripButton7.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.toolStripButton7.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton7.Image"))); + this.toolStripButton7.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton7.Name = "toolStripButton7"; + this.toolStripButton7.Size = new System.Drawing.Size(66, 22); + this.toolStripButton7.Text = "Refresh"; + this.toolStripButton7.Click += new System.EventHandler(this.toolStripButton7_Click); + // + // toolStripButton8 + // + this.toolStripButton8.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton8.Image"))); + this.toolStripButton8.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton8.Name = "toolStripButton8"; + this.toolStripButton8.Size = new System.Drawing.Size(51, 22); + this.toolStripButton8.Text = "편집"; + this.toolStripButton8.Click += new System.EventHandler(this.toolStripButton8_Click); + // + // toolStrip1 + // + this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripButton1, + this.toolStripButton2, + this.toolStripButton3}); + this.toolStrip1.Location = new System.Drawing.Point(0, 163); + this.toolStrip1.Name = "toolStrip1"; + this.toolStrip1.Size = new System.Drawing.Size(367, 25); + this.toolStrip1.TabIndex = 146; + this.toolStrip1.Text = "toolStrip1"; + // + // toolStripButton1 + // + this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image"))); + this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton1.Name = "toolStripButton1"; + this.toolStripButton1.Size = new System.Drawing.Size(51, 22); + this.toolStripButton1.Text = "등록"; + this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click_1); + // + // toolStripButton2 + // + this.toolStripButton2.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton2.Image"))); + this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton2.Name = "toolStripButton2"; + this.toolStripButton2.Size = new System.Drawing.Size(51, 22); + this.toolStripButton2.Text = "해제"; + this.toolStripButton2.Click += new System.EventHandler(this.toolStripButton2_Click); + // + // toolStripButton3 + // + this.toolStripButton3.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.toolStripButton3.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton3.Image"))); + this.toolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton3.Name = "toolStripButton3"; + this.toolStripButton3.Size = new System.Drawing.Size(66, 22); + this.toolStripButton3.Text = "Refresh"; + this.toolStripButton3.Click += new System.EventHandler(this.toolStripButton3_Click); + // + // listView1 + // + this.listView1.Dock = System.Windows.Forms.DockStyle.Top; + this.listView1.HideSelection = false; + this.listView1.Location = new System.Drawing.Point(0, 0); + this.listView1.Name = "listView1"; + this.listView1.Size = new System.Drawing.Size(367, 163); + this.listView1.TabIndex = 144; + this.listView1.UseCompatibleStateImageBehavior = false; + // + // richTextBox1 + // + this.richTextBox1.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsPos, "Category", true)); + this.richTextBox1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.richTextBox1.Location = new System.Drawing.Point(3, 575); + this.richTextBox1.Name = "richTextBox1"; + this.richTextBox1.Size = new System.Drawing.Size(1235, 75); + this.richTextBox1.TabIndex = 142; + this.richTextBox1.Text = ""; + // + // bindingNavigator1 + // + this.bindingNavigator1.AddNewItem = null; + this.bindingNavigator1.BindingSource = this.bsPos; + this.bindingNavigator1.CountItem = this.bindingNavigatorCountItem; + this.bindingNavigator1.DeleteItem = null; + this.bindingNavigator1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.bindingNavigator1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.bindingNavigatorMoveFirstItem, + this.bindingNavigatorMovePreviousItem, + this.bindingNavigatorSeparator, + this.bindingNavigatorPositionItem, + this.bindingNavigatorCountItem, + this.bindingNavigatorSeparator1, + this.bindingNavigatorMoveNextItem, + this.bindingNavigatorMoveLastItem, + this.bindingNavigatorSeparator2, + this.toolStripButton5, + this.toolStripButton9, + this.toolStripSeparator1, + this.lbMotPos}); + this.bindingNavigator1.Location = new System.Drawing.Point(3, 650); + this.bindingNavigator1.MoveFirstItem = this.bindingNavigatorMoveFirstItem; + this.bindingNavigator1.MoveLastItem = this.bindingNavigatorMoveLastItem; + this.bindingNavigator1.MoveNextItem = this.bindingNavigatorMoveNextItem; + this.bindingNavigator1.MovePreviousItem = this.bindingNavigatorMovePreviousItem; + this.bindingNavigator1.Name = "bindingNavigator1"; + this.bindingNavigator1.PositionItem = this.bindingNavigatorPositionItem; + this.bindingNavigator1.Size = new System.Drawing.Size(1235, 25); + this.bindingNavigator1.TabIndex = 141; + this.bindingNavigator1.Text = "bindingNavigator1"; + // + // bindingNavigatorCountItem + // + this.bindingNavigatorCountItem.ForeColor = System.Drawing.Color.Black; + this.bindingNavigatorCountItem.Name = "bindingNavigatorCountItem"; + this.bindingNavigatorCountItem.Size = new System.Drawing.Size(27, 22); + this.bindingNavigatorCountItem.Text = "/{0}"; + this.bindingNavigatorCountItem.ToolTipText = "전체 항목 수"; + // + // bindingNavigatorMoveFirstItem + // + this.bindingNavigatorMoveFirstItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveFirstItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveFirstItem.Image"))); + this.bindingNavigatorMoveFirstItem.Name = "bindingNavigatorMoveFirstItem"; + this.bindingNavigatorMoveFirstItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveFirstItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveFirstItem.Text = "처음으로 이동"; + // + // bindingNavigatorMovePreviousItem + // + this.bindingNavigatorMovePreviousItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMovePreviousItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMovePreviousItem.Image"))); + this.bindingNavigatorMovePreviousItem.Name = "bindingNavigatorMovePreviousItem"; + this.bindingNavigatorMovePreviousItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMovePreviousItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMovePreviousItem.Text = "이전으로 이동"; + // + // bindingNavigatorSeparator + // + this.bindingNavigatorSeparator.Name = "bindingNavigatorSeparator"; + this.bindingNavigatorSeparator.Size = new System.Drawing.Size(6, 25); + // + // bindingNavigatorPositionItem + // + this.bindingNavigatorPositionItem.AccessibleName = "위치"; + this.bindingNavigatorPositionItem.AutoSize = false; + this.bindingNavigatorPositionItem.Font = new System.Drawing.Font("맑은 고딕", 9F); + this.bindingNavigatorPositionItem.Name = "bindingNavigatorPositionItem"; + this.bindingNavigatorPositionItem.Size = new System.Drawing.Size(50, 23); + this.bindingNavigatorPositionItem.Text = "0"; + this.bindingNavigatorPositionItem.ToolTipText = "현재 위치"; + // + // bindingNavigatorSeparator1 + // + this.bindingNavigatorSeparator1.Name = "bindingNavigatorSeparator1"; + this.bindingNavigatorSeparator1.Size = new System.Drawing.Size(6, 25); + // + // bindingNavigatorMoveNextItem + // + this.bindingNavigatorMoveNextItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveNextItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveNextItem.Image"))); + this.bindingNavigatorMoveNextItem.Name = "bindingNavigatorMoveNextItem"; + this.bindingNavigatorMoveNextItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveNextItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveNextItem.Text = "다음으로 이동"; + // + // bindingNavigatorMoveLastItem + // + this.bindingNavigatorMoveLastItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveLastItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveLastItem.Image"))); + this.bindingNavigatorMoveLastItem.Name = "bindingNavigatorMoveLastItem"; + this.bindingNavigatorMoveLastItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveLastItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveLastItem.Text = "마지막으로 이동"; + // + // bindingNavigatorSeparator2 + // + this.bindingNavigatorSeparator2.Name = "bindingNavigatorSeparator2"; + this.bindingNavigatorSeparator2.Size = new System.Drawing.Size(6, 25); + // + // toolStripButton5 + // + this.toolStripButton5.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton5.Image"))); + this.toolStripButton5.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton5.Name = "toolStripButton5"; + this.toolStripButton5.Size = new System.Drawing.Size(75, 22); + this.toolStripButton5.Text = "그룹설정"; + this.toolStripButton5.Click += new System.EventHandler(this.toolStripButton5_Click); + // + // toolStripSeparator1 + // + this.toolStripSeparator1.Name = "toolStripSeparator1"; + this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25); + // + // lbMotPos + // + this.lbMotPos.Name = "lbMotPos"; + this.lbMotPos.Size = new System.Drawing.Size(17, 22); + this.lbMotPos.Text = "--"; + // + // dvMot + // + this.dvMot.A_DelCurrentCell = true; + this.dvMot.A_EnterToTab = true; + this.dvMot.A_KoreanField = null; + this.dvMot.A_UpperField = null; + this.dvMot.A_ViewRownumOnHeader = false; + this.dvMot.AllowUserToAddRows = false; + this.dvMot.AllowUserToDeleteRows = false; + this.dvMot.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.dvMot.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dvMot.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dvc_axis, + this.Column10, + this.Column2, + this.Column3, + this.Column4, + this.Column5, + this.Column6, + this.Column7, + this.Column8, + this.Column9, + this.dvc_desc}); + dataGridViewCellStyle14.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle14.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle14.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle14.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle14.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle14.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle14.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dvMot.DefaultCellStyle = dataGridViewCellStyle14; + this.dvMot.Dock = System.Windows.Forms.DockStyle.Fill; + this.dvMot.Location = new System.Drawing.Point(3, 3); + this.dvMot.MultiSelect = false; + this.dvMot.Name = "dvMot"; + this.dvMot.ReadOnly = true; + this.dvMot.RowTemplate.Height = 23; + this.dvMot.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dvMot.Size = new System.Drawing.Size(997, 220); + this.dvMot.TabIndex = 36; + this.dvMot.SelectionChanged += new System.EventHandler(this.dvMot_SelectionChanged); + // + // dvc_axis + // + this.dvc_axis.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + dataGridViewCellStyle10.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(232)))), ((int)(((byte)(232)))), ((int)(((byte)(232))))); + this.dvc_axis.DefaultCellStyle = dataGridViewCellStyle10; + this.dvc_axis.HeaderText = "Axis"; + this.dvc_axis.Name = "dvc_axis"; + this.dvc_axis.ReadOnly = true; + this.dvc_axis.Width = 40; + // + // Column10 + // + this.Column10.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + dataGridViewCellStyle11.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle11.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(232)))), ((int)(((byte)(232)))), ((int)(((byte)(232))))); + this.Column10.DefaultCellStyle = dataGridViewCellStyle11; + this.Column10.HeaderText = "Name"; + this.Column10.Name = "Column10"; + this.Column10.ReadOnly = true; + this.Column10.Width = 180; + // + // Column2 + // + dataGridViewCellStyle12.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight; + this.Column2.DefaultCellStyle = dataGridViewCellStyle12; + this.Column2.HeaderText = "Cmd"; + this.Column2.Name = "Column2"; + this.Column2.ReadOnly = true; + // + // Column3 + // + dataGridViewCellStyle13.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight; + this.Column3.DefaultCellStyle = dataGridViewCellStyle13; + this.Column3.HeaderText = "Act"; + this.Column3.Name = "Column3"; + this.Column3.ReadOnly = true; + // + // Column4 + // + this.Column4.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.Column4.HeaderText = "Home"; + this.Column4.Name = "Column4"; + this.Column4.ReadOnly = true; + this.Column4.Width = 50; + // + // Column5 + // + this.Column5.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.Column5.HeaderText = "-"; + this.Column5.Name = "Column5"; + this.Column5.ReadOnly = true; + this.Column5.Width = 50; + // + // Column6 + // + this.Column6.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.Column6.HeaderText = "+"; + this.Column6.Name = "Column6"; + this.Column6.ReadOnly = true; + this.Column6.Width = 50; + // + // Column7 + // + this.Column7.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.Column7.HeaderText = "Inp"; + this.Column7.Name = "Column7"; + this.Column7.ReadOnly = true; + this.Column7.Width = 50; + // + // Column8 + // + this.Column8.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.Column8.HeaderText = "Alm"; + this.Column8.Name = "Column8"; + this.Column8.ReadOnly = true; + this.Column8.Width = 50; + // + // Column9 + // + this.Column9.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.Column9.HeaderText = "H.Set"; + this.Column9.Name = "Column9"; + this.Column9.ReadOnly = true; + this.Column9.Width = 50; + // + // dvc_desc + // + this.dvc_desc.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; + this.dvc_desc.HeaderText = "Description"; + this.dvc_desc.Name = "dvc_desc"; + this.dvc_desc.ReadOnly = true; + // + // tmDisplay + // + this.tmDisplay.Interval = 500; + this.tmDisplay.Tick += new System.EventHandler(this.tmDisplay_Tick); + // + // panLeft + // + this.panLeft.Controls.Add(this.dv); + this.panLeft.Controls.Add(this.arLabel18); + this.panLeft.Dock = System.Windows.Forms.DockStyle.Left; + this.panLeft.Location = new System.Drawing.Point(0, 0); + this.panLeft.Name = "panLeft"; + this.panLeft.Size = new System.Drawing.Size(238, 257); + this.panLeft.TabIndex = 3; + // + // arLabel18 + // + this.arLabel18.BackColor = System.Drawing.Color.Gray; + this.arLabel18.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.arLabel18.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel18.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.arLabel18.BorderColorOver = System.Drawing.Color.DodgerBlue; + this.arLabel18.BorderSize = new System.Windows.Forms.Padding(0); + this.arLabel18.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel18.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel18.Dock = System.Windows.Forms.DockStyle.Top; + this.arLabel18.Font = new System.Drawing.Font("Cambria", 14.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic)))); + this.arLabel18.ForeColor = System.Drawing.Color.White; + this.arLabel18.GradientEnable = true; + this.arLabel18.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel18.GradientRepeatBG = false; + this.arLabel18.isButton = false; + this.arLabel18.Location = new System.Drawing.Point(0, 0); + this.arLabel18.Margin = new System.Windows.Forms.Padding(0); + this.arLabel18.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel18.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel18.msg = null; + this.arLabel18.Name = "arLabel18"; + this.arLabel18.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel18.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel18.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel18.ProgressEnable = false; + this.arLabel18.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel18.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel18.ProgressMax = 100F; + this.arLabel18.ProgressMin = 0F; + this.arLabel18.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel18.ProgressValue = 0F; + this.arLabel18.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel18.Sign = ""; + this.arLabel18.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel18.SignColor = System.Drawing.Color.Yellow; + this.arLabel18.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel18.Size = new System.Drawing.Size(238, 34); + this.arLabel18.TabIndex = 6; + this.arLabel18.Text = "--"; + this.arLabel18.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel18.TextShadow = true; + this.arLabel18.TextVisible = true; + // + // panel6 + // + this.panel6.BackColor = System.Drawing.SystemColors.Control; + this.panel6.Controls.Add(this.panel3); + this.panel6.Controls.Add(this.panel1); + this.panel6.Controls.Add(this.splitH); + this.panel6.Controls.Add(this.panel9); + this.panel6.Controls.Add(this.panTopMenu); + this.panel6.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel6.ForeColor = System.Drawing.SystemColors.ControlText; + this.panel6.Location = new System.Drawing.Point(0, 0); + this.panel6.Name = "panel6"; + this.panel6.Padding = new System.Windows.Forms.Padding(5); + this.panel6.Size = new System.Drawing.Size(1264, 1021); + this.panel6.TabIndex = 4; + // + // panel3 + // + this.panel3.Controls.Add(this.tabControl1); + this.panel3.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel3.Location = new System.Drawing.Point(10, 262); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(1249, 709); + this.panel3.TabIndex = 136; + // + // panel1 + // + this.panel1.Controls.Add(this.tabControl5); + this.panel1.Controls.Add(this.panLeft); + this.panel1.Dock = System.Windows.Forms.DockStyle.Top; + this.panel1.Location = new System.Drawing.Point(10, 5); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(1249, 257); + this.panel1.TabIndex = 137; + // + // tabControl5 + // + this.tabControl5.Controls.Add(this.tabPage5); + this.tabControl5.Dock = System.Windows.Forms.DockStyle.Fill; + this.tabControl5.Location = new System.Drawing.Point(238, 0); + this.tabControl5.Name = "tabControl5"; + this.tabControl5.SelectedIndex = 0; + this.tabControl5.Size = new System.Drawing.Size(1011, 257); + this.tabControl5.TabIndex = 135; + // + // tabPage5 + // + this.tabPage5.Controls.Add(this.dvMot); + this.tabPage5.Location = new System.Drawing.Point(4, 27); + this.tabPage5.Name = "tabPage5"; + this.tabPage5.Padding = new System.Windows.Forms.Padding(3); + this.tabPage5.Size = new System.Drawing.Size(1003, 226); + this.tabPage5.TabIndex = 1; + this.tabPage5.Text = "Motion Status"; + this.tabPage5.UseVisualStyleBackColor = true; + // + // splitH + // + this.splitH.Dock = System.Windows.Forms.DockStyle.Left; + this.splitH.Location = new System.Drawing.Point(5, 5); + this.splitH.Name = "splitH"; + this.splitH.Size = new System.Drawing.Size(5, 966); + this.splitH.TabIndex = 4; + // + // panel9 + // + this.panel9.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel9.Location = new System.Drawing.Point(5, 971); + this.panel9.Name = "panel9"; + this.panel9.Size = new System.Drawing.Size(1254, 5); + this.panel9.TabIndex = 75; + // + // panTopMenu + // + this.panTopMenu.BackColor = System.Drawing.SystemColors.Control; + this.panTopMenu.Controls.Add(this.btSave); + this.panTopMenu.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panTopMenu.Location = new System.Drawing.Point(5, 976); + this.panTopMenu.Name = "panTopMenu"; + this.panTopMenu.Size = new System.Drawing.Size(1254, 40); + this.panTopMenu.TabIndex = 134; + // + // btSave + // + this.btSave.Dock = System.Windows.Forms.DockStyle.Right; + this.btSave.FlatAppearance.BorderSize = 0; + this.btSave.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btSave.Font = new System.Drawing.Font("맑은 고딕", 11.25F); + this.btSave.Image = ((System.Drawing.Image)(resources.GetObject("btSave.Image"))); + this.btSave.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.btSave.Location = new System.Drawing.Point(1139, 0); + this.btSave.Name = "btSave"; + this.btSave.Size = new System.Drawing.Size(115, 40); + this.btSave.TabIndex = 19; + this.btSave.Text = "저장(&S)"; + this.btSave.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.btSave.UseVisualStyleBackColor = true; + this.btSave.Click += new System.EventHandler(this.btSave_Click); + // + // toolStripButton9 + // + this.toolStripButton9.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton9.Image"))); + this.toolStripButton9.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton9.Name = "toolStripButton9"; + this.toolStripButton9.Size = new System.Drawing.Size(111, 22); + this.toolStripButton9.Text = "열너비자동조정"; + this.toolStripButton9.Click += new System.EventHandler(this.toolStripButton9_Click); + // + // Model_Motion_Desc + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.SystemColors.Control; + this.ClientSize = new System.Drawing.Size(1264, 1021); + this.Controls.Add(this.panel6); + this.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.ForeColor = System.Drawing.Color.White; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "Model_Motion_Desc"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Motion Group Setting"; + this.WindowState = System.Windows.Forms.FormWindowState.Maximized; + this.Load += new System.EventHandler(this.@__Load); + ((System.ComponentModel.ISupportInitialize)(this.dv)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bs)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.ds1)).EndInit(); + this.tabControl1.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + this.tabPage1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dvPosition)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsPos)).EndInit(); + this.panel2.ResumeLayout(false); + this.panel2.PerformLayout(); + this.toolStrip2.ResumeLayout(false); + this.toolStrip2.PerformLayout(); + this.toolStrip1.ResumeLayout(false); + this.toolStrip1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.bindingNavigator1)).EndInit(); + this.bindingNavigator1.ResumeLayout(false); + this.bindingNavigator1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dvMot)).EndInit(); + this.panLeft.ResumeLayout(false); + this.panel6.ResumeLayout(false); + this.panel3.ResumeLayout(false); + this.panel1.ResumeLayout(false); + this.tabControl5.ResumeLayout(false); + this.tabPage5.ResumeLayout(false); + this.panTopMenu.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private DataSet1 ds1; + private System.Windows.Forms.DataGridView dv; + private System.Windows.Forms.Timer tmDisplay; + private System.Windows.Forms.ToolTip toolTip1; + private System.Windows.Forms.Panel panLeft; + private System.Windows.Forms.BindingSource bs; + private System.Windows.Forms.DataGridViewTextBoxColumn titleDataGridViewTextBoxColumn; + private arCtl.arLabel arLabel18; + private System.Windows.Forms.Panel panel6; + private System.Windows.Forms.Panel splitH; + private System.Windows.Forms.Panel panel9; + private System.Windows.Forms.BindingSource bsPos; + private arCtl.arDatagridView dvPosition; + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.Panel panTopMenu; + private System.Windows.Forms.Button btSave; + private System.Windows.Forms.BindingNavigator bindingNavigator1; + private System.Windows.Forms.ToolStripLabel bindingNavigatorCountItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveFirstItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMovePreviousItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator; + private System.Windows.Forms.ToolStripTextBox bindingNavigatorPositionItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator1; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveNextItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveLastItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator2; + private arCtl.arDatagridView dvMot; + private System.Windows.Forms.TabControl tabControl5; + private System.Windows.Forms.TabPage tabPage5; + private System.Windows.Forms.Panel panel3; + private System.Windows.Forms.DataGridViewTextBoxColumn dvc_axis; + private System.Windows.Forms.DataGridViewTextBoxColumn Column10; + private System.Windows.Forms.DataGridViewTextBoxColumn Column2; + private System.Windows.Forms.DataGridViewTextBoxColumn Column3; + private System.Windows.Forms.DataGridViewTextBoxColumn Column4; + private System.Windows.Forms.DataGridViewTextBoxColumn Column5; + private System.Windows.Forms.DataGridViewTextBoxColumn Column6; + private System.Windows.Forms.DataGridViewTextBoxColumn Column7; + private System.Windows.Forms.DataGridViewTextBoxColumn Column8; + private System.Windows.Forms.DataGridViewTextBoxColumn Column9; + private System.Windows.Forms.DataGridViewTextBoxColumn dvc_desc; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; + private System.Windows.Forms.RichTextBox richTextBox1; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.ToolStripButton toolStripButton5; + private System.Windows.Forms.ToolStripLabel lbMotPos; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.ListView listView1; + private System.Windows.Forms.TreeView treeView1; + private System.Windows.Forms.ToolStrip toolStrip2; + private System.Windows.Forms.ToolStripButton toolStripButton4; + private System.Windows.Forms.ToolStripButton toolStripButton6; + private System.Windows.Forms.ToolStripButton toolStripButton7; + private System.Windows.Forms.ToolStrip toolStrip1; + private System.Windows.Forms.ToolStripButton toolStripButton1; + private System.Windows.Forms.ToolStripButton toolStripButton2; + private System.Windows.Forms.ToolStripButton toolStripButton3; + private System.Windows.Forms.ToolStripButton toolStripButton8; + private System.Windows.Forms.DataGridViewTextBoxColumn MotIndex; + private System.Windows.Forms.DataGridViewTextBoxColumn MotName; + private System.Windows.Forms.DataGridViewTextBoxColumn posTitleDataGridViewTextBoxColumn1; + private System.Windows.Forms.DataGridViewTextBoxColumn Category; + private System.Windows.Forms.DataGridViewTextBoxColumn Description; + private System.Windows.Forms.DataGridViewButtonColumn btPos; + private System.Windows.Forms.DataGridViewButtonColumn btspeed; + private System.Windows.Forms.DataGridViewButtonColumn btacc; + private System.Windows.Forms.DataGridViewButtonColumn btdcc; + private System.Windows.Forms.DataGridViewButtonColumn btGo; + private System.Windows.Forms.DataGridViewButtonColumn btSet; + private System.Windows.Forms.ToolStripButton toolStripButton9; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/Model_Motion_Desc.cs b/Handler/Project/Dialog/Model_Motion_Desc.cs new file mode 100644 index 0000000..6015795 --- /dev/null +++ b/Handler/Project/Dialog/Model_Motion_Desc.cs @@ -0,0 +1,903 @@ +#pragma warning disable IDE1006 // 명명 스타일 + +using AR; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class Model_Motion_Desc : Form + { + public string Value = string.Empty; + short axisIndex = 0; + eAxis axis = eAxis.Z_THETA;// + Color sbBackColor = Color.FromArgb(200, 200, 200); + DataSet1 ds; + + public Model_Motion_Desc(DataSet1 ds_) + { + InitializeComponent(); + + this.ds = ds_; + //this.bs.Filter = string.Empty; + //this.bsPos.Filter = string.Empty; + + + this.bs.DataSource = ds_; + this.bsPos.DataSource = ds_; + + //this.bs.DataMember = string.Empty; + //this.bsPos.DataMember = string.Empty; + + if (System.Diagnostics.Debugger.IsAttached == false) + { + // fb = new Dialog.fBlurPanel(); + //fb.Show(); + } + + this.KeyPreview = true; + this.KeyDown += (s1, e1) => { if (e1.KeyCode == Keys.Escape) this.Close(); }; + this.StartPosition = FormStartPosition.CenterScreen; + this.FormClosed += __Closed; + + var axlist = Enum.GetNames(typeof(eAxis)); + var axvalues = Enum.GetValues(typeof(eAxis)); + + var preValueList = new List(); + + //모터설정값을 보고 해당 모터의 목록을 표시한다. + //사용하지 않는 축은 표시하지 않는다 + for (int i = 0; i < PUB.system.MotaxisCount; i++) + { + var axis = (eAxis)i; + var axisname = (eAxisName)i; + var axTitle = axisname.ToString();// axis.ToString(); + + if (PUB.system_mot.UseAxis(i) == false) continue;// axTitle = "Disable"; + if (axTitle.Equals(i.ToString())) axTitle = "(No Name)"; + this.dvMot.Rows.Add( + new string[] { + i.ToString(), axTitle, string.Empty, string.Empty, string.Empty, + string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, + string.Empty + }); + } + + + } + + + private void __Load(object sender, EventArgs e) + { + this.Show(); + ////'Application.DoEvents(); + + //this.ds1.Clear(); + //this.ds1.MCModel.Merge(Pub.mdm.dataSet.MCModel); + //this.ds1.MCModel.AcceptChanges(); + //this.ds1.MCModel.TableNewRow += Model_TableNewRow; + + this.bs.Filter = "isnull(title,'') <> ''"; + this.bsPos.Filter = "isnull(title,'') = '' and isnull(motindex,-1) = -1"; + this.tmDisplay.Start(); + + //button7.Enabled = !Pub.mot.HasHomeSetOff; + //dispal current + if (PUB.Result.isSetmModel) + { + arLabel18.Text = PUB.Result.mModel.Title; + //find data + var datas = this.ds1.MCModel.Select("", this.bs.Sort); + for (int i = 0; i < datas.Length; i++) + { + if (datas[i]["Title"].ToString() == PUB.Result.mModel.Title) + { + this.bs.Position = i; + break; + } + } + } + else arLabel18.Text = "--"; + + if (this.ds1.MCModel.Rows.Count < 1) + { + var newdr = this.ds1.MCModel.NewMCModelRow(); + newdr.Title = "Default"; + newdr.pidx = -1; + newdr.PosIndex = -1; + newdr.idx = ds1.MCModel.Rows.Count + 1; + this.ds1.MCModel.AddMCModelRow(newdr); + } + + PUB.log.RaiseMsg += log_RaiseMsg; + refreshtreen(); + } + + + + private void __Closed(object sender, FormClosedEventArgs e) + { + //if (fb != null) fb.Dispose(); + this.tmDisplay.Enabled = false; + } + + void log_RaiseMsg(DateTime LogTime, string TypeStr, string Message) + { + + } + + + private void tmDisplay_Tick(object sender, EventArgs e) + { + + //this.lbMotPos.Text = $"X:{Pub.mot.GetActPos((int)eAxis.X1_TOP}"; + //tabControl4.TabPages[0].Text = $"({axisIndex}) JOG"; + if (PUB.joypad != null && PUB.joypad.IsOpen) + this.Text = "MODEL(MOTION) SETTING - JOYSTICK GROUP:" + PUB.Result.JoystickAxisGroup.ToString(); + else + this.Text = "MODEL(MOTION) SETTING"; + + if (PUB.mot.IsInit == false) + { + //if (groupBox3.Enabled == true) groupBox3.Enabled = false; + } + else + { + //if (groupBox3.Enabled == false) groupBox3.Enabled = true; + + //각축별 기본 상태를 표시해준다. + dvMot.SuspendLayout(); + for (int r = 0; r < dvMot.RowCount; r++) // 오류수정 2111221 + { + var row = this.dvMot.Rows[r]; + var axis = int.Parse(row.Cells[0].Value.ToString()); + row.Cells[0].Style.BackColor = PUB.mot.IsServOn(axis) ? Color.Lime : Color.Tomato; + row.Cells[2].Value = $"{PUB.mot.GetCmdPos(axis)}"; + row.Cells[3].Value = $"{PUB.mot.GetActPos(axis)}"; + row.Cells[4].Style.BackColor = PUB.mot.IsOrg(axis) ? Color.SkyBlue : Color.Gray; + row.Cells[5].Style.BackColor = PUB.mot.IsLimitN(axis) ? Color.Red : Color.Gray; + row.Cells[6].Style.BackColor = PUB.mot.IsLimitP(axis) ? Color.Red : Color.Gray; + row.Cells[7].Style.BackColor = PUB.mot.IsInp(axis) ? Color.SkyBlue : Color.Gray; + row.Cells[8].Style.BackColor = PUB.mot.IsServAlarm(axis) ? Color.Red : Color.Gray; + row.Cells[9].Style.BackColor = PUB.mot.IsHomeSet(axis) ? Color.Green : Color.Gray; + } + dvMot.ResumeLayout(); + } + // this.tblFG.Invalidate(); + } + + private void dv_DataError(object sender, DataGridViewDataErrorEventArgs e) + { + + } + + + void ChangeCurrentPosition(int Axis, NumericUpDown valueCtl) + { + valueCtl.Value = (decimal)PUB.mot.GetActPos(Axis); + } + /// + /// 상단목록에서 모션을 선택한 경우 + /// + /// + /// + private void MotAxisSelect(int axisindex) + { + + + RefreshMotorPosition(); + } + + private void bs_CurrentChanged_1(object sender, EventArgs e) + { + + //BindingData(); + } + void RefreshMotorPosition() + { + var drv = this.bs.Current as DataRowView; + if (drv == null) return; + if (dvMot.SelectedCells.Count < 1) return; + var dr = drv.Row as DataSet1.MCModelRow; + + //var rowindex = dvMot.SelectedCells[0].RowIndex; + //var row = dvMot.Rows[rowindex]; + //var axisIndex = short.Parse(row.Cells[0].Value.ToString()); + //var axis = (eAxis)this.axisIndex; + //var axisTitle = row.Cells[1].Value.ToString(); + { + + + //위치정보 표시 + bsPos.Filter = string.Format("pidx={0} and motindex = {1}", dr.idx, this.axisIndex); + + ////(위치정보) 데이터수량이 맞지 않으면 재 생성한다 + //string[] list = null; + //Array val = null; + //Type axType = null; + //var axis = (eAxis)axisIndex; + + //if (axis == eAxis.X2_FRT || axis == eAxis.X3_RER) axType = typeof(eX2SHTLoc); + //else if (axis == eAxis.X1_TOP) axType = typeof(eX1TOPLoc); + //else if (axis == eAxis.Y1_PIK) axType = typeof(eY1PIKLoc); + //else if (axis == eAxis.Y2_PRECLEAN) axType = typeof(eY2BRSLoc); + //else if (axis == eAxis.Y3_LASER) axType = typeof(eY3LSRLoc); + //else if (axis == eAxis.Y4_VIS) axType = typeof(eY4VISLoc); //전용으로바꿔야함 + + //else if (axis == eAxis.Z1_PIK) axType = typeof(eZ1PIKLoc); + //else if (axis == eAxis.Z2_PRECLEAN) axType = typeof(eZ2BRSLoc); + //else if (axis == eAxis.Z3_LASER) axType = typeof(eZ3LSRLoc); + //else if (axis == eAxis.Z4_VISION) axType = typeof(eZ4VISLoc);//전용으로바꿔야함 + + + //else if (axis == eAxis.L_REAR || axis == eAxis.L_FRNT) axType = typeof(eLDLoc); + //else if (axis == eAxis.UR_NG || axis == eAxis.UR_OK || axis == eAxis.UF_NG || axis == eAxis.UF_OK) axType = typeof(eUDLoc); + + //if (axType == null) + //{ + // Util.MsgE("지정한 축에 대한 위치정보가 지정되지 않았습니다"); + // return; + //} + + + //list = Enum.GetNames(axType); + //val = Enum.GetValues(axType); + + //var sb = new System.Text.StringBuilder(); + //var cntI = 0; + //var cntE = 0; + //var cntD = 0; + + ////posidx == -1인 데이터는 모두 소거한다 + //var dellist = ds1.MCModel.Where(t => t.pidx == dr.idx && t.MotIndex == this.axisIndex && t.PosIndex == -1).ToList(); //메인목록은 남겨둔다 + //cntD += dellist.Count(); + //foreach (var item in dellist) + // item.Delete(); + //ds1.MCModel.AcceptChanges(); + + ////모든데이터의 체크상태를 off한다. + //var alllist = this.ds1.MCModel.Where(t => t.pidx == dr.idx && t.MotIndex == this.axisIndex); + //foreach (var item in alllist) + // item.Check = false; + //ds1.MCModel.AcceptChanges(); + + //for (int i = 0; i < list.Length; i++) + //{ + // var arrTitle = list[i]; + // var vv = val.GetValue(i); + // var arrIndex = (byte)vv;// ((eAxis)(val.GetValue(i))); + // if (arrIndex < 50) continue; //여기는 예약된 위치값이므로 사용하지 않는다 + // var targetem = Enum.Parse(axType, vv.ToString()); + + // //이 값이 데이터가 없다면 추가하고, 있다면 이름을 검사해서 결과를 안내한다 + // var pDr = this.ds1.MCModel.Where(t => t.pidx == dr.idx && t.PosIndex == arrIndex && t.MotIndex == axisIndex).FirstOrDefault(); + // if (pDr == null) + // { + // //cntI += 1; + // //var newdr = this.ds1.MCModel.NewMCModelRow(); + + // //if (ds1.MCModel.Rows.Count == 0) newdr.idx = 1; + // //else newdr.idx = ds1.MCModel.Max(t => t.idx) + 1; + + // //newdr.pidx = dr.idx; + // //newdr.MotIndex = this.axisIndex; + // //newdr.PosIndex = (short)arrIndex; + // //newdr.PosTitle = arrTitle; + // //newdr.Position = 0.0; + // //newdr.Speed = 50; + // //newdr.SpeedAcc = 100; + // //newdr.Check = true; + // //newdr.Description = targetem.DescriptionAttr(); + // //newdr.Category = targetem.CategoryAttr(); + + // //this.ds1.MCModel.AddMCModelRow(newdr); + // //newdr.EndEdit(); + // //sb.AppendLine("항목 추가 : " + arrTitle); + // } + // else + // { + // //이름이 다르다면 추가해준다. + // //if (pDr.PosTitle != arrTitle) + // //{ + // // sb.AppendLine("(위치)항목 변경 : " + pDr.PosTitle + " => " + arrTitle); + // // cntE += 1; + // // pDr.PosTitle = arrTitle; + // //} + // ////pDr.Description = targetem.DescriptionAttr(); + // ////pDr.Category = targetem.CategoryAttr(); + // //pDr.EndEdit(); + + // pDr.Check = true; + // } + //} + + ////미사용개체 삭제한다 + + ////var NotUseList = this.ds1.MCModel.Where(t => t.pidx == dr.idx && t.MotIndex == this.axisIndex && t.Check == false).ToList(); + ////cntD += NotUseList.Count(); + ////foreach (var item in NotUseList) + //// item.Delete(); + //ds1.MCModel.AcceptChanges(); + + //if (cntI > 0) sb.AppendLine("추가수량 : " + cntI.ToString()); + //if (cntE > 0) sb.AppendLine("변경수량 : " + cntE.ToString()); + //if (cntD > 0) sb.AppendLine("삭제수량 : " + cntD.ToString()); + + ////최종 확정 + //this.ds1.MCModel.AcceptChanges(); + + //if (sb.Length > 0) + //{ + // Util.MsgI(sb.ToString()); + //} + } + } + + private void chkJogMoveForce_Click(object sender, EventArgs e) + { + + } + + private void btAdd_Click(object sender, EventArgs e) + { + var newdr = this.ds1.MCModel.NewMCModelRow();// this.bs.AddNew() as DataRowView; + newdr["Title"] = DateTime.Now.ToShortDateString(); + newdr["pidx"] = -1; + newdr.PosIndex = -1; + newdr["idx"] = this.ds1.MCModel.Rows.Count + 1; + this.ds1.MCModel.AddMCModelRow(newdr); + this.bs.Position = this.bs.Count - 1; + + //모터축을 자동 선택해줌 + //radClick_MotAxisSelect(this.flowLayoutPanel1.Controls[0], null); + } + + private void btDel_Click(object sender, EventArgs e) + { + var drv = this.bs.Current as DataRowView; + if (drv == null) return; + var dlg = UTIL.MsgQ("현재 선택된 자료를 삭제하시겠습니까?"); + if (dlg != System.Windows.Forms.DialogResult.Yes) return; + bs.RemoveCurrent(); + this.ds1.MCModel.AcceptChanges(); + } + + private void btSave_Click(object sender, EventArgs e) + { + //button - save + this.dv.Focus(); + this.Validate(); + this.bs.EndEdit(); + this.bsPos.EndEdit(); + this.Validate(); + + this.DialogResult = DialogResult.OK; + + } + + private void button2_Click(object sender, EventArgs e) + { + //select + this.Invalidate(); + this.bs.EndEdit(); + var drv = this.bs.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.MCModelRow; + if (dr.Title == "") return; + this.Value = dr.Title; + DialogResult = System.Windows.Forms.DialogResult.OK; + } + + private void button6_Click(object sender, EventArgs e) + { + //적용 + + this.bs.EndEdit(); + this.bsPos.EndEdit(); + this.Validate(); + + var drv = this.bs.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.MCModelRow; + + this.Value = dr.Title; + + PUB.Result.mModel.ReadValue(dr.Title, this.ds1.MCModel); + if (PUB.Result.mModel.isSet) + { + PUB.log.AddAT("모션모델선택완료 : " + PUB.Result.mModel.Title); + } + else UTIL.MsgE("적용 실패\n\n대상 모델 명이 없습니다"); + } + + private void button4_Click(object sender, EventArgs e) + { + var drv = this.bs.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.MCModelRow; + var dlg = UTIL.MsgQ(string.Format("다음 모델 정보를 복사하시겠습니까?\n\n모델명 : {0}", dr.Title)); + if (dlg != System.Windows.Forms.DialogResult.Yes) return; + + var newdr = this.ds1.MCModel.NewMCModelRow(); + UTIL.CopyData(dr, newdr); + newdr.Title += "-copy-"; + newdr.idx = this.ds1.MCModel.OrderByDescending(t => t.idx).FirstOrDefault().idx + 1; + newdr.EndEdit(); + this.ds1.MCModel.AddMCModelRow(newdr); + if (this.bs.Count > 0) this.bs.Position = this.bs.Count - 1; + } + + private void arDatagridView2_CellClick(object sender, DataGridViewCellEventArgs e) + { + //position click + var dv = sender as DataGridView; + var col = this.dvPosition.Columns[e.ColumnIndex]; + var colName = col.Name.ToLower(); + if (colName == "btgo") + { + if (PUB.mot.HasHomeSetOff) + { + UTIL.MsgE("모션의 홈이 완료되지 않았습니다\n메인화면에서 '장치초기화'를 진행 하세요"); + return; + } + //현재값으로 모터를 이동 + //현재위치값으로 설정 + var cell = dv.Rows[e.RowIndex].Cells["btpos"]; + var value = (double)cell.Value; + var drv = this.bsPos.Current as DataRowView; + var drParent = drv.Row as DataSet1.MCModelRow; + + //일반 속도값을 찾는다 + //var speedDr = drParent.Speed;// this.ds1.MCModel.Where(t => t.pidx == drParent.idx && t.MotIndex == axisIndex && t.PosIndex == -1 && t.SpdIndex == (int)eAxisSpeed.Normal).FirstOrDefault(); + var speed = drParent.Speed;// speedDr.Speed;// (double)this.nudJogVel.Value; + var acc = drParent.SpeedAcc;// speedDr.SpeedAcc;// ; (double)nudAcc.Value; + + + var relative = false; + //if (ctl.motCommand == arFrame.Control.MotCommandButton.eCommand.RelativeMove) + // relative = true; + + var msg = string.Format("모션의 위치를 변경 하시겠습니까\n" + + "축 : {0}\n" + + "현재위치 : {1}\n" + + "대상위치 : {2}\n" + + "이동속도 : {3}(가속도:{4})\n" + + "이동 시 충돌 가능성이 있는지 반드시 확인 하세요", axis, PUB.mot.GetActPos(axisIndex), value, speed, acc); + + if (UTIL.MsgQ(msg) != System.Windows.Forms.DialogResult.Yes) return; + + var chkJogMoveForce = true; + if (!MOT.Move(axis, value, speed, acc, relative, !chkJogMoveForce, !chkJogMoveForce)) + PUB.log.AddE("MOT:MOVE_:" + axis.ToString() + ",Msg=" + PUB.mot.ErrorMessage); + + + + } + else if (colName == "btset") + { + if (PUB.mot.HasHomeSetOff) + { + UTIL.MsgE("모션의 홈이 완료되지 않았습니다\n메인화면에서 '장치초기화'를 진행 하세요"); + return; + } + + //현재위치값으로 설정 + var cell = dv.Rows[e.RowIndex].Cells["btpos"]; + var value = (double)cell.Value; + var nValue = Math.Round(PUB.mot.GetCmdPos(this.axisIndex), 4); //소수점4자리에서 반올림처리한다 210414 + + var msg1 = string.Format("모션의 설정값을 변경 하시겠습니까\n" + + "축 : {0}\n" + + "변경전 : {1}\n" + + "변경후 : {2}\n" + + "변경 후 '저장'을 눌러야 영구 기록 됩니다", this.axis, value, nValue); + + if (UTIL.MsgQ(msg1) != System.Windows.Forms.DialogResult.Yes) return; + cell.Value = nValue; + } + else if (colName == "btpos") + { + //현재값 변경 팝업 + var cell = dv.Rows[e.RowIndex].Cells[e.ColumnIndex]; + var value = (double)cell.Value; + value = PUB.ChangeValuePopup(value, "위치 입력"); + cell.Value = value; + } + else if (colName == "btspeed") + { + //현재값 변경 팝업 + var cell = dv.Rows[e.RowIndex].Cells[e.ColumnIndex]; + var value = (double)cell.Value; + value = PUB.ChangeValuePopup(value, "속도 입력"); + cell.Value = value; + } + else if (colName == "btacc") + { + //현재값 변경 팝업 + var cell = dv.Rows[e.RowIndex].Cells[e.ColumnIndex]; + var value = (double)cell.Value; + value = PUB.ChangeValuePopup(value, "가속도 입력"); + cell.Value = value; + } + else if (colName == "btdcc") + { + //현재값 변경 팝업 + var cell = dv.Rows[e.RowIndex].Cells[e.ColumnIndex]; + if (cell.Value.ToString().isEmpty()) cell.Value = "0"; + var value = (double)cell.Value; + value = PUB.ChangeValuePopup(value, "감속도 입력"); + cell.Value = value; + } + + } + + + private void toolStripButton1_Click(object sender, EventArgs e) + { + var dlg = UTIL.MsgQ("모든 이동좌표의 속도를 일괄 변경하시겠습니까?"); + if (dlg != System.Windows.Forms.DialogResult.Yes) return; + var value = PUB.ChangeValuePopup(100.0, "일괄 속도 변경"); + + for (int i = 0; i < this.bsPos.Count; i++) + { + this.bsPos.Position = i; + var drv = this.bsPos.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.MCModelRow; + dr.Speed = value; + dr.EndEdit(); + } + } + + private void toolStripButton2_Click_2(object sender, EventArgs e) + { + var dlg = UTIL.MsgQ("모든 이동좌표의 가(감)속도를 일괄 변경하시겠습니까?"); + if (dlg != System.Windows.Forms.DialogResult.Yes) return; + var value = PUB.ChangeValuePopup(100.0, "일괄 가(감)속도 변경"); + + for (int i = 0; i < this.bsPos.Count; i++) + { + this.bsPos.Position = i; + var drv = this.bsPos.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.MCModelRow; + dr.SpeedAcc = value; + dr.EndEdit(); + } + } + + private void toolStripButton3_Click_1(object sender, EventArgs e) + { + var dlg = UTIL.MsgQ("모든 이동좌표의 감속도를 일괄 변경하시겠습니까?"); + if (dlg != System.Windows.Forms.DialogResult.Yes) return; + var value = PUB.ChangeValuePopup(0, "일괄 감속도 변경"); + + for (int i = 0; i < this.bsPos.Count; i++) + { + this.bsPos.Position = i; + var drv = this.bsPos.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.MCModelRow; + dr.SpeedDcc = value; + dr.EndEdit(); + } + } + + + private void dvMot_SelectionChanged(object sender, EventArgs e) + { + if (dvMot.SelectedRows.Count < 1) + { + Console.WriteLine("no selecte"); + this.axisIndex = -1; + this.axis = (eAxis)axisIndex; + } + else + { + var selrow = dvMot.SelectedRows[0]; + this.axisIndex = short.Parse(selrow.Cells["dvc_axis"].Value.ToString()); + this.axis = (eAxis)axisIndex; + MotAxisSelect(this.axisIndex); + Console.WriteLine($"select indx {axisIndex}"); + } + + + } + + + private void toolStripButton5_Click(object sender, EventArgs e) + { + this.Validate(); + this.bs.EndEdit(); + this.bsPos.EndEdit(); + + //using (var f = new Dialog.Motion_MoveToGroup(this.ds,arLabel18.Text)) + //{ + // if (f.ShowDialog() == DialogResult.OK) + // { + // this.bs.EndEdit(); + // this.bsPos.EndEdit(); + // } + //} + + } + + void refreshtreen() + { + //모든데이터를 가져와서 트리뷰를 처리한다. + + var cat = this.ds.MCModel.GroupBy(t => t.Category).ToList(); + var catorders = cat.OrderBy(t => t.Key).ToList(); + + //var cnt = 0; + this.treeView1.Nodes.Clear(); + foreach (var item in catorders) + { + if (item.Key.isEmpty()) continue; + var catenames = item.Key.Split(','); + foreach (var catename in catenames) + { + var grpname = catename.Split('|')[0]; + if (catename.Split('|').Length < 2) continue; + var itemname = catename.Split('|')[1]; + if (treeView1.Nodes.ContainsKey(grpname) == false) + { + var nd = treeView1.Nodes.Add(grpname, grpname); + nd.Nodes.Add(itemname); + } + else + { + if (itemname.StartsWith("F01"))// == "F01_FSOCKET_BTM") + { + + } + var nd = treeView1.Nodes[grpname]; + if (nd.Nodes.ContainsKey(itemname) == false) + { + var snd = nd.Nodes.Add(itemname, itemname); + if (itemname.StartsWith("R")) + snd.ForeColor = Color.Blue; + else if (itemname.StartsWith("T")) + snd.ForeColor = Color.Magenta; + } + else + { + var snd = nd.Nodes[itemname]; + if (itemname.StartsWith("R")) + snd.ForeColor = Color.Blue; + else if (itemname.StartsWith("T")) + snd.ForeColor = Color.Magenta; + } + } + } + + + } + + treeView1.ExpandAll(); + if (treeView1.Nodes.Count > 0) + treeView1.SelectedNode = this.treeView1.Nodes[0]; + + } + void refreshlist() + { + this.listView1.Clear(); + this.listView1.FullRowSelect = true; + this.listView1.View = View.Details; + this.listView1.Columns.Add("item"); + this.listView1.Columns[0].Width = (int)(this.listView1.Width - listView1.Width * 0.1f); + this.listView1.GridLines = true; + this.listView1.AllowDrop = true; + + + var drv = this.bsPos.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.MCModelRow; + if (dr.Category.isEmpty()) return; + + var catelist = dr.Category.Split(','); + List cats = new List(); + + + foreach (var cate in catelist) + { + if (cate.isEmpty()) continue; + if (cats.Contains(cate) == false) cats.Add(cate); + } + + foreach (var cate in cats.OrderBy(t=>t)) + { + if (this.listView1.Items.ContainsKey(cate) == false) + { + var lv = this.listView1.Items.Add(cate, cate, 0); + } + else + { + //이미 있다. + } + } + + + } + private void bsPos_CurrentChanged(object sender, EventArgs e) + { + //포지션데이터가 움직이면 처리한다. + refreshlist(); + } + + private void toolStripButton1_Click_1(object sender, EventArgs e) + { + //트립에서 선택된 아이템을 추가한다. + var tn = this.treeView1.SelectedNode; + if (tn == null) return; + if (tn.Level != 1) + { + if (tn.Nodes.Count < 1) + { + UTIL.MsgE("하위 항목이 없습니다"); + return; + } + + var dlg = UTIL.MsgQ($"{tn.Nodes.Count}건의 자료를 모두 추가 할까요?"); + if (dlg != DialogResult.Yes) return; + var ucnt = 0; + foreach (TreeNode node in tn.Nodes) + { + var value = node.Parent.Text + "|" + node.Text; + if (this.listView1.Items.ContainsKey(value) == false) + { + this.listView1.Items.Add(value); + ucnt += 1; + } + } + UTIL.MsgI($"{ucnt}건의 아이템이 추가 되었습니다"); + //현재목록을 리스트로 만들고 업데이트한.ㄷ + var drv = this.bsPos.Current as DataRowView; + var dr = drv.Row as DataSet1.MCModelRow; + + List items = new List(); + + foreach (ListViewItem item in listView1.Items) + items.Add(item.SubItems[0].Text); + + dr.Category = string.Join(",", items); + dr.EndEdit(); + } + else + { + var value = tn.Parent.Text + "|" + tn.Text; + if (this.listView1.Items.ContainsKey(value) == false) + { + this.listView1.Items.Add(value); + //현재목록을 리스트로 만들고 업데이트한.ㄷ + var drv = this.bsPos.Current as DataRowView; + var dr = drv.Row as DataSet1.MCModelRow; + + List items = new List(); + + foreach (ListViewItem item in listView1.Items) + items.Add(item.SubItems[0].Text); + + dr.Category = string.Join(",", items); + dr.EndEdit(); + + } + else UTIL.MsgE("이미 존재하는 항목 입니다."); + } + + + + } + + private void toolStripButton2_Click(object sender, EventArgs e) + { + //선택된 항목을 삭제한다. + if (this.listView1.FocusedItem == null) return; + this.listView1.Items.Remove(this.listView1.FocusedItem); + + //현재목록을 리스트로 만들고 업데이트한.ㄷ + var drv = this.bsPos.Current as DataRowView; + var dr = drv.Row as DataSet1.MCModelRow; + + List items = new List(); + + foreach (ListViewItem item in listView1.Items) + items.Add(item.SubItems[0].Text); + + dr.Category = string.Join(",", items); + dr.EndEdit(); + } + + private void toolStripButton3_Click(object sender, EventArgs e) + { + refreshlist(); + } + + private void toolStripButton4_Click(object sender, EventArgs e) + { + //현재선택된 아이템의 데이터를 표시한다. + var tn = this.treeView1.SelectedNode; + if (tn == null) return; + if (tn.Level == 0) + { + bsPos.Filter = $"Category like '%{tn.Text}|%'"; + } + else + { + bsPos.Filter = $"Category like '%{tn.Parent.Text}|{tn.Text}%'"; + } + } + + private void toolStripButton6_Click(object sender, EventArgs e) + { + + } + + private void toolStripButton7_Click(object sender, EventArgs e) + { + refreshtreen(); + } + + private void toolStripButton8_Click(object sender, EventArgs e) + { + + var tn = treeView1.SelectedNode; + if (tn == null) return; + + var old = tn.Text.Trim(); + var f = new Dialog.fInput("입력",tn.Text); + if (f.ShowDialog() != DialogResult.OK) return; + + if (f.ValueString.isEmpty()) return; + var targetidx = tn.Level; + + foreach (DataSet1.MCModelRow dr in this.ds.MCModel.Rows) + { + if (dr.RowState == DataRowState.Deleted || dr.RowState == DataRowState.Detached) continue; + + if (dr.Category.isEmpty()) continue; + + var cats = dr.Category.Split(','); + List items = new List(); + foreach (var cat in cats) + { + if (cat.isEmpty()) continue; + + var buffer = cat.Split('|'); + + if (targetidx == 0) + { + buffer[targetidx] = buffer[targetidx].Replace(old, f.ValueString); + } + else + { + //1번의 경우 변경을 하려면 0번이 일치해야한다. + if (buffer[0] == tn.Parent.Text) + { + buffer[targetidx] = buffer[targetidx].Replace(old, f.ValueString); + } + } + + items.Add(string.Join("|", buffer)); + } + + dr.Category = string.Join(",", items.ToArray()); + dr.EndEdit(); + } + + refreshtreen(); + } + + private void toolStripButton9_Click(object sender, EventArgs e) + { + dvPosition.AutoResizeColumns(); + } + } +} + diff --git a/Handler/Project/Dialog/Model_Motion_Desc.resx b/Handler/Project/Dialog/Model_Motion_Desc.resx new file mode 100644 index 0000000..88fac62 --- /dev/null +++ b/Handler/Project/Dialog/Model_Motion_Desc.resx @@ -0,0 +1,2179 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 376, 17 + + + 101, 17 + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + 17, 17 + + + 702, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + 596, 17 + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + 440, 17 + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 + wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0 + v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg + UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA + Iu/O/9T+11gVGSSd+C+b9vW/bvA83AYYZt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPu + lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w + 5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f + Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+ + 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 + n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI + N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f + oAc0QjgAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// + h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B + twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA + kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG + WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9 + 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + 172, 17 + + + 279, 17 + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABGdBTUEAALGPC/xhBQAAAwFJREFUWEft + ldtOE1EUhnkXfQyv9DVUhGJUiIlIENoarDUcDIkHqEZDh85AI+lwIyEQmWCiRfFAIARbUFIKRlCkHqAx + 0Qvpcv7pnrHAps6UmdaLLvIluzvsWV/W2oeKctgVnY0SmcF/XSJ3Z5CaCwRr/R0S3XCHr7LU5gLJE/E0 + l0nlowESLK9v0vtUuiCwFt8I+OUfliTNCqIKvMRWwDfi0ylrkk4I6m3dvQa/8V1LkqUQBKYlSyUITEmW + UhD8U7LUgiCv5P8gCGJTG9p9y7T+hhOC+5FPEBxI0K6LmpdHx7Lg1JPPhmBAGNUS6K2zCtYGHyjcPDqW + BYtNWfCglAUPiilB3gl0ktzcpgWLFWVBs/FmdZF6ojI1RNqpJuTVaJDbqe5eGymTs6UT/LSZIv9wgC5G + 2qg72kuDsSEaXVI0MO5S5y4MtNJluYteT68UJhhdLwx5Pkln+n0UeCaSsvyYlBU+Y8vj1D0h0tk+H/la + 7hangqhcbfgK9c0McqV49M3IVBP00vFg82Gmlg0nBNFWrXIckXyg5S7R84qpZcNuQRwI7Dm0jiexm+dr + L4wx1pwLt6Qrg5eOMT3792DrWEQ9EKEdEvsR/7JAGfVv4es7Y06tYkatYj/Ts7+CuErk+NAOkdwq6cx/ + fctWkDbW5+XYQ6qRPKtMz37B06KXRhKKkXBpM0mZTIZmN+aMOb1yiIUcOTC6NEZVvU2/mJ4zgkiiJ1z8 + ltDmITSXiuWVAyPq2lOC+yfTs38Pnh/o2NNiVBGhiyFy25qL1mLRwRYH1Seta2LvIdErieBVTufWU2Hb + 1esVmZ79grG1RaqPtHKvmcT35L6VA1hTG/alT/Q0H2V69gsirg3fKfCiFn67JM9LppYNJwTXt1JUF/Zp + zxdPhIek/m9VyL1Veb/xEFPLBgRzgaAd1N/sJpfg1Z6vfK/Ko+Q43Y4K29Uhz9ZJoekI0ypO4OHH24rn + CxI4obgjAcaYw55DW/dUrpiBt7Va9Ei4PnAJA3X8wRVyizsOhBEVFX8AAjiR3dGw+TcAAAAASUVORK5C + YII= + + + + 81 + + + + AAABAAYAAAAAAAEAIAASGgAAZgAAAICAAAABACAAKAgBAHgaAABAQAAAAQAgAChCAACgIgEAMDAAAAEA + IACoJQAAyGQBACAgAAABACAAqBAAAHCKAQAQEAAAAQAgAGgEAAAYmwEAiVBORw0KGgoAAAANSUhEUgAA + AQAAAAEACAYAAABccqhmAAAZ2UlEQVR42u3da4xu11kf8P+z1r68l5l3Zs7xuXh87OBgk8ZBWEGBGEs0 + caXKBiOiVHI+kMQNbYh6+YIqhBFVq1MqkIxQhVS1KCIo1MT94KhYIBAOaXGDRC7UAoIUm8RxjBOfm89l + 5szMO++7916Xfhh/IlnPPsnMmTMz6/+Tzqe99Mze+333f87WemYtAR1ZH/v4EwMAtTZmOt6OPWWapz/0 + X5tbfS10c5hbfQJEdOswAIgyxgAgyhgDgChjDACijDEAiDLGACDKmNzqE6Dv7MO/9QsVgCJ13FhTlFXx + gFbDGnNaRE5oY6JEtQ8gRlwJHhe1MV3bfTF475Qh7vf+9W+0+3f36EYVuy9BN0kNYKgcHwJ4v1pBcB8E + 9+hDen8HvAzEF3vGfBXATDk+A8AAOID4CkCUMQYAUcYYAEQZYwAQZYwBQJQxBgBRxhgARBljI9BN8OHf + /sVVAAup49aYY6U1/06rUZbFGWPM8dRxY8TcceL4Ga1GXRa2Kgq7m2tpnfNN57w25tzlq6+HEEPqeAjh + ate517UanQ//xYdwTRmy9Xs/9+vnd3Mt9O3YCHRzCADtwSugBMSbFgFMlB9hjIi62o8RI9bs7j95Rowx + Ij3fE5kA6QDAThNQ3/UWPfeMv6xuAr4CEGWMAUCUMQYAUcYYAEQZYwAQZYwBQJQxTq38A49/4heXAVSp + 49aYcWHt/VqNqrC3GyOLqePGmIVRXat/y19Ye8wYk5w6ExFZWRwv6DWMFHZXbQBw3sP5oC4asrY53Yox + vbBICGHLea/N8WO7aZ4NIWyla8TN1vkLPef6ZR/CVBnSPvXRX1/f1Q05YtgH8O1OQ51/x50AfkErYIw5 + VVgzTh0vrLUnVibHtRp1WWK3D+9eKKxFYa36i+L248uL2nHn/aTp3Ko25sKVa7c775MNRw5hCvhLPaf7 + GwC+pRzfALC+LzfukOArAFHGGABEGWMAEGWMAUCUMQYAUcYYAEQZYwAQZexINQI9/ttPvBs7f0f/HVkj + byms+YBWYzwcHLPWJP/OviqLwW2TyV1ajbKw1hiTvLcigDVGn+SXG9iy45CIAKBvQAQfgteGhBBi57y6 + MMmVjY1vtp2bJ3+GD810NlcbkpwPz/gQX1OGbD71c09+af/u3s111BqBBgDGyvFlAOoqOhAsiUiyE1BE + irKw6kIcZWFhdrkQx1EiwE7qKQqrdz2FIEDP91VEbhOR9BZlghbAqOd0lwFcUY53N/l27St+S4kyxgAg + yhgDgChjDACijDEAiDLGACDK2L5MNT/2zGO9P2th++47oEzzGDETgblDqzEoy/tFJLlIRmHNalUU/1Sr + UdfVyBpTpGtYuzQeaVONsNbAyFGZxT8YQozwPqhjrk+3p9qaAj4E1zTttlajdf5PXQjJhUdijFvztv2y + ViMinAsxbChD3Fv+fnSu55Lj2bNn9/o2fpv96gMQ9P9v4wEoTTwA3g5AXUWnrsrlwqYf3kFVFSeWJz2r + 6FgIH94Dx4jA9GxydNvSohrMMUY4749pYy5f3/jAvO2Sc/3OBzdv2+s9p/ssgJeU45sAfv8GLjvewJhd + 4SsAUcYYAEQZYwAQZYwBQJQxBgBRxhgARBljABBlrHfC+2Mf/5hBT1D4wbGHAZSp40bM2wTyoFZjaTy6 + yxhJzuHXZbU4GQ9PazXKorBGWUdDRKSwVr0W9gAcbbFnYRLnQ1B3OYoxds6pC5NsTGcXm67dTNYI0V2f + bn9TPU/Ez4cYvqoM6V55dfBcz+WG/3v2rHrBN9oI1PdUHIeynRZ2dtP5Qa2AEVk2kl4lp7C2HFSVuhBH + YQ0fYFL1fT/KQv8FEWOE1ikKANvz9kTnzHL6JIKHvvsUsLPD0VXleIv+51LQ00zEVwCijDEAiDLGACDK + GAOAKGMMAKKMMQCIMiYf+eRZPQT89HQEVrUhRVH8M0i6D2BQVvcOqvJHtRqLo+GCEUmeS12WxcJoqE4D + WmP6lp8n2pUYAR/0hUm2tmdN03XJ/QlCjGFjOtvSajRd+5fzrn05fSLoOhf/V8/pnjd2eEkbUECfv0eE + vBfAh7UxAvlxxHRPwXhQ2ztOHFPnTuuy5Bw+HXgiO/0mmuXFcQ0g+csqxojlhbG2+A3OX7n2aNN2WsOR + Mybc33O6n8LO4iRJfAUgyhgDgChjDACijDEAiDLGACDKGAOAKGMMAKKMFdj5u2LNn0Hf5AAB8UEoC4JM + m+a+1y5deY9WY1BXJwwkuR7AoCrLpYXRUKtRclMPuslijOi8uh4Irm9tz7TNRQKinzftZa1G03WfC4gv + KkM6AH/Rc7oX0fN878nT8s9/94kHoSwuYsU+YEQe02qMB/WdIukVgRYGdXVieaI2T1RlyS256KYKMUJ5 + tgEAl9c3NrfmTfLBizG66bz5Vs/P+bSP/ovKEPc/PvLk53d7PXwFIMoYA4AoYwwAoowxAIgyxgAgyhgD + gChjN7ovQJ+tnlqX0NNLEGNsoPQS+BgnTded0WugEmVREbOzMYjVaoi2swgdahFADH0bg3gflI1BYoyh + dZ06t+5jPBdj3FBqdAC+0XO6l7DzXCVPdS/uyYH5rj/+O0+8C8Agdbyw5oeskQ9qNQZldZcRSdYY1lV5 + 6tjyklajrkpYw/8YHUU+BDStPod/6dr69ZkyKMQ4n3etuquPD/Fp58PfKkPmT/3LJ1+41fcD4CsAUdYY + AEQZYwAQZYwBQJQxBgBRxhgARBljABBlbK8agfbCKwC0Jp0LAP5OK+BDeGuQdC/BvOtWL1xbf0SrUVp7 + 2ogkFx4prLXLC+MFtUZphb0Ee8uHgK7zahfP+tZ0y/n0ah0hxlnn/UWtRtt1z7ngz6eOx4g5+pt4XgNw + Xbuc/btzugPTCLQXPvLJJ+4BkHx4rTH3GmM+qtWobHGPEUkuPFKXZXn78ZVjWo1BXUqhNxzSd8l5j3nT + qQFw4eratabrtCaezda7r2s1Qgif8CG8rAyZ/e7PPqnWOEz4a4ooYwwAoowxAIgyxgAgyhgDgChjDACi + jB2kPoC90EHpJYjRzGKwa1qBEMs2iknO03qxpuugTkcZExCCMsUqQNHTJyCCI7PJSYwRUV+HAy4EaHfV + +RD77rt3hfdOkp9djKGNMaqff4yYAUFb8ENfUOCQORrfsBv0vn//R0sA3qGNqYbu50Xw9tRxW7b1eOWN + O7UaZT0vjXXJICqs4PTxkXqu40GNujoa+dy0DtN5o465eHUbTunzCb7wXTNQH77p2slv+a5K/qAY8VI7 + K36z53S/8ge/+lPXkQm+AhBljAFAlDEGAFHGGABEGWMAEGWMAUCUMQYAUcYOUB9AVM/lfb/02SVjw1u0 + MUVpH4JgOXm8KEbD4WhVqzGZDH/UFuZ46rixwdbDVl0QBDI3EKdcjwPsBb2EmQJIz52LCCZjvU+grgqU + xe7WJeicR9Pqm9BsTB2i2ulTI4ax/oP87VD70mIREQdBK9HMqq3glSYuF65ubMz+Uqsxm22fd85tp88D + 667zz/fcttee/dVH1nEIHKZOkzGA7+sZ85MA7kgdFJHKWrus/pDx0tJgUCe3KDPGoKoq9SR8aBBj+qEJ + scH6XO81ad0WXJgnjxsRlGWt1jBWdh8A3mPWs5vO2kaDoARAYSpUhd74tDx4K4ykr0ekEGtq9WLasl0K + IZ0R83mzOJ22K1oNEVkHoHUCngPwas9tuwxgHYcAXwGIMsYAIMoYA4AoYwwAoowxAIgyxgAgytieTAM+ + 9tgz6vHwAxMLI+rP8v5zA8R0X0JR2kURo04m28KUIpKcKrLWGmut2m9gjOx6IQ4BtEsBIBD9dsBIBSPp + 6UYRIEY9v0MAfOhZiaNHCNL7c0RK9TeJkar3enfumrqGyg3RPjtjBH2fv7XWxBiVRWViiSh6U4Ng8th/ + +t9TZUQMzusLJITozNc21A1EPv3pD9zgXUnbqz6AvsnmHwDwY9qAsnb/FkByjraqqmrcsyPP6VOnFqqy + TJ6LMQZlVeJmM6bu+a/VCCeK96gjQmgQlF6CGB2ubag9Lbi6dg0uXN3VtRRmGaW9XR1zeuFH1AfcSAFj + 9J6FvdDXn1HXdTmZTI5rY9quO671ErRtd8+lS5feqdWYbk232rbVegnWAPy3nsv5AoCv9YzZ9Q5DfAUg + yhgDgChjDACijDEAiDLGACDKGAOAKGMMAKKMyXvPPq+GwIrvTovyN/YAYK38Yyg9BfVgcHJQD+7Waiws + jH5MjBmmf4Y1Va1P9I5Ho8qadKOHiMDYw5F5MXpEKOtfxICZ0xcV8WGKEGf6z+k5DysjWKP/Lf+wuB2Q + 9H0VGCj9WQeKD0Fd3CR4H6fb29ocP9qmbb33yQ8vhjDb2tr+glZj3sxfbebzN5Qhzvv451qNCJxbs+VF + bUyB/v8FnAJwvzpC8C8ADFKHjZFBVVdq99Sx48cXiyL9dBpjYO3h+BLtBREL0fqrBBhX36fWiNEhRr1X + JPa02Al6mziPFNuzZRuslaqq1K4m732tNRM55xfbzv0TrUbbNVMI5sqQOYC+HYwcAC1E+ApAlDMGAFHG + GABEGWMAEGWMAUCUMQYAUcYYAEQZK07gshoC3k4KQNQGHIE1UMJEYER6ltkROVDbFB0JIsUNrMRDN4O6 + HtTO4kc9v3zFCNSmBAPrep7L2Pt8838ARBljABBljAFAlDEGAFHGGABEGWMAEGWMAUCUsQL9mwtcAPDX + PWM+AWVBkBDDSte16u4S165efY+IJFeeMNYWZVkOtRrj8biyNr2mgIhktaYAffe89+qCIN77sDWdqrv6 + uK6bB++Tu7qEGLe7rv2cViPGeAE7G4gkfwz6n8sL6Hm+96X35v3/8Y/PAHi7Nsaa8pcBJHdtKctyOBwO + jmk1VldXJ1VVJYPIGIO6vvk71NDh1TQN9J2BWnfu/AV1IY75bLbWdZ22FNNVH7pf6zmVl579lUdfv9nX + y1cAoowxAIgyxgAgyhgDgChjDACijDEAiDLGACDK2H6tFnEewKWeMV+E0pfQOndbu7n1Nq3A9tdf+Vci + ktzFyBgzLMtyVatx6tSphcFgoPYSjEZqPxLdItvbM3UOfz6fu0uXLm1pNbrOXQghJOfwY4znOu9+Sz2R + iK8KcEUdAXXTD6C/QW9P7EsAPPsrjwZA2+cKANBpB9/3H56rAKgfntmpkezAMsZ4Y4y6G1bcoY3Yj1tG + 35OodvHFGKP3Xv0AnXM+hOCUIZ1zXv0eAtj4g//8yMatvhs3gq8ARBljABBljAFAlDEGAFHGGABEGWMA + EGXsMO0aMQdwsWfMZwGsKMfHIcS71B8y2/4R59rkugRGTDGfzZa1GvVgIEVRJHsaRARVpe7pkJ22bdUp + POdcbOZzdQqv67r1ENNTeK5zV0OI/6/nVL4JYFs5vob+72HfHP+BkdVmPD/9y3+yAOCt2pjFhfLnRbTF + S2RkpLhPq3Hs+G12OBol760xBsvLS7f6dhwo6+vX1Sae2fZ2vHb1itocE6J7EYjJhzdGvLS51f1mz6l8 + 4w9/7Sf65vmPDL4CEGWMAUCUMQYAUcYYAEQZYwAQZYwBQJQxBgBRxo5UH8DTz/31uwEsJi9WcLeY+DNa + jbqqzxhj0jsUGVPWdX2bVuOV89uytpVe3sD5iAtr6uYyGI0XUNXphUdEBCsry2oNkb35ePX1EYC1tXV1 + TNvMsD3Vp9ZvX6lR2PT5riyU+P7VkXoiTdNcCSEkb3wIYbtpG3WzjRjkf8aIV5Uhmx985J1f2sXtPFAO + UyfgjRgAGKcOimBijZzUCgxrOyysLVPHrTHFcFiqT1ZVAEZZ/0QQ0LWteiGudrBFuu9lrx7uvdC3nZZz + rvd6BQWM8h/SqgAmI/2+z8QXXmkmct4PndM/fx8xiTH9HULPwjWHDV8BiDLGACDKGAOAKGMMAKKMMQCI + MsYAIMrYvkwDPvPMM0BPz4GbfP8d2vkYaybGpDf9AIBhXd8vgoXUcWvNalmYiVpjUA2tMcrGIGKrUr9t + p46NMKyTM4lwPqAsrFqj8RZd1JanF2xtXFdr2LJEUfR8xD3bHDjv4Dp95qsUB0i60HhscftkUa2xenyI + wqZ/H03GJYa1fi3W1FUIMXljfQi2LKy+qIgL93kfkovKxIitZ/7P34y0GiHEc8EHbV8A97Uv/vA56OLZ + szd/qne/+gAE/f/beABKEw+AtwN4v1agrovlwqYf3kFdFidWFha0GkVhYXY5x74y0XcO8iFifUtvBPrK + q+t4/Y1p8ngIEX9/7rJaY7SwiOFYvdzeAJhtb2G6tamOufvUGMak79mZk2O84251+h3LCzWs2e0XfqjN + 3yPECOf8MW3M5bWtD8ybdOI5H9ysafTkBZ4F8JJyfBPA79/ABd30XWj4CkCUMQYAUcYYAEQZYwAQZYwB + QJQxBgBRxhgARBnrnXj9+AsvGPQExdI1+zCAZOeLiLxNBA9qNVaWRndpDTiDulxcXBie1mpUhbWi/KG8 + MSKFNeq17Mff2UcA3gd1zLz1aLv0mBjR20vw+pUZLlzTx/Q5fazGnbfpfQ3LCzW021aVBoNKb3yy1uzL + 6jR9i5s4H0JQBsUQY+u8ukHJ5tbs4rzpks0TPgS3dn37m/p54vMxxq8qQ7pT5fpzPZcbHnroIfWCb7QR + qO+zOQ5A2+vqTgA/qBUwRpaNkeS3pLCmHNZlrV6MNQdqoYwUefNcNQtDAyjPXYxApa+PgfVpi8LoQdNn + cWhxcmXQc64VDsFtB9Af8GXPBxNjhFWazQBgNmtOGCPLyRoQD0DtSAXwLQBXleMt+p9LQU8zEV8BiDLG + ACDKGAOAKGMMAKKMMQCIMsYAIMpY8cnnn1dDoLiG04iyqlYx+EdQ+gDqujgzqEp1Mnk0qEtjJHkuVVXY + /im+QzIXtRdkZ+5cMxmVOLkyvMGC6Rp9Pyen2w5I71RiVRU2KtNvIUTTLnj1g2lad6ZpupkypLvQTu7X + TzWe/+Tzz1/ShhTQ5+8hAe8F8GF1jMiPQ+kpWBgN7JnTK+rc6aAqDsUc/kEhAEY9K+Tce2YJ955ZutWn + eqSI9PdwrEzGNYBkz0qMEcuTkbpE0rlLa4+2rdMajlyE6AEQ8SnsLE6SxFcAoowxAIgyxgAgyhgDgChj + DACijDEAiDLGACDKWIGdvyvW/Bn0TQ4QYnwQSiPQdNbc99r5q+/Ragzr8oSR9HoAdV2WS4tDtXmiKix7 + CeimijFCn54Hrm/OZo2yuUiI0c+aVt3VZd64z4UYX1SGdAD+oud0L6Ln+S5+9qGH+laMuPjmv6SnP/NX + QyiNQPOmq9rOvVOr4X1YMiLJGhGQxbG+MEVEZk1ptO8idnZl0sybzk23Gy0A3HTWaFuHIYT4dR/iXylD + 3Acf/uG/2e318BWAKGMMAKKMMQCIMsYAIMoYA4AoYwwAoozd6L4AfbZ6al1CTy9BjLGJSi+BD2HStN2Z + nhqVkfSiIiIiZWHVHSrECKcSj6gIIPZM4XXO+6hsDBJiDG3n1Ll1H8K5GGNymi/G2AH4Rs/pXsLOc5Xi + 9uKeHJjv+lN/8sK7ACQn+svC/JA15oNajWFd3WVEkjWGg6o8fWKirpAxqEv0bB5Eh5QPAfP09DwA4OLl + jeuzeavN4c9nTavu6uNDeLpz4W+VIfPHf+JdL9zq+wHwFYAoawwAoowxAIgyxgAgyhgDgChjDACijDEA + iDK2V41Ae+EVAFqTzgUAf6cVcM6/VZQ+AMzb1QtvXH9Eq1GW5rSIJBceKQtrlyfjBa1GVVphL8He8iGg + 7bzaxbO+Md3qnE+u1hFjnHVdUNe2mDfdc53z55Uac/Q38bwG4Lp2Oft353QHphFoL3zqj1+4B0Dy4S1K + e6+15qNajaq09xgjyV1b6qosV08uH9NqDOtSikJtOKTvknMes6ZTA+D8G+vXmlZZiSfEzbbzX9dqeB8+ + 4Tr/sjJk9qFH36XWOEz4a4ooYwwAoowxAIgyxgAgyhgDgChjDACijB2kPoC90EHvJZiiZ48DACMAyWnA + iFg7HyqtQOt8FWJU7q3AWqPOExrBkdnkJMaInnU44H3wO0t2fGfOB+d8UBfiiDFeBNAoQzbR//lPoW+m + 0eEIORrfsD301Ge+dBpKL0Fli9XCFP9Gq2GMeYeInEwdLwpr7zi5fJtWYzyqZVAVR+LzmbcuTrcbNQLO + vbF+xelNPG8EH76i1XDB/fc2uPPKkNnjD7+7LwCywlcAoowxAIgyxgAgyhgDgChjDACijDEAiDLGACDK + 2FFrBNoLG9hpBkmZAfgdrUAEVmNMNxOFEMfrG1N1YZLN6fwuYyTZKyAisrQwWNRq1FVpqtLuqpeg7Xxs + 2i5oY65vzTfV3XRCvOK9VzfTCCE+F6Jy3yM2AWhz/MDOojLaZ3dgFuI4KBgA/8DjD797u2dIbzfZU5/5 + 8hKAOnW8NG65bdo7tRpiTaWtTGSMmKowY62GNUZ2GwDO+Tibt2oAXF7b3A4hJsfEGC/GviaeiD/sgqwr + Q5rHH75fW2WHvgd8BSDKGAOAKGMMAKKMMQCIMsYAIMoYA4AoY5wGvDkitNUtgACgb7pxCzs9CSkmxjjR + CoQQKu/Drj7jEIKLMbY9wzbevCbtWvquN/Tcs54lReh7cSQWnDiKnvrMlxehLExiBcNK4i9pNcTKfWLk + nt2cRwzx5eDDi9qYLsqTPspMGTJ7/OH7N/fjvtF3h68ARBljABBljAFAlDEGAFHGGABEGWMAEGWMAUCU + MTYCHVwN9AUs5gCe7anxBQAntAHaQh5vuoL+3XTWADjluAMdSGwEOsKe+ewLAygLkwBA27m+AGg+9JMP + NKAjia8ARBljABBljAFAlDEGAFHGGABEGWMAEGWMAUCUsf8PzNlsT7yleHcAAAAASUVORK5CYIIoAAAA + gAAAAAABAAABACAAAAAAAAAAAQBhCgAAYQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMu6oEzLuqD8y7qg/Mu6oPzLuqD8i2pA7ItqQO + yLakDsi2pA7ItqQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAMy7qgTMu6oPzLuqD8y7qg/Mu6oPyLakDsi2pA7ItqQOyLakDsi2pAQAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLuqBMy7qg/Mu6oPzLuqD8y7qg/ItqQO + yLakDsi2pA7ItqQOyLakBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADMu6oEzLuqD8y7qg/Mu6oPzLuqD8i2pA7ItqQOyLakDsi2pA7ItqQEAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADRuaIN0bmiENG5ohDRuaIQ0LuqQ9C7q2/Qu6tv0Lurb9G9rH/SwK2s0sCtrNLArazSwK2s + 0sCtrNLArazSwK2s0sCtrNC9q37Pu6puz7uqbs+7qm7Pu6lC0bmiENG5ohDRuaIQ0bmiDQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANG5ohLRuaIW0bmiFtG5ohbQu6pb + 0Lurl9C7q5fQu6uX0b2srNLAreXSwK3l0sCt5dLAreXSwK3l0sCt5dLAreXSwK3l0L2rq8+7qpbPu6qW + z7uqls+7qVrRuaIW0bmiFtG5ohbRuaISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA0bmiEtG5ohbRuaIW0bmiFtC7qlvQu6uX0Lurl9C7q5fRvays0sCt5dLAreXSwK3l + 0sCt5dLAreXSwK3l0sCt5dLAreXQvaurz7uqls+7qpbPu6qWz7upWtG5ohbRuaIW0bmiFtG5ohIAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIS0bmiFtG5ohbRuaIW + 0LuqW9C7q5fQu6uX0Lurl9G9rKzSwK3l0sCt5dLAreXSwK3l0sCt5dLAreXSwK3l0sCt5dC9q6vPu6qW + z7uqls+7qpbPu6la0bmiFtG5ohbRuaIW0bmiEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANG5ogPRuaIK0bmiCtG5ogrRuqUO + 0LyrRNC8q0TQvKtE0LyrRNK/rGzTv6x207+sdtO/rHbYx7eg28y9xdvMvcXbzL3F3c7A0eHVxvHh1cbx + 4dXG8eHVxvHh1cbx4dXG8eHVxvHh1cbx3c7A0dvMvcXbzL3F28y9xdjHt6DTv6x207+sdtO/rHbSv6xs + 0LyrRNC8q0TQvKtE0LyrRNG6pQ7RuaIK0bmiCtG5ogrRuaIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA0bmiB9G5ohbRuaIW0bmiFtG6pR7QvKuR0LyrkdC8q5HQvKuR07+t09PArePTwK3j + 08Ct49zNve/j18r649fK+uPXyvrn3ND78erg//Hq4P/x6uD/8erg//Hq4P/x6uD/8erg//Hq4P/n3ND7 + 49fK+uPXyvrj18r63M2979PArePTwK3j08Ct49O/rdPQvKuR0LyrkdC8q5HQvKuR0bqlHtG5ohbRuaIW + 0bmiFtG5ogcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIH0bmiFtG5ohbRuaIW + 0bqlHtC8q5HQvKuR0LyrkdC8q5HTv63T08Ct49PArePTwK3j3M297+PXyvrj18r649fK+ufc0Pvx6uD/ + 8erg//Hq4P/x6uD/8erg//Hq4P/x6uD/8erg/+fc0Pvj18r649fK+uPXyvrczb3v08Ct49PArePTwK3j + 07+t09C8q5HQvKuR0LyrkdC8q5HRuqUe0bmiFtG5ohbRuaIW0bmiBwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAANG5ogfRuaIW0bmiFtG5ohbRuqUe0LyrkdC8q5HQvKuR0LyrkdO/rdPTwK3j + 08Ct49PArePczb3v49fK+uPXyvrj18r659zQ+/Hq4P/x6uD/8erg//Hq4P/x6uD/8erg//Hq4P/x6uD/ + 59zQ++PXyvrj18r649fK+tzNve/TwK3j08Ct49PArePTv63T0LyrkdC8q5HQvKuR0LyrkdG6pR7RuaIW + 0bmiFtG5ohbRuaIHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAMm5ogbJuaIHybmiB8m5ogfQvasW0b6sIdG+rCHRvqwh0r6sK9O/q0DTv6tA + 07+rQNTArUbXxban18W2p9fFtqfXxban2cm429rJuOnaybjp2sm46eHTxfLm28/75tvP++bbz/vp39P8 + 8erg//Hq4P/x6uD/8erg//Hq4P/x6uD/8erg//Hq4P/p39P85tvP++bbz/vm28/74dPF8trJuOnaybjp + 2sm46dnJuNvXxban18W2p9fFtqfXxban1MCtRtO/q0DTv6tA07+rQNK+rCvRvawh0b2sIdG9rCHQvasW + ybmiB8m5ogfJuaIHybmiBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAybmiHcm5oiHJuaIh + ybmiIdC9q3DRvqyl0b6spdG+rKXSv6271MGv5tTBr+bUwa/m1cOx6Ofbzv3n287959vO/efbzv3w6N3/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+fbzv3n287959vO/efbzv3Vw7Ho + 1MGv5tTBr+bUwa/m0r+tu9G9rKXRvayl0b2spdC9q3DJuaIhybmiIcm5oiHJuaIdAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAADJuaIdybmiIcm5oiHJuaIh0L2rcNG+rKXRvqyl0b6spdK/rbvUwa/m + 1MGv5tTBr+bVw7Ho59vO/efbzv3n287959vO/fDo3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6N3/59vO/efbzv3n287959vO/dXDsejUwa/m1MGv5tTBr+bSv6270b2spdG9rKXRvayl + 0L2rcMm5oiHJuaIhybmiIcm5oh0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMm5oh3JuaIh + ybmiIcm5oiHQvatw0b6spdG+rKXRvqyl0r+tu9TBr+bUwa/m1MGv5tXDsejn287959vO/efbzv3n2879 + 8Ojd//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Do3f/n287959vO/efbzv3n2879 + 1cOx6NTBr+bUwa/m1MGv5tK/rbvRvayl0b2spdG9rKXQvatwybmiIcm5oiHJuaIhybmiHQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAybmiHcm5oiHJuaIhybmiIdC9q3DRvqyl0b6spdG+rKXSv627 + 1MGv5tTBr+bUwa/m1cOx6Ofbzv3n287959vO/efbzv3w6N3/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8Ojd/+fbzv3n287959vO/efbzv3Vw7Ho1MGv5tTBr+bUwa/m0r+tu9G9rKXRvayl + 0b2spdC9q3DJuaIhybmiIcm5oiHJuaIdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAADMtaQRzLWkKsy1pCrMtaQqzrinO9G9q6rRvauq0b2rqtG9q6rUw7LT + 1cSz2tXEs9rVxLPa4tXH7One0vjp3tL46d7S+Ovi1vrw6N798Oje/fDo3v3w6d798erg//Hq4P/x6uD/ + 8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8erg//Hq4P/x6uD/ + 8erg//Dp3v3w6N798Oje/fDo3v3r4tb66d7S+One0vjp3tL44tXH7NXEs9rVxLPa1cSz2tTDstPRvauq + 0b2rqtG9q6rRvauqzrinO8y1pCrMtaQqzLWkKsy1pBEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy1pBLMtaQt + zLWkLcy1pC3OuKc/0b2rttG9q7bRvau20b2rttXDsuDVxLPn1cSz59XEs+fi1cj16uDU/urg1P7q4NT+ + 7eTY/vLr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+3k2P7q4NT+ + 6uDU/urg1P7i1cj11cSz59XEs+fVxLPn1cOy4NG9q7bRvau20b2rttG9q7bOuKc/zLWkLcy1pC3MtaQt + zLWkEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLWkEsy1pC3MtaQtzLWkLc64pz/Rvau20b2rttG9q7bRvau2 + 1cOy4NXEs+fVxLPn1cSz5+LVyPXq4NT+6uDU/urg1P7t5Nj+8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7eTY/urg1P7q4NT+6uDU/uLVyPXVxLPn1cSz59XEs+fVw7Lg + 0b2rttG9q7bRvau20b2rts64pz/MtaQtzLWkLcy1pC3MtaQSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMtaQS + zLWkLcy1pC3MtaQtzrinP9G9q7bRvau20b2rttG9q7bVw7Lg1cSz59XEs+fVxLPn4tXI9erg1P7q4NT+ + 6uDU/u3k2P7y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/t5Nj+ + 6uDU/urg1P7q4NT+4tXI9dXEs+fVxLPn1cSz59XDsuDRvau20b2rttG9q7bRvau2zrinP8y1pC3MtaQt + zLWkLcy1pBIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6Il + zLeiKMy3oijMt6Ioz7ypZdC9qoPQvaqD0L2qg9PArpPWxLSs1sS0rNbEtKzYx7e05NjL5+TYy+fk2Mvn + 5NjL5+je0vXp39P36d/T9+nf0/ft5Nn87+fd/+/n3f/v593/8One//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Dp3v/v593/7+fd/+/n3f/t5Nn86d/T9+nf0/fp39P3 + 6N7S9eTYy+fk2Mvn5NjL5+TYy+fYx7e01sS0rNbEtKzWxLSs08Cuk9C9qoPQvaqD0L2qg8+8qWXMt6Io + zLeiKMy3oijMt6IlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy3ojjMt6I8zLeiPMy3ojzPvKmX0L2qxdC9qsXQvarF + 08Gv1NfFtevXxbXr18W169rJuu7r4tb/6+LW/+vi1v/r4tb/8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/x6uD/6+LW/+vi1v/r4tb/6+LW/9rJuu7XxbXr + 18W169fFtevTwa/U0L2qxdC9qsXQvarFz7ypl8y3ojzMt6I8zLeiPMy3ojgAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + zLeiOMy3ojzMt6I8zLeiPM+8qZfQvarF0L2qxdC9qsXTwa/U18W169fFtevXxbXr2sm67uvi1v/r4tb/ + 6+LW/+vi1v/x6uD/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Hq4P/r4tb/6+LW/+vi1v/r4tb/2sm67tfFtevXxbXr18W169PBr9TQvarF0L2qxdC9qsXPvKmX + zLeiPMy3ojzMt6I8zLeiOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6I4zLeiPMy3ojzMt6I8z7ypl9C9qsXQvarF + 0L2qxdPBr9TXxbXr18W169fFtevaybru6+LW/+vi1v/r4tb/6+LW//Hq4P/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8erg/+vi1v/r4tb/6+LW/+vi1v/aybru + 18W169fFtevXxbXr08Gv1NC9qsXQvarF0L2qxc+8qZfMt6I8zLeiPMy3ojzMt6I4AAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM65pQzOuaUZzrmlGc65pRnPu6gk0b6rUdG+q1HRvqtR + 0b6rUdXDsn/Vw7KC1cOygtXDsoLczLy+3c+/3N3Pv9zdz7/c4NLD5eLVx/Pi1cfz4tXH8+TXyvXu5tr/ + 7uba/+7m2v/u5tr/8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/x6uD/7uba/+7m2v/u5tr/7uba/+TXyvXi1cfz4tXH8+LVx/Pg0sPl3c+/3N3Pv9zdz7/c + 3My8vtXDsoLVw7KC1cOygtXDsn/RvqtR0b6rUdG+q1HRvqtRz7uoJM65pRnOuaUZzrmlGc65pQwAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + zrmlHc65pT7OuaU+zrmlPs+7qFrRvqvL0b6ry9G+q8vRvqvL2ce36tnIuOzZyLjs2ci47Ofbzvnt5Nj/ + 7eTY/+3k2P/v59z/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh/+/n3P/t5Nj/7eTY/+3k2P/n28752ci47NnIuOzZyLjs2ce36tG+q8vRvqvL + 0b6ry9G+q8vPu6hazrmlPs65pT7OuaU+zrmlHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOuaUdzrmlPs65pT7OuaU+z7uoWtG+q8vRvqvL + 0b6ry9G+q8vZx7fq2ci47NnIuOzZyLjs59vO+e3k2P/t5Nj/7eTY/+/n3P/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7+fc/+3k2P/t5Nj/ + 7eTY/+fbzvnZyLjs2ci47NnIuOzZx7fq0b6ry9G+q8vRvqvL0b6ry8+7qFrOuaU+zrmlPs65pT7OuaUd + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAM65pR3OuaU+zrmlPs65pT7Pu6ha0b6ry9G+q8vRvqvL0b6ry9nHt+rZyLjs2ci47NnIuOzn2875 + 7eTY/+3k2P/t5Nj/7+fc//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/v59z/7eTY/+3k2P/t5Nj/59vO+dnIuOzZyLjs2ci47NnHt+rRvqvL + 0b6ry9G+q8vRvqvLz7uoWs65pT7OuaU+zrmlPs65pR0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAL+/nwG/v58Bv7+fAb+/nwHNuKQSzbikGM24pBjNuKQYzrqmNs+6p1fPuqdXz7qnV9G+q2/WxLLS + 1sSy0tbEstLWxLLS3My97d3Nvu/dzb7v3c2+7+jd0Pru5dn/7uXZ/+7l2f/v59z/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3P/u5dn/ + 7uXZ/+7l2f/o3dD63c2+793Nvu/dzb7v3My97dXEstLVxLLS1cSy0tXEstLRvqtvz7qnV8+6p1fPuqdX + z7qmNc65pRjOuaUYzrmlGM65pRK/v58Bv7+fAb+/nwG/v58Bv7+fCL+/nwi/v58Iv7+fCM24pIjNuKS3 + zbikt824pLfPuqfV0Lyp+NC8qfjQvKn41sSz+e3k2P/t5Nj/7eTY/+3k2P/y6+D/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/ + 7OPX/+zj1//s49f/7OPX/9bEs/nQvKr40Lyq+NC8qvjPu6jUzrmltc65pbXOuaW1zrmlh7+/nwi/v58I + v7+fCL+/nwi/v58Iv7+fCL+/nwi/v58IzbikiM24pLfNuKS3zbikt8+6p9XQvKn40Lyp+NC8qfjWxLP5 + 7eTY/+3k2P/t5Nj/7eTY//Lr4P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lq4P/s49f/7OPX/+zj1//s49f/1sSz+dC8qvjQvKr4 + 0Lyq+M+7qNTOuaW1zrmltc65pbXOuaWHv7+fCL+/nwi/v58Iv7+fCL+/nwi/v58Iv7+fCL+/nwjNuKSI + zbikt824pLfNuKS3z7qn1dC8qfjQvKn40Lyp+NbEs/nt5Nj/7eTY/+3k2P/t5Nj/8uvg//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8urg/+zj1//s49f/7OPX/+zj1//WxLP50Lyq+NC8qvjQvKr4z7uo1M65pbXOuaW1zrmltc65pYe/v58I + v7+fCL+/nwi/v58Iv7+fCL+/nwi/v58Iv7+fCM24pIjNuKS3zbikt824pLfPuqfV0Lyp+NC8qfjQvKn4 + 1sSz+e3k2P/t5Nj/7eTY/+3k2P/y6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/7OPX/+zj1//s49f/7OPX/9bEs/nQvKr4 + 0Lyq+NC8qvjPu6jUzrmltc65pbXOuaW1zrmlh7+/nwi/v58Iv7+fCL+/nwi/v58Bv7+fAb+/nwG/v58B + zbuiFc27oh3Nu6IdzbuiHc+7p0fPu6h4z7uoeM+7qHjRvauN1MKx4tTCseLUwrHi1MKx4t/Sw/Hg08Xy + 4NPF8uDTxfLq4dX77+jd/+/o3f/v6N3/8One//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7+bb/+3i1v/t4tb/7eLW/+fWxf/WtJj/1rSY/9a0mP/WtJj/ + 1rSY/9a0mP/WtJj/1rSY/+fWxf/t4tb/7eLW/+3i1v/v5tv/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/w6d7/7+jd/+/o3f/v6N3/6uHV++DTxfLg08Xy + 4NPF8t/Sw/HUwrHi1MKx4tTCseLUwrHi0b2rjc+7qXjPu6l4z7upeM+6qEfMuqgczLqoHMy6qBzMuqgV + v7+fAb+/nwG/v58Bv7+fAQAAAAAAAAAAAAAAAAAAAADMzJkEzMyZBczMmQXMzJkFz7unMc+6qGTPuqhk + z7qoZM+7qXzQvKrd0Lyq3dC8qt3QvKrd3M6/793PwPDdz8Dw3c/A8Onf0/rv59z/7+fc/+/n3P/w6d7/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/v5tr/ + 7OHU/+zh1P/s4dT/5dPB/9Ksjf/SrI3/0qyN/9Ksjf/SrI3/0qyN/9Ksjf/SrI3/5dPB/+zh1P/s4dT/ + 7OHU/+/m2v/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Dp3v/v59z/7+fc/+/n3P/p39P63c/A8N3PwPDdz8Dw3M6/79C8qt3QvKrd0Lyq3dC8qt3Pu6l8 + z7qoZM+6qGTPuqhkzrqpMb+/vwS/v78Ev7+/BL+/vwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAMzMmQTMzJkFzMyZBczMmQXPu6cxz7qoZM+6qGTPuqhkz7upfNC8qt3QvKrd0Lyq3dC8qt3czr/v + 3c/A8N3PwPDdz8Dw6d/T+u/n3P/v59z/7+fc//Dp3v/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/m2v/s4dT/7OHU/+zh1P/l08H/0qyN/9Ksjf/SrI3/ + 0qyN/9Ksjf/SrI3/0qyN/9Ksjf/l08H/7OHU/+zh1P/s4dT/7+ba//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8One/+/n3P/v59z/7+fc/+nf0/rdz8Dw + 3c/A8N3PwPDczr/v0Lyq3dC8qt3QvKrd0Lyq3c+7qXzPuqhkz7qoZM+6qGTOuqkxv7+/BL+/vwS/v78E + v7+/AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMyZBMzMmQXMzJkFzMyZBc+7pzHPuqhk + z7qoZM+6qGTPu6l80Lyq3dC8qt3QvKrd0Lyq3dzOv+/dz8Dw3c/A8N3PwPDp39P67+fc/+/n3P/v59z/ + 8One//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 7+ba/+zh1P/s4dT/7OHU/+XTwf/SrI3/0qyN/9Ksjf/SrI3/0qyN/9Ksjf/SrI3/0qyN/+XTwf/s4dT/ + 7OHU/+zh1P/v5tr/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6d7/7+fc/+/n3P/v59z/6d/T+t3PwPDdz8Dw3c/A8NzOv+/QvKrd0Lyq3dC8qt3QvKrd + z7upfM+6qGTPuqhkz7qoZM66qTG/v78Ev7+/BL+/vwS/v78DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADMzJkBzMyZAszMmQLMzJkCz7unFM+6qCjPuqgoz7qoKM+7qTLPvKpaz7yqWs+8qlrPvKpa + 18a2ltfGtprXxraa18a2mtzNvc/ez8Dp3s/A6d7PwOnh1MXu5trN9ebazfXm2s3159zP9/Do3f/w6N3/ + 8Ojd//Do3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/ + 7ePW/+3j1v/t49b/7ePW/+DItP/dwqv/3cKr/93Cq//Yt53/06+R/9Ovkf/Tr5H/1a2N/9ingP/Yp4D/ + 2KeA/9ingP/Yp4D/2KeA/9ingP/Yp4D/1ayM/9Ovkf/Tr5H/06+R/9i3nf/dwqv/3cKr/93Cq//gyLT/ + 7ePW/+3j1v/t49b/7ePW//Lq4P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6N3/8Ojd//Do3f/w6N3/59zP9ubazfXm2s315trN9eHUxe7ez8Dp3s/A6d7PwOnczb3P + 18a2mtfGtprXxraa18a2ltG7qVrRu6la0bupWtG7qVrQuqkyz7qoKM+6qCjPuqgozrqpFL+/vwK/v78C + v7+/Ar+/vwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAqqqqAaqqqgOqqqoDqqqqA6qqqgPNuKZbzbimYc24pmHNuKZhz7ypstC9qtvQvarb + 0L2q29XEsuPdzr7v3c6+793Ovu/f0cLx7ubb/+7m2//u5tv/7ubb//Hq4P/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hq4P/q3c7/6t3O/+rdzv/q3c7/1LGV/8+mh//Ppof/ + z6aH/8mZdf/DjWX/w41l/8ONZf/Kk2r/3KR4/9ykeP/cpHj/3KR4/9yjeP/co3j/3KN4/9yjeP/Kk2n/ + w41k/8ONZP/DjWT/yZl0/8+mh//Ppof/z6aH/9Sxlf/q3c7/6t3O/+rdzv/q3c7/8erg//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8erg/+7m2//u5tv/7ubb/+7m2//f0cLw + 3c6+7t3Ovu7dzr7u1cSy49C9qtvQvarb0L2q28+8qbLNuKZhzbimYc24pmHNuKZb/4CAAv+AgAL/gIAC + /4CAAv+AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqqqoBqqqqA6qqqgOqqqoD + qqqqA824plvNuKZhzbimYc24pmHPvKmy0L2q29C9qtvQvarb1cSy493Ovu/dzr7v3c6+79/RwvHu5tv/ + 7ubb/+7m2//u5tv/8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8erg/+rdzv/q3c7/6t3O/+rdzv/UsZX/z6aH/8+mh//Ppof/yZl1/8ONZf/DjWX/w41l/8qTav/cpHj/ + 3KR4/9ykeP/cpHj/3KN4/9yjeP/co3j/3KN4/8qTaf/DjWT/w41k/8ONZP/JmXT/z6aH/8+mh//Ppof/ + 1LGV/+rdzv/q3c7/6t3O/+rdzv/x6uD/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/x6uD/7ubb/+7m2//u5tv/7ubb/9/RwvDdzr7u3c6+7t3Ovu7VxLLj0L2q29C9qtvQvarb + z7ypss24pmHNuKZhzbimYc24plv/gIAC/4CAAv+AgAL/gIAC/4CAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAKqqqgGqqqoDqqqqA6qqqgOqqqoDzbimW824pmHNuKZhzbimYc+8qbLQvarb + 0L2q29C9qtvVxLLj3c6+793Ovu/dzr7v39HC8e7m2//u5tv/7ubb/+7m2//x6uD/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/x6uD/6t3O/+rdzv/q3c7/6t3O/9Sxlf/Ppof/ + z6aH/8+mh//JmXX/w41l/8ONZf/DjWX/ypNq/9ykeP/cpHj/3KR4/9ykeP/co3j/3KN4/9yjeP/co3j/ + ypNp/8ONZP/DjWT/w41k/8mZdP/Ppof/z6aH/8+mh//UsZX/6t3O/+rdzv/q3c7/6t3O//Hq4P/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hq4P/u5tv/7ubb/+7m2//u5tv/ + 39HC8N3Ovu7dzr7u3c6+7tXEsuPQvarb0L2q29C9qtvPvKmyzbimYc24pmHNuKZhzbimW/+AgAL/gIAC + /4CAAv+AgAL/gIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqqqqAKqqqgKqqqoC + qqqqAqqqqgLNuKY8zbimQc24pkHNuKZBz7ypd9C9qpLQvaqS0L2qktXDsqLby7q628u6utvLurrdzb3B + 5drN8eXazfHl2s3x5drN8erg1Pfr4dX46+HV+Ovh1fjt49f87uTY/+7k2P/u5Nj/69/R/+bUw//m1MP/ + 5tTD/+bTwf/dwqr/3cKq/93Cqv/dwqr/1aqJ/9Okgf/TpIH/06SB/9Kfef/Sm3H/0ptx/9Kbcf/Wn3X/ + 46p+/+Oqfv/jqn7/46p+/+Oqfv/jqn7/46p+/+Oqfv/Wn3T/0ptx/9Kbcf/Sm3H/0p94/9Okgf/TpIH/ + 06SB/9Wqif/dwqr/3cKq/93Cqv/dwqr/5tPB/+bUw//m1MP/5tTD/+vf0f/u5Nj/7uTY/+7k2P/t49f8 + 6+HV+Ovh1fjr4dX46uDU9+XazfHl2s3x5drN8eXazfHdzb3A28u6udvLurnby7q51cOyotC9qpLQvaqS + 0L2qks+8qXfNuKZBzbimQc24pkHNuKY8/4CAAf+AgAH/gIAB/4CAAf+AgAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAz7ilIM+4pU/PuKVPz7ilT8+5pmHPvarVz72q1c+9qtXPvarV2sm559vLu+rby7vq + 28u76uHSwvfl1sf/5dbH/+XWx//exrL/z6aH/8+mh//Ppof/zqSF/8OMY//DjGP/w4xj/8OMY//WnXH/ + 26F1/9uhdf/boXX/5qyA/++2iv/vtor/77aK/++2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/++2iv/vtor/77aK/++2iv/mrID/26F1/9uhdf/boXX/1p1x/8OMY//DjGP/w4xj/8OMY//OpIX/ + z6aH/8+mh//Ppof/3say/+XWx//l1sf/5dbH/+HSwvfby7vq28u76tvLu+raybnnz72q1c+9qtXPvarV + z72q1c+5pmHPuKVPz7ilT8+4pU/PuKUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPuKUgz7ilT8+4pU/PuKVP + z7mmYc+9qtXPvarVz72q1c+9qtXaybnn28u76tvLu+rby7vq4dLC9+XWx//l1sf/5dbH/97Gsv/Ppof/ + z6aH/8+mh//OpIX/w4xj/8OMY//DjGP/w4xj/9adcf/boXX/26F1/9uhdf/mrID/77aK/++2iv/vtor/ + 77aK//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/77aK/++2iv/vtor/77aK/+asgP/boXX/ + 26F1/9uhdf/WnXH/w4xj/8OMY//DjGP/w4xj/86khf/Ppof/z6aH/8+mh//exrL/5dbH/+XWx//l1sf/ + 4dLC99vLu+rby7vq28u76trJuefPvarVz72q1c+9qtXPvarVz7mmYc+4pU/PuKVPz7ilT8+4pSAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAM+4pSDPuKVPz7ilT8+4pU/PuaZhz72q1c+9qtXPvarVz72q1drJuefby7vq + 28u76tvLu+rh0sL35dbH/+XWx//l1sf/3say/8+mh//Ppof/z6aH/86khf/DjGP/w4xj/8OMY//DjGP/ + 1p1x/9uhdf/boXX/26F1/+asgP/vtor/77aK/++2iv/vtor/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//vtor/77aK/++2iv/vtor/5qyA/9uhdf/boXX/26F1/9adcf/DjGP/w4xj/8OMY//DjGP/ + zqSF/8+mh//Ppof/z6aH/97Gsv/l1sf/5dbH/+XWx//h0sL328u76tvLu+rby7vq2sm558+9qtXPvarV + z72q1c+9qtXPuaZhz7ilT8+4pU/PuKVPz7ilIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz7ilHc+4pUrPuKVK + z7ilSs+5plvPvKnKz7ypys+8qcrPvKnK2Ma05NnHtujZx7bo2ce26N/NvPbj0cD/49HA/+PRwP/cw63/ + 0KaG/9Cmhv/Qpob/z6SE/8aPZv/Gj2b/xo9m/8aPZv/Yn3P/3KJ2/9yidv/conb/5q2B/++2iv/vtor/ + 77aK/++2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/++2iv/vtor/77aK/++2iv/mrYH/ + 3KJ2/9yidv/conb/2J9z/8aPZv/Gj2b/xo9m/8aPZv/PpIT/0KaG/9Cmhv/Qpob/3MOt/+PRwP/j0cD/ + 49HA/9/NvPbZx7bo2ce26NnHtujYxrTkz7ypys+8qcrPvKnKz7ypys+5plvPuKVKz7ilSs+4pUrPuKUd + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAt3pOBrd6Ti63ek4ut3pOLrd6Ti68h1yz + vIdcx7yHXMe8h1zHv4hd5sGIXvvBiF77wYhe+8uSZ/zfpXn/36V5/9+lef/gpnr/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/+Cmev/fpXn/36V5/9+lef/Lkmf8wYhe+8GIXvvBiF77v4hd5ryHXMe8h1zHvIdcx7yHXLO3ek4u + t3pOLrd6Ti63ek4ut3pOBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAC3ek4Gt3pOLrd6Ti63ek4ut3pOLryHXLO8h1zHvIdcx7yHXMe/iF3mwYhe+8GIXvvBiF77 + y5Jn/N+lef/fpXn/36V5/+Cmev/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/4KZ6/9+lef/fpXn/36V5/8uSZ/zBiF77 + wYhe+8GIXvu/iF3mvIdcx7yHXMe8h1zHvIdcs7d6Ti63ek4ut3pOLrd6Ti63ek4GAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALd6Tga3ek4ut3pOLrd6Ti63ek4u + vIdcs7yHXMe8h1zHvIdcx7+IXebBiF77wYhe+8GIXvvLkmf836V5/9+lef/fpXn/4KZ6//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//gpnr/36V5/9+lef/fpXn/y5Jn/MGIXvvBiF77wYhe+7+IXea8h1zHvIdcx7yHXMe8h1yz + t3pOLrd6Ti63ek4ut3pOLrd6TgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAt3pOBrd6Ti63ek4ut3pOLrd6Ti68h1yzvIdcx7yHXMe8h1zHv4hd5sGIXvvBiF77 + wYhe+8uSZ/zfpXn/36V5/9+lef/gpnr/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+Cmev/fpXn/36V5/9+lef/Lkmf8 + wYhe+8GIXvvBiF77v4hd5ryHXMe8h1zHvIdcx7yHXLO3ek4ut3pOLrd6Ti63ek4ut3pOBgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAuH1PIbh9TzG4fU8xuH1PMbqAU127gVWgu4FVoLuBVaC8glalwohcyMKIXMjCiFzI + wohcyNqhde7dpHj03aR49N2kePTjqn76566C/ueugv7nroL+6bCE/u2zh//ts4f/7bOH/+20iP/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7bSI/+2zh//ts4f/7bOH/+mwhP7nroL+566C/ueugv7jqn763aR49N2kePTdpHj0 + 2qF17sKIXMjCiFzIwohcyMKIXMi9glamvIFVobyBVaG8gVWhu4BTXrh9TzG4fU8xuH1PMbh9TyEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4fU8puH1PPbh9Tz24fU89 + uoBTdbuBVci7gVXIu4FVyLyCVs3DiV3uw4ld7sOJXe7DiV3u4KZ6/eSqfv/kqn7/5Kp+/+uyhv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+uyhv/kqn7/5Kp+/+Sqfv/gpnr9w4ld7sOJXe7DiV3uw4ld7r2CVs68gVXJ + vIFVybyBVcm7gFN1uH1PPbh9Tz24fU89uH1PKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALh9Tym4fU89uH1PPbh9Tz26gFN1u4FVyLuBVci7gVXIvIJWzcOJXe7DiV3u + w4ld7sOJXe7gpnr95Kp+/+Sqfv/kqn7/67KG//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/67KG/+Sqfv/kqn7/ + 5Kp+/+Cmev3DiV3uw4ld7sOJXe7DiV3uvYJWzryBVcm8gVXJvIFVybuAU3W4fU89uH1PPbh9Tz24fU8p + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuH1PKbh9Tz24fU89 + uH1PPbqAU3W7gVXIu4FVyLuBVci8glbNw4ld7sOJXe7DiV3uw4ld7uCmev3kqn7/5Kp+/+Sqfv/rsob/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//rsob/5Kp+/+Sqfv/kqn7/4KZ6/cOJXe7DiV3uw4ld7sOJXe69glbO + vIFVybyBVcm8gVXJu4BTdbh9Tz24fU89uH1PPbh9TykAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1flEHtX5RJbV+USW1flEl + tX5RJbqAVGu6gFRwuoBUcLqAVHDCiFyNxItfm8SLX5vEi1+bzZNnudWccOXVnHDl1Zxw5dadcejconb3 + 3KJ299yidvfconb36a+D/uqxhf/qsYX/6rGF/+61if/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61if/qsYX/ + 6rGF/+qxhf/pr4P+3KJ299yidvfconb33KJ299adcejVnHDm1Zxw5tWccObNk2e5xYtemsWLXprFi16a + wohbjLqAVHC6gFRwuoBUcLqAVGu1flEltX5RJbV+USW1flEltX5RBwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALV+UQ61flFFtX5RRbV+UUW1flFFuoBUybqAVNK6gFTSuoBU0sOKXuTHjmLt + x45i7ceOYu3Um2/0566C/+eugv/nroL/6K+D//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 6K+D/+eugv/nroL/566C/9Wbb/TIjmHsyI5h7MiOYezEil3juoBU0rqAVNK6gFTSuoBUybV+UUW1flFF + tX5RRbV+UUW1flEOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtX5RDrV+UUW1flFF + tX5RRbV+UUW6gFTJuoBU0rqAVNK6gFTSw4pe5MeOYu3HjmLtx45i7dSbb/TnroL/566C/+eugv/or4P/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//or4P/566C/+eugv/nroL/1Ztv9MiOYezIjmHs + yI5h7MSKXeO6gFTSuoBU0rqAVNK6gFTJtX5RRbV+UUW1flFFtX5RRbV+UQ4AAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAC1flEOtX5RRbV+UUW1flFFtX5RRbqAVMm6gFTSuoBU0rqAVNLDil7k + x45i7ceOYu3HjmLt1Jtv9Oeugv/nroL/566C/+ivg//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/+ivg//nroL/566C/+eugv/Vm2/0yI5h7MiOYezIjmHsxIpd47qAVNK6gFTSuoBU0rqAVMm1flFF + tX5RRbV+UUW1flFFtX5RDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAKqAVQKqgFUCqoBVAqqAVQK5gFIVuYBSHLmAUhy5gFIcvIFVK72BVju9gVY7vYFWO8CFWUfFjGBz + xYxgc8WMYHPFjGBzyY9j18mPZN7Jj2TeyY9k3tCWauvTmm7y05pu8tOabvLco3f36bCE/+mwhP/psIT/ + 6rGF//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/6rGF/+mwhP/psIT/6bCE/9yjd/fTmm3x + 05pt8dOabfHQlmrryY9k3smPZN7Jj2TeyY9j18WMX3PFjF9zxYxfc8WMX3PAhVlHvYFWO72BVju9gVY7 + vIFVK7mAUhy5gFIcuYBSHLmAUhWqgFUCqoBVAqqAVQKqgFUCqoBVBqqAVQaqgFUGqoBVBrmAUk+5gFJq + uYBSarmAUmq8gVWhvYFW372BVt+9gVbfwYZa49KXa/HSl2vx0pdr8dKXa/HpsIX+67KH/+uyh//rsof/ + 7rWK//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61iv/rsof/67KH/+uyh//psIX+ + 0Zdq8tGXavLRl2ry0Zdq8sGGWuO9gVbfvYFW372BVt+8gVWhuYBSarmAUmq5gFJquYBST6qAVQaqgFUG + qoBVBqqAVQaqgFUGqoBVBqqAVQaqgFUGuYBST7mAUmq5gFJquYBSaryBVaG9gVbfvYFW372BVt/Bhlrj + 0pdr8dKXa/HSl2vx0pdr8emwhf7rsof/67KH/+uyh//utYr/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7rWK/+uyh//rsof/67KH/+mwhf7Rl2ry0Zdq8tGXavLRl2rywYZa472BVt+9gVbf + vYFW37yBVaG5gFJquYBSarmAUmq5gFJPqoBVBqqAVQaqgFUGqoBVBqqAVQaqgFUGqoBVBqqAVQa5gFJP + uYBSarmAUmq5gFJqvIFVob2BVt+9gVbfvYFW38GGWuPSl2vx0pdr8dKXa/HSl2vx6bCF/uuyh//rsof/ + 67KH/+61iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utYr/67KH/+uyh//rsof/ + 6bCF/tGXavLRl2ry0Zdq8tGXavLBhlrjvYFW372BVt+9gVbfvIFVobmAUmq5gFJquYBSarmAUk+qgFUG + qoBVBqqAVQaqgFUGqoBVBqqAVQaqgFUGqoBVBrmAUk+5gFJquYBSarmAUmq8gVWhvYFW372BVt+9gVbf + wYZa49KXa/HSl2vx0pdr8dKXa/HpsIX+67KH/+uyh//rsof/7rWK//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+61iv/rsof/67KH/+uyh//psIX+0Zdq8tGXavLRl2ry0Zdq8sGGWuO9gVbf + vYFW372BVt+8gVWhuYBSarmAUmq5gFJquYBST6qAVQaqgFUGqoBVBqqAVQa/gEAEv4BABL+AQAS/gEAE + un1SSrp9UmS6fVJkun1SZLuAVJy7gVXdu4FV3buBVd3AhVnh0ZZq8NGWavDRlmrw0ZZq8OmwhP7rsob/ + 67KG/+uyhv/utYn/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+62iv/ptYn/6bWJ/+m1if/ptYn/ + 6baI/+m2iP/ptoj/6baI/+63iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/7rWJ/+uyhv/rsob/ + 67KG/+mwhP7Rlmrw0ZZq8NGWavDRlmrwwIVZ4buBVd27gVXdu4FV3buAVJy6fVJkun1SZLp9UmS6fVJK + v4BABL+AQAS/gEAEv4BABL+AQAS/gEAEv4BABL+AQAS6fVJKun1SZLp9UmS6fVJku4BUnLuBVd27gVXd + u4FV3cCFWeHRlmrw0ZZq8NGWavDRlmrw6bCE/uuyhv/rsob/67KG/+61if/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7raK/+m1if/ptYn/6bWJ/+m1if/ptoj/6baI/+m2iP/ptoj/7reK//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//utYn/67KG/+uyhv/rsob/6bCE/tGWavDRlmrw0ZZq8NGWavDAhVnh + u4FV3buBVd27gVXdu4BUnLp9UmS6fVJkun1SZLp9Ukq/gEAEv4BABL+AQAS/gEAEv4BABL+AQAS/gEAE + v4BABLp9Ukq6fVJkun1SZLp9UmS7gFScu4FV3buBVd27gVXdwIVZ4dGWavDRlmrw0ZZq8NGWavDpsIT+ + 67KG/+uyhv/rsob/7rWJ//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utor/6bWJ/+m1if/ptYn/ + 6bWJ/+m2iP/ptoj/6baI/+m2iP/ut4r/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61if/rsob/ + 67KG/+uyhv/psIT+0ZZq8NGWavDRlmrw0ZZq8MCFWeG7gVXdu4FV3buBVd27gFScun1SZLp9UmS6fVJk + un1SSr+AQAS/gEAEv4BABL+AQAS/gEAEv4BABL+AQAS/gEAEun1SSrp9UmS6fVJkun1SZLuAVJy7gVXd + u4FV3buBVd3AhVnh0ZZq8NGWavDRlmrw0ZZq8OmwhP7rsob/67KG/+uyhv/utYn/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+62iv/ptYn/6bWJ/+m1if/ptYn/6baI/+m2iP/ptoj/6baI/+63iv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/7rWJ/+uyhv/rsob/67KG/+mwhP7Rlmrw0ZZq8NGWavDRlmrw + wIVZ4buBVd27gVXdu4FV3buAVJy6fVJkun1SZLp9UmS6fVJKv4BABL+AQAS/gEAEv4BABL+AQAG/gEAB + v4BAAb+AQAG6fVIUun1SG7p9Uhu6fVIbun9UK7p/VT26f1U9un9VPb6DWEzEiV6IxIleiMSJXojEiV6I + yo9j4MqPY+fKj2Pnyo9j59OZbPDXnXD0151w9NedcPTfpXn467GG/+uxhv/rsYb/7LKH//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+q1if/otYj/6LWI/+i1iP/RsYH/va16/72tev+9rXr/tqx4/6Opc/+jqXP/ + o6lz/6Opc/+jqnP/o6pz/6Oqc/+jqnP/t6x4/76tev++rXr/vq16/9Kxgf/otYj/6LWI/+i1iP/qtYn/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/7LOG/+uyhf/rsoX/67KF/9+mefjXnXD0151w9NedcPTTmWzw + yo9j58qPY+fKj2Pnyo9j4MSJXojEiV6IxIleiMSJXoi+g1hMun9VPbp/VT26f1U9un9UK7p9Uhu6fVIb + un1SG7p9UhS/gEABv4BAAb+AQAG/gEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUB + qlVVA6pVVQOqVVUDt3lTFrl9U2K5fVNiuX1TYrl9U2K8gVXWvIFV3ryBVd68gVXeyI1h6s2TZvDNk2bw + zZNm8Nmfcvbpr4T/6a+E/+mvhP/qsIX/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/57WI/+W0h//ltIf/ + 5bSH/8avff+rqnT/q6p0/6uqdP+iqXL/iaVr/4mla/+JpWv/iaVr/4mla/+JpWv/iaVr/4mla/+jqXL/ + rKp0/6yqdP+sqnT/x699/+W0h//ltIf/5bSH/+e1iP/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//qsYT/ + 6bCD/+mwg//psIP/2Z9y9s2TZvDNk2bwzZNm8MiNYeq8gVXevIFV3ryBVd68gVXWuX1TYrl9U2K5fVNi + uX1TYrd5UxaqVVUDqlVVA6pVVQOqVVUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKpVVQGqVVUDqlVVA6pVVQO3eVMWuX1TYrl9U2K5fVNi + uX1TYryBVda8gVXevIFV3ryBVd7IjWHqzZNm8M2TZvDNk2bw2Z9y9umvhP/pr4T/6a+E/+qwhf/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//ntYj/5bSH/+W0h//ltIf/xq99/6uqdP+rqnT/q6p0/6Kpcv+JpWv/ + iaVr/4mla/+JpWv/iaVr/4mla/+JpWv/iaVr/6Opcv+sqnT/rKp0/6yqdP/Hr33/5bSH/+W0h//ltIf/ + 57WI//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+qxhP/psIP/6bCD/+mwg//Zn3L2zZNm8M2TZvDNk2bw + yI1h6ryBVd68gVXevIFV3ryBVda5fVNiuX1TYrl9U2K5fVNit3lTFqpVVQOqVVUDqlVVA6pVVQEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + qlVVAapVVQOqVVUDqlVVA7d5Uxa5fVNiuX1TYrl9U2K5fVNivIFV1ryBVd68gVXevIFV3siNYerNk2bw + zZNm8M2TZvDZn3L26a+E/+mvhP/pr4T/6rCF//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+e1iP/ltIf/ + 5bSH/+W0h//Gr33/q6p0/6uqdP+rqnT/oqly/4mla/+JpWv/iaVr/4mla/+JpWv/iaVr/4mla/+JpWv/ + o6ly/6yqdP+sqnT/rKp0/8evff/ltIf/5bSH/+W0h//ntYj/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 6rGE/+mwg//psIP/6bCD/9mfcvbNk2bwzZNm8M2TZvDIjWHqvIFV3ryBVd68gVXevIFV1rl9U2K5fVNi + uX1TYrl9U2K3eVMWqlVVA6pVVQOqVVUDqlVVAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUBqlVVAqpVVQKqVVUCt3lTDLl9UzS5fVM0 + uX1TNLl9UzS8gFVyvIBVd7yAVXe8gFV3xYpelsiOYaXIjmGlyI5hpc+UacHWnHDr1pxw69accOvXnXLt + 4KZ69uCmevbgpnr24KZ69uuyhv7ss4f/7LOH/+yzh//vtor/8LeL//C3i//wt4v/7reK/+u2if/rton/ + 67aJ/+m1if/RsYH/0bGB/9Gxgf/RsYH/v657/7qtev+6rXr/uq16/6yve/+fsXv/n7F7/5+xe/+csnz/ + kraA/5K2gP+StoD/kraA/5K2gP+StoD/kraA/5K2gP+csnz/n7F7/5+xe/+fsXv/rK97/7qtev+6rXr/ + uq16/7+ue//RsYH/0bGB/9Gxgf/RsYH/6bWJ/+u2if/rton/67aJ/+63iv/wt4v/8LeL//C3i//vtor/ + 7LOH/+yzh//ss4f/67KG/uCmevbgpnr24KZ69uCmevbXnnHt1pxw69accOvWnHDrz5VowciOYaXIjmGl + yI5hpcWKXpW8gVV2vIFVdryBVXa8gVVyuX1TNLl9UzS5fVM0uX1TNLd5UwyqVVUCqlVVAqpVVQKqVVUB + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAH/AAAB/wAAAf8AAAG4elA1 + uHtRT7h7UU+4e1FPun9UhbuBVdW7gVXVu4FV1b2DV9jMkWXrzJFl68yRZevMkWXr5at//Oivg//or4P/ + 6K+D/+20iP/wt4v/8LeL//C3i//stor/5bSH/+W0h//ltIf/4bOG/62rdf+tq3X/rat1/62rdf+Qpm3/ + iaVr/4mla/+JpWv/jbB4/5G5g/+RuYP/kbmD/5S9if+dyZj/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/ + ncmY/5S9if+RuYP/kbmD/5G5g/+NsHj/iaVr/4mla/+JpWv/kKZt/62rdf+tq3X/rat1/62rdf/hs4b/ + 5bSH/+W0h//ltIf/7LaK//C3i//wt4v/8LeL/+20iP/or4P/6K+D/+ivg//lq3/8zJFl68yRZevMkWXr + zJFl672DV9i7gVXVu4FV1buBVdW6f1SFuHtRT7h7UU+4e1FPuHtRNQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA/wAAAf8AAAH/AAAB/wAAAbh6UDW4e1FPuHtRT7h7UU+6f1SFu4FV1buBVdW7gVXV + vYNX2MyRZevMkWXrzJFl68yRZevlq3/86K+D/+ivg//or4P/7bSI//C3i//wt4v/8LeL/+y2iv/ltIf/ + 5bSH/+W0h//hs4b/rat1/62rdf+tq3X/rat1/5Cmbf+JpWv/iaVr/4mla/+NsHj/kbmD/5G5g/+RuYP/ + lL2J/53JmP+dyZj/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/lL2J/5G5g/+RuYP/kbmD/42weP+JpWv/ + iaVr/4mla/+Qpm3/rat1/62rdf+tq3X/rat1/+Gzhv/ltIf/5bSH/+W0h//stor/8LeL//C3i//wt4v/ + 7bSI/+ivg//or4P/6K+D/+Wrf/zMkWXrzJFl68yRZevMkWXrvYNX2LuBVdW7gVXVu4FV1bp/VIW4e1FP + uHtRT7h7UU+4e1E1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAB/wAAAf8AAAH/AAAB + uHpQNbh7UU+4e1FPuHtRT7p/VIW7gVXVu4FV1buBVdW9g1fYzJFl68yRZevMkWXrzJFl6+Wrf/zor4P/ + 6K+D/+ivg//ttIj/8LeL//C3i//wt4v/7LaK/+W0h//ltIf/5bSH/+Gzhv+tq3X/rat1/62rdf+tq3X/ + kKZt/4mla/+JpWv/iaVr/42weP+RuYP/kbmD/5G5g/+UvYn/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/ + ncmY/53JmP+UvYn/kbmD/5G5g/+RuYP/jbB4/4mla/+JpWv/iaVr/5Cmbf+tq3X/rat1/62rdf+tq3X/ + 4bOG/+W0h//ltIf/5bSH/+y2iv/wt4v/8LeL//C3i//ttIj/6K+D/+ivg//or4P/5at//MyRZevMkWXr + zJFl68yRZeu9g1fYu4FV1buBVdW7gVXVun9Uhbh7UU+4e1FPuHtRT7h7UTUAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAP8AAAH/AAAB/wAAAf8AAAG4elAquHtRP7h7UT+4e1E/un9UaruBVaq7gVWq + u4FVqr2DV67LkGTIy5BkyMuQZMjLkGTI3KV58N6oe/beqHv23qh79t6ugPvesoP93rKD/d6yg/3asYP+ + 0rGB/9Kxgf/SsYH/0LGB/6iuef+ornn/qK55/6iuef+TrXX/jax0/42sdP+NrHT/kbV+/5S8h/+UvIf/ + lLyH/5bAjP+dyZj/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/ncmY/5bAjP+UvIf/lLyH/5S8h/+RtX7/ + jax0/42sdP+NrHT/k611/6iuef+ornn/qK55/6iuef/QsYH/0rGB/9Kxgf/SsYH/2rGD/t6yg/3esoP9 + 3rKD/d6ugPveqHv23qh79t6oe/bcpXnwy5BkyMuQZMjLkGTIy5BkyL2DV667gVWqu4FVqruBVaq6f1Rq + uHtRP7h7UT+4e1E/uHtRKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtHtPCLR7Tzq0e086tHtPOrR7TzqwhVa/ + sIVW07CFVtOwhVbTnpNf6ZSbZPeUm2T3lJtk95CeZvqIpWv/iKVr/4ila/+Jpm3/k7uH/5O7h/+Tu4f/ + k7uH/5zGlf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cxpX/k7uH/5O7h/+Tu4f/ + k7uH/4mmbf+IpWv/iKVr/4ila/+Qnmb6lJtk95SbZPeUm2T3npNf6bCFVtOwhVbTsIVW07CFVr+0e086 + tHtPOrR7Tzq0e086tHtPCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAC0e08ItHtPOrR7Tzq0e086tHtPOrCFVr+whVbTsIVW07CFVtOek1/plJtk95SbZPeUm2T3 + kJ5m+oila/+IpWv/iKVr/4mmbf+Tu4f/k7uH/5O7h/+Tu4f/nMaV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5zGlf+Tu4f/k7uH/5O7h/+Tu4f/iaZt/4ila/+IpWv/iKVr/5CeZvqUm2T3 + lJtk95SbZPeek1/psIVW07CFVtOwhVbTsIVWv7R7Tzq0e086tHtPOrR7Tzq0e08IAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALR7Twi0e086tHtPOrR7Tzq0e086 + sIVWv7CFVtOwhVbTsIVW056TX+mUm2T3lJtk95SbZPeQnmb6iKVr/4ila/+IpWv/iaZt/5O7h/+Tu4f/ + k7uH/5O7h/+cxpX/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMaV/5O7h/+Tu4f/ + k7uH/5O7h/+Jpm3/iKVr/4ila/+IpWv/kJ5m+pSbZPeUm2T3lJtk956TX+mwhVbTsIVW07CFVtOwhVa/ + tHtPOrR7Tzq0e086tHtPOrR7TwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAtHtPCLR7Tzq0e086tHtPOrR7TzqwhVa/sIVW07CFVtOwhVbTnpNf6ZSbZPeUm2T3 + lJtk95CeZvqIpWv/iKVr/4ila/+Jpm3/k7uH/5O7h/+Tu4f/k7uH/5zGlf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cxpX/k7uH/5O7h/+Tu4f/k7uH/4mmbf+IpWv/iKVr/4ila/+Qnmb6 + lJtk95SbZPeUm2T3npNf6bCFVtOwhVbTsIVW07CFVr+0e086tHtPOrR7Tzq0e086tHtPCAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHefYBF3n2Aqd59gKnefYCp5oGI8fKJlrnyiZa58omWu + fKJlroKla96DpWzmg6Vs5oOlbOaPtH/0lr2K/pa9iv6WvYr+mMCO/p3Hlv+dx5b/nceW/53Hlv+dyJj/ + nciY/53ImP+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/ + nciY/53ImP+dyJj/nceW/53Hlv+dx5b/nceW/5jAjv6WvYr+lr2K/pa9iv6PtH/0g6Vs5oOlbOaDpWzm + gqVr3nyiZa58omWufKJlrnyiZa55oGI8d59gKnefYCp3n2Aqd59gEQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + d59gEnefYC13n2Atd59gLXmhYj97o2W2e6NltnujZbZ7o2W2f6ds4ICnbeeAp23ngKdt5462gfWWv43+ + lr+N/pa/jf6ZwpH+nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + mcKR/pa/jf6Wv43+lr+N/o62gfWAp23ngKdt54Cnbed/p2zge6NltnujZbZ7o2W2e6NltnmhYj93n2At + d59gLXefYC13n2ASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3n2ASd59gLXefYC13n2AteaFiP3ujZbZ7o2W2 + e6NltnujZbZ/p2zggKdt54CnbeeAp23njraB9Za/jf6Wv43+lr+N/pnCkf6eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+ZwpH+lr+N/pa/jf6Wv43+jraB9YCnbeeAp23n + gKdt53+nbOB7o2W2e6NltnujZbZ7o2W2eaFiP3efYC13n2Atd59gLXefYBIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHefYBJ3n2Atd59gLXefYC15oWI/e6NltnujZbZ7o2W2e6Nltn+nbOCAp23ngKdt54CnbeeOtoH1 + lr+N/pa/jf6Wv43+mcKR/p7Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5nCkf6Wv43+lr+N/pa/jf6OtoH1gKdt54CnbeeAp23nf6ds4HujZbZ7o2W2e6NltnujZbZ5oWI/ + d59gLXefYC13n2Atd59gEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHedXiV3nV4od51eKHedXih6oWRleqJlg3qiZYN6omWDfaRpk4CnbqyAp26sgKdurIOqcrSQuYTn + kLmE55C5hOeQuYTnlL6K9ZW+i/eVvov3lb6L95nDkfybxpX/m8aV/5vGlf+cx5b/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMeW/5vGlf+bxpX/m8aV/5nDkfyVvov3 + lb6L95W+i/eUvor1kLmE55C5hOeQuYTnkLmE54OqcrSAp26sgKdurICnbqx9pGmTeqJlg3qiZYN6omWD + eqFkZXedXih3nV4od51eKHedXiUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd51eOHedXjx3nV48d51ePHqhZJd6omXF + eqJlxXqiZcV9pWnUgahv64Gob+uBqG/rhKx07pfBj/+XwY//l8GP/5fBj/+dyJj/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+XwY//l8GP/5fBj/+XwY// + hKx07oGob+uBqG/rgahv632ladR6omXFeqJlxXqiZcV6oWSXd51ePHedXjx3nV48d51eOAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3nV44d51ePHedXjx3nV48eqFkl3qiZcV6omXFeqJlxX2ladSBqG/rgahv64Gob+uErHTu + l8GP/5fBj/+XwY//l8GP/53ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nciY/5fBj/+XwY//l8GP/5fBj/+ErHTugahv64Gob+uBqG/rfaVp1HqiZcV6omXF + eqJlxXqhZJd3nV48d51ePHedXjx3nV44AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHedXjh3nV48d51ePHedXjx6oWSX + eqJlxXqiZcV6omXFfaVp1IGob+uBqG/rgahv64SsdO6XwY//l8GP/5fBj/+XwY//nciY/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/l8GP/5fBj/+XwY// + l8GP/4SsdO6BqG/rgahv64Gob+t9pWnUeqJlxXqiZcV6omXFeqFkl3edXjx3nV48d51ePHedXjgAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd6BfDHegXxl3oF8Zd6BfGXmhYSR7omRR + e6JkUXuiZFF7omRRf6drf4Cna4KAp2uCgKdrgoavdr6IsXnciLF53IixedyKs3zljbaB8422gfONtoHz + j7iD9ZrEk/+axJP/msST/5rEk/+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/53ImP+axJP/msST/5rEk/+axJP/j7iD9Y22gfONtoHzjbaB84qzfOWIsXnc + iLF53IixedyGr3a+gKdrgoCna4KAp2uCf6drf3uiZFF7omRRe6JkUXuiZFF5oWEkd6BfGXegXxl3oF8Z + d6BfDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3oF8dd6BfPnegXz53oF8+eaFhWnuiZMt7omTLe6Jky3uiZMuDqm/qg6tw7IOrcOyDq3Ds + kbuH+ZjDkf+Yw5H/mMOR/5rFlP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/msWU/5jDkf+Yw5H/mMOR/5G7h/mDq3Dsg6tw7IOrcOyDqm/q + e6Jky3uiZMt7omTLe6Jky3mhYVp3oF8+d6BfPnegXz53oF8dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHegXx13oF8+d6BfPnegXz55oWFa + e6Jky3uiZMt7omTLe6Jky4Oqb+qDq3Dsg6tw7IOrcOyRu4f5mMOR/5jDkf+Yw5H/msWU/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+axZT/ + mMOR/5jDkf+Yw5H/kbuH+YOrcOyDq3Dsg6tw7IOqb+p7omTLe6Jky3uiZMt7omTLeaFhWnegXz53oF8+ + d6BfPnegXx0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAd6BfHXegXz53oF8+d6BfPnmhYVp7omTLe6Jky3uiZMt7omTLg6pv6oOrcOyDq3Ds + g6tw7JG7h/mYw5H/mMOR/5jDkf+axZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5rFlP+Yw5H/mMOR/5jDkf+Ru4f5g6tw7IOrcOyDq3Ds + g6pv6nuiZMt7omTLe6Jky3uiZMt5oWFad6BfPnegXz53oF8+d6BfHQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAgJ9gAYCfYAGAn2ABgJ9gAXacXxJ2nF8YdpxfGHacXxh4n2A2eKBhV3igYVd4oGFX + e6Nlb4Cna9KAp2vSgKdr0oCna9KGr3Xth69274evdu+Hr3bvk72J+pnEkv+ZxJL/mcSS/5vGlf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + m8aV/5nEkv+ZxJL/mcSS/5O9ifqHr3bvh69274evdu+Gr3XtgKdr0oCna9KAp2vSgKdr0nujZW94oGFX + eKBhV3igYVd3oGE1dp5gGHaeYBh2nmAYdp5gEoCfYAGAn2ABgJ9gAYCfYAGAn2AIgJ9gCICfYAiAn2AI + dpxfiHacX7d2nF+3dpxft3ieYtV6oGT4eqBk+HqgZPiAp235mMOR/5jDkf+Yw5H/mMOR/57JmP+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57JmP+YwpD/mMKQ/5jCkP+YwpD/f6dt+XmgZPh5oGT4eaBk+HifYtR2nmC1dp5gtXaeYLV2nmCH + gJ9gCICfYAiAn2AIgJ9gCICfYAiAn2AIgJ9gCICfYAh2nF+Idpxft3acX7d2nF+3eJ5i1XqgZPh6oGT4 + eqBk+ICnbfmYw5H/mMOR/5jDkf+Yw5H/nsmY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmY/5jCkP+YwpD/mMKQ/5jCkP9/p235 + eaBk+HmgZPh5oGT4eJ9i1HaeYLV2nmC1dp5gtXaeYIeAn2AIgJ9gCICfYAiAn2AIgJ9gCICfYAiAn2AI + gJ9gCHacX4h2nF+3dpxft3acX7d4nmLVeqBk+HqgZPh6oGT4gKdt+ZjDkf+Yw5H/mMOR/5jDkf+eyZj/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZj/mMKQ/5jCkP+YwpD/mMKQ/3+nbfl5oGT4eaBk+HmgZPh4n2LUdp5gtXaeYLV2nmC1 + dp5gh4CfYAiAn2AIgJ9gCICfYAiAn2AIgJ9gCICfYAiAn2AIdpxfiHacX7d2nF+3dpxft3ieYtV6oGT4 + eqBk+HqgZPiAp235mMOR/5jDkf+Yw5H/mMOR/57JmP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57JmP+YwpD/mMKQ/5jCkP+YwpD/ + f6dt+XmgZPh5oGT4eaBk+HifYtR2nmC1dp5gtXaeYLV2nmCHgJ9gCICfYAiAn2AIgJ9gCICfYAGAn2AB + gJ9gAYCfYAF0nGAVdJxgHXScYB10nGAdd6BjR3mhY3h5oWN4eaFjeHujZo1/p2zif6ds4n+nbOJ/p2zi + irN88Yu0ffKLtH3yi7R98pbAjfubxpX/m8aV/5vGlf+cx5b/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHlv+bxpX/m8aV/5vGlf+WwI37 + i7R98ou0ffKLtH3yirN88X+nbOJ/p2zif6ds4n+nbOJ7o2aNeKFjeHihY3h4oWN4eJ9iR3eaXBx3mlwc + d5pcHHeaXBWAn2ABgJ9gAYCfYAGAn2ABAAAAAAAAAAAAAAAAAAAAAGaZZgRmmWYFZplmBWaZZgV3oWMx + eKFjZHihY2R4oWNkeaFkfHuiZt17ombde6Jm3XuiZt2Hr3jviLB58IiwefCIsHnwlb6L+pvFlP+bxZT/ + m8WU/5zHlv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nMeW/5vFlP+bxZT/m8WU/5W+i/qIsHnwiLB58IiwefCHr3jve6Jm3XuiZt17ombd + e6Jm3XmhZHx4oWNkeKFjZHihY2R4oGExgIBABICAQASAgEAEgIBAAwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAZplmBGaZZgVmmWYFZplmBXehYzF4oWNkeKFjZHihY2R5oWR8e6Jm3XuiZt17ombd + e6Jm3YeveO+IsHnwiLB58IiwefCVvov6m8WU/5vFlP+bxZT/nMeW/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cx5b/m8WU/5vFlP+bxZT/ + lb6L+oiwefCIsHnwiLB58IeveO97ombde6Jm3XuiZt17ombdeaFkfHihY2R4oWNkeKFjZHigYTGAgEAE + gIBABICAQASAgEADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmmWYEZplmBWaZZgVmmWYF + d6FjMXihY2R4oWNkeKFjZHmhZHx7ombde6Jm3XuiZt17ombdh69474iwefCIsHnwiLB58JW+i/qbxZT/ + m8WU/5vFlP+cx5b/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5zHlv+bxZT/m8WU/5vFlP+Vvov6iLB58IiwefCIsHnwh69473uiZt17ombd + e6Jm3XuiZt15oWR8eKFjZHihY2R4oWNkeKBhMYCAQASAgEAEgIBABICAQAMAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAGaZZgFmmWYCZplmAmaZZgJ3oWMUeKFjKHihYyh4oWMoeaFkMnqiZlp6omZa + eqJmWnqiZlqBqnCWgapwmoGqcJqBqnCah693z4ixeemIsXnpiLF56Yy0fu6QuoX1kLqF9ZC6hfWSvIf3 + nMeW/5zHlv+cx5b/nMeW/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5zHlv+cx5b/nMeW/5zHlv+SvIf2kbqF9ZG6hfWRuoX1jLV+7oixeemIsXnp + iLF56Yevd8+BqnCagapwmoGqcJqBqnCWe6JmWnuiZlp7omZae6JmWnmhZDJ4oWMoeKFjKHihYyh4oGEU + gIBAAoCAQAKAgEACgIBAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAABVqlUBVapVA1WqVQNVqlUDVapVA3agYVt2oGFhdqBhYXagYWF5oWOy + eqFk23qhZNt6oWTbf6ds44avd++Gr3fvhq9374mye/GaxZT/msWU/5rFlP+axZT/nciY/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/msWU/5rFlP+axZT/ + msWU/4qze/CHsHfuh7B37oewd+5/p2zjeqFk23qhZNt6oWTbeaFjsnagYWF2oGFhdqBhYXagYVuAgIAC + gICAAoCAgAKAgIACgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFWqVQFVqlUD + VapVA1WqVQNVqlUDdqBhW3agYWF2oGFhdqBhYXmhY7J6oWTbeqFk23qhZNt/p2zjhq9374avd++Gr3fv + ibJ78ZrFlP+axZT/msWU/5rFlP+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/53ImP+axZT/msWU/5rFlP+axZT/irN78Iewd+6HsHfuh7B37n+nbON6oWTb + eqFk23qhZNt5oWOydqBhYXagYWF2oGFhdqBhW4CAgAKAgIACgICAAoCAgAKAgIAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVapVAVWqVQNVqlUDVapVA1WqVQN2oGFbdqBhYXagYWF2oGFh + eaFjsnqhZNt6oWTbeqFk23+nbOOGr3fvhq9374avd++JsnvxmsWU/5rFlP+axZT/msWU/53ImP+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciY/5rFlP+axZT/ + msWU/5rFlP+Ks3vwh7B37oewd+6HsHfuf6ds43qhZNt6oWTbeqFk23mhY7J2oGFhdqBhYXagYWF2oGFb + gICAAoCAgAKAgIACgICAAoCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVqlUA + VapVAlWqVQJVqlUCVapVAnagYTx2oGFBdqBhQXagYUF5oWN3eqFkknqhZJJ6oWSSf6ZrooSsc7qErHO6 + hKxzuoaud8GRuobxkbqG8ZG6hvGRuobxlb+M95bAjfiWwI34lsCN+JrEk/ycx5f/nMeX/5zHl/+dyJf/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciX/5zHl/+cx5f/ + nMeX/5rEk/yWwI34lsCN+JbAjfiVv4z3kbqG8ZG6hvGRuobxkbqG8Yevd8CFrXO5ha1zuYWtc7l/p2ui + eqFkknqhZJJ6oWSSeaFjd3agYUF2oGFBdqBhQXagYTyAgIABgICAAYCAgAGAgIABgICAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB3m14gd5teT3ebXk93m15PeJxgYXqgZdV6oGXVeqBl1XqgZdWEq3Ln + ha106oWtdOqFrXTqkbuH95nDkv+Zw5L/mcOS/5vFlP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+bxZT/mcOS/5nDkv+Zw5L/kbuH94WtdOqFrXTqha106oSrcud6oGXV + eqBl1XqgZdV6oGXVeJxgYXebXk93m15Pd5teT3ebXiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHebXiB3m15P + d5teT3ebXk94nGBheqBl1XqgZdV6oGXVeqBl1YSrcueFrXTqha106oWtdOqRu4f3mcOS/5nDkv+Zw5L/ + m8WU/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5vFlP+Zw5L/ + mcOS/5nDkv+Ru4f3ha106oWtdOqFrXTqhKty53qgZdV6oGXVeqBl1XqgZdV4nGBhd5teT3ebXk93m15P + d5teIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5teIHebXk93m15Pd5teT3icYGF6oGXVeqBl1XqgZdV6oGXV + hKty54WtdOqFrXTqha106pG7h/eZw5L/mcOS/5nDkv+bxZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/m8WU/5nDkv+Zw5L/mcOS/5G7h/eFrXTqha106oWtdOqEq3Ln + eqBl1XqgZdV6oGXVeqBl1XicYGF3m15Pd5teT3ebXk93m14gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3m14d + d5teSnebXkp3m15KeJxgWnqgZcd6oGXHeqBlx3qgZceDq3Lbha103oWtdN6FrXTekLqF8JfBkPuXwZD7 + l8GQ+5nDkvycx5f+nMeX/pzHl/6cx5f+nciY/53ImP+dyJj/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsiY/57ImP+eyJj/nsiY/5zHl/6cx5f+nMeX/pzHl/6Zw5L8 + l8GQ+5fBkPuXwZD7kLqF8IWtdN6FrXTeha103oOrctt6oGXHeqBlx3qgZcd6oGXHeJxgWnebXkp3m15K + d5teSnebXh0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHacXi92nF42dpxeNnacXjZ6oGSNe6Flx3uhZcd7oWXHfqRp0oKqcemCqnHpgqpx6YOsc+qWwY7/ + lsGO/5bBjv+WwY7/nMeX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Hl/+XwY7/ + l8GO/5fBjv+XwY7/hKxz6oKqcemCqnHpgqpx6X6kadJ7oWXHe6Flx3uhZcd6oGSNdpxeNnacXjZ2nF42 + dpxeLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdpxeL3acXjZ2nF42dpxeNnqgZI17oWXH + e6Flx3uhZcd+pGnSgqpx6YKqcemCqnHpg6xz6pbBjv+WwY7/lsGO/5bBjv+cx5f/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nceX/5fBjv+XwY7/l8GO/5fBjv+ErHPqgqpx6YKqcemCqnHp + fqRp0nuhZcd7oWXHe6Flx3qgZI12nF42dpxeNnacXjZ2nF4vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB2nF4vdpxeNnacXjZ2nF42eqBkjXuhZcd7oWXHe6Flx36kadKCqnHpgqpx6YKqcemDrHPq + lsGO/5bBjv+WwY7/lsGO/5zHl/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dx5f/ + l8GO/5fBjv+XwY7/l8GO/4Ssc+qCqnHpgqpx6YKqcel+pGnSe6Flx3uhZcd7oWXHeqBkjXacXjZ2nF42 + dpxeNnacXi8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHacXi92nF42dpxeNnacXjZ6oGSN + e6Flx3uhZcd7oWXHfqRp0oKqcemCqnHpgqpx6YOsc+qWwY7/lsGO/5bBjv+WwY7/nMeX/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Hl/+XwY7/l8GO/5fBjv+XwY7/hKxz6oKqcemCqnHp + gqpx6X6kadJ7oWXHe6Flx3uhZcd6oGSNdpxeNnacXjZ2nF42dpxeLwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAdpxeCXacXgt2nF4LdpxeC3qgZBx7oWUoe6FlKHuhZSh8omc1faRpT32kaU99pGlP + fqVqV4GpcMWBqXDFgalwxYGpcMWGrXXkhq527IauduyGrnbsj7mD9pfBjv6XwY7+l8GO/pnDkf6eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5nDkf6XwY7+l8GO/pfBjv6PuYP2hq527IauduyGrnbs + hq115IKpcMWCqXDFgqlwxYKpcMV+pWpXfaRpT32kaU99pGlPfKJnNXuhZSh7oWUoe6FlKHqgZBx2nF4L + dpxeC3acXgt2nF4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAHabXQ52m10pdptdKXabXSl3nF8yeqBltnqgZbZ6oGW2eqBltn+ma92Ap2zn + gKds54CnbOeMtH3zlb+L/pW/i/6Vv4v+l8KP/p7Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + l8KP/pW/i/6Vv4v+lb+L/oy0ffOAp2zngKds54CnbOd/pmvdeqBltnqgZbZ6oGW2eqBltnecXzJ2m10p + dptdKXabXSl2m10OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdptdDnabXSl2m10p + dptdKXecXzJ6oGW2eqBltnqgZbZ6oGW2f6Zr3YCnbOeAp2zngKds54y0ffOVv4v+lb+L/pW/i/6Xwo/+ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+Xwo/+lb+L/pW/i/6Vv4v+jLR984CnbOeAp2zn + gKds53+ma916oGW2eqBltnqgZbZ6oGW2d5xfMnabXSl2m10pdptdKXabXQ4AAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB2m10OdptdKXabXSl2m10pd5xfMnqgZbZ6oGW2eqBltnqgZbZ/pmvd + gKds54CnbOeAp2znjLR985W/i/6Vv4v+lb+L/pfCj/6eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5fCj/6Vv4v+lb+L/pW/i/6MtH3zgKds54CnbOeAp2znf6Zr3XqgZbZ6oGW2eqBltnqgZbZ3nF8y + dptdKXabXSl2m10pdptdDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHabXQZ2m10T + dptdE3abXRN3nF8YeqBlVXqgZVV6oGVVeqBlVX6lanF/pWt4f6VreH+la3iGrnWiirJ7x4qye8eKsnvH + i7R90o22gPGNtoDxjbaA8Y22gPGNtoDxjbaA8Y22gPGNtoDxjLR90ouze8eLs3vHi7N7x4eudqJ/pWt4 + f6VreH+la3h+pWpxeqBlVXqgZVV6oGVVeqBlVXecXxh2m10TdptdE3abXRN2m10GAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + dJddEnSXXRZ0l10WdJddFnmfY1t6oGSXeqBkl3qgZJd7oWWsfaRo5X2kaOV9pGjlfaRo5X2kaOV9pGjl + faRo5X2kaOV8oWWrfKBklnygZJZ8oGSWe59jWnSXXRZ0l10WdJddFnSXXRIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0l10SdJddFnSXXRZ0l10WeZ9jW3qgZJd6oGSX + eqBkl3uhZax9pGjlfaRo5X2kaOV9pGjlfaRo5X2kaOV9pGjlfaRo5XyhZat8oGSWfKBklnygZJZ7n2Na + dJddFnSXXRZ0l10WdJddEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHSXXRJ0l10WdJddFnSXXRZ5n2NbeqBkl3qgZJd6oGSXe6FlrH2kaOV9pGjlfaRo5X2kaOV9pGjl + faRo5X2kaOV9pGjlfKFlq3ygZJZ8oGSWfKBklnufY1p0l10WdJddFnSXXRZ0l10SAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddDXSXXRB0l10QdJddEHmfY0N6oGRv + eqBkb3qgZG97oWV/faRorH2kaKx9pGisfaRorH2kaKx9pGisfaRorH2kaKx8oWV+fKBkbnygZG58oGRu + e59jQnSXXRB0l10QdJddEHSXXQ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHeZZgR3mWYPd5lmD3eZZg93mWYP + baRbDm2kWw5tpFsObaRbDm2kWwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAd5lmBHeZZg93mWYPd5lmD3eZZg9tpFsObaRbDm2kWw5tpFsObaRbBAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3mWYEd5lmD3eZZg93mWYP + d5lmD22kWw5tpFsObaRbDm2kWw5tpFsEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAHeZZgR3mWYPd5lmD3eZZg93mWYPbaRbDm2kWw5tpFsObaRbDm2kWwQAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/////////g + B///////////////////4Af//////////////////+AH///////////////////gB/////////////// + ///gAAAH////////////////4AAAB////////////////+AAAAf////////////////gAAAH//////// + ///////AAAAAAAP/////////////wAAAAAAD/////////////8AAAAAAA//////////////AAAAAAAP/ + ///////////AAAAAAAAAA///////////wAAAAAAAAAP//////////8AAAAAAAAAD///////////AAAAA + AAAAA///////////wAAAAAAAAAP/////////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAH///////+A + AAAAAAAAAAAB////////gAAAAAAAAAAAAf//////gAAAAAAAAAAAAAAB/////4AAAAAAAAAAAAAAAf// + //+AAAAAAAAAAAAAAAH/////gAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAA + AAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP + 8AAAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAA + AAAP///wAAAAAAAAAAAAAAAAD/////+AAAAAAAAAAAAB////////gAAAAAAAAAAAAf///////4AAAAAA + AAAAAAH///////+AAAAAAAAAAAAB////////+AAAAAAAAAAAH/////////gAAAAAAAAAAB/////////4 + AAAAAAAAAAAf////////+AAAAAAAAAAAH///////+AAAAAAAAAAAAAAf//////gAAAAAAAAAAAAAH/// + ///4AAAAAAAAAAAAAB//////+AAAAAAAAAAAAAAf////8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAA + AAAP///wAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAA + AAAA//8AAAAAAAAAAAAAAAAAAP///4AAAAAAAAAAAAAAH/////+AAAAAAAAAAAAAAB//////gAAAAAAA + AAAAAAAf/////4AAAAAAAAAAAAAAH///////+AAAAAAAAAAAH/////////gAAAAAAAAAAB/////////4 + AAAAAAAAAAAf////////+AAAAAAAAAAAH////////4AAAAAAAAAAAAH///////+AAAAAAAAAAAAB//// + ////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAH//////4AAAAAAAAAAAAAAAf////+AAAAAAAAAAAAA + AAH/////gAAAAAAAAAAAAAAB/////4AAAAAAAAAAAAAAAf///wAAAAAAAAAAAAAAAAAA//8AAAAAAAAA + AAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAA + AAAAD/AAAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAP///wAAAAAAAA + AAAAAAAAD///8AAAAAAAAAAAAAAAAA//////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAH///////+A + AAAAAAAAAAAB////////gAAAAAAAAAAAAf/////////AAAAAAAAAA///////////wAAAAAAAAAP///// + /////8AAAAAAAAAD///////////AAAAAAAAAA///////////wAAAAAAAAAP////////////AAAAAAAP/ + ////////////wAAAAAAD/////////////8AAAAAAA//////////////AAAAAAAP//////////////+AA + AAf////////////////gAAAH////////////////4AAAB////////////////+AAAAf///////////// + ////4Af//////////////////+AH///////////////////gB///////////////////4Af///////// + KAAAAEAAAACAAAAAAQAgAAAAAAAAQAAAYQoAAGEKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLuqAsy7qg/Mu6oPyLakDsi2pA7ItqQC + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy7qgLMu6oP + zLuqD8i2pA7ItqQOyLakAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANG5ogjRuaIT + 0LqoMdC7q4PQvKuM0sCtyNLArcjSwK3I0sCtyNC8q4vPu6qC0LqoMdG5ohPRuaIIAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADRuaIJ0bmiFtC6qDjQu6uX0LyrodLAreXSwK3l0sCt5dLAreXQvKuhz7uqltC6qDjRuaIW + 0bmiCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADRuaIL0bmiENC8qkDQvKtq0r6shdPArazXxrS64NLE4OHUx+Pp4NP46eDT+Ong0/jp4NP4 + 4dTG49/SxN/XxrS608CtrNK+rIXQvKtq0LyqQNG5ohDRuaILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0bmiD9G5ohbQvKpY0LyrkdK+rLLTwK3j2Me16ePXyvrl2s37 + 8erg//Hq4P/x6uD/8erg/+Xazfvj18r62Me16dPArePSvqyy0LyrkdC8qljRuaIW0bmiDwAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAybmiEsm5ohTRvqxT0b6sY9PAroPUwa6T3My8tOHSxNLj1sjf + 5tvO9Ojd0Pbs49j97eTZ/fLr4f/y6+H/8uvh//Lr4f/t5Nn97OPY/ejd0Pbm287049bI3+HSxNLczLy0 + 1MGuk9PAroPRvaxj0b2sU8m5ohTJuaISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMm5oh/JuaIh0b6si9G+rKXTwK7Q + 1MGv5t/PwPLn28796+HW/vLr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh/+vh1v7n287938/A8tTBr+bTwK7Q0b2spdG9rIvJuaIhybmiHwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLWkBMy1pBXNt6YZ0b2rVdG9q1XTwrB7 + 08Kxfd7Qwb7f0sPP4tTG5uPWyPLo3dD47OLX/u7m2/7y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/u5tv+7OLX/ujd0Pjj1sjy4tTG5t/Rw8/ez8G+08KxfdPCsHvRvatV + 0b2rVc23phnMtaQVzLWkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy1pAnMtaQt + zbemNtG9q7bRvau21cSz5NXEs+fm28756uDU/u/n3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3f/q4NT+ + 5tvO+dXEs+fVxLPk0b2rttG9q7bNt6Y2zLWkLcy1pAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy3ognMt6IU + zrunI9C9qkLRvqxK1MGwbNXCsnPczL3O3My9zt/Sw+3f0sPv6uDU++3k2P7w6d7/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6d7/7eTY/urg1Pvf0sPv39LD7dzMvc7czL3O1cKyc9TBsGzRvqxK0L2qQs67pyPMt6IU + zLeiCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADMt6IczLeiPM67p2rQvarF0r+tzdfFtevYx7fs6+LW/+vi1v/y6uD/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lq4P/r4tb/6+LW/9jHt+zXxbXr + 0r+tzdC9qsXOu6dqzLeiPMy3ohwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADOuaUJzrmlDNC9qh3Rvqsp0r+sQtK/rV/Vw7GF18e10djIt9fdzb7v3s/A8Ozk2P/s5Nj/ + 8uvg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+D/ + 7OTY/+zk2P/ez8Dw3c2+79jIt9fXx7XR1cOxhdK/rV/Sv6xC0b6rKdC9qh3OuaUMzrmlCQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzrmlLc65pT7QvaqT0b6ry9XDstrZyLjs4NLD8u3k2P/u5dr/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/u5dr/7eTY/+DSw/LZyLjs1cOy2tG+q8vQvaqT + zrmlPs65pS0AAAAAAAAAAAAAAAAAAAAAv7+fAb+/nwHNuKQLzbikDM66pjrOuqZK0sCtmtPBr87XxrXd + 28u77eHUxfPt5Nn/7uba//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7uba/+3k2f/h1MXz + 28u77dfGtd3Twa/O0sCtms66pkrOuqY6zrmlDM65pQu/v58Bv7+fAb+/nwi/v58IzbikoM24pLfPu6jn + 0Lyp+OLUxvzt5Nj/7+fc//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/v59z/7OPX/+HUxfzQvKr40Lup5s65pbXOuaWev7+fCL+/nwi/v58I + v7+fCM24pKDNuKS3z7uo59C8qfji1Mb87eTY/+/n3P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7+fc/+zj1//h1MX80Lyq+NC7qebOuaW1 + zrmlnr+/nwi/v58Iv7+fAb+/nwHNvqEPzb6hEc+6qFXPuqhu0b6sstK/rt/YyLjo3tHC8eTZy/bv59z/ + 8Ojd//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8ene/+zi1f/p28z/1LCT/9Swk//UsJP/1LCT/+nbzP/s4tX/8ene//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+/n3P/k2cv23tHC8djIuOjSv63f + 0b6sss+6qG7PuqhVyrqrEMq6qw6/v58Bv7+fAQAAAAAAAAAAzMyZBMzMmQXPuqhLz7qoZNC8qq3QvKrd + 1sW15t3PwPDj18r17+fc//Do3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Do3v/s4dT/6drL/9Ksjf/SrI3/0qyN/9Ksjf/p2sv/7OHU//Do3v/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Do3f/v59z/ + 49fK9d3PwPDWxbXm0Lyq3dC8qq3Puqhkz7qoSr+/vwS/v78DAAAAAAAAAAAAAAAAAAAAAMzMmQHMzJkB + z7qoD8+6qBTOu6okzruqL9K/rlPTwbB+1cOyn9fGteLZybnl4dTF8uLVx/Pv59z/7+fc//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh/+/l2f/s4NL/4867/9a0mf/TrpH/y557/82fe//apnz/2qZ8/9qlfP/apXz/ + zZ97/8ueev/TrpH/1rSZ/+POu//s4NL/7+XZ//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3P/v59z/ + 4tXH8uHUxfHZybnl18a14tXDsp/TwbB+07+uU9K6qS7Ruqgjz7qoFM+6qA+/v78Bv7+/AQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqqqqAqqqqgPMuKYvzbimYc+7qIrQvarb08Gu393Ovu/e0MDw + 7ubb/+7m2//y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/u5Nf/6t3O/9/Hsv/Ppof/zJ9+/8ONZf/GkGj/ + 3KR4/9ykeP/co3j/3KN4/8aQZ//DjWT/zJ9+/8+mh//fx7L/6t3O/+7k1//y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/u5tv/7ubb/97QwO/dzr7u08Gu39C9qtvPu6iKzbimYc63pS7/gIAC/4CAAQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKqqqgGqqqoBzLimEM24piDPu6gu + 0L2qSdLArVXXxbSE2Ma1i9vMvOPbzLzj49bI8OPWyPHo3M786d3Q/+DIs//bvaX/1bGV/9Cnh//TpYL/ + 16N7/9mkfP/gqH7/4ql//+mxhf/psYX/6bCF/+mwhf/iqX7/4Kh9/9mkfP/Xo3v/06WC/9Cnh//VsZX/ + 272l/+DIs//p3dD/6NzO/OPWyPHj1sjw28y849vMvOPYxrWK18W0hNLArVXQvapJz7uoLs24piDOt6UP + /4CAAf+AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAADPuKUQz7ilT8+5pljPvarVz72q1drKuunby7vq49TF++XWx//Wtpz/ + z6aH/8mYdP/DjGP/zZRq/9uhdf/gp3v/77aK/++2iv/wt4v/8LeL//C3i//wt4v/77aK/++2iv/gp3v/ + 26F1/82Uav/DjGP/yZh0/8+mh//Wtpz/5dbH/+PUxfvby7vq2sq66c+9qtXPvarVz7mmWM+4pU/PuKUQ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz7ilB8+4pSXOtqIryrCYfMqwmHzMqo3R + zKmM19Gsj/XSrY/91qiF/tilgP/ZpHz/26N4/9+nfP/mrYH/6a+D//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/6a+D/+atgf/fp3z/26N4/9mkfP/YpYD/1qiF/tKtj/3RrI/1zKmM18yqjdHKsJh8 + yrCYfM62oivPuKUlz7ilBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + t3pOA7d6Ti63ek4uvIdcvbyHXMfAiF7xwYhe+9WbcP7fpXn/6K+D//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//or4P/36V5/9WbcP7BiF77 + wIhe8byHXMe8h1y9t3pOLrd6Ti63ek4DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + uH1PCLh9Txi5f1Iku4FVULyBVVPAhlp7wIZae86Wa9fOl2zd05pv9tSbcP3gpnv+5qyA/+uyhv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 67KG/+asgP/gpnv+1Jtw/dOab/bOl2zdzpZr18CGWnvAhlp7vIFVU7yBVVC6f1IkuH1PGLh9TwgAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALh9TxS4fU89uX9SWbuBVci8glbLw4ld7sOJXe7iqHz+5Kp+/+60iP/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utIj/5Kp+/+KofP7DiV3uw4ld7r2CVsu8gVXJ + un9SWbh9Tz24fU8UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALV+UQu1flESuX9TJLqAVDi9g1dJwYdabMOKXYHJj2PXyZBk2dCWavPQlmrz + 5qyA/uetgf/utYn/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/7rWJ/+etgf/mrID+ + 0JZq89CWavPKkGTZyo9j18SKXYHBh1psvoNXSbqAVDi5f1MktX5RErV+UQsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1flEptX5RRbl/U4e6gFTSv4VZ28eOYu3OlWnx + 566C/+ivg//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/6K+D/+eugv/PlWjwyI5h7L+FWdu6gFTSuX9Th7V+UUW1flEp + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqoBVAaqAVQG5gFIMuYBSDryBVRq9gVYev4ZZQ7+HWlzBh1uW + wohc2MaMYODNlGjv05pu8+ivg//psIT/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+mwhP/or4P/05pt8s6UZ+/GjGDg + wohc2MGIW5a/h1pcvoZZQ72BVh68gVUauYBSDrmAUgyqgFUBqoBVAaqAVQaqgFUGuYBSXbmAUmq8gVXA + vYFW38qPY+rSl2vx3qR4+Ouyh//ttIj/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7bSI/+uyh//dpHj40Zdq8smPYuq9gVbfvIFVwLmAUmq5gFJdqoBVBqqAVQaqgFUG + qoBVBrmAUl25gFJqvIFVwL2BVt/Kj2Pq0pdr8d6kePjrsof/7bSI//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+20iP/rsof/3aR4+NGXavLJj2LqvYFW37yBVcC5gFJq + uYBSXaqAVQaqgFUGv4BABL+AQAS6fVJXun1SZLuAVb27gVXdyY5i6NGWavDeo3f367KG/+20iP/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//vt4v/6bWJ/+m1if/ptoj/6baI/++3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//ttIj/67KG/96jd/fRlmrw + yY5i6LuBVd27gFW9un1SZLp9Ule/gEAEv4BABL+AQAS/gEAEun1SV7p9UmS7gFW9u4FV3cmOYujRlmrw + 3qN39+uyhv/ttIj/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/77eL/+m1if/ptYn/6baI/+m2iP/vt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 7bSI/+uyhv/eo3f30ZZq8MmOYui7gVXdu4BVvbp9UmS6fVJXv4BABL+AQAS/gEABv4BAAbp9Ugy6fVIN + un1VG7p9VSC/g1lTwIRZdcKHW6jDiFziyI5i6NKYa/LXnXH16rCF/+qxhf/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/7LaK/+a0iP/ZsoP/tKx3/7Crdv+Wp2//lqdv/5anb/+Wp2// + sat2/7Wsd//ZsoP/5rSI/+y2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 6rGF/+qxhP/XnXD10phr8siOYujDiFziwodbqMCEWXW/g1lTun1VILp9VRu6fVINun1SDL+AQAG/gEAB + AAAAAAAAAAAAAAAAAAAAAKpVVQKqVVUDuXxTPLl9U2K7gFScvIFV3sKHW+TNk2bw05ls8+mvhP/psIT/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+y2if/ltIf/1rGC/6uqdP+mqXP/ + iaVr/4mla/+JpWv/iaVr/6epc/+sqnT/1rGC/+W0h//ston/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+mwhP/psIP/05ls882TZvDCh1vkvIFV3ruAVJy5fVNiuXxTPKpVVQOqVVUC + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUBqlVVAbl8UxC5fVMavH9UKr1/VDzAhFhR + w4hcesWKXo7Jj2PgypBk4daccPDWnHDw6bCE/uqxhf/vtor/8LeL/+u2if/otYj/0rGB/7+ue/+zrHj/ + oqly/5+sdv+YtX//mLaB/5i/jP+Yv4z/mL+M/5i/jP+YtoH/mLV//5+sdv+iqXL/s6x4/7+ue//SsYH/ + 6LWI/+u2if/wt4v/77aK/+qxhf/psIT+1pxw8NaccPDKkGThyY9j4MWKXo7DiFx6wIRZULyBVTu7gFQq + uX1TGrl8UxCqVVUBqlVVAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAP8AAAD/AAABunhPG7h7UU+5fVNqu4FV1byCVtbMkWXrzJFl6+atgf7or4P/7rWJ//C3i//ptYj/ + 5bSH/8evff+tq3X/n6lx/4mla/+LqnH/kbmD/5O7hv+dyZj/ncmY/53JmP+dyZj/k7uG/5G5g/+LqnH/ + iaVr/5+pcf+tq3X/x699/+W0h//ptYj/8LeL/+61if/or4P/5q2B/syRZevMkWXrvIJW1ruBVdW5fVNq + uHtRT7h7URoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAALp4Twu4e1EguX1TKruBVVW8glZYxotfgcaLX4HJl2re + yZhq5bykcva6pnT6sal1/a2rdv+lsHv/nbWA/5q3g/+Wu4f/lr2J/5nDkP+Zw5H/nsmZ/57Jmf+eyZn/ + nsmZ/5nDkf+Zw5D/lr2J/5a7h/+at4P/nbWA/6Wwe/+tq3b/sal1/bqmdPq8pHL2yZhq5cmXat7Gi1+B + xotfgbyCVli7gVVVuX1TKrh7USC4e1ELAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tHtPBLR7Tzq0e086sIVWybCFVtOZl2LwlJtk94yiafyIpWv/jrF6/5O7h/+XwY7/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/l8GO/5O7h/+OsXr/iKVr/4yiafyUm2T3 + mZdi8LCFVtOwhVbJtHtPOrR7Tzq0e08EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3n2AEd59gFXydYBuKmF90iphfdJiWYdWZlmHclqhz9JWsd/qTs339kraA/5W8iP+Ywo// + msWT/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5rFk/+Ywo// + lbyI/5K2gP+Ts339lax3+paoc/SZlmHcmJZh1YqYX3SKmF90fJ1gG3efYBV3n2AEAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd59gCXefYC14oGE2e6NltnujZbaAp23kgKdt55K7h/mWv43+ + m8aV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/m8aV/5a/jf6Su4f5gKdt54CnbeR7o2W2e6NltnigYTZ3n2At + d59gCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd51eCXedXhR5oGIjeqJlQnujZ0p+pmtsf6dsc4evds6Hr3bO + irN87Yuzfe+Wv437mcKR/pzHlv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHlv+ZwpH+lr+N+4uzfe+Ks3zt + h692zoevds5/p2xzfqZrbHujZ0p6omVCeaBiI3edXhR3nV4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHedXhx3nV48eaBianqiZcV8o2fN + gahv64OqceyXwY//l8GP/57ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsiY/5fBj/+XwY//g6px7IGob+t8o2fNeqJlxXmgYmp3nV48d51eHAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHegXwl3oF8MeqJjHXuiZCl8o2ZC + faRnX3+nbIWBqnDRg6ty14eveO+IsHrwmMOR/5jDkf+eyZj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57JmP+Yw5H/mMOR/4iwevCHr3jvg6ty14GqcNF/p2yF + faRnX3yjZkJ7omQpeqJjHXegXwx3oF8JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3oF8t + d6BfPnqiY5N7omTLf6dq2oOrcOyKs3zymMOR/5nEk/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5nEk/+Yw5H/irN88oOrcOx/p2rae6Jky3qiY5N3oF8+d6BfLQAAAAAAAAAAAAAAAAAAAACAn2AB + gJ9gAXacXwt2nF8MeKBgOnigYEp8pGaafaVozoGpbd2FrXPtjLV+85jDkv+axZP/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+axZP/mMOS/4y1fvOFrXPtgalt3X2laM58pGaad6BgSnegYDp2nmAM + dp5gC4CfYAGAn2ABgJ9gCICfYAh2nF+gdpxft3mfY+d6oGT4jLV//JjDkf+bxpX/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5vFlP+YwpD/ + jLV//HmgZPh4oGPmdp5gtXaeYJ6An2AIgJ9gCICfYAiAn2AIdpxfoHacX7d5n2PneqBk+Iy1f/yYw5H/ + m8aV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+bxZT/mMKQ/4y1f/x5oGT4eKBj5naeYLV2nmCegJ9gCICfYAiAn2ABgJ9gAXKbYQ9ym2ER + eKFjVXihY258pGiyfaVp34OrcuiKsnvxkLmE9pvFlP+cxpX/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+cxpX/m8WU/5C5hPaKsnvxg6ty6H2kad98pGiyeKFjbnigY1V4l1gQeJdYDoCfYAGAn2AB + AAAAAAAAAABmmWYEZplmBXihY0t4oWNkeqJlrXuiZt2BqW/miLB58I+3gvWbxZT/nMaV/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMaV/5vFlP+Pt4L1iLB58IGpb+Z7ombdeqJlrXihY2R4oWJK + gIBABICAQAMAAAAAAAAAAAAAAAAAAAAAZplmAWaZZgF4oWMPeKFjFHmiZSR5omUvfKVpU32man5/qGyf + galv4oOscuWLtH7yjLaA85vGlf+bxpX/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/m8aV/5vGlf+NtoDyjLV+8YSscuWBqW/if6hsn32man58pWlT + e6FnLnqhZiN4oWMUeKFiD4CAQAGAgEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVqlUC + VapVA3WgYS92oGFheKFjinqhZNt9pGjfhq9374exefCaxZT/msWU/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5rFlP+axZT/iLF574ewd+59pGjf + eqFk23ihY4p2oGFhdp9iLoCAgAKAgIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAVapVAVWqVQF1oGEQdqBhIHihYy56oWRJfKNnVYCnbYSBqG6Lhq5344aud+ONtoDw + jreB8ZjCkfybxZT/nciX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciX/5vFlP+YwpH8jreB8Y22gPCGrnfj + hq5344GoboqBqG2EfKNnVXqhZEl4oWMudqBhIHafYg+AgIABgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHebXhB3m15P + d5xfWHqgZdV6oGXVhKxz6YWtdOqVv4z7mcOS/5zHl/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHl/+Zw5L/ + lb+M+4WtdOqErHPpeqBl1XqgZdV3nF9Yd5teT3ebXhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3m14Hd5teJXecXyl6oGVjeqBlY4Gpb4eCqW+KirJ70IuzfeGOt4LtkLmF85W/jfqaxZP/ + m8aV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zGlf+axZP/ + lb+N+pC5hfOOt4Lti7N94Yqye9CCqW+Kgalvh3qgZWN6oGVjd5xfKXebXiV3m14HAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2nF4ydpxeNnuhZap7oWXH + gKdt3oKqcemNt4H1lsGO/5nEkv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+axJL/l8GO/463gfWCqnHpgKdt3nuhZcd7oWWqdpxeNnacXjIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + dpxeHnacXiB7oWVme6Fld3+mbJCBqG+ciLF6wY22geKPuYTqk7yI9ZW/i/iaxZP/m8aU/57Jmf+eyZn/ + nsmZ/57Jmf+bxpT/msWT/5W/i/iTvIj1kLmE6o62geKJsXrBgahvnH+mbJB7oWV3e6FlZnacXiB2nF4e + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2m10bdptdKXmfZHR6oGW2faNoyoCnbOeGrnXt + lb+L/pbAjf6eyZn/nsmZ/57Jmf+eyZn/lsCN/pW/i/6GrnXtgKds532jaMp6oGW2eZ9kdHabXSl2m10b + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdptdFHabXR55n2RV + eqBlhX2jaJaApmuvha1zvZC5hOORuoXllsCN+JbAjfiWwI34lsCN+JG6heWRuoTiha1zvYCma699o2iW + eqBlhXmfZFV2m10edptdFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB0l10JdJddFnidYjh6oGSXe6FloX2kaOV9pGjlfaRo5X2kaOV8oWWh + fKBklnqdYjh0l10WdJddCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddCHSXXRN4nWIxeqBkg3uhZYx9pGjI + faRoyH2kaMh9pGjIfKFli3ygZIJ6nWIxdJddE3SXXQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3mWYCd5lmD3eZZg9tpFsObaRbDm2kWwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5lmAneZZg93mWYPbaRbDm2kWw5tpFsCAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////4H/////////gf//// + ////gAH///////+AAf//////+AAAH//////4AAAf/////4AAAAH/////gAAAAf////AAAAAAD///8AAA + AAAP//8AAAAAAAD//wAAAAAAAP/wAAAAAAAAD/AAAAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADAAAAAAAAAA8AAAAAAAAAD/AAAAAAAAD/8AAAAAAAAP//wAAAAAA////AAAAAAD////AAA + AAA////AAAAAAAP//8AAAAAAA//8AAAAAAAAP/wAAAAAAAA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAA/wAAAAAAAAD/8AAAAAAAP//wAAAAAAA////AAA + AAA////wAAAAAA////AAAAAAD///AAAAAAAA//8AAAAAAAD/8AAAAAAAAA/wAAAAAAAADwAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAPAAAAAAAAAA/wAAAAAAAA//AAAAAAAAD//8AAA + AAAP///wAAAAAA////+AAAAB/////4AAAAH/////+AAAH//////4AAAf//////+AAf///////4AB//// + ////+B/////////4H////ygAAAAwAAAAYAAAAAEAIAAAAAAAACQAAGEKAABhCgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLuqCcy7qg/ItqQOyLakCAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0bmiB9C6qBPQu6s80b6sVdHArWXRv6xk0b6sVM+7qjzQuqcT + 0bmiBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0bmiEtC6qDDQu6uX0b6sxtLAreXSwK3l + 0b6sxc+7qpbQuqcw0bmiEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIB0bmiEdC7qTnQvKt007+trNbEs8Ph08bm + 593Q8uvi1/rr4tf6593Q8uDTxubWxLPD07+trNC8q3TQu6k50bmiEdG5ogEAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJuaIBybmiB9C9qxbRvqwi07+rPtbDsmnXxban + 2cm429zNvezm28/77eTZ/fHq4P/x6uD/7eTZ/ebbz/vczb3s2cm429fFtqfWw7Jp07+rPtG9rCLQvasW + ybmiB8m5ogEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJuaIHybmiIdC9q3DRvqyo + 1MGv49zMvO/n28798Ojd//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+fbzv3czLzv + 1MGv49G9rKjQvatwybmiIcm5ogcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMtaQLzLWkG9G9q13Sv612 + 1MOymN7QwcDj1sjc59vO9Orf0/nu5dn+8erf//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8erf/+7l2f7q39P559vO9OPWyNze0MHA1MOymNK/rXbRvatdzLWkG8y1pAsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6ICzLijA9C9qgjOuaga + zrinNdK/rZ/Twa/C1sa16OPWyfXr4dX+8uvg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvg/+vh1f7j1sn11sa16NPBr8LSv62fzrinNc65qBrQvaoI + zLijA8y3ogIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6Ij + zLijP9C9qrfTwa/M18W14+fcz/fs49f88erf/vHq4P/y6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4P/x6uD/8erf/uzj1/zn3M/3 + 18W149PBr8zQvaq3zLijP8y3oiMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOuaUU + z7uoJNG+q1HUwrBv1sSzht3Pv9jg0sPl4tXH8+zi1/3v59z/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh/+/n3P/s4tf94tXH8+DSw+Xdz7/Y1sSzhtTCsG/RvqtRz7uoJM65pRQAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADOuaUyz7uoWtG+q8vWxLPf2sm57ezj1/7v59z/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3P/s49f+2sm57dbEs9/RvqvLz7uoWs65pTIAAAAA + AAAAAAAAAAC/v58GzLikPs24pJLPu6jG1cOy2uje0fXr4tb57eXa+/Hp3//x6uD/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hq4P/x6d//7eXa++vh1vno3dD1 + 1cOy2tC7qcbOuaWRzbmlPr+/nwa/v58GzLmkP824pJPPu6jM1cOy4Ojd0Pjs4tb67ubb/PHq4P/y6+D/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4P/x6d7/7uPW/+ze0P/s3tD/ + 7uPW//Hp3v/y6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4P/x6uD/ + 7ubb/Ovi1vrn3M/41cOy4NC7qczOuaWSzbmlPr+/nwYAAAAAzMyZAszMmQXPuqhRz7upfNC8qt3YyLjo + 3tDB8e7m2/7w6d7/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hp3v/s4dT/ + 3MGp/9Ksjf/SrI3/3MGp/+zh1P/x6d7/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Dp3v/u5tv+3tDB8djIuOjQvKrdz7upfM+6qFG/v78Ev7+/AgAAAAAAAAAAzMyZAczMmQLPuqgg + z7upMs+8qlrVw7OB18e3nt3PwObh1MXu5trN9e7l2v3w6d7/8uvh//Lr4f/y6+H/8uvh//Do3P/t49b/ + 4Mi0/9u+pv/Tr5H/1qqH/9ingP/Yp4D/1qqH/9Ovkf/bvqb/4Mi0/+3j1v/w6Nz/8uvh//Lr4f/y6+H/ + 8uvh//Dp3v/u5dr95trN9eHUxe7dz8Dm18e3ntXDs4DRu6la0LqpMs+6qCC/v78Cv7+/AQAAAAAAAAAA + AAAAAAAAAAAAAAAAqqqqAaqqqgPMuKY5zbimYtC9qs3VxLLb3c6+6Org1Pnu5tv98erg/vHq4P/x6uD/ + 8ejd/+3i1f/o2sr/1LCU/82hgP/Fj2f/05xx/92lef/dpHn/05tx/8WPZv/NoYD/1LCU/+jayv/t4tX/ + 8ejd//Hq4P/x6uD/8erg/u7m2/3q4NT53c6+59XEstrQvarNzbimYs63pTn/gIAC/4CAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqqqqAKqqqgDMuKYCzbimBNC9qgnRu6go0buoVtG/rL3TwrDb + 3My96+LTxPfl1cb/0auN/8yfff/Fj2f/1p5z/96lef/ttIj/7rWK/++2iv/vtor/7rWJ/+20iP/epXn/ + 1p5z/8WPZ//Mn33/0auN/+XVxv/i08T33My969PCsNvRv6y90buoVtG7qCjQvaoJzbimBM63pQL/gIAA + /4CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPuKUT + z7ilL8y1n37NtJ2h0LKZ3NS1nPDXtpz91aaD/9WifP/VnXP/4ad8/+asgP/vtor/8LeL//C3i//wt4v/ + 8LeL/++2iv/mrID/4ad8/9Wdc//Vonz/1aaD/9e2nP3UtZzw0LKZ3M20naHMtZ9+z7ilL8+4pRMAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALd6TiW6gVVNvIdcx7+IXebCiV/73qR4/+asgP/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//mrID/3qR4/8KJX/u/iF3mvIdcx7qBVU23ek4l + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAuH1PArh9Ty+6gFNdu4FVoMGHW8DJj2PQ3aR49OOqfvrnroL+7LOH/+61if/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utYn/7LOH/+eugv7jqn76 + 3aR49MmPY9DBh1vAvIFVobuAU164fU8vuH1PAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAtX5RA7V+UQ65gFMfuoBULL+FWF7DiV2Oxoxg08uRZevSmGz05q2B/+yzh//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//ss4f/5q2B/9KYbPTLkWXrxoxg1MSJXY7AhVheu4BULLmAUx+1flEOtX5RAwAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtX5RDrV+UUW5gFOau4FV08eNYezUm2/0566C/+61if/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utYn/566C/9Wbb/THjWHru4FV07mAU5q1flFF + tX5RDgAAAAAAAAAAAAAAAAAAAACqgFUEuIBSHLmAUkC9gVZ4wYVajc2TZ6zWnHDT2qF17eCne/flrID7 + 7LOH/++2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//vtor/7LOH/+WsgPrgp3v3 + 2qF17dWccNPNk2atwYVajr2BVni5gFJAuIBSHKqAVQSqgFUGuIBSLrmAUmq9gVbIwYZa49KXa/HhqHz5 + 67KH//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/67KH/+GofPrRl2rywYZa472BVsi5gFJquIBSLqqAVQa/gEAEun1RKrp9UmS7gVXF + wIVZ4dGWavDhp3v567KG//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7LaK/+m1if/ptoj/7LaJ//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/67KG/+Gne/nRlmrwwIVZ4buBVcW6fVJkun1RKr+AQAS/gEAC + un1RGbp9Ujy7gFV3v4VZkMyRZbfVm2/a2qB08uKpfPnnrYH77bSI/++2iv/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7LaK/+e1iP/UsoL/yrB//8Ovff/Dr3z/yrB//9Wygv/ntYj/7LaK//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//vtor/7bSI/+eugfviqXz52qB08tWbb9rMkWW3v4VZkLuAVXe6fVI8 + un1RGb+AQAIAAAAAAAAAAAAAAACqVVUCt3lTFrl9U2K7gFWsvYJW38ySZe/Zn3L26a+E/++1iv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/57WI/9myg/+rqnT/l6dv/4mla/+JpWv/l6dv/6yqdP/asoP/ + 57WI//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//vton/6bCD/9mfcvbMkmXvvYJW37uAVay5fVNi + t3lTFqpVVQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUAt3lTBLl9UxS8flMjvn9UMMGFWmzEiV2b + xoxg3dGXa+vYnnLy6rGF/+20iP/wt4v/6LWI/9Wygv+6rXn/oqly/5qrdP+WtoD/mL2J/5nCj/+Zwo// + mL2J/5a2gP+aq3T/oqly/7qtef/VsoL/6LWI//C3i//ttIj/6rGF/9iecvLRl2vrxoxg3cSJXZvBhVps + vIFVL7uAVSK5fVMUt3lTBKpVVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA + yF8/A7h7UT26f1Rqu4FVqsiNYcLPlWnR3qh79t6ugPvesoP907GB/8Gwfv+ornn/k611/46veP+UvIf/ + mcSR/53JmP+dyZj/mcSR/5S8h/+Or3j/k611/6iuef/BsH7/07GB/96yg/3eroD73qh79s+VadHIjWHC + u4FVqrp/VGq4e1E9uHtRAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALR7Ty6ygFJZsIVW056TX+mTm2T3iKVr/4yudv+Tu4f/ + nMaV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMaV/5O7h/+Mrnb/iKVr/5ObZPeek1/p + sIVW07KAUlm0e08uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3n2ALd59gG4ScYW+Jm2KXkppk35SodPCVsX37 + lbqG/5e+i/+aw5L/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciY/5rDkv+Xvov/ + lbqG/5WxffuUqHTwkppk34mbYpeEnGFvd59gG3efYAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3nV4Cd55fA3qiZQh5oWMaeaFjNXykZ59+pmnC + galv6I63gvWXwI7+nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5fAjv6Ot4L1galv6H6macJ8pGefeaFjNXmhYxp6omUId55fA3edXgIAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3nV4jd55fP3qiZbd9pWnM + gahv45K8iPeYwpD8nciX/p3ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/nciX/pjCkPySvIj3gahv432lacx6omW3 + d55fP3edXiMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3oF8UeaFhJHuiZFF+pmlv + gKhshoixediKs3zljbaB85fBj/2bxZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5vFlP+XwY/9 + jbaB84qzfOWIsXnYgKhshn6maW97omRReaFhJHegXxQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3oF8y + eaFhWnuiZMuAqGzfhKxx7ZfCkP6axZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5rFlP+XwpD+hKxx7YCobN97omTLeaFhWnegXzIAAAAAAAAAAAAAAACAn2AG + d5xfPnacX5J5n2PGgKds2pO+ivWXwY75mcSS+53Il/+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+dyJf/mcSS+5fBjvmTvYn1f6Zs2nigY8Z2nmCR + d55gPoCfYAaAn2AGd5xfP3acX5N5n2PMf6ds4JO9ifiXwY/6msST/J3ImP+eyZj/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57JmP+dyJj/msST/JfBj/qTvIn4 + f6Zs4HmgY8x2nmCSd55gPoCfYAYAAAAAZplmAmaZZgV4oWNReaFkfHuiZt2Dq3LoibF68ZrEk/6cx5b/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHlv+axJP+ + ibF68YOrcuh7ombdeaFkfHihY1GAgEAEgIBAAgAAAAAAAAAAZplmAWaZZgJ4oWMgeaFkMnqiZlp/qG2B + gqpwnoixeeaMtH7ukLqF9ZnEk/2cx5f/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHl/+ZxJP9 + kbqF9Yy1fu6IsXnmgqpwnn+obYB7omZaeaFkMnihYyCAgEACgIBAAQAAAAAAAAAAAAAAAAAAAAAAAAAA + VapVAVWqVQN1oGE5dqBhYnqhZM1/p2zbhq936JXAjfmaxZP9nciY/p3ImP+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/ + nciY/prFk/2WwI35h7B353+nbNp6oWTNdqBhYnagYTmAgIACgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAVapVAFWqVQB1oGECdqBhBHqhZAl5nmEoeZ1hVnuhZ71+pWrbhq5265K7h/eZw5P/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5nDk/+Su4f3hq52636latt7oWe9eZ1hVnmeYSh6oWQJdqBhBHagYQKAgIAAgICAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3m14Td5teL3qgZHB8o2iH + g6txoouzfcyPuIPpk72K9pbBjvqbxpX/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nciY/5vGlf+XwY76k72K9o+4g+mLs33Mg6txonyjaId6oGRwd5teL3ebXhMAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB2nF4LdpxeNnqgZI17oWbIgqpx6Iq0ffKWwY7/nMeX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nceX/5fBjv+LtH3ygqpx6HuhZsh6oGSNdpxeNnacXgsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB2nF4CdpxeC3qgZBx7oWUpfaRpToCnbX6BqXDFhq115Iqye++XwY7+ + m8aV/57Jmf+eyZn/m8aV/5fBjv6Ksnvvhq115IKpcMWAp21+faRpTnuhZSl6oGQcdpxeC3acXgIAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2m10BdptdH3mfY056oGWS + f6ZrtISrcsaSu4bplb+M85jCkPqYwpD6lr+M85K7humEq3LGf6ZrtHqgZZJ5n2NOdptdH3abXQEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAdJddEnidYTB6oGSXfKNnxn2kaOV9pGjlfaNnxXygZJZ5nWEwdJddEgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddB3idYRN6oGQ8fKJnVXyjaGV8pGdkfKNmVHygZDx5nWET + dJddBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5lmCXeZZg9tpFsO + baRbCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///w///8AAP//4Af//wAA///gB///AAD//gAA + f/8AAP/wAAAP/wAA//AAAA//AAD/gAAAAf8AAPwAAAAAPwAA/AAAAAA/AADgAAAAAAcAAOAAAAAABwAA + AAAAAAAAAAAAAAAAAAAAAIAAAAAAAQAAgAAAAAABAADwAAAAAA8AAPAAAAAADwAA/4AAAAH/AAD/4AAA + B/8AAP4AAAAAfwAA8AAAAAAPAADwAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 4AAAAAAHAADgAAAAAAcAAPwAAAAAfwAA/+AAAAf/AAD/gAAAAf8AAPwAAAAAPwAA/AAAAAA/AADgAAAA + AAcAAOAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAQAAgAAAAAABAADwAAAAAA8AAPAAAAAADwAA + /4AAAAH/AAD/8AAAD/8AAP/wAAAP/wAA//4AAH//AAD//+AH//8AAP//4Af//wAA///8P///AAAoAAAA + IAAAAEAAAAABACAAAAAAAAAQAABhCgAAYQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMu6oBzLuqD8i2pA7ItqQBAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIE0LqnJdC7q5LSwK3X0sCt18+7qpHQuqYk + 0bmiBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIG0LuoL9G9rIzVw7HN4tbJ7u3l2vzt5dr8 + 4tbJ7tXDsc3RvayM0LuoL9G5ogYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJuaIMz72qRdK/rZfZyLfI5trN6+3k2Prv593+ + 8uvh//Lr4f/v593+7eTY+ubazevZyLfI0r+tl8+8qkXJuaIMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMtaQU0LyqV9PAr5rczr7H59zP7Ozi1/rw6N3/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+zi1/rn3M/s3M6+x9PAr5rQvKpXzLWkFAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6Idz7ypZdTBsJzf0MLL5tvP7uzi1/rw6d7/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Dp3v/s4tf65tvP7t/QwsvUwbCc + z7ypZcy3oh0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOuaUg0b6radbEs5rg0sPS5trN8ezi1/vx6d// + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/x6d// + 7OLX++bazfHg0sPS1sSzmtG+q2nOuaUgAAAAAAAAAAC/v58EzbikW8+7qJnf0cHZ5drM8u3k2Pzx6t// + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8erf/+3k2Pzl2czy3tDB2dC7qZnOuaVav7+fBL+/nwTNuKRe0LuoqN7PwOPm2872 + 7ubb/fHq4P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/7uXZ/+POuv/jzrr/7uXZ//Lq4P/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/x6uD/7ubb/ebbzvbdz7/j0LupqM65pVy/v58EAAAAAMzMmQPPuqg0 + 0Lyqd9jHt6rh1Mbd593Q9e3l2vzx6uD/8uvh//Lr4f/x6t//7eHU/+PNuv/bvqX/1qmF/9aohf/bvqX/ + 4826/+3h1P/x6t//8uvh//Lr4f/x6uD/7eXa/Ofd0PXh1Mbd2Me3qtC7qnfPuqg0v7+/AgAAAAAAAAAA + AAAAAAAAAACqqqoCzbimMM+8qXfXxrWq4dTF1+jd0fTs4tb769/R/+TPvP/bvKL/06N//9Occv/jqn7/ + 46p+/9Occv/To3//27yi/+TPvP/r39H/7OLW++jd0fTh1MXX18a1qc+8qXfNuKYw/4CAAQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM+4pSPOuKR10bqkw9e+p+zZuJ7+0qJ+/9ObcP/jqX3/ + 77aK//C3i//wt4v/77aK/+Opff/Tm3D/0qJ+/9m4nv7Xvqfs0bqkw864pHXPuKUjAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4fU8IuoBUHb2CVkDDi2CPyJBm49OZbv3mrID/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//mrID/05lu/ciQZuPDi2CPvYJWQLuAVB24fU8I + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1flEHuYBUF72DVkLBh1uexoxg4dedcffqsIT/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/6rCE/9edcffHjGDh + wodbn72DVUK5gFQXtX5RBwAAAAAAAAAAAAAAAKqAVQC5gFIHvYFWDruDVkO+hFiyxo1h5tyjd/jss4f/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/+yzh//do3f4x41g5b6EWLK7g1ZDvYFWDrmAUgeqgFUAqoBVBrmAUmO9gVbPzpNn7eWrgPvutYr/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//utYr/5KuA/M2TZu69gVbPuYBSY6qAVQa/gEAEun1SXruBVc3Nkmbs + 5Kt/++61if/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//ptYn/6baI//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61if/kq3/7zZJm7LuBVc26fVJev4BABL+AQAC6fVIG + uHpVELyAVlm/hFjBypBk69+levnttIj/8LeL//C3i//wt4v/8LeL/+62iv/fs4X/rat1/4+mbf+Ppm3/ + rqt1/9+zhf/utor/8LeL//C3i//wt4v/8LeL/+20iP/fpnn5ypBk67+EWMG8gFZZuHpVELp9Uga/gEAA + AAAAAAAAAACqVVUAuX1TC719Uxq/gldNwYdbq8qQZOXdo3f27LOH/+22iv/asoP/r6t2/5Wpcf+VuIL/ + msSS/5rEkv+VuIL/lalx/6+rdv/asoP/7baK/+yzh//do3f2ypBk5cGHW6u+gldNvIBVGbl9UwuqVVUA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAALh6UAu6gFQgv4VZRr6MXpizlmXno6Nu+5qsdv+Zuob/ + msKQ/5zGlf+eyZn/nsmZ/5zGlf+awpD/mbqG/5qsdv+jo277s5Zl576MXpi/hVlGuoBUILh7UQsAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHefYBR/n2Jfh59luZCoc+yWuYb9 + mcGP/5zGlf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cxpX/mcGP/5a5hv2QqHPsh59luX+fYl93n2AU + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHedXh16oWRlfqVrnIqye8uSvIfu + l8GP+pzHlv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMeW/5fBj/qSvIfu + irJ7y36la5x6oWRld51eHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHegXyB7omRpgKhrmou0fdKRu4bx + l8KQ+53Hl/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/53Hl/+XwpD7kbuG8Yu0fdKAqGuae6JkaXegXyAAAAAAAAAAAICfYAR2nF9beaBjmYmyetmQuoXy + mMOR/J3ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/mMOR/JC6hPKJsnrZeKBjmXaeYFqAn2AEgJ9gBHacX155oGOo + ibJ645K7h/aaxJP9nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+axJP9kruH9omxeuN5oGOodp1fXICfYAQAAAAA + ZplmA3ihYzR6omZ3gqpxqoy1ft2TvIj1mcSS/J3ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+ZxJL8k7yI9Yy1ft2CqnGqe6Jmd3ihYzSAgEAC + AAAAAAAAAAAAAAAAAAAAAFWqVQJ2oGEweaFjd4CobqqLtH/Xk72K9JnDkfudyJf/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Il/+Zw5H7k72K9Iy1f9eBqW6peaFjd3agYTCAgIAB + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5teI3mfY25/pmyqi7N80JS9ivOYw5H7 + nMeX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Hl/+Yw5H7lL2K84uzfNB/pmyqeZ9jbnebXiMAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHacXhR6oGNa + faRpq4evd8+TvYrymcOR+5zHlv+eyZn/nsmZ/5zHlv+Zw5H7lL2K8oevd899pGmreqBjWnacXhQAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB2m10MeJ5iRHuiZ6eDqnDQk72J8ZrFk/yaxZP8k72J8YOqcNB7omeneJ5iRHabXQwAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddBHecYSV6oGSSfaRo132kaNd8oGSReJxhJHSXXQQAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHeZZgF3mWYPbaRbDm2kWwEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/8P///8A// + /8AD//8AAP/8AAA/8AAAD8AAAAMAAAAAAAAAAIAAAAHgAAAH/AAAP/gAAB/gAAAHAAAAAAAAAAAAAAAA + AAAAAMAAAAPwAAAf/AAAP/AAAA/AAAADAAAAAAAAAACAAAAB4AAAB/wAAD//AAD//8AD///wD////D// + KAAAABAAAAAgAAAAAQAgAAAAAAAABAAAYQoAAGEKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAANG6pgrRvqxe0b6sXtC6pgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + zrypFNXDsWXg0sTQ7OPY+uzj2Prg0sTQ1cOxZc68qRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPu6ch + 2Ma2dOLVx9Lt5dn58erg//Lr4f/y6+H/8erg/+3l2fni1cfS2Ma2dM+7pyEAAAAAAAAAAMy4pBjWxbN/ + 49fJ1u3l2fvy6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvg/+3l2fvj18nW1sWzf825pRjMuaMZ + 1cOyjuTZy97u5tv88uvh//Lr4P/t4dT/4cav/+HGr//t4dT/8uvg//Lr4f/u5tv85NnL3tXDso7NuqYZ + AAAAAKqqqgDPu6gq2Mi3huDPvujewqr/2amE/+Wtgf/lrYH/2amE/97Cqv/gz77o2Mi3hs+7qCr/gIAA + AAAAAAAAAAC1flECvIJVGMOJXHfVnHHa5q2B/vC3i//wt4v/8LeL//C3i//mrYH+1Zxx2sOJXHe8glUY + tX5RAgAAAAC4gFIcxIleg9ifc+TqsYX98LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//qsYX9 + 2J9z5MSJXYS4gFIcun1RGsOIXYnZn3Pq67KG/vC3i//wt4v/67aJ/8Wvff/Gr33/67aJ//C3i//wt4v/ + 67KG/tmfc+rDiF2Jun1RGgAAAAC4e1MDvoBVHMWKXn3RoHPdwa58/p60f/+aw5D/msOQ/560f//Brnz+ + 0aBz3cWKXn29gVYcuHtTAwAAAAAAAAAAAAAAAHmgYyGDqXB2kbJ945rCkf6dyJj/nsmZ/57Jmf+dyJj/ + msKR/pGyfeODqXB2eaBjIQAAAAAAAAAAdpxfGICobX+OuILWmcOS+57JmP+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZj/mcOS+464gtaAqG1/dp5gGHacXxmAp22OkLmE3prEk/yeyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5rEk/yQuYTef6dtjnedXxkAAAAAVapVAHihYyqDqnKFj7iD2prEk/ueyZj/ + nsmZ/57Jmf+eyZj/msST+4+4g9qDq3KEeKFjKoCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAHmfYhuBqG5y + jLV/2ZrFk/uaxZP7jbV/2YGobnJ5n2IbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHebYAp8omdefKNmXnibYAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8PwAA8A8AAMADAAAAAAAA + AAAAAIABAACAAQAAAAAAAAAAAACAAQAAwAMAAAAAAAAAAAAAgAEAAPAPAAD8PwAA + + + \ No newline at end of file diff --git a/Handler/Project/Dialog/Model_Operation.Designer.cs b/Handler/Project/Dialog/Model_Operation.Designer.cs new file mode 100644 index 0000000..268e120 --- /dev/null +++ b/Handler/Project/Dialog/Model_Operation.Designer.cs @@ -0,0 +1,1635 @@ +namespace Project +{ + partial class Model_Operation + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = 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.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Model_Operation)); + this.dv = new arCtl.arDatagridView(); + this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dvc_title = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Code = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.bs = new System.Windows.Forms.BindingSource(this.components); + this.ds1 = new Project.DataSet1(); + this.tmDisplay = new System.Windows.Forms.Timer(this.components); + this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); + this.checkBox31 = new System.Windows.Forms.CheckBox(); + this.panel5 = new System.Windows.Forms.Panel(); + this.panel4 = new System.Windows.Forms.Panel(); + this.panel1 = new System.Windows.Forms.Panel(); + this.panel7 = new System.Windows.Forms.Panel(); + this.chkSIDCHK = new System.Windows.Forms.CheckBox(); + this.checkBox32 = new System.Windows.Forms.CheckBox(); + this.chkEnbCamera = new System.Windows.Forms.CheckBox(); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.chkApplySidInfo = new System.Windows.Forms.CheckBox(); + this.chkApplyJobInfo = new System.Windows.Forms.CheckBox(); + this.chkApplySIDConvData = new System.Windows.Forms.CheckBox(); + this.chkUserConfirm = new System.Windows.Forms.CheckBox(); + this.chkSIDConv = new System.Windows.Forms.CheckBox(); + this.chkQtyServer = new System.Windows.Forms.CheckBox(); + this.chkQtyMRQ = new System.Windows.Forms.CheckBox(); + this.chkNew = new System.Windows.Forms.CheckBox(); + this.tabPage2 = new System.Windows.Forms.TabPage(); + this.GrpSidConvData = new System.Windows.Forms.GroupBox(); + this.chkSave2 = new System.Windows.Forms.CheckBox(); + this.checkBox34 = new System.Windows.Forms.CheckBox(); + this.checkBox35 = new System.Windows.Forms.CheckBox(); + this.checkBox30 = new System.Windows.Forms.CheckBox(); + this.checkBox2 = new System.Windows.Forms.CheckBox(); + this.label6 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.checkBox3 = new System.Windows.Forms.CheckBox(); + this.checkBox20 = new System.Windows.Forms.CheckBox(); + this.checkBox21 = new System.Windows.Forms.CheckBox(); + this.checkBox22 = new System.Windows.Forms.CheckBox(); + this.checkBox23 = new System.Windows.Forms.CheckBox(); + this.checkBox24 = new System.Windows.Forms.CheckBox(); + this.checkBox25 = new System.Windows.Forms.CheckBox(); + this.grpapplyjob = new System.Windows.Forms.GroupBox(); + this.checkBox29 = new System.Windows.Forms.CheckBox(); + this.checkBox18 = new System.Windows.Forms.CheckBox(); + this.label3 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.checkBox10 = new System.Windows.Forms.CheckBox(); + this.checkBox9 = new System.Windows.Forms.CheckBox(); + this.checkBox6 = new System.Windows.Forms.CheckBox(); + this.checkBox7 = new System.Windows.Forms.CheckBox(); + this.checkBox8 = new System.Windows.Forms.CheckBox(); + this.checkBox5 = new System.Windows.Forms.CheckBox(); + this.checkBox4 = new System.Windows.Forms.CheckBox(); + this.grpApplySidinfo = new System.Windows.Forms.GroupBox(); + this.checkBox33 = new System.Windows.Forms.CheckBox(); + this.checkBox28 = new System.Windows.Forms.CheckBox(); + this.checkBox26 = new System.Windows.Forms.CheckBox(); + this.checkBox27 = new System.Windows.Forms.CheckBox(); + this.chkSave1 = new System.Windows.Forms.CheckBox(); + this.checkBox19 = new System.Windows.Forms.CheckBox(); + this.label4 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.checkBox11 = new System.Windows.Forms.CheckBox(); + this.checkBox12 = new System.Windows.Forms.CheckBox(); + this.checkBox13 = new System.Windows.Forms.CheckBox(); + this.checkBox14 = new System.Windows.Forms.CheckBox(); + this.checkBox15 = new System.Windows.Forms.CheckBox(); + this.checkBox16 = new System.Windows.Forms.CheckBox(); + this.checkBox17 = new System.Windows.Forms.CheckBox(); + this.panel6 = new System.Windows.Forms.Panel(); + this.tbDefDate = new System.Windows.Forms.TextBox(); + this.label18 = new System.Windows.Forms.Label(); + this.tbDefVname = new System.Windows.Forms.TextBox(); + this.label17 = new System.Windows.Forms.Label(); + this.label16 = new System.Windows.Forms.Label(); + this.panel2 = new System.Windows.Forms.Panel(); + this.bCD_DMCheckBox = new System.Windows.Forms.CheckBox(); + this.bCD_QRCheckBox = new System.Windows.Forms.CheckBox(); + this.bCD_1DCheckBox = new System.Windows.Forms.CheckBox(); + this.label1 = new System.Windows.Forms.Label(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.btConvOk = new System.Windows.Forms.Button(); + this.btConvOff = new System.Windows.Forms.Button(); + this.panel3 = new System.Windows.Forms.Panel(); + this.label15 = new System.Windows.Forms.Label(); + this.label14 = new System.Windows.Forms.Label(); + this.label13 = new System.Windows.Forms.Label(); + this.label12 = new System.Windows.Forms.Label(); + this.label11 = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.toolStrip1 = new System.Windows.Forms.ToolStrip(); + this.btAdd = new System.Windows.Forms.ToolStripButton(); + this.btDel = new System.Windows.Forms.ToolStripButton(); + this.btSave = new System.Windows.Forms.ToolStripButton(); + this.btCopy = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton10 = new System.Windows.Forms.ToolStripButton(); + this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.arLabel2 = new arCtl.arLabel(); + this.arLabel18 = new arCtl.arLabel(); + ((System.ComponentModel.ISupportInitialize)(this.dv)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bs)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.ds1)).BeginInit(); + this.panel5.SuspendLayout(); + this.panel4.SuspendLayout(); + this.panel1.SuspendLayout(); + this.panel7.SuspendLayout(); + this.tabControl1.SuspendLayout(); + this.tabPage1.SuspendLayout(); + this.tabPage2.SuspendLayout(); + this.GrpSidConvData.SuspendLayout(); + this.grpapplyjob.SuspendLayout(); + this.grpApplySidinfo.SuspendLayout(); + this.panel6.SuspendLayout(); + this.panel2.SuspendLayout(); + this.tableLayoutPanel1.SuspendLayout(); + this.panel3.SuspendLayout(); + this.toolStrip1.SuspendLayout(); + this.SuspendLayout(); + // + // dv + // + this.dv.A_DelCurrentCell = true; + this.dv.A_EnterToTab = true; + this.dv.A_KoreanField = null; + this.dv.A_UpperField = null; + this.dv.A_ViewRownumOnHeader = true; + this.dv.AllowUserToAddRows = false; + this.dv.AllowUserToDeleteRows = false; + this.dv.AutoGenerateColumns = false; + this.dv.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; + this.dv.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells; + this.dv.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.dv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dv.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.Column1, + this.dvc_title, + this.Code}); + this.dv.DataSource = this.bs; + dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle4.Font = new System.Drawing.Font("맑은 고딕", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle4.Padding = new System.Windows.Forms.Padding(5); + dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dv.DefaultCellStyle = dataGridViewCellStyle4; + this.dv.Dock = System.Windows.Forms.DockStyle.Fill; + this.dv.Location = new System.Drawing.Point(0, 136); + this.dv.MultiSelect = false; + this.dv.Name = "dv"; + this.dv.RowHeadersVisible = false; + this.dv.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect; + this.dv.Size = new System.Drawing.Size(502, 425); + this.dv.TabIndex = 1; + this.dv.DataError += new System.Windows.Forms.DataGridViewDataErrorEventHandler(this.dv_DataError); + // + // Column1 + // + this.Column1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells; + this.Column1.DataPropertyName = "idx"; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + this.Column1.DefaultCellStyle = dataGridViewCellStyle1; + this.Column1.HeaderText = "*"; + this.Column1.Name = "Column1"; + this.Column1.Width = 50; + // + // dvc_title + // + this.dvc_title.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; + this.dvc_title.DataPropertyName = "Title"; + dataGridViewCellStyle2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.dvc_title.DefaultCellStyle = dataGridViewCellStyle2; + this.dvc_title.HeaderText = "설명"; + this.dvc_title.Name = "dvc_title"; + // + // Code + // + this.Code.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.Code.DataPropertyName = "Code"; + dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + this.Code.DefaultCellStyle = dataGridViewCellStyle3; + this.Code.HeaderText = "Customer Code"; + this.Code.Name = "Code"; + // + // bs + // + this.bs.DataMember = "OPModel"; + this.bs.DataSource = this.ds1; + this.bs.CurrentChanged += new System.EventHandler(this.bs_CurrentChanged_1); + // + // ds1 + // + this.ds1.DataSetName = "DataSet1"; + this.ds1.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + // + // tmDisplay + // + this.tmDisplay.Interval = 500; + this.tmDisplay.Tick += new System.EventHandler(this.tmDisplay_Tick); + // + // checkBox31 + // + this.checkBox31.AutoSize = true; + this.checkBox31.DataBindings.Add(new System.Windows.Forms.Binding("CheckState", this.bs, "IgnoreOtherBarcode", true)); + this.checkBox31.Dock = System.Windows.Forms.DockStyle.Left; + this.checkBox31.Location = new System.Drawing.Point(409, 0); + this.checkBox31.Name = "checkBox31"; + this.checkBox31.Size = new System.Drawing.Size(148, 34); + this.checkBox31.TabIndex = 8; + this.checkBox31.Text = "미정의바코드제외"; + this.toolTip1.SetToolTip(this.checkBox31, "바코드룰에 없는 데이터를 제외 합니다.."); + this.checkBox31.UseVisualStyleBackColor = true; + // + // panel5 + // + this.panel5.Controls.Add(this.panel4); + this.panel5.Controls.Add(this.arLabel18); + this.panel5.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel5.Location = new System.Drawing.Point(1, 1); + this.panel5.Name = "panel5"; + this.panel5.Size = new System.Drawing.Size(1231, 689); + this.panel5.TabIndex = 3; + // + // panel4 + // + this.panel4.Controls.Add(this.dv); + this.panel4.Controls.Add(this.panel1); + this.panel4.Controls.Add(this.tableLayoutPanel1); + this.panel4.Controls.Add(this.panel3); + this.panel4.Controls.Add(this.toolStrip1); + this.panel4.Controls.Add(this.arLabel2); + this.panel4.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel4.Location = new System.Drawing.Point(0, 53); + this.panel4.Name = "panel4"; + this.panel4.Size = new System.Drawing.Size(1231, 636); + this.panel4.TabIndex = 3; + // + // panel1 + // + this.panel1.BackColor = System.Drawing.Color.LightGray; + this.panel1.Controls.Add(this.panel7); + this.panel1.Controls.Add(this.tabControl1); + this.panel1.Controls.Add(this.panel6); + this.panel1.Controls.Add(this.panel2); + this.panel1.Dock = System.Windows.Forms.DockStyle.Right; + this.panel1.Location = new System.Drawing.Point(502, 136); + this.panel1.Name = "panel1"; + this.panel1.Padding = new System.Windows.Forms.Padding(10); + this.panel1.Size = new System.Drawing.Size(729, 425); + this.panel1.TabIndex = 28; + // + // panel7 + // + this.panel7.BackColor = System.Drawing.Color.Gainsboro; + this.panel7.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.panel7.Controls.Add(this.chkSIDCHK); + this.panel7.Controls.Add(this.checkBox32); + this.panel7.Controls.Add(this.chkEnbCamera); + this.panel7.Dock = System.Windows.Forms.DockStyle.Top; + this.panel7.Location = new System.Drawing.Point(10, 82); + this.panel7.Name = "panel7"; + this.panel7.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.panel7.Size = new System.Drawing.Size(709, 36); + this.panel7.TabIndex = 29; + // + // chkSIDCHK + // + this.chkSIDCHK.AutoSize = true; + this.chkSIDCHK.DataBindings.Add(new System.Windows.Forms.Binding("CheckState", this.bs, "CheckSIDExsit", true)); + this.chkSIDCHK.Dock = System.Windows.Forms.DockStyle.Left; + this.chkSIDCHK.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.chkSIDCHK.ForeColor = System.Drawing.Color.Red; + this.chkSIDCHK.Location = new System.Drawing.Point(300, 0); + this.chkSIDCHK.Name = "chkSIDCHK"; + this.chkSIDCHK.Size = new System.Drawing.Size(117, 34); + this.chkSIDCHK.TabIndex = 16; + this.chkSIDCHK.Tag = "0"; + this.chkSIDCHK.Text = "SID존재확인"; + this.chkSIDCHK.UseVisualStyleBackColor = true; + // + // checkBox32 + // + this.checkBox32.AutoSize = true; + this.checkBox32.DataBindings.Add(new System.Windows.Forms.Binding("CheckState", this.bs, "DisablePrinter", true)); + this.checkBox32.Dock = System.Windows.Forms.DockStyle.Left; + this.checkBox32.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.checkBox32.ForeColor = System.Drawing.Color.Red; + this.checkBox32.Location = new System.Drawing.Point(147, 0); + this.checkBox32.Name = "checkBox32"; + this.checkBox32.Size = new System.Drawing.Size(153, 34); + this.checkBox32.TabIndex = 15; + this.checkBox32.Tag = "0"; + this.checkBox32.Text = "프린터 사용 안함"; + this.checkBox32.UseVisualStyleBackColor = true; + this.checkBox32.CheckedChanged += new System.EventHandler(this.checkBox32_CheckedChanged); + // + // chkEnbCamera + // + this.chkEnbCamera.AutoSize = true; + this.chkEnbCamera.DataBindings.Add(new System.Windows.Forms.Binding("CheckState", this.bs, "DisableCamera", true)); + this.chkEnbCamera.Dock = System.Windows.Forms.DockStyle.Left; + this.chkEnbCamera.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.chkEnbCamera.ForeColor = System.Drawing.Color.Red; + this.chkEnbCamera.Location = new System.Drawing.Point(10, 0); + this.chkEnbCamera.Name = "chkEnbCamera"; + this.chkEnbCamera.Size = new System.Drawing.Size(137, 34); + this.chkEnbCamera.TabIndex = 14; + this.chkEnbCamera.Tag = "0"; + this.chkEnbCamera.Text = "비전 사용 안함"; + this.chkEnbCamera.UseVisualStyleBackColor = true; + // + // tabControl1 + // + this.tabControl1.Controls.Add(this.tabPage1); + this.tabControl1.Controls.Add(this.tabPage2); + this.tabControl1.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tabControl1.Location = new System.Drawing.Point(10, 125); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(729, 294); + this.tabControl1.TabIndex = 27; + // + // tabPage1 + // + this.tabPage1.Controls.Add(this.chkApplySidInfo); + this.tabPage1.Controls.Add(this.chkApplyJobInfo); + this.tabPage1.Controls.Add(this.chkApplySIDConvData); + this.tabPage1.Controls.Add(this.chkUserConfirm); + this.tabPage1.Controls.Add(this.chkSIDConv); + this.tabPage1.Controls.Add(this.chkQtyServer); + this.tabPage1.Controls.Add(this.chkQtyMRQ); + this.tabPage1.Controls.Add(this.chkNew); + this.tabPage1.Location = new System.Drawing.Point(4, 26); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(10); + this.tabPage1.Size = new System.Drawing.Size(721, 264); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "옵션"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // chkApplySidInfo + // + this.chkApplySidInfo.AutoSize = true; + this.chkApplySidInfo.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.chkApplySidInfo.ForeColor = System.Drawing.Color.Gray; + this.chkApplySidInfo.Location = new System.Drawing.Point(13, 202); + this.chkApplySidInfo.Name = "chkApplySidInfo"; + this.chkApplySidInfo.Size = new System.Drawing.Size(419, 25); + this.chkApplySidInfo.TabIndex = 33; + this.chkApplySidInfo.Tag = "6"; + this.chkApplySidInfo.Text = "SID정보 테이블을 이용하여 데이터를 자동 기록합니다"; + this.chkApplySidInfo.UseVisualStyleBackColor = true; + this.chkApplySidInfo.CheckStateChanged += new System.EventHandler(this.chkApplySidInfo_CheckStateChanged); + // + // chkApplyJobInfo + // + this.chkApplyJobInfo.AutoSize = true; + this.chkApplyJobInfo.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.chkApplyJobInfo.ForeColor = System.Drawing.Color.Gray; + this.chkApplyJobInfo.Location = new System.Drawing.Point(13, 170); + this.chkApplyJobInfo.Name = "chkApplyJobInfo"; + this.chkApplyJobInfo.Size = new System.Drawing.Size(423, 25); + this.chkApplyJobInfo.TabIndex = 32; + this.chkApplyJobInfo.Tag = "5"; + this.chkApplyJobInfo.Text = "당일 작업 내역을 이용하여 데이터를 자동 기록 합니다"; + this.chkApplyJobInfo.UseVisualStyleBackColor = true; + this.chkApplyJobInfo.CheckStateChanged += new System.EventHandler(this.chkApplySidInfo_CheckStateChanged); + // + // chkApplySIDConvData + // + this.chkApplySIDConvData.AutoSize = true; + this.chkApplySIDConvData.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.chkApplySIDConvData.ForeColor = System.Drawing.Color.Gray; + this.chkApplySIDConvData.Location = new System.Drawing.Point(13, 234); + this.chkApplySIDConvData.Name = "chkApplySIDConvData"; + this.chkApplySIDConvData.Size = new System.Drawing.Size(425, 25); + this.chkApplySIDConvData.TabIndex = 31; + this.chkApplySIDConvData.Tag = "7"; + this.chkApplySIDConvData.Text = "SID변환 테이블을 이용하여 데이터를 자동 기록 합니다"; + this.chkApplySIDConvData.UseVisualStyleBackColor = true; + this.chkApplySIDConvData.CheckStateChanged += new System.EventHandler(this.chkApplySidInfo_CheckStateChanged); + // + // chkUserConfirm + // + this.chkUserConfirm.AutoSize = true; + this.chkUserConfirm.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.chkUserConfirm.ForeColor = System.Drawing.Color.Gray; + this.chkUserConfirm.Location = new System.Drawing.Point(13, 11); + this.chkUserConfirm.Name = "chkUserConfirm"; + this.chkUserConfirm.Size = new System.Drawing.Size(435, 25); + this.chkUserConfirm.TabIndex = 13; + this.chkUserConfirm.Tag = "0"; + this.chkUserConfirm.Text = "최종 인쇄값을 사용자가 확인 합니다 (자동진행 안됨)"; + this.chkUserConfirm.UseVisualStyleBackColor = true; + this.chkUserConfirm.CheckStateChanged += new System.EventHandler(this.chkApplySidInfo_CheckStateChanged); + // + // chkSIDConv + // + this.chkSIDConv.AutoSize = true; + this.chkSIDConv.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.chkSIDConv.ForeColor = System.Drawing.Color.Gray; + this.chkSIDConv.Location = new System.Drawing.Point(13, 138); + this.chkSIDConv.Name = "chkSIDConv"; + this.chkSIDConv.Size = new System.Drawing.Size(409, 25); + this.chkSIDConv.TabIndex = 28; + this.chkSIDConv.Tag = "4"; + this.chkSIDConv.Text = "SID변환 테이블을 이용하여 SID값을 전환 합니다"; + this.chkSIDConv.UseVisualStyleBackColor = true; + this.chkSIDConv.CheckStateChanged += new System.EventHandler(this.chkApplySidInfo_CheckStateChanged); + // + // chkQtyServer + // + this.chkQtyServer.AutoSize = true; + this.chkQtyServer.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.chkQtyServer.ForeColor = System.Drawing.Color.Gray; + this.chkQtyServer.Location = new System.Drawing.Point(13, 43); + this.chkQtyServer.Name = "chkQtyServer"; + this.chkQtyServer.Size = new System.Drawing.Size(444, 25); + this.chkQtyServer.TabIndex = 13; + this.chkQtyServer.Tag = "1"; + this.chkQtyServer.Text = "Reel ID 를 기준으로 서버의 수량을 조회하여 사용 합니다"; + this.chkQtyServer.UseVisualStyleBackColor = true; + this.chkQtyServer.CheckStateChanged += new System.EventHandler(this.chkApplySidInfo_CheckStateChanged); + // + // chkQtyMRQ + // + this.chkQtyMRQ.AutoSize = true; + this.chkQtyMRQ.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.chkQtyMRQ.ForeColor = System.Drawing.Color.Gray; + this.chkQtyMRQ.Location = new System.Drawing.Point(13, 106); + this.chkQtyMRQ.Name = "chkQtyMRQ"; + this.chkQtyMRQ.Size = new System.Drawing.Size(405, 25); + this.chkQtyMRQ.TabIndex = 27; + this.chkQtyMRQ.Tag = "3"; + this.chkQtyMRQ.Text = "수량을 직접 입력 합니다.(RQ가 읽혔다면 자동 진행)"; + this.chkQtyMRQ.UseVisualStyleBackColor = true; + this.chkQtyMRQ.CheckStateChanged += new System.EventHandler(this.chkApplySidInfo_CheckStateChanged); + // + // chkNew + // + this.chkNew.AutoSize = true; + this.chkNew.Font = new System.Drawing.Font("맑은 고딕", 11F); + this.chkNew.ForeColor = System.Drawing.Color.Gray; + this.chkNew.Location = new System.Drawing.Point(13, 75); + this.chkNew.Name = "chkNew"; + this.chkNew.Size = new System.Drawing.Size(247, 24); + this.chkNew.TabIndex = 24; + this.chkNew.Tag = "2"; + this.chkNew.Text = "Reel ID 를 신규로 생성 합니다"; + this.chkNew.UseVisualStyleBackColor = true; + this.chkNew.CheckStateChanged += new System.EventHandler(this.chkApplySidInfo_CheckStateChanged); + // + // tabPage2 + // + this.tabPage2.Controls.Add(this.GrpSidConvData); + this.tabPage2.Controls.Add(this.grpapplyjob); + this.tabPage2.Controls.Add(this.grpApplySidinfo); + this.tabPage2.Location = new System.Drawing.Point(4, 26); + this.tabPage2.Name = "tabPage2"; + this.tabPage2.Padding = new System.Windows.Forms.Padding(10); + this.tabPage2.Size = new System.Drawing.Size(721, 264); + this.tabPage2.TabIndex = 1; + this.tabPage2.Text = "옵션 데이터"; + this.tabPage2.UseVisualStyleBackColor = true; + // + // GrpSidConvData + // + this.GrpSidConvData.Controls.Add(this.chkSave2); + this.GrpSidConvData.Controls.Add(this.checkBox34); + this.GrpSidConvData.Controls.Add(this.checkBox35); + this.GrpSidConvData.Controls.Add(this.checkBox30); + this.GrpSidConvData.Controls.Add(this.checkBox2); + this.GrpSidConvData.Controls.Add(this.label6); + this.GrpSidConvData.Controls.Add(this.label7); + this.GrpSidConvData.Controls.Add(this.checkBox3); + this.GrpSidConvData.Controls.Add(this.checkBox20); + this.GrpSidConvData.Controls.Add(this.checkBox21); + this.GrpSidConvData.Controls.Add(this.checkBox22); + this.GrpSidConvData.Controls.Add(this.checkBox23); + this.GrpSidConvData.Controls.Add(this.checkBox24); + this.GrpSidConvData.Controls.Add(this.checkBox25); + this.GrpSidConvData.Dock = System.Windows.Forms.DockStyle.Top; + this.GrpSidConvData.Font = new System.Drawing.Font("맑은 고딕", 10F); + this.GrpSidConvData.Location = new System.Drawing.Point(10, 174); + this.GrpSidConvData.Name = "GrpSidConvData"; + this.GrpSidConvData.Size = new System.Drawing.Size(701, 82); + this.GrpSidConvData.TabIndex = 34; + this.GrpSidConvData.TabStop = false; + this.GrpSidConvData.Text = "SID변환 테이블 서버적용"; + // + // chkSave2 + // + this.chkSave2.AutoSize = true; + this.chkSave2.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.chkSave2.ForeColor = System.Drawing.Color.Tomato; + this.chkSave2.Location = new System.Drawing.Point(431, 51); + this.chkSave2.Name = "chkSave2"; + this.chkSave2.Size = new System.Drawing.Size(230, 23); + this.chkSave2.TabIndex = 39; + this.chkSave2.Tag = "11"; + this.chkSave2.Text = "변경 정보를 서버에 기록 합니다"; + this.chkSave2.UseVisualStyleBackColor = true; + // + // checkBox34 + // + this.checkBox34.AutoSize = true; + this.checkBox34.ForeColor = System.Drawing.Color.Green; + this.checkBox34.Location = new System.Drawing.Point(617, 25); + this.checkBox34.Name = "checkBox34"; + this.checkBox34.Size = new System.Drawing.Size(86, 23); + this.checkBox34.TabIndex = 38; + this.checkBox34.Tag = "10"; + this.checkBox34.Text = "Qty(Max)"; + this.checkBox34.UseVisualStyleBackColor = true; + // + // checkBox35 + // + this.checkBox35.AutoSize = true; + this.checkBox35.ForeColor = System.Drawing.Color.Green; + this.checkBox35.Location = new System.Drawing.Point(548, 25); + this.checkBox35.Name = "checkBox35"; + this.checkBox35.Size = new System.Drawing.Size(63, 23); + this.checkBox35.TabIndex = 37; + this.checkBox35.Tag = "9"; + this.checkBox35.Text = "Batch"; + this.checkBox35.UseVisualStyleBackColor = true; + // + // checkBox30 + // + this.checkBox30.AutoSize = true; + this.checkBox30.ForeColor = System.Drawing.Color.Blue; + this.checkBox30.Location = new System.Drawing.Point(311, 50); + this.checkBox30.Name = "checkBox30"; + this.checkBox30.Size = new System.Drawing.Size(62, 23); + this.checkBox30.TabIndex = 32; + this.checkBox30.Tag = "8"; + this.checkBox30.Text = "VLOT"; + this.checkBox30.UseVisualStyleBackColor = true; + // + // checkBox2 + // + this.checkBox2.AutoSize = true; + this.checkBox2.Location = new System.Drawing.Point(431, 25); + this.checkBox2.Name = "checkBox2"; + this.checkBox2.Size = new System.Drawing.Size(111, 23); + this.checkBox2.TabIndex = 31; + this.checkBox2.Tag = "4"; + this.checkBox2.Text = "Print Position"; + this.checkBox2.UseVisualStyleBackColor = true; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Font = new System.Drawing.Font("맑은 고딕", 9F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic)))); + this.label6.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.label6.Location = new System.Drawing.Point(6, 54); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(55, 15); + this.label6.TabIndex = 29; + this.label6.Text = "조회대상"; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Font = new System.Drawing.Font("맑은 고딕", 9F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic)))); + this.label7.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.label7.Location = new System.Drawing.Point(7, 28); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(55, 15); + this.label7.TabIndex = 29; + this.label7.Text = "적용대상"; + // + // checkBox3 + // + this.checkBox3.AutoSize = true; + this.checkBox3.Location = new System.Drawing.Point(311, 24); + this.checkBox3.Name = "checkBox3"; + this.checkBox3.Size = new System.Drawing.Size(114, 23); + this.checkBox3.TabIndex = 28; + this.checkBox3.Tag = "3"; + this.checkBox3.Text = "Vender Name"; + this.checkBox3.UseVisualStyleBackColor = true; + // + // checkBox20 + // + this.checkBox20.AutoSize = true; + this.checkBox20.ForeColor = System.Drawing.Color.Blue; + this.checkBox20.Location = new System.Drawing.Point(255, 50); + this.checkBox20.Name = "checkBox20"; + this.checkBox20.Size = new System.Drawing.Size(50, 23); + this.checkBox20.TabIndex = 27; + this.checkBox20.Tag = "7"; + this.checkBox20.Text = "SID"; + this.checkBox20.UseVisualStyleBackColor = true; + // + // checkBox21 + // + this.checkBox21.AutoSize = true; + this.checkBox21.ForeColor = System.Drawing.Color.Blue; + this.checkBox21.Location = new System.Drawing.Point(156, 50); + this.checkBox21.Name = "checkBox21"; + this.checkBox21.Size = new System.Drawing.Size(93, 23); + this.checkBox21.TabIndex = 25; + this.checkBox21.Tag = "6"; + this.checkBox21.Text = "Cust Code"; + this.checkBox21.UseVisualStyleBackColor = true; + // + // checkBox22 + // + this.checkBox22.AutoSize = true; + this.checkBox22.ForeColor = System.Drawing.Color.Blue; + this.checkBox22.Location = new System.Drawing.Point(73, 50); + this.checkBox22.Name = "checkBox22"; + this.checkBox22.Size = new System.Drawing.Size(77, 23); + this.checkBox22.TabIndex = 25; + this.checkBox22.Tag = "5"; + this.checkBox22.Text = "Part No"; + this.checkBox22.UseVisualStyleBackColor = true; + // + // checkBox23 + // + this.checkBox23.AutoSize = true; + this.checkBox23.Location = new System.Drawing.Point(255, 24); + this.checkBox23.Name = "checkBox23"; + this.checkBox23.Size = new System.Drawing.Size(50, 23); + this.checkBox23.TabIndex = 26; + this.checkBox23.Tag = "2"; + this.checkBox23.Text = "SID"; + this.checkBox23.UseVisualStyleBackColor = true; + // + // checkBox24 + // + this.checkBox24.AutoSize = true; + this.checkBox24.Location = new System.Drawing.Point(156, 24); + this.checkBox24.Name = "checkBox24"; + this.checkBox24.Size = new System.Drawing.Size(93, 23); + this.checkBox24.TabIndex = 25; + this.checkBox24.Tag = "1"; + this.checkBox24.Text = "Cust Code"; + this.checkBox24.UseVisualStyleBackColor = true; + // + // checkBox25 + // + this.checkBox25.AutoSize = true; + this.checkBox25.Location = new System.Drawing.Point(73, 24); + this.checkBox25.Name = "checkBox25"; + this.checkBox25.Size = new System.Drawing.Size(77, 23); + this.checkBox25.TabIndex = 25; + this.checkBox25.Tag = "0"; + this.checkBox25.Text = "Part No"; + this.checkBox25.UseVisualStyleBackColor = true; + // + // grpapplyjob + // + this.grpapplyjob.Controls.Add(this.checkBox29); + this.grpapplyjob.Controls.Add(this.checkBox18); + this.grpapplyjob.Controls.Add(this.label3); + this.grpapplyjob.Controls.Add(this.label2); + this.grpapplyjob.Controls.Add(this.checkBox10); + this.grpapplyjob.Controls.Add(this.checkBox9); + this.grpapplyjob.Controls.Add(this.checkBox6); + this.grpapplyjob.Controls.Add(this.checkBox7); + this.grpapplyjob.Controls.Add(this.checkBox8); + this.grpapplyjob.Controls.Add(this.checkBox5); + this.grpapplyjob.Controls.Add(this.checkBox4); + this.grpapplyjob.Dock = System.Windows.Forms.DockStyle.Top; + this.grpapplyjob.Enabled = false; + this.grpapplyjob.Font = new System.Drawing.Font("맑은 고딕", 10F); + this.grpapplyjob.Location = new System.Drawing.Point(10, 92); + this.grpapplyjob.Name = "grpapplyjob"; + this.grpapplyjob.Size = new System.Drawing.Size(701, 82); + this.grpapplyjob.TabIndex = 33; + this.grpapplyjob.TabStop = false; + this.grpapplyjob.Text = "당일작업 적용"; + // + // checkBox29 + // + this.checkBox29.AutoSize = true; + this.checkBox29.ForeColor = System.Drawing.Color.Blue; + this.checkBox29.Location = new System.Drawing.Point(311, 51); + this.checkBox29.Name = "checkBox29"; + this.checkBox29.Size = new System.Drawing.Size(62, 23); + this.checkBox29.TabIndex = 31; + this.checkBox29.Tag = "8"; + this.checkBox29.Text = "VLOT"; + this.checkBox29.UseVisualStyleBackColor = true; + // + // checkBox18 + // + this.checkBox18.AutoSize = true; + this.checkBox18.Location = new System.Drawing.Point(431, 24); + this.checkBox18.Name = "checkBox18"; + this.checkBox18.Size = new System.Drawing.Size(111, 23); + this.checkBox18.TabIndex = 30; + this.checkBox18.Tag = "4"; + this.checkBox18.Text = "Print Position"; + this.checkBox18.UseVisualStyleBackColor = true; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("맑은 고딕", 9F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic)))); + this.label3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.label3.Location = new System.Drawing.Point(6, 54); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(55, 15); + this.label3.TabIndex = 29; + this.label3.Text = "조회대상"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("맑은 고딕", 9F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic)))); + this.label2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.label2.Location = new System.Drawing.Point(7, 28); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(55, 15); + this.label2.TabIndex = 29; + this.label2.Text = "적용대상"; + // + // checkBox10 + // + this.checkBox10.AutoSize = true; + this.checkBox10.Location = new System.Drawing.Point(311, 24); + this.checkBox10.Name = "checkBox10"; + this.checkBox10.Size = new System.Drawing.Size(114, 23); + this.checkBox10.TabIndex = 28; + this.checkBox10.Tag = "3"; + this.checkBox10.Text = "Vender Name"; + this.checkBox10.UseVisualStyleBackColor = true; + // + // checkBox9 + // + this.checkBox9.AutoSize = true; + this.checkBox9.ForeColor = System.Drawing.Color.Blue; + this.checkBox9.Location = new System.Drawing.Point(255, 50); + this.checkBox9.Name = "checkBox9"; + this.checkBox9.Size = new System.Drawing.Size(50, 23); + this.checkBox9.TabIndex = 27; + this.checkBox9.Tag = "7"; + this.checkBox9.Text = "SID"; + this.checkBox9.UseVisualStyleBackColor = true; + // + // checkBox6 + // + this.checkBox6.AutoSize = true; + this.checkBox6.ForeColor = System.Drawing.Color.Blue; + this.checkBox6.Location = new System.Drawing.Point(156, 50); + this.checkBox6.Name = "checkBox6"; + this.checkBox6.Size = new System.Drawing.Size(93, 23); + this.checkBox6.TabIndex = 25; + this.checkBox6.Tag = "6"; + this.checkBox6.Text = "Cust Code"; + this.checkBox6.UseVisualStyleBackColor = true; + // + // checkBox7 + // + this.checkBox7.AutoSize = true; + this.checkBox7.ForeColor = System.Drawing.Color.Blue; + this.checkBox7.Location = new System.Drawing.Point(73, 50); + this.checkBox7.Name = "checkBox7"; + this.checkBox7.Size = new System.Drawing.Size(77, 23); + this.checkBox7.TabIndex = 25; + this.checkBox7.Tag = "5"; + this.checkBox7.Text = "Part No"; + this.checkBox7.UseVisualStyleBackColor = true; + // + // checkBox8 + // + this.checkBox8.AutoSize = true; + this.checkBox8.Location = new System.Drawing.Point(255, 24); + this.checkBox8.Name = "checkBox8"; + this.checkBox8.Size = new System.Drawing.Size(50, 23); + this.checkBox8.TabIndex = 26; + this.checkBox8.Tag = "2"; + this.checkBox8.Text = "SID"; + this.checkBox8.UseVisualStyleBackColor = true; + // + // checkBox5 + // + this.checkBox5.AutoSize = true; + this.checkBox5.Location = new System.Drawing.Point(156, 24); + this.checkBox5.Name = "checkBox5"; + this.checkBox5.Size = new System.Drawing.Size(93, 23); + this.checkBox5.TabIndex = 25; + this.checkBox5.Tag = "1"; + this.checkBox5.Text = "Cust Code"; + this.checkBox5.UseVisualStyleBackColor = true; + // + // checkBox4 + // + this.checkBox4.AutoSize = true; + this.checkBox4.Location = new System.Drawing.Point(73, 24); + this.checkBox4.Name = "checkBox4"; + this.checkBox4.Size = new System.Drawing.Size(77, 23); + this.checkBox4.TabIndex = 25; + this.checkBox4.Tag = "0"; + this.checkBox4.Text = "Part No"; + this.checkBox4.UseVisualStyleBackColor = true; + // + // grpApplySidinfo + // + this.grpApplySidinfo.Controls.Add(this.checkBox33); + this.grpApplySidinfo.Controls.Add(this.checkBox28); + this.grpApplySidinfo.Controls.Add(this.checkBox26); + this.grpApplySidinfo.Controls.Add(this.checkBox27); + this.grpApplySidinfo.Controls.Add(this.chkSave1); + this.grpApplySidinfo.Controls.Add(this.checkBox19); + this.grpApplySidinfo.Controls.Add(this.label4); + this.grpApplySidinfo.Controls.Add(this.label5); + this.grpApplySidinfo.Controls.Add(this.checkBox11); + this.grpApplySidinfo.Controls.Add(this.checkBox12); + this.grpApplySidinfo.Controls.Add(this.checkBox13); + this.grpApplySidinfo.Controls.Add(this.checkBox14); + this.grpApplySidinfo.Controls.Add(this.checkBox15); + this.grpApplySidinfo.Controls.Add(this.checkBox16); + this.grpApplySidinfo.Controls.Add(this.checkBox17); + this.grpApplySidinfo.Dock = System.Windows.Forms.DockStyle.Top; + this.grpApplySidinfo.Enabled = false; + this.grpApplySidinfo.Font = new System.Drawing.Font("맑은 고딕", 10F); + this.grpApplySidinfo.Location = new System.Drawing.Point(10, 10); + this.grpApplySidinfo.Name = "grpApplySidinfo"; + this.grpApplySidinfo.Size = new System.Drawing.Size(701, 82); + this.grpApplySidinfo.TabIndex = 33; + this.grpApplySidinfo.TabStop = false; + this.grpApplySidinfo.Text = "SID정보 적용"; + // + // checkBox33 + // + this.checkBox33.AutoSize = true; + this.checkBox33.ForeColor = System.Drawing.Color.Blue; + this.checkBox33.Location = new System.Drawing.Point(379, 50); + this.checkBox33.Name = "checkBox33"; + this.checkBox33.Size = new System.Drawing.Size(50, 23); + this.checkBox33.TabIndex = 38; + this.checkBox33.Tag = "12"; + this.checkBox33.Text = "MC"; + this.checkBox33.UseVisualStyleBackColor = true; + // + // checkBox28 + // + this.checkBox28.AutoSize = true; + this.checkBox28.ForeColor = System.Drawing.Color.Blue; + this.checkBox28.Location = new System.Drawing.Point(311, 51); + this.checkBox28.Name = "checkBox28"; + this.checkBox28.Size = new System.Drawing.Size(62, 23); + this.checkBox28.TabIndex = 37; + this.checkBox28.Tag = "11"; + this.checkBox28.Text = "VLOT"; + this.checkBox28.UseVisualStyleBackColor = true; + // + // checkBox26 + // + this.checkBox26.AutoSize = true; + this.checkBox26.ForeColor = System.Drawing.Color.Green; + this.checkBox26.Location = new System.Drawing.Point(617, 24); + this.checkBox26.Name = "checkBox26"; + this.checkBox26.Size = new System.Drawing.Size(86, 23); + this.checkBox26.TabIndex = 36; + this.checkBox26.Tag = "10"; + this.checkBox26.Text = "Qty(Max)"; + this.checkBox26.UseVisualStyleBackColor = true; + // + // checkBox27 + // + this.checkBox27.AutoSize = true; + this.checkBox27.ForeColor = System.Drawing.Color.Green; + this.checkBox27.Location = new System.Drawing.Point(548, 24); + this.checkBox27.Name = "checkBox27"; + this.checkBox27.Size = new System.Drawing.Size(63, 23); + this.checkBox27.TabIndex = 35; + this.checkBox27.Tag = "9"; + this.checkBox27.Text = "Batch"; + this.checkBox27.UseVisualStyleBackColor = true; + // + // chkSave1 + // + this.chkSave1.AutoSize = true; + this.chkSave1.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.chkSave1.ForeColor = System.Drawing.Color.Tomato; + this.chkSave1.Location = new System.Drawing.Point(431, 50); + this.chkSave1.Name = "chkSave1"; + this.chkSave1.Size = new System.Drawing.Size(230, 23); + this.chkSave1.TabIndex = 33; + this.chkSave1.Tag = "8"; + this.chkSave1.Text = "변경 정보를 서버에 기록 합니다"; + this.chkSave1.UseVisualStyleBackColor = true; + // + // checkBox19 + // + this.checkBox19.AutoSize = true; + this.checkBox19.Location = new System.Drawing.Point(431, 25); + this.checkBox19.Name = "checkBox19"; + this.checkBox19.Size = new System.Drawing.Size(111, 23); + this.checkBox19.TabIndex = 31; + this.checkBox19.Tag = "4"; + this.checkBox19.Text = "Print Position"; + this.checkBox19.UseVisualStyleBackColor = true; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Font = new System.Drawing.Font("맑은 고딕", 9F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic)))); + this.label4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.label4.Location = new System.Drawing.Point(6, 54); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(55, 15); + this.label4.TabIndex = 29; + this.label4.Text = "조회대상"; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Font = new System.Drawing.Font("맑은 고딕", 9F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic)))); + this.label5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.label5.Location = new System.Drawing.Point(7, 28); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(55, 15); + this.label5.TabIndex = 29; + this.label5.Text = "적용대상"; + // + // checkBox11 + // + this.checkBox11.AutoSize = true; + this.checkBox11.Location = new System.Drawing.Point(311, 24); + this.checkBox11.Name = "checkBox11"; + this.checkBox11.Size = new System.Drawing.Size(114, 23); + this.checkBox11.TabIndex = 28; + this.checkBox11.Tag = "3"; + this.checkBox11.Text = "Vender Name"; + this.checkBox11.UseVisualStyleBackColor = true; + // + // checkBox12 + // + this.checkBox12.AutoSize = true; + this.checkBox12.ForeColor = System.Drawing.Color.Blue; + this.checkBox12.Location = new System.Drawing.Point(255, 50); + this.checkBox12.Name = "checkBox12"; + this.checkBox12.Size = new System.Drawing.Size(50, 23); + this.checkBox12.TabIndex = 27; + this.checkBox12.Tag = "7"; + this.checkBox12.Text = "SID"; + this.checkBox12.UseVisualStyleBackColor = true; + // + // checkBox13 + // + this.checkBox13.AutoSize = true; + this.checkBox13.ForeColor = System.Drawing.Color.Blue; + this.checkBox13.Location = new System.Drawing.Point(156, 50); + this.checkBox13.Name = "checkBox13"; + this.checkBox13.Size = new System.Drawing.Size(93, 23); + this.checkBox13.TabIndex = 25; + this.checkBox13.Tag = "6"; + this.checkBox13.Text = "Cust Code"; + this.checkBox13.UseVisualStyleBackColor = true; + // + // checkBox14 + // + this.checkBox14.AutoSize = true; + this.checkBox14.ForeColor = System.Drawing.Color.Blue; + this.checkBox14.Location = new System.Drawing.Point(73, 50); + this.checkBox14.Name = "checkBox14"; + this.checkBox14.Size = new System.Drawing.Size(77, 23); + this.checkBox14.TabIndex = 25; + this.checkBox14.Tag = "5"; + this.checkBox14.Text = "Part No"; + this.checkBox14.UseVisualStyleBackColor = true; + // + // checkBox15 + // + this.checkBox15.AutoSize = true; + this.checkBox15.Location = new System.Drawing.Point(255, 24); + this.checkBox15.Name = "checkBox15"; + this.checkBox15.Size = new System.Drawing.Size(50, 23); + this.checkBox15.TabIndex = 26; + this.checkBox15.Tag = "2"; + this.checkBox15.Text = "SID"; + this.checkBox15.UseVisualStyleBackColor = true; + // + // checkBox16 + // + this.checkBox16.AutoSize = true; + this.checkBox16.Location = new System.Drawing.Point(156, 24); + this.checkBox16.Name = "checkBox16"; + this.checkBox16.Size = new System.Drawing.Size(93, 23); + this.checkBox16.TabIndex = 25; + this.checkBox16.Tag = "1"; + this.checkBox16.Text = "Cust Code"; + this.checkBox16.UseVisualStyleBackColor = true; + // + // checkBox17 + // + this.checkBox17.AutoSize = true; + this.checkBox17.Location = new System.Drawing.Point(73, 24); + this.checkBox17.Name = "checkBox17"; + this.checkBox17.Size = new System.Drawing.Size(77, 23); + this.checkBox17.TabIndex = 25; + this.checkBox17.Tag = "0"; + this.checkBox17.Text = "Part No"; + this.checkBox17.UseVisualStyleBackColor = true; + // + // panel6 + // + this.panel6.BackColor = System.Drawing.Color.Gainsboro; + this.panel6.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.panel6.Controls.Add(this.tbDefDate); + this.panel6.Controls.Add(this.label18); + this.panel6.Controls.Add(this.tbDefVname); + this.panel6.Controls.Add(this.label17); + this.panel6.Controls.Add(this.label16); + this.panel6.Dock = System.Windows.Forms.DockStyle.Top; + this.panel6.Location = new System.Drawing.Point(10, 46); + this.panel6.Name = "panel6"; + this.panel6.Size = new System.Drawing.Size(709, 36); + this.panel6.TabIndex = 28; + // + // tbDefDate + // + this.tbDefDate.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.tbDefDate.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bs, "Def_MFG", true)); + this.tbDefDate.Dock = System.Windows.Forms.DockStyle.Left; + this.tbDefDate.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tbDefDate.Location = new System.Drawing.Point(418, 0); + this.tbDefDate.Name = "tbDefDate"; + this.tbDefDate.Size = new System.Drawing.Size(136, 34); + this.tbDefDate.TabIndex = 11; + this.tbDefDate.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // label18 + // + this.label18.Dock = System.Windows.Forms.DockStyle.Left; + this.label18.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label18.Location = new System.Drawing.Point(324, 0); + this.label18.Name = "label18"; + this.label18.Size = new System.Drawing.Size(94, 34); + this.label18.TabIndex = 10; + this.label18.Text = "MFG Date"; + this.label18.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // tbDefVname + // + this.tbDefVname.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.tbDefVname.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bs, "Def_VName", true)); + this.tbDefVname.Dock = System.Windows.Forms.DockStyle.Left; + this.tbDefVname.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tbDefVname.Location = new System.Drawing.Point(188, 0); + this.tbDefVname.Name = "tbDefVname"; + this.tbDefVname.Size = new System.Drawing.Size(136, 34); + this.tbDefVname.TabIndex = 8; + this.tbDefVname.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // label17 + // + this.label17.Dock = System.Windows.Forms.DockStyle.Left; + this.label17.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label17.Location = new System.Drawing.Point(94, 0); + this.label17.Name = "label17"; + this.label17.Size = new System.Drawing.Size(94, 34); + this.label17.TabIndex = 9; + this.label17.Text = "V.Name"; + this.label17.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label16 + // + this.label16.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.label16.Dock = System.Windows.Forms.DockStyle.Left; + this.label16.Location = new System.Drawing.Point(0, 0); + this.label16.Name = "label16"; + this.label16.Size = new System.Drawing.Size(94, 34); + this.label16.TabIndex = 7; + this.label16.Text = "고정값"; + this.label16.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel2 + // + this.panel2.BackColor = System.Drawing.Color.Gainsboro; + this.panel2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.panel2.Controls.Add(this.checkBox31); + this.panel2.Controls.Add(this.bCD_DMCheckBox); + this.panel2.Controls.Add(this.bCD_QRCheckBox); + this.panel2.Controls.Add(this.bCD_1DCheckBox); + this.panel2.Controls.Add(this.label1); + this.panel2.Dock = System.Windows.Forms.DockStyle.Top; + this.panel2.Location = new System.Drawing.Point(10, 10); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(709, 36); + this.panel2.TabIndex = 6; + // + // bCD_DMCheckBox + // + this.bCD_DMCheckBox.AutoSize = true; + this.bCD_DMCheckBox.DataBindings.Add(new System.Windows.Forms.Binding("CheckState", this.bs, "BCD_DM", true)); + this.bCD_DMCheckBox.Dock = System.Windows.Forms.DockStyle.Left; + this.bCD_DMCheckBox.Location = new System.Drawing.Point(301, 0); + this.bCD_DMCheckBox.Name = "bCD_DMCheckBox"; + this.bCD_DMCheckBox.Size = new System.Drawing.Size(108, 34); + this.bCD_DMCheckBox.TabIndex = 5; + this.bCD_DMCheckBox.Text = "Data Matrix"; + this.bCD_DMCheckBox.UseVisualStyleBackColor = true; + // + // bCD_QRCheckBox + // + this.bCD_QRCheckBox.AutoSize = true; + this.bCD_QRCheckBox.DataBindings.Add(new System.Windows.Forms.Binding("CheckState", this.bs, "BCD_QR", true)); + this.bCD_QRCheckBox.Dock = System.Windows.Forms.DockStyle.Left; + this.bCD_QRCheckBox.Location = new System.Drawing.Point(211, 0); + this.bCD_QRCheckBox.Name = "bCD_QRCheckBox"; + this.bCD_QRCheckBox.Size = new System.Drawing.Size(90, 34); + this.bCD_QRCheckBox.TabIndex = 3; + this.bCD_QRCheckBox.Text = "QR Code"; + this.bCD_QRCheckBox.UseVisualStyleBackColor = true; + // + // bCD_1DCheckBox + // + this.bCD_1DCheckBox.AutoSize = true; + this.bCD_1DCheckBox.DataBindings.Add(new System.Windows.Forms.Binding("CheckState", this.bs, "BCD_1D", true)); + this.bCD_1DCheckBox.Dock = System.Windows.Forms.DockStyle.Left; + this.bCD_1DCheckBox.Location = new System.Drawing.Point(94, 0); + this.bCD_1DCheckBox.Name = "bCD_1DCheckBox"; + this.bCD_1DCheckBox.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.bCD_1DCheckBox.Size = new System.Drawing.Size(117, 34); + this.bCD_1DCheckBox.TabIndex = 1; + this.bCD_1DCheckBox.Text = "1D Barcode"; + this.bCD_1DCheckBox.UseVisualStyleBackColor = true; + // + // label1 + // + this.label1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.label1.Dock = System.Windows.Forms.DockStyle.Left; + this.label1.Location = new System.Drawing.Point(0, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(94, 34); + this.label1.TabIndex = 6; + this.label1.Text = "허용바코드"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 2; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.Controls.Add(this.btConvOk, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.btConvOff, 1, 0); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Top; + this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 36); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 1; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(1231, 100); + this.tableLayoutPanel1.TabIndex = 31; + // + // btConvOk + // + this.btConvOk.Dock = System.Windows.Forms.DockStyle.Fill; + this.btConvOk.Font = new System.Drawing.Font("맑은 고딕", 27.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btConvOk.Location = new System.Drawing.Point(3, 3); + this.btConvOk.Name = "btConvOk"; + this.btConvOk.Size = new System.Drawing.Size(609, 94); + this.btConvOk.TabIndex = 0; + this.btConvOk.Text = "컨베이어 ON"; + this.btConvOk.UseVisualStyleBackColor = true; + this.btConvOk.Click += new System.EventHandler(this.btConvOk_Click); + // + // btConvOff + // + this.btConvOff.Dock = System.Windows.Forms.DockStyle.Fill; + this.btConvOff.Font = new System.Drawing.Font("맑은 고딕", 27.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btConvOff.Location = new System.Drawing.Point(618, 3); + this.btConvOff.Name = "btConvOff"; + this.btConvOff.Size = new System.Drawing.Size(610, 94); + this.btConvOff.TabIndex = 0; + this.btConvOff.Text = "컨베이어 OFF"; + this.btConvOff.UseVisualStyleBackColor = true; + this.btConvOff.Click += new System.EventHandler(this.btConvOff_Click); + // + // panel3 + // + this.panel3.Controls.Add(this.label15); + this.panel3.Controls.Add(this.label14); + this.panel3.Controls.Add(this.label13); + this.panel3.Controls.Add(this.label12); + this.panel3.Controls.Add(this.label11); + this.panel3.Controls.Add(this.label10); + this.panel3.Controls.Add(this.label9); + this.panel3.Controls.Add(this.label8); + this.panel3.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel3.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.panel3.Location = new System.Drawing.Point(0, 561); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(1231, 20); + this.panel3.TabIndex = 29; + // + // label15 + // + this.label15.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bs, "vSIDConv", true)); + this.label15.Dock = System.Windows.Forms.DockStyle.Left; + this.label15.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label15.Location = new System.Drawing.Point(400, 0); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(50, 20); + this.label15.TabIndex = 7; + this.label15.Text = "--"; + this.label15.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label14 + // + this.label14.Dock = System.Windows.Forms.DockStyle.Left; + this.label14.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.label14.Location = new System.Drawing.Point(300, 0); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(100, 20); + this.label14.TabIndex = 6; + this.label14.Text = "INFO(CONV)"; + this.label14.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label13 + // + this.label13.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bs, "vJobInfo", true)); + this.label13.Dock = System.Windows.Forms.DockStyle.Left; + this.label13.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label13.Location = new System.Drawing.Point(250, 0); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(50, 20); + this.label13.TabIndex = 5; + this.label13.Text = "--"; + this.label13.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label12 + // + this.label12.Dock = System.Windows.Forms.DockStyle.Left; + this.label12.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.label12.Location = new System.Drawing.Point(200, 0); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(50, 20); + this.label12.TabIndex = 4; + this.label12.Text = "JOB"; + this.label12.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label11 + // + this.label11.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bs, "vSIDInfo", true)); + this.label11.Dock = System.Windows.Forms.DockStyle.Left; + this.label11.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label11.Location = new System.Drawing.Point(150, 0); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(50, 20); + this.label11.TabIndex = 3; + this.label11.Text = "--"; + this.label11.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label10 + // + this.label10.Dock = System.Windows.Forms.DockStyle.Left; + this.label10.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.label10.Location = new System.Drawing.Point(100, 0); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(50, 20); + this.label10.TabIndex = 2; + this.label10.Text = "INFO"; + this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label9 + // + this.label9.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bs, "vOption", true)); + this.label9.Dock = System.Windows.Forms.DockStyle.Left; + this.label9.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label9.Location = new System.Drawing.Point(50, 0); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(50, 20); + this.label9.TabIndex = 1; + this.label9.Text = "--"; + this.label9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label8 + // + this.label8.Dock = System.Windows.Forms.DockStyle.Left; + this.label8.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.label8.Location = new System.Drawing.Point(0, 0); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(50, 20); + this.label8.TabIndex = 0; + this.label8.Text = "OPT"; + this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // toolStrip1 + // + this.toolStrip1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.toolStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden; + this.toolStrip1.ImageScalingSize = new System.Drawing.Size(48, 48); + this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.btAdd, + this.btDel, + this.btSave, + this.btCopy, + this.toolStripButton10, + this.toolStripSeparator1}); + this.toolStrip1.Location = new System.Drawing.Point(0, 581); + this.toolStrip1.Name = "toolStrip1"; + this.toolStrip1.Size = new System.Drawing.Size(1231, 55); + this.toolStrip1.TabIndex = 8; + this.toolStrip1.Text = "toolStrip1"; + // + // btAdd + // + this.btAdd.Image = global::Project.Properties.Resources.icons8_add_40; + this.btAdd.ImageTransparentColor = System.Drawing.Color.Magenta; + this.btAdd.Name = "btAdd"; + this.btAdd.Size = new System.Drawing.Size(99, 52); + this.btAdd.Text = "추가(&A)"; + this.btAdd.Click += new System.EventHandler(this.toolStripButton4_Click); + // + // btDel + // + this.btDel.Image = global::Project.Properties.Resources.icons8_delete_40; + this.btDel.ImageTransparentColor = System.Drawing.Color.Magenta; + this.btDel.Name = "btDel"; + this.btDel.Size = new System.Drawing.Size(100, 52); + this.btDel.Text = "삭제(&D)"; + this.btDel.Click += new System.EventHandler(this.toolStripButton5_Click); + // + // btSave + // + this.btSave.Image = ((System.Drawing.Image)(resources.GetObject("btSave.Image"))); + this.btSave.Name = "btSave"; + this.btSave.Size = new System.Drawing.Size(98, 52); + this.btSave.Text = "저장(&S)"; + this.btSave.Click += new System.EventHandler(this.toolStripButton9_Click); + // + // btCopy + // + this.btCopy.Image = ((System.Drawing.Image)(resources.GetObject("btCopy.Image"))); + this.btCopy.ImageTransparentColor = System.Drawing.Color.Magenta; + this.btCopy.Name = "btCopy"; + this.btCopy.Size = new System.Drawing.Size(83, 52); + this.btCopy.Text = "복사"; + this.btCopy.Click += new System.EventHandler(this.toolStripButton8_Click); + // + // toolStripButton10 + // + this.toolStripButton10.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.toolStripButton10.AutoSize = false; + this.toolStripButton10.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(60)))), ((int)(((byte)(60))))); + this.toolStripButton10.ForeColor = System.Drawing.Color.White; + this.toolStripButton10.Image = global::Project.Properties.Resources.icons8_selection_40; + this.toolStripButton10.Name = "toolStripButton10"; + this.toolStripButton10.Size = new System.Drawing.Size(215, 44); + this.toolStripButton10.Text = "이 모델을 선택합니다"; + this.toolStripButton10.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.toolStripButton10.Click += new System.EventHandler(this.toolStripButton10_Click); + // + // toolStripSeparator1 + // + this.toolStripSeparator1.Name = "toolStripSeparator1"; + this.toolStripSeparator1.Size = new System.Drawing.Size(6, 55); + // + // arLabel2 + // + this.arLabel2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(251)))), ((int)(((byte)(251)))), ((int)(((byte)(251))))); + this.arLabel2.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(242)))), ((int)(((byte)(242)))), ((int)(((byte)(242))))); + this.arLabel2.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(194)))), ((int)(((byte)(192)))), ((int)(((byte)(194))))); + this.arLabel2.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(194)))), ((int)(((byte)(192)))), ((int)(((byte)(194))))); + this.arLabel2.BorderSize = new System.Windows.Forms.Padding(1); + this.arLabel2.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel2.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel2.Dock = System.Windows.Forms.DockStyle.Top; + this.arLabel2.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(85)))), ((int)(((byte)(85)))), ((int)(((byte)(85))))); + this.arLabel2.GradientEnable = true; + this.arLabel2.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arLabel2.GradientRepeatBG = false; + this.arLabel2.isButton = false; + this.arLabel2.Location = new System.Drawing.Point(0, 0); + this.arLabel2.Margin = new System.Windows.Forms.Padding(0); + this.arLabel2.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel2.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel2.msg = null; + this.arLabel2.Name = "arLabel2"; + this.arLabel2.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel2.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel2.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel2.ProgressEnable = false; + this.arLabel2.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel2.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel2.ProgressMax = 100F; + this.arLabel2.ProgressMin = 0F; + this.arLabel2.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel2.ProgressValue = 0F; + this.arLabel2.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.arLabel2.Sign = ""; + this.arLabel2.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel2.SignColor = System.Drawing.Color.Yellow; + this.arLabel2.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel2.Size = new System.Drawing.Size(1231, 36); + this.arLabel2.TabIndex = 7; + this.arLabel2.Text = "설명"; + this.arLabel2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel2.TextShadow = true; + this.arLabel2.TextVisible = true; + // + // arLabel18 + // + this.arLabel18.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(231)))), ((int)(((byte)(229)))), ((int)(((byte)(231))))); + this.arLabel18.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(209)))), ((int)(((byte)(207)))), ((int)(((byte)(209))))); + this.arLabel18.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel18.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(194)))), ((int)(((byte)(192)))), ((int)(((byte)(194))))); + this.arLabel18.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(194)))), ((int)(((byte)(192)))), ((int)(((byte)(194))))); + this.arLabel18.BorderSize = new System.Windows.Forms.Padding(1); + this.arLabel18.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel18.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel18.Dock = System.Windows.Forms.DockStyle.Top; + this.arLabel18.Font = new System.Drawing.Font("Cambria", 21.75F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel18.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(85)))), ((int)(((byte)(85)))), ((int)(((byte)(85))))); + this.arLabel18.GradientEnable = true; + this.arLabel18.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arLabel18.GradientRepeatBG = false; + this.arLabel18.isButton = false; + this.arLabel18.Location = new System.Drawing.Point(0, 0); + this.arLabel18.Margin = new System.Windows.Forms.Padding(0); + this.arLabel18.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel18.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel18.msg = null; + this.arLabel18.Name = "arLabel18"; + this.arLabel18.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel18.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel18.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel18.ProgressEnable = false; + this.arLabel18.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel18.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel18.ProgressMax = 100F; + this.arLabel18.ProgressMin = 0F; + this.arLabel18.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel18.ProgressValue = 0F; + this.arLabel18.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.arLabel18.Sign = ""; + this.arLabel18.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel18.SignColor = System.Drawing.Color.Yellow; + this.arLabel18.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel18.Size = new System.Drawing.Size(1231, 53); + this.arLabel18.TabIndex = 5; + this.arLabel18.Text = "--"; + this.arLabel18.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel18.TextShadow = true; + this.arLabel18.TextVisible = true; + // + // Model_Operation + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.SystemColors.Control; + this.ClientSize = new System.Drawing.Size(1233, 691); + this.Controls.Add(this.panel5); + this.Font = new System.Drawing.Font("맑은 고딕", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "Model_Operation"; + this.Padding = new System.Windows.Forms.Padding(1); + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "모델 선택"; + this.Load += new System.EventHandler(this.@__Load); + ((System.ComponentModel.ISupportInitialize)(this.dv)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bs)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.ds1)).EndInit(); + this.panel5.ResumeLayout(false); + this.panel4.ResumeLayout(false); + this.panel4.PerformLayout(); + this.panel1.ResumeLayout(false); + this.panel7.ResumeLayout(false); + this.panel7.PerformLayout(); + this.tabControl1.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + this.tabPage1.PerformLayout(); + this.tabPage2.ResumeLayout(false); + this.GrpSidConvData.ResumeLayout(false); + this.GrpSidConvData.PerformLayout(); + this.grpapplyjob.ResumeLayout(false); + this.grpapplyjob.PerformLayout(); + this.grpApplySidinfo.ResumeLayout(false); + this.grpApplySidinfo.PerformLayout(); + this.panel6.ResumeLayout(false); + this.panel6.PerformLayout(); + this.panel2.ResumeLayout(false); + this.panel2.PerformLayout(); + this.tableLayoutPanel1.ResumeLayout(false); + this.panel3.ResumeLayout(false); + this.toolStrip1.ResumeLayout(false); + this.toolStrip1.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private DataSet1 ds1; + private arCtl.arDatagridView dv; + private System.Windows.Forms.Timer tmDisplay; + private System.Windows.Forms.ToolTip toolTip1; + private System.Windows.Forms.Panel panel5; + private System.Windows.Forms.BindingSource bs; + private arCtl.arLabel arLabel18; + private System.Windows.Forms.Panel panel4; + private arCtl.arLabel arLabel2; + private System.Windows.Forms.ToolStrip toolStrip1; + private System.Windows.Forms.ToolStripButton btAdd; + private System.Windows.Forms.ToolStripButton btDel; + private System.Windows.Forms.ToolStripButton btCopy; + private System.Windows.Forms.ToolStripButton toolStripButton10; + private System.Windows.Forms.ToolStripButton btSave; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.CheckBox chkApplySidInfo; + private System.Windows.Forms.CheckBox chkApplyJobInfo; + private System.Windows.Forms.CheckBox chkApplySIDConvData; + private System.Windows.Forms.CheckBox chkUserConfirm; + private System.Windows.Forms.CheckBox chkSIDConv; + private System.Windows.Forms.CheckBox chkQtyServer; + private System.Windows.Forms.CheckBox chkQtyMRQ; + private System.Windows.Forms.CheckBox chkNew; + private System.Windows.Forms.TabPage tabPage2; + private System.Windows.Forms.GroupBox GrpSidConvData; + private System.Windows.Forms.CheckBox checkBox2; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.CheckBox checkBox3; + private System.Windows.Forms.CheckBox checkBox20; + private System.Windows.Forms.CheckBox checkBox21; + private System.Windows.Forms.CheckBox checkBox22; + private System.Windows.Forms.CheckBox checkBox23; + private System.Windows.Forms.CheckBox checkBox24; + private System.Windows.Forms.CheckBox checkBox25; + private System.Windows.Forms.GroupBox grpapplyjob; + private System.Windows.Forms.CheckBox checkBox18; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.CheckBox checkBox10; + private System.Windows.Forms.CheckBox checkBox9; + private System.Windows.Forms.CheckBox checkBox6; + private System.Windows.Forms.CheckBox checkBox7; + private System.Windows.Forms.CheckBox checkBox8; + private System.Windows.Forms.CheckBox checkBox5; + private System.Windows.Forms.CheckBox checkBox4; + private System.Windows.Forms.GroupBox grpApplySidinfo; + private System.Windows.Forms.CheckBox checkBox19; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.CheckBox checkBox11; + private System.Windows.Forms.CheckBox checkBox12; + private System.Windows.Forms.CheckBox checkBox13; + private System.Windows.Forms.CheckBox checkBox14; + private System.Windows.Forms.CheckBox checkBox15; + private System.Windows.Forms.CheckBox checkBox16; + private System.Windows.Forms.CheckBox checkBox17; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.CheckBox bCD_DMCheckBox; + private System.Windows.Forms.CheckBox bCD_QRCheckBox; + private System.Windows.Forms.CheckBox bCD_1DCheckBox; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Panel panel3; + private System.Windows.Forms.Label label15; + private System.Windows.Forms.Label label14; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.CheckBox chkSave1; + private System.Windows.Forms.Panel panel6; + private System.Windows.Forms.Label label16; + private System.Windows.Forms.TextBox tbDefVname; + private System.Windows.Forms.TextBox tbDefDate; + private System.Windows.Forms.Label label18; + private System.Windows.Forms.Label label17; + private System.Windows.Forms.CheckBox checkBox26; + private System.Windows.Forms.CheckBox checkBox27; + private System.Windows.Forms.CheckBox checkBox28; + private System.Windows.Forms.CheckBox checkBox30; + private System.Windows.Forms.CheckBox checkBox29; + private System.Windows.Forms.CheckBox checkBox31; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Button btConvOk; + private System.Windows.Forms.Button btConvOff; + private System.Windows.Forms.DataGridViewTextBoxColumn Column1; + private System.Windows.Forms.DataGridViewTextBoxColumn dvc_title; + private System.Windows.Forms.DataGridViewTextBoxColumn Code; + private System.Windows.Forms.Panel panel7; + private System.Windows.Forms.CheckBox chkEnbCamera; + private System.Windows.Forms.CheckBox checkBox32; + private System.Windows.Forms.CheckBox chkSIDCHK; + private System.Windows.Forms.CheckBox checkBox33; + private System.Windows.Forms.CheckBox checkBox34; + private System.Windows.Forms.CheckBox checkBox35; + private System.Windows.Forms.CheckBox chkSave2; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/Model_Operation.cs b/Handler/Project/Dialog/Model_Operation.cs new file mode 100644 index 0000000..2925907 --- /dev/null +++ b/Handler/Project/Dialog/Model_Operation.cs @@ -0,0 +1,757 @@ +using AR; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Web; +using System.Windows.Forms; + +namespace Project +{ + public partial class Model_Operation : Form + { + + public string Value = string.Empty; + public Model_Operation() + { + InitializeComponent(); + this.KeyPreview = true; + this.KeyDown += (s1, e1) => { if (e1.KeyCode == Keys.Escape) this.Close(); }; + this.StartPosition = FormStartPosition.CenterScreen; + this.FormClosed += __Closed; + this.FormClosing += FModelV_FormClosing; + this.dv.CellContentClick += dv_CellContentClick; + //if (COMM.SETTING.Data.FullScreen) this.WindowState = FormWindowState.Maximized; + //this.WindowState = FormWindowState.Normal; + } + + private void FModelV_FormClosing(object sender, FormClosingEventArgs e) + { + //Pub.sm.setNewStep(StateMachine.eSystemStep.IDLE); + if (hasChanged()) + { + var dlg = UTIL.MsgQ("변경된 자료가 있습니다.\n" + + "진행하면 변경된 자료는 손실됩니다\n" + + "진행 할까요?"); + + if (dlg != DialogResult.Yes) + { + e.Cancel = true; + return; + } + } + } + + private void __Closed(object sender, FormClosedEventArgs e) + { + + this.ds1.OPModel.TableNewRow -= Model_TableNewRow; + } + + private void __Load(object sender, EventArgs e) + { + this.ds1.Clear(); + this.ds1.OPModel.Merge(PUB.mdm.dataSet.OPModel); + this.ds1.OPModel.TableNewRow += Model_TableNewRow; + this.tmDisplay.Start(); + + //var MotList = PUB.mdm.dataSet.MCModel.GroupBy(t => t.Title).Select(t => t.Key).ToList(); + //comboBox1.Items.AddRange(MotList.ToArray()); + + if (this.ds1.OPModel.Rows.Count < 1) + { + var newdr = this.ds1.OPModel.NewOPModelRow(); + newdr.Title = "New Model"; + this.ds1.OPModel.AddOPModelRow(newdr); + UTIL.MsgI("신규 모델 정보가 추가되었습니다.\n\n최초 설정 이므로 각 상태값을 확인 하세요."); + } + + //dispal current + if (PUB.Result.isSetvModel) + { + arLabel18.Text = PUB.Result.vModel.Title; + //find data + var datas = this.ds1.OPModel.Select("", this.bs.Sort); + for (int i = 0; i < datas.Length; i++) + { + if (datas[i]["Title"].ToString() == PUB.Result.vModel.Title) + { + this.bs.Position = i; + break; + } + } + } + else arLabel18.Text = "--"; + //chekauth(false); + + //checkBox1.Enabled = checkBox4.Checked; + //checkBox2.Enabled = checkBox4.Checked; + //checkBox3.Enabled = checkBox4.Checked; + + if (PUB.UserAdmin == false) + { + //오퍼레이터는 다 못한다 + dv.EditMode = DataGridViewEditMode.EditProgrammatically; + this.btAdd.Visible = false; + this.btSave.Visible = false; + this.btCopy.Visible = false; + this.toolStripSeparator1.Visible = false; + this.btDel.Visible = false; + } + + if (PUB.sm.Step != eSMStep.IDLE) + { + btDel.Enabled = false; + //btCopy.Enabled = false; + toolStripButton10.Visible = false; + //Util.MsgE("삭제/복사 작업은 대기 상태일때 가능 합니다"); + } + + //assig check events + foreach (var c in tabPage1.Controls) + { + if (c.GetType() != typeof(CheckBox)) continue; + var chk = c as CheckBox; + if (chk.Tag == null) continue; + chk.Click += Chk_Option_Check; + } + foreach (var c in grpApplySidinfo.Controls) + { + if (c.GetType() != typeof(CheckBox)) continue; + var chk = c as CheckBox; + if (chk.Tag == null) continue; + chk.Click += Chk_Sidinfo_Check; + } + foreach (var c in grpapplyjob.Controls) + { + if (c.GetType() != typeof(CheckBox)) continue; + var chk = c as CheckBox; + if (chk.Tag == null) continue; + chk.Click += Chk_JobInfo_Check; + } + foreach (var c in GrpSidConvData.Controls) + { + if (c.GetType() != typeof(CheckBox)) continue; + var chk = c as CheckBox; + if (chk.Tag == null) continue; + chk.Click += Chk_SIDConvData_Check; + } + } + + private void Chk_Option_Check(object sender, EventArgs e) + { + var drv = bs.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.OPModelRow; + var chk = sender as CheckBox; + dr.vOption = UTIL.SetBitState(dr.vOption, int.Parse(chk.Tag.ToString()), chk.Checked); + dr.EndEdit(); + + bs_CurrentChanged_1(null, null); + } + private void Chk_Sidinfo_Check(object sender, EventArgs e) + { + var drv = bs.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.OPModelRow; + var chk = sender as CheckBox; + dr.vSIDInfo = UTIL.SetBitState(dr.vSIDInfo, int.Parse(chk.Tag.ToString()), chk.Checked); + dr.EndEdit(); + + bs_CurrentChanged_1(null, null); + } + private void Chk_JobInfo_Check(object sender, EventArgs e) + { + var drv = bs.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.OPModelRow; + var chk = sender as CheckBox; + dr.vJobInfo = UTIL.SetBitState(dr.vJobInfo, int.Parse(chk.Tag.ToString()), chk.Checked); + dr.EndEdit(); + + bs_CurrentChanged_1(null, null); + } + private void Chk_SIDConvData_Check(object sender, EventArgs e) + { + var drv = bs.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.OPModelRow; + var chk = sender as CheckBox; + dr.vSIDConv = UTIL.SetBitState(dr.vSIDConv, int.Parse(chk.Tag.ToString()), chk.Checked); + dr.EndEdit(); + + bs_CurrentChanged_1(null, null); + } + #region "Mouse Form Move" + + private Boolean fMove = false; + private Point MDownPos; + + private void LbTitle_DoubleClick(object sender, EventArgs e) + { + if (this.WindowState == FormWindowState.Maximized) this.WindowState = FormWindowState.Normal; + else this.WindowState = FormWindowState.Maximized; + } + private void LbTitle_MouseMove(object sender, MouseEventArgs e) + { + if (fMove) + { + Point offset = new Point(e.X - MDownPos.X, e.Y - MDownPos.Y); + this.Left += offset.X; + this.Top += offset.Y; + offset = new Point(0, 0); + } + } + private void LbTitle_MouseUp(object sender, MouseEventArgs e) + { + fMove = false; + } + private void LbTitle_MouseDown(object sender, MouseEventArgs e) + { + MDownPos = new Point(e.X, e.Y); + fMove = true; + } + + #endregion + + void EntertoTab(Control ctl) + { + if (ctl.HasChildren) + { + foreach (var item in ctl.Controls) + { + if (item.GetType() == typeof(TextBox)) + { + var tb = item as TextBox; + tb.KeyDown += (s1, e1) => + { + if (e1.KeyCode == Keys.Enter) SendKeys.Send("{TAB}"); + }; + } + } + } + } + + void Model_TableNewRow(object sender, DataTableNewRowEventArgs e) + { + + e.Row["Title"] = DateTime.Now.ToString("yyMMddHHmmss"); + e.Row["BCD_1D"] = true; + e.Row["BCD_QR"] = false; + e.Row["BCD_DM"] = true; + //e.Row["guid"] = Guid.NewGuid().ToString(); + //e.Row["MotionModel"] = "Default"; + // e.Row["RowCount"] = 5; + // e.Row["ColCount"] = 0; + // e.Row["Light"] = 50; + } + + private void modelBindingNavigatorSaveItem_Click(object sender, EventArgs e) + { + + } + + private void bs_CurrentChanged(object sender, EventArgs e) + { + //z range 을 표시한다. + + //z position 영역을 문자로 변환한다. + //this.list + var drv = this.bs.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.MCModelRow; + } + + private void tmDisplay_Tick(object sender, EventArgs e) + { + if (VAR.BOOL[eVarBool.Use_Conveyor]) + { + btConvOk.BackColor = Color.Lime; + btConvOff.BackColor = Color.White; + } + else + { + btConvOk.BackColor = Color.White; + btConvOff.BackColor = Color.Lime; + } + + } + + + private void dv_DataError(object sender, DataGridViewDataErrorEventArgs e) + { + + } + + private void btSelect_Click(object sender, EventArgs e) + { + + } + Boolean hasChanged() + { + this.Validate(); + this.bs.EndEdit(); + var chg = this.ds1.OPModel.GetChanges(); + if (chg == null || chg.Rows.Count < 1) return false; + return true; + } + void selectModel() + { + //select + this.Invalidate(); + this.bs.EndEdit(); + var drv = this.bs.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.OPModelRow; + if (dr.Title == "") return; + this.Value = dr.Title; + PUB.uSetting.useConv = VAR.BOOL[eVarBool.Use_Conveyor]; + PUB.uSetting.Save(); + DialogResult = System.Windows.Forms.DialogResult.OK; + } + + private void toolStripButton2_Click_1(object sender, EventArgs e) + { + //iocontrol + var f = new Dialog.Quick_Control(); + f.TopMost = true; + f.Opacity = 0.95; + f.Show(); + } + + private void bindingNavigatorDeleteItem_Click(object sender, EventArgs e) + { + + } + + + + //private void tbFind_KeyDown(object sender, KeyEventArgs e) + //{ + // if (e.KeyCode == Keys.Enter) + // { + // findModel(); + // } + //} + + //void findModel() + //{ + // try + // { + // if (this.tbFind.Text.Trim() == "") + // { + // this.bs.Filter = ""; + // this.tbFind.BackColor = Color.White; + // } + // else + // { + // string filter = "title like '%{0}%'"; + // filter = string.Format(filter, tbFind.Text.Trim()); + // this.bs.Filter = filter; + // this.tbFind.BackColor = Color.SkyBlue; + // this.tbFind.SelectAll(); + // } + // } + // catch (Exception Ex) + // { + // this.bs.Filter = ""; + // this.tbFind.BackColor = Color.Tomato; + // Util.MsgE(Ex.Message); + // } + //} + //private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + //{ + // var f = new Dialog.fTouchKeyFull("INPUT - ", this.tbFind.Text.Trim()); + // if (f.ShowDialog() != System.Windows.Forms.DialogResult.OK) return; + // var inputLot = f.tbInput.Text.Trim().ToUpper(); + // //if (inputLot == "") return; + // tbFind.Text = inputLot; + // findModel(); + // tbFind.Focus(); + // tbFind.SelectAll(); + //} + + + private void button23_Click(object sender, EventArgs e) + { + + } + + + + private void toolStripButton2_Click(object sender, EventArgs e) + { + + } + + void dv_CellContentClick(object sender, DataGridViewCellEventArgs e) + { + if (this.dv.Columns[e.ColumnIndex].DataPropertyName.ToLower() == "spn") + { + //var drv = dv.Rows[e.RowIndex].DataBoundItem as DataRowView; + //var dr = drv.Row as DataSet1.ModelRow; + //var spn = dr.SPN; + //spn = selectSPn(spn); + //if(spn != "") + //{ + // dr.SPN = spn; + // dv.EndEdit(); + //} + } + } + //string selectSPn(string selectedname) + //{ + // var od = new OpenFileDialog(); + // od.InitialDirectory = COMM.SETTING.Data.SPNPath; + // od.FileName = selectedname; + // if (od.ShowDialog() != System.Windows.Forms.DialogResult.OK) return ""; + // var fi = new System.IO.FileInfo(od.FileName); + // if (COMM.SETTING.Data.SPNPath != fi.Directory.FullName) + // { + // COMM.SETTING.Data.SPNPath = fi.Directory.FullName; + // COMM.SETTING.Data.Save(); + // } + // var SPN = fi.Name.Replace(fi.Extension, ""); + // return SPN; + //} + + private void toolStripButton3_Click(object sender, EventArgs e) + { + + + //if(COMM.SETTING.Data.SPNPath == "") + //{ + // Util.MsgE("SEM 파일 저장 경로가 입력되지 않았습니다\n"+ + // "환경설정에서 해당 값을 입력할 수 있습니다"); + // return; + //} + //Util.RunExplorer(COMM.SETTING.Data.SPNPath); + //return; + + + + //var drv = this.bs.Current as DataRowView; + //if (drv == null) return; + //var dr = drv.Row as DataSet1.ModelRow; + + //var spn = selectSPn(dr.SPN); + //if(spn != "") + //{ + // dr.SPN = spn; + // dr.EndEdit(); + //} + } + + private void tbClose_Click(object sender, EventArgs e) + { + this.Close(); + } + + //private void visXCountLabel_Click(object sender, EventArgs e) + //{ + // //jopgspeed + // var value = double.Parse(visXCountTextBox.Text); + // value = Pub.ChangeValuePopup(value, "속도 입력"); + // visXCountTextBox.Text = value.ToString(); + //} + + //private void visYCountLabel_Click(object sender, EventArgs e) + //{ + // //jopgspeed + // var value = double.Parse(visYCountTextBox.Text); + // value = Pub.ChangeValuePopup(value, "속도 입력"); + // visYCountTextBox.Text = value.ToString(); + //} + + //private void visXTermLabel_Click(object sender, EventArgs e) + //{ + // var value = double.Parse(visXTermTextBox.Text); + // value = Pub.ChangeValuePopup(value, "속도 입력"); + // visXTermTextBox.Text = value.ToString(); + //} + + //private void visYTermLabel_Click(object sender, EventArgs e) + //{ + // var value = double.Parse(visYTermTextBox.Text); + // value = Pub.ChangeValuePopup(value, "속도 입력"); + // visYTermTextBox.Text = value.ToString(); + //} + + //private void label1_Click(object sender, EventArgs e) + //{ + // var c = int.Parse(textBox1.Text); + // var cd = new ColorDialog(); + // cd.Color = Color.FromArgb(c); + // if (cd.ShowDialog() == DialogResult.OK) + // { + // textBox1.Text = cd.Color.ToArgb().ToString(); + // } + //} + + //private void label2_Click(object sender, EventArgs e) + //{ + // var c = int.Parse(textBox2.Text); + // var cd = new ColorDialog(); + // cd.Color = Color.FromArgb(c); + // if (cd.ShowDialog() == DialogResult.OK) + // { + // textBox2.Text = cd.Color.ToArgb().ToString(); + // } + //} + + //private void label4_Click(object sender, EventArgs e) + //{ + // var c = int.Parse(textBox4.Text); + // var cd = new ColorDialog(); + // cd.Color = Color.FromArgb(c); + // if (cd.ShowDialog() == DialogResult.OK) + // { + // textBox4.Text = cd.Color.ToArgb().ToString(); + // } + //} + + //private void label3_Click(object sender, EventArgs e) + //{ + // var c = int.Parse(textBox3.Text); + // var cd = new ColorDialog(); + // cd.Color = Color.FromArgb(c); + // if (cd.ShowDialog() == DialogResult.OK) + // { + // textBox3.Text = cd.Color.ToArgb().ToString(); + // } + //} + + private void textBox1_TextChanged(object sender, EventArgs e) + { + var tb = sender as TextBox; + var str = tb.Text.Trim(); + if (str.isEmpty()) str = "0"; + var c = Color.FromArgb(int.Parse(str)); + if (str.Equals("0") == false) tb.BackColor = c; + else tb.BackColor = Color.Black; + } + + //private void button2_Click(object sender, EventArgs e) + //{ + // Pub.dev_lightT.SetRGBValue(textBox3.BackColor); + //} + + //private void button4_Click(object sender, EventArgs e) + //{ + // Pub.dev_lightB.SetRGBValue(textBox1.BackColor); + //} + + //private void button3_Click(object sender, EventArgs e) + //{ + // Pub.dev_lightB.SetRGBValue(textBox4.BackColor); + //} + + //private void button1_Click(object sender, EventArgs e) + //{ + // Pub.dev_lightT.SetRGBValue(textBox2.BackColor); + //} + + private void bindingNavigatorAddNewItem_Click(object sender, EventArgs e) + { + + } + + private void toolStripButton5_Click(object sender, EventArgs e) + { + var drv = this.bs.Current as DataRowView; + if (drv == null) return; + var dlg = UTIL.MsgQ("현재 선택된 자료를 삭제하시겠습니까?"); + if (dlg != System.Windows.Forms.DialogResult.Yes) return; + bs.RemoveCurrent(); + //this.ds1.Model.AcceptChanges(); + } + + private void toolStripButton8_Click(object sender, EventArgs e) + { + var drv = this.bs.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.OPModelRow; + var dlg = UTIL.MsgQ(string.Format("다음 모델 정보를 복사하시겠습니까?\n\n모델명 : {0}", dr.Title)); + if (dlg != System.Windows.Forms.DialogResult.Yes) return; + + var newdr = this.ds1.OPModel.NewOPModelRow(); + UTIL.CopyData(dr, newdr); + newdr.Title += "-copy-"; + newdr.idx = this.ds1.OPModel.OrderByDescending(t => t.idx).FirstOrDefault().idx + 1; + newdr.EndEdit(); + this.ds1.OPModel.AddOPModelRow(newdr); + if (this.bs.Count > 0) this.bs.Position = this.bs.Count - 1; + + + ////detailcopy + //var childs = ds1.OPModel.Where(t => t.pidx == dr.idx).ToArray(); + //foreach (var dr2 in childs) + //{ + // var newdr2 = this.ds1.OPModel.NewOPModelRow(); + // Util.CopyData(dr2, newdr2); + // newdr2.pidx = newdr.idx; + // newdr2.EndEdit(); + // newdr2.idx = this.ds1.OPModel.OrderByDescending(t => t.idx).FirstOrDefault().idx + 1; + // this.ds1.OPModel.AddOPModelRow(newdr2); + //} + //if (this.bs.Count > 0) this.bs.Position = this.bs.Count - 1; + } + + + private void toolStripButton4_Click(object sender, EventArgs e) + { + var f = new Dialog.fTouchKeyFull("모델명을 입력하세요", DateTime.Now.ToString("yyyyMMddHHmmss")); + if (f.ShowDialog() == DialogResult.OK) + { + var newdr = this.ds1.OPModel.NewOPModelRow(); + newdr.Title = f.tbInput.Text.Trim(); + newdr.Motion = "Default"; + this.ds1.OPModel.AddOPModelRow(newdr); + if (this.bs.Count > 0) this.bs.Position = this.bs.Count - 1; + } + } + + private void bs_CurrentChanged_1(object sender, EventArgs e) + { + //값이바뀌면 허용 바코드 목록을 업데이트 해준다. + var drv = bs.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.OPModelRow; + + //this.tabControl1.Visible = !dr.Title.StartsWith("101"); + //this.panel6.Visible = !dr.Title.StartsWith("101"); + // this.panel7.Visible = !dr.Title.StartsWith("101"); + + //update checkbox + foreach (var c in tabPage1.Controls) + { + if (c.GetType() != typeof(CheckBox)) continue; + var chk = c as CheckBox; + if (chk.Tag == null) continue; + var val = UTIL.GetBitState(dr.vOption, int.Parse(chk.Tag.ToString())); + if (chk.Checked != val) chk.Checked = val; + } + foreach (var c in grpApplySidinfo.Controls) + { + if (c.GetType() != typeof(CheckBox)) continue; + var chk = c as CheckBox; + if (chk.Tag == null) continue; + var val = UTIL.GetBitState(dr.vSIDInfo, int.Parse(chk.Tag.ToString())); + if (chk.Checked != val) chk.Checked = val; + } + foreach (var c in grpapplyjob.Controls) + { + if (c.GetType() != typeof(CheckBox)) continue; + var chk = c as CheckBox; + if (chk.Tag == null) continue; + var val = UTIL.GetBitState(dr.vJobInfo, int.Parse(chk.Tag.ToString())); + if (chk.Checked != val) chk.Checked = val; + } + foreach (var c in GrpSidConvData.Controls) + { + if (c.GetType() != typeof(CheckBox)) continue; + var chk = c as CheckBox; + if (chk.Tag == null) continue; + var val = UTIL.GetBitState(dr.vSIDConv, int.Parse(chk.Tag.ToString())); + if (chk.Checked != val) chk.Checked = val; + } + + } + + + private void toolStripButton9_Click(object sender, EventArgs e) + { + //button - save + this.Validate(); + this.bs.EndEdit(); + + if (hasChanged() == false) + { + PUB.log.Add("모델저장:변경된 사항이 없습니다"); + return; + } + + if (PUB.PasswordCheck() == false) + { + UTIL.MsgE("Password incorrect"); + return; + } + + + //z position 영역을 문자로 변환한다. + var drv = this.bs.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.OPModelRow; + dr.EndEdit(); + this.ds1.AcceptChanges(); + + + PUB.mdm.dataSet.OPModel.Clear(); + PUB.mdm.dataSet.OPModel.Merge(this.ds1.OPModel); + PUB.mdm.dataSet.AcceptChanges(); + PUB.mdm.SaveModelV(); + } + + private void toolStripButton10_Click(object sender, EventArgs e) + { + if (PUB.sm.Step == eSMStep.RUN || PUB.sm.Step == eSMStep.WAITSTART || PUB.sm.Step == eSMStep.PAUSE) + { + UTIL.MsgE("현재 동작(대기) 중이므로 모델을 변경 할 수 없습니다"); + return; + } + + if (hasChanged()) + { + var dlg = UTIL.MsgQ("변경된 자료가 있습니다.\n" + + "진행하면 변경된 자료는 손실됩니다\n" + + "진행 할까요?"); + if (dlg != DialogResult.Yes) return; + } + selectModel(); + } + + private void chkApplySidInfo_CheckStateChanged(object sender, EventArgs e) + { + var chk = sender as CheckBox; + chk.ForeColor = chk.Checked ? Color.Blue : Color.Gray; + + if (chk.Name.Equals(chkApplyJobInfo.Name)) + { + grpapplyjob.Enabled = chk.Checked; + } + if (chk.Name.Equals(chkApplySidInfo.Name)) + { + grpApplySidinfo.Enabled = chk.Checked; + } + if (chk.Name.Equals(chkApplySIDConvData.Name)) + { + GrpSidConvData.Enabled = chk.Checked; + } + } + + private void btConvOk_Click(object sender, EventArgs e) + { + VAR.BOOL[eVarBool.Use_Conveyor] = true; + } + + private void btConvOff_Click(object sender, EventArgs e) + { + VAR.BOOL[eVarBool.Use_Conveyor] = false; + } + + private void tbBypassSID_TextChanged(object sender, EventArgs e) + { + var tb = sender as TextBox; + tb.BackColor = tb.TextLength > 0 ? Color.Gold : Color.WhiteSmoke; + } + + private void checkBox32_CheckedChanged(object sender, EventArgs e) + { + + } + } +} + diff --git a/Handler/Project/Dialog/Model_Operation.resx b/Handler/Project/Dialog/Model_Operation.resx new file mode 100644 index 0000000..6445895 --- /dev/null +++ b/Handler/Project/Dialog/Model_Operation.resx @@ -0,0 +1,1951 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + True + + + 292, 17 + + + 17, 17 + + + 88, 17 + + + 195, 17 + + + 356, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABGdBTUEAALGPC/xhBQAAAwFJREFUWEft + ldtOE1EUhnkXfQyv9DVUhGJUiIlIENoarDUcDIkHqEZDh85AI+lwIyEQmWCiRfFAIARbUFIKRlCkHqAx + 0Qvpcv7pnrHAps6UmdaLLvIluzvsWV/W2oeKctgVnY0SmcF/XSJ3Z5CaCwRr/R0S3XCHr7LU5gLJE/E0 + l0nlowESLK9v0vtUuiCwFt8I+OUfliTNCqIKvMRWwDfi0ylrkk4I6m3dvQa/8V1LkqUQBKYlSyUITEmW + UhD8U7LUgiCv5P8gCGJTG9p9y7T+hhOC+5FPEBxI0K6LmpdHx7Lg1JPPhmBAGNUS6K2zCtYGHyjcPDqW + BYtNWfCglAUPiilB3gl0ktzcpgWLFWVBs/FmdZF6ojI1RNqpJuTVaJDbqe5eGymTs6UT/LSZIv9wgC5G + 2qg72kuDsSEaXVI0MO5S5y4MtNJluYteT68UJhhdLwx5Pkln+n0UeCaSsvyYlBU+Y8vj1D0h0tk+H/la + 7hangqhcbfgK9c0McqV49M3IVBP00vFg82Gmlg0nBNFWrXIckXyg5S7R84qpZcNuQRwI7Dm0jiexm+dr + L4wx1pwLt6Qrg5eOMT3792DrWEQ9EKEdEvsR/7JAGfVv4es7Y06tYkatYj/Ts7+CuErk+NAOkdwq6cx/ + fctWkDbW5+XYQ6qRPKtMz37B06KXRhKKkXBpM0mZTIZmN+aMOb1yiIUcOTC6NEZVvU2/mJ4zgkiiJ1z8 + ltDmITSXiuWVAyPq2lOC+yfTs38Pnh/o2NNiVBGhiyFy25qL1mLRwRYH1Seta2LvIdErieBVTufWU2Hb + 1esVmZ79grG1RaqPtHKvmcT35L6VA1hTG/alT/Q0H2V69gsirg3fKfCiFn67JM9LppYNJwTXt1JUF/Zp + zxdPhIek/m9VyL1Veb/xEFPLBgRzgaAd1N/sJpfg1Z6vfK/Ko+Q43Y4K29Uhz9ZJoekI0ypO4OHH24rn + CxI4obgjAcaYw55DW/dUrpiBt7Va9Ei4PnAJA3X8wRVyizsOhBEVFX8AAjiR3dGw+TcAAAAASUVORK5C + YII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAD0SURBVFhH7dAxCsJAEAXQ3E4EbbXRCyieIa0Qe1s9gK1X + 0IBiEdIJlra2aXbNwNjIJpvkz1rE+fC7nZnHRr3NYH2yaEeb9MLr5EMHHi/TuTQ/jWMzTs4pr5SNBPCQ + F3ZSIodJeuW1cpEAHu8mHFIK2AhJj9Eud5kTUlWa+QC9SHqMhObn25td7XMnxtVvYC1SApg9CzsrkYuG + P+kCViIlgHS0DZJmfGWeHJDa9ierGgxIlUAGBVJRZHAgFUGKA311IepKM8zDgb4oEI0C0SgQjQLRKBCN + AtEoEI0C0SgQDe3vUub9BsinukWBfwEMXT7Vt0TRGzQpgoVWIrfBAAAAAElFTkSuQmCC + + + + 72 + + + + AAABAAYAAAAAAAEAIAASGgAAZgAAAICAAAABACAAKAgBAHgaAABAQAAAAQAgAChCAACgIgEAMDAAAAEA + IACoJQAAyGQBACAgAAABACAAqBAAAHCKAQAQEAAAAQAgAGgEAAAYmwEAiVBORw0KGgoAAAANSUhEUgAA + AQAAAAEACAYAAABccqhmAAAZ2UlEQVR42u3da4xu11kf8P+z1r68l5l3Zs7xuXh87OBgk8ZBWEGBGEs0 + caXKBiOiVHI+kMQNbYh6+YIqhBFVq1MqkIxQhVS1KCIo1MT94KhYIBAOaXGDRC7UAoIUm8RxjBOfm89l + 5szMO++7916Xfhh/IlnPPsnMmTMz6/+Tzqe99Mze+333f87WemYtAR1ZH/v4EwMAtTZmOt6OPWWapz/0 + X5tbfS10c5hbfQJEdOswAIgyxgAgyhgDgChjDACijDEAiDLGACDKmNzqE6Dv7MO/9QsVgCJ13FhTlFXx + gFbDGnNaRE5oY6JEtQ8gRlwJHhe1MV3bfTF475Qh7vf+9W+0+3f36EYVuy9BN0kNYKgcHwJ4v1pBcB8E + 9+hDen8HvAzEF3vGfBXATDk+A8AAOID4CkCUMQYAUcYYAEQZYwAQZYwBQJQxBgBRxhgARBljI9BN8OHf + /sVVAAup49aYY6U1/06rUZbFGWPM8dRxY8TcceL4Ga1GXRa2Kgq7m2tpnfNN57w25tzlq6+HEEPqeAjh + ate517UanQ//xYdwTRmy9Xs/9+vnd3Mt9O3YCHRzCADtwSugBMSbFgFMlB9hjIi62o8RI9bs7j95Rowx + Ij3fE5kA6QDAThNQ3/UWPfeMv6xuAr4CEGWMAUCUMQYAUcYYAEQZYwAQZYwBQJQxTq38A49/4heXAVSp + 49aYcWHt/VqNqrC3GyOLqePGmIVRXat/y19Ye8wYk5w6ExFZWRwv6DWMFHZXbQBw3sP5oC4asrY53Yox + vbBICGHLea/N8WO7aZ4NIWyla8TN1vkLPef6ZR/CVBnSPvXRX1/f1Q05YtgH8O1OQ51/x50AfkErYIw5 + VVgzTh0vrLUnVibHtRp1WWK3D+9eKKxFYa36i+L248uL2nHn/aTp3Ko25sKVa7c775MNRw5hCvhLPaf7 + GwC+pRzfALC+LzfukOArAFHGGABEGWMAEGWMAUCUMQYAUcYYAEQZYwAQZexINQI9/ttPvBs7f0f/HVkj + byms+YBWYzwcHLPWJP/OviqLwW2TyV1ajbKw1hiTvLcigDVGn+SXG9iy45CIAKBvQAQfgteGhBBi57y6 + MMmVjY1vtp2bJ3+GD810NlcbkpwPz/gQX1OGbD71c09+af/u3s111BqBBgDGyvFlAOoqOhAsiUiyE1BE + irKw6kIcZWFhdrkQx1EiwE7qKQqrdz2FIEDP91VEbhOR9BZlghbAqOd0lwFcUY53N/l27St+S4kyxgAg + yhgDgChjDACijDEAiDLGACDK2L5MNT/2zGO9P2th++47oEzzGDETgblDqzEoy/tFJLlIRmHNalUU/1Sr + UdfVyBpTpGtYuzQeaVONsNbAyFGZxT8YQozwPqhjrk+3p9qaAj4E1zTttlajdf5PXQjJhUdijFvztv2y + ViMinAsxbChD3Fv+fnSu55Lj2bNn9/o2fpv96gMQ9P9v4wEoTTwA3g5AXUWnrsrlwqYf3kFVFSeWJz2r + 6FgIH94Dx4jA9GxydNvSohrMMUY4749pYy5f3/jAvO2Sc/3OBzdv2+s9p/ssgJeU45sAfv8GLjvewJhd + 4SsAUcYYAEQZYwAQZYwBQJQxBgBRxhgARBljABBlrHfC+2Mf/5hBT1D4wbGHAZSp40bM2wTyoFZjaTy6 + yxhJzuHXZbU4GQ9PazXKorBGWUdDRKSwVr0W9gAcbbFnYRLnQ1B3OYoxds6pC5NsTGcXm67dTNYI0V2f + bn9TPU/Ez4cYvqoM6V55dfBcz+WG/3v2rHrBN9oI1PdUHIeynRZ2dtP5Qa2AEVk2kl4lp7C2HFSVuhBH + YQ0fYFL1fT/KQv8FEWOE1ikKANvz9kTnzHL6JIKHvvsUsLPD0VXleIv+51LQ00zEVwCijDEAiDLGACDK + GAOAKGMMAKKMMQCIMiYf+eRZPQT89HQEVrUhRVH8M0i6D2BQVvcOqvJHtRqLo+GCEUmeS12WxcJoqE4D + WmP6lp8n2pUYAR/0hUm2tmdN03XJ/QlCjGFjOtvSajRd+5fzrn05fSLoOhf/V8/pnjd2eEkbUECfv0eE + vBfAh7UxAvlxxHRPwXhQ2ztOHFPnTuuy5Bw+HXgiO/0mmuXFcQ0g+csqxojlhbG2+A3OX7n2aNN2WsOR + Mybc33O6n8LO4iRJfAUgyhgDgChjDACijDEAiDLGACDKGAOAKGMMAKKMFdj5u2LNn0Hf5AAB8UEoC4JM + m+a+1y5deY9WY1BXJwwkuR7AoCrLpYXRUKtRclMPuslijOi8uh4Irm9tz7TNRQKinzftZa1G03WfC4gv + KkM6AH/Rc7oX0fN878nT8s9/94kHoSwuYsU+YEQe02qMB/WdIukVgRYGdXVieaI2T1RlyS256KYKMUJ5 + tgEAl9c3NrfmTfLBizG66bz5Vs/P+bSP/ovKEPc/PvLk53d7PXwFIMoYA4AoYwwAoowxAIgyxgAgyhgD + gChjN7ovQJ+tnlqX0NNLEGNsoPQS+BgnTded0WugEmVREbOzMYjVaoi2swgdahFADH0bg3gflI1BYoyh + dZ06t+5jPBdj3FBqdAC+0XO6l7DzXCVPdS/uyYH5rj/+O0+8C8Agdbyw5oeskQ9qNQZldZcRSdYY1lV5 + 6tjyklajrkpYw/8YHUU+BDStPod/6dr69ZkyKMQ4n3etuquPD/Fp58PfKkPmT/3LJ1+41fcD4CsAUdYY + AEQZYwAQZYwBQJQxBgBRxhgARBljABBlbK8agfbCKwC0Jp0LAP5OK+BDeGuQdC/BvOtWL1xbf0SrUVp7 + 2ogkFx4prLXLC+MFtUZphb0Ee8uHgK7zahfP+tZ0y/n0ah0hxlnn/UWtRtt1z7ngz6eOx4g5+pt4XgNw + Xbuc/btzugPTCLQXPvLJJ+4BkHx4rTH3GmM+qtWobHGPEUkuPFKXZXn78ZVjWo1BXUqhNxzSd8l5j3nT + qQFw4eratabrtCaezda7r2s1Qgif8CG8rAyZ/e7PPqnWOEz4a4ooYwwAoowxAIgyxgAgyhgDgChjDACi + jB2kPoC90EHpJYjRzGKwa1qBEMs2iknO03qxpuugTkcZExCCMsUqQNHTJyCCI7PJSYwRUV+HAy4EaHfV + +RD77rt3hfdOkp9djKGNMaqff4yYAUFb8ENfUOCQORrfsBv0vn//R0sA3qGNqYbu50Xw9tRxW7b1eOWN + O7UaZT0vjXXJICqs4PTxkXqu40GNujoa+dy0DtN5o465eHUbTunzCb7wXTNQH77p2slv+a5K/qAY8VI7 + K36z53S/8ge/+lPXkQm+AhBljAFAlDEGAFHGGABEGWMAEGWMAUCUMQYAUcYOUB9AVM/lfb/02SVjw1u0 + MUVpH4JgOXm8KEbD4WhVqzGZDH/UFuZ46rixwdbDVl0QBDI3EKdcjwPsBb2EmQJIz52LCCZjvU+grgqU + xe7WJeicR9Pqm9BsTB2i2ulTI4ax/oP87VD70mIREQdBK9HMqq3glSYuF65ubMz+Uqsxm22fd85tp88D + 667zz/fcttee/dVH1nEIHKZOkzGA7+sZ85MA7kgdFJHKWrus/pDx0tJgUCe3KDPGoKoq9SR8aBBj+qEJ + scH6XO81ad0WXJgnjxsRlGWt1jBWdh8A3mPWs5vO2kaDoARAYSpUhd74tDx4K4ykr0ekEGtq9WLasl0K + IZ0R83mzOJ22K1oNEVkHoHUCngPwas9tuwxgHYcAXwGIMsYAIMoYA4AoYwwAoowxAIgyxgAgytieTAM+ + 9tgz6vHwAxMLI+rP8v5zA8R0X0JR2kURo04m28KUIpKcKrLWGmut2m9gjOx6IQ4BtEsBIBD9dsBIBSPp + 6UYRIEY9v0MAfOhZiaNHCNL7c0RK9TeJkar3enfumrqGyg3RPjtjBH2fv7XWxBiVRWViiSh6U4Ng8th/ + +t9TZUQMzusLJITozNc21A1EPv3pD9zgXUnbqz6AvsnmHwDwY9qAsnb/FkByjraqqmrcsyPP6VOnFqqy + TJ6LMQZlVeJmM6bu+a/VCCeK96gjQmgQlF6CGB2ubag9Lbi6dg0uXN3VtRRmGaW9XR1zeuFH1AfcSAFj + 9J6FvdDXn1HXdTmZTI5rY9quO671ErRtd8+lS5feqdWYbk232rbVegnWAPy3nsv5AoCv9YzZ9Q5DfAUg + yhgDgChjDACijDEAiDLGACDKGAOAKGMMAKKMyXvPPq+GwIrvTovyN/YAYK38Yyg9BfVgcHJQD+7Waiws + jH5MjBmmf4Y1Va1P9I5Ho8qadKOHiMDYw5F5MXpEKOtfxICZ0xcV8WGKEGf6z+k5DysjWKP/Lf+wuB2Q + 9H0VGCj9WQeKD0Fd3CR4H6fb29ocP9qmbb33yQ8vhjDb2tr+glZj3sxfbebzN5Qhzvv451qNCJxbs+VF + bUyB/v8FnAJwvzpC8C8ADFKHjZFBVVdq99Sx48cXiyL9dBpjYO3h+BLtBREL0fqrBBhX36fWiNEhRr1X + JPa02Al6mziPFNuzZRuslaqq1K4m732tNRM55xfbzv0TrUbbNVMI5sqQOYC+HYwcAC1E+ApAlDMGAFHG + GABEGWMAEGWMAUCUMQYAUcYYAEQZK07gshoC3k4KQNQGHIE1UMJEYER6ltkROVDbFB0JIsUNrMRDN4O6 + HtTO4kc9v3zFCNSmBAPrep7L2Pt8838ARBljABBljAFAlDEGAFHGGABEGWMAEGWMAUCUsQL9mwtcAPDX + PWM+AWVBkBDDSte16u4S165efY+IJFeeMNYWZVkOtRrj8biyNr2mgIhktaYAffe89+qCIN77sDWdqrv6 + uK6bB++Tu7qEGLe7rv2cViPGeAE7G4gkfwz6n8sL6Hm+96X35v3/8Y/PAHi7Nsaa8pcBJHdtKctyOBwO + jmk1VldXJ1VVJYPIGIO6vvk71NDh1TQN9J2BWnfu/AV1IY75bLbWdZ22FNNVH7pf6zmVl579lUdfv9nX + y1cAoowxAIgyxgAgyhgDgChjDACijDEAiDLGACDK2H6tFnEewKWeMV+E0pfQOndbu7n1Nq3A9tdf+Vci + ktzFyBgzLMtyVatx6tSphcFgoPYSjEZqPxLdItvbM3UOfz6fu0uXLm1pNbrOXQghJOfwY4znOu9+Sz2R + iK8KcEUdAXXTD6C/QW9P7EsAPPsrjwZA2+cKANBpB9/3H56rAKgfntmpkezAMsZ4Y4y6G1bcoY3Yj1tG + 35OodvHFGKP3Xv0AnXM+hOCUIZ1zXv0eAtj4g//8yMatvhs3gq8ARBljABBljAFAlDEGAFHGGABEGWMA + EGXsMO0aMQdwsWfMZwGsKMfHIcS71B8y2/4R59rkugRGTDGfzZa1GvVgIEVRJHsaRARVpe7pkJ22bdUp + POdcbOZzdQqv67r1ENNTeK5zV0OI/6/nVL4JYFs5vob+72HfHP+BkdVmPD/9y3+yAOCt2pjFhfLnRbTF + S2RkpLhPq3Hs+G12OBol760xBsvLS7f6dhwo6+vX1Sae2fZ2vHb1itocE6J7EYjJhzdGvLS51f1mz6l8 + 4w9/7Sf65vmPDL4CEGWMAUCUMQYAUcYYAEQZYwAQZYwBQJQxBgBRxo5UH8DTz/31uwEsJi9WcLeY+DNa + jbqqzxhj0jsUGVPWdX2bVuOV89uytpVe3sD5iAtr6uYyGI0XUNXphUdEBCsry2oNkb35ePX1EYC1tXV1 + TNvMsD3Vp9ZvX6lR2PT5riyU+P7VkXoiTdNcCSEkb3wIYbtpG3WzjRjkf8aIV5Uhmx985J1f2sXtPFAO + UyfgjRgAGKcOimBijZzUCgxrOyysLVPHrTHFcFiqT1ZVAEZZ/0QQ0LWteiGudrBFuu9lrx7uvdC3nZZz + rvd6BQWM8h/SqgAmI/2+z8QXXmkmct4PndM/fx8xiTH9HULPwjWHDV8BiDLGACDKGAOAKGMMAKKMMQCI + MsYAIMrYvkwDPvPMM0BPz4GbfP8d2vkYaybGpDf9AIBhXd8vgoXUcWvNalmYiVpjUA2tMcrGIGKrUr9t + p46NMKyTM4lwPqAsrFqj8RZd1JanF2xtXFdr2LJEUfR8xD3bHDjv4Dp95qsUB0i60HhscftkUa2xenyI + wqZ/H03GJYa1fi3W1FUIMXljfQi2LKy+qIgL93kfkovKxIitZ/7P34y0GiHEc8EHbV8A97Uv/vA56OLZ + szd/qne/+gAE/f/beABKEw+AtwN4v1agrovlwqYf3kFdFidWFha0GkVhYXY5x74y0XcO8iFifUtvBPrK + q+t4/Y1p8ngIEX9/7rJaY7SwiOFYvdzeAJhtb2G6tamOufvUGMak79mZk2O84251+h3LCzWs2e0XfqjN + 3yPECOf8MW3M5bWtD8ybdOI5H9ysafTkBZ4F8JJyfBPA79/ABd30XWj4CkCUMQYAUcYYAEQZYwAQZYwB + QJQxBgBRxhgARBnrnXj9+AsvGPQExdI1+zCAZOeLiLxNBA9qNVaWRndpDTiDulxcXBie1mpUhbWi/KG8 + MSKFNeq17Mff2UcA3gd1zLz1aLv0mBjR20vw+pUZLlzTx/Q5fazGnbfpfQ3LCzW021aVBoNKb3yy1uzL + 6jR9i5s4H0JQBsUQY+u8ukHJ5tbs4rzpks0TPgS3dn37m/p54vMxxq8qQ7pT5fpzPZcbHnroIfWCb7QR + qO+zOQ5A2+vqTgA/qBUwRpaNkeS3pLCmHNZlrV6MNQdqoYwUefNcNQtDAyjPXYxApa+PgfVpi8LoQdNn + cWhxcmXQc64VDsFtB9Af8GXPBxNjhFWazQBgNmtOGCPLyRoQD0DtSAXwLQBXleMt+p9LQU8zEV8BiDLG + ACDKGAOAKGMMAKKMMQCIMsYAIMpY8cnnn1dDoLiG04iyqlYx+EdQ+gDqujgzqEp1Mnk0qEtjJHkuVVXY + /im+QzIXtRdkZ+5cMxmVOLkyvMGC6Rp9Pyen2w5I71RiVRU2KtNvIUTTLnj1g2lad6ZpupkypLvQTu7X + TzWe/+Tzz1/ShhTQ5+8hAe8F8GF1jMiPQ+kpWBgN7JnTK+rc6aAqDsUc/kEhAEY9K+Tce2YJ955ZutWn + eqSI9PdwrEzGNYBkz0qMEcuTkbpE0rlLa4+2rdMajlyE6AEQ8SnsLE6SxFcAoowxAIgyxgAgyhgDgChj + DACijDEAiDLGACDKWIGdvyvW/Bn0TQ4QYnwQSiPQdNbc99r5q+/Ragzr8oSR9HoAdV2WS4tDtXmiKix7 + CeimijFCn54Hrm/OZo2yuUiI0c+aVt3VZd64z4UYX1SGdAD+oud0L6Ln+S5+9qGH+laMuPjmv6SnP/NX + QyiNQPOmq9rOvVOr4X1YMiLJGhGQxbG+MEVEZk1ptO8idnZl0sybzk23Gy0A3HTWaFuHIYT4dR/iXylD + 3Acf/uG/2e318BWAKGMMAKKMMQCIMsYAIMoYA4AoYwwAoozd6L4AfbZ6al1CTy9BjLGJSi+BD2HStN2Z + nhqVkfSiIiIiZWHVHSrECKcSj6gIIPZM4XXO+6hsDBJiDG3n1Ll1H8K5GGNymi/G2AH4Rs/pXsLOc5Xi + 9uKeHJjv+lN/8sK7ACQn+svC/JA15oNajWFd3WVEkjWGg6o8fWKirpAxqEv0bB5Eh5QPAfP09DwA4OLl + jeuzeavN4c9nTavu6uNDeLpz4W+VIfPHf+JdL9zq+wHwFYAoawwAoowxAIgyxgAgyhgDgChjDACijDEA + iDK2V41Ae+EVAFqTzgUAf6cVcM6/VZQ+AMzb1QtvXH9Eq1GW5rSIJBceKQtrlyfjBa1GVVphL8He8iGg + 7bzaxbO+Md3qnE+u1hFjnHVdUNe2mDfdc53z55Uac/Q38bwG4Lp2Oft353QHphFoL3zqj1+4B0Dy4S1K + e6+15qNajaq09xgjyV1b6qosV08uH9NqDOtSikJtOKTvknMes6ZTA+D8G+vXmlZZiSfEzbbzX9dqeB8+ + 4Tr/sjJk9qFH36XWOEz4a4ooYwwAoowxAIgyxgAgyhgDgChjDACijB2kPoC90EHvJZiiZ48DACMAyWnA + iFg7HyqtQOt8FWJU7q3AWqPOExrBkdnkJMaInnU44H3wO0t2fGfOB+d8UBfiiDFeBNAoQzbR//lPoW+m + 0eEIORrfsD301Ge+dBpKL0Fli9XCFP9Gq2GMeYeInEwdLwpr7zi5fJtWYzyqZVAVR+LzmbcuTrcbNQLO + vbF+xelNPG8EH76i1XDB/fc2uPPKkNnjD7+7LwCywlcAoowxAIgyxgAgyhgDgChjDACijDEAiDLGACDK + 2FFrBNoLG9hpBkmZAfgdrUAEVmNMNxOFEMfrG1N1YZLN6fwuYyTZKyAisrQwWNRq1FVpqtLuqpeg7Xxs + 2i5oY65vzTfV3XRCvOK9VzfTCCE+F6Jy3yM2AWhz/MDOojLaZ3dgFuI4KBgA/8DjD797u2dIbzfZU5/5 + 8hKAOnW8NG65bdo7tRpiTaWtTGSMmKowY62GNUZ2GwDO+Tibt2oAXF7b3A4hJsfEGC/GviaeiD/sgqwr + Q5rHH75fW2WHvgd8BSDKGAOAKGMMAKKMMQCIMsYAIMoYA4AoY5wGvDkitNUtgACgb7pxCzs9CSkmxjjR + CoQQKu/Drj7jEIKLMbY9wzbevCbtWvquN/Tcs54lReh7cSQWnDiKnvrMlxehLExiBcNK4i9pNcTKfWLk + nt2cRwzx5eDDi9qYLsqTPspMGTJ7/OH7N/fjvtF3h68ARBljABBljAFAlDEGAFHGGABEGWMAEGWMAUCU + MTYCHVwN9AUs5gCe7anxBQAntAHaQh5vuoL+3XTWADjluAMdSGwEOsKe+ewLAygLkwBA27m+AGg+9JMP + NKAjia8ARBljABBljAFAlDEGAFHGGABEGWMAEGWMAUCUsf8PzNlsT7yleHcAAAAASUVORK5CYIIoAAAA + gAAAAAABAAABACAAAAAAAAAAAQBhCgAAYQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMu6oEzLuqD8y7qg/Mu6oPzLuqD8i2pA7ItqQO + yLakDsi2pA7ItqQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAMy7qgTMu6oPzLuqD8y7qg/Mu6oPyLakDsi2pA7ItqQOyLakDsi2pAQAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLuqBMy7qg/Mu6oPzLuqD8y7qg/ItqQO + yLakDsi2pA7ItqQOyLakBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADMu6oEzLuqD8y7qg/Mu6oPzLuqD8i2pA7ItqQOyLakDsi2pA7ItqQEAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADRuaIN0bmiENG5ohDRuaIQ0LuqQ9C7q2/Qu6tv0Lurb9G9rH/SwK2s0sCtrNLArazSwK2s + 0sCtrNLArazSwK2s0sCtrNC9q37Pu6puz7uqbs+7qm7Pu6lC0bmiENG5ohDRuaIQ0bmiDQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANG5ohLRuaIW0bmiFtG5ohbQu6pb + 0Lurl9C7q5fQu6uX0b2srNLAreXSwK3l0sCt5dLAreXSwK3l0sCt5dLAreXSwK3l0L2rq8+7qpbPu6qW + z7uqls+7qVrRuaIW0bmiFtG5ohbRuaISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA0bmiEtG5ohbRuaIW0bmiFtC7qlvQu6uX0Lurl9C7q5fRvays0sCt5dLAreXSwK3l + 0sCt5dLAreXSwK3l0sCt5dLAreXQvaurz7uqls+7qpbPu6qWz7upWtG5ohbRuaIW0bmiFtG5ohIAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIS0bmiFtG5ohbRuaIW + 0LuqW9C7q5fQu6uX0Lurl9G9rKzSwK3l0sCt5dLAreXSwK3l0sCt5dLAreXSwK3l0sCt5dC9q6vPu6qW + z7uqls+7qpbPu6la0bmiFtG5ohbRuaIW0bmiEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANG5ogPRuaIK0bmiCtG5ogrRuqUO + 0LyrRNC8q0TQvKtE0LyrRNK/rGzTv6x207+sdtO/rHbYx7eg28y9xdvMvcXbzL3F3c7A0eHVxvHh1cbx + 4dXG8eHVxvHh1cbx4dXG8eHVxvHh1cbx3c7A0dvMvcXbzL3F28y9xdjHt6DTv6x207+sdtO/rHbSv6xs + 0LyrRNC8q0TQvKtE0LyrRNG6pQ7RuaIK0bmiCtG5ogrRuaIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA0bmiB9G5ohbRuaIW0bmiFtG6pR7QvKuR0LyrkdC8q5HQvKuR07+t09PArePTwK3j + 08Ct49zNve/j18r649fK+uPXyvrn3ND78erg//Hq4P/x6uD/8erg//Hq4P/x6uD/8erg//Hq4P/n3ND7 + 49fK+uPXyvrj18r63M2979PArePTwK3j08Ct49O/rdPQvKuR0LyrkdC8q5HQvKuR0bqlHtG5ohbRuaIW + 0bmiFtG5ogcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIH0bmiFtG5ohbRuaIW + 0bqlHtC8q5HQvKuR0LyrkdC8q5HTv63T08Ct49PArePTwK3j3M297+PXyvrj18r649fK+ufc0Pvx6uD/ + 8erg//Hq4P/x6uD/8erg//Hq4P/x6uD/8erg/+fc0Pvj18r649fK+uPXyvrczb3v08Ct49PArePTwK3j + 07+t09C8q5HQvKuR0LyrkdC8q5HRuqUe0bmiFtG5ohbRuaIW0bmiBwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAANG5ogfRuaIW0bmiFtG5ohbRuqUe0LyrkdC8q5HQvKuR0LyrkdO/rdPTwK3j + 08Ct49PArePczb3v49fK+uPXyvrj18r659zQ+/Hq4P/x6uD/8erg//Hq4P/x6uD/8erg//Hq4P/x6uD/ + 59zQ++PXyvrj18r649fK+tzNve/TwK3j08Ct49PArePTv63T0LyrkdC8q5HQvKuR0LyrkdG6pR7RuaIW + 0bmiFtG5ohbRuaIHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAMm5ogbJuaIHybmiB8m5ogfQvasW0b6sIdG+rCHRvqwh0r6sK9O/q0DTv6tA + 07+rQNTArUbXxban18W2p9fFtqfXxban2cm429rJuOnaybjp2sm46eHTxfLm28/75tvP++bbz/vp39P8 + 8erg//Hq4P/x6uD/8erg//Hq4P/x6uD/8erg//Hq4P/p39P85tvP++bbz/vm28/74dPF8trJuOnaybjp + 2sm46dnJuNvXxban18W2p9fFtqfXxban1MCtRtO/q0DTv6tA07+rQNK+rCvRvawh0b2sIdG9rCHQvasW + ybmiB8m5ogfJuaIHybmiBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAybmiHcm5oiHJuaIh + ybmiIdC9q3DRvqyl0b6spdG+rKXSv6271MGv5tTBr+bUwa/m1cOx6Ofbzv3n287959vO/efbzv3w6N3/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+fbzv3n287959vO/efbzv3Vw7Ho + 1MGv5tTBr+bUwa/m0r+tu9G9rKXRvayl0b2spdC9q3DJuaIhybmiIcm5oiHJuaIdAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAADJuaIdybmiIcm5oiHJuaIh0L2rcNG+rKXRvqyl0b6spdK/rbvUwa/m + 1MGv5tTBr+bVw7Ho59vO/efbzv3n287959vO/fDo3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6N3/59vO/efbzv3n287959vO/dXDsejUwa/m1MGv5tTBr+bSv6270b2spdG9rKXRvayl + 0L2rcMm5oiHJuaIhybmiIcm5oh0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMm5oh3JuaIh + ybmiIcm5oiHQvatw0b6spdG+rKXRvqyl0r+tu9TBr+bUwa/m1MGv5tXDsejn287959vO/efbzv3n2879 + 8Ojd//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Do3f/n287959vO/efbzv3n2879 + 1cOx6NTBr+bUwa/m1MGv5tK/rbvRvayl0b2spdG9rKXQvatwybmiIcm5oiHJuaIhybmiHQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAybmiHcm5oiHJuaIhybmiIdC9q3DRvqyl0b6spdG+rKXSv627 + 1MGv5tTBr+bUwa/m1cOx6Ofbzv3n287959vO/efbzv3w6N3/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8Ojd/+fbzv3n287959vO/efbzv3Vw7Ho1MGv5tTBr+bUwa/m0r+tu9G9rKXRvayl + 0b2spdC9q3DJuaIhybmiIcm5oiHJuaIdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAADMtaQRzLWkKsy1pCrMtaQqzrinO9G9q6rRvauq0b2rqtG9q6rUw7LT + 1cSz2tXEs9rVxLPa4tXH7One0vjp3tL46d7S+Ovi1vrw6N798Oje/fDo3v3w6d798erg//Hq4P/x6uD/ + 8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8erg//Hq4P/x6uD/ + 8erg//Dp3v3w6N798Oje/fDo3v3r4tb66d7S+One0vjp3tL44tXH7NXEs9rVxLPa1cSz2tTDstPRvauq + 0b2rqtG9q6rRvauqzrinO8y1pCrMtaQqzLWkKsy1pBEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy1pBLMtaQt + zLWkLcy1pC3OuKc/0b2rttG9q7bRvau20b2rttXDsuDVxLPn1cSz59XEs+fi1cj16uDU/urg1P7q4NT+ + 7eTY/vLr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+3k2P7q4NT+ + 6uDU/urg1P7i1cj11cSz59XEs+fVxLPn1cOy4NG9q7bRvau20b2rttG9q7bOuKc/zLWkLcy1pC3MtaQt + zLWkEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLWkEsy1pC3MtaQtzLWkLc64pz/Rvau20b2rttG9q7bRvau2 + 1cOy4NXEs+fVxLPn1cSz5+LVyPXq4NT+6uDU/urg1P7t5Nj+8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7eTY/urg1P7q4NT+6uDU/uLVyPXVxLPn1cSz59XEs+fVw7Lg + 0b2rttG9q7bRvau20b2rts64pz/MtaQtzLWkLcy1pC3MtaQSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMtaQS + zLWkLcy1pC3MtaQtzrinP9G9q7bRvau20b2rttG9q7bVw7Lg1cSz59XEs+fVxLPn4tXI9erg1P7q4NT+ + 6uDU/u3k2P7y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/t5Nj+ + 6uDU/urg1P7q4NT+4tXI9dXEs+fVxLPn1cSz59XDsuDRvau20b2rttG9q7bRvau2zrinP8y1pC3MtaQt + zLWkLcy1pBIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6Il + zLeiKMy3oijMt6Ioz7ypZdC9qoPQvaqD0L2qg9PArpPWxLSs1sS0rNbEtKzYx7e05NjL5+TYy+fk2Mvn + 5NjL5+je0vXp39P36d/T9+nf0/ft5Nn87+fd/+/n3f/v593/8One//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Dp3v/v593/7+fd/+/n3f/t5Nn86d/T9+nf0/fp39P3 + 6N7S9eTYy+fk2Mvn5NjL5+TYy+fYx7e01sS0rNbEtKzWxLSs08Cuk9C9qoPQvaqD0L2qg8+8qWXMt6Io + zLeiKMy3oijMt6IlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy3ojjMt6I8zLeiPMy3ojzPvKmX0L2qxdC9qsXQvarF + 08Gv1NfFtevXxbXr18W169rJuu7r4tb/6+LW/+vi1v/r4tb/8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/x6uD/6+LW/+vi1v/r4tb/6+LW/9rJuu7XxbXr + 18W169fFtevTwa/U0L2qxdC9qsXQvarFz7ypl8y3ojzMt6I8zLeiPMy3ojgAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + zLeiOMy3ojzMt6I8zLeiPM+8qZfQvarF0L2qxdC9qsXTwa/U18W169fFtevXxbXr2sm67uvi1v/r4tb/ + 6+LW/+vi1v/x6uD/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Hq4P/r4tb/6+LW/+vi1v/r4tb/2sm67tfFtevXxbXr18W169PBr9TQvarF0L2qxdC9qsXPvKmX + zLeiPMy3ojzMt6I8zLeiOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6I4zLeiPMy3ojzMt6I8z7ypl9C9qsXQvarF + 0L2qxdPBr9TXxbXr18W169fFtevaybru6+LW/+vi1v/r4tb/6+LW//Hq4P/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8erg/+vi1v/r4tb/6+LW/+vi1v/aybru + 18W169fFtevXxbXr08Gv1NC9qsXQvarF0L2qxc+8qZfMt6I8zLeiPMy3ojzMt6I4AAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM65pQzOuaUZzrmlGc65pRnPu6gk0b6rUdG+q1HRvqtR + 0b6rUdXDsn/Vw7KC1cOygtXDsoLczLy+3c+/3N3Pv9zdz7/c4NLD5eLVx/Pi1cfz4tXH8+TXyvXu5tr/ + 7uba/+7m2v/u5tr/8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/x6uD/7uba/+7m2v/u5tr/7uba/+TXyvXi1cfz4tXH8+LVx/Pg0sPl3c+/3N3Pv9zdz7/c + 3My8vtXDsoLVw7KC1cOygtXDsn/RvqtR0b6rUdG+q1HRvqtRz7uoJM65pRnOuaUZzrmlGc65pQwAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + zrmlHc65pT7OuaU+zrmlPs+7qFrRvqvL0b6ry9G+q8vRvqvL2ce36tnIuOzZyLjs2ci47Ofbzvnt5Nj/ + 7eTY/+3k2P/v59z/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh/+/n3P/t5Nj/7eTY/+3k2P/n28752ci47NnIuOzZyLjs2ce36tG+q8vRvqvL + 0b6ry9G+q8vPu6hazrmlPs65pT7OuaU+zrmlHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOuaUdzrmlPs65pT7OuaU+z7uoWtG+q8vRvqvL + 0b6ry9G+q8vZx7fq2ci47NnIuOzZyLjs59vO+e3k2P/t5Nj/7eTY/+/n3P/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7+fc/+3k2P/t5Nj/ + 7eTY/+fbzvnZyLjs2ci47NnIuOzZx7fq0b6ry9G+q8vRvqvL0b6ry8+7qFrOuaU+zrmlPs65pT7OuaUd + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAM65pR3OuaU+zrmlPs65pT7Pu6ha0b6ry9G+q8vRvqvL0b6ry9nHt+rZyLjs2ci47NnIuOzn2875 + 7eTY/+3k2P/t5Nj/7+fc//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/v59z/7eTY/+3k2P/t5Nj/59vO+dnIuOzZyLjs2ci47NnHt+rRvqvL + 0b6ry9G+q8vRvqvLz7uoWs65pT7OuaU+zrmlPs65pR0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAL+/nwG/v58Bv7+fAb+/nwHNuKQSzbikGM24pBjNuKQYzrqmNs+6p1fPuqdXz7qnV9G+q2/WxLLS + 1sSy0tbEstLWxLLS3My97d3Nvu/dzb7v3c2+7+jd0Pru5dn/7uXZ/+7l2f/v59z/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3P/u5dn/ + 7uXZ/+7l2f/o3dD63c2+793Nvu/dzb7v3My97dXEstLVxLLS1cSy0tXEstLRvqtvz7qnV8+6p1fPuqdX + z7qmNc65pRjOuaUYzrmlGM65pRK/v58Bv7+fAb+/nwG/v58Bv7+fCL+/nwi/v58Iv7+fCM24pIjNuKS3 + zbikt824pLfPuqfV0Lyp+NC8qfjQvKn41sSz+e3k2P/t5Nj/7eTY/+3k2P/y6+D/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/ + 7OPX/+zj1//s49f/7OPX/9bEs/nQvKr40Lyq+NC8qvjPu6jUzrmltc65pbXOuaW1zrmlh7+/nwi/v58I + v7+fCL+/nwi/v58Iv7+fCL+/nwi/v58IzbikiM24pLfNuKS3zbikt8+6p9XQvKn40Lyp+NC8qfjWxLP5 + 7eTY/+3k2P/t5Nj/7eTY//Lr4P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lq4P/s49f/7OPX/+zj1//s49f/1sSz+dC8qvjQvKr4 + 0Lyq+M+7qNTOuaW1zrmltc65pbXOuaWHv7+fCL+/nwi/v58Iv7+fCL+/nwi/v58Iv7+fCL+/nwjNuKSI + zbikt824pLfNuKS3z7qn1dC8qfjQvKn40Lyp+NbEs/nt5Nj/7eTY/+3k2P/t5Nj/8uvg//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8urg/+zj1//s49f/7OPX/+zj1//WxLP50Lyq+NC8qvjQvKr4z7uo1M65pbXOuaW1zrmltc65pYe/v58I + v7+fCL+/nwi/v58Iv7+fCL+/nwi/v58Iv7+fCM24pIjNuKS3zbikt824pLfPuqfV0Lyp+NC8qfjQvKn4 + 1sSz+e3k2P/t5Nj/7eTY/+3k2P/y6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/7OPX/+zj1//s49f/7OPX/9bEs/nQvKr4 + 0Lyq+NC8qvjPu6jUzrmltc65pbXOuaW1zrmlh7+/nwi/v58Iv7+fCL+/nwi/v58Bv7+fAb+/nwG/v58B + zbuiFc27oh3Nu6IdzbuiHc+7p0fPu6h4z7uoeM+7qHjRvauN1MKx4tTCseLUwrHi1MKx4t/Sw/Hg08Xy + 4NPF8uDTxfLq4dX77+jd/+/o3f/v6N3/8One//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7+bb/+3i1v/t4tb/7eLW/+fWxf/WtJj/1rSY/9a0mP/WtJj/ + 1rSY/9a0mP/WtJj/1rSY/+fWxf/t4tb/7eLW/+3i1v/v5tv/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/w6d7/7+jd/+/o3f/v6N3/6uHV++DTxfLg08Xy + 4NPF8t/Sw/HUwrHi1MKx4tTCseLUwrHi0b2rjc+7qXjPu6l4z7upeM+6qEfMuqgczLqoHMy6qBzMuqgV + v7+fAb+/nwG/v58Bv7+fAQAAAAAAAAAAAAAAAAAAAADMzJkEzMyZBczMmQXMzJkFz7unMc+6qGTPuqhk + z7qoZM+7qXzQvKrd0Lyq3dC8qt3QvKrd3M6/793PwPDdz8Dw3c/A8Onf0/rv59z/7+fc/+/n3P/w6d7/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/v5tr/ + 7OHU/+zh1P/s4dT/5dPB/9Ksjf/SrI3/0qyN/9Ksjf/SrI3/0qyN/9Ksjf/SrI3/5dPB/+zh1P/s4dT/ + 7OHU/+/m2v/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Dp3v/v59z/7+fc/+/n3P/p39P63c/A8N3PwPDdz8Dw3M6/79C8qt3QvKrd0Lyq3dC8qt3Pu6l8 + z7qoZM+6qGTPuqhkzrqpMb+/vwS/v78Ev7+/BL+/vwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAMzMmQTMzJkFzMyZBczMmQXPu6cxz7qoZM+6qGTPuqhkz7upfNC8qt3QvKrd0Lyq3dC8qt3czr/v + 3c/A8N3PwPDdz8Dw6d/T+u/n3P/v59z/7+fc//Dp3v/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/m2v/s4dT/7OHU/+zh1P/l08H/0qyN/9Ksjf/SrI3/ + 0qyN/9Ksjf/SrI3/0qyN/9Ksjf/l08H/7OHU/+zh1P/s4dT/7+ba//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8One/+/n3P/v59z/7+fc/+nf0/rdz8Dw + 3c/A8N3PwPDczr/v0Lyq3dC8qt3QvKrd0Lyq3c+7qXzPuqhkz7qoZM+6qGTOuqkxv7+/BL+/vwS/v78E + v7+/AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMyZBMzMmQXMzJkFzMyZBc+7pzHPuqhk + z7qoZM+6qGTPu6l80Lyq3dC8qt3QvKrd0Lyq3dzOv+/dz8Dw3c/A8N3PwPDp39P67+fc/+/n3P/v59z/ + 8One//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 7+ba/+zh1P/s4dT/7OHU/+XTwf/SrI3/0qyN/9Ksjf/SrI3/0qyN/9Ksjf/SrI3/0qyN/+XTwf/s4dT/ + 7OHU/+zh1P/v5tr/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6d7/7+fc/+/n3P/v59z/6d/T+t3PwPDdz8Dw3c/A8NzOv+/QvKrd0Lyq3dC8qt3QvKrd + z7upfM+6qGTPuqhkz7qoZM66qTG/v78Ev7+/BL+/vwS/v78DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADMzJkBzMyZAszMmQLMzJkCz7unFM+6qCjPuqgoz7qoKM+7qTLPvKpaz7yqWs+8qlrPvKpa + 18a2ltfGtprXxraa18a2mtzNvc/ez8Dp3s/A6d7PwOnh1MXu5trN9ebazfXm2s3159zP9/Do3f/w6N3/ + 8Ojd//Do3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/ + 7ePW/+3j1v/t49b/7ePW/+DItP/dwqv/3cKr/93Cq//Yt53/06+R/9Ovkf/Tr5H/1a2N/9ingP/Yp4D/ + 2KeA/9ingP/Yp4D/2KeA/9ingP/Yp4D/1ayM/9Ovkf/Tr5H/06+R/9i3nf/dwqv/3cKr/93Cq//gyLT/ + 7ePW/+3j1v/t49b/7ePW//Lq4P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6N3/8Ojd//Do3f/w6N3/59zP9ubazfXm2s315trN9eHUxe7ez8Dp3s/A6d7PwOnczb3P + 18a2mtfGtprXxraa18a2ltG7qVrRu6la0bupWtG7qVrQuqkyz7qoKM+6qCjPuqgozrqpFL+/vwK/v78C + v7+/Ar+/vwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAqqqqAaqqqgOqqqoDqqqqA6qqqgPNuKZbzbimYc24pmHNuKZhz7ypstC9qtvQvarb + 0L2q29XEsuPdzr7v3c6+793Ovu/f0cLx7ubb/+7m2//u5tv/7ubb//Hq4P/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hq4P/q3c7/6t3O/+rdzv/q3c7/1LGV/8+mh//Ppof/ + z6aH/8mZdf/DjWX/w41l/8ONZf/Kk2r/3KR4/9ykeP/cpHj/3KR4/9yjeP/co3j/3KN4/9yjeP/Kk2n/ + w41k/8ONZP/DjWT/yZl0/8+mh//Ppof/z6aH/9Sxlf/q3c7/6t3O/+rdzv/q3c7/8erg//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8erg/+7m2//u5tv/7ubb/+7m2//f0cLw + 3c6+7t3Ovu7dzr7u1cSy49C9qtvQvarb0L2q28+8qbLNuKZhzbimYc24pmHNuKZb/4CAAv+AgAL/gIAC + /4CAAv+AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqqqoBqqqqA6qqqgOqqqoD + qqqqA824plvNuKZhzbimYc24pmHPvKmy0L2q29C9qtvQvarb1cSy493Ovu/dzr7v3c6+79/RwvHu5tv/ + 7ubb/+7m2//u5tv/8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8erg/+rdzv/q3c7/6t3O/+rdzv/UsZX/z6aH/8+mh//Ppof/yZl1/8ONZf/DjWX/w41l/8qTav/cpHj/ + 3KR4/9ykeP/cpHj/3KN4/9yjeP/co3j/3KN4/8qTaf/DjWT/w41k/8ONZP/JmXT/z6aH/8+mh//Ppof/ + 1LGV/+rdzv/q3c7/6t3O/+rdzv/x6uD/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/x6uD/7ubb/+7m2//u5tv/7ubb/9/RwvDdzr7u3c6+7t3Ovu7VxLLj0L2q29C9qtvQvarb + z7ypss24pmHNuKZhzbimYc24plv/gIAC/4CAAv+AgAL/gIAC/4CAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAKqqqgGqqqoDqqqqA6qqqgOqqqoDzbimW824pmHNuKZhzbimYc+8qbLQvarb + 0L2q29C9qtvVxLLj3c6+793Ovu/dzr7v39HC8e7m2//u5tv/7ubb/+7m2//x6uD/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/x6uD/6t3O/+rdzv/q3c7/6t3O/9Sxlf/Ppof/ + z6aH/8+mh//JmXX/w41l/8ONZf/DjWX/ypNq/9ykeP/cpHj/3KR4/9ykeP/co3j/3KN4/9yjeP/co3j/ + ypNp/8ONZP/DjWT/w41k/8mZdP/Ppof/z6aH/8+mh//UsZX/6t3O/+rdzv/q3c7/6t3O//Hq4P/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hq4P/u5tv/7ubb/+7m2//u5tv/ + 39HC8N3Ovu7dzr7u3c6+7tXEsuPQvarb0L2q29C9qtvPvKmyzbimYc24pmHNuKZhzbimW/+AgAL/gIAC + /4CAAv+AgAL/gIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqqqqAKqqqgKqqqoC + qqqqAqqqqgLNuKY8zbimQc24pkHNuKZBz7ypd9C9qpLQvaqS0L2qktXDsqLby7q628u6utvLurrdzb3B + 5drN8eXazfHl2s3x5drN8erg1Pfr4dX46+HV+Ovh1fjt49f87uTY/+7k2P/u5Nj/69/R/+bUw//m1MP/ + 5tTD/+bTwf/dwqr/3cKq/93Cqv/dwqr/1aqJ/9Okgf/TpIH/06SB/9Kfef/Sm3H/0ptx/9Kbcf/Wn3X/ + 46p+/+Oqfv/jqn7/46p+/+Oqfv/jqn7/46p+/+Oqfv/Wn3T/0ptx/9Kbcf/Sm3H/0p94/9Okgf/TpIH/ + 06SB/9Wqif/dwqr/3cKq/93Cqv/dwqr/5tPB/+bUw//m1MP/5tTD/+vf0f/u5Nj/7uTY/+7k2P/t49f8 + 6+HV+Ovh1fjr4dX46uDU9+XazfHl2s3x5drN8eXazfHdzb3A28u6udvLurnby7q51cOyotC9qpLQvaqS + 0L2qks+8qXfNuKZBzbimQc24pkHNuKY8/4CAAf+AgAH/gIAB/4CAAf+AgAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAz7ilIM+4pU/PuKVPz7ilT8+5pmHPvarVz72q1c+9qtXPvarV2sm559vLu+rby7vq + 28u76uHSwvfl1sf/5dbH/+XWx//exrL/z6aH/8+mh//Ppof/zqSF/8OMY//DjGP/w4xj/8OMY//WnXH/ + 26F1/9uhdf/boXX/5qyA/++2iv/vtor/77aK/++2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/++2iv/vtor/77aK/++2iv/mrID/26F1/9uhdf/boXX/1p1x/8OMY//DjGP/w4xj/8OMY//OpIX/ + z6aH/8+mh//Ppof/3say/+XWx//l1sf/5dbH/+HSwvfby7vq28u76tvLu+raybnnz72q1c+9qtXPvarV + z72q1c+5pmHPuKVPz7ilT8+4pU/PuKUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPuKUgz7ilT8+4pU/PuKVP + z7mmYc+9qtXPvarVz72q1c+9qtXaybnn28u76tvLu+rby7vq4dLC9+XWx//l1sf/5dbH/97Gsv/Ppof/ + z6aH/8+mh//OpIX/w4xj/8OMY//DjGP/w4xj/9adcf/boXX/26F1/9uhdf/mrID/77aK/++2iv/vtor/ + 77aK//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/77aK/++2iv/vtor/77aK/+asgP/boXX/ + 26F1/9uhdf/WnXH/w4xj/8OMY//DjGP/w4xj/86khf/Ppof/z6aH/8+mh//exrL/5dbH/+XWx//l1sf/ + 4dLC99vLu+rby7vq28u76trJuefPvarVz72q1c+9qtXPvarVz7mmYc+4pU/PuKVPz7ilT8+4pSAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAM+4pSDPuKVPz7ilT8+4pU/PuaZhz72q1c+9qtXPvarVz72q1drJuefby7vq + 28u76tvLu+rh0sL35dbH/+XWx//l1sf/3say/8+mh//Ppof/z6aH/86khf/DjGP/w4xj/8OMY//DjGP/ + 1p1x/9uhdf/boXX/26F1/+asgP/vtor/77aK/++2iv/vtor/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//vtor/77aK/++2iv/vtor/5qyA/9uhdf/boXX/26F1/9adcf/DjGP/w4xj/8OMY//DjGP/ + zqSF/8+mh//Ppof/z6aH/97Gsv/l1sf/5dbH/+XWx//h0sL328u76tvLu+rby7vq2sm558+9qtXPvarV + z72q1c+9qtXPuaZhz7ilT8+4pU/PuKVPz7ilIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz7ilHc+4pUrPuKVK + z7ilSs+5plvPvKnKz7ypys+8qcrPvKnK2Ma05NnHtujZx7bo2ce26N/NvPbj0cD/49HA/+PRwP/cw63/ + 0KaG/9Cmhv/Qpob/z6SE/8aPZv/Gj2b/xo9m/8aPZv/Yn3P/3KJ2/9yidv/conb/5q2B/++2iv/vtor/ + 77aK/++2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/++2iv/vtor/77aK/++2iv/mrYH/ + 3KJ2/9yidv/conb/2J9z/8aPZv/Gj2b/xo9m/8aPZv/PpIT/0KaG/9Cmhv/Qpob/3MOt/+PRwP/j0cD/ + 49HA/9/NvPbZx7bo2ce26NnHtujYxrTkz7ypys+8qcrPvKnKz7ypys+5plvPuKVKz7ilSs+4pUrPuKUd + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAt3pOBrd6Ti63ek4ut3pOLrd6Ti68h1yz + vIdcx7yHXMe8h1zHv4hd5sGIXvvBiF77wYhe+8uSZ/zfpXn/36V5/9+lef/gpnr/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/+Cmev/fpXn/36V5/9+lef/Lkmf8wYhe+8GIXvvBiF77v4hd5ryHXMe8h1zHvIdcx7yHXLO3ek4u + t3pOLrd6Ti63ek4ut3pOBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAC3ek4Gt3pOLrd6Ti63ek4ut3pOLryHXLO8h1zHvIdcx7yHXMe/iF3mwYhe+8GIXvvBiF77 + y5Jn/N+lef/fpXn/36V5/+Cmev/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/4KZ6/9+lef/fpXn/36V5/8uSZ/zBiF77 + wYhe+8GIXvu/iF3mvIdcx7yHXMe8h1zHvIdcs7d6Ti63ek4ut3pOLrd6Ti63ek4GAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALd6Tga3ek4ut3pOLrd6Ti63ek4u + vIdcs7yHXMe8h1zHvIdcx7+IXebBiF77wYhe+8GIXvvLkmf836V5/9+lef/fpXn/4KZ6//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//gpnr/36V5/9+lef/fpXn/y5Jn/MGIXvvBiF77wYhe+7+IXea8h1zHvIdcx7yHXMe8h1yz + t3pOLrd6Ti63ek4ut3pOLrd6TgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAt3pOBrd6Ti63ek4ut3pOLrd6Ti68h1yzvIdcx7yHXMe8h1zHv4hd5sGIXvvBiF77 + wYhe+8uSZ/zfpXn/36V5/9+lef/gpnr/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+Cmev/fpXn/36V5/9+lef/Lkmf8 + wYhe+8GIXvvBiF77v4hd5ryHXMe8h1zHvIdcx7yHXLO3ek4ut3pOLrd6Ti63ek4ut3pOBgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAuH1PIbh9TzG4fU8xuH1PMbqAU127gVWgu4FVoLuBVaC8glalwohcyMKIXMjCiFzI + wohcyNqhde7dpHj03aR49N2kePTjqn76566C/ueugv7nroL+6bCE/u2zh//ts4f/7bOH/+20iP/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7bSI/+2zh//ts4f/7bOH/+mwhP7nroL+566C/ueugv7jqn763aR49N2kePTdpHj0 + 2qF17sKIXMjCiFzIwohcyMKIXMi9glamvIFVobyBVaG8gVWhu4BTXrh9TzG4fU8xuH1PMbh9TyEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4fU8puH1PPbh9Tz24fU89 + uoBTdbuBVci7gVXIu4FVyLyCVs3DiV3uw4ld7sOJXe7DiV3u4KZ6/eSqfv/kqn7/5Kp+/+uyhv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+uyhv/kqn7/5Kp+/+Sqfv/gpnr9w4ld7sOJXe7DiV3uw4ld7r2CVs68gVXJ + vIFVybyBVcm7gFN1uH1PPbh9Tz24fU89uH1PKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALh9Tym4fU89uH1PPbh9Tz26gFN1u4FVyLuBVci7gVXIvIJWzcOJXe7DiV3u + w4ld7sOJXe7gpnr95Kp+/+Sqfv/kqn7/67KG//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/67KG/+Sqfv/kqn7/ + 5Kp+/+Cmev3DiV3uw4ld7sOJXe7DiV3uvYJWzryBVcm8gVXJvIFVybuAU3W4fU89uH1PPbh9Tz24fU8p + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuH1PKbh9Tz24fU89 + uH1PPbqAU3W7gVXIu4FVyLuBVci8glbNw4ld7sOJXe7DiV3uw4ld7uCmev3kqn7/5Kp+/+Sqfv/rsob/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//rsob/5Kp+/+Sqfv/kqn7/4KZ6/cOJXe7DiV3uw4ld7sOJXe69glbO + vIFVybyBVcm8gVXJu4BTdbh9Tz24fU89uH1PPbh9TykAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1flEHtX5RJbV+USW1flEl + tX5RJbqAVGu6gFRwuoBUcLqAVHDCiFyNxItfm8SLX5vEi1+bzZNnudWccOXVnHDl1Zxw5dadcejconb3 + 3KJ299yidvfconb36a+D/uqxhf/qsYX/6rGF/+61if/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61if/qsYX/ + 6rGF/+qxhf/pr4P+3KJ299yidvfconb33KJ299adcejVnHDm1Zxw5tWccObNk2e5xYtemsWLXprFi16a + wohbjLqAVHC6gFRwuoBUcLqAVGu1flEltX5RJbV+USW1flEltX5RBwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALV+UQ61flFFtX5RRbV+UUW1flFFuoBUybqAVNK6gFTSuoBU0sOKXuTHjmLt + x45i7ceOYu3Um2/0566C/+eugv/nroL/6K+D//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 6K+D/+eugv/nroL/566C/9Wbb/TIjmHsyI5h7MiOYezEil3juoBU0rqAVNK6gFTSuoBUybV+UUW1flFF + tX5RRbV+UUW1flEOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtX5RDrV+UUW1flFF + tX5RRbV+UUW6gFTJuoBU0rqAVNK6gFTSw4pe5MeOYu3HjmLtx45i7dSbb/TnroL/566C/+eugv/or4P/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//or4P/566C/+eugv/nroL/1Ztv9MiOYezIjmHs + yI5h7MSKXeO6gFTSuoBU0rqAVNK6gFTJtX5RRbV+UUW1flFFtX5RRbV+UQ4AAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAC1flEOtX5RRbV+UUW1flFFtX5RRbqAVMm6gFTSuoBU0rqAVNLDil7k + x45i7ceOYu3HjmLt1Jtv9Oeugv/nroL/566C/+ivg//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/+ivg//nroL/566C/+eugv/Vm2/0yI5h7MiOYezIjmHsxIpd47qAVNK6gFTSuoBU0rqAVMm1flFF + tX5RRbV+UUW1flFFtX5RDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAKqAVQKqgFUCqoBVAqqAVQK5gFIVuYBSHLmAUhy5gFIcvIFVK72BVju9gVY7vYFWO8CFWUfFjGBz + xYxgc8WMYHPFjGBzyY9j18mPZN7Jj2TeyY9k3tCWauvTmm7y05pu8tOabvLco3f36bCE/+mwhP/psIT/ + 6rGF//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/6rGF/+mwhP/psIT/6bCE/9yjd/fTmm3x + 05pt8dOabfHQlmrryY9k3smPZN7Jj2TeyY9j18WMX3PFjF9zxYxfc8WMX3PAhVlHvYFWO72BVju9gVY7 + vIFVK7mAUhy5gFIcuYBSHLmAUhWqgFUCqoBVAqqAVQKqgFUCqoBVBqqAVQaqgFUGqoBVBrmAUk+5gFJq + uYBSarmAUmq8gVWhvYFW372BVt+9gVbfwYZa49KXa/HSl2vx0pdr8dKXa/HpsIX+67KH/+uyh//rsof/ + 7rWK//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61iv/rsof/67KH/+uyh//psIX+ + 0Zdq8tGXavLRl2ry0Zdq8sGGWuO9gVbfvYFW372BVt+8gVWhuYBSarmAUmq5gFJquYBST6qAVQaqgFUG + qoBVBqqAVQaqgFUGqoBVBqqAVQaqgFUGuYBST7mAUmq5gFJquYBSaryBVaG9gVbfvYFW372BVt/Bhlrj + 0pdr8dKXa/HSl2vx0pdr8emwhf7rsof/67KH/+uyh//utYr/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7rWK/+uyh//rsof/67KH/+mwhf7Rl2ry0Zdq8tGXavLRl2rywYZa472BVt+9gVbf + vYFW37yBVaG5gFJquYBSarmAUmq5gFJPqoBVBqqAVQaqgFUGqoBVBqqAVQaqgFUGqoBVBqqAVQa5gFJP + uYBSarmAUmq5gFJqvIFVob2BVt+9gVbfvYFW38GGWuPSl2vx0pdr8dKXa/HSl2vx6bCF/uuyh//rsof/ + 67KH/+61iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utYr/67KH/+uyh//rsof/ + 6bCF/tGXavLRl2ry0Zdq8tGXavLBhlrjvYFW372BVt+9gVbfvIFVobmAUmq5gFJquYBSarmAUk+qgFUG + qoBVBqqAVQaqgFUGqoBVBqqAVQaqgFUGqoBVBrmAUk+5gFJquYBSarmAUmq8gVWhvYFW372BVt+9gVbf + wYZa49KXa/HSl2vx0pdr8dKXa/HpsIX+67KH/+uyh//rsof/7rWK//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+61iv/rsof/67KH/+uyh//psIX+0Zdq8tGXavLRl2ry0Zdq8sGGWuO9gVbf + vYFW372BVt+8gVWhuYBSarmAUmq5gFJquYBST6qAVQaqgFUGqoBVBqqAVQa/gEAEv4BABL+AQAS/gEAE + un1SSrp9UmS6fVJkun1SZLuAVJy7gVXdu4FV3buBVd3AhVnh0ZZq8NGWavDRlmrw0ZZq8OmwhP7rsob/ + 67KG/+uyhv/utYn/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+62iv/ptYn/6bWJ/+m1if/ptYn/ + 6baI/+m2iP/ptoj/6baI/+63iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/7rWJ/+uyhv/rsob/ + 67KG/+mwhP7Rlmrw0ZZq8NGWavDRlmrwwIVZ4buBVd27gVXdu4FV3buAVJy6fVJkun1SZLp9UmS6fVJK + v4BABL+AQAS/gEAEv4BABL+AQAS/gEAEv4BABL+AQAS6fVJKun1SZLp9UmS6fVJku4BUnLuBVd27gVXd + u4FV3cCFWeHRlmrw0ZZq8NGWavDRlmrw6bCE/uuyhv/rsob/67KG/+61if/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7raK/+m1if/ptYn/6bWJ/+m1if/ptoj/6baI/+m2iP/ptoj/7reK//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//utYn/67KG/+uyhv/rsob/6bCE/tGWavDRlmrw0ZZq8NGWavDAhVnh + u4FV3buBVd27gVXdu4BUnLp9UmS6fVJkun1SZLp9Ukq/gEAEv4BABL+AQAS/gEAEv4BABL+AQAS/gEAE + v4BABLp9Ukq6fVJkun1SZLp9UmS7gFScu4FV3buBVd27gVXdwIVZ4dGWavDRlmrw0ZZq8NGWavDpsIT+ + 67KG/+uyhv/rsob/7rWJ//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utor/6bWJ/+m1if/ptYn/ + 6bWJ/+m2iP/ptoj/6baI/+m2iP/ut4r/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61if/rsob/ + 67KG/+uyhv/psIT+0ZZq8NGWavDRlmrw0ZZq8MCFWeG7gVXdu4FV3buBVd27gFScun1SZLp9UmS6fVJk + un1SSr+AQAS/gEAEv4BABL+AQAS/gEAEv4BABL+AQAS/gEAEun1SSrp9UmS6fVJkun1SZLuAVJy7gVXd + u4FV3buBVd3AhVnh0ZZq8NGWavDRlmrw0ZZq8OmwhP7rsob/67KG/+uyhv/utYn/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+62iv/ptYn/6bWJ/+m1if/ptYn/6baI/+m2iP/ptoj/6baI/+63iv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/7rWJ/+uyhv/rsob/67KG/+mwhP7Rlmrw0ZZq8NGWavDRlmrw + wIVZ4buBVd27gVXdu4FV3buAVJy6fVJkun1SZLp9UmS6fVJKv4BABL+AQAS/gEAEv4BABL+AQAG/gEAB + v4BAAb+AQAG6fVIUun1SG7p9Uhu6fVIbun9UK7p/VT26f1U9un9VPb6DWEzEiV6IxIleiMSJXojEiV6I + yo9j4MqPY+fKj2Pnyo9j59OZbPDXnXD0151w9NedcPTfpXn467GG/+uxhv/rsYb/7LKH//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+q1if/otYj/6LWI/+i1iP/RsYH/va16/72tev+9rXr/tqx4/6Opc/+jqXP/ + o6lz/6Opc/+jqnP/o6pz/6Oqc/+jqnP/t6x4/76tev++rXr/vq16/9Kxgf/otYj/6LWI/+i1iP/qtYn/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/7LOG/+uyhf/rsoX/67KF/9+mefjXnXD0151w9NedcPTTmWzw + yo9j58qPY+fKj2Pnyo9j4MSJXojEiV6IxIleiMSJXoi+g1hMun9VPbp/VT26f1U9un9UK7p9Uhu6fVIb + un1SG7p9UhS/gEABv4BAAb+AQAG/gEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUB + qlVVA6pVVQOqVVUDt3lTFrl9U2K5fVNiuX1TYrl9U2K8gVXWvIFV3ryBVd68gVXeyI1h6s2TZvDNk2bw + zZNm8Nmfcvbpr4T/6a+E/+mvhP/qsIX/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/57WI/+W0h//ltIf/ + 5bSH/8avff+rqnT/q6p0/6uqdP+iqXL/iaVr/4mla/+JpWv/iaVr/4mla/+JpWv/iaVr/4mla/+jqXL/ + rKp0/6yqdP+sqnT/x699/+W0h//ltIf/5bSH/+e1iP/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//qsYT/ + 6bCD/+mwg//psIP/2Z9y9s2TZvDNk2bwzZNm8MiNYeq8gVXevIFV3ryBVd68gVXWuX1TYrl9U2K5fVNi + uX1TYrd5UxaqVVUDqlVVA6pVVQOqVVUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKpVVQGqVVUDqlVVA6pVVQO3eVMWuX1TYrl9U2K5fVNi + uX1TYryBVda8gVXevIFV3ryBVd7IjWHqzZNm8M2TZvDNk2bw2Z9y9umvhP/pr4T/6a+E/+qwhf/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//ntYj/5bSH/+W0h//ltIf/xq99/6uqdP+rqnT/q6p0/6Kpcv+JpWv/ + iaVr/4mla/+JpWv/iaVr/4mla/+JpWv/iaVr/6Opcv+sqnT/rKp0/6yqdP/Hr33/5bSH/+W0h//ltIf/ + 57WI//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+qxhP/psIP/6bCD/+mwg//Zn3L2zZNm8M2TZvDNk2bw + yI1h6ryBVd68gVXevIFV3ryBVda5fVNiuX1TYrl9U2K5fVNit3lTFqpVVQOqVVUDqlVVA6pVVQEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + qlVVAapVVQOqVVUDqlVVA7d5Uxa5fVNiuX1TYrl9U2K5fVNivIFV1ryBVd68gVXevIFV3siNYerNk2bw + zZNm8M2TZvDZn3L26a+E/+mvhP/pr4T/6rCF//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+e1iP/ltIf/ + 5bSH/+W0h//Gr33/q6p0/6uqdP+rqnT/oqly/4mla/+JpWv/iaVr/4mla/+JpWv/iaVr/4mla/+JpWv/ + o6ly/6yqdP+sqnT/rKp0/8evff/ltIf/5bSH/+W0h//ntYj/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 6rGE/+mwg//psIP/6bCD/9mfcvbNk2bwzZNm8M2TZvDIjWHqvIFV3ryBVd68gVXevIFV1rl9U2K5fVNi + uX1TYrl9U2K3eVMWqlVVA6pVVQOqVVUDqlVVAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUBqlVVAqpVVQKqVVUCt3lTDLl9UzS5fVM0 + uX1TNLl9UzS8gFVyvIBVd7yAVXe8gFV3xYpelsiOYaXIjmGlyI5hpc+UacHWnHDr1pxw69accOvXnXLt + 4KZ69uCmevbgpnr24KZ69uuyhv7ss4f/7LOH/+yzh//vtor/8LeL//C3i//wt4v/7reK/+u2if/rton/ + 67aJ/+m1if/RsYH/0bGB/9Gxgf/RsYH/v657/7qtev+6rXr/uq16/6yve/+fsXv/n7F7/5+xe/+csnz/ + kraA/5K2gP+StoD/kraA/5K2gP+StoD/kraA/5K2gP+csnz/n7F7/5+xe/+fsXv/rK97/7qtev+6rXr/ + uq16/7+ue//RsYH/0bGB/9Gxgf/RsYH/6bWJ/+u2if/rton/67aJ/+63iv/wt4v/8LeL//C3i//vtor/ + 7LOH/+yzh//ss4f/67KG/uCmevbgpnr24KZ69uCmevbXnnHt1pxw69accOvWnHDrz5VowciOYaXIjmGl + yI5hpcWKXpW8gVV2vIFVdryBVXa8gVVyuX1TNLl9UzS5fVM0uX1TNLd5UwyqVVUCqlVVAqpVVQKqVVUB + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAH/AAAB/wAAAf8AAAG4elA1 + uHtRT7h7UU+4e1FPun9UhbuBVdW7gVXVu4FV1b2DV9jMkWXrzJFl68yRZevMkWXr5at//Oivg//or4P/ + 6K+D/+20iP/wt4v/8LeL//C3i//stor/5bSH/+W0h//ltIf/4bOG/62rdf+tq3X/rat1/62rdf+Qpm3/ + iaVr/4mla/+JpWv/jbB4/5G5g/+RuYP/kbmD/5S9if+dyZj/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/ + ncmY/5S9if+RuYP/kbmD/5G5g/+NsHj/iaVr/4mla/+JpWv/kKZt/62rdf+tq3X/rat1/62rdf/hs4b/ + 5bSH/+W0h//ltIf/7LaK//C3i//wt4v/8LeL/+20iP/or4P/6K+D/+ivg//lq3/8zJFl68yRZevMkWXr + zJFl672DV9i7gVXVu4FV1buBVdW6f1SFuHtRT7h7UU+4e1FPuHtRNQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA/wAAAf8AAAH/AAAB/wAAAbh6UDW4e1FPuHtRT7h7UU+6f1SFu4FV1buBVdW7gVXV + vYNX2MyRZevMkWXrzJFl68yRZevlq3/86K+D/+ivg//or4P/7bSI//C3i//wt4v/8LeL/+y2iv/ltIf/ + 5bSH/+W0h//hs4b/rat1/62rdf+tq3X/rat1/5Cmbf+JpWv/iaVr/4mla/+NsHj/kbmD/5G5g/+RuYP/ + lL2J/53JmP+dyZj/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/lL2J/5G5g/+RuYP/kbmD/42weP+JpWv/ + iaVr/4mla/+Qpm3/rat1/62rdf+tq3X/rat1/+Gzhv/ltIf/5bSH/+W0h//stor/8LeL//C3i//wt4v/ + 7bSI/+ivg//or4P/6K+D/+Wrf/zMkWXrzJFl68yRZevMkWXrvYNX2LuBVdW7gVXVu4FV1bp/VIW4e1FP + uHtRT7h7UU+4e1E1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAB/wAAAf8AAAH/AAAB + uHpQNbh7UU+4e1FPuHtRT7p/VIW7gVXVu4FV1buBVdW9g1fYzJFl68yRZevMkWXrzJFl6+Wrf/zor4P/ + 6K+D/+ivg//ttIj/8LeL//C3i//wt4v/7LaK/+W0h//ltIf/5bSH/+Gzhv+tq3X/rat1/62rdf+tq3X/ + kKZt/4mla/+JpWv/iaVr/42weP+RuYP/kbmD/5G5g/+UvYn/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/ + ncmY/53JmP+UvYn/kbmD/5G5g/+RuYP/jbB4/4mla/+JpWv/iaVr/5Cmbf+tq3X/rat1/62rdf+tq3X/ + 4bOG/+W0h//ltIf/5bSH/+y2iv/wt4v/8LeL//C3i//ttIj/6K+D/+ivg//or4P/5at//MyRZevMkWXr + zJFl68yRZeu9g1fYu4FV1buBVdW7gVXVun9Uhbh7UU+4e1FPuHtRT7h7UTUAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAP8AAAH/AAAB/wAAAf8AAAG4elAquHtRP7h7UT+4e1E/un9UaruBVaq7gVWq + u4FVqr2DV67LkGTIy5BkyMuQZMjLkGTI3KV58N6oe/beqHv23qh79t6ugPvesoP93rKD/d6yg/3asYP+ + 0rGB/9Kxgf/SsYH/0LGB/6iuef+ornn/qK55/6iuef+TrXX/jax0/42sdP+NrHT/kbV+/5S8h/+UvIf/ + lLyH/5bAjP+dyZj/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/ncmY/5bAjP+UvIf/lLyH/5S8h/+RtX7/ + jax0/42sdP+NrHT/k611/6iuef+ornn/qK55/6iuef/QsYH/0rGB/9Kxgf/SsYH/2rGD/t6yg/3esoP9 + 3rKD/d6ugPveqHv23qh79t6oe/bcpXnwy5BkyMuQZMjLkGTIy5BkyL2DV667gVWqu4FVqruBVaq6f1Rq + uHtRP7h7UT+4e1E/uHtRKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtHtPCLR7Tzq0e086tHtPOrR7TzqwhVa/ + sIVW07CFVtOwhVbTnpNf6ZSbZPeUm2T3lJtk95CeZvqIpWv/iKVr/4ila/+Jpm3/k7uH/5O7h/+Tu4f/ + k7uH/5zGlf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cxpX/k7uH/5O7h/+Tu4f/ + k7uH/4mmbf+IpWv/iKVr/4ila/+Qnmb6lJtk95SbZPeUm2T3npNf6bCFVtOwhVbTsIVW07CFVr+0e086 + tHtPOrR7Tzq0e086tHtPCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAC0e08ItHtPOrR7Tzq0e086tHtPOrCFVr+whVbTsIVW07CFVtOek1/plJtk95SbZPeUm2T3 + kJ5m+oila/+IpWv/iKVr/4mmbf+Tu4f/k7uH/5O7h/+Tu4f/nMaV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5zGlf+Tu4f/k7uH/5O7h/+Tu4f/iaZt/4ila/+IpWv/iKVr/5CeZvqUm2T3 + lJtk95SbZPeek1/psIVW07CFVtOwhVbTsIVWv7R7Tzq0e086tHtPOrR7Tzq0e08IAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALR7Twi0e086tHtPOrR7Tzq0e086 + sIVWv7CFVtOwhVbTsIVW056TX+mUm2T3lJtk95SbZPeQnmb6iKVr/4ila/+IpWv/iaZt/5O7h/+Tu4f/ + k7uH/5O7h/+cxpX/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMaV/5O7h/+Tu4f/ + k7uH/5O7h/+Jpm3/iKVr/4ila/+IpWv/kJ5m+pSbZPeUm2T3lJtk956TX+mwhVbTsIVW07CFVtOwhVa/ + tHtPOrR7Tzq0e086tHtPOrR7TwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAtHtPCLR7Tzq0e086tHtPOrR7TzqwhVa/sIVW07CFVtOwhVbTnpNf6ZSbZPeUm2T3 + lJtk95CeZvqIpWv/iKVr/4ila/+Jpm3/k7uH/5O7h/+Tu4f/k7uH/5zGlf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cxpX/k7uH/5O7h/+Tu4f/k7uH/4mmbf+IpWv/iKVr/4ila/+Qnmb6 + lJtk95SbZPeUm2T3npNf6bCFVtOwhVbTsIVW07CFVr+0e086tHtPOrR7Tzq0e086tHtPCAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHefYBF3n2Aqd59gKnefYCp5oGI8fKJlrnyiZa58omWu + fKJlroKla96DpWzmg6Vs5oOlbOaPtH/0lr2K/pa9iv6WvYr+mMCO/p3Hlv+dx5b/nceW/53Hlv+dyJj/ + nciY/53ImP+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/ + nciY/53ImP+dyJj/nceW/53Hlv+dx5b/nceW/5jAjv6WvYr+lr2K/pa9iv6PtH/0g6Vs5oOlbOaDpWzm + gqVr3nyiZa58omWufKJlrnyiZa55oGI8d59gKnefYCp3n2Aqd59gEQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + d59gEnefYC13n2Atd59gLXmhYj97o2W2e6NltnujZbZ7o2W2f6ds4ICnbeeAp23ngKdt5462gfWWv43+ + lr+N/pa/jf6ZwpH+nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + mcKR/pa/jf6Wv43+lr+N/o62gfWAp23ngKdt54Cnbed/p2zge6NltnujZbZ7o2W2e6NltnmhYj93n2At + d59gLXefYC13n2ASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3n2ASd59gLXefYC13n2AteaFiP3ujZbZ7o2W2 + e6NltnujZbZ/p2zggKdt54CnbeeAp23njraB9Za/jf6Wv43+lr+N/pnCkf6eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+ZwpH+lr+N/pa/jf6Wv43+jraB9YCnbeeAp23n + gKdt53+nbOB7o2W2e6NltnujZbZ7o2W2eaFiP3efYC13n2Atd59gLXefYBIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHefYBJ3n2Atd59gLXefYC15oWI/e6NltnujZbZ7o2W2e6Nltn+nbOCAp23ngKdt54CnbeeOtoH1 + lr+N/pa/jf6Wv43+mcKR/p7Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5nCkf6Wv43+lr+N/pa/jf6OtoH1gKdt54CnbeeAp23nf6ds4HujZbZ7o2W2e6NltnujZbZ5oWI/ + d59gLXefYC13n2Atd59gEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHedXiV3nV4od51eKHedXih6oWRleqJlg3qiZYN6omWDfaRpk4CnbqyAp26sgKdurIOqcrSQuYTn + kLmE55C5hOeQuYTnlL6K9ZW+i/eVvov3lb6L95nDkfybxpX/m8aV/5vGlf+cx5b/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMeW/5vGlf+bxpX/m8aV/5nDkfyVvov3 + lb6L95W+i/eUvor1kLmE55C5hOeQuYTnkLmE54OqcrSAp26sgKdurICnbqx9pGmTeqJlg3qiZYN6omWD + eqFkZXedXih3nV4od51eKHedXiUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd51eOHedXjx3nV48d51ePHqhZJd6omXF + eqJlxXqiZcV9pWnUgahv64Gob+uBqG/rhKx07pfBj/+XwY//l8GP/5fBj/+dyJj/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+XwY//l8GP/5fBj/+XwY// + hKx07oGob+uBqG/rgahv632ladR6omXFeqJlxXqiZcV6oWSXd51ePHedXjx3nV48d51eOAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3nV44d51ePHedXjx3nV48eqFkl3qiZcV6omXFeqJlxX2ladSBqG/rgahv64Gob+uErHTu + l8GP/5fBj/+XwY//l8GP/53ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nciY/5fBj/+XwY//l8GP/5fBj/+ErHTugahv64Gob+uBqG/rfaVp1HqiZcV6omXF + eqJlxXqhZJd3nV48d51ePHedXjx3nV44AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHedXjh3nV48d51ePHedXjx6oWSX + eqJlxXqiZcV6omXFfaVp1IGob+uBqG/rgahv64SsdO6XwY//l8GP/5fBj/+XwY//nciY/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/l8GP/5fBj/+XwY// + l8GP/4SsdO6BqG/rgahv64Gob+t9pWnUeqJlxXqiZcV6omXFeqFkl3edXjx3nV48d51ePHedXjgAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd6BfDHegXxl3oF8Zd6BfGXmhYSR7omRR + e6JkUXuiZFF7omRRf6drf4Cna4KAp2uCgKdrgoavdr6IsXnciLF53IixedyKs3zljbaB8422gfONtoHz + j7iD9ZrEk/+axJP/msST/5rEk/+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/53ImP+axJP/msST/5rEk/+axJP/j7iD9Y22gfONtoHzjbaB84qzfOWIsXnc + iLF53IixedyGr3a+gKdrgoCna4KAp2uCf6drf3uiZFF7omRRe6JkUXuiZFF5oWEkd6BfGXegXxl3oF8Z + d6BfDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3oF8dd6BfPnegXz53oF8+eaFhWnuiZMt7omTLe6Jky3uiZMuDqm/qg6tw7IOrcOyDq3Ds + kbuH+ZjDkf+Yw5H/mMOR/5rFlP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/msWU/5jDkf+Yw5H/mMOR/5G7h/mDq3Dsg6tw7IOrcOyDqm/q + e6Jky3uiZMt7omTLe6Jky3mhYVp3oF8+d6BfPnegXz53oF8dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHegXx13oF8+d6BfPnegXz55oWFa + e6Jky3uiZMt7omTLe6Jky4Oqb+qDq3Dsg6tw7IOrcOyRu4f5mMOR/5jDkf+Yw5H/msWU/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+axZT/ + mMOR/5jDkf+Yw5H/kbuH+YOrcOyDq3Dsg6tw7IOqb+p7omTLe6Jky3uiZMt7omTLeaFhWnegXz53oF8+ + d6BfPnegXx0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAd6BfHXegXz53oF8+d6BfPnmhYVp7omTLe6Jky3uiZMt7omTLg6pv6oOrcOyDq3Ds + g6tw7JG7h/mYw5H/mMOR/5jDkf+axZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5rFlP+Yw5H/mMOR/5jDkf+Ru4f5g6tw7IOrcOyDq3Ds + g6pv6nuiZMt7omTLe6Jky3uiZMt5oWFad6BfPnegXz53oF8+d6BfHQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAgJ9gAYCfYAGAn2ABgJ9gAXacXxJ2nF8YdpxfGHacXxh4n2A2eKBhV3igYVd4oGFX + e6Nlb4Cna9KAp2vSgKdr0oCna9KGr3Xth69274evdu+Hr3bvk72J+pnEkv+ZxJL/mcSS/5vGlf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + m8aV/5nEkv+ZxJL/mcSS/5O9ifqHr3bvh69274evdu+Gr3XtgKdr0oCna9KAp2vSgKdr0nujZW94oGFX + eKBhV3igYVd3oGE1dp5gGHaeYBh2nmAYdp5gEoCfYAGAn2ABgJ9gAYCfYAGAn2AIgJ9gCICfYAiAn2AI + dpxfiHacX7d2nF+3dpxft3ieYtV6oGT4eqBk+HqgZPiAp235mMOR/5jDkf+Yw5H/mMOR/57JmP+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57JmP+YwpD/mMKQ/5jCkP+YwpD/f6dt+XmgZPh5oGT4eaBk+HifYtR2nmC1dp5gtXaeYLV2nmCH + gJ9gCICfYAiAn2AIgJ9gCICfYAiAn2AIgJ9gCICfYAh2nF+Idpxft3acX7d2nF+3eJ5i1XqgZPh6oGT4 + eqBk+ICnbfmYw5H/mMOR/5jDkf+Yw5H/nsmY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmY/5jCkP+YwpD/mMKQ/5jCkP9/p235 + eaBk+HmgZPh5oGT4eJ9i1HaeYLV2nmC1dp5gtXaeYIeAn2AIgJ9gCICfYAiAn2AIgJ9gCICfYAiAn2AI + gJ9gCHacX4h2nF+3dpxft3acX7d4nmLVeqBk+HqgZPh6oGT4gKdt+ZjDkf+Yw5H/mMOR/5jDkf+eyZj/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZj/mMKQ/5jCkP+YwpD/mMKQ/3+nbfl5oGT4eaBk+HmgZPh4n2LUdp5gtXaeYLV2nmC1 + dp5gh4CfYAiAn2AIgJ9gCICfYAiAn2AIgJ9gCICfYAiAn2AIdpxfiHacX7d2nF+3dpxft3ieYtV6oGT4 + eqBk+HqgZPiAp235mMOR/5jDkf+Yw5H/mMOR/57JmP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57JmP+YwpD/mMKQ/5jCkP+YwpD/ + f6dt+XmgZPh5oGT4eaBk+HifYtR2nmC1dp5gtXaeYLV2nmCHgJ9gCICfYAiAn2AIgJ9gCICfYAGAn2AB + gJ9gAYCfYAF0nGAVdJxgHXScYB10nGAdd6BjR3mhY3h5oWN4eaFjeHujZo1/p2zif6ds4n+nbOJ/p2zi + irN88Yu0ffKLtH3yi7R98pbAjfubxpX/m8aV/5vGlf+cx5b/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHlv+bxpX/m8aV/5vGlf+WwI37 + i7R98ou0ffKLtH3yirN88X+nbOJ/p2zif6ds4n+nbOJ7o2aNeKFjeHihY3h4oWN4eJ9iR3eaXBx3mlwc + d5pcHHeaXBWAn2ABgJ9gAYCfYAGAn2ABAAAAAAAAAAAAAAAAAAAAAGaZZgRmmWYFZplmBWaZZgV3oWMx + eKFjZHihY2R4oWNkeaFkfHuiZt17ombde6Jm3XuiZt2Hr3jviLB58IiwefCIsHnwlb6L+pvFlP+bxZT/ + m8WU/5zHlv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nMeW/5vFlP+bxZT/m8WU/5W+i/qIsHnwiLB58IiwefCHr3jve6Jm3XuiZt17ombd + e6Jm3XmhZHx4oWNkeKFjZHihY2R4oGExgIBABICAQASAgEAEgIBAAwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAZplmBGaZZgVmmWYFZplmBXehYzF4oWNkeKFjZHihY2R5oWR8e6Jm3XuiZt17ombd + e6Jm3YeveO+IsHnwiLB58IiwefCVvov6m8WU/5vFlP+bxZT/nMeW/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cx5b/m8WU/5vFlP+bxZT/ + lb6L+oiwefCIsHnwiLB58IeveO97ombde6Jm3XuiZt17ombdeaFkfHihY2R4oWNkeKFjZHigYTGAgEAE + gIBABICAQASAgEADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmmWYEZplmBWaZZgVmmWYF + d6FjMXihY2R4oWNkeKFjZHmhZHx7ombde6Jm3XuiZt17ombdh69474iwefCIsHnwiLB58JW+i/qbxZT/ + m8WU/5vFlP+cx5b/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5zHlv+bxZT/m8WU/5vFlP+Vvov6iLB58IiwefCIsHnwh69473uiZt17ombd + e6Jm3XuiZt15oWR8eKFjZHihY2R4oWNkeKBhMYCAQASAgEAEgIBABICAQAMAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAGaZZgFmmWYCZplmAmaZZgJ3oWMUeKFjKHihYyh4oWMoeaFkMnqiZlp6omZa + eqJmWnqiZlqBqnCWgapwmoGqcJqBqnCah693z4ixeemIsXnpiLF56Yy0fu6QuoX1kLqF9ZC6hfWSvIf3 + nMeW/5zHlv+cx5b/nMeW/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5zHlv+cx5b/nMeW/5zHlv+SvIf2kbqF9ZG6hfWRuoX1jLV+7oixeemIsXnp + iLF56Yevd8+BqnCagapwmoGqcJqBqnCWe6JmWnuiZlp7omZae6JmWnmhZDJ4oWMoeKFjKHihYyh4oGEU + gIBAAoCAQAKAgEACgIBAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAABVqlUBVapVA1WqVQNVqlUDVapVA3agYVt2oGFhdqBhYXagYWF5oWOy + eqFk23qhZNt6oWTbf6ds44avd++Gr3fvhq9374mye/GaxZT/msWU/5rFlP+axZT/nciY/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/msWU/5rFlP+axZT/ + msWU/4qze/CHsHfuh7B37oewd+5/p2zjeqFk23qhZNt6oWTbeaFjsnagYWF2oGFhdqBhYXagYVuAgIAC + gICAAoCAgAKAgIACgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFWqVQFVqlUD + VapVA1WqVQNVqlUDdqBhW3agYWF2oGFhdqBhYXmhY7J6oWTbeqFk23qhZNt/p2zjhq9374avd++Gr3fv + ibJ78ZrFlP+axZT/msWU/5rFlP+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/53ImP+axZT/msWU/5rFlP+axZT/irN78Iewd+6HsHfuh7B37n+nbON6oWTb + eqFk23qhZNt5oWOydqBhYXagYWF2oGFhdqBhW4CAgAKAgIACgICAAoCAgAKAgIAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVapVAVWqVQNVqlUDVapVA1WqVQN2oGFbdqBhYXagYWF2oGFh + eaFjsnqhZNt6oWTbeqFk23+nbOOGr3fvhq9374avd++JsnvxmsWU/5rFlP+axZT/msWU/53ImP+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciY/5rFlP+axZT/ + msWU/5rFlP+Ks3vwh7B37oewd+6HsHfuf6ds43qhZNt6oWTbeqFk23mhY7J2oGFhdqBhYXagYWF2oGFb + gICAAoCAgAKAgIACgICAAoCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVqlUA + VapVAlWqVQJVqlUCVapVAnagYTx2oGFBdqBhQXagYUF5oWN3eqFkknqhZJJ6oWSSf6ZrooSsc7qErHO6 + hKxzuoaud8GRuobxkbqG8ZG6hvGRuobxlb+M95bAjfiWwI34lsCN+JrEk/ycx5f/nMeX/5zHl/+dyJf/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciX/5zHl/+cx5f/ + nMeX/5rEk/yWwI34lsCN+JbAjfiVv4z3kbqG8ZG6hvGRuobxkbqG8Yevd8CFrXO5ha1zuYWtc7l/p2ui + eqFkknqhZJJ6oWSSeaFjd3agYUF2oGFBdqBhQXagYTyAgIABgICAAYCAgAGAgIABgICAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB3m14gd5teT3ebXk93m15PeJxgYXqgZdV6oGXVeqBl1XqgZdWEq3Ln + ha106oWtdOqFrXTqkbuH95nDkv+Zw5L/mcOS/5vFlP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+bxZT/mcOS/5nDkv+Zw5L/kbuH94WtdOqFrXTqha106oSrcud6oGXV + eqBl1XqgZdV6oGXVeJxgYXebXk93m15Pd5teT3ebXiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHebXiB3m15P + d5teT3ebXk94nGBheqBl1XqgZdV6oGXVeqBl1YSrcueFrXTqha106oWtdOqRu4f3mcOS/5nDkv+Zw5L/ + m8WU/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5vFlP+Zw5L/ + mcOS/5nDkv+Ru4f3ha106oWtdOqFrXTqhKty53qgZdV6oGXVeqBl1XqgZdV4nGBhd5teT3ebXk93m15P + d5teIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5teIHebXk93m15Pd5teT3icYGF6oGXVeqBl1XqgZdV6oGXV + hKty54WtdOqFrXTqha106pG7h/eZw5L/mcOS/5nDkv+bxZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/m8WU/5nDkv+Zw5L/mcOS/5G7h/eFrXTqha106oWtdOqEq3Ln + eqBl1XqgZdV6oGXVeqBl1XicYGF3m15Pd5teT3ebXk93m14gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3m14d + d5teSnebXkp3m15KeJxgWnqgZcd6oGXHeqBlx3qgZceDq3Lbha103oWtdN6FrXTekLqF8JfBkPuXwZD7 + l8GQ+5nDkvycx5f+nMeX/pzHl/6cx5f+nciY/53ImP+dyJj/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsiY/57ImP+eyJj/nsiY/5zHl/6cx5f+nMeX/pzHl/6Zw5L8 + l8GQ+5fBkPuXwZD7kLqF8IWtdN6FrXTeha103oOrctt6oGXHeqBlx3qgZcd6oGXHeJxgWnebXkp3m15K + d5teSnebXh0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHacXi92nF42dpxeNnacXjZ6oGSNe6Flx3uhZcd7oWXHfqRp0oKqcemCqnHpgqpx6YOsc+qWwY7/ + lsGO/5bBjv+WwY7/nMeX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Hl/+XwY7/ + l8GO/5fBjv+XwY7/hKxz6oKqcemCqnHpgqpx6X6kadJ7oWXHe6Flx3uhZcd6oGSNdpxeNnacXjZ2nF42 + dpxeLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdpxeL3acXjZ2nF42dpxeNnqgZI17oWXH + e6Flx3uhZcd+pGnSgqpx6YKqcemCqnHpg6xz6pbBjv+WwY7/lsGO/5bBjv+cx5f/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nceX/5fBjv+XwY7/l8GO/5fBjv+ErHPqgqpx6YKqcemCqnHp + fqRp0nuhZcd7oWXHe6Flx3qgZI12nF42dpxeNnacXjZ2nF4vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB2nF4vdpxeNnacXjZ2nF42eqBkjXuhZcd7oWXHe6Flx36kadKCqnHpgqpx6YKqcemDrHPq + lsGO/5bBjv+WwY7/lsGO/5zHl/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dx5f/ + l8GO/5fBjv+XwY7/l8GO/4Ssc+qCqnHpgqpx6YKqcel+pGnSe6Flx3uhZcd7oWXHeqBkjXacXjZ2nF42 + dpxeNnacXi8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHacXi92nF42dpxeNnacXjZ6oGSN + e6Flx3uhZcd7oWXHfqRp0oKqcemCqnHpgqpx6YOsc+qWwY7/lsGO/5bBjv+WwY7/nMeX/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Hl/+XwY7/l8GO/5fBjv+XwY7/hKxz6oKqcemCqnHp + gqpx6X6kadJ7oWXHe6Flx3uhZcd6oGSNdpxeNnacXjZ2nF42dpxeLwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAdpxeCXacXgt2nF4LdpxeC3qgZBx7oWUoe6FlKHuhZSh8omc1faRpT32kaU99pGlP + fqVqV4GpcMWBqXDFgalwxYGpcMWGrXXkhq527IauduyGrnbsj7mD9pfBjv6XwY7+l8GO/pnDkf6eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5nDkf6XwY7+l8GO/pfBjv6PuYP2hq527IauduyGrnbs + hq115IKpcMWCqXDFgqlwxYKpcMV+pWpXfaRpT32kaU99pGlPfKJnNXuhZSh7oWUoe6FlKHqgZBx2nF4L + dpxeC3acXgt2nF4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAHabXQ52m10pdptdKXabXSl3nF8yeqBltnqgZbZ6oGW2eqBltn+ma92Ap2zn + gKds54CnbOeMtH3zlb+L/pW/i/6Vv4v+l8KP/p7Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + l8KP/pW/i/6Vv4v+lb+L/oy0ffOAp2zngKds54CnbOd/pmvdeqBltnqgZbZ6oGW2eqBltnecXzJ2m10p + dptdKXabXSl2m10OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdptdDnabXSl2m10p + dptdKXecXzJ6oGW2eqBltnqgZbZ6oGW2f6Zr3YCnbOeAp2zngKds54y0ffOVv4v+lb+L/pW/i/6Xwo/+ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+Xwo/+lb+L/pW/i/6Vv4v+jLR984CnbOeAp2zn + gKds53+ma916oGW2eqBltnqgZbZ6oGW2d5xfMnabXSl2m10pdptdKXabXQ4AAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB2m10OdptdKXabXSl2m10pd5xfMnqgZbZ6oGW2eqBltnqgZbZ/pmvd + gKds54CnbOeAp2znjLR985W/i/6Vv4v+lb+L/pfCj/6eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5fCj/6Vv4v+lb+L/pW/i/6MtH3zgKds54CnbOeAp2znf6Zr3XqgZbZ6oGW2eqBltnqgZbZ3nF8y + dptdKXabXSl2m10pdptdDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHabXQZ2m10T + dptdE3abXRN3nF8YeqBlVXqgZVV6oGVVeqBlVX6lanF/pWt4f6VreH+la3iGrnWiirJ7x4qye8eKsnvH + i7R90o22gPGNtoDxjbaA8Y22gPGNtoDxjbaA8Y22gPGNtoDxjLR90ouze8eLs3vHi7N7x4eudqJ/pWt4 + f6VreH+la3h+pWpxeqBlVXqgZVV6oGVVeqBlVXecXxh2m10TdptdE3abXRN2m10GAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + dJddEnSXXRZ0l10WdJddFnmfY1t6oGSXeqBkl3qgZJd7oWWsfaRo5X2kaOV9pGjlfaRo5X2kaOV9pGjl + faRo5X2kaOV8oWWrfKBklnygZJZ8oGSWe59jWnSXXRZ0l10WdJddFnSXXRIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0l10SdJddFnSXXRZ0l10WeZ9jW3qgZJd6oGSX + eqBkl3uhZax9pGjlfaRo5X2kaOV9pGjlfaRo5X2kaOV9pGjlfaRo5XyhZat8oGSWfKBklnygZJZ7n2Na + dJddFnSXXRZ0l10WdJddEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHSXXRJ0l10WdJddFnSXXRZ5n2NbeqBkl3qgZJd6oGSXe6FlrH2kaOV9pGjlfaRo5X2kaOV9pGjl + faRo5X2kaOV9pGjlfKFlq3ygZJZ8oGSWfKBklnufY1p0l10WdJddFnSXXRZ0l10SAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddDXSXXRB0l10QdJddEHmfY0N6oGRv + eqBkb3qgZG97oWV/faRorH2kaKx9pGisfaRorH2kaKx9pGisfaRorH2kaKx8oWV+fKBkbnygZG58oGRu + e59jQnSXXRB0l10QdJddEHSXXQ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHeZZgR3mWYPd5lmD3eZZg93mWYP + baRbDm2kWw5tpFsObaRbDm2kWwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAd5lmBHeZZg93mWYPd5lmD3eZZg9tpFsObaRbDm2kWw5tpFsObaRbBAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3mWYEd5lmD3eZZg93mWYP + d5lmD22kWw5tpFsObaRbDm2kWw5tpFsEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAHeZZgR3mWYPd5lmD3eZZg93mWYPbaRbDm2kWw5tpFsObaRbDm2kWwQAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/////////g + B///////////////////4Af//////////////////+AH///////////////////gB/////////////// + ///gAAAH////////////////4AAAB////////////////+AAAAf////////////////gAAAH//////// + ///////AAAAAAAP/////////////wAAAAAAD/////////////8AAAAAAA//////////////AAAAAAAP/ + ///////////AAAAAAAAAA///////////wAAAAAAAAAP//////////8AAAAAAAAAD///////////AAAAA + AAAAA///////////wAAAAAAAAAP/////////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAH///////+A + AAAAAAAAAAAB////////gAAAAAAAAAAAAf//////gAAAAAAAAAAAAAAB/////4AAAAAAAAAAAAAAAf// + //+AAAAAAAAAAAAAAAH/////gAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAA + AAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP + 8AAAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAA + AAAP///wAAAAAAAAAAAAAAAAD/////+AAAAAAAAAAAAB////////gAAAAAAAAAAAAf///////4AAAAAA + AAAAAAH///////+AAAAAAAAAAAAB////////+AAAAAAAAAAAH/////////gAAAAAAAAAAB/////////4 + AAAAAAAAAAAf////////+AAAAAAAAAAAH///////+AAAAAAAAAAAAAAf//////gAAAAAAAAAAAAAH/// + ///4AAAAAAAAAAAAAB//////+AAAAAAAAAAAAAAf////8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAA + AAAP///wAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAA + AAAA//8AAAAAAAAAAAAAAAAAAP///4AAAAAAAAAAAAAAH/////+AAAAAAAAAAAAAAB//////gAAAAAAA + AAAAAAAf/////4AAAAAAAAAAAAAAH///////+AAAAAAAAAAAH/////////gAAAAAAAAAAB/////////4 + AAAAAAAAAAAf////////+AAAAAAAAAAAH////////4AAAAAAAAAAAAH///////+AAAAAAAAAAAAB//// + ////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAH//////4AAAAAAAAAAAAAAAf////+AAAAAAAAAAAAA + AAH/////gAAAAAAAAAAAAAAB/////4AAAAAAAAAAAAAAAf///wAAAAAAAAAAAAAAAAAA//8AAAAAAAAA + AAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAA + AAAAD/AAAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAP///wAAAAAAAA + AAAAAAAAD///8AAAAAAAAAAAAAAAAA//////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAH///////+A + AAAAAAAAAAAB////////gAAAAAAAAAAAAf/////////AAAAAAAAAA///////////wAAAAAAAAAP///// + /////8AAAAAAAAAD///////////AAAAAAAAAA///////////wAAAAAAAAAP////////////AAAAAAAP/ + ////////////wAAAAAAD/////////////8AAAAAAA//////////////AAAAAAAP//////////////+AA + AAf////////////////gAAAH////////////////4AAAB////////////////+AAAAf///////////// + ////4Af//////////////////+AH///////////////////gB///////////////////4Af///////// + KAAAAEAAAACAAAAAAQAgAAAAAAAAQAAAYQoAAGEKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLuqAsy7qg/Mu6oPyLakDsi2pA7ItqQC + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy7qgLMu6oP + zLuqD8i2pA7ItqQOyLakAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANG5ogjRuaIT + 0LqoMdC7q4PQvKuM0sCtyNLArcjSwK3I0sCtyNC8q4vPu6qC0LqoMdG5ohPRuaIIAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADRuaIJ0bmiFtC6qDjQu6uX0LyrodLAreXSwK3l0sCt5dLAreXQvKuhz7uqltC6qDjRuaIW + 0bmiCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADRuaIL0bmiENC8qkDQvKtq0r6shdPArazXxrS64NLE4OHUx+Pp4NP46eDT+Ong0/jp4NP4 + 4dTG49/SxN/XxrS608CtrNK+rIXQvKtq0LyqQNG5ohDRuaILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0bmiD9G5ohbQvKpY0LyrkdK+rLLTwK3j2Me16ePXyvrl2s37 + 8erg//Hq4P/x6uD/8erg/+Xazfvj18r62Me16dPArePSvqyy0LyrkdC8qljRuaIW0bmiDwAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAybmiEsm5ohTRvqxT0b6sY9PAroPUwa6T3My8tOHSxNLj1sjf + 5tvO9Ojd0Pbs49j97eTZ/fLr4f/y6+H/8uvh//Lr4f/t5Nn97OPY/ejd0Pbm287049bI3+HSxNLczLy0 + 1MGuk9PAroPRvaxj0b2sU8m5ohTJuaISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMm5oh/JuaIh0b6si9G+rKXTwK7Q + 1MGv5t/PwPLn28796+HW/vLr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh/+vh1v7n287938/A8tTBr+bTwK7Q0b2spdG9rIvJuaIhybmiHwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLWkBMy1pBXNt6YZ0b2rVdG9q1XTwrB7 + 08Kxfd7Qwb7f0sPP4tTG5uPWyPLo3dD47OLX/u7m2/7y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/u5tv+7OLX/ujd0Pjj1sjy4tTG5t/Rw8/ez8G+08KxfdPCsHvRvatV + 0b2rVc23phnMtaQVzLWkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy1pAnMtaQt + zbemNtG9q7bRvau21cSz5NXEs+fm28756uDU/u/n3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3f/q4NT+ + 5tvO+dXEs+fVxLPk0b2rttG9q7bNt6Y2zLWkLcy1pAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy3ognMt6IU + zrunI9C9qkLRvqxK1MGwbNXCsnPczL3O3My9zt/Sw+3f0sPv6uDU++3k2P7w6d7/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6d7/7eTY/urg1Pvf0sPv39LD7dzMvc7czL3O1cKyc9TBsGzRvqxK0L2qQs67pyPMt6IU + zLeiCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADMt6IczLeiPM67p2rQvarF0r+tzdfFtevYx7fs6+LW/+vi1v/y6uD/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lq4P/r4tb/6+LW/9jHt+zXxbXr + 0r+tzdC9qsXOu6dqzLeiPMy3ohwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADOuaUJzrmlDNC9qh3Rvqsp0r+sQtK/rV/Vw7GF18e10djIt9fdzb7v3s/A8Ozk2P/s5Nj/ + 8uvg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+D/ + 7OTY/+zk2P/ez8Dw3c2+79jIt9fXx7XR1cOxhdK/rV/Sv6xC0b6rKdC9qh3OuaUMzrmlCQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzrmlLc65pT7QvaqT0b6ry9XDstrZyLjs4NLD8u3k2P/u5dr/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/u5dr/7eTY/+DSw/LZyLjs1cOy2tG+q8vQvaqT + zrmlPs65pS0AAAAAAAAAAAAAAAAAAAAAv7+fAb+/nwHNuKQLzbikDM66pjrOuqZK0sCtmtPBr87XxrXd + 28u77eHUxfPt5Nn/7uba//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7uba/+3k2f/h1MXz + 28u77dfGtd3Twa/O0sCtms66pkrOuqY6zrmlDM65pQu/v58Bv7+fAb+/nwi/v58IzbikoM24pLfPu6jn + 0Lyp+OLUxvzt5Nj/7+fc//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/v59z/7OPX/+HUxfzQvKr40Lup5s65pbXOuaWev7+fCL+/nwi/v58I + v7+fCM24pKDNuKS3z7uo59C8qfji1Mb87eTY/+/n3P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7+fc/+zj1//h1MX80Lyq+NC7qebOuaW1 + zrmlnr+/nwi/v58Iv7+fAb+/nwHNvqEPzb6hEc+6qFXPuqhu0b6sstK/rt/YyLjo3tHC8eTZy/bv59z/ + 8Ojd//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8ene/+zi1f/p28z/1LCT/9Swk//UsJP/1LCT/+nbzP/s4tX/8ene//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+/n3P/k2cv23tHC8djIuOjSv63f + 0b6sss+6qG7PuqhVyrqrEMq6qw6/v58Bv7+fAQAAAAAAAAAAzMyZBMzMmQXPuqhLz7qoZNC8qq3QvKrd + 1sW15t3PwPDj18r17+fc//Do3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Do3v/s4dT/6drL/9Ksjf/SrI3/0qyN/9Ksjf/p2sv/7OHU//Do3v/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Do3f/v59z/ + 49fK9d3PwPDWxbXm0Lyq3dC8qq3Puqhkz7qoSr+/vwS/v78DAAAAAAAAAAAAAAAAAAAAAMzMmQHMzJkB + z7qoD8+6qBTOu6okzruqL9K/rlPTwbB+1cOyn9fGteLZybnl4dTF8uLVx/Pv59z/7+fc//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh/+/l2f/s4NL/4867/9a0mf/TrpH/y557/82fe//apnz/2qZ8/9qlfP/apXz/ + zZ97/8ueev/TrpH/1rSZ/+POu//s4NL/7+XZ//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3P/v59z/ + 4tXH8uHUxfHZybnl18a14tXDsp/TwbB+07+uU9K6qS7Ruqgjz7qoFM+6qA+/v78Bv7+/AQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqqqqAqqqqgPMuKYvzbimYc+7qIrQvarb08Gu393Ovu/e0MDw + 7ubb/+7m2//y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/u5Nf/6t3O/9/Hsv/Ppof/zJ9+/8ONZf/GkGj/ + 3KR4/9ykeP/co3j/3KN4/8aQZ//DjWT/zJ9+/8+mh//fx7L/6t3O/+7k1//y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/u5tv/7ubb/97QwO/dzr7u08Gu39C9qtvPu6iKzbimYc63pS7/gIAC/4CAAQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKqqqgGqqqoBzLimEM24piDPu6gu + 0L2qSdLArVXXxbSE2Ma1i9vMvOPbzLzj49bI8OPWyPHo3M786d3Q/+DIs//bvaX/1bGV/9Cnh//TpYL/ + 16N7/9mkfP/gqH7/4ql//+mxhf/psYX/6bCF/+mwhf/iqX7/4Kh9/9mkfP/Xo3v/06WC/9Cnh//VsZX/ + 272l/+DIs//p3dD/6NzO/OPWyPHj1sjw28y849vMvOPYxrWK18W0hNLArVXQvapJz7uoLs24piDOt6UP + /4CAAf+AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAADPuKUQz7ilT8+5pljPvarVz72q1drKuunby7vq49TF++XWx//Wtpz/ + z6aH/8mYdP/DjGP/zZRq/9uhdf/gp3v/77aK/++2iv/wt4v/8LeL//C3i//wt4v/77aK/++2iv/gp3v/ + 26F1/82Uav/DjGP/yZh0/8+mh//Wtpz/5dbH/+PUxfvby7vq2sq66c+9qtXPvarVz7mmWM+4pU/PuKUQ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz7ilB8+4pSXOtqIryrCYfMqwmHzMqo3R + zKmM19Gsj/XSrY/91qiF/tilgP/ZpHz/26N4/9+nfP/mrYH/6a+D//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/6a+D/+atgf/fp3z/26N4/9mkfP/YpYD/1qiF/tKtj/3RrI/1zKmM18yqjdHKsJh8 + yrCYfM62oivPuKUlz7ilBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + t3pOA7d6Ti63ek4uvIdcvbyHXMfAiF7xwYhe+9WbcP7fpXn/6K+D//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//or4P/36V5/9WbcP7BiF77 + wIhe8byHXMe8h1y9t3pOLrd6Ti63ek4DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + uH1PCLh9Txi5f1Iku4FVULyBVVPAhlp7wIZae86Wa9fOl2zd05pv9tSbcP3gpnv+5qyA/+uyhv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 67KG/+asgP/gpnv+1Jtw/dOab/bOl2zdzpZr18CGWnvAhlp7vIFVU7yBVVC6f1IkuH1PGLh9TwgAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALh9TxS4fU89uX9SWbuBVci8glbLw4ld7sOJXe7iqHz+5Kp+/+60iP/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utIj/5Kp+/+KofP7DiV3uw4ld7r2CVsu8gVXJ + un9SWbh9Tz24fU8UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALV+UQu1flESuX9TJLqAVDi9g1dJwYdabMOKXYHJj2PXyZBk2dCWavPQlmrz + 5qyA/uetgf/utYn/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/7rWJ/+etgf/mrID+ + 0JZq89CWavPKkGTZyo9j18SKXYHBh1psvoNXSbqAVDi5f1MktX5RErV+UQsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1flEptX5RRbl/U4e6gFTSv4VZ28eOYu3OlWnx + 566C/+ivg//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/6K+D/+eugv/PlWjwyI5h7L+FWdu6gFTSuX9Th7V+UUW1flEp + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqoBVAaqAVQG5gFIMuYBSDryBVRq9gVYev4ZZQ7+HWlzBh1uW + wohc2MaMYODNlGjv05pu8+ivg//psIT/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+mwhP/or4P/05pt8s6UZ+/GjGDg + wohc2MGIW5a/h1pcvoZZQ72BVh68gVUauYBSDrmAUgyqgFUBqoBVAaqAVQaqgFUGuYBSXbmAUmq8gVXA + vYFW38qPY+rSl2vx3qR4+Ouyh//ttIj/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7bSI/+uyh//dpHj40Zdq8smPYuq9gVbfvIFVwLmAUmq5gFJdqoBVBqqAVQaqgFUG + qoBVBrmAUl25gFJqvIFVwL2BVt/Kj2Pq0pdr8d6kePjrsof/7bSI//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+20iP/rsof/3aR4+NGXavLJj2LqvYFW37yBVcC5gFJq + uYBSXaqAVQaqgFUGv4BABL+AQAS6fVJXun1SZLuAVb27gVXdyY5i6NGWavDeo3f367KG/+20iP/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//vt4v/6bWJ/+m1if/ptoj/6baI/++3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//ttIj/67KG/96jd/fRlmrw + yY5i6LuBVd27gFW9un1SZLp9Ule/gEAEv4BABL+AQAS/gEAEun1SV7p9UmS7gFW9u4FV3cmOYujRlmrw + 3qN39+uyhv/ttIj/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/77eL/+m1if/ptYn/6baI/+m2iP/vt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 7bSI/+uyhv/eo3f30ZZq8MmOYui7gVXdu4BVvbp9UmS6fVJXv4BABL+AQAS/gEABv4BAAbp9Ugy6fVIN + un1VG7p9VSC/g1lTwIRZdcKHW6jDiFziyI5i6NKYa/LXnXH16rCF/+qxhf/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/7LaK/+a0iP/ZsoP/tKx3/7Crdv+Wp2//lqdv/5anb/+Wp2// + sat2/7Wsd//ZsoP/5rSI/+y2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 6rGF/+qxhP/XnXD10phr8siOYujDiFziwodbqMCEWXW/g1lTun1VILp9VRu6fVINun1SDL+AQAG/gEAB + AAAAAAAAAAAAAAAAAAAAAKpVVQKqVVUDuXxTPLl9U2K7gFScvIFV3sKHW+TNk2bw05ls8+mvhP/psIT/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+y2if/ltIf/1rGC/6uqdP+mqXP/ + iaVr/4mla/+JpWv/iaVr/6epc/+sqnT/1rGC/+W0h//ston/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+mwhP/psIP/05ls882TZvDCh1vkvIFV3ruAVJy5fVNiuXxTPKpVVQOqVVUC + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUBqlVVAbl8UxC5fVMavH9UKr1/VDzAhFhR + w4hcesWKXo7Jj2PgypBk4daccPDWnHDw6bCE/uqxhf/vtor/8LeL/+u2if/otYj/0rGB/7+ue/+zrHj/ + oqly/5+sdv+YtX//mLaB/5i/jP+Yv4z/mL+M/5i/jP+YtoH/mLV//5+sdv+iqXL/s6x4/7+ue//SsYH/ + 6LWI/+u2if/wt4v/77aK/+qxhf/psIT+1pxw8NaccPDKkGThyY9j4MWKXo7DiFx6wIRZULyBVTu7gFQq + uX1TGrl8UxCqVVUBqlVVAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAP8AAAD/AAABunhPG7h7UU+5fVNqu4FV1byCVtbMkWXrzJFl6+atgf7or4P/7rWJ//C3i//ptYj/ + 5bSH/8evff+tq3X/n6lx/4mla/+LqnH/kbmD/5O7hv+dyZj/ncmY/53JmP+dyZj/k7uG/5G5g/+LqnH/ + iaVr/5+pcf+tq3X/x699/+W0h//ptYj/8LeL/+61if/or4P/5q2B/syRZevMkWXrvIJW1ruBVdW5fVNq + uHtRT7h7URoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAALp4Twu4e1EguX1TKruBVVW8glZYxotfgcaLX4HJl2re + yZhq5bykcva6pnT6sal1/a2rdv+lsHv/nbWA/5q3g/+Wu4f/lr2J/5nDkP+Zw5H/nsmZ/57Jmf+eyZn/ + nsmZ/5nDkf+Zw5D/lr2J/5a7h/+at4P/nbWA/6Wwe/+tq3b/sal1/bqmdPq8pHL2yZhq5cmXat7Gi1+B + xotfgbyCVli7gVVVuX1TKrh7USC4e1ELAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tHtPBLR7Tzq0e086sIVWybCFVtOZl2LwlJtk94yiafyIpWv/jrF6/5O7h/+XwY7/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/l8GO/5O7h/+OsXr/iKVr/4yiafyUm2T3 + mZdi8LCFVtOwhVbJtHtPOrR7Tzq0e08EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3n2AEd59gFXydYBuKmF90iphfdJiWYdWZlmHclqhz9JWsd/qTs339kraA/5W8iP+Ywo// + msWT/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5rFk/+Ywo// + lbyI/5K2gP+Ts339lax3+paoc/SZlmHcmJZh1YqYX3SKmF90fJ1gG3efYBV3n2AEAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd59gCXefYC14oGE2e6NltnujZbaAp23kgKdt55K7h/mWv43+ + m8aV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/m8aV/5a/jf6Su4f5gKdt54CnbeR7o2W2e6NltnigYTZ3n2At + d59gCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd51eCXedXhR5oGIjeqJlQnujZ0p+pmtsf6dsc4evds6Hr3bO + irN87Yuzfe+Wv437mcKR/pzHlv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHlv+ZwpH+lr+N+4uzfe+Ks3zt + h692zoevds5/p2xzfqZrbHujZ0p6omVCeaBiI3edXhR3nV4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHedXhx3nV48eaBianqiZcV8o2fN + gahv64OqceyXwY//l8GP/57ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsiY/5fBj/+XwY//g6px7IGob+t8o2fNeqJlxXmgYmp3nV48d51eHAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHegXwl3oF8MeqJjHXuiZCl8o2ZC + faRnX3+nbIWBqnDRg6ty14eveO+IsHrwmMOR/5jDkf+eyZj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57JmP+Yw5H/mMOR/4iwevCHr3jvg6ty14GqcNF/p2yF + faRnX3yjZkJ7omQpeqJjHXegXwx3oF8JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3oF8t + d6BfPnqiY5N7omTLf6dq2oOrcOyKs3zymMOR/5nEk/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5nEk/+Yw5H/irN88oOrcOx/p2rae6Jky3qiY5N3oF8+d6BfLQAAAAAAAAAAAAAAAAAAAACAn2AB + gJ9gAXacXwt2nF8MeKBgOnigYEp8pGaafaVozoGpbd2FrXPtjLV+85jDkv+axZP/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+axZP/mMOS/4y1fvOFrXPtgalt3X2laM58pGaad6BgSnegYDp2nmAM + dp5gC4CfYAGAn2ABgJ9gCICfYAh2nF+gdpxft3mfY+d6oGT4jLV//JjDkf+bxpX/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5vFlP+YwpD/ + jLV//HmgZPh4oGPmdp5gtXaeYJ6An2AIgJ9gCICfYAiAn2AIdpxfoHacX7d5n2PneqBk+Iy1f/yYw5H/ + m8aV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+bxZT/mMKQ/4y1f/x5oGT4eKBj5naeYLV2nmCegJ9gCICfYAiAn2ABgJ9gAXKbYQ9ym2ER + eKFjVXihY258pGiyfaVp34OrcuiKsnvxkLmE9pvFlP+cxpX/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+cxpX/m8WU/5C5hPaKsnvxg6ty6H2kad98pGiyeKFjbnigY1V4l1gQeJdYDoCfYAGAn2AB + AAAAAAAAAABmmWYEZplmBXihY0t4oWNkeqJlrXuiZt2BqW/miLB58I+3gvWbxZT/nMaV/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMaV/5vFlP+Pt4L1iLB58IGpb+Z7ombdeqJlrXihY2R4oWJK + gIBABICAQAMAAAAAAAAAAAAAAAAAAAAAZplmAWaZZgF4oWMPeKFjFHmiZSR5omUvfKVpU32man5/qGyf + galv4oOscuWLtH7yjLaA85vGlf+bxpX/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/m8aV/5vGlf+NtoDyjLV+8YSscuWBqW/if6hsn32man58pWlT + e6FnLnqhZiN4oWMUeKFiD4CAQAGAgEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVqlUC + VapVA3WgYS92oGFheKFjinqhZNt9pGjfhq9374exefCaxZT/msWU/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5rFlP+axZT/iLF574ewd+59pGjf + eqFk23ihY4p2oGFhdp9iLoCAgAKAgIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAVapVAVWqVQF1oGEQdqBhIHihYy56oWRJfKNnVYCnbYSBqG6Lhq5344aud+ONtoDw + jreB8ZjCkfybxZT/nciX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciX/5vFlP+YwpH8jreB8Y22gPCGrnfj + hq5344GoboqBqG2EfKNnVXqhZEl4oWMudqBhIHafYg+AgIABgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHebXhB3m15P + d5xfWHqgZdV6oGXVhKxz6YWtdOqVv4z7mcOS/5zHl/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHl/+Zw5L/ + lb+M+4WtdOqErHPpeqBl1XqgZdV3nF9Yd5teT3ebXhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3m14Hd5teJXecXyl6oGVjeqBlY4Gpb4eCqW+KirJ70IuzfeGOt4LtkLmF85W/jfqaxZP/ + m8aV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zGlf+axZP/ + lb+N+pC5hfOOt4Lti7N94Yqye9CCqW+Kgalvh3qgZWN6oGVjd5xfKXebXiV3m14HAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2nF4ydpxeNnuhZap7oWXH + gKdt3oKqcemNt4H1lsGO/5nEkv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+axJL/l8GO/463gfWCqnHpgKdt3nuhZcd7oWWqdpxeNnacXjIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + dpxeHnacXiB7oWVme6Fld3+mbJCBqG+ciLF6wY22geKPuYTqk7yI9ZW/i/iaxZP/m8aU/57Jmf+eyZn/ + nsmZ/57Jmf+bxpT/msWT/5W/i/iTvIj1kLmE6o62geKJsXrBgahvnH+mbJB7oWV3e6FlZnacXiB2nF4e + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2m10bdptdKXmfZHR6oGW2faNoyoCnbOeGrnXt + lb+L/pbAjf6eyZn/nsmZ/57Jmf+eyZn/lsCN/pW/i/6GrnXtgKds532jaMp6oGW2eZ9kdHabXSl2m10b + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdptdFHabXR55n2RV + eqBlhX2jaJaApmuvha1zvZC5hOORuoXllsCN+JbAjfiWwI34lsCN+JG6heWRuoTiha1zvYCma699o2iW + eqBlhXmfZFV2m10edptdFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB0l10JdJddFnidYjh6oGSXe6FloX2kaOV9pGjlfaRo5X2kaOV8oWWh + fKBklnqdYjh0l10WdJddCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddCHSXXRN4nWIxeqBkg3uhZYx9pGjI + faRoyH2kaMh9pGjIfKFli3ygZIJ6nWIxdJddE3SXXQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3mWYCd5lmD3eZZg9tpFsObaRbDm2kWwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5lmAneZZg93mWYPbaRbDm2kWw5tpFsCAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////4H/////////gf//// + ////gAH///////+AAf//////+AAAH//////4AAAf/////4AAAAH/////gAAAAf////AAAAAAD///8AAA + AAAP//8AAAAAAAD//wAAAAAAAP/wAAAAAAAAD/AAAAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADAAAAAAAAAA8AAAAAAAAAD/AAAAAAAAD/8AAAAAAAAP//wAAAAAA////AAAAAAD////AAA + AAA////AAAAAAAP//8AAAAAAA//8AAAAAAAAP/wAAAAAAAA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAA/wAAAAAAAAD/8AAAAAAAP//wAAAAAAA////AAA + AAA////wAAAAAA////AAAAAAD///AAAAAAAA//8AAAAAAAD/8AAAAAAAAA/wAAAAAAAADwAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAPAAAAAAAAAA/wAAAAAAAA//AAAAAAAAD//8AAA + AAAP///wAAAAAA////+AAAAB/////4AAAAH/////+AAAH//////4AAAf//////+AAf///////4AB//// + ////+B/////////4H////ygAAAAwAAAAYAAAAAEAIAAAAAAAACQAAGEKAABhCgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLuqCcy7qg/ItqQOyLakCAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0bmiB9C6qBPQu6s80b6sVdHArWXRv6xk0b6sVM+7qjzQuqcT + 0bmiBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0bmiEtC6qDDQu6uX0b6sxtLAreXSwK3l + 0b6sxc+7qpbQuqcw0bmiEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIB0bmiEdC7qTnQvKt007+trNbEs8Ph08bm + 593Q8uvi1/rr4tf6593Q8uDTxubWxLPD07+trNC8q3TQu6k50bmiEdG5ogEAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJuaIBybmiB9C9qxbRvqwi07+rPtbDsmnXxban + 2cm429zNvezm28/77eTZ/fHq4P/x6uD/7eTZ/ebbz/vczb3s2cm429fFtqfWw7Jp07+rPtG9rCLQvasW + ybmiB8m5ogEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJuaIHybmiIdC9q3DRvqyo + 1MGv49zMvO/n28798Ojd//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+fbzv3czLzv + 1MGv49G9rKjQvatwybmiIcm5ogcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMtaQLzLWkG9G9q13Sv612 + 1MOymN7QwcDj1sjc59vO9Orf0/nu5dn+8erf//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8erf/+7l2f7q39P559vO9OPWyNze0MHA1MOymNK/rXbRvatdzLWkG8y1pAsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6ICzLijA9C9qgjOuaga + zrinNdK/rZ/Twa/C1sa16OPWyfXr4dX+8uvg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvg/+vh1f7j1sn11sa16NPBr8LSv62fzrinNc65qBrQvaoI + zLijA8y3ogIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6Ij + zLijP9C9qrfTwa/M18W14+fcz/fs49f88erf/vHq4P/y6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4P/x6uD/8erf/uzj1/zn3M/3 + 18W149PBr8zQvaq3zLijP8y3oiMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOuaUU + z7uoJNG+q1HUwrBv1sSzht3Pv9jg0sPl4tXH8+zi1/3v59z/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh/+/n3P/s4tf94tXH8+DSw+Xdz7/Y1sSzhtTCsG/RvqtRz7uoJM65pRQAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADOuaUyz7uoWtG+q8vWxLPf2sm57ezj1/7v59z/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3P/s49f+2sm57dbEs9/RvqvLz7uoWs65pTIAAAAA + AAAAAAAAAAC/v58GzLikPs24pJLPu6jG1cOy2uje0fXr4tb57eXa+/Hp3//x6uD/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hq4P/x6d//7eXa++vh1vno3dD1 + 1cOy2tC7qcbOuaWRzbmlPr+/nwa/v58GzLmkP824pJPPu6jM1cOy4Ojd0Pjs4tb67ubb/PHq4P/y6+D/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4P/x6d7/7uPW/+ze0P/s3tD/ + 7uPW//Hp3v/y6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4P/x6uD/ + 7ubb/Ovi1vrn3M/41cOy4NC7qczOuaWSzbmlPr+/nwYAAAAAzMyZAszMmQXPuqhRz7upfNC8qt3YyLjo + 3tDB8e7m2/7w6d7/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hp3v/s4dT/ + 3MGp/9Ksjf/SrI3/3MGp/+zh1P/x6d7/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Dp3v/u5tv+3tDB8djIuOjQvKrdz7upfM+6qFG/v78Ev7+/AgAAAAAAAAAAzMyZAczMmQLPuqgg + z7upMs+8qlrVw7OB18e3nt3PwObh1MXu5trN9e7l2v3w6d7/8uvh//Lr4f/y6+H/8uvh//Do3P/t49b/ + 4Mi0/9u+pv/Tr5H/1qqH/9ingP/Yp4D/1qqH/9Ovkf/bvqb/4Mi0/+3j1v/w6Nz/8uvh//Lr4f/y6+H/ + 8uvh//Dp3v/u5dr95trN9eHUxe7dz8Dm18e3ntXDs4DRu6la0LqpMs+6qCC/v78Cv7+/AQAAAAAAAAAA + AAAAAAAAAAAAAAAAqqqqAaqqqgPMuKY5zbimYtC9qs3VxLLb3c6+6Org1Pnu5tv98erg/vHq4P/x6uD/ + 8ejd/+3i1f/o2sr/1LCU/82hgP/Fj2f/05xx/92lef/dpHn/05tx/8WPZv/NoYD/1LCU/+jayv/t4tX/ + 8ejd//Hq4P/x6uD/8erg/u7m2/3q4NT53c6+59XEstrQvarNzbimYs63pTn/gIAC/4CAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqqqqAKqqqgDMuKYCzbimBNC9qgnRu6go0buoVtG/rL3TwrDb + 3My96+LTxPfl1cb/0auN/8yfff/Fj2f/1p5z/96lef/ttIj/7rWK/++2iv/vtor/7rWJ/+20iP/epXn/ + 1p5z/8WPZ//Mn33/0auN/+XVxv/i08T33My969PCsNvRv6y90buoVtG7qCjQvaoJzbimBM63pQL/gIAA + /4CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPuKUT + z7ilL8y1n37NtJ2h0LKZ3NS1nPDXtpz91aaD/9WifP/VnXP/4ad8/+asgP/vtor/8LeL//C3i//wt4v/ + 8LeL/++2iv/mrID/4ad8/9Wdc//Vonz/1aaD/9e2nP3UtZzw0LKZ3M20naHMtZ9+z7ilL8+4pRMAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALd6TiW6gVVNvIdcx7+IXebCiV/73qR4/+asgP/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//mrID/3qR4/8KJX/u/iF3mvIdcx7qBVU23ek4l + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAuH1PArh9Ty+6gFNdu4FVoMGHW8DJj2PQ3aR49OOqfvrnroL+7LOH/+61if/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utYn/7LOH/+eugv7jqn76 + 3aR49MmPY9DBh1vAvIFVobuAU164fU8vuH1PAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAtX5RA7V+UQ65gFMfuoBULL+FWF7DiV2Oxoxg08uRZevSmGz05q2B/+yzh//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//ss4f/5q2B/9KYbPTLkWXrxoxg1MSJXY7AhVheu4BULLmAUx+1flEOtX5RAwAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtX5RDrV+UUW5gFOau4FV08eNYezUm2/0566C/+61if/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utYn/566C/9Wbb/THjWHru4FV07mAU5q1flFF + tX5RDgAAAAAAAAAAAAAAAAAAAACqgFUEuIBSHLmAUkC9gVZ4wYVajc2TZ6zWnHDT2qF17eCne/flrID7 + 7LOH/++2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//vtor/7LOH/+WsgPrgp3v3 + 2qF17dWccNPNk2atwYVajr2BVni5gFJAuIBSHKqAVQSqgFUGuIBSLrmAUmq9gVbIwYZa49KXa/HhqHz5 + 67KH//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/67KH/+GofPrRl2rywYZa472BVsi5gFJquIBSLqqAVQa/gEAEun1RKrp9UmS7gVXF + wIVZ4dGWavDhp3v567KG//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7LaK/+m1if/ptoj/7LaJ//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/67KG/+Gne/nRlmrwwIVZ4buBVcW6fVJkun1RKr+AQAS/gEAC + un1RGbp9Ujy7gFV3v4VZkMyRZbfVm2/a2qB08uKpfPnnrYH77bSI/++2iv/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7LaK/+e1iP/UsoL/yrB//8Ovff/Dr3z/yrB//9Wygv/ntYj/7LaK//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//vtor/7bSI/+eugfviqXz52qB08tWbb9rMkWW3v4VZkLuAVXe6fVI8 + un1RGb+AQAIAAAAAAAAAAAAAAACqVVUCt3lTFrl9U2K7gFWsvYJW38ySZe/Zn3L26a+E/++1iv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/57WI/9myg/+rqnT/l6dv/4mla/+JpWv/l6dv/6yqdP/asoP/ + 57WI//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//vton/6bCD/9mfcvbMkmXvvYJW37uAVay5fVNi + t3lTFqpVVQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUAt3lTBLl9UxS8flMjvn9UMMGFWmzEiV2b + xoxg3dGXa+vYnnLy6rGF/+20iP/wt4v/6LWI/9Wygv+6rXn/oqly/5qrdP+WtoD/mL2J/5nCj/+Zwo// + mL2J/5a2gP+aq3T/oqly/7qtef/VsoL/6LWI//C3i//ttIj/6rGF/9iecvLRl2vrxoxg3cSJXZvBhVps + vIFVL7uAVSK5fVMUt3lTBKpVVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA + yF8/A7h7UT26f1Rqu4FVqsiNYcLPlWnR3qh79t6ugPvesoP907GB/8Gwfv+ornn/k611/46veP+UvIf/ + mcSR/53JmP+dyZj/mcSR/5S8h/+Or3j/k611/6iuef/BsH7/07GB/96yg/3eroD73qh79s+VadHIjWHC + u4FVqrp/VGq4e1E9uHtRAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALR7Ty6ygFJZsIVW056TX+mTm2T3iKVr/4yudv+Tu4f/ + nMaV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMaV/5O7h/+Mrnb/iKVr/5ObZPeek1/p + sIVW07KAUlm0e08uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3n2ALd59gG4ScYW+Jm2KXkppk35SodPCVsX37 + lbqG/5e+i/+aw5L/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciY/5rDkv+Xvov/ + lbqG/5WxffuUqHTwkppk34mbYpeEnGFvd59gG3efYAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3nV4Cd55fA3qiZQh5oWMaeaFjNXykZ59+pmnC + galv6I63gvWXwI7+nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5fAjv6Ot4L1galv6H6macJ8pGefeaFjNXmhYxp6omUId55fA3edXgIAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3nV4jd55fP3qiZbd9pWnM + gahv45K8iPeYwpD8nciX/p3ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/nciX/pjCkPySvIj3gahv432lacx6omW3 + d55fP3edXiMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3oF8UeaFhJHuiZFF+pmlv + gKhshoixediKs3zljbaB85fBj/2bxZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5vFlP+XwY/9 + jbaB84qzfOWIsXnYgKhshn6maW97omRReaFhJHegXxQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3oF8y + eaFhWnuiZMuAqGzfhKxx7ZfCkP6axZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5rFlP+XwpD+hKxx7YCobN97omTLeaFhWnegXzIAAAAAAAAAAAAAAACAn2AG + d5xfPnacX5J5n2PGgKds2pO+ivWXwY75mcSS+53Il/+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+dyJf/mcSS+5fBjvmTvYn1f6Zs2nigY8Z2nmCR + d55gPoCfYAaAn2AGd5xfP3acX5N5n2PMf6ds4JO9ifiXwY/6msST/J3ImP+eyZj/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57JmP+dyJj/msST/JfBj/qTvIn4 + f6Zs4HmgY8x2nmCSd55gPoCfYAYAAAAAZplmAmaZZgV4oWNReaFkfHuiZt2Dq3LoibF68ZrEk/6cx5b/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHlv+axJP+ + ibF68YOrcuh7ombdeaFkfHihY1GAgEAEgIBAAgAAAAAAAAAAZplmAWaZZgJ4oWMgeaFkMnqiZlp/qG2B + gqpwnoixeeaMtH7ukLqF9ZnEk/2cx5f/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHl/+ZxJP9 + kbqF9Yy1fu6IsXnmgqpwnn+obYB7omZaeaFkMnihYyCAgEACgIBAAQAAAAAAAAAAAAAAAAAAAAAAAAAA + VapVAVWqVQN1oGE5dqBhYnqhZM1/p2zbhq936JXAjfmaxZP9nciY/p3ImP+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/ + nciY/prFk/2WwI35h7B353+nbNp6oWTNdqBhYnagYTmAgIACgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAVapVAFWqVQB1oGECdqBhBHqhZAl5nmEoeZ1hVnuhZ71+pWrbhq5265K7h/eZw5P/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5nDk/+Su4f3hq52636latt7oWe9eZ1hVnmeYSh6oWQJdqBhBHagYQKAgIAAgICAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3m14Td5teL3qgZHB8o2iH + g6txoouzfcyPuIPpk72K9pbBjvqbxpX/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nciY/5vGlf+XwY76k72K9o+4g+mLs33Mg6txonyjaId6oGRwd5teL3ebXhMAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB2nF4LdpxeNnqgZI17oWbIgqpx6Iq0ffKWwY7/nMeX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nceX/5fBjv+LtH3ygqpx6HuhZsh6oGSNdpxeNnacXgsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB2nF4CdpxeC3qgZBx7oWUpfaRpToCnbX6BqXDFhq115Iqye++XwY7+ + m8aV/57Jmf+eyZn/m8aV/5fBjv6Ksnvvhq115IKpcMWAp21+faRpTnuhZSl6oGQcdpxeC3acXgIAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2m10BdptdH3mfY056oGWS + f6ZrtISrcsaSu4bplb+M85jCkPqYwpD6lr+M85K7humEq3LGf6ZrtHqgZZJ5n2NOdptdH3abXQEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAdJddEnidYTB6oGSXfKNnxn2kaOV9pGjlfaNnxXygZJZ5nWEwdJddEgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddB3idYRN6oGQ8fKJnVXyjaGV8pGdkfKNmVHygZDx5nWET + dJddBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5lmCXeZZg9tpFsO + baRbCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///w///8AAP//4Af//wAA///gB///AAD//gAA + f/8AAP/wAAAP/wAA//AAAA//AAD/gAAAAf8AAPwAAAAAPwAA/AAAAAA/AADgAAAAAAcAAOAAAAAABwAA + AAAAAAAAAAAAAAAAAAAAAIAAAAAAAQAAgAAAAAABAADwAAAAAA8AAPAAAAAADwAA/4AAAAH/AAD/4AAA + B/8AAP4AAAAAfwAA8AAAAAAPAADwAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 4AAAAAAHAADgAAAAAAcAAPwAAAAAfwAA/+AAAAf/AAD/gAAAAf8AAPwAAAAAPwAA/AAAAAA/AADgAAAA + AAcAAOAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAQAAgAAAAAABAADwAAAAAA8AAPAAAAAADwAA + /4AAAAH/AAD/8AAAD/8AAP/wAAAP/wAA//4AAH//AAD//+AH//8AAP//4Af//wAA///8P///AAAoAAAA + IAAAAEAAAAABACAAAAAAAAAQAABhCgAAYQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMu6oBzLuqD8i2pA7ItqQBAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIE0LqnJdC7q5LSwK3X0sCt18+7qpHQuqYk + 0bmiBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIG0LuoL9G9rIzVw7HN4tbJ7u3l2vzt5dr8 + 4tbJ7tXDsc3RvayM0LuoL9G5ogYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJuaIMz72qRdK/rZfZyLfI5trN6+3k2Prv593+ + 8uvh//Lr4f/v593+7eTY+ubazevZyLfI0r+tl8+8qkXJuaIMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMtaQU0LyqV9PAr5rczr7H59zP7Ozi1/rw6N3/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+zi1/rn3M/s3M6+x9PAr5rQvKpXzLWkFAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6Idz7ypZdTBsJzf0MLL5tvP7uzi1/rw6d7/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Dp3v/s4tf65tvP7t/QwsvUwbCc + z7ypZcy3oh0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOuaUg0b6radbEs5rg0sPS5trN8ezi1/vx6d// + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/x6d// + 7OLX++bazfHg0sPS1sSzmtG+q2nOuaUgAAAAAAAAAAC/v58EzbikW8+7qJnf0cHZ5drM8u3k2Pzx6t// + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8erf/+3k2Pzl2czy3tDB2dC7qZnOuaVav7+fBL+/nwTNuKRe0LuoqN7PwOPm2872 + 7ubb/fHq4P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/7uXZ/+POuv/jzrr/7uXZ//Lq4P/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/x6uD/7ubb/ebbzvbdz7/j0LupqM65pVy/v58EAAAAAMzMmQPPuqg0 + 0Lyqd9jHt6rh1Mbd593Q9e3l2vzx6uD/8uvh//Lr4f/x6t//7eHU/+PNuv/bvqX/1qmF/9aohf/bvqX/ + 4826/+3h1P/x6t//8uvh//Lr4f/x6uD/7eXa/Ofd0PXh1Mbd2Me3qtC7qnfPuqg0v7+/AgAAAAAAAAAA + AAAAAAAAAACqqqoCzbimMM+8qXfXxrWq4dTF1+jd0fTs4tb769/R/+TPvP/bvKL/06N//9Occv/jqn7/ + 46p+/9Occv/To3//27yi/+TPvP/r39H/7OLW++jd0fTh1MXX18a1qc+8qXfNuKYw/4CAAQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM+4pSPOuKR10bqkw9e+p+zZuJ7+0qJ+/9ObcP/jqX3/ + 77aK//C3i//wt4v/77aK/+Opff/Tm3D/0qJ+/9m4nv7Xvqfs0bqkw864pHXPuKUjAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4fU8IuoBUHb2CVkDDi2CPyJBm49OZbv3mrID/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//mrID/05lu/ciQZuPDi2CPvYJWQLuAVB24fU8I + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1flEHuYBUF72DVkLBh1uexoxg4dedcffqsIT/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/6rCE/9edcffHjGDh + wodbn72DVUK5gFQXtX5RBwAAAAAAAAAAAAAAAKqAVQC5gFIHvYFWDruDVkO+hFiyxo1h5tyjd/jss4f/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/+yzh//do3f4x41g5b6EWLK7g1ZDvYFWDrmAUgeqgFUAqoBVBrmAUmO9gVbPzpNn7eWrgPvutYr/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//utYr/5KuA/M2TZu69gVbPuYBSY6qAVQa/gEAEun1SXruBVc3Nkmbs + 5Kt/++61if/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//ptYn/6baI//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61if/kq3/7zZJm7LuBVc26fVJev4BABL+AQAC6fVIG + uHpVELyAVlm/hFjBypBk69+levnttIj/8LeL//C3i//wt4v/8LeL/+62iv/fs4X/rat1/4+mbf+Ppm3/ + rqt1/9+zhf/utor/8LeL//C3i//wt4v/8LeL/+20iP/fpnn5ypBk67+EWMG8gFZZuHpVELp9Uga/gEAA + AAAAAAAAAACqVVUAuX1TC719Uxq/gldNwYdbq8qQZOXdo3f27LOH/+22iv/asoP/r6t2/5Wpcf+VuIL/ + msSS/5rEkv+VuIL/lalx/6+rdv/asoP/7baK/+yzh//do3f2ypBk5cGHW6u+gldNvIBVGbl9UwuqVVUA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAALh6UAu6gFQgv4VZRr6MXpizlmXno6Nu+5qsdv+Zuob/ + msKQ/5zGlf+eyZn/nsmZ/5zGlf+awpD/mbqG/5qsdv+jo277s5Zl576MXpi/hVlGuoBUILh7UQsAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHefYBR/n2Jfh59luZCoc+yWuYb9 + mcGP/5zGlf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cxpX/mcGP/5a5hv2QqHPsh59luX+fYl93n2AU + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHedXh16oWRlfqVrnIqye8uSvIfu + l8GP+pzHlv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMeW/5fBj/qSvIfu + irJ7y36la5x6oWRld51eHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHegXyB7omRpgKhrmou0fdKRu4bx + l8KQ+53Hl/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/53Hl/+XwpD7kbuG8Yu0fdKAqGuae6JkaXegXyAAAAAAAAAAAICfYAR2nF9beaBjmYmyetmQuoXy + mMOR/J3ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/mMOR/JC6hPKJsnrZeKBjmXaeYFqAn2AEgJ9gBHacX155oGOo + ibJ645K7h/aaxJP9nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+axJP9kruH9omxeuN5oGOodp1fXICfYAQAAAAA + ZplmA3ihYzR6omZ3gqpxqoy1ft2TvIj1mcSS/J3ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+ZxJL8k7yI9Yy1ft2CqnGqe6Jmd3ihYzSAgEAC + AAAAAAAAAAAAAAAAAAAAAFWqVQJ2oGEweaFjd4CobqqLtH/Xk72K9JnDkfudyJf/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Il/+Zw5H7k72K9Iy1f9eBqW6peaFjd3agYTCAgIAB + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5teI3mfY25/pmyqi7N80JS9ivOYw5H7 + nMeX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Hl/+Yw5H7lL2K84uzfNB/pmyqeZ9jbnebXiMAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHacXhR6oGNa + faRpq4evd8+TvYrymcOR+5zHlv+eyZn/nsmZ/5zHlv+Zw5H7lL2K8oevd899pGmreqBjWnacXhQAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB2m10MeJ5iRHuiZ6eDqnDQk72J8ZrFk/yaxZP8k72J8YOqcNB7omeneJ5iRHabXQwAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddBHecYSV6oGSSfaRo132kaNd8oGSReJxhJHSXXQQAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHeZZgF3mWYPbaRbDm2kWwEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/8P///8A// + /8AD//8AAP/8AAA/8AAAD8AAAAMAAAAAAAAAAIAAAAHgAAAH/AAAP/gAAB/gAAAHAAAAAAAAAAAAAAAA + AAAAAMAAAAPwAAAf/AAAP/AAAA/AAAADAAAAAAAAAACAAAAB4AAAB/wAAD//AAD//8AD///wD////D// + KAAAABAAAAAgAAAAAQAgAAAAAAAABAAAYQoAAGEKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAANG6pgrRvqxe0b6sXtC6pgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + zrypFNXDsWXg0sTQ7OPY+uzj2Prg0sTQ1cOxZc68qRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPu6ch + 2Ma2dOLVx9Lt5dn58erg//Lr4f/y6+H/8erg/+3l2fni1cfS2Ma2dM+7pyEAAAAAAAAAAMy4pBjWxbN/ + 49fJ1u3l2fvy6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvg/+3l2fvj18nW1sWzf825pRjMuaMZ + 1cOyjuTZy97u5tv88uvh//Lr4P/t4dT/4cav/+HGr//t4dT/8uvg//Lr4f/u5tv85NnL3tXDso7NuqYZ + AAAAAKqqqgDPu6gq2Mi3huDPvujewqr/2amE/+Wtgf/lrYH/2amE/97Cqv/gz77o2Mi3hs+7qCr/gIAA + AAAAAAAAAAC1flECvIJVGMOJXHfVnHHa5q2B/vC3i//wt4v/8LeL//C3i//mrYH+1Zxx2sOJXHe8glUY + tX5RAgAAAAC4gFIcxIleg9ifc+TqsYX98LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//qsYX9 + 2J9z5MSJXYS4gFIcun1RGsOIXYnZn3Pq67KG/vC3i//wt4v/67aJ/8Wvff/Gr33/67aJ//C3i//wt4v/ + 67KG/tmfc+rDiF2Jun1RGgAAAAC4e1MDvoBVHMWKXn3RoHPdwa58/p60f/+aw5D/msOQ/560f//Brnz+ + 0aBz3cWKXn29gVYcuHtTAwAAAAAAAAAAAAAAAHmgYyGDqXB2kbJ945rCkf6dyJj/nsmZ/57Jmf+dyJj/ + msKR/pGyfeODqXB2eaBjIQAAAAAAAAAAdpxfGICobX+OuILWmcOS+57JmP+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZj/mcOS+464gtaAqG1/dp5gGHacXxmAp22OkLmE3prEk/yeyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5rEk/yQuYTef6dtjnedXxkAAAAAVapVAHihYyqDqnKFj7iD2prEk/ueyZj/ + nsmZ/57Jmf+eyZj/msST+4+4g9qDq3KEeKFjKoCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAHmfYhuBqG5y + jLV/2ZrFk/uaxZP7jbV/2YGobnJ5n2IbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHebYAp8omdefKNmXnibYAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8PwAA8A8AAMADAAAAAAAA + AAAAAIABAACAAQAAAAAAAAAAAACAAQAAwAMAAAAAAAAAAAAAgAEAAPAPAAD8PwAA + + + \ No newline at end of file diff --git a/Handler/Project/Dialog/Motion_MoveToGroup.Designer.cs b/Handler/Project/Dialog/Motion_MoveToGroup.Designer.cs new file mode 100644 index 0000000..816e8db --- /dev/null +++ b/Handler/Project/Dialog/Motion_MoveToGroup.Designer.cs @@ -0,0 +1,1179 @@ +namespace Project.Dialog +{ + partial class Motion_MoveToGroup + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Motion_MoveToGroup)); + this.toolStrip1 = new System.Windows.Forms.ToolStrip(); + this.toolStripButton1 = new System.Windows.Forms.ToolStripButton(); + this.btMove = new System.Windows.Forms.ToolStripButton(); + this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripButton2 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton3 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton4 = new System.Windows.Forms.ToolStripButton(); + this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.lbMotPos = new System.Windows.Forms.ToolStripLabel(); + this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); + this.btSet = new System.Windows.Forms.ToolStripButton(); + this.panel1 = new System.Windows.Forms.Panel(); + this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); + this.button3 = new System.Windows.Forms.Button(); + this.button15 = new System.Windows.Forms.Button(); + this.button14 = new System.Windows.Forms.Button(); + this.button18 = new System.Windows.Forms.Button(); + this.button17 = new System.Windows.Forms.Button(); + this.button12 = new System.Windows.Forms.Button(); + this.button11 = new System.Windows.Forms.Button(); + this.button9 = new System.Windows.Forms.Button(); + this.button8 = new System.Windows.Forms.Button(); + this.button6 = new System.Windows.Forms.Button(); + this.button5 = new System.Windows.Forms.Button(); + this.button1 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.button13 = new System.Windows.Forms.Button(); + this.button4 = new System.Windows.Forms.Button(); + this.button7 = new System.Windows.Forms.Button(); + this.button10 = new System.Windows.Forms.Button(); + this.button16 = new System.Windows.Forms.Button(); + this.btAllZSafe = new System.Windows.Forms.Button(); + this.panel11 = new System.Windows.Forms.Panel(); + this.nudJogVel = new arFrame.Control.MotValueNumericUpDown(); + this.button25 = new System.Windows.Forms.Button(); + this.button24 = new System.Windows.Forms.Button(); + this.button23 = new System.Windows.Forms.Button(); + this.button22 = new System.Windows.Forms.Button(); + this.button21 = new System.Windows.Forms.Button(); + this.button20 = new System.Windows.Forms.Button(); + this.button19 = new System.Windows.Forms.Button(); + this.linkLabel8 = new arFrame.Control.MotLinkLabel(); + this.statusStrip1 = new System.Windows.Forms.StatusStrip(); + this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel(); + this.lbX = new System.Windows.Forms.ToolStripStatusLabel(); + this.toolStripStatusLabel5 = new System.Windows.Forms.ToolStripStatusLabel(); + this.lbY = new System.Windows.Forms.ToolStripStatusLabel(); + this.toolStripStatusLabel3 = new System.Windows.Forms.ToolStripStatusLabel(); + this.lbZ = new System.Windows.Forms.ToolStripStatusLabel(); + this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); + this.panel2 = new System.Windows.Forms.Panel(); + this.button30 = new System.Windows.Forms.Button(); + this.btXNeg = new arFrame.Control.MotCommandButton(); + this.btJogStop = new arFrame.Control.MotCommandButton(); + this.btYPos = new arFrame.Control.MotCommandButton(); + this.btYNeg = new arFrame.Control.MotCommandButton(); + this.btXPos = new arFrame.Control.MotCommandButton(); + this.btZNeg = new arFrame.Control.MotCommandButton(); + this.motCommandButton1 = new arFrame.Control.MotCommandButton(); + this.btZPos = new arFrame.Control.MotCommandButton(); + this.button28 = new System.Windows.Forms.Button(); + this.button29 = new System.Windows.Forms.Button(); + this.panel3 = new System.Windows.Forms.Panel(); + this.button31 = new System.Windows.Forms.Button(); + this.tvFront = new System.Windows.Forms.TreeView(); + this.tmDisplay = new System.Windows.Forms.Timer(this.components); + this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); + this.tvOther2 = new System.Windows.Forms.TreeView(); + this.tvOther = new System.Windows.Forms.TreeView(); + this.tvRear = new System.Windows.Forms.TreeView(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.toolStrip1.SuspendLayout(); + this.panel1.SuspendLayout(); + this.tableLayoutPanel3.SuspendLayout(); + this.panel11.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudJogVel)).BeginInit(); + this.statusStrip1.SuspendLayout(); + this.tableLayoutPanel2.SuspendLayout(); + this.panel2.SuspendLayout(); + this.panel3.SuspendLayout(); + this.tableLayoutPanel4.SuspendLayout(); + this.SuspendLayout(); + // + // toolStrip1 + // + this.toolStrip1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.toolStrip1.ImageScalingSize = new System.Drawing.Size(32, 32); + this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripButton1, + this.btMove, + this.toolStripSeparator1, + this.toolStripButton2, + this.toolStripButton3, + this.toolStripButton4, + this.toolStripSeparator2, + this.lbMotPos, + this.toolStripSeparator3, + this.btSet}); + this.toolStrip1.Location = new System.Drawing.Point(0, 922); + this.toolStrip1.Name = "toolStrip1"; + this.toolStrip1.Size = new System.Drawing.Size(1264, 39); + this.toolStrip1.TabIndex = 1; + this.toolStrip1.Text = "toolStrip1"; + // + // toolStripButton1 + // + this.toolStripButton1.Image = global::Project.Properties.Resources.icons8_repeat_40; + this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton1.Name = "toolStripButton1"; + this.toolStripButton1.Size = new System.Drawing.Size(91, 36); + this.toolStripButton1.Text = "새로고침"; + this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click); + // + // btMove + // + this.btMove.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.btMove.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btMove.Image = global::Project.Properties.Resources.icons8_move_right_40; + this.btMove.ImageTransparentColor = System.Drawing.Color.Magenta; + this.btMove.Name = "btMove"; + this.btMove.Size = new System.Drawing.Size(231, 36); + this.btMove.Text = "현재 선택 항목의 좌표로 모션 이동"; + this.btMove.Click += new System.EventHandler(this.toolStripButton2_Click); + // + // toolStripSeparator1 + // + this.toolStripSeparator1.Name = "toolStripSeparator1"; + this.toolStripSeparator1.Size = new System.Drawing.Size(6, 39); + // + // toolStripButton2 + // + this.toolStripButton2.Image = global::Project.Properties.Resources.Motor; + this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton2.Name = "toolStripButton2"; + this.toolStripButton2.Size = new System.Drawing.Size(95, 36); + this.toolStripButton2.Text = "모션 제어"; + this.toolStripButton2.Click += new System.EventHandler(this.toolStripButton2_Click_1); + // + // toolStripButton3 + // + this.toolStripButton3.Image = global::Project.Properties.Resources.icons8_input_40; + this.toolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton3.Name = "toolStripButton3"; + this.toolStripButton3.Size = new System.Drawing.Size(88, 36); + this.toolStripButton3.Text = "I/O 제어"; + this.toolStripButton3.Click += new System.EventHandler(this.toolStripButton3_Click); + // + // toolStripButton4 + // + this.toolStripButton4.Image = global::Project.Properties.Resources.icons8_object_40; + this.toolStripButton4.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton4.Name = "toolStripButton4"; + this.toolStripButton4.Size = new System.Drawing.Size(67, 36); + this.toolStripButton4.Text = "기능"; + this.toolStripButton4.Click += new System.EventHandler(this.toolStripButton4_Click); + // + // toolStripSeparator2 + // + this.toolStripSeparator2.Name = "toolStripSeparator2"; + this.toolStripSeparator2.Size = new System.Drawing.Size(6, 39); + // + // lbMotPos + // + this.lbMotPos.Name = "lbMotPos"; + this.lbMotPos.Size = new System.Drawing.Size(95, 36); + this.lbMotPos.Text = "{Motor Position}"; + // + // toolStripSeparator3 + // + this.toolStripSeparator3.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.toolStripSeparator3.Name = "toolStripSeparator3"; + this.toolStripSeparator3.Size = new System.Drawing.Size(6, 39); + // + // btSet + // + this.btSet.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.btSet.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btSet.Image = global::Project.Properties.Resources.icons8_save_to_grid_40; + this.btSet.ImageTransparentColor = System.Drawing.Color.Magenta; + this.btSet.Name = "btSet"; + this.btSet.Size = new System.Drawing.Size(171, 36); + this.btSet.Text = "현재 명령좌표로 저장"; + this.btSet.Click += new System.EventHandler(this.btSet_Click); + // + // panel1 + // + this.panel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.panel1.Controls.Add(this.tableLayoutPanel3); + this.panel1.Controls.Add(this.panel11); + this.panel1.Controls.Add(this.statusStrip1); + this.panel1.Controls.Add(this.tableLayoutPanel2); + this.panel1.Dock = System.Windows.Forms.DockStyle.Right; + this.panel1.Location = new System.Drawing.Point(743, 0); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(521, 922); + this.panel1.TabIndex = 1; + // + // tableLayoutPanel3 + // + this.tableLayoutPanel3.ColumnCount = 6; + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); + this.tableLayoutPanel3.Controls.Add(this.button3, 0, 2); + this.tableLayoutPanel3.Controls.Add(this.button15, 5, 0); + this.tableLayoutPanel3.Controls.Add(this.button14, 5, 1); + this.tableLayoutPanel3.Controls.Add(this.button18, 4, 0); + this.tableLayoutPanel3.Controls.Add(this.button17, 4, 1); + this.tableLayoutPanel3.Controls.Add(this.button12, 3, 0); + this.tableLayoutPanel3.Controls.Add(this.button11, 3, 1); + this.tableLayoutPanel3.Controls.Add(this.button9, 2, 0); + this.tableLayoutPanel3.Controls.Add(this.button8, 2, 1); + this.tableLayoutPanel3.Controls.Add(this.button6, 1, 0); + this.tableLayoutPanel3.Controls.Add(this.button5, 1, 1); + this.tableLayoutPanel3.Controls.Add(this.button1, 0, 0); + this.tableLayoutPanel3.Controls.Add(this.button2, 0, 1); + this.tableLayoutPanel3.Controls.Add(this.button13, 5, 2); + this.tableLayoutPanel3.Controls.Add(this.button4, 1, 2); + this.tableLayoutPanel3.Controls.Add(this.button7, 2, 2); + this.tableLayoutPanel3.Controls.Add(this.button10, 3, 2); + this.tableLayoutPanel3.Controls.Add(this.button16, 4, 2); + this.tableLayoutPanel3.Controls.Add(this.btAllZSafe, 0, 3); + this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel3.Location = new System.Drawing.Point(0, 435); + this.tableLayoutPanel3.Name = "tableLayoutPanel3"; + this.tableLayoutPanel3.RowCount = 4; + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel3.Size = new System.Drawing.Size(521, 462); + this.tableLayoutPanel3.TabIndex = 83; + // + // button3 + // + this.button3.Dock = System.Windows.Forms.DockStyle.Fill; + this.button3.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button3.Location = new System.Drawing.Point(3, 233); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(80, 109); + this.button3.TabIndex = 67; + this.button3.Text = "Z-ZERO"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button1_Click); + // + // button15 + // + this.button15.Dock = System.Windows.Forms.DockStyle.Fill; + this.button15.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button15.ForeColor = System.Drawing.Color.Red; + this.button15.Location = new System.Drawing.Point(433, 3); + this.button15.Name = "button15"; + this.button15.Size = new System.Drawing.Size(85, 109); + this.button15.TabIndex = 80; + this.button15.Text = "X : +1mm"; + this.button15.UseVisualStyleBackColor = true; + this.button15.Click += new System.EventHandler(this.button13_Click); + // + // button14 + // + this.button14.Dock = System.Windows.Forms.DockStyle.Fill; + this.button14.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button14.ForeColor = System.Drawing.Color.Red; + this.button14.Location = new System.Drawing.Point(433, 118); + this.button14.Name = "button14"; + this.button14.Size = new System.Drawing.Size(85, 109); + this.button14.TabIndex = 81; + this.button14.Text = "Y : +1mm"; + this.button14.UseVisualStyleBackColor = true; + this.button14.Click += new System.EventHandler(this.button13_Click); + // + // button18 + // + this.button18.Dock = System.Windows.Forms.DockStyle.Fill; + this.button18.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button18.ForeColor = System.Drawing.Color.Red; + this.button18.Location = new System.Drawing.Point(347, 3); + this.button18.Name = "button18"; + this.button18.Size = new System.Drawing.Size(80, 109); + this.button18.TabIndex = 77; + this.button18.Text = "X : +0.1mm"; + this.button18.UseVisualStyleBackColor = true; + this.button18.Click += new System.EventHandler(this.button13_Click); + // + // button17 + // + this.button17.Dock = System.Windows.Forms.DockStyle.Fill; + this.button17.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button17.ForeColor = System.Drawing.Color.Red; + this.button17.Location = new System.Drawing.Point(347, 118); + this.button17.Name = "button17"; + this.button17.Size = new System.Drawing.Size(80, 109); + this.button17.TabIndex = 78; + this.button17.Text = "Y : +0.1mm"; + this.button17.UseVisualStyleBackColor = true; + this.button17.Click += new System.EventHandler(this.button13_Click); + // + // button12 + // + this.button12.Dock = System.Windows.Forms.DockStyle.Fill; + this.button12.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button12.ForeColor = System.Drawing.Color.Blue; + this.button12.Location = new System.Drawing.Point(261, 3); + this.button12.Name = "button12"; + this.button12.Size = new System.Drawing.Size(80, 109); + this.button12.TabIndex = 74; + this.button12.Text = "X : -0.1mm"; + this.button12.UseVisualStyleBackColor = true; + this.button12.Click += new System.EventHandler(this.button13_Click); + // + // button11 + // + this.button11.Dock = System.Windows.Forms.DockStyle.Fill; + this.button11.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button11.ForeColor = System.Drawing.Color.Blue; + this.button11.Location = new System.Drawing.Point(261, 118); + this.button11.Name = "button11"; + this.button11.Size = new System.Drawing.Size(80, 109); + this.button11.TabIndex = 75; + this.button11.Text = "Y : -0.1mm"; + this.button11.UseVisualStyleBackColor = true; + this.button11.Click += new System.EventHandler(this.button13_Click); + // + // button9 + // + this.button9.Dock = System.Windows.Forms.DockStyle.Fill; + this.button9.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button9.ForeColor = System.Drawing.Color.Blue; + this.button9.Location = new System.Drawing.Point(175, 3); + this.button9.Name = "button9"; + this.button9.Size = new System.Drawing.Size(80, 109); + this.button9.TabIndex = 71; + this.button9.Text = "X : -1mm"; + this.button9.UseVisualStyleBackColor = true; + this.button9.Click += new System.EventHandler(this.button13_Click); + // + // button8 + // + this.button8.Dock = System.Windows.Forms.DockStyle.Fill; + this.button8.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button8.ForeColor = System.Drawing.Color.Blue; + this.button8.Location = new System.Drawing.Point(175, 118); + this.button8.Name = "button8"; + this.button8.Size = new System.Drawing.Size(80, 109); + this.button8.TabIndex = 72; + this.button8.Text = "Y : -1mm"; + this.button8.UseVisualStyleBackColor = true; + this.button8.Click += new System.EventHandler(this.button13_Click); + // + // button6 + // + this.button6.Dock = System.Windows.Forms.DockStyle.Fill; + this.button6.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button6.Location = new System.Drawing.Point(89, 3); + this.button6.Name = "button6"; + this.button6.Size = new System.Drawing.Size(80, 109); + this.button6.TabIndex = 68; + this.button6.Text = "X-MOVE"; + this.button6.UseVisualStyleBackColor = true; + this.button6.Click += new System.EventHandler(this.button1_Click); + // + // button5 + // + this.button5.Dock = System.Windows.Forms.DockStyle.Fill; + this.button5.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button5.Location = new System.Drawing.Point(89, 118); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(80, 109); + this.button5.TabIndex = 69; + this.button5.Text = "Y-MOVE"; + this.button5.UseVisualStyleBackColor = true; + this.button5.Click += new System.EventHandler(this.button1_Click); + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Fill; + this.button1.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button1.Location = new System.Drawing.Point(3, 3); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(80, 109); + this.button1.TabIndex = 65; + this.button1.Text = "X-ZERO"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // button2 + // + this.button2.Dock = System.Windows.Forms.DockStyle.Fill; + this.button2.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button2.Location = new System.Drawing.Point(3, 118); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(80, 109); + this.button2.TabIndex = 66; + this.button2.Text = "Y-ZERO"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button1_Click); + // + // button13 + // + this.button13.Dock = System.Windows.Forms.DockStyle.Fill; + this.button13.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button13.ForeColor = System.Drawing.Color.Red; + this.button13.Location = new System.Drawing.Point(433, 233); + this.button13.Name = "button13"; + this.button13.Size = new System.Drawing.Size(85, 109); + this.button13.TabIndex = 82; + this.button13.Text = "Z : +1mm"; + this.button13.UseVisualStyleBackColor = true; + this.button13.Click += new System.EventHandler(this.button13_Click); + // + // button4 + // + this.button4.Dock = System.Windows.Forms.DockStyle.Fill; + this.button4.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button4.Location = new System.Drawing.Point(89, 233); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(80, 109); + this.button4.TabIndex = 70; + this.button4.Text = "Z-MOVE"; + this.button4.UseVisualStyleBackColor = true; + this.button4.Click += new System.EventHandler(this.button1_Click); + // + // button7 + // + this.button7.Dock = System.Windows.Forms.DockStyle.Fill; + this.button7.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button7.ForeColor = System.Drawing.Color.Blue; + this.button7.Location = new System.Drawing.Point(175, 233); + this.button7.Name = "button7"; + this.button7.Size = new System.Drawing.Size(80, 109); + this.button7.TabIndex = 73; + this.button7.Text = "Z : -1mm"; + this.button7.UseVisualStyleBackColor = true; + this.button7.Click += new System.EventHandler(this.button13_Click); + // + // button10 + // + this.button10.Dock = System.Windows.Forms.DockStyle.Fill; + this.button10.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button10.ForeColor = System.Drawing.Color.Blue; + this.button10.Location = new System.Drawing.Point(261, 233); + this.button10.Name = "button10"; + this.button10.Size = new System.Drawing.Size(80, 109); + this.button10.TabIndex = 76; + this.button10.Text = "Z : -0.1mm"; + this.button10.UseVisualStyleBackColor = true; + this.button10.Click += new System.EventHandler(this.button13_Click); + // + // button16 + // + this.button16.Dock = System.Windows.Forms.DockStyle.Fill; + this.button16.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button16.ForeColor = System.Drawing.Color.Red; + this.button16.Location = new System.Drawing.Point(347, 233); + this.button16.Name = "button16"; + this.button16.Size = new System.Drawing.Size(80, 109); + this.button16.TabIndex = 79; + this.button16.Text = "Z : +0.1mm"; + this.button16.UseVisualStyleBackColor = true; + this.button16.Click += new System.EventHandler(this.button13_Click); + // + // btAllZSafe + // + this.btAllZSafe.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(192))))); + this.tableLayoutPanel3.SetColumnSpan(this.btAllZSafe, 3); + this.btAllZSafe.Dock = System.Windows.Forms.DockStyle.Fill; + this.btAllZSafe.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Bold); + this.btAllZSafe.ForeColor = System.Drawing.Color.White; + this.btAllZSafe.Location = new System.Drawing.Point(3, 348); + this.btAllZSafe.Name = "btAllZSafe"; + this.btAllZSafe.Size = new System.Drawing.Size(252, 111); + this.btAllZSafe.TabIndex = 83; + this.btAllZSafe.Text = "모든 Z 축 안전 위치로"; + this.btAllZSafe.UseVisualStyleBackColor = false; + this.btAllZSafe.Click += new System.EventHandler(this.btAllZSafe_Click); + // + // panel11 + // + this.panel11.Controls.Add(this.nudJogVel); + this.panel11.Controls.Add(this.button25); + this.panel11.Controls.Add(this.button24); + this.panel11.Controls.Add(this.button23); + this.panel11.Controls.Add(this.button22); + this.panel11.Controls.Add(this.button21); + this.panel11.Controls.Add(this.button20); + this.panel11.Controls.Add(this.button19); + this.panel11.Controls.Add(this.linkLabel8); + this.panel11.Dock = System.Windows.Forms.DockStyle.Top; + this.panel11.Font = new System.Drawing.Font("굴림", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.panel11.Location = new System.Drawing.Point(0, 396); + this.panel11.Name = "panel11"; + this.panel11.Padding = new System.Windows.Forms.Padding(2); + this.panel11.Size = new System.Drawing.Size(521, 39); + this.panel11.TabIndex = 64; + // + // nudJogVel + // + this.nudJogVel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.nudJogVel.DecimalPlaces = 2; + this.nudJogVel.Dock = System.Windows.Forms.DockStyle.Fill; + this.nudJogVel.Font = new System.Drawing.Font("굴림", 17F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.nudJogVel.Location = new System.Drawing.Point(63, 2); + this.nudJogVel.Maximum = new decimal(new int[] { + 9999999, + 0, + 0, + 0}); + this.nudJogVel.MotionIndex = -1; + this.nudJogVel.Name = "nudJogVel"; + this.nudJogVel.Size = new System.Drawing.Size(106, 34); + this.nudJogVel.TabIndex = 0; + this.nudJogVel.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.nudJogVel.Value = new decimal(new int[] { + 20, + 0, + 0, + 0}); + // + // button25 + // + this.button25.Dock = System.Windows.Forms.DockStyle.Right; + this.button25.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button25.Location = new System.Drawing.Point(169, 2); + this.button25.Name = "button25"; + this.button25.Size = new System.Drawing.Size(50, 35); + this.button25.TabIndex = 48; + this.button25.Text = "2"; + this.button25.UseVisualStyleBackColor = true; + this.button25.Click += new System.EventHandler(this.button25_Click); + // + // button24 + // + this.button24.Dock = System.Windows.Forms.DockStyle.Right; + this.button24.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button24.Location = new System.Drawing.Point(219, 2); + this.button24.Name = "button24"; + this.button24.Size = new System.Drawing.Size(50, 35); + this.button24.TabIndex = 47; + this.button24.Text = "5"; + this.button24.UseVisualStyleBackColor = true; + this.button24.Click += new System.EventHandler(this.button25_Click); + // + // button23 + // + this.button23.Dock = System.Windows.Forms.DockStyle.Right; + this.button23.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button23.Location = new System.Drawing.Point(269, 2); + this.button23.Name = "button23"; + this.button23.Size = new System.Drawing.Size(50, 35); + this.button23.TabIndex = 46; + this.button23.Text = "10"; + this.button23.UseVisualStyleBackColor = true; + this.button23.Click += new System.EventHandler(this.button25_Click); + // + // button22 + // + this.button22.Dock = System.Windows.Forms.DockStyle.Right; + this.button22.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button22.Location = new System.Drawing.Point(319, 2); + this.button22.Name = "button22"; + this.button22.Size = new System.Drawing.Size(50, 35); + this.button22.TabIndex = 45; + this.button22.Text = "20"; + this.button22.UseVisualStyleBackColor = true; + this.button22.Click += new System.EventHandler(this.button25_Click); + // + // button21 + // + this.button21.Dock = System.Windows.Forms.DockStyle.Right; + this.button21.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button21.Location = new System.Drawing.Point(369, 2); + this.button21.Name = "button21"; + this.button21.Size = new System.Drawing.Size(50, 35); + this.button21.TabIndex = 44; + this.button21.Text = "50"; + this.button21.UseVisualStyleBackColor = true; + this.button21.Click += new System.EventHandler(this.button25_Click); + // + // button20 + // + this.button20.Dock = System.Windows.Forms.DockStyle.Right; + this.button20.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button20.Location = new System.Drawing.Point(419, 2); + this.button20.Name = "button20"; + this.button20.Size = new System.Drawing.Size(50, 35); + this.button20.TabIndex = 43; + this.button20.Text = "100"; + this.button20.UseVisualStyleBackColor = true; + this.button20.Click += new System.EventHandler(this.button25_Click); + // + // button19 + // + this.button19.Dock = System.Windows.Forms.DockStyle.Right; + this.button19.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button19.Location = new System.Drawing.Point(469, 2); + this.button19.Name = "button19"; + this.button19.Size = new System.Drawing.Size(50, 35); + this.button19.TabIndex = 42; + this.button19.Text = "150"; + this.button19.UseVisualStyleBackColor = true; + this.button19.Click += new System.EventHandler(this.button25_Click); + // + // linkLabel8 + // + this.linkLabel8.Dock = System.Windows.Forms.DockStyle.Left; + this.linkLabel8.Font = new System.Drawing.Font("맑은 고딕", 14F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.linkLabel8.LinkColor = System.Drawing.Color.Blue; + this.linkLabel8.Location = new System.Drawing.Point(2, 2); + this.linkLabel8.motValueControl = this.nudJogVel; + this.linkLabel8.Name = "linkLabel8"; + this.linkLabel8.Size = new System.Drawing.Size(61, 35); + this.linkLabel8.TabIndex = 41; + this.linkLabel8.TabStop = true; + this.linkLabel8.Text = "속도"; + this.linkLabel8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // statusStrip1 + // + this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripStatusLabel1, + this.lbX, + this.toolStripStatusLabel5, + this.lbY, + this.toolStripStatusLabel3, + this.lbZ}); + this.statusStrip1.Location = new System.Drawing.Point(0, 897); + this.statusStrip1.Name = "statusStrip1"; + this.statusStrip1.Size = new System.Drawing.Size(521, 25); + this.statusStrip1.TabIndex = 4; + this.statusStrip1.Text = "statusStrip1"; + // + // toolStripStatusLabel1 + // + this.toolStripStatusLabel1.Font = new System.Drawing.Font("맑은 고딕", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.toolStripStatusLabel1.Name = "toolStripStatusLabel1"; + this.toolStripStatusLabel1.Size = new System.Drawing.Size(19, 20); + this.toolStripStatusLabel1.Text = "X"; + // + // lbX + // + this.lbX.Name = "lbX"; + this.lbX.Size = new System.Drawing.Size(17, 20); + this.lbX.Text = "--"; + // + // toolStripStatusLabel5 + // + this.toolStripStatusLabel5.Font = new System.Drawing.Font("맑은 고딕", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.toolStripStatusLabel5.Name = "toolStripStatusLabel5"; + this.toolStripStatusLabel5.Size = new System.Drawing.Size(18, 20); + this.toolStripStatusLabel5.Text = "Y"; + // + // lbY + // + this.lbY.Name = "lbY"; + this.lbY.Size = new System.Drawing.Size(17, 20); + this.lbY.Text = "--"; + // + // toolStripStatusLabel3 + // + this.toolStripStatusLabel3.Font = new System.Drawing.Font("맑은 고딕", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.toolStripStatusLabel3.Name = "toolStripStatusLabel3"; + this.toolStripStatusLabel3.Size = new System.Drawing.Size(18, 20); + this.toolStripStatusLabel3.Text = "Z"; + // + // lbZ + // + this.lbZ.Name = "lbZ"; + this.lbZ.Size = new System.Drawing.Size(17, 20); + this.lbZ.Text = "--"; + // + // tableLayoutPanel2 + // + this.tableLayoutPanel2.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.Single; + this.tableLayoutPanel2.ColumnCount = 4; + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25.00015F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25.00015F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25.00015F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 24.99953F)); + this.tableLayoutPanel2.Controls.Add(this.panel2, 2, 0); + this.tableLayoutPanel2.Controls.Add(this.btXNeg, 0, 1); + this.tableLayoutPanel2.Controls.Add(this.btJogStop, 1, 1); + this.tableLayoutPanel2.Controls.Add(this.btYPos, 1, 2); + this.tableLayoutPanel2.Controls.Add(this.btYNeg, 1, 0); + this.tableLayoutPanel2.Controls.Add(this.btXPos, 2, 1); + this.tableLayoutPanel2.Controls.Add(this.btZNeg, 3, 0); + this.tableLayoutPanel2.Controls.Add(this.motCommandButton1, 3, 1); + this.tableLayoutPanel2.Controls.Add(this.btZPos, 3, 2); + this.tableLayoutPanel2.Controls.Add(this.button28, 0, 2); + this.tableLayoutPanel2.Controls.Add(this.button29, 2, 2); + this.tableLayoutPanel2.Controls.Add(this.panel3, 0, 0); + this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Top; + this.tableLayoutPanel2.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel2.Name = "tableLayoutPanel2"; + this.tableLayoutPanel2.RowCount = 3; + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel2.Size = new System.Drawing.Size(521, 396); + this.tableLayoutPanel2.TabIndex = 3; + // + // panel2 + // + this.panel2.Controls.Add(this.button30); + this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel2.Location = new System.Drawing.Point(264, 4); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(123, 124); + this.panel2.TabIndex = 3; + // + // button30 + // + this.button30.Dock = System.Windows.Forms.DockStyle.Fill; + this.button30.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Bold); + this.button30.Image = ((System.Drawing.Image)(resources.GetObject("button30.Image"))); + this.button30.ImageAlign = System.Drawing.ContentAlignment.TopCenter; + this.button30.Location = new System.Drawing.Point(0, 0); + this.button30.Name = "button30"; + this.button30.Padding = new System.Windows.Forms.Padding(0, 20, 0, 15); + this.button30.Size = new System.Drawing.Size(123, 124); + this.button30.TabIndex = 6; + this.button30.Text = "AIR"; + this.button30.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + this.button30.UseVisualStyleBackColor = true; + this.button30.Click += new System.EventHandler(this.button30_Click); + // + // btXNeg + // + this.btXNeg.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); + this.btXNeg.Dock = System.Windows.Forms.DockStyle.Fill; + this.btXNeg.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btXNeg.ForeColor = System.Drawing.Color.Red; + this.btXNeg.Location = new System.Drawing.Point(1, 132); + this.btXNeg.Margin = new System.Windows.Forms.Padding(0); + this.btXNeg.motAccControl = null; + this.btXNeg.motCommand = arFrame.Control.MotCommandButton.eCommand.AbsoluteMove; + this.btXNeg.motSpdControl = null; + this.btXNeg.motValueControl = null; + this.btXNeg.Name = "btXNeg"; + this.btXNeg.Size = new System.Drawing.Size(129, 130); + this.btXNeg.TabIndex = 0; + this.btXNeg.Tag = "X-"; + this.btXNeg.Text = "X\r\nNEG(-)"; + this.btXNeg.UseVisualStyleBackColor = false; + this.btXNeg.MouseDown += new System.Windows.Forms.MouseEventHandler(this.btJogUp_MouseDown); + this.btXNeg.MouseUp += new System.Windows.Forms.MouseEventHandler(this.btAClear_MouseUp); + // + // btJogStop + // + this.btJogStop.Dock = System.Windows.Forms.DockStyle.Fill; + this.btJogStop.Font = new System.Drawing.Font("맑은 고딕", 30F, System.Drawing.FontStyle.Bold); + this.btJogStop.ForeColor = System.Drawing.Color.Black; + this.btJogStop.Location = new System.Drawing.Point(131, 132); + this.btJogStop.Margin = new System.Windows.Forms.Padding(0); + this.btJogStop.motAccControl = null; + this.btJogStop.motCommand = arFrame.Control.MotCommandButton.eCommand.AbsoluteMove; + this.btJogStop.motSpdControl = null; + this.btJogStop.motValueControl = null; + this.btJogStop.Name = "btJogStop"; + this.btJogStop.Size = new System.Drawing.Size(129, 130); + this.btJogStop.TabIndex = 0; + this.btJogStop.Tag = "STOP"; + this.btJogStop.Text = "■"; + this.btJogStop.UseVisualStyleBackColor = true; + this.btJogStop.Click += new System.EventHandler(this.btJogStop_Click); + // + // btYPos + // + this.btYPos.BackColor = System.Drawing.Color.Turquoise; + this.btYPos.Dock = System.Windows.Forms.DockStyle.Fill; + this.btYPos.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btYPos.ForeColor = System.Drawing.Color.Blue; + this.btYPos.Location = new System.Drawing.Point(131, 263); + this.btYPos.Margin = new System.Windows.Forms.Padding(0); + this.btYPos.motAccControl = null; + this.btYPos.motCommand = arFrame.Control.MotCommandButton.eCommand.AbsoluteMove; + this.btYPos.motSpdControl = null; + this.btYPos.motValueControl = null; + this.btYPos.Name = "btYPos"; + this.btYPos.Size = new System.Drawing.Size(129, 132); + this.btYPos.TabIndex = 0; + this.btYPos.Tag = "Y+"; + this.btYPos.Text = "Y\r\nPOS(+)"; + this.btYPos.UseVisualStyleBackColor = false; + this.btYPos.MouseDown += new System.Windows.Forms.MouseEventHandler(this.btJogUp_MouseDown); + this.btYPos.MouseUp += new System.Windows.Forms.MouseEventHandler(this.btAClear_MouseUp); + // + // btYNeg + // + this.btYNeg.BackColor = System.Drawing.Color.Turquoise; + this.btYNeg.Dock = System.Windows.Forms.DockStyle.Fill; + this.btYNeg.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btYNeg.ForeColor = System.Drawing.Color.Red; + this.btYNeg.Location = new System.Drawing.Point(131, 1); + this.btYNeg.Margin = new System.Windows.Forms.Padding(0); + this.btYNeg.motAccControl = null; + this.btYNeg.motCommand = arFrame.Control.MotCommandButton.eCommand.AbsoluteMove; + this.btYNeg.motSpdControl = null; + this.btYNeg.motValueControl = null; + this.btYNeg.Name = "btYNeg"; + this.btYNeg.Size = new System.Drawing.Size(129, 130); + this.btYNeg.TabIndex = 0; + this.btYNeg.Tag = "Y-"; + this.btYNeg.Text = "Y\r\nNEG(-)"; + this.btYNeg.UseVisualStyleBackColor = false; + this.btYNeg.MouseDown += new System.Windows.Forms.MouseEventHandler(this.btJogUp_MouseDown); + this.btYNeg.MouseUp += new System.Windows.Forms.MouseEventHandler(this.btAClear_MouseUp); + // + // btXPos + // + this.btXPos.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); + this.btXPos.Dock = System.Windows.Forms.DockStyle.Fill; + this.btXPos.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btXPos.ForeColor = System.Drawing.Color.Blue; + this.btXPos.Location = new System.Drawing.Point(261, 132); + this.btXPos.Margin = new System.Windows.Forms.Padding(0); + this.btXPos.motAccControl = null; + this.btXPos.motCommand = arFrame.Control.MotCommandButton.eCommand.AbsoluteMove; + this.btXPos.motSpdControl = null; + this.btXPos.motValueControl = null; + this.btXPos.Name = "btXPos"; + this.btXPos.Size = new System.Drawing.Size(129, 130); + this.btXPos.TabIndex = 0; + this.btXPos.Tag = "X+"; + this.btXPos.Text = "X\r\nPOS(+)"; + this.btXPos.UseVisualStyleBackColor = false; + this.btXPos.MouseDown += new System.Windows.Forms.MouseEventHandler(this.btJogUp_MouseDown); + this.btXPos.MouseUp += new System.Windows.Forms.MouseEventHandler(this.btAClear_MouseUp); + // + // btZNeg + // + this.btZNeg.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); + this.btZNeg.Dock = System.Windows.Forms.DockStyle.Fill; + this.btZNeg.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btZNeg.ForeColor = System.Drawing.Color.Black; + this.btZNeg.Location = new System.Drawing.Point(391, 1); + this.btZNeg.Margin = new System.Windows.Forms.Padding(0); + this.btZNeg.motAccControl = null; + this.btZNeg.motCommand = arFrame.Control.MotCommandButton.eCommand.AbsoluteMove; + this.btZNeg.motSpdControl = null; + this.btZNeg.motValueControl = null; + this.btZNeg.Name = "btZNeg"; + this.btZNeg.Size = new System.Drawing.Size(129, 130); + this.btZNeg.TabIndex = 4; + this.btZNeg.Tag = "Z-"; + this.btZNeg.Text = "Z\r\nNEG(-)"; + this.btZNeg.UseVisualStyleBackColor = false; + this.btZNeg.MouseDown += new System.Windows.Forms.MouseEventHandler(this.btJogUp_MouseDown); + this.btZNeg.MouseUp += new System.Windows.Forms.MouseEventHandler(this.btAClear_MouseUp); + // + // motCommandButton1 + // + this.motCommandButton1.Dock = System.Windows.Forms.DockStyle.Fill; + this.motCommandButton1.Font = new System.Drawing.Font("맑은 고딕", 30F, System.Drawing.FontStyle.Bold); + this.motCommandButton1.ForeColor = System.Drawing.Color.Black; + this.motCommandButton1.Location = new System.Drawing.Point(391, 132); + this.motCommandButton1.Margin = new System.Windows.Forms.Padding(0); + this.motCommandButton1.motAccControl = null; + this.motCommandButton1.motCommand = arFrame.Control.MotCommandButton.eCommand.AbsoluteMove; + this.motCommandButton1.motSpdControl = null; + this.motCommandButton1.motValueControl = null; + this.motCommandButton1.Name = "motCommandButton1"; + this.motCommandButton1.Size = new System.Drawing.Size(129, 130); + this.motCommandButton1.TabIndex = 4; + this.motCommandButton1.Text = "■"; + this.motCommandButton1.UseVisualStyleBackColor = true; + this.motCommandButton1.Click += new System.EventHandler(this.motCommandButton1_Click); + // + // btZPos + // + this.btZPos.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); + this.btZPos.Dock = System.Windows.Forms.DockStyle.Fill; + this.btZPos.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btZPos.ForeColor = System.Drawing.Color.Black; + this.btZPos.Location = new System.Drawing.Point(391, 263); + this.btZPos.Margin = new System.Windows.Forms.Padding(0); + this.btZPos.motAccControl = null; + this.btZPos.motCommand = arFrame.Control.MotCommandButton.eCommand.AbsoluteMove; + this.btZPos.motSpdControl = null; + this.btZPos.motValueControl = null; + this.btZPos.Name = "btZPos"; + this.btZPos.Size = new System.Drawing.Size(129, 132); + this.btZPos.TabIndex = 4; + this.btZPos.Tag = "Z+"; + this.btZPos.Text = "Z\r\nPOS(+)"; + this.btZPos.UseVisualStyleBackColor = false; + this.btZPos.MouseDown += new System.Windows.Forms.MouseEventHandler(this.btJogUp_MouseDown); + this.btZPos.MouseUp += new System.Windows.Forms.MouseEventHandler(this.btAClear_MouseUp); + // + // button28 + // + this.button28.Dock = System.Windows.Forms.DockStyle.Fill; + this.button28.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Bold); + this.button28.Image = ((System.Drawing.Image)(resources.GetObject("button28.Image"))); + this.button28.ImageAlign = System.Drawing.ContentAlignment.TopCenter; + this.button28.Location = new System.Drawing.Point(4, 266); + this.button28.Name = "button28"; + this.button28.Padding = new System.Windows.Forms.Padding(0, 20, 0, 15); + this.button28.Size = new System.Drawing.Size(123, 126); + this.button28.TabIndex = 5; + this.button28.Text = "PRINT"; + this.button28.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + this.button28.UseVisualStyleBackColor = true; + this.button28.Click += new System.EventHandler(this.button28_Click); + // + // button29 + // + this.button29.Dock = System.Windows.Forms.DockStyle.Fill; + this.button29.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Bold); + this.button29.Image = ((System.Drawing.Image)(resources.GetObject("button29.Image"))); + this.button29.ImageAlign = System.Drawing.ContentAlignment.TopCenter; + this.button29.Location = new System.Drawing.Point(264, 266); + this.button29.Name = "button29"; + this.button29.Padding = new System.Windows.Forms.Padding(0, 20, 0, 15); + this.button29.Size = new System.Drawing.Size(123, 126); + this.button29.TabIndex = 5; + this.button29.Text = "PRINT"; + this.button29.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + this.button29.UseVisualStyleBackColor = true; + this.button29.Click += new System.EventHandler(this.button29_Click); + // + // panel3 + // + this.panel3.Controls.Add(this.button31); + this.panel3.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel3.Location = new System.Drawing.Point(4, 4); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(123, 124); + this.panel3.TabIndex = 6; + // + // button31 + // + this.button31.Dock = System.Windows.Forms.DockStyle.Fill; + this.button31.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Bold); + this.button31.Image = ((System.Drawing.Image)(resources.GetObject("button31.Image"))); + this.button31.ImageAlign = System.Drawing.ContentAlignment.TopCenter; + this.button31.Location = new System.Drawing.Point(0, 0); + this.button31.Name = "button31"; + this.button31.Padding = new System.Windows.Forms.Padding(0, 20, 0, 15); + this.button31.Size = new System.Drawing.Size(123, 124); + this.button31.TabIndex = 6; + this.button31.Text = "AIR"; + this.button31.TextAlign = System.Drawing.ContentAlignment.BottomCenter; + this.button31.UseVisualStyleBackColor = true; + this.button31.Click += new System.EventHandler(this.button31_Click); + // + // tvFront + // + this.tvFront.Dock = System.Windows.Forms.DockStyle.Fill; + this.tvFront.FullRowSelect = true; + this.tvFront.HideSelection = false; + this.tvFront.Location = new System.Drawing.Point(3, 28); + this.tvFront.Name = "tvFront"; + this.tvFront.Size = new System.Drawing.Size(365, 621); + this.tvFront.TabIndex = 1; + this.tvFront.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect); + // + // tmDisplay + // + this.tmDisplay.Interval = 500; + this.tmDisplay.Tick += new System.EventHandler(this.tmDisplay_Tick); + // + // tableLayoutPanel4 + // + this.tableLayoutPanel4.ColumnCount = 2; + this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel4.Controls.Add(this.tvOther2, 1, 2); + this.tableLayoutPanel4.Controls.Add(this.tvOther, 0, 2); + this.tableLayoutPanel4.Controls.Add(this.tvRear, 1, 1); + this.tableLayoutPanel4.Controls.Add(this.tvFront, 0, 1); + this.tableLayoutPanel4.Controls.Add(this.label1, 0, 0); + this.tableLayoutPanel4.Controls.Add(this.label2, 1, 0); + this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel4.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel4.Name = "tableLayoutPanel4"; + this.tableLayoutPanel4.RowCount = 3; + this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F)); + this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 70F)); + this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 30F)); + this.tableLayoutPanel4.Size = new System.Drawing.Size(743, 922); + this.tableLayoutPanel4.TabIndex = 2; + // + // tvOther2 + // + this.tvOther2.Dock = System.Windows.Forms.DockStyle.Fill; + this.tvOther2.FullRowSelect = true; + this.tvOther2.HideSelection = false; + this.tvOther2.Location = new System.Drawing.Point(374, 655); + this.tvOther2.Name = "tvOther2"; + this.tvOther2.Size = new System.Drawing.Size(366, 264); + this.tvOther2.TabIndex = 5; + this.tvOther2.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect); + // + // tvOther + // + this.tvOther.Dock = System.Windows.Forms.DockStyle.Fill; + this.tvOther.FullRowSelect = true; + this.tvOther.HideSelection = false; + this.tvOther.Location = new System.Drawing.Point(3, 655); + this.tvOther.Name = "tvOther"; + this.tvOther.Size = new System.Drawing.Size(365, 264); + this.tvOther.TabIndex = 4; + this.tvOther.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect); + // + // tvRear + // + this.tvRear.Dock = System.Windows.Forms.DockStyle.Fill; + this.tvRear.FullRowSelect = true; + this.tvRear.HideSelection = false; + this.tvRear.Location = new System.Drawing.Point(374, 28); + this.tvRear.Name = "tvRear"; + this.tvRear.Size = new System.Drawing.Size(366, 621); + this.tvRear.TabIndex = 3; + this.tvRear.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect); + // + // label1 + // + this.label1.Dock = System.Windows.Forms.DockStyle.Fill; + this.label1.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label1.Location = new System.Drawing.Point(3, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(365, 25); + this.label1.TabIndex = 6; + this.label1.Text = "FRONT"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label2 + // + this.label2.Dock = System.Windows.Forms.DockStyle.Fill; + this.label2.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label2.Location = new System.Drawing.Point(374, 0); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(366, 25); + this.label2.TabIndex = 6; + this.label2.Text = "REAR"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // Motion_MoveToGroup + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1264, 961); + this.Controls.Add(this.tableLayoutPanel4); + this.Controls.Add(this.panel1); + this.Controls.Add(this.toolStrip1); + this.Name = "Motion_MoveToGroup"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Motion_MoveToGroup"; + this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Motion_MoveToGroup_FormClosed); + this.Load += new System.EventHandler(this.Motion_MoveToGroup_Load); + this.toolStrip1.ResumeLayout(false); + this.toolStrip1.PerformLayout(); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + this.tableLayoutPanel3.ResumeLayout(false); + this.panel11.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.nudJogVel)).EndInit(); + this.statusStrip1.ResumeLayout(false); + this.statusStrip1.PerformLayout(); + this.tableLayoutPanel2.ResumeLayout(false); + this.panel2.ResumeLayout(false); + this.panel3.ResumeLayout(false); + this.tableLayoutPanel4.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private System.Windows.Forms.ToolStrip toolStrip1; + private System.Windows.Forms.ToolStripButton toolStripButton1; + private System.Windows.Forms.ToolStripButton btMove; + private System.Windows.Forms.ToolStripButton btSet; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; + private arFrame.Control.MotCommandButton btXNeg; + private arFrame.Control.MotCommandButton btJogStop; + private arFrame.Control.MotCommandButton btYPos; + private arFrame.Control.MotCommandButton btYNeg; + private arFrame.Control.MotCommandButton btXPos; + private arFrame.Control.MotCommandButton btZNeg; + private arFrame.Control.MotCommandButton motCommandButton1; + private arFrame.Control.MotCommandButton btZPos; + private System.Windows.Forms.StatusStrip statusStrip1; + private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel1; + private System.Windows.Forms.ToolStripStatusLabel lbX; + private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel5; + private System.Windows.Forms.ToolStripStatusLabel lbY; + private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel3; + private System.Windows.Forms.ToolStripStatusLabel lbZ; + private System.Windows.Forms.Panel panel11; + private arFrame.Control.MotValueNumericUpDown nudJogVel; + private arFrame.Control.MotLinkLabel linkLabel8; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; + private System.Windows.Forms.ToolStripLabel lbMotPos; + private System.Windows.Forms.Timer tmDisplay; + private System.Windows.Forms.TreeView tvFront; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.Button button5; + private System.Windows.Forms.Button button6; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button button10; + private System.Windows.Forms.Button button11; + private System.Windows.Forms.Button button12; + private System.Windows.Forms.Button button7; + private System.Windows.Forms.Button button8; + private System.Windows.Forms.Button button9; + private System.Windows.Forms.Button button13; + private System.Windows.Forms.Button button14; + private System.Windows.Forms.Button button15; + private System.Windows.Forms.Button button16; + private System.Windows.Forms.Button button17; + private System.Windows.Forms.Button button18; + private System.Windows.Forms.Button button25; + private System.Windows.Forms.Button button24; + private System.Windows.Forms.Button button23; + private System.Windows.Forms.Button button22; + private System.Windows.Forms.Button button21; + private System.Windows.Forms.Button button20; + private System.Windows.Forms.Button button19; + private System.Windows.Forms.ToolStripButton toolStripButton2; + private System.Windows.Forms.ToolStripButton toolStripButton3; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator2; + private System.Windows.Forms.Button button28; + private System.Windows.Forms.Button button29; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator3; + private System.Windows.Forms.ToolStripButton toolStripButton4; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; + private System.Windows.Forms.TreeView tvRear; + private System.Windows.Forms.TreeView tvOther; + private System.Windows.Forms.TreeView tvOther2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.Button button30; + private System.Windows.Forms.Button btAllZSafe; + private System.Windows.Forms.Panel panel3; + private System.Windows.Forms.Button button31; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/Motion_MoveToGroup.cs b/Handler/Project/Dialog/Motion_MoveToGroup.cs new file mode 100644 index 0000000..c3f5319 --- /dev/null +++ b/Handler/Project/Dialog/Motion_MoveToGroup.cs @@ -0,0 +1,919 @@ +using AR; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class Motion_MoveToGroup : Form + { + int axisX, axisY, axisZ; + + DataSet1 ds; + int pidx = -1;/// = string.Empty; + public Motion_MoveToGroup(DataSet1 dt_, int targetidx) + { + InitializeComponent(); + // this.Size = new Size(800, 500); + this.WindowState = FormWindowState.Maximized; + btXNeg.Tag = "X-"; + btXPos.Tag = "X+"; + btYNeg.Tag = "Y-"; + btYPos.Tag = "Y+"; + this.ds = dt_; + pidx = targetidx; + //this.lvF.FullRowSelect = true; + //this.lvF.GridLines = true; + //arDatagridView1.DataSource = dt_.MCModel; + + var dr = dt_.MCModel.Where(t => t.idx == targetidx).FirstOrDefault(); + if (dr == null) this.Text = "위치 기준 이동"; + else this.Text = $"위치 기준 이동(모델명:{dr.Title})"; + + } + + private void Motion_MoveToGroup_Load(object sender, EventArgs e) + { + refreshData(); + tmDisplay.Start(); + } + void refreshData() + { + //목록을 추출한다 + //this.lvF.Items.Clear(); + //this.listView1.Columns[0].Width = 120; + //this.listView1.Columns[1].Width = 300; + //this.lvF.Font = new Font("맑은 고딕", 15); + + var ctgrp = this.ds.MCModel.Where(t => t.pidx == this.pidx && string.IsNullOrEmpty(t.Category) == false).GroupBy(t => t.Category); + var rawGrplist = ctgrp.Select(t => t.Key).ToList(); + Dictionary> grpList = new Dictionary>(); + + + foreach (var dr in ctgrp.OrderBy(t => t.Key)) + { + var rawgrplist = dr.Key.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + foreach (var grpname in rawgrplist) + { + var keybuf = grpname.Split('|'); //그룹과 위치명은 | 로구분되어있다 + if (keybuf.Length == 1) + { + Array.Resize(ref keybuf, 2); + keybuf[1] = keybuf[0]; + keybuf[0] = "Normal"; + } + + var newgrpname = string.Join("|", keybuf); + var motlist = dr.GroupBy(t => t.idx).Select(t => t.Key).ToList(); + + if (grpList.ContainsKey(newgrpname) == false) + { + grpList.Add(newgrpname, motlist); + } + else + { + //동일그룹이 등록되어있다 + var oldlist = grpList[newgrpname]; + foreach (var drindex in motlist) + if (oldlist.Contains(drindex) == false) oldlist.Add(drindex); + grpList[newgrpname] = oldlist; + } + } + } + + tvFront.Nodes.Clear(); + tvFront.Font = new Font("맑은 고딕", 10, FontStyle.Bold); + + tvRear.Nodes.Clear(); + tvRear.Font = new Font("맑은 고딕", 10, FontStyle.Bold); + + tvOther.Nodes.Clear(); + tvOther.Font = new Font("맑은 고딕", 10, FontStyle.Bold); + + tvOther2.Nodes.Clear(); + tvOther2.Font = new Font("맑은 고딕", 10, FontStyle.Bold); + + //목록을 취합햇으니 표시한다 + foreach (var item in grpList) + { + var motlist = new List(); + foreach (var drindex in item.Value) + { + var dr = this.ds.MCModel.Where(t => t.idx == drindex).First(); + motlist.Add(dr.MotIndex); + } + + if (motlist.Count < 1) continue; + + var buf = item.Key.Split('|'); + + var cate = buf[0]; + var itemname = buf[1]; + + if (cate.Contains("_MANAGE")) + { + if (tvOther2.Nodes.ContainsKey(cate) == false) + { + var nd = tvOther2.Nodes.Add(cate, cate); + var snd = nd.Nodes.Add(itemname, itemname + " ▶ (" + string.Join(",", motlist.OrderBy(t => t).Select(t => (eAxis)t)) + ")"); + snd.Tag = item.Value; + + if (itemname.Contains("PICKOFF")) snd.ForeColor = Color.Blue; + else if (itemname.Contains("PICKON")) snd.ForeColor = Color.DarkGreen; + else if (itemname.StartsWith("T")) snd.ForeColor = Color.Magenta; + else snd.ForeColor = Color.Black; + } + else + { + var nd = tvOther2.Nodes[cate]; + var snd = nd.Nodes.Add(itemname, itemname + " ▶ (" + string.Join(",", motlist.OrderBy(t => t).Select(t => (eAxis)t)) + ")"); + snd.Tag = item.Value; + + if (itemname.Contains("PICKOFF")) snd.ForeColor = Color.Blue; + else if (itemname.Contains("PICKON")) snd.ForeColor = Color.DarkGreen; + else if (itemname.StartsWith("T")) snd.ForeColor = Color.Magenta; + else snd.ForeColor = Color.Black; + } + } + + else if (itemname.StartsWith("R") || (itemname.StartsWith("F") == false && itemname.ToUpper().Contains("REAR"))) + { + itemname = itemname.Replace("RSHUTTLE", "R"); + if (tvRear.Nodes.ContainsKey(cate) == false) + { + var nd = tvRear.Nodes.Add(cate, cate); + var snd = nd.Nodes.Add(itemname, itemname + " ▶ (" + string.Join(",", motlist.OrderBy(t => t).Select(t => (eAxis)t)) + ")"); + snd.Tag = item.Value; + + if (itemname.Contains("PICKOFF")) snd.ForeColor = Color.Blue; + else if (itemname.Contains("PICKON")) snd.ForeColor = Color.DarkGreen; + else if (itemname.StartsWith("T")) snd.ForeColor = Color.Magenta; + else snd.ForeColor = Color.Black; + } + else + { + var nd = tvRear.Nodes[cate]; + var snd = nd.Nodes.Add(itemname, itemname + " ▶ (" + string.Join(",", motlist.OrderBy(t => t).Select(t => (eAxis)t)) + ")"); + snd.Tag = item.Value; + + if (itemname.Contains("PICKOFF")) snd.ForeColor = Color.Blue; + else if (itemname.Contains("PICKON")) snd.ForeColor = Color.DarkGreen; + else if (itemname.StartsWith("T")) snd.ForeColor = Color.Magenta; + else snd.ForeColor = Color.Black; + + } + } + else if (itemname.StartsWith("F") || (itemname.StartsWith("R") == false && itemname.ToUpper().Contains("FRONT"))) + + { + itemname = itemname.Replace("FSHUTTLE", "F"); + if (tvFront.Nodes.ContainsKey(cate) == false) + { + var nd = tvFront.Nodes.Add(cate, cate); + var snd = nd.Nodes.Add(itemname, itemname + " ▶ (" + string.Join(",", motlist.OrderBy(t => t).Select(t => (eAxis)t)) + ")"); + snd.Tag = item.Value; + + if (itemname.Contains("PICKOFF")) snd.ForeColor = Color.Blue; + else if (itemname.Contains("PICKON")) snd.ForeColor = Color.DarkGreen; + else if (itemname.StartsWith("T")) snd.ForeColor = Color.Magenta; + else snd.ForeColor = Color.Black; + } + else + { + var nd = tvFront.Nodes[cate]; + var snd = nd.Nodes.Add(itemname, itemname + " ▶ (" + string.Join(",", motlist.OrderBy(t => t).Select(t => (eAxis)t)) + ")"); + snd.Tag = item.Value; + + if (itemname.Contains("PICKOFF")) snd.ForeColor = Color.Blue; + else if (itemname.Contains("PICKON")) snd.ForeColor = Color.DarkGreen; + else if (itemname.StartsWith("T")) snd.ForeColor = Color.Magenta; + else snd.ForeColor = Color.Black; + } + } + + else + { + if (tvOther.Nodes.ContainsKey(cate) == false) + { + var nd = tvOther.Nodes.Add(cate, cate); + var snd = nd.Nodes.Add(itemname, itemname + " ▶ (" + string.Join(",", motlist.OrderBy(t => t).Select(t => (eAxis)t)) + ")"); + snd.Tag = item.Value; + + if (itemname.Contains("PICKOFF")) snd.ForeColor = Color.Blue; + else if (itemname.Contains("PICKON")) snd.ForeColor = Color.DarkGreen; + else if (itemname.StartsWith("T")) snd.ForeColor = Color.Magenta; + else snd.ForeColor = Color.Black; + } + else + { + var nd = tvOther.Nodes[cate]; + var snd = nd.Nodes.Add(itemname, itemname + " ▶ (" + string.Join(",", motlist.OrderBy(t => t).Select(t => (eAxis)t)) + ")"); + snd.Tag = item.Value; + + if (itemname.Contains("PICKOFF")) snd.ForeColor = Color.Blue; + else if (itemname.Contains("PICKON")) snd.ForeColor = Color.DarkGreen; + else if (itemname.StartsWith("T")) snd.ForeColor = Color.Magenta; + else snd.ForeColor = Color.Black; + } + } + + + + //var lv = this.lvF.Items.Add(buf[0]); + //lv.SubItems.Add(buf[1]); + //lv.SubItems.Add(string.Join(",", motlist.OrderBy(t => t))); + + //if (buf[1].StartsWith("R")) + // lv.ForeColor = Color.Blue; + //else if (buf[1].StartsWith("T")) + // lv.ForeColor = Color.Magenta; + + //lv.Tag = item.Value; //datarowindex 를 가진다 + + } + + tvFront.ExpandAll(); + tvRear.ExpandAll(); + tvOther.ExpandAll(); + tvOther2.ExpandAll(); + } + + private void toolStripButton1_Click(object sender, EventArgs e) + { + refreshData(); + } + + Task MoveMotion = null; + + + List GetCurrentList() + { + if (seltv == null) + { + UTIL.MsgE("먼저 이동할 위치를 선택하세요"); + return null; + } + var tn = seltv.SelectedNode; + if (tn == null) return null; + if (tn.Level < 1) return null; + return (List)tn.Tag; + } + + private void toolStripButton2_Click(object sender, EventArgs e) + { + //지정된 축중에 Z축을 가진 대상이 있다면 그것을 우선 0으로 이동시킨다. + List idxlist = GetCurrentList(); + if (idxlist == null) return; + + List zlist = new List(); + List nlist = new List(); + + List zplist = new List(); + List nplist = new List(); + + System.Text.StringBuilder sb = new StringBuilder(); + foreach (var dridx in idxlist) + { + var dr = this.ds.MCModel.Where(t => t.idx == dridx).First(); + var ax = (eAxis)dr.MotIndex; + var cate = ax.CategoryAttr(); + if (cate.StartsWith("Z")) + { + zlist.Add(ax); + zplist.Add(dr); + } + else + { + //나머지축에 인터락이 있으면 처리하지 않는다. + if (PUB.iLock[dr.MotIndex].IsEmpty() == false) + { + if (sb.Length < 1) sb.AppendLine("모션에 인터락이 설정되어 있습니다\n"); + var locklist = MOT.GetActiveLockList(ax, PUB.iLock[dr.MotIndex]); + sb.AppendLine($"축 : {ax}({dr.MotIndex}) 대상:{string.Join(",", locklist)}"); + + } + nlist.Add(ax); + nplist.Add(dr); + } + } + + if (sb.Length > 0) + { + UTIL.MsgE(sb.ToString(), true); + return; + } + + Queue> poslist = new Queue>(); + sb.AppendLine("축 이동을 시작할까요?\nZ축은 안전을 위해 0으로 이동 후 이동 됩니다"); + + int idx = 0; + for (int i = 0; i < zlist.Count; i++) + { + var ax = zlist[i]; + var dr = zplist[i]; + sb.AppendLine($"[{++idx:000}] 원점(0)으로 이동 : " + ax.ToString()); + var p = new Tuple(ax, new sPositionData + { + Axis = (int)ax, + Position = 0, + Speed = Math.Max(100, dr.Speed), + Acc = dr.SpeedAcc, + Dcc = dr.SpeedDcc, + }, true); + poslist.Enqueue(p); + } + + for (int i = 0; i < nlist.Count; i++) + { + var ax = nlist[i]; + var dr = nplist[i]; + sb.AppendLine($"[{++idx:000}] {ax} 위치 이동 : {dr.Position}mm({dr.Speed}ms)"); + var p = new Tuple(ax, new sPositionData + { + Axis = (int)ax, + Position = dr.Position, + Speed = Math.Max(100, dr.Speed), + Acc = dr.SpeedAcc, + Dcc = dr.SpeedDcc, + }, false); + poslist.Enqueue(p); + } + + //x,y완료될떄까지 기다림 + for (int i = 0; i < nlist.Count; i++) + { + var ax = nlist[i]; + var dr = nplist[i]; + sb.AppendLine($"[{++idx:000}] {ax} 위치 이동 : {dr.Position}mm({dr.Speed}ms)"); + var p = new Tuple(ax, new sPositionData + { + Axis = (int)ax, + Position = dr.Position, + Speed = Math.Max(100, dr.Speed), + Acc = dr.SpeedAcc, + Dcc = dr.SpeedDcc, + }, true); + poslist.Enqueue(p); + } + + + for (int i = 0; i < zlist.Count; i++) + { + var ax = zlist[i]; + var dr = zplist[i]; + sb.AppendLine($"[{++idx:000}] {ax} 위치 이동 : {dr.Position}mm({dr.Speed}ms)"); + var p = new Tuple(ax, new sPositionData + { + Axis = (int)ax, + Position = Math.Max(dr.Position - 50, 0), + Speed = Math.Max(100, dr.Speed), + Acc = dr.SpeedAcc, + Dcc = dr.SpeedDcc, + }, false); + poslist.Enqueue(p); + } + + var dlg = UTIL.MsgQ(sb.ToString()); + if (dlg != DialogResult.Yes) return; + + if (PUB.mot.HasHomeSetOff) + { + UTIL.MsgE("홈이 완료되지 않은 모션이 있습니다"); + return; + } + + + + MoveMotion = new Task(new Action(() => + { + DateTime starttime = DateTime.Now; + Tuple p = null; + while (poslist.Any() || p != null) //자료가있거나 현재 걸려있는게 있는 경우 + { + if (p == null) + { + p = poslist.Dequeue(); + starttime = DateTime.Now; + } + + var seqtime = DateTime.Now - starttime; + if (p.Item3) //대기 + { + + if (MOT.CheckMotionPos(seqtime, p.Item2, "USER", false) == false) + { + var msg = PUB.mot.ErrorMessage; + //{ + //Util.MsgE("모션 이동 실패\n" + Pub.mot.ErrorMessage); + //break; + //} + if (seqtime.TotalSeconds > 60) + { + PUB.log.AddE("위치 이동실패 60초 초과"); + break; + } + System.Threading.Thread.Sleep(100); + continue; + } + } + else MOT.Move(p.Item1, p.Item2.Position, p.Item2.Speed, p.Item2.Acc, false, false, false); //위치이동을한다 + p = null; //다음으로 진행할 수 있게 한다 + } + })); + MoveMotion.RunSynchronously(); + } + + private void btSet_Click(object sender, EventArgs e) + { + //담당 축중에 ready 를 제외한 축을 추출하고 + //해당 축의 해당 위치에 command 좌표를 할당 합니다. + + + if (PUB.mot.HasHomeSetOff) + { + UTIL.MsgE("홈이 완료되지 않은 모션이 있습니다\n저장을 할 수 없습니다"); + return; + } + + //지정된 축중에 Z축을 가진 대상이 있다면 그것을 우선 0으로 이동시킨다. + //지정된 축중에 Z축을 가진 대상이 있다면 그것을 우선 0으로 이동시킨다. + List idxlist = GetCurrentList(); + if (idxlist == null) return; + + + List nlist = new List(); + List nplist = new List(); + + foreach (var dridx in idxlist) + { + var dr = this.ds.MCModel.Where(t => t.idx == dridx).First(); + if (dr.PosTitle.StartsWith("READY")) continue; + + var ax = (eAxis)dr.MotIndex; + var cate = ax.CategoryAttr(); + nlist.Add(ax); + nplist.Add(dr); + } + Queue> poslist = new Queue>(); + var sb = new System.Text.StringBuilder(); + sb.AppendLine("다음좌표의 위치를 저장할까요?"); + sb.AppendLine(); + + for (int i = 0; i < nlist.Count; i++) + { + var ax = nlist[i]; + var dr = nplist[i]; + var curpos = PUB.mot.GetCmdPos((int)ax); + sb.AppendLine($"[{dr.idx}] 축:{ax} - {dr.PosTitle}\n\t변경위치 {dr.Position} -> {curpos}"); + var param = new Tuple(dr, ax, dr.PosTitle, dr.Position, curpos); + poslist.Enqueue(param); + } + + + using (var f = new Dialog.fSavePosition(poslist)) + { + if (f.ShowDialog() != DialogResult.OK) + { + UTIL.MsgE("좌표 저장이 취소 됨"); + } + } + + + + //var dlg = Util.MsgQ(sb.ToString()); + //if (dlg != DialogResult.Yes) return; + + + + //var cnt = 0; + //foreach (var p in poslist) + //{ + // p.Item1.Position = p.Item2; + // p.Item1.EndEdit(); + // cnt += 1; + //} + //Util.MsgI($"{cnt}건의 위치를 변경 했습니다"); + } + + private void btJogUp_MouseDown(object sender, MouseEventArgs e) + { + var but = sender as Button; + var tag = but.Tag.ToString(); + var vel = (float)nudJogVel.Value; + if (tag == "X+") + { + if (axisX >= 0) PUB.mot.JOG(axisX, arDev.MOT.MOTION_DIRECTION.Positive, vel, 500, false, false); + } + else if (tag == "X-") + { + if (axisX >= 0) PUB.mot.JOG(axisX, arDev.MOT.MOTION_DIRECTION.Negative, vel, 500, false, false); + } + else if (tag == "Y+") + { + if (axisY >= 0) PUB.mot.JOG(axisY, arDev.MOT.MOTION_DIRECTION.Positive, vel, 500, false, false); + } + else if (tag == "Y-") + { + if (axisY >= 0) PUB.mot.JOG(axisY, arDev.MOT.MOTION_DIRECTION.Negative, vel, 500, false, false); + } + else if (tag == "Z+") + { + if (axisZ >= 0) PUB.mot.JOG(axisZ, arDev.MOT.MOTION_DIRECTION.Positive, vel, 500, false, false); + } + else if (tag == "Z-") + { + if (axisZ >= 0) PUB.mot.JOG(axisZ, arDev.MOT.MOTION_DIRECTION.Negative, vel, 500, false, false); + } + } + + private void btAClear_MouseUp(object sender, MouseEventArgs e) + { + var but = sender as Button; + var tag = but.Tag.ToString(); + var vel = (float)nudJogVel.Value; + if (tag == "X+") + { + if (axisX >= 0) PUB.mot.MoveStop("MOVETOGRP", axisX, true); + } + else if (tag == "X-") + { + if (axisX >= 0) PUB.mot.MoveStop("MOVETOGRP", axisX, true); + } + else if (tag == "Y+") + { + if (axisY >= 0) PUB.mot.MoveStop("MOVETOGRP", axisY, true); + } + else if (tag == "Y-") + { + if (axisY >= 0) PUB.mot.MoveStop("MOVETOGRP", axisY, true); + } + else if (tag == "Z+") + { + if (axisZ >= 0) PUB.mot.MoveStop("MOVETOGRP", axisZ, true); + } + else if (tag == "Z-") + { + if (axisZ >= 0) PUB.mot.MoveStop("MOVETOGRP", axisZ, true); + } + } + + + private void tmDisplay_Tick(object sender, EventArgs e) + { + var motpos = string.Empty; + if (axisX >= 0) + { + motpos += $"X:{PUB.mot.GetActPos(axisX):N3}/{PUB.mot.GetCmdPos(axisX):N3}"; + button6.BackColor = PUB.iLock[axisX].IsEmpty() ? Color.FromArgb(224, 224, 224) : Color.Orange; + } + else + { + motpos += "X:(none)"; + button6.BackColor = Color.FromArgb(224, 224, 224); + } + if (axisY >= 0) + { + motpos += $" / Y:{PUB.mot.GetActPos(axisY):N3}/{PUB.mot.GetCmdPos(axisY):N3}"; + button5.BackColor = PUB.iLock[axisY].IsEmpty() ? Color.FromArgb(224, 224, 224) : Color.Orange; + } + else + { + motpos += " Y:(none)"; + button5.BackColor = Color.FromArgb(224, 224, 224); + } + if (axisZ >= 0) + { + motpos += $" / Z:{PUB.mot.GetActPos(axisZ):N3},{PUB.mot.GetCmdPos(axisZ):N3}"; + button4.BackColor = PUB.iLock[axisZ].IsEmpty() ? Color.FromArgb(224, 224, 224) : Color.Orange; + } + else + { + motpos += " Z:(none)"; + button4.BackColor = Color.FromArgb(224, 224, 224); + } + + this.lbMotPos.Text = motpos; + + } + + private void Motion_MoveToGroup_FormClosed(object sender, FormClosedEventArgs e) + { + tmDisplay.Stop(); + } + + private void button1_Click(object sender, EventArgs e) + { + var but = sender as Button; + if (but.Text.EndsWith("-ZERO")) + { + + if (but.Text.StartsWith("X") && axisX >= 0) + { + if (UTIL.MsgQ("x위치를 0으로 이동할가요?") != DialogResult.Yes) return; + MOT.Move((eAxis)axisX, 0, 100, 1000, false, false, false); + } + else if (but.Text.StartsWith("Y") && axisY >= 0) + { + if (UTIL.MsgQ("y위치를 0으로 이동할가요?") != DialogResult.Yes) return; + MOT.Move((eAxis)axisY, 0, 100, 1000, false, false, false); + } + else if (but.Text.StartsWith("Z") && axisZ >= 0) + { + if (UTIL.MsgQ("Z위치를 0으로 이동할가요?") != DialogResult.Yes) return; + MOT.Move((eAxis)axisZ, 0, 100, 1000, false, false, false); + } + } + else if (but.Text.EndsWith("-MOVE")) + { + + //지정된 축중에 Z축을 가진 대상이 있다면 그것을 우선 0으로 이동시킨다. + List idxlist = GetCurrentList(); + if (idxlist == null) return; + + foreach (var dridx in idxlist) + { + var dr = this.ds.MCModel.Where(t => t.idx == dridx).First(); + var ax = (eAxis)dr.MotIndex; + var cate = ax.CategoryAttr(); + + + //나머지축에 인터락이 있으면 처리하지 않는다. + var sb = new System.Text.StringBuilder(); + if (PUB.iLock[dr.MotIndex].IsEmpty() == false) + { + if (sb.Length < 1) sb.AppendLine("모션에 인터락이 설정되어 있습니다\n"); + var locklist = MOT.GetActiveLockList(ax, PUB.iLock[dr.MotIndex]); + sb.AppendLine($"축 : {ax}({dr.MotIndex}) 대상:{string.Join(",", locklist)}"); + sb.AppendLine(); + sb.AppendLine("진행하시겠습니까?"); + if (UTIL.MsgQ(sb.ToString()) != DialogResult.Yes) return; + } + + + + + + if (but.Text.StartsWith("X") && cate.StartsWith("X") && axisX >= 0) + { + if (UTIL.MsgQ($"X위치를 ({dr.Position})으로 이동할가요?") != DialogResult.Yes) return; + MOT.Move(ax, dr.Position, dr.Speed, 1000, false, false, false); + } + else if (but.Text.StartsWith("Y") && cate.StartsWith("Y") && axisY >= 0) + { + if (UTIL.MsgQ($"Y위치를 ({dr.Position})으로 이동할가요?") != DialogResult.Yes) return; + MOT.Move(ax, dr.Position, dr.Speed, 1000, false, false, false); + } + else if (but.Text.StartsWith("Z") && cate.StartsWith("Z") && axisZ >= 0) + { + if (UTIL.MsgQ($"z위치를 ({dr.Position})으로 이동할가요?") != DialogResult.Yes) return; + MOT.Move(ax, dr.Position, Math.Min(50, dr.Speed), 1000, false, false, false); + } + } + } + } + + private void button13_Click(object sender, EventArgs e) + { + var but = sender as Button; + var txt = but.Text.Trim(); + var aname = txt.Substring(0, 1); + var value = txt.Split(':')[1].Replace("mm", "").Replace("+", "").Trim(); + var v = float.Parse(value); + if (aname == "X" && axisX >= 0) + { + //이동을 해준다 + MOT.Move((eAxis)axisX, v, 100, 1000, true, false, false); + } + else if (aname == "Y" && axisY >= 0) + { + //이동을 해준다 + MOT.Move((eAxis)axisY, v, 100, 1000, true, false, false); + } + else if (aname == "Z" && axisZ >= 0) + { + //이동을 해준다 + MOT.Move((eAxis)axisZ, v, 100, 1000, true, false, false); + } + } + + TreeNode prevnode = null; + TreeView seltv = null; + private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) + { + //선택되면 대상축에서 x,y,z를 찾아서 설정하고 enable 을 설정한다. + if (seltv != null) + { + seltv.BackColor = Color.White; + } + seltv = sender as TreeView; + seltv.BackColor = Color.LightGoldenrodYellow; + + if (prevnode != null) + { + prevnode.BackColor = Color.White; + } + + + + //지정된 축중에 Z축을 가진 대상이 있다면 그것을 우선 0으로 이동시킨다. + List idxlist = GetCurrentList(); + if (idxlist == null) return; + var tn = this.seltv.SelectedNode; + this.Text = $"{tn.Parent.Text} - {tn.Text}"; + + this.prevnode = tn; + this.prevnode.BackColor = Color.Lime; + + List xlist = new List(); + List ylist = new List(); + List zlist = new List(); + + List xplist = new List(); + List yplist = new List(); + List zplist = new List(); + + foreach (var dridx in idxlist) + { + var dr = this.ds.MCModel.Where(t => t.idx == dridx).First(); + var ax = (eAxis)dr.MotIndex; + var cate = ax.CategoryAttr(); + if (cate.StartsWith("Z")) + { + zlist.Add(ax); + zplist.Add(dr); + } + else if (cate.StartsWith("X")) + { + xlist.Add(ax); + xplist.Add(dr); + } + else if (cate.StartsWith("Y")) + { + ylist.Add(ax); + yplist.Add(dr); + } + } + + if (xlist.Count == 1) + { + axisX = (int)xlist.First(); + btXNeg.Enabled = true; + btXPos.Enabled = true; + btXNeg.BackColor = Color.LightSkyBlue; + btXPos.BackColor = Color.LightSkyBlue; + } + else + { + axisX = -1; + btXNeg.Enabled = false; + btXPos.Enabled = false; + btXNeg.BackColor = Color.LightGray; + btXPos.BackColor = Color.LightGray; + } + + if (ylist.Count == 1) + { + axisY = (int)ylist.First(); + btYNeg.Enabled = true; + btYPos.Enabled = true; + btYNeg.BackColor = Color.LightSkyBlue; + btYPos.BackColor = Color.LightSkyBlue; + } + else + { + axisY = -1; + btYNeg.Enabled = false; + btYPos.Enabled = false; + btYNeg.BackColor = Color.LightGray; + btYPos.BackColor = Color.LightGray; + } + + if (zlist.Count == 1) + { + axisZ = (int)zlist.First(); + btZNeg.Enabled = true; + btZPos.Enabled = true; + btZNeg.BackColor = Color.LightSkyBlue; + btZPos.BackColor = Color.LightSkyBlue; + } + else + { + axisZ = -1; + btZNeg.Enabled = false; + btZPos.Enabled = false; + btZNeg.BackColor = Color.LightGray; + btZPos.BackColor = Color.LightGray; + } + + eAxis axx = (eAxis)axisX; + eAxis axy = (eAxis)axisY; + eAxis axz = (eAxis)axisZ; + + lbX.Text = $"({axisX}){axx}"; + if (axisX >= 0) lbX.Text += $"({xplist.First().PosIndex}mm)"; + lbY.Text = $"({axisY}){axy}"; + if (axisY >= 0) lbY.Text += $"({yplist.First().PosIndex}mm)"; + lbZ.Text = $"({axisZ}){axz}"; + if (axisZ >= 0) lbZ.Text += $"({zplist.First().PosIndex}mm)"; + } + + private void button25_Click(object sender, EventArgs e) + { + var but = sender as Button; + var val = int.Parse(but.Text); + nudJogVel.Value = (decimal)val; + } + + private void toolStripButton2_Click_1(object sender, EventArgs e) + { + using (var f = new Model_Motion()) + f.ShowDialog(); + } + + private void toolStripButton3_Click(object sender, EventArgs e) + { + using (var f = new Dialog.fIOMonitor()) + f.ShowDialog(); + } + + + private void button28_Click(object sender, EventArgs e) + { + //var cur = DIO.GetIOOutput(eDOName.F셔틀_회전180); + //string msg; + //if (cur) msg = "셔틀(F)이 현재 뒤집혀 있습니다.\n원위치로 복귀 할까요?"; + //else msg = "셔틀(F) 을 뒤집을까요?"; + + //var dlg = Util.MsgQ(msg); + //if (dlg != DialogResult.Yes) return; + } + + private void button29_Click(object sender, EventArgs e) + { + + } + + private void toolStripButton4_Click(object sender, EventArgs e) + { + using (var f = new Dialog.Quick_Control()) + f.ShowDialog(); + } + + private void button30_Click(object sender, EventArgs e) + { + + } + + private void btAllZSafe_Click(object sender, EventArgs e) + { + //Z1,2,3 안전위치로 이동한다 220421 + var dlg = UTIL.MsgQ("모든 Z축을 안전위치로 이동할까요?\n" + + "Z1,Z4의 경우 소켓을 잡고 있다면 안전위치 이동시 파손될 수 있습니다.\n" + + "각 그리퍼의 소켓 상황을 확인하고 진행 하세요\n" + + "Z축을 임의 이동할 경우 작업이 이어서 진행되지 않을 수 있습니다\n " + + "작업 취소 하고 다시 시작하기를 권장 합니다"); + + if (dlg != DialogResult.Yes) return; + + var PosZ1 = MOT.GetPZPos(ePZLoc.READY); + var PosZ2 = MOT.GetLZPos(eLZLoc.READY); + var PosZ3 = MOT.GetRZPos(eRZLoc.READY); + + PosZ1.Position = 0; + PosZ2.Position = 0; + PosZ3.Position = 0; + + MOT.Move(PosZ1); + MOT.Move(PosZ2); + MOT.Move(PosZ3); + } + + + + private void button31_Click(object sender, EventArgs e) + { + + } + + private void btJogStop_Click(object sender, EventArgs e) + { + if (axisX >= 0) MOT.Stop((eAxis)axisX, "MOVETOGRP", true); + if (axisY >= 0) MOT.Stop((eAxis)axisY, "MOVETOGRP", true); + if (axisZ >= 0) MOT.Stop((eAxis)axisZ, "MOVETOGRP", true); + } + + + private void motCommandButton1_Click(object sender, EventArgs e) + { + if (axisX >= 0) MOT.Stop((eAxis)axisX, "MOVETOGRP", true); + if (axisY >= 0) MOT.Stop((eAxis)axisY, "MOVETOGRP", true); + if (axisZ >= 0) MOT.Stop((eAxis)axisZ, "MOVETOGRP", true); + } + } +} diff --git a/Handler/Project/Dialog/Motion_MoveToGroup.resx b/Handler/Project/Dialog/Motion_MoveToGroup.resx new file mode 100644 index 0000000..a4ea863 --- /dev/null +++ b/Handler/Project/Dialog/Motion_MoveToGroup.resx @@ -0,0 +1,222 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 123, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABGdBTUEAALGPC/xhBQAABE9JREFUWEft + WF9MWlccNk2Xvm5vfdnjluyxS/awDC1JWxXBtljgIqDO6qSi/JHVdlu3DNc2Grsu2ZY53cNc06HGNK5J + o+nWtBYQmRiVivyZgFKZKFDE/enqUvW3ey7n3tqC+JfELHzJl5twv/N937333HtOyMogg70KgyuUO+SN + OGwPo/+O+qPLepN3QW/yRPUDPimWbBkD7lCLPRBbsXojT3+2BR6TXi690fut3uB7DUs2B5M71OqcjYEr + uMiQLIjp0WHZljE4OX9/refw1CPoMvuQ79KmL9zknlc5Z5+Z0ExHQcQhb5j2ftox4GNh6foY9T/6+0UT + xHQVRLw1MhP3NnoHsTQ5DI7ZQ8kMENNZ0Oiep/1Xu/unD2J5IgyOkDyZAWI6Cw75mMcMHWbP21ieCKM7 + qElmgJjOglZfhPG/bvKwsTwRmYKZgpmC/6eCVncAbNNhxmS3C5rt0+AIRLdX8N6wC4iSOqis/hjsM5Hn + Cn7e3vsTlm8Zd0a8DuTV3n0bhBIV6JratlbQ7JzjogG3zQ8og5KKczDuj4A9sMAYKM82ruSxeKV4yKYh + lKqJ9p7+VeTfeu0m5X/+0y+pgoOeEOPfZZh8Aw9JRD/A/gcPo0/QoLtWJ1gcfsrA6JqjBl+754QiXink + ZfOWiwpl8rHp2MupeOnq969yWdxXBIRCThZaVn9wBRy/x0guQJ9xDGxTIcq/bywQLzjgHdcB7MN1kqPf + Ec4fnQovoYH01XWSe7a2W8MgLdPCKUJBXb2gWAUKdQP8YrFTOpojk7Ogqb8EwuJarFNSR5pXv7sB4zPx + uYf2nHcnglS5H+5MTHaZfK/jGhvjs8ZWxely7VIxcQYERRVQJJA/F0STkKmhu9dIBQ65ZkAsTdS8SJFM + A6r6RiiRKUEirn5S8d5HYhy7NeTmFOTksrh/nTj+7jNzbTOIW/uAuNIJQvJFQr9JyDuLpoNccSGljuZJ + fiXkZvOA9H58LJt3BMdtD3lH+PlCSfwxER9+BRLHCkhcQFHc6wJy8lPnvmjpII8b6/inquhy5FzmcnHM + 9kFI1W8hY8TiG6NMKE2h+jJ1rkbTQB030vH5FVQ5xKM5nEM4ZvsgZJo36WBxtzUhWFQTL6bUXmQKptLt + ekEOR3mANP4TmYvqmkAy9g8TKu60MKVa2nuYNzeVrrBARhf8g8PhHMAxO4NIor5IBwjlnwDR9COILnzD + hJZWnocRbxDqzsYf43o6gbgG8g4XUgWPvcNtwPY7R1VV1UtkwE0mfA1lp+upjy76zIz7Q1BW/n6CBlEg + roWCowL67vWw2ez92H53oNPp9omkqjIyzCAu1UbPqBqg+evrYJmIrzY0HeSyeLm5DSQlavIjXbsqEFWv + nDhevpR/+GQ4l1VwHy2Tuixd6tVip3DNxdhrS61Hiydso9fYlJuA3Uam4E6x5wv+FlxgkQUWN+KvntAg + uYVaRNzUH0MZZLDnkJX1H2FAn90x0NzDAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABGdBTUEAALGPC/xhBQAAA8hJREFUWEft + l2tIU2EYx+0eRUREEEH0oS9BEEQEfehDYG1nm3NNkAoSukAGRUUQFRQsiu3sjlbSMMSKLO1imhoWFZXb + zjmblbm0slWWpaal7qrzcnrf9dBw7nZ25uVDP3jgnPM+77MfL2P7n7T/TBUIktoIl6OupwwCtbUaLtOE + pKUKLqcGhJZaIyStI3CLBK2sSGVZC7eTj9zIVGApuA0KZuptFXA7uYg05pVbDYwvXDBDx/jwGjyaPORG + +krx86+BcMFT5a0BqY4phkeTg1jDLJXpaV+vN8CGC95pCrAZWtq3RV23DB5PPDI9lXfh4ad+FhEuWPNx + hD1W5hzI0DN58Hhi2UzaF0p1tKezL+gXUbCssZ+VaGmvRPViESxNHJlaWkFWtniDdohIgrgOlbT4JBrm + DCxNDFKFfV6mnu5r7fKBXnTB66+8+BRdAm3DfFgefyRa6sjpW81ucAsSTRBXbnGzR6yhDsPy+LLOZJ8l + 0zNd79s9oPaXWIJX7G70u0h3ZyvezoaW8YNQWXcdveZwgdc/Ygni2l3Y6CY01l3QMk6w7LQsI9P6urUP + tELEEzRZevG/yzeFgp0ObamHUFuz9l1uGHN6mHiCuHZeeuMiVBY5tKUedHoO84dfoDSaRATPP+tmpQZb + E7SlFqHKujmn4KVnZASMwkhEsBpVdn69m1Bb0qE1dWQZbdSjxp9R9BITxKV73MnKDDYKWlMDoTKvz863 + eQeHovolLHi/ZZiVGe0ekZraAO38kRtttffq24fBJSKJCuJSPmgflupttdDOD4HSskpuYPz+QEw/ToKV + 74ZQ4sYhl1kNW5IHyZWWmNsGwSMqXARxKaraBlGgLYUtySE4xyzHgdTdH9ePs2B582Aw0Ip15hWwjTvo + XcNU+OTLADjEhKsgrpN3P+PXAhNs40a6kl6MIpX3lzsACrFJRvC2YwCfolekfL4EtiaOVE+ThhpnKPDF + IRlBXEdvOv1iHa2GrYmRqa5bgOP8999++Pj4JCt4o8GPA60Hv0LA9vhINdSJs+XvRwe+OCQriOvAtQ9e + kZY+DttjI8qvmYMCac/HDk5+vASv1ntwoO3ZpHg6F0ZER6y27j9e0hQxUsWCjyCuvUUOD0HSuTAiMtll + ZTPQD/MPxzfOfrwFixgXi773HegUZ8KYsaAwueNgcePYuJwAfAVx5ZjeuAQktR3GjAVFqhabswc+khup + ECyo+41OkXHiVwsYFUJI0pI9plfu6IEqNqkQxLXt4msXoaTEMCqESENZ8GA+BaOCgnyKQC4w6j88SUv7 + A1lGiJL4wYWWAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABGdBTUEAALGPC/xhBQAAA8hJREFUWEft + l2tIU2EYx+0eRUREEEH0oS9BEEQEfehDYG1nm3NNkAoSukAGRUUQFRQsiu3sjlbSMMSKLO1imhoWFZXb + zjmblbm0slWWpaal7qrzcnrf9dBw7nZ25uVDP3jgnPM+77MfL2P7n7T/TBUIktoIl6OupwwCtbUaLtOE + pKUKLqcGhJZaIyStI3CLBK2sSGVZC7eTj9zIVGApuA0KZuptFXA7uYg05pVbDYwvXDBDx/jwGjyaPORG + +krx86+BcMFT5a0BqY4phkeTg1jDLJXpaV+vN8CGC95pCrAZWtq3RV23DB5PPDI9lXfh4ad+FhEuWPNx + hD1W5hzI0DN58Hhi2UzaF0p1tKezL+gXUbCssZ+VaGmvRPViESxNHJlaWkFWtniDdohIgrgOlbT4JBrm + DCxNDFKFfV6mnu5r7fKBXnTB66+8+BRdAm3DfFgefyRa6sjpW81ucAsSTRBXbnGzR6yhDsPy+LLOZJ8l + 0zNd79s9oPaXWIJX7G70u0h3ZyvezoaW8YNQWXcdveZwgdc/Ygni2l3Y6CY01l3QMk6w7LQsI9P6urUP + tELEEzRZevG/yzeFgp0ObamHUFuz9l1uGHN6mHiCuHZeeuMiVBY5tKUedHoO84dfoDSaRATPP+tmpQZb + E7SlFqHKujmn4KVnZASMwkhEsBpVdn69m1Bb0qE1dWQZbdSjxp9R9BITxKV73MnKDDYKWlMDoTKvz863 + eQeHovolLHi/ZZiVGe0ekZraAO38kRtttffq24fBJSKJCuJSPmgflupttdDOD4HSskpuYPz+QEw/ToKV + 74ZQ4sYhl1kNW5IHyZWWmNsGwSMqXARxKaraBlGgLYUtySE4xyzHgdTdH9ePs2B582Aw0Ip15hWwjTvo + XcNU+OTLADjEhKsgrpN3P+PXAhNs40a6kl6MIpX3lzsACrFJRvC2YwCfolekfL4EtiaOVE+ThhpnKPDF + IRlBXEdvOv1iHa2GrYmRqa5bgOP8999++Pj4JCt4o8GPA60Hv0LA9vhINdSJs+XvRwe+OCQriOvAtQ9e + kZY+DttjI8qvmYMCac/HDk5+vASv1ntwoO3ZpHg6F0ZER6y27j9e0hQxUsWCjyCuvUUOD0HSuTAiMtll + ZTPQD/MPxzfOfrwFixgXi773HegUZ8KYsaAwueNgcePYuJwAfAVx5ZjeuAQktR3GjAVFqhabswc+khup + ECyo+41OkXHiVwsYFUJI0pI9plfu6IEqNqkQxLXt4msXoaTEMCqESENZ8GA+BaOCgnyKQC4w6j88SUv7 + A1lGiJL4wYWWAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABGdBTUEAALGPC/xhBQAABE9JREFUWEft + WF9MWlccNk2Xvm5vfdnjluyxS/awDC1JWxXBtljgIqDO6qSi/JHVdlu3DNc2Grsu2ZY53cNc06HGNK5J + o+nWtBYQmRiVivyZgFKZKFDE/enqUvW3ey7n3tqC+JfELHzJl5twv/N937333HtOyMogg70KgyuUO+SN + OGwPo/+O+qPLepN3QW/yRPUDPimWbBkD7lCLPRBbsXojT3+2BR6TXi690fut3uB7DUs2B5M71OqcjYEr + uMiQLIjp0WHZljE4OX9/refw1CPoMvuQ79KmL9zknlc5Z5+Z0ExHQcQhb5j2ftox4GNh6foY9T/6+0UT + xHQVRLw1MhP3NnoHsTQ5DI7ZQ8kMENNZ0Oiep/1Xu/unD2J5IgyOkDyZAWI6Cw75mMcMHWbP21ieCKM7 + qElmgJjOglZfhPG/bvKwsTwRmYKZgpmC/6eCVncAbNNhxmS3C5rt0+AIRLdX8N6wC4iSOqis/hjsM5Hn + Cn7e3vsTlm8Zd0a8DuTV3n0bhBIV6JratlbQ7JzjogG3zQ8og5KKczDuj4A9sMAYKM82ruSxeKV4yKYh + lKqJ9p7+VeTfeu0m5X/+0y+pgoOeEOPfZZh8Aw9JRD/A/gcPo0/QoLtWJ1gcfsrA6JqjBl+754QiXink + ZfOWiwpl8rHp2MupeOnq969yWdxXBIRCThZaVn9wBRy/x0guQJ9xDGxTIcq/bywQLzjgHdcB7MN1kqPf + Ec4fnQovoYH01XWSe7a2W8MgLdPCKUJBXb2gWAUKdQP8YrFTOpojk7Ogqb8EwuJarFNSR5pXv7sB4zPx + uYf2nHcnglS5H+5MTHaZfK/jGhvjs8ZWxely7VIxcQYERRVQJJA/F0STkKmhu9dIBQ65ZkAsTdS8SJFM + A6r6RiiRKUEirn5S8d5HYhy7NeTmFOTksrh/nTj+7jNzbTOIW/uAuNIJQvJFQr9JyDuLpoNccSGljuZJ + fiXkZvOA9H58LJt3BMdtD3lH+PlCSfwxER9+BRLHCkhcQFHc6wJy8lPnvmjpII8b6/inquhy5FzmcnHM + 9kFI1W8hY8TiG6NMKE2h+jJ1rkbTQB030vH5FVQ5xKM5nEM4ZvsgZJo36WBxtzUhWFQTL6bUXmQKptLt + ekEOR3mANP4TmYvqmkAy9g8TKu60MKVa2nuYNzeVrrBARhf8g8PhHMAxO4NIor5IBwjlnwDR9COILnzD + hJZWnocRbxDqzsYf43o6gbgG8g4XUgWPvcNtwPY7R1VV1UtkwE0mfA1lp+upjy76zIz7Q1BW/n6CBlEg + roWCowL67vWw2ez92H53oNPp9omkqjIyzCAu1UbPqBqg+evrYJmIrzY0HeSyeLm5DSQlavIjXbsqEFWv + nDhevpR/+GQ4l1VwHy2Tuixd6tVip3DNxdhrS61Hiydso9fYlJuA3Uam4E6x5wv+FlxgkQUWN+KvntAg + uYVaRNzUH0MZZLDnkJX1H2FAn90x0NzDAAAAAElFTkSuQmCC + + + + 279, 17 + + \ No newline at end of file diff --git a/Handler/Project/Dialog/Quick_Control.cs.Designer.cs b/Handler/Project/Dialog/Quick_Control.cs.Designer.cs new file mode 100644 index 0000000..35a259d --- /dev/null +++ b/Handler/Project/Dialog/Quick_Control.cs.Designer.cs @@ -0,0 +1,869 @@ +namespace Project.Dialog +{ + partial class Quick_Control + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Quick_Control)); + this.timer1 = new System.Windows.Forms.Timer(this.components); + this.panel1 = new System.Windows.Forms.Panel(); + this.panBG = new System.Windows.Forms.Panel(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); + this.button60 = new System.Windows.Forms.Button(); + this.button57 = new System.Windows.Forms.Button(); + this.button51 = new System.Windows.Forms.Button(); + this.button52 = new System.Windows.Forms.Button(); + this.button58 = new System.Windows.Forms.Button(); + this.button41 = new System.Windows.Forms.Button(); + this.button44 = new System.Windows.Forms.Button(); + this.button3 = new System.Windows.Forms.Button(); + this.button54 = new System.Windows.Forms.Button(); + this.button53 = new System.Windows.Forms.Button(); + this.button5 = new System.Windows.Forms.Button(); + this.button6 = new System.Windows.Forms.Button(); + this.button4 = new System.Windows.Forms.Button(); + this.button59 = new System.Windows.Forms.Button(); + this.button8 = new System.Windows.Forms.Button(); + this.button14 = new System.Windows.Forms.Button(); + this.button15 = new System.Windows.Forms.Button(); + this.button16 = new System.Windows.Forms.Button(); + this.button17 = new System.Windows.Forms.Button(); + this.button19 = new System.Windows.Forms.Button(); + this.panel2 = new System.Windows.Forms.Panel(); + this.groupBox3 = new System.Windows.Forms.GroupBox(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.button12 = new System.Windows.Forms.Button(); + this.button10 = new System.Windows.Forms.Button(); + this.button38 = new System.Windows.Forms.Button(); + this.button40 = new System.Windows.Forms.Button(); + this.button13 = new System.Windows.Forms.Button(); + this.button24 = new System.Windows.Forms.Button(); + this.button1 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.button7 = new System.Windows.Forms.Button(); + this.button9 = new System.Windows.Forms.Button(); + this.button11 = new System.Windows.Forms.Button(); + this.button18 = new System.Windows.Forms.Button(); + this.btLCyl = new System.Windows.Forms.Button(); + this.btRCyl = new System.Windows.Forms.Button(); + this.panBG.SuspendLayout(); + this.groupBox1.SuspendLayout(); + this.tableLayoutPanel2.SuspendLayout(); + this.groupBox3.SuspendLayout(); + this.tableLayoutPanel1.SuspendLayout(); + this.SuspendLayout(); + // + // timer1 + // + this.timer1.Interval = 500; + this.timer1.Tick += new System.EventHandler(this.timer1_Tick); + // + // panel1 + // + this.panel1.Dock = System.Windows.Forms.DockStyle.Top; + this.panel1.Location = new System.Drawing.Point(5, 511); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(286, 7); + this.panel1.TabIndex = 72; + // + // panBG + // + this.panBG.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.panBG.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.panBG.Controls.Add(this.panel1); + this.panBG.Controls.Add(this.groupBox1); + this.panBG.Controls.Add(this.panel2); + this.panBG.Controls.Add(this.groupBox3); + this.panBG.Dock = System.Windows.Forms.DockStyle.Fill; + this.panBG.Location = new System.Drawing.Point(1, 1); + this.panBG.Name = "panBG"; + this.panBG.Padding = new System.Windows.Forms.Padding(5); + this.panBG.Size = new System.Drawing.Size(298, 540); + this.panBG.TabIndex = 73; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.tableLayoutPanel2); + this.groupBox1.Dock = System.Windows.Forms.DockStyle.Top; + this.groupBox1.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.groupBox1.ForeColor = System.Drawing.Color.WhiteSmoke; + this.groupBox1.Location = new System.Drawing.Point(5, 189); + this.groupBox1.Margin = new System.Windows.Forms.Padding(2); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Padding = new System.Windows.Forms.Padding(5, 3, 5, 5); + this.groupBox1.Size = new System.Drawing.Size(286, 322); + this.groupBox1.TabIndex = 78; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "ETC"; + // + // tableLayoutPanel2 + // + this.tableLayoutPanel2.ColumnCount = 4; + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel2.Controls.Add(this.button60, 0, 3); + this.tableLayoutPanel2.Controls.Add(this.button57, 0, 2); + this.tableLayoutPanel2.Controls.Add(this.button51, 0, 1); + this.tableLayoutPanel2.Controls.Add(this.button52, 1, 1); + this.tableLayoutPanel2.Controls.Add(this.button58, 3, 2); + this.tableLayoutPanel2.Controls.Add(this.button41, 0, 0); + this.tableLayoutPanel2.Controls.Add(this.button44, 1, 0); + this.tableLayoutPanel2.Controls.Add(this.button3, 1, 3); + this.tableLayoutPanel2.Controls.Add(this.button54, 2, 1); + this.tableLayoutPanel2.Controls.Add(this.button53, 3, 1); + this.tableLayoutPanel2.Controls.Add(this.button5, 1, 2); + this.tableLayoutPanel2.Controls.Add(this.button6, 2, 2); + this.tableLayoutPanel2.Controls.Add(this.button4, 2, 3); + this.tableLayoutPanel2.Controls.Add(this.button59, 3, 3); + this.tableLayoutPanel2.Controls.Add(this.button8, 0, 4); + this.tableLayoutPanel2.Controls.Add(this.button14, 1, 4); + this.tableLayoutPanel2.Controls.Add(this.button15, 2, 4); + this.tableLayoutPanel2.Controls.Add(this.button16, 3, 4); + this.tableLayoutPanel2.Controls.Add(this.button17, 0, 5); + this.tableLayoutPanel2.Controls.Add(this.button19, 3, 5); + this.tableLayoutPanel2.Controls.Add(this.btLCyl, 1, 5); + this.tableLayoutPanel2.Controls.Add(this.btRCyl, 2, 5); + this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel2.Location = new System.Drawing.Point(5, 19); + this.tableLayoutPanel2.Margin = new System.Windows.Forms.Padding(2); + this.tableLayoutPanel2.Name = "tableLayoutPanel2"; + this.tableLayoutPanel2.RowCount = 6; + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66708F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66708F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66708F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66542F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667F)); + this.tableLayoutPanel2.Size = new System.Drawing.Size(276, 298); + this.tableLayoutPanel2.TabIndex = 0; + // + // button60 + // + this.button60.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.button60.Dock = System.Windows.Forms.DockStyle.Fill; + this.button60.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button60.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button60.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button60.ForeColor = System.Drawing.Color.White; + this.button60.Location = new System.Drawing.Point(4, 151); + this.button60.Margin = new System.Windows.Forms.Padding(4); + this.button60.Name = "button60"; + this.button60.Size = new System.Drawing.Size(61, 41); + this.button60.TabIndex = 61; + this.button60.Tag = "0"; + this.button60.Text = "LP전진"; + this.button60.UseVisualStyleBackColor = false; + this.button60.Click += new System.EventHandler(this.button60_Click); + // + // button57 + // + this.button57.BackColor = System.Drawing.Color.Olive; + this.button57.Dock = System.Windows.Forms.DockStyle.Fill; + this.button57.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button57.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button57.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button57.ForeColor = System.Drawing.Color.White; + this.button57.Location = new System.Drawing.Point(4, 102); + this.button57.Margin = new System.Windows.Forms.Padding(4); + this.button57.Name = "button57"; + this.button57.Size = new System.Drawing.Size(61, 41); + this.button57.TabIndex = 59; + this.button57.Tag = "2"; + this.button57.Text = "LP-AIR"; + this.button57.UseVisualStyleBackColor = false; + this.button57.Click += new System.EventHandler(this.button57_Click); + // + // button51 + // + this.button51.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(0)))), ((int)(((byte)(64))))); + this.button51.Dock = System.Windows.Forms.DockStyle.Fill; + this.button51.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button51.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button51.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button51.ForeColor = System.Drawing.Color.White; + this.button51.Location = new System.Drawing.Point(4, 53); + this.button51.Margin = new System.Windows.Forms.Padding(4); + this.button51.Name = "button51"; + this.button51.Size = new System.Drawing.Size(61, 41); + this.button51.TabIndex = 57; + this.button51.Tag = "1"; + this.button51.Text = "LP흡기"; + this.button51.UseVisualStyleBackColor = false; + this.button51.Click += new System.EventHandler(this.button51_Click); + // + // button52 + // + this.button52.BackColor = System.Drawing.Color.Navy; + this.button52.Dock = System.Windows.Forms.DockStyle.Fill; + this.button52.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button52.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button52.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button52.ForeColor = System.Drawing.Color.White; + this.button52.Location = new System.Drawing.Point(73, 53); + this.button52.Margin = new System.Windows.Forms.Padding(4); + this.button52.Name = "button52"; + this.button52.Size = new System.Drawing.Size(61, 41); + this.button52.TabIndex = 57; + this.button52.Tag = "2"; + this.button52.Text = "LP배기"; + this.button52.UseVisualStyleBackColor = false; + this.button52.Click += new System.EventHandler(this.button51_Click); + // + // button58 + // + this.button58.BackColor = System.Drawing.Color.Olive; + this.button58.Dock = System.Windows.Forms.DockStyle.Fill; + this.button58.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button58.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button58.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button58.ForeColor = System.Drawing.Color.White; + this.button58.Location = new System.Drawing.Point(211, 102); + this.button58.Margin = new System.Windows.Forms.Padding(4); + this.button58.Name = "button58"; + this.button58.Size = new System.Drawing.Size(61, 41); + this.button58.TabIndex = 59; + this.button58.Tag = "2"; + this.button58.Text = "RP-AIR"; + this.button58.UseVisualStyleBackColor = false; + this.button58.Click += new System.EventHandler(this.button58_Click); + // + // button41 + // + this.button41.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button41.Dock = System.Windows.Forms.DockStyle.Fill; + this.button41.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button41.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button41.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button41.ForeColor = System.Drawing.Color.White; + this.button41.Location = new System.Drawing.Point(4, 4); + this.button41.Margin = new System.Windows.Forms.Padding(4); + this.button41.Name = "button41"; + this.button41.Size = new System.Drawing.Size(61, 41); + this.button41.TabIndex = 57; + this.button41.Text = "피커진공"; + this.button41.UseVisualStyleBackColor = false; + this.button41.Click += new System.EventHandler(this.button41_Click); + // + // button44 + // + this.button44.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.tableLayoutPanel2.SetColumnSpan(this.button44, 3); + this.button44.Dock = System.Windows.Forms.DockStyle.Fill; + this.button44.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button44.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button44.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button44.ForeColor = System.Drawing.Color.White; + this.button44.Location = new System.Drawing.Point(72, 3); + this.button44.Name = "button44"; + this.button44.Size = new System.Drawing.Size(201, 43); + this.button44.TabIndex = 58; + this.button44.Text = "메인AIR"; + this.button44.UseVisualStyleBackColor = false; + this.button44.Click += new System.EventHandler(this.button44_Click); + // + // button3 + // + this.button3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button3.Dock = System.Windows.Forms.DockStyle.Fill; + this.button3.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button3.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button3.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.button3.ForeColor = System.Drawing.Color.Gold; + this.button3.Location = new System.Drawing.Point(72, 150); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(63, 43); + this.button3.TabIndex = 58; + this.button3.Text = "프린트"; + this.button3.UseVisualStyleBackColor = false; + this.button3.Click += new System.EventHandler(this.button3_Click_1); + // + // button54 + // + this.button54.BackColor = System.Drawing.Color.Navy; + this.button54.Dock = System.Windows.Forms.DockStyle.Fill; + this.button54.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button54.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button54.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button54.ForeColor = System.Drawing.Color.White; + this.button54.Location = new System.Drawing.Point(142, 53); + this.button54.Margin = new System.Windows.Forms.Padding(4); + this.button54.Name = "button54"; + this.button54.Size = new System.Drawing.Size(61, 41); + this.button54.TabIndex = 57; + this.button54.Tag = "2"; + this.button54.Text = "RP배기"; + this.button54.UseVisualStyleBackColor = false; + this.button54.Click += new System.EventHandler(this.button53_Click); + // + // button53 + // + this.button53.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(0)))), ((int)(((byte)(64))))); + this.button53.Dock = System.Windows.Forms.DockStyle.Fill; + this.button53.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button53.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button53.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button53.ForeColor = System.Drawing.Color.White; + this.button53.Location = new System.Drawing.Point(211, 53); + this.button53.Margin = new System.Windows.Forms.Padding(4); + this.button53.Name = "button53"; + this.button53.Size = new System.Drawing.Size(61, 41); + this.button53.TabIndex = 57; + this.button53.Tag = "1"; + this.button53.Text = "RP흡기"; + this.button53.UseVisualStyleBackColor = false; + this.button53.Click += new System.EventHandler(this.button53_Click); + // + // button5 + // + this.button5.BackColor = System.Drawing.Color.Lime; + this.button5.Dock = System.Windows.Forms.DockStyle.Fill; + this.button5.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button5.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button5.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.button5.ForeColor = System.Drawing.Color.Black; + this.button5.Location = new System.Drawing.Point(72, 101); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(63, 43); + this.button5.TabIndex = 58; + this.button5.Text = "감지L"; + this.button5.UseVisualStyleBackColor = false; + // + // button6 + // + this.button6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button6.Dock = System.Windows.Forms.DockStyle.Fill; + this.button6.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button6.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button6.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.button6.ForeColor = System.Drawing.Color.White; + this.button6.Location = new System.Drawing.Point(141, 101); + this.button6.Name = "button6"; + this.button6.Size = new System.Drawing.Size(63, 43); + this.button6.TabIndex = 58; + this.button6.Text = "감지R"; + this.button6.UseVisualStyleBackColor = false; + // + // button4 + // + this.button4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button4.Dock = System.Windows.Forms.DockStyle.Fill; + this.button4.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button4.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button4.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.button4.ForeColor = System.Drawing.Color.Gold; + this.button4.Location = new System.Drawing.Point(141, 150); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(63, 43); + this.button4.TabIndex = 58; + this.button4.Text = "프린트"; + this.button4.UseVisualStyleBackColor = false; + this.button4.Click += new System.EventHandler(this.button4_Click_1); + // + // button59 + // + this.button59.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.button59.Dock = System.Windows.Forms.DockStyle.Fill; + this.button59.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button59.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button59.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button59.ForeColor = System.Drawing.Color.White; + this.button59.Location = new System.Drawing.Point(211, 151); + this.button59.Margin = new System.Windows.Forms.Padding(4); + this.button59.Name = "button59"; + this.button59.Size = new System.Drawing.Size(61, 41); + this.button59.TabIndex = 60; + this.button59.Tag = "0"; + this.button59.Text = "RP전진"; + this.button59.UseVisualStyleBackColor = false; + this.button59.Click += new System.EventHandler(this.button59_Click); + // + // button8 + // + this.button8.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.button8.Dock = System.Windows.Forms.DockStyle.Fill; + this.button8.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button8.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button8.Font = new System.Drawing.Font("맑은 고딕", 17F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button8.ForeColor = System.Drawing.Color.Gold; + this.button8.Location = new System.Drawing.Point(4, 200); + this.button8.Margin = new System.Windows.Forms.Padding(4); + this.button8.Name = "button8"; + this.button8.Size = new System.Drawing.Size(61, 41); + this.button8.TabIndex = 61; + this.button8.Tag = "0"; + this.button8.Text = "Y-"; + this.button8.UseVisualStyleBackColor = false; + this.button8.Click += new System.EventHandler(this.button8_Click); + // + // button14 + // + this.button14.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.button14.Dock = System.Windows.Forms.DockStyle.Fill; + this.button14.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button14.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button14.Font = new System.Drawing.Font("맑은 고딕", 17F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button14.ForeColor = System.Drawing.Color.Tomato; + this.button14.Location = new System.Drawing.Point(73, 200); + this.button14.Margin = new System.Windows.Forms.Padding(4); + this.button14.Name = "button14"; + this.button14.Size = new System.Drawing.Size(61, 41); + this.button14.TabIndex = 61; + this.button14.Tag = "0"; + this.button14.Text = "[R]"; + this.button14.UseVisualStyleBackColor = false; + this.button14.Click += new System.EventHandler(this.button14_Click); + // + // button15 + // + this.button15.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.button15.Dock = System.Windows.Forms.DockStyle.Fill; + this.button15.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button15.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button15.Font = new System.Drawing.Font("맑은 고딕", 17F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button15.ForeColor = System.Drawing.Color.Gold; + this.button15.Location = new System.Drawing.Point(142, 200); + this.button15.Margin = new System.Windows.Forms.Padding(4); + this.button15.Name = "button15"; + this.button15.Size = new System.Drawing.Size(61, 41); + this.button15.TabIndex = 61; + this.button15.Tag = "0"; + this.button15.Text = "Y-"; + this.button15.UseVisualStyleBackColor = false; + this.button15.Click += new System.EventHandler(this.button15_Click_1); + // + // button16 + // + this.button16.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.button16.Dock = System.Windows.Forms.DockStyle.Fill; + this.button16.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button16.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button16.Font = new System.Drawing.Font("맑은 고딕", 17F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button16.ForeColor = System.Drawing.Color.Tomato; + this.button16.Location = new System.Drawing.Point(211, 200); + this.button16.Margin = new System.Windows.Forms.Padding(4); + this.button16.Name = "button16"; + this.button16.Size = new System.Drawing.Size(61, 41); + this.button16.TabIndex = 61; + this.button16.Tag = "0"; + this.button16.Text = "[R]"; + this.button16.UseVisualStyleBackColor = false; + this.button16.Click += new System.EventHandler(this.button16_Click_2); + // + // button17 + // + this.button17.Dock = System.Windows.Forms.DockStyle.Fill; + this.button17.ForeColor = System.Drawing.Color.Black; + this.button17.Location = new System.Drawing.Point(3, 248); + this.button17.Name = "button17"; + this.button17.Size = new System.Drawing.Size(63, 47); + this.button17.TabIndex = 62; + this.button17.Text = "L컨베어"; + this.button17.UseVisualStyleBackColor = true; + this.button17.Click += new System.EventHandler(this.button17_Click); + // + // button19 + // + this.button19.Dock = System.Windows.Forms.DockStyle.Fill; + this.button19.ForeColor = System.Drawing.Color.Black; + this.button19.Location = new System.Drawing.Point(210, 248); + this.button19.Name = "button19"; + this.button19.Size = new System.Drawing.Size(63, 47); + this.button19.TabIndex = 62; + this.button19.Text = "R컨베어"; + this.button19.UseVisualStyleBackColor = true; + this.button19.Click += new System.EventHandler(this.button19_Click); + // + // panel2 + // + this.panel2.Dock = System.Windows.Forms.DockStyle.Top; + this.panel2.Location = new System.Drawing.Point(5, 182); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(286, 7); + this.panel2.TabIndex = 77; + // + // groupBox3 + // + this.groupBox3.Controls.Add(this.tableLayoutPanel1); + this.groupBox3.Dock = System.Windows.Forms.DockStyle.Top; + this.groupBox3.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.groupBox3.ForeColor = System.Drawing.Color.WhiteSmoke; + this.groupBox3.Location = new System.Drawing.Point(5, 5); + this.groupBox3.Margin = new System.Windows.Forms.Padding(2); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Padding = new System.Windows.Forms.Padding(5, 3, 5, 5); + this.groupBox3.Size = new System.Drawing.Size(286, 177); + this.groupBox3.TabIndex = 76; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "PORT Z-MOTOR"; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 4; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.Controls.Add(this.button12, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.button10, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.button38, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.button40, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.button13, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.button24, 1, 1); + this.tableLayoutPanel1.Controls.Add(this.button1, 2, 0); + this.tableLayoutPanel1.Controls.Add(this.button2, 2, 1); + this.tableLayoutPanel1.Controls.Add(this.button7, 2, 2); + this.tableLayoutPanel1.Controls.Add(this.button9, 0, 3); + this.tableLayoutPanel1.Controls.Add(this.button11, 1, 3); + this.tableLayoutPanel1.Controls.Add(this.button18, 2, 3); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(5, 19); + this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(2); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 4; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.00062F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.00062F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.00062F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 24.99813F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(276, 153); + this.tableLayoutPanel1.TabIndex = 0; + // + // button12 + // + this.button12.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button12.Dock = System.Windows.Forms.DockStyle.Fill; + this.button12.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button12.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button12.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button12.ForeColor = System.Drawing.Color.White; + this.button12.Location = new System.Drawing.Point(73, 80); + this.button12.Margin = new System.Windows.Forms.Padding(4); + this.button12.Name = "button12"; + this.button12.Size = new System.Drawing.Size(61, 30); + this.button12.TabIndex = 61; + this.button12.Tag = "1"; + this.button12.Text = "▼"; + this.button12.UseVisualStyleBackColor = false; + this.button12.Click += new System.EventHandler(this.button10_Click_1); + // + // button10 + // + this.button10.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button10.Dock = System.Windows.Forms.DockStyle.Fill; + this.button10.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button10.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button10.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button10.ForeColor = System.Drawing.Color.White; + this.button10.Location = new System.Drawing.Point(4, 80); + this.button10.Margin = new System.Windows.Forms.Padding(4); + this.button10.Name = "button10"; + this.button10.Size = new System.Drawing.Size(61, 30); + this.button10.TabIndex = 60; + this.button10.Tag = "0"; + this.button10.Text = "▼"; + this.button10.UseVisualStyleBackColor = false; + this.button10.Click += new System.EventHandler(this.button10_Click_1); + // + // button38 + // + this.button38.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button38.Dock = System.Windows.Forms.DockStyle.Fill; + this.button38.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button38.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button38.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button38.ForeColor = System.Drawing.Color.White; + this.button38.Location = new System.Drawing.Point(73, 4); + this.button38.Margin = new System.Windows.Forms.Padding(4); + this.button38.Name = "button38"; + this.button38.Size = new System.Drawing.Size(61, 30); + this.button38.TabIndex = 57; + this.button38.Tag = "1"; + this.button38.Text = "▲"; + this.button38.UseVisualStyleBackColor = false; + this.button38.Click += new System.EventHandler(this.button40_Click); + // + // button40 + // + this.button40.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button40.Dock = System.Windows.Forms.DockStyle.Fill; + this.button40.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button40.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button40.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button40.ForeColor = System.Drawing.Color.White; + this.button40.Location = new System.Drawing.Point(4, 4); + this.button40.Margin = new System.Windows.Forms.Padding(4); + this.button40.Name = "button40"; + this.button40.Size = new System.Drawing.Size(61, 30); + this.button40.TabIndex = 55; + this.button40.Tag = "0"; + this.button40.Text = "▲"; + this.button40.UseVisualStyleBackColor = false; + this.button40.Click += new System.EventHandler(this.button40_Click); + // + // button13 + // + this.button13.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button13.Dock = System.Windows.Forms.DockStyle.Fill; + this.button13.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button13.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button13.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button13.ForeColor = System.Drawing.Color.White; + this.button13.Location = new System.Drawing.Point(4, 42); + this.button13.Margin = new System.Windows.Forms.Padding(4); + this.button13.Name = "button13"; + this.button13.Size = new System.Drawing.Size(61, 30); + this.button13.TabIndex = 62; + this.button13.Tag = "0"; + this.button13.Text = "STOP"; + this.button13.UseVisualStyleBackColor = false; + this.button13.Click += new System.EventHandler(this.button13_Click_2); + // + // button24 + // + this.button24.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button24.Dock = System.Windows.Forms.DockStyle.Fill; + this.button24.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button24.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button24.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button24.ForeColor = System.Drawing.Color.White; + this.button24.Location = new System.Drawing.Point(73, 42); + this.button24.Margin = new System.Windows.Forms.Padding(4); + this.button24.Name = "button24"; + this.button24.Size = new System.Drawing.Size(61, 30); + this.button24.TabIndex = 62; + this.button24.Tag = "1"; + this.button24.Text = "STOP"; + this.button24.UseVisualStyleBackColor = false; + this.button24.Click += new System.EventHandler(this.button13_Click_2); + // + // button1 + // + this.button1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button1.Dock = System.Windows.Forms.DockStyle.Fill; + this.button1.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button1.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button1.ForeColor = System.Drawing.Color.White; + this.button1.Location = new System.Drawing.Point(142, 4); + this.button1.Margin = new System.Windows.Forms.Padding(4); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(61, 30); + this.button1.TabIndex = 57; + this.button1.Tag = "2"; + this.button1.Text = "▲"; + this.button1.UseVisualStyleBackColor = false; + this.button1.Click += new System.EventHandler(this.button40_Click); + // + // button2 + // + this.button2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button2.Dock = System.Windows.Forms.DockStyle.Fill; + this.button2.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button2.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button2.ForeColor = System.Drawing.Color.White; + this.button2.Location = new System.Drawing.Point(142, 42); + this.button2.Margin = new System.Windows.Forms.Padding(4); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(61, 30); + this.button2.TabIndex = 62; + this.button2.Tag = "2"; + this.button2.Text = "STOP"; + this.button2.UseVisualStyleBackColor = false; + this.button2.Click += new System.EventHandler(this.button13_Click_2); + // + // button7 + // + this.button7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button7.Dock = System.Windows.Forms.DockStyle.Fill; + this.button7.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button7.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button7.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button7.ForeColor = System.Drawing.Color.White; + this.button7.Location = new System.Drawing.Point(142, 80); + this.button7.Margin = new System.Windows.Forms.Padding(4); + this.button7.Name = "button7"; + this.button7.Size = new System.Drawing.Size(61, 30); + this.button7.TabIndex = 60; + this.button7.Tag = "2"; + this.button7.Text = "▼"; + this.button7.UseVisualStyleBackColor = false; + this.button7.Click += new System.EventHandler(this.button10_Click_1); + // + // button9 + // + this.button9.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button9.Dock = System.Windows.Forms.DockStyle.Fill; + this.button9.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button9.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button9.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button9.ForeColor = System.Drawing.Color.White; + this.button9.Location = new System.Drawing.Point(4, 118); + this.button9.Margin = new System.Windows.Forms.Padding(4); + this.button9.Name = "button9"; + this.button9.Size = new System.Drawing.Size(61, 31); + this.button9.TabIndex = 60; + this.button9.Tag = "0"; + this.button9.Text = "MAG"; + this.button9.UseVisualStyleBackColor = false; + this.button9.Click += new System.EventHandler(this.button9_Click); + // + // button11 + // + this.button11.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button11.Dock = System.Windows.Forms.DockStyle.Fill; + this.button11.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button11.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button11.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button11.ForeColor = System.Drawing.Color.White; + this.button11.Location = new System.Drawing.Point(73, 118); + this.button11.Margin = new System.Windows.Forms.Padding(4); + this.button11.Name = "button11"; + this.button11.Size = new System.Drawing.Size(61, 31); + this.button11.TabIndex = 60; + this.button11.Tag = "1"; + this.button11.Text = "MAG"; + this.button11.UseVisualStyleBackColor = false; + this.button11.Click += new System.EventHandler(this.button9_Click); + // + // button18 + // + this.button18.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button18.Dock = System.Windows.Forms.DockStyle.Fill; + this.button18.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button18.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button18.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button18.ForeColor = System.Drawing.Color.White; + this.button18.Location = new System.Drawing.Point(142, 118); + this.button18.Margin = new System.Windows.Forms.Padding(4); + this.button18.Name = "button18"; + this.button18.Size = new System.Drawing.Size(61, 31); + this.button18.TabIndex = 60; + this.button18.Tag = "2"; + this.button18.Text = "MAG"; + this.button18.UseVisualStyleBackColor = false; + this.button18.Click += new System.EventHandler(this.button9_Click); + // + // btLCyl + // + this.btLCyl.Dock = System.Windows.Forms.DockStyle.Fill; + this.btLCyl.ForeColor = System.Drawing.Color.Black; + this.btLCyl.Location = new System.Drawing.Point(72, 248); + this.btLCyl.Name = "btLCyl"; + this.btLCyl.Size = new System.Drawing.Size(63, 47); + this.btLCyl.TabIndex = 63; + this.btLCyl.Text = "L실린더"; + this.btLCyl.UseVisualStyleBackColor = true; + this.btLCyl.Click += new System.EventHandler(this.button20_Click); + // + // btRCyl + // + this.btRCyl.Dock = System.Windows.Forms.DockStyle.Fill; + this.btRCyl.ForeColor = System.Drawing.Color.Black; + this.btRCyl.Location = new System.Drawing.Point(141, 248); + this.btRCyl.Name = "btRCyl"; + this.btRCyl.Size = new System.Drawing.Size(63, 47); + this.btRCyl.TabIndex = 63; + this.btRCyl.Text = "R실린더"; + this.btRCyl.UseVisualStyleBackColor = true; + this.btRCyl.Click += new System.EventHandler(this.button21_Click); + // + // Quick_Control + // + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 17F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(15)))), ((int)(((byte)(15))))); + this.ClientSize = new System.Drawing.Size(300, 542); + this.Controls.Add(this.panBG); + this.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Margin = new System.Windows.Forms.Padding(4); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "Quick_Control"; + this.Padding = new System.Windows.Forms.Padding(1); + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "수동조작"; + this.TopMost = true; + this.Load += new System.EventHandler(this.@__LoaD); + this.panBG.ResumeLayout(false); + this.groupBox1.ResumeLayout(false); + this.tableLayoutPanel2.ResumeLayout(false); + this.groupBox3.ResumeLayout(false); + this.tableLayoutPanel1.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + private System.Windows.Forms.Timer timer1; + private System.Windows.Forms.Panel panel1; + public System.Windows.Forms.Panel panBG; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Button button38; + private System.Windows.Forms.Button button40; + public System.Windows.Forms.GroupBox groupBox3; + private System.Windows.Forms.Button button12; + private System.Windows.Forms.Button button10; + private System.Windows.Forms.Button button13; + private System.Windows.Forms.Button button24; + private System.Windows.Forms.Panel panel2; + public System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; + private System.Windows.Forms.Button button41; + private System.Windows.Forms.Button button44; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button button7; + private System.Windows.Forms.Button button9; + private System.Windows.Forms.Button button11; + private System.Windows.Forms.Button button18; + private System.Windows.Forms.Button button51; + private System.Windows.Forms.Button button52; + private System.Windows.Forms.Button button53; + private System.Windows.Forms.Button button54; + private System.Windows.Forms.Button button57; + private System.Windows.Forms.Button button58; + private System.Windows.Forms.Button button59; + private System.Windows.Forms.Button button60; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.Button button5; + private System.Windows.Forms.Button button6; + private System.Windows.Forms.Button button8; + private System.Windows.Forms.Button button14; + private System.Windows.Forms.Button button15; + private System.Windows.Forms.Button button16; + private System.Windows.Forms.Button button17; + private System.Windows.Forms.Button button19; + private System.Windows.Forms.Button btLCyl; + private System.Windows.Forms.Button btRCyl; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/Quick_Control.cs.cs b/Handler/Project/Dialog/Quick_Control.cs.cs new file mode 100644 index 0000000..cfdfa53 --- /dev/null +++ b/Handler/Project/Dialog/Quick_Control.cs.cs @@ -0,0 +1,452 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using AR; + +namespace Project.Dialog +{ + public partial class Quick_Control : Form + { + public Quick_Control() + { + InitializeComponent(); + this.FormClosing += __Closing; + //this.lbTitle.MouseMove += LbTitle_MouseMove; + //this.lbTitle.MouseUp += LbTitle_MouseUp; + //this.lbTitle.MouseDown += LbTitle_MouseDown; + } + + void __Closing(object sender, FormClosingEventArgs e) + { + timer1.Stop(); + } + private void __LoaD(object sender, EventArgs e) + { + timer1.Start(); + //button31.Text = ((eAxis)0).ToString(); + //button32.Text = ((eAxis)1).ToString(); + //button33.Text = ((eAxis)2).ToString(); + } + #region "Mouse Form Move" + + private Boolean fMove = false; + private Point MDownPos; + private void LbTitle_MouseMove(object sender, MouseEventArgs e) + { + if (fMove) + { + Point offset = new Point(e.X - MDownPos.X, e.Y - MDownPos.Y); + this.Left += offset.X; + this.Top += offset.Y; + offset = new Point(0, 0); + } + } + private void LbTitle_MouseUp(object sender, MouseEventArgs e) + { + fMove = false; + } + private void LbTitle_MouseDown(object sender, MouseEventArgs e) + { + MDownPos = new Point(e.X, e.Y); + fMove = true; + } + + #endregion + private void button1_Click(object sender, EventArgs e) + { + if (PUB.mot.IsHomeSet((int)eAxis.Z_THETA) == false) + { + UTIL.MsgE("홈 검색이 완료되지 않았으므로 이동할 수 없습니다"); + return; + } + + var speed = 50.0; + if (PUB.Result != null && + PUB.Result.mModel != null && + PUB.Result.mModel.Title != "") + speed = 0;// Pub.Result.mModel.XSpeed; + + MOT.Move(eAxis.Z_THETA, 0, speed); + } + + private void timer1_Tick(object sender, EventArgs e) + { + //감지센서 상태 210208 + button5.BackColor = DIO.GetIOInput(eDIName.L_PICK_VAC) ? Color.Lime : Color.FromArgb(70, 70, 70); + button5.ForeColor = DIO.GetIOInput(eDIName.L_PICK_VAC) ? Color.Black : Color.White; + + button6.BackColor = DIO.GetIOInput(eDIName.R_PICK_VAC) ? Color.Lime : Color.FromArgb(70, 70, 70); + button6.ForeColor = DIO.GetIOInput(eDIName.R_PICK_VAC) ? Color.Black : Color.White; + + + btLCyl.BackColor = DIO.GetIOOutput(eDOName.L_CYLDN) ? Color.Black : Color.White; + btRCyl.BackColor = DIO.GetIOOutput(eDOName.R_CYLDN) ? Color.Black : Color.White; + + + + //메세지업데이트 230830 + var lcylup = DIO.GetIOInput(eDIName.L_CYLUP); + var lcyldn = DIO.GetIOInput(eDIName.L_CYLDN); + var rcylup = DIO.GetIOInput(eDIName.R_CYLUP); + var rcyldn = DIO.GetIOInput(eDIName.R_CYLDN); + btLCyl.Text = "L실린더\n" + (lcylup ? "(UP)" : (lcyldn ? "(DN)" : "--")); + btRCyl.Text = "R실린더\n" + (rcylup ? "(UP)" : (rcyldn ? "(DN)" : "--")); + + var Lconv = DIO.GetIOOutput(eDOName.LEFT_CONV); + var Rconv = DIO.GetIOOutput(eDOName.RIGHT_CONV); + button17.Text = "L컨베어\n" + (Lconv ? "(RUN)" : "(STOP)"); + button19.Text = "R컨베어\n" + (Rconv ? "(RUN)" : "(STOP)"); + button17.BackColor = Lconv ? Color.Lime : Color.White; + button19.BackColor = Rconv ? Color.Lime : Color.White; + + + } + + private void button20_Click_1(object sender, EventArgs e) + { + //button zero + var but = sender as Button; + var motidx = short.Parse(but.Tag.ToString()); + var axis = (eAxis)motidx; + + //전체 이동경로상 오류가 있으면 처리 하지 않는다. + var ermsg = new System.Text.StringBuilder(); + + if (PUB.mot.IsHomeSet((int)axis) == false) + { + ermsg.AppendLine("해당 축은 홈 검색이 완료되지 않았습니다"); + } + + + if (ermsg.Length > 0) + { + UTIL.MsgE("이동을 할 수 없습니다\n" + ermsg.ToString()); + return; + } + + + var dlg = UTIL.MsgQ(string.Format("모션 축 ({0})의 위치를 0으로 이동하시겠습까?\n" + + "위치 0은 일반적으로 홈 위치 입니다", axis)); + if (dlg != DialogResult.Yes) return; + PUB.log.Add("user:move to zero axis=" + axis.ToString()); + PUB.mot.Move(motidx, 0); + } + + private void button16_Click_1(object sender, EventArgs e) + { + //button stop + var but = sender as Button; + var motidx = short.Parse(but.Tag.ToString()); + var axis = (eAxis)motidx; + + //var dlg = Util.MsgQ("모션 {0}({1}) 을 위치 '0'으로 이동 할까요?\n" + + // "경로 상 충돌가능성을 확인 한 후 실행하세요"); + //if (dlg != System.Windows.Forms.DialogResult.Yes) return; + + PUB.log.Add("user:motion stop axis=" + axis.ToString()); + PUB.mot.MoveStop("user stop", motidx); + } + + private void button3_Click(object sender, EventArgs e) + { + //ccw + var but = sender as Button; + var motidx = short.Parse(but.Tag.ToString()); + var axis = (eAxis)motidx; + PUB.log.Add("user:motion move -3.0 axis=" + axis.ToString()); + PUB.mot.Move(motidx, -3.0, true); + } + + private void button4_Click(object sender, EventArgs e) + { + //cw + var but = sender as Button; + var motidx = short.Parse(but.Tag.ToString()); + var axis = (eAxis)motidx; + PUB.log.Add("user:motion move +3.0 axis=" + axis.ToString()); + PUB.mot.Move(motidx, 3.0, true); + } + + private void button40_Click(object sender, EventArgs e) + { + var but = sender as Button; + var butindex = int.Parse(but.Tag.ToString()); + DIO.SetPortMotor(butindex, eMotDir.CW, true, "UC"); + } + + private void tbClose_Click_1(object sender, EventArgs e) + { + this.Close(); + } + + private void button10_Click_1(object sender, EventArgs e) + { + var but = sender as Button; + var butindex = int.Parse(but.Tag.ToString()); + DIO.SetPortMotor(butindex, eMotDir.CCW, true, "UC"); + } + + private void button13_Click_2(object sender, EventArgs e) + { + var but = sender as Button; + var butindex = int.Parse(but.Tag.ToString()); + DIO.SetPortMotor(butindex, eMotDir.CCW, false, "UC"); + } + + private void button41_Click(object sender, EventArgs e) + { + //front + var cur = DIO.GetIOOutput(eDOName.PICK_VAC1); + DIO.SetPickerVac(!cur, true); + } + + private void button39_Click(object sender, EventArgs e) + { + + } + + private void button44_Click(object sender, EventArgs e) + { + var cur = DIO.GetIOOutput(eDOName.SOL_AIR); + DIO.SetAIR(!cur); + } + + private void button9_Click(object sender, EventArgs e) + { + var but = sender as Button; + var butindex = int.Parse(but.Tag.ToString()); + Boolean current = false; + + if (butindex == 0) current = DIO.GetIOOutput(eDOName.CART_MAG0); + else if (butindex == 1) current = DIO.GetIOOutput(eDOName.CART_MAG1); + else current = DIO.GetIOOutput(eDOName.CART_MAG2); + + DIO.SetPortMagnet(butindex, !current); + } + + private void button51_Click(object sender, EventArgs e) + { + var but = sender as Button; + var tagstr = but.Tag.ToString(); + if (tagstr == "1") + { + if (DIO.GetIOOutput(eDOName.PRINTL_VACI) == true) + DIO.SetPrintLVac(ePrintVac.off, true); + else + DIO.SetPrintLVac(ePrintVac.inhalation, true); + } + else if (tagstr == "2") + if (DIO.GetIOOutput(eDOName.PRINTL_VACO) == true) + DIO.SetPrintLVac(ePrintVac.off, true); + else + DIO.SetPrintLVac(ePrintVac.exhaust, true); + else + DIO.SetPrintLVac(ePrintVac.off, true); + } + + + + private void button53_Click(object sender, EventArgs e) + { + var but = sender as Button; + var tagstr = but.Tag.ToString(); + if (tagstr == "1") + { + if (DIO.GetIOOutput(eDOName.PRINTR_VACI) == true) + DIO.SetPrintRVac(ePrintVac.off, true); + else + DIO.SetPrintRVac(ePrintVac.inhalation, true); + } + else if (tagstr == "2") + if (DIO.GetIOOutput(eDOName.PRINTR_VACO) == true) + DIO.SetPrintRVac(ePrintVac.off, true); + else + DIO.SetPrintRVac(ePrintVac.exhaust, true); + else + DIO.SetPrintRVac(ePrintVac.off, true); + } + + private void button57_Click(object sender, EventArgs e) + { + //바닥바람 + var curvalu = DIO.GetIOOutput(eDOName.PRINTL_AIRON); + DIO.SetOutput(eDOName.PRINTL_AIRON, !curvalu); + } + + private void button58_Click(object sender, EventArgs e) + { + //바닥바람 + var curvalu = DIO.GetIOOutput(eDOName.PRINTR_AIRON); + DIO.SetOutput(eDOName.PRINTR_AIRON, !curvalu); + } + + private void button60_Click(object sender, EventArgs e) + { + var cur = DIO.GetIOOutput(eDOName.PRINTL_FWD); + if (cur == false) + { + var dlg = UTIL.MsgQ("프린터(좌) 피커를 전진할까요?"); //210209 + if (dlg != DialogResult.Yes) return; + + //준비위치에서는 전진하면 충돌한다 + var ReadyPos = MOT.GetLMPos(eLMLoc.READY); + if (MOT.getPositionMatch(ReadyPos)) + { + if (UTIL.MsgQ("현재 위치에서는 충돌위험이 있습니다. 그래도 진행 할까요?") != DialogResult.Yes) + return; + } + } + + DIO.SetOutput(eDOName.PRINTL_FWD, !cur); + } + + private void button59_Click(object sender, EventArgs e) + { + var cur = DIO.GetIOOutput(eDOName.PRINTR_FWD); + if (cur == false) + { + var dlg = UTIL.MsgQ("프린터(우) 피커를 전진할까요?"); + if (dlg != DialogResult.Yes) return; + + //준비위치에서는 전진하면 충돌한다 + var ReadyPos = MOT.GetRMPos(eRMLoc.READY); + if (MOT.getPositionMatch(ReadyPos)) + { + if (UTIL.MsgQ("현재 위치에서는 충돌위험이 있습니다. 그래도 진행 할까요?") != DialogResult.Yes) + return; + } + } + DIO.SetOutput(eDOName.PRINTR_FWD, !cur); + } + + private void button3_Click_1(object sender, EventArgs e) + { + PUB.PrinterL.TestPrint(AR.SETTING.Data.DrawOutbox, "ATK4EE1", ""); + var zpl = PUB.PrinterL.LastPrintZPL; + PUB.log.Add("임시프린트L:" + PUB.PrinterL.LastPrintZPL); + } + + private void button4_Click_1(object sender, EventArgs e) + { + PUB.PrinterR.TestPrint(AR.SETTING.Data.DrawOutbox, "ATK4EE1", ""); + var zpl = PUB.PrinterR.LastPrintZPL; + PUB.log.Add("임시프린트R:" + PUB.PrinterR.LastPrintZPL); + } + + private void button15_Click(object sender, EventArgs e) + { + //왼쪽검증취소 + if (PUB.flag.get(eVarBool.FG_PRC_VISIONL) == false) return; + var dlg = UTIL.MsgQ("LEFT-QR코드 검증을 취소할까요?"); + if (dlg != DialogResult.Yes) return; + + PUB.flag.set(eVarBool.FG_PRC_VISIONL, false, "CANCEL"); + PUB.flag.set(eVarBool.FG_PORTL_ITEMON, false, "CANCEL"); + PUB.flag.set(eVarBool.FG_END_VISIONL, false, "CANCEL"); + + /// PUB.sm.seq.Clear(eSMStep.RUN_VISION0); + //PUB.sm.seq.UpdateTime(eSMStep.RUN_COM_VS0); + PUB.log.Add(string.Format("LEFT-QR검증({0}) 취소 JGUID={1}", "L", PUB.Result.ItemDataL.guid)); + } + + private void button16_Click(object sender, EventArgs e) + { + if (PUB.flag.get(eVarBool.FG_PRC_VISIONR) == false) return; + var dlg = UTIL.MsgQ("RIGHT-QR코드 검증을 취소할까요?"); + if (dlg != DialogResult.Yes) return; + + PUB.flag.set(eVarBool.FG_PRC_VISIONR, false, "CANCEL"); + PUB.flag.set(eVarBool.FG_PORTR_ITEMON, false, "CANCEL"); + PUB.flag.set(eVarBool.FG_END_VISIONR, false, "CANCEL"); + + //PUB.sm.seq.Clear(eSMStep.RUN_VISION2); + //PUB.sm.seq.UpdateTime(eSMStep.RUN_COM_VS2); + PUB.log.Add(string.Format("RIGHT-QR검증({0}) 취소 JGUID={1}", "R", PUB.Result.ItemDataR.guid)); + } + + private void button8_Click(object sender, EventArgs e) + { + //왼쪽 -5mm + var pos = MOT.GetLMPos(eLMLoc.READY); + var vel = AR.SETTING.Data.MoveYForPaperVaccumeVel; + var acc = AR.SETTING.Data.MoveYForPaperVaccumeAcc; + MOT.Move(eAxis.PL_MOVE, pos.Position + AR.SETTING.Data.MoveYForPaperVaccumeValue, vel, acc, false, false, false); + } + + private void button14_Click(object sender, EventArgs e) + { + //왼쪽 +5mm + var pos = MOT.GetLMPos(eLMLoc.READY); + MOT.Move(eAxis.PL_MOVE, pos.Position, 50, 200, false, false, false); + } + + private void button15_Click_1(object sender, EventArgs e) + { + //오른쪽 -5mm + var pos = MOT.GetRMPos(eRMLoc.READY); + var vel = AR.SETTING.Data.MoveYForPaperVaccumeVel; + var acc = AR.SETTING.Data.MoveYForPaperVaccumeAcc; + MOT.Move(eAxis.PR_MOVE, pos.Position + AR.SETTING.Data.MoveYForPaperVaccumeValue, vel, acc, false, false, false); + } + + private void button16_Click_2(object sender, EventArgs e) + { + //오른쪽 +5mm + var pos = MOT.GetRMPos(eRMLoc.READY); + MOT.Move(eAxis.PR_MOVE, pos.Position, 50, 200, false, false, false); + } + + private void button17_Click(object sender, EventArgs e) + { + var cur = DIO.GetIOOutput(eDOName.LEFT_CONV); + DIO.SetOutput(eDOName.LEFT_CONV, !cur); + } + + private void button19_Click(object sender, EventArgs e) + { + var cur = DIO.GetIOOutput(eDOName.RIGHT_CONV); + DIO.SetOutput(eDOName.RIGHT_CONV, !cur); + } + + private void button20_Click(object sender, EventArgs e) + { + var cur = DIO.GetIOOutput(eDOName.L_CYLDN); + if (cur == false) + { + //내려도되는지 검사해야한다. + if(PUB.mot.IsHomeSet((int)eAxis.PL_MOVE)) + { + var pos = MOT.GetLMPos(eLMLoc.READY); + if(MOT.getPositionMatch(pos)) + { + PUB.log.AddE($"대기위치이므로 실린더(L)를 내릴 수 없습니다"); + } + } + } + DIO.SetOutput(eDOName.L_CYLDN, !cur); + } + + private void button21_Click(object sender, EventArgs e) + { + var cur = DIO.GetIOOutput(eDOName.R_CYLDN); + if (cur == false) + { + //내려도되는지 검사해야한다. + if (PUB.mot.IsHomeSet((int)eAxis.PR_MOVE)) + { + var pos = MOT.GetRMPos(eRMLoc.READY); + if (MOT.getPositionMatch(pos)) + { + PUB.log.AddE($"대기위치이므로 실린더(R)를 내릴 수 없습니다"); + } + } + } + DIO.SetOutput(eDOName.R_CYLDN, !cur); + } + } +} diff --git a/Handler/Project/Dialog/Quick_Control.cs.resx b/Handler/Project/Dialog/Quick_Control.cs.resx new file mode 100644 index 0000000..bd8b88b --- /dev/null +++ b/Handler/Project/Dialog/Quick_Control.cs.resx @@ -0,0 +1,380 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + AAABAAMAMDAAAAEAIACoJQAANgAAACAgAAABACAAqBAAAN4lAAAQEAAAAQAgAGgEAACGNgAAKAAAADAA + AABgAAAAAQAgAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgaZsA5C1 + fwOTuIIDkbaAA5K3gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3 + gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3 + gQOSt4EDkreBA5G2gAOTuIIDkLV/A4GmbAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAfaJmBAAAAAB6n2IdfaJmkoescoeIrnSDh61zhIitc4SIrXOEiK1zhIitc4SIrXOEiK1zhIit + c4SIrXOEiK1zhIitc4SIrXOEiK1zhIitc4SIrXOEiK1zhIitc4SIrXOEiK1zhIitc4SIrXOEiK1zhIit + c4SIrXOEiK1zhIitc4SIrXOEiK1zhIitc4SIrXOEiK1zhIetc4SIrnSDh6xyh32iZpJ6n2IdAAAAAH2i + ZgQAAAAAAAAAAAAAAAAAAAAAiKx0BwAAAACApWk1ia52/6DElP+kyJn9osaW/qLGl/+ixpf/osaX/6LG + l/+ixpf/osaX/6LGl/+ixpf/osaX/6LGl/+ixpf/osaX/6LGl/+ixpf/osaX/6LGl/+ixpf/osaX/6LG + l/+ixpf/osaX/6LGl/+ixpf/osaX/6LGl/+ixpf/osaX/6LGl/+ixpf/osaX/6LGlv6kyJn9oMSU/4mu + dv+ApWk1AAAAAIisdAcAAAAAAAAAAAAAAAAAAAAAl7uIBgAAAACIrXQrmr6M47/ivf3E58P8weS/+sLk + wPvC5MD7wuTA+8LkwPvC5MD7wuTA+8LkwPvC5MD7wuTA+8LkwPvC5MD7wuTA+8LkwPvB5MD7wuTA+8Lk + wPvC5MD7wuTA+8LkwPvC5MD7wuTA+8LkwPvC5MD7wuTA+8LkwPvC5MD7wuTA+8LkwPvC5MD7wuTA+8Hk + v/rE58P8v+K9/Zq+jOOIrXQrAAAAAJe7iAYAAAAAAAAAAAAAAAAAAAAAlLiEBgAAAACHq3Itl7uH67nc + tf++4bz+u964/bzfuf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzf + uf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzf + uf6837n+vN+5/rveuP2+4bz+udy1/5e7h+uHq3ItAAAAAJS4hAYAAAAAAAAAAAAAAAAAAAAAlLiEBgAA + AACHq3Isl7uI67rdtv+/4r3/vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzf + uf694Lr+vN+5/r3guv694Lr+vN+5/rzfuf694Lr+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzf + uf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJS4hAYAAAAAAAAAAAAA + AAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/73guv+94Lr/veC6/73g + uv+837n/veC6/73guv+73rf/weO//7ndtf+z163/weTA/7zfuf+837n/veC6/7zfuf+94Lr/veC6/73g + uv+94Lr/veC6/73guv+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5 + hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/73g + uv+94Lr/veC6/7zfuf+94Lr/vN+5/7veuP/C5MH/stet/6bHm/+oxpz/qc6h/7/ivf++4bz/u964/73g + uv+837n/veC6/73guv+94Lr/veC6/73guv+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7 + iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3g + uv+94Lr/veC6/73guv+94Lr/vN+5/73guv+837n/vd+5/8Djvv+02bD/p8ic/8LTt//R3cn/q8ef/67R + p/+94bv/v+K9/7veuP+94Lr/vN+5/73guv+94Lr/veC6/73guv+94Lr/veC6/73guv+94Lr/veC6/7zf + uf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rd + tv+/4r3/vN+5/r3guv+94Lr/veC6/73guv+837n/veC6/7zfuf+94Lr/vuG8/7fasv+mx5v/xte8//b4 + 9P/9/f3/3ObW/6zHoP+u0qf/veG7/77hvP+837n/veC6/73guv+94Lr/veC6/73guv+94Lr/veC6/73g + uv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAA + AACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/73guv+94Lr/vN+5/73guv++4bz/uNu0/6XH + mv/I2b7/9Pfy/////////////f39/9zm1v+tyKD/rtGm/7/ivf+94Lr/vN+5/7zfuf+94Lr/veC6/73g + uv+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAA + AAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/7zfuf+94Lr/u964/8Hj + v/+22bH/o8SX/83exv/2+fX///////39/P/+/f3///////7+/f/h69z/rsmh/6nNn//C5cH/vN+4/7zf + uf+94Lr/vN+5/73guv+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5 + hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/73g + uv+837j/wuTA/7LXrf+nx5z/zNvE//b49P//////+/v6/8bWvP+uxaH/7vLr//7+/v/+////4Oja/7LK + pv+ozJ//wuXB/73guv+837n/veC6/7zfuf+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7 + iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3g + uv+94Lr/vN+5/7zfuf++4Lv/t9uz/6rLoP/C1Lj//Pz7///////4+ff/zNvF/6fInP+kyJr/uM6t/+zw + 6P/+/v7///7//+Do2v+yy6f/qc2h/7/ivf++4bz/u964/73guv+837n/veC6/73guv+94Lr/veC6/7zf + uf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rd + tv+/4r3/vN+5/r3guv+94Lr/vN+5/7zfuf++4Lv/t9uz/6rKn//C07j//v7+//z8+//N28T/qMec/7ba + sv/B47//p8qd/7nOrv/q8Of///////7+/v/g6dv/rcih/63Rpf+94bv/v+K9/7veuP+94Lr/vN+5/73g + uv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAA + AACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/73guv+73rj/wuXB/7HVq/+pyJ7/z97I/9Pg + zf+ryZ//stas/8LkwP+94Lr/vuG8/6PGmP+90rT/6/Dn///////8/fv/3+rb/6/Ko/+u0ab/vOC5/7/h + vP+837n/veC6/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAA + AAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/7zfuf+94Lr/u964/7/j + vf+53LX/o8SY/6PFmP+53LX/wOO+/7veuP+837n/veC6/8Djvv+lyZv/uc+v/+rv5////////f79/+bs + 4f+tx6H/rNCl/8Djvv+837n/vN+5/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5 + hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/73g + uv+94Lr/vN+5/73guv+84Lr/ut22/7rdtv+84Lr/veC6/7zfuf+837n/veC6/73guv+/4rz/p8ue/7bO + q//r8ej///////7+/v/l7OH/ssun/6jNoP/B47//vN+5/7zfuf+94Lr/veC6/7zfuf6/4r3/ut22/5e7 + iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlLiEBgAAAACHq3Itl7uI67rdtv+/4r3/vN+5/r3g + uv+94Lr/veC6/73guv+837n/veC6/7zfuf+94Lr/vuG8/77hvP+94Lr/vN+5/73guv+94Lr/vN+5/7zf + uf+/4bz/vOC5/6jLnv+zy6j/7/Ps///////09vL/tcup/6PImf/C5MD/vN+5/7zfuf+94Lr/veC6/7zf + uf6/4r3/ut22/5e7iOuHq3ItAAAAAJS4hAYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3MsmLuI57rd + tv+/4r3/vN+5/r3guv+94Lr/veC6/73guv+94Lr/vN+5/73guv+837n/vN+5/7zfuf+837n/veC6/7zf + uf+837n/veC6/73guv+73rj/weO//7ndtf+qzKH/uc6t/9bhzv/A07b/sM+n/7fbs/++4Lv/vN+5/7zf + uf+94Lr/veC6/7zfuf6/4r3/ut22/5i7iOeHq3MsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAk7eDBgAA + AACGqnEwlbmG9rrdtv+/4r3+vN+5/r3guv+94Lr/veC6/73guv+94Lr/veC6/73guv+94Lr/veC6/73g + uv+94Lr/veC6/73guv+94Lr/veC6/7zfuf+94Lr/u963/8Djvv+94Lr/qMqe/6vHnv+nyJv/ttqy/8Hk + v/+83rj/veC6/73guv+94Lr/veC6/7zfuf6/4r3+ut22/5W5hvaGqnEwAAAAAJO3gwYAAAAAAAAAAAAA + AAAAAAAAkraCBwAAAACFqnI1lLiF/7nctf+/4r39vN+4/r3guv+94Lr/veC6/73guv+94Lr/veC6/73g + uv+94Lr/veC6/73guv+837n/veC6/7zfuf+837n/vN+5/7zfuf+837n/veC6/7veuP++4Lv/wOK+/7HV + q/+94Lr/v+K9/7veuP+94Lr/vN+5/73guv+94Lr/veC6/7zfuP6/4r39udy1/5S4hf+FqnI1AAAAAJK2 + ggcAAAAAAAAAAAAAAAAAAAAAlLmFBwAAAACIrXU0lruI/7ndtv+/4r39vN+5/r3guv+94Lr/veC6/73g + uv+94Lr/veC6/73guv+94Lr/veC6/73guv+84Lr/vN+5/73guv+94Lr/veC6/73guv+94Lr/veC6/73g + uv+837n/vN+5/73gu/+837n/vN+5/73guv+837n/veC6/73guv+94Lr/veC6/7zfuf6/4r39ud22/5a7 + iP+IrXU0AAAAAJS5hQcAAAAAAAAAAAAAAAAAAAAAlLmFBwAAAACHrXU0lruI/7ndtv+/4r39vN+5/r3g + uv+94Lr/veC6/73guv+94Lr/veC6/73guv+94Ln/veC6/73guv+837n/vN+5/7zfuf+94Lv/vuG8/77h + vP+94Lv/vN+5/7zfuf+837n/veC6/73guv+94Lr/vN+5/73guv+94Lr/veC6/73guv+94Lr/veC6/7zf + uf6/4r39ud22/5a7iP+HrXU0AAAAAJS5hQcAAAAAAAAAAAAAAAAAAAAAk7iEBwAAAACHrXU0lruH/7nd + tv+/4r39vN+5/r3guv+94Lr/veC6/73guv+94Lr/veC6/7zfuf+94Lr/vN+5/7zfuf+837n/weS//7zf + uf+sz6P/oMWW/6DFlv+sz6T/vN+5/8Hkv/+837n/vN+5/7zfuf+94Lr/veC6/7zfuf+94Lr/veC6/73g + uv+94Lr/veC6/7zfuf6/4r39ud22/5a7h/+HrXU0AAAAAJO4hAcAAAAAAAAAAAAAAAAAAAAAlLmFBwAA + AACHrXU0lruH/7ndtv+/4r39vN+5/r3guv+94Lr/veC6/73guv+94Lr/veC6/73guv+837n/veC6/77h + u/+63bf/qMyg/5vBkP+awpD/mMGP/5fBj/+awpH/m8GQ/6jMn/+63rf/vuG7/73guv+837n/veC6/73g + uv+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r39ud22/5a7h/+HrXU0AAAAAJS5hQcAAAAAAAAAAAAA + AAAAAAAAlLmFBwAAAACHrXU0lruH/7ndtv+/4r39vN+5/r3guv+94Lr/veC6/73guv+94Lr/vN+5/7zf + uf+837n/veC5/7rdtv+kyJr/krmF/5G7h/+ZxJL/n8qa/57Kmv+ZxJL/kbqG/5K5hf+kyZr/ut23/7zg + uf+84Ln/vN+5/7zfuf+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r39ud22/5a7h/+HrXU0AAAAAJS5 + hQcAAAAAAAAAAAAAAAAAAAAAk7iEBwAAAACHrXU0lruH/7nctf+/4r39u9+4/rzfuf+837n/vN+5/7zf + uf+837n/vN+5/7zfuP++4bv/vN+5/6XJm/+QuIL/mMOR/6POoP+eyZn/nciY/57ImP+eyZn/o86g/5jD + kf+QuIP/psmd/7zfuf++4bv/vN+4/7zfuf+837n/vN+5/7zfuf+837n/vN+5/7vfuP6/4r39udy1/5a7 + h/+HrXU0AAAAAJO4hAcAAAAAAAAAAAAAAAAAAAAAlLmFBwAAAACIrXU0lruI/7rdtv/A4779vN+5/r3g + uv+94Lr/veC6/73guv+94Lr/veC6/73guv/A4r7/uNu0/4+1gP+Yw5H/oMyd/53Hl/+dyJj/nciY/53I + mP+dyJj/nceX/6DMnf+Yw5H/j7WA/7nbtf/A4r7/vOC5/73guv+94Lr/veC6/73guv+94Lr/veC6/7zf + uf7A4779ut22/5a7iP+IrXU0AAAAAJS5hQcAAAAAAAAAAAAAAAAAAAAAlLmGBwAAAACIrnY0l7yJ/7ve + uP/B5MD9veG7/r7hvP++4bz/vuG8/77hvP++4bz/vuG7/8Djvv+837n/qc6h/5S9iv+axZT/n8qb/53I + mP+eyZn/nsmZ/57Jmf+eyZn/nciY/5/Km/+axZT/lLyJ/6rOof+837n/wOO+/77hu/++4bz/vuG8/77h + vP++4bz/vuG8/77hu/7B5MD9u964/5e8if+IrnY0AAAAAJS5hgcAAAAAAAAAAAAAAAAAAAAAh6tyBwAA + AACApGk1iKx0/53BkP+hxZX9n8OT/6DElP+gxJT/oMSU/6DElP+gxJT/n8OT/6LGl/+avo3/i7F7/5nE + kv+eyZn/nciY/53ImP+dyJj/nsmZ/57Jmf+dyJj/nciY/53ImP+eyZn/mcOS/4uxev+avo3/osaX/5/D + k/+gxJT/oMSU/6DElP+gxJT/oMSU/5/Dk/+gxJX9ncGQ/4isdP+ApGk1AAAAAIercwcAAAAAAAAAAAAA + AAAAAAAAia12BgAAAAB9oWYtjK957qrOov+iyZr+mMCO/pjBj/6YwY//mMGP/5jBj/+YwY//mMGP/5nC + kP+Wv4z/kruI/5zHl/+eyZn/nciY/53ImP+eyZn/nsmZ/57Jmf+eyZn/nciY/53ImP+eyZr/nMiX/5K7 + h/+Wv4z/mcKQ/5jBj/+YwY//mMGP/5jBj/+YwY//mMGP/pjBjv6jypr+qs6i/4yvee59oWUtAAAAAImt + dQYAAAAAAAAAAAAAAAAAAAAAjbJ8BQAAAAB1mlwhkraCwr/ivf613LT/os2e/Z7Kmv+gy5z/n8ub/5/L + m/+fy5v/n8ub/5/Lm/+gy5z/ocye/57Jmf+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+dyJj/nsmZ/6HMnv+gy5z/n8ub/5/Lm/+fy5v/n8ub/5/Lm/+gy5z/nsqa/6LNnv223LT/v+K9/pK2 + gcJ1mlwhAAAAAI6yfAUAAAAAAAAAAAAAAAAAAAAAgadsAwAAAABTfC8Phqxzfq7Sp/W427T/p8+i/JrG + lf6eyZn/nciY/53ImP+dyJj/nciY/53ImP+dyJj/nciY/53ImP+eyZn/nciY/57JmP+eyZn/nsmZ/57J + mf+eyZn/nsmY/53ImP+eyZn/nciY/53Il/+dyJj/nciY/53ImP+dyJj/nciY/53ImP+eyZn/msaV/qfP + ovy427P/rtGm9YetdH1UfDIPAAAAAIKobQMAAAAAAAAAAAAAAAAAAAAAAAAAANT33wEAAAAAfKFlIpe7 + itm32bH/r9ar/ZvGlf6eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/m8aV/q/Wq/232bH/lruH2XimZiEAAAAA1efOAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIyw + ewMAAAAAdZpeComtd7S016/9tty0/6HLnP2dyJj+nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+dyJj+ocuc/bfdtP+01679ia11tXWaWwoAAAAAjLB5AwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAIOpcAIAAAAAWYE6BX6kaXyv0afuut23/6nRpfubx5b/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+bx5b/qdGk+7rdtv+u0abugKRqeluAOwUAAAAAhalxAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHebWySbv47GtNau/7LYsPubx5b+nsmZ/p7I + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciZ/57Jmf6bx5b+stiv+7PWrf+bv43FeppfIwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMs3wBAAAAAAAAAACDq3GgrNGl/7vg + uf6gypv9nsmZ/53ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciY/57Jmf+gypv9u+C5/q3Q + pf+FqXCfAAAAAAAAAACOsnwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIq3IBAAAAAAAA + AAB7oWR0qM2f6Lzguf+q0aX8nciX/53ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciY/53I + l/+q0qX8u+C5/6nNoOd8oGZzAAAAAAAAAACIqnMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABojlAoncGRuLPWrf+02rH6nMeX/pzIl/6dyJj+nciY/p3ImP6dyJj+nciY/p3I + mP6dyJj+nciY/p3ImP6dyJj+nciY/p3ImP6dyJj+nciY/p3ImP6dyJj+nciY/p3ImP6dyJj+nciY/p3I + mP6dyJj+nMiX/pzHl/602rH6s9at/53BkbhpjEsnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJm6iAIAAAAAh6x0f6bJm/+74Lr8oMqc/pvHlv6bx5b+nMeW/pzH + lv6cx5b+nMeW/pzHlv6cx5b+nMeW/pzHlv6cx5b+nMeW/pzHlv6cx5b+nMeW/pzHlv6cx5b+nMeW/pzH + lv6cx5b+nMeW/pzHlv6bx5b+m8eW/qDLnP674Lr8psmb/4esdH8AAAAAmbqIAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIisdQIAAAAAd5xfZaHElebF6MX8u9+5+brf + uPq637j6ut+4+rrfuPq637j6ut+4+rrfuPq637j6ut+4+rrfuPq637j6ut+4+rrfuPq637j6ut+4+rrf + uPq637j6ut+4+rrfuPq637j6ut+4+rrfuPq637j6ut+4+rvgufnF6MX8ocSV5necXmQAAAAAiKx0AgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH+obAEAAAAAapRRJpG3 + gamixpb/qMuf/KnMn/6py5//qcuf/6nLn/+py5//qcuf/6nLn/+py5//qcuf/6nLn/+py5//qcuf/6nL + n/+py5//qcuf/6nLn/+py5//qcuf/6nLn/+py5//qcuf/6nLn/+py5//qcyf/qjLn/yixpb/kbaBqGuS + UCUAAAAAgKdsAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACet4sCAAAAAH2lZ0KGq3KVjrN+ho6yfYiNsn2IjrJ9iI6yfYiOsn2IjrJ9iI6yfYiOsn2IjrJ9iI6y + fYiOsn2IjrJ9iI6yfYiOsn2IjrJ9iI6yfYiOsn2IjrJ9iI6yfYiOsn2IjrJ9iI6yfYiNsn2IjrJ9iI6z + foaGq3KVfqRoQgAAAACWuoQCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIatcgGQtX8DmLyKA5i8igOXu4kDmLyKA5i8 + igOYvIoDmLyKA5i8igOYvIoDmLyKA5i8igOYvIoDmLyKA5i8igOYvIoDmLyKA5i8igOYvIoDmLyKA5i8 + igOYvIoDmLyKA5i8igOXu4kDmLyKA5i8igOQtX8DhqxzAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///////wAA////////AAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgA + AAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAf + AAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgA + AAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAf + AAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA/AAAAAA/AAD8AAAAAD8AAPwA + AAAAPwAA/gAAAAB/AAD+AAAAAH8AAP4AAAAAfwAA/wAAAAD/AAD/AAAAAP8AAP+AAAAB/wAA/4AAAAH/ + AAD/gAAAAf8AAP/AAAAD/wAA////////AAD///////8AACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/pGgBAAAAAHugZE6DqG1jhKpvW4Spbl2EqW5dhKluXYSp + bl2EqW5dhKluXYSpbl2EqW5dhKluXYSpbl2EqW5dhKluXYSpbl2EqW5dhKluXYSpbl2EqW5dhKluXYSp + bl2EqW5dhKpvW4OobWN7oGROAAAAAH+kaAEAAAAAAAAAAJq+jQQAAAAAjbF7vqjLnv+s0KP7qs6h/qvO + ov+rzqL/q86i/6vOov+rzqL/q86i/6vOov+qzqL/qs6i/6vOov+rzqL/q86i/6vOov+rzqL/q86i/6vO + ov+rzqL/q86i/6rOof6s0KP7qMue/42xe74AAAAAmr6NBAAAAAAAAAAArM+jBAAAAACZvYqtveC6/8Ll + wfjA4777weO//MDjv/vA47/7weO/+8Djv/vB47/7wOO++8Hjv/vA4777weO/+8Hjv/vB47/7wOO/+8Dj + v/vA47/7wOO/+8Djv/vB47/8wOO++8Llwfi94Lr/mb2KrQAAAACsz6MEAAAAAAAAAACny54EAAAAAJa6 + hrK427P/veC6+7ret/673rj+u964/rveuP673rf+u964/rrdt/6937r+u9+4/r3guv673rj+u963/rve + t/673rj+u964/rveuP673rj+u964/rveuP663rf+veC6+7jbs/+WuoayAAAAAKfLngQAAAAAAAAAAKjM + nwQAAAAAlrqHsbnctf++4bz7vN+5/r3guv+94Lr+veC6/7zfuf+73rj/vuG8/7ndtv+oyp7/rdCl/77i + vP+837r/vN+5/7zfuv+94Lr/veC6/73guv+94Lr+veC6/7zfuf6+4bz7udy1/5a6h7EAAAAAqMyfBAAA + AAAAAAAAqMyfBAAAAACWuoexudy0/77hu/u837n+veC6/7zfuf6837n+u964/r/hvP643bX+qsqg/tXf + zf7C1Lj+q8+j/r/ivf6837n+vN+5/r3guv6837n+vN+5/rzfuf694Lr/vN+5/r7hu/u53LT/lrqHsQAA + AACozJ8EAAAAAAAAAACozJ8EAAAAAJa6h7G53LT/vuG8+7zfuf694Lr/vN+5/rveuP+/4bz/uNy1/6vL + of/b5dX///////n6+f/C1bn/q8+j/7/ivf+837n/vN+5/73guv+94Lr/vN+5/r3guv+837n+vuG8+7nc + tP+WuoexAAAAAKjMnwQAAAAAAAAAAKjMnwQAAAAAlrqHsbnctP++4bz7vN+5/r3guv+837j+vuG8/7jc + tf+qyaD/3+nb///////n7eP/9ff0//3+/f/F17v/q86h/7/jvf+837n/vN+5/7zfuf+94Lr+veC6/7zf + uf6+4bz7udy0/5a6h7EAAAAAqMyfBAAAAAAAAAAAqMyfBAAAAACWuoexudy0/77hu/u837n+vN+5/73f + uv663rf/q8uh/+Ho2///////4ure/6TEmf+50K//9/j1//39/f/G1r3/q86j/7/ivf+837r/vN+4/7zf + uf694Lr/vN+5/r7hvPu53LT/lrqHsQAAAACozJ8EAAAAAAAAAACozJ8EAAAAAJa6h7G53LT/vuG7+7zf + uf6837n/vd+6/rret/+qyaD/5uzh/+ju5P+ryaD/u9+5/7DUqv+5z6//+Pn3//39/P/D1rr/q8+j/77i + vP+837n/vN+5/r3guv+837n+vuG8+7nctP+WuoexAAAAAKjMnwQAAAAAAAAAAKjMnwQAAAAAlrqHsbnc + tP++4bz7vN+5/r3guv+837j+vuG7/7jdtf+tzKT/rsyl/7ndtf++4Lv/v+K9/6/TqP+70bH/9ffz//3+ + /f/H177/rM+k/7/ivP+83rj+veC6/7zfuf6+4bz7udy0/5a6h7EAAAAAqMyfBAAAAAAAAAAAqMyfBAAA + AACWuoexudy0/77hu/u837n+veC6/7zfuf673rj/vuG7/7ndtv+53bb/vuG7/7veuP+837n/wOO+/67T + qP+40K7/9vn1///////A0rb/q9Ck/8Djvv673rj/vN+5/r7hu/u53LT/lrqHsQAAAACozJ8EAAAAAAAA + AACpzJ8EAAAAAJe6h6+53LX/vuG8+7zfuf694Lr/vN+5/rzfuf+837j/veC6/73gu/+837j/vN+5/7zf + uf+83rj/wOO+/63Spv+90rP/3+fY/7jRr/+z167/vuG8/rvfuP+837n+vuG8+7nctf+XuoevAAAAAKnM + nwQAAAAAAAAAAKfKngQAAAAAlLiFu7jbtP++4bv6vN+5/r3guv+94Lr+vN+5/7zguv+837n/vN+5/73f + uv+837n/vN+4/7veuP+73rj/wOO+/7LUq/+oyJz/tdiw/7/ivf+73rj+veC6/7zfuf6+4bv6uNu0/5S4 + hbsAAAAAp8qeBAAAAAAAAAAApsudBAAAAAGUuYbBuNu0/77hu/q837n/veC6/rzfuf694Lr/veC5/73g + uv+84Lr/u964/7zfuf++4bz/vuG8/7zfuf+73rj/vuG8/7vfuf++4bv/u964/7zfuf694Lr+vN+5/77h + u/q427T/lLmGwQAAAAGmy50EAAAAAAAAAACny50EAAAAAJW7h8G43LT/vuG8+rzfuf+94Lr+vN+5/rzf + uf+837n/vN+5/7veuP+/4rz/vuC7/7XYsP+12LD/veC7/7/ivf+73rj/vd+6/7zfuf+837n/veC6/r3g + uv6837n/vuG8+rjctP+Vu4fBAAAAAKfLnQQAAAAAAAAAAKfLnQQAAAAAlbqGwbjctP++4bz6vN+5/73g + uv694Lr+veC6/7zfuf+837n/vuG7/7LWrf+ix5j/mcGP/5nBkP+ix5j/stas/77hu/+837n/vN+5/7zf + uf+94Lr+veC6/rzfuf++4bz6uNy0/5W6hsEAAAAAp8udBAAAAAAAAAAAp8ucBAAAAACVuobBt9uz/73g + u/q73rj/vN+4/rzfuP673rj/u963/73guv+u0qf/k7uH/5XAjv+dyJj/nciY/5XAjf+Tu4f/r9Ko/73g + uv+73rf/u964/7zfuP6837j+u964/73gu/q327P/lbqGwQAAAACny5wEAAAAAAAAAACozKAEAAAAAJa7 + iMG73rf/wOO/+r7hu/++4bz/vuG8/r7hu//A477/vN64/5O6h/+axpX/oMuc/53Hl/+dx5f/oMuc/5rG + lf+Uuof/vN65/8Djvv++4bv/vuG8/r7hvP++4bv/wOO/+rvet/+Wu4jBAAAAAKjMnwQAAAAAAAAAAKDE + lAQAAAABkbWBwa/SqP+22bH6tNeu/7TXr/6016//tNeu/7bZsf+jx5n/lb+N/57Jmv+cx5f/nciY/53I + mP+cx5f/nsma/5W/jP+jx5n/ttmx/7TXrv+016//tNev/rTXrv+22bH6r9Ko/5G2gcEAAAABn8SVBAAA + AAAAAAAAl7uIBAAAAACKrXe5ocaX/5rBkPqYv43+mMCO/5jAjf6YwI7/mMCO/5C4hP+bxpb/nciY/53I + mP+dyJj/nciY/53ImP+dyJj/m8eW/5C4g/+YwI7/mMCO/5jAjf6YwI7/mL+N/prCkPqhxpf/iq13uQAA + AACXu4kEAAAAAAAAAACny58DAAAAAJC0f4i43LX/qNGl+5zIl/6eypr/ncmZ/p3Jmf+eyZn/n8qc/53I + mP+dyJj/nsmY/57Jmf+eyZn/nsmY/53ImP+dyJj/n8qb/57Jmf+dyZn/ncmZ/p7Kmv+cyJf+qNGl+7nc + tf+QtH6HAAAAAKjMngMAAAAAAAAAAJa7iQEAAAAAdZxeLKfKneix163/m8aV/Z7Imf+dyJj+nciY/53I + mP+dyJj/nciY/53ImP+dyJj/nsmZ/57Jmf+dyJj/nciY/53ImP+dyJj/nciY/53ImP+dyJj+nsiZ/5vG + lf2x163/psmb6HSeXiwAAAAAlryIAQAAAAAAAAAAAAAAAAAAAAAAAAADmLuKvbjctf+hy5z7nMiX/p7J + mf+eyZn+nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/p7J + mf+cyJf+ocuc+7jctf+Yu4m9AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAu924AgAAAACNsntlsdOq/arS + p/yaxpX9nsmZ/p3ImP6dyJj+nciY/p3ImP6dyJj+nciY/p3ImP6dyJj+nciY/p3ImP6dyJj+nciY/p3I + mP6dyJj+nsmZ/prGlf2q0qb8sNOp/I6yfGQAAAAAt9yzAgAAAAAAAAAAAAAAAAAAAACBqG0CAAAAAGWP + Syiix5jntduz/5zHl/yeyJn/nsmZ/p7Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf6eyJn/nMeX/LXbs/+jxpjnZ4xKKAAAAACDp20CAAAAAAAAAAAAAAAAAAAAAHSZ + WwEAAAAABC4AB5q/jZ+12bD/oMqb+5jEk/6bxpX+msaV/prGlf6axpX+msaV/prGlf6axpX+msaV/prG + lf6axpX+msaV/prGlf6axpX+m8aV/pjEk/6gy5v7tdmw/5u/jp4CJgAHAAAAAHSYWwEAAAAAAAAAAAAA + AAAAAAAAAAAAAIqudwIAAAAAfqNoWK7Rpv+027T6pM6g+6fRo/un0KP7p9Cj+6fQo/un0KP7p9Cj+6fQ + o/un0KP7p9Cj+6fQo/un0KP7p9Cj+6fQo/un0KP7pM6g+7TctPqu0ab/fqNoWAAAAACKrncCAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAeaBjAQAAAABnj0wmncGQz6/SqP+v0qf9r9Gn/6/Rp/+v0af/r9Gn/6/R + p/+v0af/r9Gn/6/Rp/+v0af/r9Gn/6/Rp/+v0af/r9Gn/6/Rp/+v0qf9r9Ko/53BkM9njUolAAAAAHqf + YgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8o2Y+iK12Zoywe12Lr3pfjK96X4yv + el+Mr3pfjK96X4yvel+Mr3pfjK96X4yvel+Mr3pfjK96X4yvel+Mr3pfi696X4ywe12IrXZmfaNmPgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///////////gAAAH4AAAB+AAAAfgAAAH4AAAB+AA + AAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AA + AAfwAAAP8AAAD/gAAB/4AAAf+AAAH/wAAD/8AAA///////////8oAAAAEAAAACAAAAABACAAAAAAAAAE + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAH2iZxiGq3E8iK1zNoesczeHrHM3h6xyN4arcTeHrHM3h6xzN4es + czeHrHM3iK1zNoarcTx9omcYAAAAAAAAAACUuIRer9Oo/7TXrvaz1q35s9at+bTXrvm12LD5s9at+bPW + rfmz1q35s9at+bTXrvav06j/lLiEXgAAAAAAAAAAm7+NXbrdtv+/4r77vuG7/r/ivf+737j/stas/73h + u/+/4b3/vuG8/77hvP6/4r77ut22/5u/jV0AAAAAAAAAAJm9i12427P/veC6+73guv623LP+wNq5/ubs + 4f631rH+ud63/r3guv6837n+veC7+7jbs/+ZvYtdAAAAAAAAAACZvYtduNu0/77hvPu43bX+wdq7/u3x + 6f7a5tX+6/Dn/rjWsf653rb+veC6/r3gu/u427T/mb2LXQAAAAAAAAAAmb2LXbjbtP++4bz7uN21/sLa + vP7F3L//rdSn/87gyf/t8er/vNm3/rret/6+4bv7uNu0/5m9i10AAAAAAAAAAJm9i12427T/veC7+73g + uv653bX+uN21/7/ivf+y2K3/z+HJ/9PgzP6z2K/+v+K9+7jbs/+ZvYtdAAAAAAAAAACXvIpjt9uz/77h + u/u837n/veC6/r7gu/++4bv/wOO+/7fbs/+117D+veC6/77hu/u327P/l7yKYwAAAAAAAAAAmL2KZbfa + s/+94Lv7u9+4/73guv663bb/qs+k/6rPo/+73rj/vuG7/rveuP+94Lv7t9qz/5i9imUAAAAAAAAAAJi9 + i2W53LX/wOK++7/hvP+937n+nsWV/5nEk/+ZxJL/nsWV/73fuf6/4bz/wOK++7nctf+YvYtlAAAAAAAA + AACTtoJlp8yf/6fNoPupzqH/oceY/pnEk/+fypr/n8qa/5nEk/+hx5j+qM6h/6fNoPuozJ//k7aCZQAA + AAAAAAAAkbN/NKjOovubx5b/msaV/pvHlv6eyJn+nciY/p3ImP6eyZn+m8eW/prGlf6bx5b/qM6i+5G0 + fjQAAAAAAAAAAAAAAACpzaHBpM2g/53ImPyeyZn+nsmZ/p7Jmf6eyZn+nsmZ/p7Jmf6dyJj8pM2f/6nN + oMEAAAAAAAAAAKvPowMAAAAAn8OTcKnRpf+bx5b8ncmY/p3ImP+dyJj/nciY/53ImP+dyJj+m8eW/KnR + pf+gwpNvAAAAAKvPowOMsXsBAAAAAIKlayKozaDrqc+j/ajOofmozqH6qM6h+qjOofqozqH6qM6h+anP + o/2ozaDqgqVrIgAAAACNsXsBAAAAAAAAAAAAAAAAiq93LZq7ijuauok4mrqJOZq6iTmauok5mrqJOZq6 + iTiau4o7iq53LQAAAAAAAAAAAAAAAP//AADAAwAAwAMAAMADAADAAwAAwAMAAMADAADAAwAAwAMAAMAD + AADAAwAAwAMAAMADAADgBwAA4AcAAP//AAA= + + + \ No newline at end of file diff --git a/Handler/Project/Dialog/RegExPrintRule.Designer.cs b/Handler/Project/Dialog/RegExPrintRule.Designer.cs new file mode 100644 index 0000000..aa002b7 --- /dev/null +++ b/Handler/Project/Dialog/RegExPrintRule.Designer.cs @@ -0,0 +1,451 @@ +namespace Project.Dialog +{ + partial class RegExPrintRule + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RegExPrintRule)); + this.dataSet1 = new Project.DataSet1(); + this.bs = new System.Windows.Forms.BindingSource(this.components); + this.tam = new Project.DataSet1TableAdapters.TableAdapterManager(); + this.ta = new Project.DataSet1TableAdapters.Component_Reel_PrintRegExRuleTableAdapter(); + this.bn = new System.Windows.Forms.BindingNavigator(this.components); + this.bindingNavigatorAddNewItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorCountItem = new System.Windows.Forms.ToolStripLabel(); + this.bindingNavigatorDeleteItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMoveFirstItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMovePreviousItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorPositionItem = new System.Windows.Forms.ToolStripTextBox(); + this.bindingNavigatorSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorMoveNextItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMoveLastItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.component_Reel_RegExRuleBindingNavigatorSaveItem = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton1 = new System.Windows.Forms.ToolStripButton(); + this.component_Reel_RegExRuleDataGridView = new System.Windows.Forms.DataGridView(); + this.idDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.seqDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.custCodeDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.descriptionDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.symbolDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.patternDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.groupsDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.isEnableDataGridViewCheckBoxColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.isTrustDataGridViewCheckBoxColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.isAmkStdDataGridViewCheckBoxColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.isIgnoreDataGridViewCheckBoxColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.textBox2 = new System.Windows.Forms.TextBox(); + ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bs)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bn)).BeginInit(); + this.bn.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.component_Reel_RegExRuleDataGridView)).BeginInit(); + this.tableLayoutPanel1.SuspendLayout(); + this.SuspendLayout(); + // + // dataSet1 + // + this.dataSet1.DataSetName = "DataSet1"; + this.dataSet1.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + // + // bs + // + this.bs.DataMember = "Component_Reel_PrintRegExRule"; + this.bs.DataSource = this.dataSet1; + this.bs.Sort = "CustCode,Seq"; + // + // tam + // + this.tam.BackupDataSetBeforeUpdate = false; + this.tam.Component_Reel_CustInfoTableAdapter = null; + this.tam.Component_Reel_PreSetTableAdapter = null; + this.tam.Component_Reel_Print_InformationTableAdapter = null; + this.tam.Component_Reel_PrintRegExRuleTableAdapter = this.ta; + this.tam.Component_Reel_RegExRuleTableAdapter = null; + this.tam.Component_Reel_ResultTableAdapter = null; + this.tam.Component_Reel_SID_ConvertTableAdapter = null; + this.tam.Component_Reel_SID_InformationTableAdapter = null; + this.tam.UpdateOrder = Project.DataSet1TableAdapters.TableAdapterManager.UpdateOrderOption.InsertUpdateDelete; + // + // ta + // + this.ta.ClearBeforeFill = true; + // + // bn + // + this.bn.AddNewItem = this.bindingNavigatorAddNewItem; + this.bn.BindingSource = this.bs; + this.bn.CountItem = this.bindingNavigatorCountItem; + this.bn.DeleteItem = this.bindingNavigatorDeleteItem; + this.bn.Dock = System.Windows.Forms.DockStyle.Bottom; + this.bn.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.bindingNavigatorMoveFirstItem, + this.bindingNavigatorMovePreviousItem, + this.bindingNavigatorSeparator, + this.bindingNavigatorPositionItem, + this.bindingNavigatorCountItem, + this.bindingNavigatorSeparator1, + this.bindingNavigatorMoveNextItem, + this.bindingNavigatorMoveLastItem, + this.bindingNavigatorSeparator2, + this.bindingNavigatorAddNewItem, + this.bindingNavigatorDeleteItem, + this.component_Reel_RegExRuleBindingNavigatorSaveItem, + this.toolStripButton1}); + this.bn.Location = new System.Drawing.Point(0, 536); + this.bn.MoveFirstItem = this.bindingNavigatorMoveFirstItem; + this.bn.MoveLastItem = this.bindingNavigatorMoveLastItem; + this.bn.MoveNextItem = this.bindingNavigatorMoveNextItem; + this.bn.MovePreviousItem = this.bindingNavigatorMovePreviousItem; + this.bn.Name = "bn"; + this.bn.PositionItem = this.bindingNavigatorPositionItem; + this.bn.Size = new System.Drawing.Size(784, 25); + this.bn.TabIndex = 0; + this.bn.Text = "bindingNavigator1"; + // + // bindingNavigatorAddNewItem + // + this.bindingNavigatorAddNewItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorAddNewItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorAddNewItem.Image"))); + this.bindingNavigatorAddNewItem.Name = "bindingNavigatorAddNewItem"; + this.bindingNavigatorAddNewItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorAddNewItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorAddNewItem.Text = "새로 추가"; + // + // bindingNavigatorCountItem + // + this.bindingNavigatorCountItem.Name = "bindingNavigatorCountItem"; + this.bindingNavigatorCountItem.Size = new System.Drawing.Size(27, 22); + this.bindingNavigatorCountItem.Text = "/{0}"; + this.bindingNavigatorCountItem.ToolTipText = "전체 항목 수"; + // + // bindingNavigatorDeleteItem + // + this.bindingNavigatorDeleteItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorDeleteItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorDeleteItem.Image"))); + this.bindingNavigatorDeleteItem.Name = "bindingNavigatorDeleteItem"; + this.bindingNavigatorDeleteItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorDeleteItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorDeleteItem.Text = "삭제"; + // + // bindingNavigatorMoveFirstItem + // + this.bindingNavigatorMoveFirstItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveFirstItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveFirstItem.Image"))); + this.bindingNavigatorMoveFirstItem.Name = "bindingNavigatorMoveFirstItem"; + this.bindingNavigatorMoveFirstItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveFirstItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveFirstItem.Text = "처음으로 이동"; + // + // bindingNavigatorMovePreviousItem + // + this.bindingNavigatorMovePreviousItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMovePreviousItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMovePreviousItem.Image"))); + this.bindingNavigatorMovePreviousItem.Name = "bindingNavigatorMovePreviousItem"; + this.bindingNavigatorMovePreviousItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMovePreviousItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMovePreviousItem.Text = "이전으로 이동"; + // + // bindingNavigatorSeparator + // + this.bindingNavigatorSeparator.Name = "bindingNavigatorSeparator"; + this.bindingNavigatorSeparator.Size = new System.Drawing.Size(6, 25); + // + // bindingNavigatorPositionItem + // + this.bindingNavigatorPositionItem.AccessibleName = "위치"; + this.bindingNavigatorPositionItem.AutoSize = false; + this.bindingNavigatorPositionItem.Font = new System.Drawing.Font("맑은 고딕", 9F); + this.bindingNavigatorPositionItem.Name = "bindingNavigatorPositionItem"; + this.bindingNavigatorPositionItem.Size = new System.Drawing.Size(50, 23); + this.bindingNavigatorPositionItem.Text = "0"; + this.bindingNavigatorPositionItem.ToolTipText = "현재 위치"; + // + // bindingNavigatorSeparator1 + // + this.bindingNavigatorSeparator1.Name = "bindingNavigatorSeparator1"; + this.bindingNavigatorSeparator1.Size = new System.Drawing.Size(6, 25); + // + // bindingNavigatorMoveNextItem + // + this.bindingNavigatorMoveNextItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveNextItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveNextItem.Image"))); + this.bindingNavigatorMoveNextItem.Name = "bindingNavigatorMoveNextItem"; + this.bindingNavigatorMoveNextItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveNextItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveNextItem.Text = "다음으로 이동"; + // + // bindingNavigatorMoveLastItem + // + this.bindingNavigatorMoveLastItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveLastItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveLastItem.Image"))); + this.bindingNavigatorMoveLastItem.Name = "bindingNavigatorMoveLastItem"; + this.bindingNavigatorMoveLastItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveLastItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveLastItem.Text = "마지막으로 이동"; + // + // bindingNavigatorSeparator2 + // + this.bindingNavigatorSeparator2.Name = "bindingNavigatorSeparator2"; + this.bindingNavigatorSeparator2.Size = new System.Drawing.Size(6, 25); + // + // component_Reel_RegExRuleBindingNavigatorSaveItem + // + this.component_Reel_RegExRuleBindingNavigatorSaveItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.component_Reel_RegExRuleBindingNavigatorSaveItem.Image = ((System.Drawing.Image)(resources.GetObject("component_Reel_RegExRuleBindingNavigatorSaveItem.Image"))); + this.component_Reel_RegExRuleBindingNavigatorSaveItem.Name = "component_Reel_RegExRuleBindingNavigatorSaveItem"; + this.component_Reel_RegExRuleBindingNavigatorSaveItem.Size = new System.Drawing.Size(23, 22); + this.component_Reel_RegExRuleBindingNavigatorSaveItem.Text = "데이터 저장"; + this.component_Reel_RegExRuleBindingNavigatorSaveItem.Click += new System.EventHandler(this.component_Reel_RegExRuleBindingNavigatorSaveItem_Click); + // + // toolStripButton1 + // + this.toolStripButton1.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image"))); + this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton1.Name = "toolStripButton1"; + this.toolStripButton1.Size = new System.Drawing.Size(66, 22); + this.toolStripButton1.Text = "Refresh"; + this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click); + // + // component_Reel_RegExRuleDataGridView + // + this.component_Reel_RegExRuleDataGridView.AutoGenerateColumns = false; + this.component_Reel_RegExRuleDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.component_Reel_RegExRuleDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.idDataGridViewTextBoxColumn, + this.seqDataGridViewTextBoxColumn, + this.custCodeDataGridViewTextBoxColumn, + this.descriptionDataGridViewTextBoxColumn, + this.symbolDataGridViewTextBoxColumn, + this.patternDataGridViewTextBoxColumn, + this.groupsDataGridViewTextBoxColumn, + this.isEnableDataGridViewCheckBoxColumn, + this.isTrustDataGridViewCheckBoxColumn, + this.isAmkStdDataGridViewCheckBoxColumn, + this.isIgnoreDataGridViewCheckBoxColumn}); + this.component_Reel_RegExRuleDataGridView.DataSource = this.bs; + this.component_Reel_RegExRuleDataGridView.Dock = System.Windows.Forms.DockStyle.Fill; + this.component_Reel_RegExRuleDataGridView.Location = new System.Drawing.Point(0, 0); + this.component_Reel_RegExRuleDataGridView.Name = "component_Reel_RegExRuleDataGridView"; + this.component_Reel_RegExRuleDataGridView.RowTemplate.Height = 23; + this.component_Reel_RegExRuleDataGridView.Size = new System.Drawing.Size(784, 486); + this.component_Reel_RegExRuleDataGridView.TabIndex = 2; + // + // idDataGridViewTextBoxColumn + // + this.idDataGridViewTextBoxColumn.DataPropertyName = "Id"; + this.idDataGridViewTextBoxColumn.HeaderText = "Id"; + this.idDataGridViewTextBoxColumn.Name = "idDataGridViewTextBoxColumn"; + this.idDataGridViewTextBoxColumn.ReadOnly = true; + // + // seqDataGridViewTextBoxColumn + // + this.seqDataGridViewTextBoxColumn.DataPropertyName = "Seq"; + this.seqDataGridViewTextBoxColumn.HeaderText = "Seq"; + this.seqDataGridViewTextBoxColumn.Name = "seqDataGridViewTextBoxColumn"; + // + // custCodeDataGridViewTextBoxColumn + // + this.custCodeDataGridViewTextBoxColumn.DataPropertyName = "CustCode"; + this.custCodeDataGridViewTextBoxColumn.HeaderText = "CustCode"; + this.custCodeDataGridViewTextBoxColumn.Name = "custCodeDataGridViewTextBoxColumn"; + // + // descriptionDataGridViewTextBoxColumn + // + this.descriptionDataGridViewTextBoxColumn.DataPropertyName = "Description"; + this.descriptionDataGridViewTextBoxColumn.HeaderText = "Description"; + this.descriptionDataGridViewTextBoxColumn.Name = "descriptionDataGridViewTextBoxColumn"; + // + // symbolDataGridViewTextBoxColumn + // + this.symbolDataGridViewTextBoxColumn.DataPropertyName = "Symbol"; + this.symbolDataGridViewTextBoxColumn.HeaderText = "Symbol"; + this.symbolDataGridViewTextBoxColumn.Name = "symbolDataGridViewTextBoxColumn"; + // + // patternDataGridViewTextBoxColumn + // + this.patternDataGridViewTextBoxColumn.DataPropertyName = "Pattern"; + this.patternDataGridViewTextBoxColumn.HeaderText = "Pattern"; + this.patternDataGridViewTextBoxColumn.Name = "patternDataGridViewTextBoxColumn"; + // + // groupsDataGridViewTextBoxColumn + // + this.groupsDataGridViewTextBoxColumn.DataPropertyName = "Groups"; + this.groupsDataGridViewTextBoxColumn.HeaderText = "Groups"; + this.groupsDataGridViewTextBoxColumn.Name = "groupsDataGridViewTextBoxColumn"; + // + // isEnableDataGridViewCheckBoxColumn + // + this.isEnableDataGridViewCheckBoxColumn.DataPropertyName = "IsEnable"; + this.isEnableDataGridViewCheckBoxColumn.HeaderText = "IsEnable"; + this.isEnableDataGridViewCheckBoxColumn.Name = "isEnableDataGridViewCheckBoxColumn"; + // + // isTrustDataGridViewCheckBoxColumn + // + this.isTrustDataGridViewCheckBoxColumn.DataPropertyName = "IsTrust"; + this.isTrustDataGridViewCheckBoxColumn.HeaderText = "IsTrust"; + this.isTrustDataGridViewCheckBoxColumn.Name = "isTrustDataGridViewCheckBoxColumn"; + // + // isAmkStdDataGridViewCheckBoxColumn + // + this.isAmkStdDataGridViewCheckBoxColumn.DataPropertyName = "IsAmkStd"; + this.isAmkStdDataGridViewCheckBoxColumn.HeaderText = "IsAmkStd"; + this.isAmkStdDataGridViewCheckBoxColumn.Name = "isAmkStdDataGridViewCheckBoxColumn"; + // + // isIgnoreDataGridViewCheckBoxColumn + // + this.isIgnoreDataGridViewCheckBoxColumn.DataPropertyName = "IsIgnore"; + this.isIgnoreDataGridViewCheckBoxColumn.HeaderText = "IsIgnore"; + this.isIgnoreDataGridViewCheckBoxColumn.Name = "isIgnoreDataGridViewCheckBoxColumn"; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 2; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 122F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.Controls.Add(this.label1, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.label2, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.textBox1, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.textBox2, 1, 1); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 486); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 2; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(784, 50); + this.tableLayoutPanel1.TabIndex = 4; + // + // label1 + // + this.label1.Dock = System.Windows.Forms.DockStyle.Fill; + this.label1.Location = new System.Drawing.Point(3, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(116, 25); + this.label1.TabIndex = 0; + this.label1.Text = "Pattern"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label2 + // + this.label2.Dock = System.Windows.Forms.DockStyle.Fill; + this.label2.Location = new System.Drawing.Point(3, 25); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(116, 25); + this.label2.TabIndex = 0; + this.label2.Text = "Groups"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // textBox1 + // + this.textBox1.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bs, "Pattern", true)); + this.textBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.textBox1.Location = new System.Drawing.Point(125, 3); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(656, 21); + this.textBox1.TabIndex = 1; + // + // textBox2 + // + this.textBox2.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bs, "Groups", true)); + this.textBox2.Dock = System.Windows.Forms.DockStyle.Fill; + this.textBox2.Location = new System.Drawing.Point(125, 28); + this.textBox2.Name = "textBox2"; + this.textBox2.Size = new System.Drawing.Size(656, 21); + this.textBox2.TabIndex = 1; + // + // RegExPrintRule + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(784, 561); + this.Controls.Add(this.component_Reel_RegExRuleDataGridView); + this.Controls.Add(this.tableLayoutPanel1); + this.Controls.Add(this.bn); + this.Name = "RegExPrintRule"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "RegExRule"; + this.Load += new System.EventHandler(this.RegExRule_Load); + ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bs)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bn)).EndInit(); + this.bn.ResumeLayout(false); + this.bn.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.component_Reel_RegExRuleDataGridView)).EndInit(); + this.tableLayoutPanel1.ResumeLayout(false); + this.tableLayoutPanel1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private DataSet1 dataSet1; + private System.Windows.Forms.BindingSource bs; + private DataSet1TableAdapters.TableAdapterManager tam; + private System.Windows.Forms.BindingNavigator bn; + private System.Windows.Forms.ToolStripButton bindingNavigatorAddNewItem; + private System.Windows.Forms.ToolStripLabel bindingNavigatorCountItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorDeleteItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveFirstItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMovePreviousItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator; + private System.Windows.Forms.ToolStripTextBox bindingNavigatorPositionItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator1; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveNextItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveLastItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator2; + private System.Windows.Forms.ToolStripButton component_Reel_RegExRuleBindingNavigatorSaveItem; + private System.Windows.Forms.DataGridView component_Reel_RegExRuleDataGridView; + private System.Windows.Forms.ToolStripButton toolStripButton1; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.TextBox textBox2; + private DataSet1TableAdapters.Component_Reel_PrintRegExRuleTableAdapter ta; + private System.Windows.Forms.DataGridViewTextBoxColumn idDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn seqDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn custCodeDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn descriptionDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn symbolDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn patternDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn groupsDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewCheckBoxColumn isEnableDataGridViewCheckBoxColumn; + private System.Windows.Forms.DataGridViewCheckBoxColumn isTrustDataGridViewCheckBoxColumn; + private System.Windows.Forms.DataGridViewCheckBoxColumn isAmkStdDataGridViewCheckBoxColumn; + private System.Windows.Forms.DataGridViewCheckBoxColumn isIgnoreDataGridViewCheckBoxColumn; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/RegExPrintRule.cs b/Handler/Project/Dialog/RegExPrintRule.cs new file mode 100644 index 0000000..581e02d --- /dev/null +++ b/Handler/Project/Dialog/RegExPrintRule.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class RegExPrintRule : Form + { + public RegExPrintRule() + { + InitializeComponent(); + } + + private void RegExRule_Load(object sender, EventArgs e) + { + + RefreshList(); + } + + private void component_Reel_RegExRuleBindingNavigatorSaveItem_Click(object sender, EventArgs e) + { + this.Validate(); + this.bs.EndEdit(); + this.tam.UpdateAll(this.dataSet1); + + var modelName = PUB.Result.vModel.Title; + PUB.Result.BCDPrintPattern = PUB.GetPrintPatterns(); + PUB.log.Add($"모델프린트패턴로딩:{PUB.Result.BCDPrintPattern.Count}"); + } + + private void RefreshList() + { + try + { + this.ta.Fill(this.dataSet1.Component_Reel_PrintRegExRule); + component_Reel_RegExRuleDataGridView.AutoResizeColumns(); + } + catch (System.Exception ex) + { + System.Windows.Forms.MessageBox.Show(ex.Message); + } + + } + + private void toolStripButton1_Click(object sender, EventArgs e) + { + RefreshList(); + } + + + } +} diff --git a/Handler/Project/Dialog/RegExPrintRule.resx b/Handler/Project/Dialog/RegExPrintRule.resx new file mode 100644 index 0000000..2e8cf1f --- /dev/null +++ b/Handler/Project/Dialog/RegExPrintRule.resx @@ -0,0 +1,222 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 117, 17 + + + 181, 17 + + + 320, 17 + + + 254, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC + pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++ + Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ + /5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA + zpX/v6RC8f/fWzFAjeH/p+Zp/J+QpfW/O0P3f3uq/v/mREPCYTIb6E+Qc//dCPjfk6FDWAM6APnz3w1/ + IPb735qsT7oB3em6YP+CcH2cEekGtCQZ/G+IN/xfE2v8vzLahHQD6AQYGAAkI9iedfyIaQAAAABJRU5E + rkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC + DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC + rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV + i9OIytR3EMNWcJ/BWH8A6j8/bOGFxwXNxYEvGbMQ9XnQ1/K78KfY3/VXzkMY0qFGG2H4RoLGQshJQNbG + 86CNhdrsX9a/uQZTPhQl4rMY4OLofbl3aX7I8uwPC7y/g1YdjyVJuEvT8e1tfwUYteHUxCCfHChDeHmG + QQvokjlOU+PbWA0x3pZnILVVI3uvQyHsbiLnqnGmRCF1NYD8pDhpRxOH7HQoAKZGkFKjceszQbpSrumX + bO+G80MFwKUTxgfgcO/b8D9IpXoFiiMDHIQm0skAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 + wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0 + v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg + UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA + Iu/O/9T+11gVGSSd+C+b9vW/bvA83AYYZt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPu + lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w + 5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f + Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+ + 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 + n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI + N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f + oAc0QjgAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// + h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B + twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA + kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG + WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9 + 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAExJREFUOE9joAr49u3bf1IxVCsEgAWC58Dxh/cf4RhZDETHTNiHaQgpBoAwzBCo + dtINAGGiDUDGyGpoawAxeNSAQWkAORiqnRLAwAAA9EMMU8Daa3MAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + \ No newline at end of file diff --git a/Handler/Project/Dialog/RegExRule.Designer.cs b/Handler/Project/Dialog/RegExRule.Designer.cs new file mode 100644 index 0000000..4633d9a --- /dev/null +++ b/Handler/Project/Dialog/RegExRule.Designer.cs @@ -0,0 +1,469 @@ +namespace Project.Dialog +{ + partial class RegExRule + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RegExRule)); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = 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(); + this.bn = new System.Windows.Forms.BindingNavigator(this.components); + this.bindingNavigatorAddNewItem = new System.Windows.Forms.ToolStripButton(); + this.bs = new System.Windows.Forms.BindingSource(this.components); + this.dataSet1 = new Project.DataSet1(); + this.bindingNavigatorCountItem = new System.Windows.Forms.ToolStripLabel(); + this.bindingNavigatorDeleteItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMoveFirstItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMovePreviousItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorPositionItem = new System.Windows.Forms.ToolStripTextBox(); + this.bindingNavigatorSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorMoveNextItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMoveLastItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.component_Reel_RegExRuleBindingNavigatorSaveItem = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton1 = new System.Windows.Forms.ToolStripButton(); + this.dv1 = new System.Windows.Forms.DataGridView(); + this.dataGridViewCheckBoxColumn1 = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.IsIgnore = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn5 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewCheckBoxColumn2 = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.dataGridViewCheckBoxColumn3 = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.textBox2 = new System.Windows.Forms.TextBox(); + this.ta = new Project.DataSet1TableAdapters.Component_Reel_RegExRuleTableAdapter(); + this.tam = new Project.DataSet1TableAdapters.TableAdapterManager(); + this.toolStripButton2 = new System.Windows.Forms.ToolStripButton(); + ((System.ComponentModel.ISupportInitialize)(this.bn)).BeginInit(); + this.bn.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.bs)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dv1)).BeginInit(); + this.tableLayoutPanel1.SuspendLayout(); + this.SuspendLayout(); + // + // bn + // + this.bn.AddNewItem = this.bindingNavigatorAddNewItem; + this.bn.BindingSource = this.bs; + this.bn.CountItem = this.bindingNavigatorCountItem; + this.bn.DeleteItem = this.bindingNavigatorDeleteItem; + this.bn.Dock = System.Windows.Forms.DockStyle.Bottom; + this.bn.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.bindingNavigatorMoveFirstItem, + this.bindingNavigatorMovePreviousItem, + this.bindingNavigatorSeparator, + this.bindingNavigatorPositionItem, + this.bindingNavigatorCountItem, + this.bindingNavigatorSeparator1, + this.bindingNavigatorMoveNextItem, + this.bindingNavigatorMoveLastItem, + this.bindingNavigatorSeparator2, + this.bindingNavigatorAddNewItem, + this.bindingNavigatorDeleteItem, + this.component_Reel_RegExRuleBindingNavigatorSaveItem, + this.toolStripButton1, + this.toolStripButton2}); + this.bn.Location = new System.Drawing.Point(0, 736); + this.bn.MoveFirstItem = this.bindingNavigatorMoveFirstItem; + this.bn.MoveLastItem = this.bindingNavigatorMoveLastItem; + this.bn.MoveNextItem = this.bindingNavigatorMoveNextItem; + this.bn.MovePreviousItem = this.bindingNavigatorMovePreviousItem; + this.bn.Name = "bn"; + this.bn.PositionItem = this.bindingNavigatorPositionItem; + this.bn.Size = new System.Drawing.Size(967, 25); + this.bn.TabIndex = 0; + this.bn.Text = "bindingNavigator1"; + // + // bindingNavigatorAddNewItem + // + this.bindingNavigatorAddNewItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorAddNewItem.Image"))); + this.bindingNavigatorAddNewItem.Name = "bindingNavigatorAddNewItem"; + this.bindingNavigatorAddNewItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorAddNewItem.Size = new System.Drawing.Size(79, 22); + this.bindingNavigatorAddNewItem.Text = "새로 추가"; + // + // bs + // + this.bs.DataMember = "Component_Reel_RegExRule"; + this.bs.DataSource = this.dataSet1; + this.bs.Sort = "CustCode,Seq"; + this.bs.CurrentChanged += new System.EventHandler(this.bs_CurrentChanged); + // + // dataSet1 + // + this.dataSet1.DataSetName = "DataSet1"; + this.dataSet1.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + // + // bindingNavigatorCountItem + // + this.bindingNavigatorCountItem.Name = "bindingNavigatorCountItem"; + this.bindingNavigatorCountItem.Size = new System.Drawing.Size(27, 22); + this.bindingNavigatorCountItem.Text = "/{0}"; + this.bindingNavigatorCountItem.ToolTipText = "전체 항목 수"; + // + // bindingNavigatorDeleteItem + // + this.bindingNavigatorDeleteItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorDeleteItem.Image"))); + this.bindingNavigatorDeleteItem.Name = "bindingNavigatorDeleteItem"; + this.bindingNavigatorDeleteItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorDeleteItem.Size = new System.Drawing.Size(51, 22); + this.bindingNavigatorDeleteItem.Text = "삭제"; + // + // bindingNavigatorMoveFirstItem + // + this.bindingNavigatorMoveFirstItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveFirstItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveFirstItem.Image"))); + this.bindingNavigatorMoveFirstItem.Name = "bindingNavigatorMoveFirstItem"; + this.bindingNavigatorMoveFirstItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveFirstItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveFirstItem.Text = "처음으로 이동"; + // + // bindingNavigatorMovePreviousItem + // + this.bindingNavigatorMovePreviousItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMovePreviousItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMovePreviousItem.Image"))); + this.bindingNavigatorMovePreviousItem.Name = "bindingNavigatorMovePreviousItem"; + this.bindingNavigatorMovePreviousItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMovePreviousItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMovePreviousItem.Text = "이전으로 이동"; + // + // bindingNavigatorSeparator + // + this.bindingNavigatorSeparator.Name = "bindingNavigatorSeparator"; + this.bindingNavigatorSeparator.Size = new System.Drawing.Size(6, 25); + // + // bindingNavigatorPositionItem + // + this.bindingNavigatorPositionItem.AccessibleName = "위치"; + this.bindingNavigatorPositionItem.AutoSize = false; + this.bindingNavigatorPositionItem.Font = new System.Drawing.Font("맑은 고딕", 9F); + this.bindingNavigatorPositionItem.Name = "bindingNavigatorPositionItem"; + this.bindingNavigatorPositionItem.Size = new System.Drawing.Size(50, 23); + this.bindingNavigatorPositionItem.Text = "0"; + this.bindingNavigatorPositionItem.ToolTipText = "현재 위치"; + // + // bindingNavigatorSeparator1 + // + this.bindingNavigatorSeparator1.Name = "bindingNavigatorSeparator1"; + this.bindingNavigatorSeparator1.Size = new System.Drawing.Size(6, 25); + // + // bindingNavigatorMoveNextItem + // + this.bindingNavigatorMoveNextItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveNextItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveNextItem.Image"))); + this.bindingNavigatorMoveNextItem.Name = "bindingNavigatorMoveNextItem"; + this.bindingNavigatorMoveNextItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveNextItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveNextItem.Text = "다음으로 이동"; + // + // bindingNavigatorMoveLastItem + // + this.bindingNavigatorMoveLastItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveLastItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveLastItem.Image"))); + this.bindingNavigatorMoveLastItem.Name = "bindingNavigatorMoveLastItem"; + this.bindingNavigatorMoveLastItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveLastItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveLastItem.Text = "마지막으로 이동"; + // + // bindingNavigatorSeparator2 + // + this.bindingNavigatorSeparator2.Name = "bindingNavigatorSeparator2"; + this.bindingNavigatorSeparator2.Size = new System.Drawing.Size(6, 25); + // + // component_Reel_RegExRuleBindingNavigatorSaveItem + // + this.component_Reel_RegExRuleBindingNavigatorSaveItem.Image = ((System.Drawing.Image)(resources.GetObject("component_Reel_RegExRuleBindingNavigatorSaveItem.Image"))); + this.component_Reel_RegExRuleBindingNavigatorSaveItem.Name = "component_Reel_RegExRuleBindingNavigatorSaveItem"; + this.component_Reel_RegExRuleBindingNavigatorSaveItem.Size = new System.Drawing.Size(91, 22); + this.component_Reel_RegExRuleBindingNavigatorSaveItem.Text = "데이터 저장"; + this.component_Reel_RegExRuleBindingNavigatorSaveItem.Click += new System.EventHandler(this.component_Reel_RegExRuleBindingNavigatorSaveItem_Click); + // + // toolStripButton1 + // + this.toolStripButton1.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image"))); + this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton1.Name = "toolStripButton1"; + this.toolStripButton1.Size = new System.Drawing.Size(66, 22); + this.toolStripButton1.Text = "Refresh"; + this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click); + // + // dv1 + // + this.dv1.AutoGenerateColumns = false; + this.dv1.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells; + this.dv1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dv1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dataGridViewCheckBoxColumn1, + this.IsIgnore, + this.dataGridViewTextBoxColumn1, + this.dataGridViewTextBoxColumn2, + this.dataGridViewTextBoxColumn5, + this.dataGridViewTextBoxColumn3, + this.dataGridViewTextBoxColumn4, + this.dataGridViewCheckBoxColumn2, + this.dataGridViewCheckBoxColumn3}); + this.dv1.DataSource = this.bs; + dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle4.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle4.Padding = new System.Windows.Forms.Padding(0, 3, 0, 3); + dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dv1.DefaultCellStyle = dataGridViewCellStyle4; + this.dv1.Dock = System.Windows.Forms.DockStyle.Fill; + this.dv1.Location = new System.Drawing.Point(0, 0); + this.dv1.Name = "dv1"; + this.dv1.RowTemplate.Height = 23; + this.dv1.Size = new System.Drawing.Size(967, 557); + this.dv1.TabIndex = 2; + // + // dataGridViewCheckBoxColumn1 + // + this.dataGridViewCheckBoxColumn1.DataPropertyName = "IsEnable"; + this.dataGridViewCheckBoxColumn1.HeaderText = "사용"; + this.dataGridViewCheckBoxColumn1.Name = "dataGridViewCheckBoxColumn1"; + // + // IsIgnore + // + this.IsIgnore.DataPropertyName = "IsIgnore"; + this.IsIgnore.HeaderText = "제외"; + this.IsIgnore.Name = "IsIgnore"; + // + // dataGridViewTextBoxColumn1 + // + this.dataGridViewTextBoxColumn1.DataPropertyName = "Id"; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.dataGridViewTextBoxColumn1.DefaultCellStyle = dataGridViewCellStyle1; + this.dataGridViewTextBoxColumn1.HeaderText = "Id"; + this.dataGridViewTextBoxColumn1.Name = "dataGridViewTextBoxColumn1"; + this.dataGridViewTextBoxColumn1.ReadOnly = true; + // + // dataGridViewTextBoxColumn2 + // + this.dataGridViewTextBoxColumn2.DataPropertyName = "Seq"; + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + this.dataGridViewTextBoxColumn2.DefaultCellStyle = dataGridViewCellStyle2; + this.dataGridViewTextBoxColumn2.HeaderText = "Seq"; + this.dataGridViewTextBoxColumn2.Name = "dataGridViewTextBoxColumn2"; + // + // dataGridViewTextBoxColumn5 + // + this.dataGridViewTextBoxColumn5.DataPropertyName = "Symbol"; + dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + this.dataGridViewTextBoxColumn5.DefaultCellStyle = dataGridViewCellStyle3; + this.dataGridViewTextBoxColumn5.HeaderText = "Symbol"; + this.dataGridViewTextBoxColumn5.Name = "dataGridViewTextBoxColumn5"; + // + // dataGridViewTextBoxColumn3 + // + this.dataGridViewTextBoxColumn3.DataPropertyName = "CustCode"; + this.dataGridViewTextBoxColumn3.HeaderText = "CustCode"; + this.dataGridViewTextBoxColumn3.Name = "dataGridViewTextBoxColumn3"; + // + // dataGridViewTextBoxColumn4 + // + this.dataGridViewTextBoxColumn4.DataPropertyName = "Description"; + this.dataGridViewTextBoxColumn4.HeaderText = "Description"; + this.dataGridViewTextBoxColumn4.Name = "dataGridViewTextBoxColumn4"; + // + // dataGridViewCheckBoxColumn2 + // + this.dataGridViewCheckBoxColumn2.DataPropertyName = "IsTrust"; + this.dataGridViewCheckBoxColumn2.HeaderText = "Trust"; + this.dataGridViewCheckBoxColumn2.Name = "dataGridViewCheckBoxColumn2"; + // + // dataGridViewCheckBoxColumn3 + // + this.dataGridViewCheckBoxColumn3.DataPropertyName = "IsAmkStd"; + this.dataGridViewCheckBoxColumn3.HeaderText = "AmkStd"; + this.dataGridViewCheckBoxColumn3.Name = "dataGridViewCheckBoxColumn3"; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 2; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 122F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.Controls.Add(this.label1, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.label2, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.textBox1, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.textBox2, 1, 1); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 557); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 2; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(967, 179); + this.tableLayoutPanel1.TabIndex = 4; + // + // label1 + // + this.label1.Dock = System.Windows.Forms.DockStyle.Fill; + this.label1.Location = new System.Drawing.Point(3, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(116, 89); + this.label1.TabIndex = 0; + this.label1.Text = "Pattern"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label2 + // + this.label2.Dock = System.Windows.Forms.DockStyle.Fill; + this.label2.Location = new System.Drawing.Point(3, 89); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(116, 90); + this.label2.TabIndex = 0; + this.label2.Text = "Groups"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // textBox1 + // + this.textBox1.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bs, "Pattern", true)); + this.textBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.textBox1.Font = new System.Drawing.Font("Consolas", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.textBox1.ForeColor = System.Drawing.Color.Black; + this.textBox1.Location = new System.Drawing.Point(125, 3); + this.textBox1.Multiline = true; + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(839, 83); + this.textBox1.TabIndex = 1; + // + // textBox2 + // + this.textBox2.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bs, "Groups", true)); + this.textBox2.Dock = System.Windows.Forms.DockStyle.Fill; + this.textBox2.Font = new System.Drawing.Font("Consolas", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.textBox2.ForeColor = System.Drawing.Color.Black; + this.textBox2.Location = new System.Drawing.Point(125, 92); + this.textBox2.Multiline = true; + this.textBox2.Name = "textBox2"; + this.textBox2.Size = new System.Drawing.Size(839, 84); + this.textBox2.TabIndex = 1; + // + // ta + // + this.ta.ClearBeforeFill = true; + // + // tam + // + this.tam.BackupDataSetBeforeUpdate = false; + this.tam.Component_Reel_CustInfoTableAdapter = null; + this.tam.Component_Reel_PreSetTableAdapter = null; + this.tam.Component_Reel_Print_InformationTableAdapter = null; + this.tam.Component_Reel_PrintRegExRuleTableAdapter = null; + this.tam.Component_Reel_RegExRuleTableAdapter = this.ta; + this.tam.Component_Reel_ResultTableAdapter = null; + this.tam.Component_Reel_SID_ConvertTableAdapter = null; + this.tam.Component_Reel_SID_InformationTableAdapter = null; + this.tam.UpdateOrder = Project.DataSet1TableAdapters.TableAdapterManager.UpdateOrderOption.InsertUpdateDelete; + // + // toolStripButton2 + // + this.toolStripButton2.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton2.Image"))); + this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton2.Name = "toolStripButton2"; + this.toolStripButton2.Size = new System.Drawing.Size(83, 22); + this.toolStripButton2.Text = "Export List"; + this.toolStripButton2.Click += new System.EventHandler(this.toolStripButton2_Click); + // + // RegExRule + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(967, 761); + this.Controls.Add(this.dv1); + this.Controls.Add(this.tableLayoutPanel1); + this.Controls.Add(this.bn); + this.Name = "RegExRule"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "RegExRule"; + this.Load += new System.EventHandler(this.RegExRule_Load); + ((System.ComponentModel.ISupportInitialize)(this.bn)).EndInit(); + this.bn.ResumeLayout(false); + this.bn.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.bs)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dv1)).EndInit(); + this.tableLayoutPanel1.ResumeLayout(false); + this.tableLayoutPanel1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private DataSet1 dataSet1; + private System.Windows.Forms.BindingSource bs; + private DataSet1TableAdapters.Component_Reel_RegExRuleTableAdapter ta; + private DataSet1TableAdapters.TableAdapterManager tam; + private System.Windows.Forms.BindingNavigator bn; + private System.Windows.Forms.ToolStripButton bindingNavigatorAddNewItem; + private System.Windows.Forms.ToolStripLabel bindingNavigatorCountItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorDeleteItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveFirstItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMovePreviousItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator; + private System.Windows.Forms.ToolStripTextBox bindingNavigatorPositionItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator1; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveNextItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveLastItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator2; + private System.Windows.Forms.ToolStripButton component_Reel_RegExRuleBindingNavigatorSaveItem; + private System.Windows.Forms.DataGridView dv1; + private System.Windows.Forms.ToolStripButton toolStripButton1; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.TextBox textBox2; + private System.Windows.Forms.DataGridViewCheckBoxColumn dataGridViewCheckBoxColumn1; + private System.Windows.Forms.DataGridViewCheckBoxColumn IsIgnore; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn5; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn3; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn4; + private System.Windows.Forms.DataGridViewCheckBoxColumn dataGridViewCheckBoxColumn2; + private System.Windows.Forms.DataGridViewCheckBoxColumn dataGridViewCheckBoxColumn3; + private System.Windows.Forms.ToolStripButton toolStripButton2; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/RegExRule.cs b/Handler/Project/Dialog/RegExRule.cs new file mode 100644 index 0000000..743e09c --- /dev/null +++ b/Handler/Project/Dialog/RegExRule.cs @@ -0,0 +1,102 @@ +using AR; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Diagnostics; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class RegExRule : Form + { + public RegExRule() + { + InitializeComponent(); + this.dataSet1.Component_Reel_RegExRule.TableNewRow += (s1, e1) => { + if(PUB.Result.isSetvModel) + e1.Row["CustCode"] = PUB.Result.vModel.Title; + }; + } + + private void RegExRule_Load(object sender, EventArgs e) + { + RefreshList(PUB.Result.vModel.Title); + } + + private void component_Reel_RegExRuleBindingNavigatorSaveItem_Click(object sender, EventArgs e) + { + this.Validate(); + this.bs.EndEdit(); + this.tam.UpdateAll(this.dataSet1); + + var modelName = PUB.Result.vModel.Title; + PUB.Result.BCDPattern = PUB.GetPatterns(modelName, false); + PUB.Result.BCDIgnorePattern = PUB.GetPatterns(modelName, true); + PUB.log.Add($"모델패턴로딩:{PUB.Result.BCDPattern.Count}/{PUB.Result.BCDIgnorePattern.Count}"); + } + + private void RefreshList(string cust) + { + try + { + this.ta.FillByWithSample(this.dataSet1.Component_Reel_RegExRule, cust); + foreach(DataGridViewRow drow in this.dv1.Rows) + { + var drv = drow.DataBoundItem as DataRowView; + if (drv == null) continue; + var dr = drv.Row as DataSet1.Component_Reel_RegExRuleRow; + if (dr.IsCustCodeNull() || dr.CustCode.isEmpty()) + drow.DefaultCellStyle.BackColor = Color.DimGray; + else + drow.DefaultCellStyle.BackColor = Color.WhiteSmoke; + } + dv1.AutoResizeColumns(); + } + catch (System.Exception ex) + { + System.Windows.Forms.MessageBox.Show(ex.Message); + } + + } + + private void toolStripButton1_Click(object sender, EventArgs e) + { + RefreshList(PUB.Result.vModel.Title); + } + + private void bs_CurrentChanged(object sender, EventArgs e) + { + var drv = this.bs.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.Component_Reel_RegExRuleRow; + } + + private void toolStripButton2_Click(object sender, EventArgs e) + { + try + { + DataSet1 ds1 = new DataSet1(); + this.ta.FillAll(ds1.Component_Reel_RegExRule); + + var path = UTIL.MakePath("Export", "BarcodeRule.xml"); + var fi = new System.IO.FileInfo(path); + if (fi.Directory.Exists == false) fi.Directory.Create(); + ds1.Component_Reel_RegExRule.WriteXml(path); + UTIL.MsgI($"Export list File = {path},count={ds1.Component_Reel_RegExRule.Count}"); + } + catch (System.Exception ex) + { + System.Windows.Forms.MessageBox.Show(ex.Message); + } + + + + + } + } +} diff --git a/Handler/Project/Dialog/RegExRule.resx b/Handler/Project/Dialog/RegExRule.resx new file mode 100644 index 0000000..c3b895c --- /dev/null +++ b/Handler/Project/Dialog/RegExRule.resx @@ -0,0 +1,240 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 316, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wAAADsABataJCQAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC + pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++ + Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ + /5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA + zpX/v6RC8f/fWzFAjeH/p+Zp/J+QpfW/O0P3f3uq/v/mREPCYTIb6E+Qc//dCPjfk6FDWAM6APnz3w1/ + IPb735qsT7oB3em6YP+CcH2cEekGtCQZ/G+IN/xfE2v8vzLahHQD6AQYGAAkI9iedfyIaQAAAABJRU5E + rkJggg== + + + + 117, 17 + + + 17, 17 + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wAAADsABataJCQAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC + DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC + rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV + i9OIytR3EMNWcJ/BWH8A6j8/bOGFxwXNxYEvGbMQ9XnQ1/K78KfY3/VXzkMY0qFGG2H4RoLGQshJQNbG + 86CNhdrsX9a/uQZTPhQl4rMY4OLofbl3aX7I8uwPC7y/g1YdjyVJuEvT8e1tfwUYteHUxCCfHChDeHmG + QQvokjlOU+PbWA0x3pZnILVVI3uvQyHsbiLnqnGmRCF1NYD8pDhpRxOH7HQoAKZGkFKjceszQbpSrumX + bO+G80MFwKUTxgfgcO/b8D9IpXoFiiMDHIQm0skAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wAAADsABataJCQAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 + wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0 + v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg + UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA + Iu/O/9T+11gVGSSd+C+b9vW/bvA83AYYZt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPu + lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wAAADsABataJCQAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w + 5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f + Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+ + 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wAAADsABataJCQAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 + n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI + N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f + oAc0QjgAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wAAADsABataJCQAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// + h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B + twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA + kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG + WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9 + 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wAAADsABataJCQAAAExJREFUOE9joAr49u3bf1IxVCsEgAWC58Dxh/cf4RhZDETHTNiHaQgpBoAwzBCo + dtINAGGiDUDGyGpoawAxeNSAQWkAORiqnRLAwAAA9EMMU8Daa3MAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + True + + + 181, 17 + + + 243, 17 + + \ No newline at end of file diff --git a/Handler/Project/Dialog/RegExTest.Designer.cs b/Handler/Project/Dialog/RegExTest.Designer.cs new file mode 100644 index 0000000..c9de091 --- /dev/null +++ b/Handler/Project/Dialog/RegExTest.Designer.cs @@ -0,0 +1,142 @@ +namespace Project.Dialog +{ + partial class RegExTest + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RegExTest)); + this.richTextBox1 = new System.Windows.Forms.RichTextBox(); + this.button1 = new System.Windows.Forms.Button(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.textBox2 = new System.Windows.Forms.TextBox(); + this.button2 = new System.Windows.Forms.Button(); + this.progressBar1 = new System.Windows.Forms.ProgressBar(); + this.rtLog = new System.Windows.Forms.RichTextBox(); + this.SuspendLayout(); + // + // richTextBox1 + // + this.richTextBox1.Dock = System.Windows.Forms.DockStyle.Top; + this.richTextBox1.Location = new System.Drawing.Point(0, 0); + this.richTextBox1.Name = "richTextBox1"; + this.richTextBox1.Size = new System.Drawing.Size(800, 224); + this.richTextBox1.TabIndex = 0; + this.richTextBox1.Text = resources.GetString("richTextBox1.Text"); + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Top; + this.button1.Location = new System.Drawing.Point(0, 245); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(800, 52); + this.button1.TabIndex = 1; + this.button1.Text = "Run List"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // textBox1 + // + this.textBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); + this.textBox1.Dock = System.Windows.Forms.DockStyle.Top; + this.textBox1.Location = new System.Drawing.Point(0, 224); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(800, 21); + this.textBox1.TabIndex = 2; + this.textBox1.Text = "\\b(\\d{9});(\\w+)\\b"; + this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // textBox2 + // + this.textBox2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); + this.textBox2.Dock = System.Windows.Forms.DockStyle.Top; + this.textBox2.Location = new System.Drawing.Point(0, 297); + this.textBox2.Name = "textBox2"; + this.textBox2.Size = new System.Drawing.Size(800, 21); + this.textBox2.TabIndex = 3; + this.textBox2.Text = "5000"; + this.textBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // button2 + // + this.button2.Dock = System.Windows.Forms.DockStyle.Top; + this.button2.Location = new System.Drawing.Point(0, 318); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(800, 52); + this.button2.TabIndex = 4; + this.button2.Text = "Run"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // progressBar1 + // + this.progressBar1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.progressBar1.Location = new System.Drawing.Point(0, 550); + this.progressBar1.Name = "progressBar1"; + this.progressBar1.Size = new System.Drawing.Size(800, 23); + this.progressBar1.TabIndex = 5; + // + // rtLog + // + this.rtLog.BackColor = System.Drawing.Color.Silver; + this.rtLog.Dock = System.Windows.Forms.DockStyle.Fill; + this.rtLog.Location = new System.Drawing.Point(0, 370); + this.rtLog.Name = "rtLog"; + this.rtLog.Size = new System.Drawing.Size(800, 180); + this.rtLog.TabIndex = 6; + this.rtLog.Text = ""; + // + // RegExTest + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(800, 573); + this.Controls.Add(this.rtLog); + this.Controls.Add(this.progressBar1); + this.Controls.Add(this.button2); + this.Controls.Add(this.textBox2); + this.Controls.Add(this.button1); + this.Controls.Add(this.textBox1); + this.Controls.Add(this.richTextBox1); + this.Name = "RegExTest"; + this.Text = "RegExTest"; + this.Load += new System.EventHandler(this.RegExTest_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.RichTextBox richTextBox1; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.TextBox textBox2; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.ProgressBar progressBar1; + private System.Windows.Forms.RichTextBox rtLog; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/RegExTest.cs b/Handler/Project/Dialog/RegExTest.cs new file mode 100644 index 0000000..17a54f0 --- /dev/null +++ b/Handler/Project/Dialog/RegExTest.cs @@ -0,0 +1,116 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using System.Text.RegularExpressions; + +namespace Project.Dialog +{ + public partial class RegExTest : Form + { + Regex regex = null; + + public RegExTest() + { + InitializeComponent(); + } + + private void RegExTest_Load(object sender, EventArgs e) + { + + + } + + private void button1_Click(object sender, EventArgs e) + { + bool retval = false; + + + //이 데이터가 정규식에 match 가되는지 확인하.ㄴㄷ + var ucnt = 0; + var MatchEx = textBox1.Text.Trim(); + var lines = this.richTextBox1.Text.Replace("\r", "").Split('\n'); + foreach (var line in lines) + { + var vdata = line.Split(':')[1]; + if (vdata.isEmpty()) continue; + + + regex = new Regex(MatchEx); //한글 3글자 + if (regex.IsMatch(vdata)) + { + var MatchIndex = 0; + var GroupIndex = 0; + var matchlist = regex.Matches(vdata); + var match0 = matchlist[MatchIndex]; + var grpval = match0.Groups[GroupIndex].Value; + var result = grpval.Trim(); + //if (dr.ReplaceEx.isEmpty() == false && dr.ReplaceStr.isEmpty() == false) + //{ + // regex = new Regex(dr.ReplaceEx); + // if (regex.IsMatch(result)) result = regex.Replace(result, dr.ReplaceStr); + //} + //ucnt += 1; + //switch (dr.varName) + //{ + // case "QTY0": + // vdata.QTY0 = result; + // vdata.QTYRQ = vdata.StartsWith("RQ"); + // break; + // case "SID": + // vdata.SID = result; + // break; + // case "LOT": + // vdata.VLOT = result; + // break; + // case "PART": + // vdata.PARTNO = result; + // break; + // case "MFGDATE": + // vdata.MFGDATE = result; + // break; + // case "QTY": + // vdata.QTY = result; + // break; + // default: + // ucnt -= 1; + // PUB.log.AddAT($"RegEx 대상 VarName을 찾을 수 없습니다. 값:{dr.varName}"); + // break; + //} + } + } + + } + + private void button2_Click(object sender, EventArgs e) + { + var pattern = textBox1.Text.Trim(); + try + { + regex = new Regex(pattern); //한글 3글자 + if (regex.IsMatch(textBox2.Text.Trim())) + { + setlog("match"); + } + else setlog($"no match\npattern:{pattern}\nValue:{textBox2.Text}"); + } + catch (Exception ex) + { + setlog(ex.Message); + } + } + void addlog(string m) + { + this.rtLog.AppendText(m + "\r\n"); + } + void setlog(string m) + { + this.rtLog.Text = m; + } + } +} diff --git a/Handler/Project/Dialog/RegExTest.resx b/Handler/Project/Dialog/RegExTest.resx new file mode 100644 index 0000000..72e40f0 --- /dev/null +++ b/Handler/Project/Dialog/RegExTest.resx @@ -0,0 +1,306 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 11:101410655; 0459497206:1202 / 569:1305 / 643:1300 / 651:1195 / 579:1250 / 610 +1:101410655; 0459497206; TAIYOYUDEN; 50000; 04594972060003; 20200328:1437 / 673:1482 / 705:1450 / 752:1405 / 719:1444 / 712 +1:101410655; 0459497206; TAIYOYUDEN; 50000; 04594972060003; 20200328:1437 / 673:1482 / 705:1450 / 752:1405 / 719:1443 / 712 +11:RM TMK021 CG1R9BK - W JDQ 1:1023 / 922:1193 / 1064:1186 / 1074:1008 / 944:1102 / 1001 +11:045949720600000500002003AJ1001W: 997 / 993:1138 / 1108:1126 / 1124:986 / 1009:1062 / 1059 +11:101410655:1235 / 517:1300 / 550:1287 / 569:1212 / 551:1258 / 547 +11:101410655:1233 / 521:1300 / 550:1287 / 569:1212 / 551:1258 / 548 +11:RM TMK021 CG1R9BK - W JDQ 1:1023 / 922:1194 / 1063:1186 / 1073:1009 / 943:1103 / 1000 +11:045949720600000500002003AJ1001W: 997 / 992:1138 / 1109:1127 / 1124:987 / 1008:1062 / 1058 +11:04594972060003:1353 / 704:1420 / 755:1408 / 771:1340 / 723:1380 / 738 +11:101410655; 0459497206:1205 / 562:1304 / 644:1300 / 651:1194 / 577:1251 / 608 +11:045949720600000500002003AJ1001W: 999 / 992:1138 / 1108:1126 / 1124:986 / 1009:1062 / 1058 +11:RM TMK021 CG1R9BK - W JDQ 1:1023 / 920:1193 / 1064:1179 / 1084:1008 / 942:1101 / 1003 +11:101410655:1235 / 517:1300 / 550:1286 / 570:1228 / 527:1262 / 541 +1:101410655; 0459497206; TAIYOYUDEN; 50000; 04594972060003; 20200328:1437 / 673:1482 / 705:1450 / 751:1405 / 719:1443 / 712 +11:045949720600000500002003AJ1001W: 999 / 994:1138 / 1109:1126 / 1125:988 / 1009:1063 / 1059 +11:RM TMK021 CG1R9BK - W JDQ 1:1023 / 922:1194 / 1064:1186 / 1073:1009 / 943:1103 / 1001 +11:101410655; 0459497206:1206 / 563:1305 / 643:1299 / 652:1195 / 578:1252 / 609 +11:04594972060003:1351 / 706:1419 / 754:1408 / 771:1324 / 745:1376 / 744 +1:101410655; 0459497206; TAIYOYUDEN; 50000; 04594972060003; 20200328:1437 / 673:1482 / 705:1450 / 752:1405 / 719:1443 / 712 +1:101410655; 0459497206; TAIYOYUDEN; 50000; 04594972060003; 20200328:1437 / 673:1482 / 705:1450 / 752:1405 / 719:1444 / 712 +11:RM TMK021 CG1R9BK - W JDQ 1:1022 / 920:1193 / 1063:1186 / 1074:1007 / 942:1102 / 1000 +11:045949720600000500002003AJ1001W: 998 / 994:1138 / 1109:1126 / 1125:988 / 1008:1063 / 1059 +11:0459497206:1226 / 534:1271 / 579:1244 / 614:1211 / 553:1238 / 570 +11:045949720600000500002003AJ1001W: 997 / 992:1138 / 1109:1127 / 1123:986 / 1007:1062 / 1058 +11:RM TMK021 CG1R9BK - W JDQ 1:1023 / 922:1194 / 1064:1186 / 1074:1009 / 943:1103 / 1001 +11:045949720600000500002003AJ1001W: 999 / 995:1138 / 1108:1127 / 1124:988 / 1010:1063 / 1059 +11:045949720600000500002003AJ1001W: 997 / 993:1138 / 1108:1126 / 1124:986 / 1009:1062 / 1059 +11:RM TMK021 CG1R9BK - W JDQ 1:1023 / 922:1195 / 1062:1186 / 1073:1009 / 943:1103 / 1000 +11:101410655; 0459497206:1202 / 566:1306 / 640:1299 / 650:1197 / 574:1251 / 607 +11:04594972060003:1334 / 711:1401 / 762:1396 / 768:1313 / 740:1361 / 746 +11:0459497206:1197 / 527:1244 / 573:1239 / 581:1187 / 543:1217 / 556 +11:RM TMK021 CG1R9BK - W JDQ 1:980 / 906:1151 / 1049:1143 / 1059:972 / 918:1062 / 983 +11:04594972060003:1300 / 701:1367 / 751:1361 / 759:1295 / 708:1330 / 729 +11:045949720600000500002003AJ1001W: 940 / 972:1079 / 1089:1066 / 1105:929 / 988:1003 / 1038 +11:101410655; 0459497206:1194 / 552:1291 / 636:1284 / 646:1178 / 576:1237 / 603 +11:045949720600000500002003AJ1001W: 953 / 979:1092 / 1094:1080 / 1110:943 / 993:1017 / 1044 +11:RM TMK021 CG1R9BK - W JDQ 1:957 / 888:1123 / 1036:1113 / 1049:943 / 907:1034 / 970 +1:101410655; 0459497206; TAIYOYUDEN; 50000; 04594972060003; 20200328:1413 / 663:1458 / 696:1425 / 742:1380 / 710:1419 / 703 +11:04594972060003:1331 / 711:1407 / 749:1395 / 768:1326 / 718:1365 / 737 +11:RM TMK021 CG1R9BK - W JDQ 1:1011 / 917:1181 / 1059:1168 / 1076:1001 / 932:1090 / 996 +11:045949720600000500002003AJ1001W: 983 / 990:1123 / 1108:1112 / 1123:973 / 1005:1048 / 1056 +11:101410655; 0459497206:1189 / 565:1300 / 630:1287 / 648:1183 / 573:1240 / 604 +1:101410655; 0459497206; TAIYOYUDEN; 50000; 04594972060003; 20200328:1424 / 670:1469 / 702:1437 / 749:1392 / 716:1431 / 709 +1:101410655; 0459497206; TAIYOYUDEN; 50000; 04594972060003; 20200328:1424 / 670:1469 / 702:1437 / 749:1392 / 716:1431 / 709 +11:RM TMK021 CG1R9BK - W JDQ 1:1012 / 917:1182 / 1059:1172 / 1071:1001 / 932:1092 / 995 +11:045949720600000500002003AJ1001W: 984 / 992:1125 / 1104:1112 / 1122:973 / 1006:1049 / 1056 +11:20200328:1334 / 712:1372 / 759:1358 / 778:1310 / 744:1343 / 748 +11:04594972060003:1340 / 701:1402 / 759:1395 / 769:1329 / 716:1367 / 736 +11:RM TMK021 CG1R9BK - W JDQ 1:1012 / 918:1181 / 1059:1172 / 1071:1002 / 932:1092 / 995 +11:045949720600000500002003AJ1001W: 985 / 992:1125 / 1105:1113 / 1122:970 / 1011:1048 / 1058 +11:101410655; 0459497206:1190 / 568:1293 / 643:1287 / 652:1183 / 578:1238 / 610 +1:101410655; 0459497206; TAIYOYUDEN; 50000; 04594972060003; 20200328:1425 / 671:1470 / 703:1438 / 749:1392 / 717:1431 / 710 +11:RM TMK021 CG1R9BK - W JDQ 1:1012 / 924:1183 / 1064:1174 / 1076:1003 / 937:1093 / 1000 +11:045949720600000500002003AJ1001W: 986 / 997:1124 / 1114:1113 / 1128:972 / 1016:1049 / 1064 +11:04594972060003:1342 / 711:1407 / 764:1399 / 775:1323 / 738:1368 / 747 +11:101410655; 0459497206:1190 / 575:1299 / 644:1289 / 658:1185 / 583:1241 / 615 +11:101410655; 0459497206:1193 / 574:1302 / 641:1289 / 658:1186 / 584:1243 / 614 +11:RM TMK021 CG1R9BK - W JDQ 1:1014 / 926:1186 / 1066:1177 / 1078:999 / 949:1094 / 1005 +11:045949720600000500002003AJ1001W: 989 / 1000:1128 / 1113:1118 / 1127:978 / 1014:1053 / 1063 +11:04594972060003:1337 / 713:1407 / 752:1395 / 778:1323 / 733:1365 / 744 +1:101410655; 0459497206; TAIYOYUDEN; 50000; 04594972060003; 20200328:1426 / 672:1471 / 705:1438 / 751:1393 / 719:1432 / 712 +1:101410655; 0459497206; TAIYOYUDEN; 50000; 04594972060003; 20200328:1425 / 672:1470 / 704:1437 / 751:1393 / 719:1431 / 711 +11:045949720600000500002003AJ1001W: 984 / 992:1124 / 1107:1111 / 1123:973 / 1006:1048 / 1057 +11:RM TMK021 CG1R9BK - W JDQ 1:1006 / 910:1173 / 1058:1164 / 1071:990 / 931:1083 / 993 +11:RM TMK021 CG1R9BK - W JDQ 1:1000 / 927:1173 / 1061:1164 / 1073:991 / 939:1082 / 1000 +11:045949720600000500002003AJ1001W: 985 / 992:1122 / 1109:1111 / 1123:970 / 1012:1047 / 1059 +11:04594972060003:1335 / 712:1402 / 760:1395 / 771:1327 / 722:1365 / 741 +11:101410655; 0459497206:1189 / 568:1298 / 635:1287 / 651:1183 / 578:1239 / 608 +11:101410655:1230 / 506:1288 / 550:1276 / 566:1211 / 531:1251 / 538 +11:045949720600000500002003AJ1001W: 986 / 992:1125 / 1107:1113 / 1123:974 / 1008:1050 / 1058 +11:RM TMK021 CG1R9BK - W JDQ 1:1013 / 921:1182 / 1061:1172 / 1075:1004 / 935:1093 / 998 +11:045949720600000500002003AJ1001W: 985 / 991:1134 / 1096:1114 / 1121:973 / 1008:1052 / 1054 +11:101410655:1231 / 507:1281 / 558:1275 / 568:1215 / 526:1251 / 540 +11:0459497206:1212 / 532:1263 / 569:1250 / 588:1201 / 547:1232 / 559 +11:101410655:1229 / 506:1282 / 557:1276 / 566:1216 / 525:1251 / 539 +11:TAIYOYUDEN: 1179 / 583:1263 / 643:1250 / 661:1166 / 603:1215 / 623 +11:4200139801002J1002AS: 1141 / 637:1256 / 723:1252 / 729:1135 / 646:1196 / 684 +11:20200328:1319 / 732:1365 / 769:1358 / 778:1309 / 745:1338 / 756 +11:045949720600000500002003AJ1001W: 985 / 991:1125 / 1107:1113 / 1123:973 / 1008:1049 / 1057 +11:RM TMK021 CG1R9BK - W JDQ 1:1013 / 924:1186 / 1064:1175 / 1078:1005 / 937:1095 / 1001 +1:101410655; 0459497206; TAIYOYUDEN; 50000; 04594972060003; 20200328:1426 / 672:1471 / 704:1438 / 751:1393 / 718:1432 / 711 +11:045949720600000500002003AJ1001W: 987 / 994:1127 / 1108:1116 / 1123:976 / 1008:1052 / 1058 +1:101410655; 0459497206; TAIYOYUDEN; 50000; 04594972060003; 20200328:1426 / 672:1471 / 705:1439 / 751:1393 / 719:1432 / 712 +11:RM TMK021 CG1R9BK - W JDQ 1:1012 / 921:1183 / 1061:1174 / 1074:997 / 943:1091 / 1000 +11:045949720600000500002003AJ1001W: 986 / 991:1135 / 1096:1115 / 1121:974 / 1007:1052 / 1054 +11:0459497206:1230 / 506:1264 / 568:1252 / 588:1199 / 550:1236 / 553 +11:04594972060003:1341 / 701:1402 / 760:1395 / 770:1326 / 721:1366 / 738 +11:RM TMK021 CG1R9BK - W JDQ 1:1012 / 922:1182 / 1061:1174 / 1073:1005 / 932:1093 / 997 +11:045949720600000500002003AJ1001W: 983 / 999:1126 / 1106:1114 / 1123:975 / 1010:1049 / 1059 +11:0459497206:1224 / 517:1258 / 578:1251 / 588:1199 / 551:1233 / 558 +11:TAIYOYUDEN: 1171 / 596:1258 / 652:1251 / 662:1167 / 603:1212 / 628 +11:RM TMK021 CG1R9BK - W JDQ 1:1012 / 919:1182 / 1061:1173 / 1073:1004 / 932:1093 / 997 +11:045949720600000500002003AJ1001W: 985 / 994:1125 / 1108:1113 / 1123:976 / 1007:1050 / 1058 +11:04594972060003:1335 / 712:1404 / 758:1391 / 781:1327 / 723:1364 / 743 +11:TAIYOYUDEN: 1173 / 592:1260 / 648:1250 / 661:1167 / 601:1212 / 626 +11:0459497206:1211 / 536:1258 / 578:1251 / 588:1201 / 548:1231 / 563 +11:045949720600000500002003AJ1001W: 986 / 992:1134 / 1097:1114 / 1122:974 / 1008:1052 / 1055 +11:101410655; 0459497206:1190 / 569:1299 / 636:1288 / 650:1185 / 576:1240 / 608 +11:RM TMK021 CG1R9BK - W JDQ 1:1012 / 919:1182 / 1060:1173 / 1073:1002 / 932:1092 / 996 +11:04594972060003:1336 / 708:1402 / 760:1395 / 771:1327 / 722:1365 / 740 +11:TAIYOYUDEN: 1177 / 590:1263 / 647:1231 / 692:1146 / 634:1204 / 641 +11:045949720600000500002003AJ1001W: 987 / 992:1134 / 1096:1109 / 1127:975 / 1009:1051 / 1056 +11:RM TMK021 CG1R9BK - W JDQ 1:1012 / 919:1182 / 1061:1173 / 1074:1003 / 932:1092 / 996 +11:101410655; 0459497206:1197 / 557:1299 / 635:1287 / 650:1167 / 601:1238 / 611 +11:04594972060003:1336 / 708:1402 / 760:1395 / 770:1327 / 721:1365 / 740 +1:101410655; 0459497206; TAIYOYUDEN; 50000; 04594972060003; 20200328:1425 / 671:1470 / 704:1438 / 750:1393 / 718:1431 / 711 +11:045949720600000500002003AJ1001W: 985 / 993:1134 / 1097:1113 / 1123:975 / 1006:1052 / 1055 +11:20200328:1341 / 701:1367 / 766:1359 / 778:1310 / 746:1344 / 747 +11:RM TMK021 CG1R9BK - W JDQ 1:1008 / 926:1183 / 1059:1173 / 1073:994 / 952:1089 / 1003 +11:04594972060003:1335 / 711:1402 / 761:1396 / 771:1328 / 721:1365 / 741 +11:RM TMK021 CG1R9BK - W JDQ 1:1012 / 919:1182 / 1061:1167 / 1079:1003 / 932:1091 / 998 +11:045949720600000500002003AJ1001W: 986 / 992:1124 / 1108:1113 / 1123:970 / 1012:1048 / 1059 +11:101410655; 0459497206:1192 / 564:1294 / 640:1287 / 651:1184 / 575:1239 / 607 +11:04594972060003:1333 / 713:1409 / 753:1395 / 770:1328 / 721:1366 / 739 +11:101410655:1229 / 506:1281 / 558:1276 / 566:1216 / 525:1251 / 539 +11:RM TMK021 CG1R9BK - W JDQ 1:1011 / 920:1182 / 1061:1173 / 1073:1003 / 932:1092 / 996 +11:045949720600000500002003AJ1001W: 985 / 992:1135 / 1096:1114 / 1123:974 / 1008:1052 / 1055 +11:04594972060003:1336 / 707:1402 / 760:1395 / 770:1327 / 720:1365 / 740 +11:101410655; 0459497206:1190 / 567:1299 / 635:1286 / 652:1183 / 578:1239 / 608 +11:0459497206:1229 / 506:1264 / 569:1251 / 588:1199 / 550:1236 / 553 +11:RM TMK021 CG1R9BK - W JDQ 1:1010 / 918:1183 / 1059:1172 / 1074:1001 / 930:1091 / 995 +11:045949720600000500002003AJ1001W: 986 / 992:1135 / 1096:1114 / 1121:971 / 1012:1051 / 1055 +11:101410655; 0459497206:1190 / 565:1294 / 641:1287 / 650:1184 / 575:1239 / 608 +1:101410655; 0459497206; TAIYOYUDEN; 50000; 04594972060003; 20200328:1425 / 670:1470 / 703:1438 / 749:1393 / 717:1432 / 710 +1:101410655; 0459497206; TAIYOYUDEN; 50000; 04594972060003; 20200328:1425 / 670:1471 / 703:1438 / 749:1393 / 717:1432 / 710 +11:RM TMK021 CG1R9BK - W JDQ 1:1014 / 917:1185 / 1056:1177 / 1068:996 / 943:1093 / 996 +11:045949720600000500002003AJ1001W: 988 / 989:1128 / 1104:1116 / 1119:978 / 1004:1053 / 1054 +11:04594972060003:1335 / 705:1404 / 753:1397 / 763:1328 / 715:1366 / 734 +11:04594972060003:1343 / 703:1409 / 751:1398 / 766:1332 / 716:1370 / 734 +11:045949720600000500002003AJ1001W: 989 / 985:1131 / 1101:1117 / 1118:979 / 1000:1054 / 1051 +11:RM TMK021 CG1R9BK - W JDQ 1:1017 / 912:1186 / 1054:1177 / 1066:1002 / 934:1096 / 991 +11:101410655:1227 / 510:1291 / 544:1279 / 560:1203 / 543:1250 / 539 +1:101410655; 0459497206; TAIYOYUDEN; 50000; 04594972060003; 20200328:1432 / 656:1477 / 689:1445 / 735:1400 / 703:1439 / 696 +11:045949720600000500002003AJ1001W: 988 / 979:1129 / 1092:1117 / 1108:978 / 993:1053 / 1043 +1:101410655; 0459497206; TAIYOYUDEN; 50000; 04594972060003; 20200328:1193 / 658:1238 / 691:1205 / 737:1161 / 704:1199 / 697 +1:101410655; 0459497206; TAIYOYUDEN; 50000; 04594972060003; 20200328:1728 / 650:1774 / 683:1741 / 730:1695 / 697:1734 / 690 +11:RM TMK021 CG1R9BK - W JDQ 1:1480 / 907:1654 / 1051:1645 / 1064:1466 / 929:1561 / 988 +11:045949720600000500002003AJ1001W: 1453 / 981:1595 / 1099:1584 / 1113:1439 / 1001:1518 / 1049 +1:101410655; 0459497206; TAIYOYUDEN; 50000; 04594972060003; 20200328:1192 / 650:1236 / 682:1204 / 728:1160 / 695:1198 / 689 +11:04594972060003:1360 / 681:1420 / 741:1414 / 748:1346 / 701:1385 / 718 +11:RM TMK021 CG1R9BK - W JDQ 1:1280 / 906:1458 / 1043:1445 / 1058:1266 / 928:1362 / 984 +11:045949720600000500002003AJ1001W: 1257 / 977:1399 / 1094:1388 / 1108:1246 / 992:1322 / 1043 +11:RM TMK021 CG1R9BK - W JDQ 1:1458 / 905:1634 / 1051:1624 / 1063:1449 / 917:1541 / 984 +11:045949720600000500002003AJ1001W: 1431 / 981:1575 / 1098:1559 / 1118:1415 / 1005:1495 / 1050 +11:0459497206:1663 / 516:1712 / 558:1705 / 568:1652 / 529:1683 / 543 +11:101410655; 0459497206:1641 / 549:1748 / 623:1742 / 631:1636 / 556:1692 / 590 +11:04594972060003:1796 / 688:1861 / 744:1854 / 753:1784 / 703:1824 / 722 +11:RM TMK021 CG1R9BK - W JDQ 1:1456 / 908:1631 / 1049:1620 / 1064:1439 / 930:1536 / 987 +11:045949720600000500002003AJ1001W: 1430 / 979:1569 / 1098:1558 / 1113:1419 / 994:1494 / 1046 +11:04594972060003:1787 / 697:1859 / 744:1852 / 753:1782 / 703:1820 / 724 +1:101410655; 0459497206; TAIYOYUDEN; 50000; 04594972060003; 20200328:1884 / 653:1931 / 686:1897 / 734:1850 / 701:1891 / 693 +11:045949720600000500002003AJ1001W: 1431 / 982:1573 / 1099:1561 / 1113:1420 / 996:1496 / 1047 +11:04594972060003:1796 / 686:1868 / 736:1845 / 761:1773 / 717:1821 / 725 +11:RM TMK021 CG1R9BK - W JDQ 1:1459 / 908:1634 / 1048:1624 / 1062:1444 / 929:1540 / 987 +11:101410655; 0459497206:1641 / 543:1751 / 615:1740 / 630:1634 / 554:1691 / 586 +11:TAIYOYUDEN: 1616 / 562:1698 / 631:1693 / 638:1603 / 581:1653 / 603 +11:045949720600000500002003AJ1001W: 1428 / 980:1572 / 1099:1559 / 1115:1416 / 997:1494 / 1048 +11:RM TMK021 CG1R9BK - W JDQ 1:1450 / 906:1627 / 1049:1615 / 1065:1435 / 928:1532 / 987 +11:101410655:1674 / 486:1729 / 537:1723 / 546:1644 / 530:1693 / 525 +11:101410655; 0459497206:1635 / 549:1743 / 623:1735 / 635:1628 / 560:1685 / 592 +1:101410655; 0459497206; TAIYOYUDEN; 50000; 04594972060003; 20200328:1877 / 653:1925 / 686:1891 / 735:1844 / 701:1884 / 694 +11:045949720600000500002003AJ1001W: 1426 / 987:1570 / 1102:1557 / 1118:1417 / 998:1493 / 1051 +11:RM TMK021 CG1R9BK - W JDQ 1:1453 / 910:1627 / 1054:1618 / 1066:1437 / 934:1534 / 991 +11:04594972060003:1791 / 686:1854 / 749:1849 / 756:1761 / 731:1814 / 730 +11:045949720600000500002003AJ1001W: 1424 / 975:1576 / 1087:1554 / 1113:1409 / 1006:1491 / 1045 +11:RM TMK021 CG1R9BK - W JDQ 1:1452 / 907:1625 / 1051:1616 / 1064:1434 / 933:1532 / 989 +11:TAIYOYUDEN: 1616 / 573:1709 / 626:1695 / 645:1610 / 581:1658 / 606 +11:101410655; 0459497206:1631 / 549:1748 / 615:1733 / 634:1625 / 559:1684 / 589 +11:04594972060003:1783 / 696:1854 / 746:1849 / 754:1777 / 705:1816 / 725 +11:045949720600000500002003AJ1001W: 1424 / 981:1573 / 1089:1556 / 1114:1414 / 996:1492 / 1045 +11:RM TMK021 CG1R9BK - W JDQ 1:1452 / 907:1625 / 1051:1616 / 1064:1443 / 919:1534 / 985 +11:101410655; 0459497206:1640 / 543:1744 / 620:1734 / 634:1627 / 558:1686 / 589 +11:0459497206:1657 / 516:1705 / 559:1698 / 569:1647 / 528:1677 / 543 +11:04594972060003:1789 / 686:1855 / 742:1847 / 753:1760 / 725:1813 / 727 +11:RM TMK021 CG1R9BK - W JDQ 1:1449 / 911:1628 / 1049:1617 / 1063:1440 / 923:1533 / 986 +11:045949720600000500002003AJ1001W: 1424 / 979:1565 / 1096:1549 / 1118:1414 / 994:1488 / 1047 +11:101410655:1671 / 489:1733 / 529:1717 / 553:1655 / 512:1694 / 521 +11:RM TMK021 CG1R9BK - W JDQ 1:1450 / 909:1626 / 1048:1614 / 1063:1443 / 919:1533 / 985 +11:045949720600000500002003AJ1001W: 1423 / 982:1565 / 1098:1546 / 1122:1408 / 1001:1486 / 1051 +11:101410655; 0459497206:1632 / 548:1740 / 624:1733 / 634:1625 / 558:1682 / 591 +11:04594972060003:1783 / 696:1853 / 746:1846 / 755:1775 / 707:1814 / 726 +11:101410655; 0459497206:1632 / 551:1742 / 620:1733 / 633:1626 / 559:1683 / 591 +11:101410655:1672 / 486:1727 / 536:1721 / 546:1642 / 530:1690 / 524 + + \ No newline at end of file diff --git a/Handler/Project/Dialog/START.cs b/Handler/Project/Dialog/START.cs new file mode 100644 index 0000000..8782464 --- /dev/null +++ b/Handler/Project/Dialog/START.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; + +namespace Project +{ + public partial class FMain + { + } +} diff --git a/Handler/Project/Dialog/UserControl1.Designer.cs b/Handler/Project/Dialog/UserControl1.Designer.cs new file mode 100644 index 0000000..0c24cc6 --- /dev/null +++ b/Handler/Project/Dialog/UserControl1.Designer.cs @@ -0,0 +1,77 @@ +namespace Project.Dialog +{ + partial class UserControl1 + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 구성 요소 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + this.label1 = new System.Windows.Forms.Label(); + this.numericUpDown1 = new System.Windows.Forms.NumericUpDown(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit(); + this.SuspendLayout(); + // + // label1 + // + this.label1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.label1.Dock = System.Windows.Forms.DockStyle.Left; + this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); + this.label1.ForeColor = System.Drawing.Color.White; + this.label1.Location = new System.Drawing.Point(0, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(105, 29); + this.label1.TabIndex = 0; + this.label1.Text = "label1"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // numericUpDown1 + // + this.numericUpDown1.Dock = System.Windows.Forms.DockStyle.Fill; + this.numericUpDown1.Font = new System.Drawing.Font("Consolas", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.numericUpDown1.Location = new System.Drawing.Point(105, 0); + this.numericUpDown1.Name = "numericUpDown1"; + this.numericUpDown1.Size = new System.Drawing.Size(58, 29); + this.numericUpDown1.TabIndex = 1; + this.numericUpDown1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // UserControl1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.numericUpDown1); + this.Controls.Add(this.label1); + this.Name = "UserControl1"; + this.Size = new System.Drawing.Size(163, 29); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + public System.Windows.Forms.Label label1; + public System.Windows.Forms.NumericUpDown numericUpDown1; + } +} diff --git a/Handler/Project/Dialog/UserControl1.cs b/Handler/Project/Dialog/UserControl1.cs new file mode 100644 index 0000000..5402a02 --- /dev/null +++ b/Handler/Project/Dialog/UserControl1.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class UserControl1 : UserControl + { + public UserControl1() + { + InitializeComponent(); + } + } +} diff --git a/Handler/Project/Dialog/UserControl1.resx b/Handler/Project/Dialog/UserControl1.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/Project/Dialog/UserControl1.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/Project/Dialog/fDataBufferSIDRef.Designer.cs b/Handler/Project/Dialog/fDataBufferSIDRef.Designer.cs new file mode 100644 index 0000000..f39ed99 --- /dev/null +++ b/Handler/Project/Dialog/fDataBufferSIDRef.Designer.cs @@ -0,0 +1,89 @@ +namespace Project.Dialog +{ + partial class fDataBufferSIDRef + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.lvSID = new System.Windows.Forms.ListView(); + this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.SuspendLayout(); + // + // lvSID + // + this.lvSID.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader1, + this.columnHeader2, + this.columnHeader3}); + this.lvSID.Dock = System.Windows.Forms.DockStyle.Fill; + this.lvSID.FullRowSelect = true; + this.lvSID.GridLines = true; + this.lvSID.Location = new System.Drawing.Point(0, 0); + this.lvSID.Name = "lvSID"; + this.lvSID.Size = new System.Drawing.Size(335, 457); + this.lvSID.TabIndex = 2; + this.lvSID.UseCompatibleStateImageBehavior = false; + this.lvSID.View = System.Windows.Forms.View.Details; + // + // columnHeader1 + // + this.columnHeader1.Text = "SID"; + this.columnHeader1.Width = 200; + // + // columnHeader2 + // + this.columnHeader2.Text = "KPC"; + this.columnHeader2.Width = 50; + // + // columnHeader3 + // + this.columnHeader3.Text = "Unit"; + // + // fDataBufferSID + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(335, 457); + this.Controls.Add(this.lvSID); + this.Name = "fDataBufferSID"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "SID Reference Buffer"; + this.TopMost = true; + this.Load += new System.EventHandler(this.fDataBuffer_Load); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.ListView lvSID; + private System.Windows.Forms.ColumnHeader columnHeader1; + private System.Windows.Forms.ColumnHeader columnHeader2; + private System.Windows.Forms.ColumnHeader columnHeader3; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/fDataBufferSIDRef.cs b/Handler/Project/Dialog/fDataBufferSIDRef.cs new file mode 100644 index 0000000..0fcb936 --- /dev/null +++ b/Handler/Project/Dialog/fDataBufferSIDRef.cs @@ -0,0 +1,91 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fDataBufferSIDRef : Form + { + Boolean useMonitor = false; + public fDataBufferSIDRef() + { + InitializeComponent(); + this.lvSID.Items.Clear(); + var list = PUB.Result.SIDReference.Items; + foreach (var item in list) + { + var lv = this.lvSID.Items.Add(item.sid, string.Format("[{0}] {1}", lvSID.Items.Count + 1, item.sid), 0); //sid + lv.SubItems.Add(item.kpc.ToString()); //count + lv.SubItems.Add(item.unit); + } + PUB.Result.SIDReference.PropertyChanged += sidreflist_PropertyChanged; + useMonitor = true; + } + + public fDataBufferSIDRef(List items) + { + InitializeComponent(); + this.lvSID.Items.Clear(); + foreach (var item in items) + { + var lv = this.lvSID.Items.Add(item.sid, string.Format("[{0}] {1}", lvSID.Items.Count + 1, item.sid), 0); //sid + lv.SubItems.Add(item.kpc.ToString()); //count + lv.SubItems.Add(item.unit); + } + } + void fDataBufferSID_FormClosed(object sender, FormClosedEventArgs e) + { + if (useMonitor) + PUB.Result.SIDReference.PropertyChanged -= sidreflist_PropertyChanged; + } + + private void fDataBuffer_Load(object sender, EventArgs e) + { + this.FormClosed += fDataBufferSID_FormClosed; + + } + + void sidreflist_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + if (this.InvokeRequired) + { + var p = new PropertyChangedEventArgs(e.PropertyName); + this.BeginInvoke(new PropertyChangedEventHandler(sidreflist_PropertyChanged), new object[] { sender, p }); + return; + } + var pname = e.PropertyName.Split(':'); + if (pname[0].ToLower() == "add") + { + var sid = pname[1]; + var item = PUB.Result.SIDReference.Get(pname[1]); + var lv = this.lvSID.Items.Add(sid, string.Format("[{0}] {1}", lvSID.Items.Count + 1, sid), 0); + lv.SubItems.Add(item.kpc.ToString()); + lv.SubItems.Add(item.unit);// + lv.EnsureVisible(); + } + else if (pname[0].ToLower() == "clear") + { + this.lvSID.Items.Clear(); + } + else if (pname[0].ToLower() == "set") + { + var sid = pname[1]; + var cnt = PUB.Result.SIDReference.Get(sid); + var items = this.lvSID.Items.Find(sid, false); + if (items != null && items.Length > 0) + { + foreach (var item in items) + { + item.SubItems[1].Text = cnt.ToString(); + } + } + } + } + + } +} diff --git a/Handler/Project/Dialog/fDataBufferSIDRef.resx b/Handler/Project/Dialog/fDataBufferSIDRef.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/Project/Dialog/fDataBufferSIDRef.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/Project/Dialog/fDebug.Designer.cs b/Handler/Project/Dialog/fDebug.Designer.cs new file mode 100644 index 0000000..822297d --- /dev/null +++ b/Handler/Project/Dialog/fDebug.Designer.cs @@ -0,0 +1,324 @@ +namespace Project.Dialog +{ + partial class fDebug + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.timer1 = new System.Windows.Forms.Timer(this.components); + this.tbBcd = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.button1 = new System.Windows.Forms.Button(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.textBox2 = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.button2 = new System.Windows.Forms.Button(); + this.button3 = new System.Windows.Forms.Button(); + 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.button4 = new System.Windows.Forms.Button(); + this.button5 = new System.Windows.Forms.Button(); + this.button6 = new System.Windows.Forms.Button(); + this.button7 = new System.Windows.Forms.Button(); + this.button8 = new System.Windows.Forms.Button(); + this.button9 = new System.Windows.Forms.Button(); + this.textBox5 = new System.Windows.Forms.TextBox(); + this.button10 = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // timer1 + // + this.timer1.Interval = 150; + this.timer1.Tick += new System.EventHandler(this.timer1_Tick); + // + // tbBcd + // + this.tbBcd.Location = new System.Drawing.Point(12, 381); + this.tbBcd.Name = "tbBcd"; + this.tbBcd.Size = new System.Drawing.Size(335, 21); + this.tbBcd.TabIndex = 44; + this.tbBcd.Text = "101409576;FF8N03FA2;MURATA;10000;8N09AFQPF;20181109;"; + this.tbBcd.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(10, 360); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(97, 12); + this.label2.TabIndex = 45; + this.label2.Text = "Manual barcode"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // button1 + // + this.button1.Location = new System.Drawing.Point(12, 408); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(335, 24); + this.button1.TabIndex = 46; + this.button1.Text = "send"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // textBox1 + // + this.textBox1.Location = new System.Drawing.Point(14, 29); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(335, 21); + this.textBox1.TabIndex = 47; + this.textBox1.Text = "101409930;L99294875498;KYOCERA;30000;037920827134011M001;2020-08-27;ABCDEFGHIJ123" + + "4567890ABCDEFGHIJ"; + this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // textBox2 + // + this.textBox2.Location = new System.Drawing.Point(12, 81); + this.textBox2.Name = "textBox2"; + this.textBox2.Size = new System.Drawing.Size(335, 21); + this.textBox2.TabIndex = 47; + this.textBox2.Text = "101409930;L99294875498;KYOCERA;30000;037920827134011M001;2020-08-27;ABCDEFGHIJ123" + + "4567890ABCDEFGHIJ"; + this.textBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(10, 14); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(93, 12); + this.label1.TabIndex = 45; + this.label1.Text = "Print Command"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(10, 66); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(93, 12); + this.label3.TabIndex = 45; + this.label3.Text = "Print Command"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // button2 + // + this.button2.Location = new System.Drawing.Point(252, 2); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(95, 24); + this.button2.TabIndex = 48; + this.button2.Text = "Print"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // button3 + // + this.button3.Location = new System.Drawing.Point(252, 54); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(95, 24); + this.button3.TabIndex = 48; + this.button3.Text = "Print"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click); + // + // textBox3 + // + this.textBox3.Location = new System.Drawing.Point(12, 135); + this.textBox3.Name = "textBox3"; + this.textBox3.Size = new System.Drawing.Size(151, 21); + this.textBox3.TabIndex = 50; + this.textBox3.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(10, 120); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(41, 12); + this.label4.TabIndex = 49; + this.label4.Text = "manu\'"; + this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // textBox4 + // + this.textBox4.Location = new System.Drawing.Point(12, 178); + this.textBox4.Name = "textBox4"; + this.textBox4.Size = new System.Drawing.Size(151, 21); + this.textBox4.TabIndex = 52; + this.textBox4.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(10, 163); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(26, 12); + this.label5.TabIndex = 51; + this.label5.Text = "mfg"; + this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // button4 + // + this.button4.Location = new System.Drawing.Point(169, 135); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(49, 24); + this.button4.TabIndex = 53; + this.button4.Text = "n/a"; + this.button4.UseVisualStyleBackColor = true; + this.button4.Click += new System.EventHandler(this.button4_Click); + // + // button5 + // + this.button5.Location = new System.Drawing.Point(169, 178); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(49, 24); + this.button5.TabIndex = 53; + this.button5.Text = "n/a"; + this.button5.UseVisualStyleBackColor = true; + this.button5.Click += new System.EventHandler(this.button5_Click); + // + // button6 + // + this.button6.Location = new System.Drawing.Point(12, 205); + this.button6.Name = "button6"; + this.button6.Size = new System.Drawing.Size(95, 24); + this.button6.TabIndex = 54; + this.button6.Text = "print L"; + this.button6.UseVisualStyleBackColor = true; + this.button6.Click += new System.EventHandler(this.button6_Click); + // + // button7 + // + this.button7.Location = new System.Drawing.Point(123, 205); + this.button7.Name = "button7"; + this.button7.Size = new System.Drawing.Size(95, 24); + this.button7.TabIndex = 55; + this.button7.Text = "print R"; + this.button7.UseVisualStyleBackColor = true; + this.button7.Click += new System.EventHandler(this.button7_Click); + // + // button8 + // + this.button8.Location = new System.Drawing.Point(224, 178); + this.button8.Name = "button8"; + this.button8.Size = new System.Drawing.Size(49, 24); + this.button8.TabIndex = 56; + this.button8.Text = "clr"; + this.button8.UseVisualStyleBackColor = true; + this.button8.Click += new System.EventHandler(this.button8_Click); + // + // button9 + // + this.button9.Location = new System.Drawing.Point(224, 135); + this.button9.Name = "button9"; + this.button9.Size = new System.Drawing.Size(49, 24); + this.button9.TabIndex = 57; + this.button9.Text = "clr"; + this.button9.UseVisualStyleBackColor = true; + this.button9.Click += new System.EventHandler(this.button9_Click); + // + // textBox5 + // + this.textBox5.Location = new System.Drawing.Point(14, 250); + this.textBox5.Name = "textBox5"; + this.textBox5.Size = new System.Drawing.Size(459, 21); + this.textBox5.TabIndex = 58; + this.textBox5.Text = "101416868;01A3KX;KYOCERA;20000;RC00014A225001I;20220511;N/A"; + this.textBox5.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // button10 + // + this.button10.Location = new System.Drawing.Point(12, 277); + this.button10.Name = "button10"; + this.button10.Size = new System.Drawing.Size(461, 24); + this.button10.TabIndex = 59; + this.button10.Text = "Parser Amkor STD Barcode"; + this.button10.UseVisualStyleBackColor = true; + this.button10.Click += new System.EventHandler(this.button10_Click); + // + // fDebug + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(495, 444); + this.Controls.Add(this.button10); + this.Controls.Add(this.textBox5); + this.Controls.Add(this.button8); + this.Controls.Add(this.button9); + this.Controls.Add(this.button6); + this.Controls.Add(this.button7); + this.Controls.Add(this.button5); + this.Controls.Add(this.button4); + this.Controls.Add(this.textBox4); + this.Controls.Add(this.label5); + this.Controls.Add(this.textBox3); + this.Controls.Add(this.label4); + this.Controls.Add(this.button3); + this.Controls.Add(this.button2); + this.Controls.Add(this.textBox2); + this.Controls.Add(this.textBox1); + this.Controls.Add(this.button1); + this.Controls.Add(this.label3); + this.Controls.Add(this.label1); + this.Controls.Add(this.label2); + this.Controls.Add(this.tbBcd); + this.Name = "fDebug"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "fDebug"; + this.Load += new System.EventHandler(this.fDebug_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private System.Windows.Forms.Timer timer1; + private System.Windows.Forms.TextBox tbBcd; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.TextBox textBox2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.TextBox textBox3; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox textBox4; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.Button button5; + private System.Windows.Forms.Button button6; + private System.Windows.Forms.Button button7; + private System.Windows.Forms.Button button8; + private System.Windows.Forms.Button button9; + private System.Windows.Forms.TextBox textBox5; + private System.Windows.Forms.Button button10; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/fDebug.cs b/Handler/Project/Dialog/fDebug.cs new file mode 100644 index 0000000..9737af2 --- /dev/null +++ b/Handler/Project/Dialog/fDebug.cs @@ -0,0 +1,124 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fDebug : Form + { + public fDebug() + { + InitializeComponent(); + this.FormClosed += fDebug_FormClosed; + this.tbBcd.KeyDown += tbBcd_KeyDown; + } + + void tbBcd_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + { + // manualbcd(); + } + } + + void fDebug_FormClosed(object sender, FormClosedEventArgs e) + { + this.tbBcd.KeyDown -= tbBcd_KeyDown; + timer1.Stop(); + } + + private void fDebug_Load(object sender, EventArgs e) + { + timer1.Enabled = true; + } + + private void timer1_Tick(object sender, EventArgs e) + { + + } + + private void lb4_Click(object sender, EventArgs e) + { + + } + + private void button1_Click(object sender, EventArgs e) + { + //manualbcd(); + } + + private void button2_Click(object sender, EventArgs e) + { + var reel = new Class.Reel(textBox1.Text); + PUB.PrinterL.Print(reel, true, AR.SETTING.Data.DrawOutbox); + PUB.log.Add("임시프린트L:" + textBox1.Text); + } + + private void button3_Click(object sender, EventArgs e) + { + var reel = new Class.Reel(textBox2.Text); + PUB.PrinterR.Print(reel, true, AR.SETTING.Data.DrawOutbox); + PUB.log.Add("임시프린트R:" + textBox2.Text); + } + + private void button4_Click(object sender, EventArgs e) + { + textBox3.Text = "N/A"; + } + + private void button5_Click(object sender, EventArgs e) + { + textBox4.Text = "N/A"; + } + + private void button9_Click(object sender, EventArgs e) + { + textBox3.Text = string.Empty; + } + + private void button8_Click(object sender, EventArgs e) + { + textBox4.Text = string.Empty; + } + + private void button6_Click(object sender, EventArgs e) + { + PUB.PrinterL.TestPrint(false, textBox3.Text, textBox4.Text); + var zpl = PUB.PrinterL.LastPrintZPL; + //PUB.PrintSend(true, zpl); + } + + private void button7_Click(object sender, EventArgs e) + { + PUB.PrinterR.TestPrint(false, textBox3.Text, textBox4.Text); + var zpl = PUB.PrinterR.LastPrintZPL; + //PUB.PrintSend(false, zpl); + } + + private void button10_Click(object sender, EventArgs e) + { + var amk = new StdLabelPrint.CAmkorSTDBarcode(); + amk.SetBarcode(textBox5.Text); + } + //void manualbcd() + //{ + // if (tbBcd.Text.isEmpty()) + // { + // tbBcd.Focus(); + // return; + // } + // else + // { + // //Pub.manualbcd.RaiseRecvData(tbBcd.Text + "\n"); + // tbBcd.Focus(); + // tbBcd.SelectAll(); + // } + //} + } +} diff --git a/Handler/Project/Dialog/fDebug.resx b/Handler/Project/Dialog/fDebug.resx new file mode 100644 index 0000000..1f666f2 --- /dev/null +++ b/Handler/Project/Dialog/fDebug.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Handler/Project/Dialog/fFinishJob.Designer.cs b/Handler/Project/Dialog/fFinishJob.Designer.cs new file mode 100644 index 0000000..8e8cfe5 --- /dev/null +++ b/Handler/Project/Dialog/fFinishJob.Designer.cs @@ -0,0 +1,517 @@ +namespace Project.Dialog +{ + partial class fFinishJob + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fFinishJob)); + this.button1 = new System.Windows.Forms.Button(); + this.dataGridView1 = new System.Windows.Forms.DataGridView(); + this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column5 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column6 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.label2 = new System.Windows.Forms.Label(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.dataGridView2 = new System.Windows.Forms.DataGridView(); + this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column7 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column8 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.label3 = new System.Windows.Forms.Label(); + this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); + this.dataGridView3 = new System.Windows.Forms.DataGridView(); + this.dataGridViewTextBoxColumn5 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn6 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column9 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column10 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn7 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn8 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridView4 = new System.Windows.Forms.DataGridView(); + this.dataGridViewTextBoxColumn9 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn10 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column11 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column12 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn11 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn12 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); + this.tableLayoutPanel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView2)).BeginInit(); + this.tableLayoutPanel2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView4)).BeginInit(); + this.SuspendLayout(); + // + // button1 + // + this.button1.BackColor = System.Drawing.Color.Gold; + this.button1.Dock = System.Windows.Forms.DockStyle.Top; + this.button1.Font = new System.Drawing.Font("맑은 고딕", 50F, System.Drawing.FontStyle.Bold); + this.button1.Location = new System.Drawing.Point(10, 10); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(1164, 105); + this.button1.TabIndex = 3; + this.button1.Text = "작업 완료"; + this.button1.UseVisualStyleBackColor = false; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // dataGridView1 + // + this.dataGridView1.AllowUserToAddRows = false; + this.dataGridView1.AllowUserToDeleteRows = false; + this.dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; + this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.Column1, + this.Column2, + this.Column5, + this.Column6, + this.Column3, + this.Column4}); + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle2.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dataGridView1.DefaultCellStyle = dataGridViewCellStyle2; + this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.dataGridView1.Location = new System.Drawing.Point(3, 3); + this.dataGridView1.MultiSelect = false; + this.dataGridView1.Name = "dataGridView1"; + this.dataGridView1.ReadOnly = true; + this.dataGridView1.RowHeadersVisible = false; + this.dataGridView1.RowTemplate.Height = 23; + this.dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dataGridView1.Size = new System.Drawing.Size(576, 354); + this.dataGridView1.TabIndex = 5; + // + // Column1 + // + this.Column1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + this.Column1.DefaultCellStyle = dataGridViewCellStyle1; + this.Column1.HeaderText = "SID"; + this.Column1.Name = "Column1"; + this.Column1.ReadOnly = true; + // + // Column2 + // + this.Column2.HeaderText = "REEL"; + this.Column2.Name = "Column2"; + this.Column2.ReadOnly = true; + this.Column2.Width = 66; + // + // Column5 + // + this.Column5.HeaderText = "L"; + this.Column5.Name = "Column5"; + this.Column5.ReadOnly = true; + this.Column5.Width = 41; + // + // Column6 + // + this.Column6.HeaderText = "R"; + this.Column6.Name = "Column6"; + this.Column6.ReadOnly = true; + this.Column6.Width = 43; + // + // Column3 + // + this.Column3.HeaderText = "KPC"; + this.Column3.Name = "Column3"; + this.Column3.ReadOnly = true; + this.Column3.Width = 61; + // + // Column4 + // + this.Column4.HeaderText = "LIMIT"; + this.Column4.Name = "Column4"; + this.Column4.ReadOnly = true; + this.Column4.Width = 71; + // + // label2 + // + this.label2.Dock = System.Windows.Forms.DockStyle.Top; + this.label2.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label2.Location = new System.Drawing.Point(10, 115); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(1164, 44); + this.label2.TabIndex = 6; + this.label2.Text = "현 작업 정보"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 2; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.Controls.Add(this.dataGridView1, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.dataGridView2, 1, 0); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Top; + this.tableLayoutPanel1.Location = new System.Drawing.Point(10, 159); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 1; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(1164, 360); + this.tableLayoutPanel1.TabIndex = 7; + // + // dataGridView2 + // + this.dataGridView2.AllowUserToAddRows = false; + this.dataGridView2.AllowUserToDeleteRows = false; + this.dataGridView2.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; + this.dataGridView2.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView2.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dataGridViewTextBoxColumn1, + this.dataGridViewTextBoxColumn2, + this.Column7, + this.Column8, + this.dataGridViewTextBoxColumn3, + this.dataGridViewTextBoxColumn4}); + dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle4.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dataGridView2.DefaultCellStyle = dataGridViewCellStyle4; + this.dataGridView2.Dock = System.Windows.Forms.DockStyle.Fill; + this.dataGridView2.Location = new System.Drawing.Point(585, 3); + this.dataGridView2.MultiSelect = false; + this.dataGridView2.Name = "dataGridView2"; + this.dataGridView2.ReadOnly = true; + this.dataGridView2.RowHeadersVisible = false; + this.dataGridView2.RowTemplate.Height = 23; + this.dataGridView2.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dataGridView2.Size = new System.Drawing.Size(576, 354); + this.dataGridView2.TabIndex = 5; + // + // dataGridViewTextBoxColumn1 + // + this.dataGridViewTextBoxColumn1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; + dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + this.dataGridViewTextBoxColumn1.DefaultCellStyle = dataGridViewCellStyle3; + this.dataGridViewTextBoxColumn1.HeaderText = "BATCH"; + this.dataGridViewTextBoxColumn1.Name = "dataGridViewTextBoxColumn1"; + this.dataGridViewTextBoxColumn1.ReadOnly = true; + // + // dataGridViewTextBoxColumn2 + // + this.dataGridViewTextBoxColumn2.HeaderText = "REEL"; + this.dataGridViewTextBoxColumn2.Name = "dataGridViewTextBoxColumn2"; + this.dataGridViewTextBoxColumn2.ReadOnly = true; + this.dataGridViewTextBoxColumn2.Width = 66; + // + // Column7 + // + this.Column7.HeaderText = "L"; + this.Column7.Name = "Column7"; + this.Column7.ReadOnly = true; + this.Column7.Width = 41; + // + // Column8 + // + this.Column8.HeaderText = "R"; + this.Column8.Name = "Column8"; + this.Column8.ReadOnly = true; + this.Column8.Width = 43; + // + // dataGridViewTextBoxColumn3 + // + this.dataGridViewTextBoxColumn3.HeaderText = "KPC"; + this.dataGridViewTextBoxColumn3.Name = "dataGridViewTextBoxColumn3"; + this.dataGridViewTextBoxColumn3.ReadOnly = true; + this.dataGridViewTextBoxColumn3.Width = 61; + // + // dataGridViewTextBoxColumn4 + // + this.dataGridViewTextBoxColumn4.HeaderText = "LIMIT"; + this.dataGridViewTextBoxColumn4.Name = "dataGridViewTextBoxColumn4"; + this.dataGridViewTextBoxColumn4.ReadOnly = true; + this.dataGridViewTextBoxColumn4.Width = 71; + // + // label3 + // + this.label3.Dock = System.Windows.Forms.DockStyle.Top; + this.label3.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label3.Location = new System.Drawing.Point(10, 519); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(1164, 44); + this.label3.TabIndex = 8; + this.label3.Text = "당일(1982-11-23) 작업 정보"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.label3.Click += new System.EventHandler(this.label3_Click); + // + // tableLayoutPanel2 + // + this.tableLayoutPanel2.ColumnCount = 2; + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel2.Controls.Add(this.dataGridView3, 0, 0); + this.tableLayoutPanel2.Controls.Add(this.dataGridView4, 1, 0); + this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel2.Location = new System.Drawing.Point(10, 563); + this.tableLayoutPanel2.Name = "tableLayoutPanel2"; + this.tableLayoutPanel2.RowCount = 1; + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel2.Size = new System.Drawing.Size(1164, 338); + this.tableLayoutPanel2.TabIndex = 9; + // + // dataGridView3 + // + this.dataGridView3.AllowUserToAddRows = false; + this.dataGridView3.AllowUserToDeleteRows = false; + this.dataGridView3.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; + this.dataGridView3.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView3.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dataGridViewTextBoxColumn5, + this.dataGridViewTextBoxColumn6, + this.Column9, + this.Column10, + this.dataGridViewTextBoxColumn7, + this.dataGridViewTextBoxColumn8}); + dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle6.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle6.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + dataGridViewCellStyle6.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle6.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle6.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dataGridView3.DefaultCellStyle = dataGridViewCellStyle6; + this.dataGridView3.Dock = System.Windows.Forms.DockStyle.Fill; + this.dataGridView3.Location = new System.Drawing.Point(3, 3); + this.dataGridView3.MultiSelect = false; + this.dataGridView3.Name = "dataGridView3"; + this.dataGridView3.ReadOnly = true; + this.dataGridView3.RowHeadersVisible = false; + this.dataGridView3.RowTemplate.Height = 23; + this.dataGridView3.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dataGridView3.Size = new System.Drawing.Size(576, 332); + this.dataGridView3.TabIndex = 5; + // + // dataGridViewTextBoxColumn5 + // + this.dataGridViewTextBoxColumn5.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; + dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + this.dataGridViewTextBoxColumn5.DefaultCellStyle = dataGridViewCellStyle5; + this.dataGridViewTextBoxColumn5.HeaderText = "SID"; + this.dataGridViewTextBoxColumn5.Name = "dataGridViewTextBoxColumn5"; + this.dataGridViewTextBoxColumn5.ReadOnly = true; + // + // dataGridViewTextBoxColumn6 + // + this.dataGridViewTextBoxColumn6.HeaderText = "REEL"; + this.dataGridViewTextBoxColumn6.Name = "dataGridViewTextBoxColumn6"; + this.dataGridViewTextBoxColumn6.ReadOnly = true; + this.dataGridViewTextBoxColumn6.Width = 66; + // + // Column9 + // + this.Column9.HeaderText = "L"; + this.Column9.Name = "Column9"; + this.Column9.ReadOnly = true; + this.Column9.Width = 41; + // + // Column10 + // + this.Column10.HeaderText = "R"; + this.Column10.Name = "Column10"; + this.Column10.ReadOnly = true; + this.Column10.Width = 43; + // + // dataGridViewTextBoxColumn7 + // + this.dataGridViewTextBoxColumn7.HeaderText = "KPC"; + this.dataGridViewTextBoxColumn7.Name = "dataGridViewTextBoxColumn7"; + this.dataGridViewTextBoxColumn7.ReadOnly = true; + this.dataGridViewTextBoxColumn7.Width = 61; + // + // dataGridViewTextBoxColumn8 + // + this.dataGridViewTextBoxColumn8.HeaderText = "LIMIT"; + this.dataGridViewTextBoxColumn8.Name = "dataGridViewTextBoxColumn8"; + this.dataGridViewTextBoxColumn8.ReadOnly = true; + this.dataGridViewTextBoxColumn8.Width = 71; + // + // dataGridView4 + // + this.dataGridView4.AllowUserToAddRows = false; + this.dataGridView4.AllowUserToDeleteRows = false; + this.dataGridView4.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; + this.dataGridView4.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView4.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dataGridViewTextBoxColumn9, + this.dataGridViewTextBoxColumn10, + this.Column11, + this.Column12, + this.dataGridViewTextBoxColumn11, + this.dataGridViewTextBoxColumn12}); + dataGridViewCellStyle8.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle8.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle8.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + dataGridViewCellStyle8.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle8.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle8.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dataGridView4.DefaultCellStyle = dataGridViewCellStyle8; + this.dataGridView4.Dock = System.Windows.Forms.DockStyle.Fill; + this.dataGridView4.Location = new System.Drawing.Point(585, 3); + this.dataGridView4.MultiSelect = false; + this.dataGridView4.Name = "dataGridView4"; + this.dataGridView4.ReadOnly = true; + this.dataGridView4.RowHeadersVisible = false; + this.dataGridView4.RowTemplate.Height = 23; + this.dataGridView4.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dataGridView4.Size = new System.Drawing.Size(576, 332); + this.dataGridView4.TabIndex = 5; + // + // dataGridViewTextBoxColumn9 + // + this.dataGridViewTextBoxColumn9.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; + dataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + this.dataGridViewTextBoxColumn9.DefaultCellStyle = dataGridViewCellStyle7; + this.dataGridViewTextBoxColumn9.HeaderText = "BATCH"; + this.dataGridViewTextBoxColumn9.Name = "dataGridViewTextBoxColumn9"; + this.dataGridViewTextBoxColumn9.ReadOnly = true; + // + // dataGridViewTextBoxColumn10 + // + this.dataGridViewTextBoxColumn10.HeaderText = "REEL"; + this.dataGridViewTextBoxColumn10.Name = "dataGridViewTextBoxColumn10"; + this.dataGridViewTextBoxColumn10.ReadOnly = true; + this.dataGridViewTextBoxColumn10.Width = 66; + // + // Column11 + // + this.Column11.HeaderText = "L"; + this.Column11.Name = "Column11"; + this.Column11.ReadOnly = true; + this.Column11.Width = 41; + // + // Column12 + // + this.Column12.HeaderText = "R"; + this.Column12.Name = "Column12"; + this.Column12.ReadOnly = true; + this.Column12.Width = 43; + // + // dataGridViewTextBoxColumn11 + // + this.dataGridViewTextBoxColumn11.HeaderText = "KPC"; + this.dataGridViewTextBoxColumn11.Name = "dataGridViewTextBoxColumn11"; + this.dataGridViewTextBoxColumn11.ReadOnly = true; + this.dataGridViewTextBoxColumn11.Width = 61; + // + // dataGridViewTextBoxColumn12 + // + this.dataGridViewTextBoxColumn12.HeaderText = "LIMIT"; + this.dataGridViewTextBoxColumn12.Name = "dataGridViewTextBoxColumn12"; + this.dataGridViewTextBoxColumn12.ReadOnly = true; + this.dataGridViewTextBoxColumn12.Width = 71; + // + // fFinishJob + // + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 17F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.White; + this.ClientSize = new System.Drawing.Size(1184, 911); + this.Controls.Add(this.tableLayoutPanel2); + this.Controls.Add(this.label3); + this.Controls.Add(this.tableLayoutPanel1); + this.Controls.Add(this.label2); + this.Controls.Add(this.button1); + this.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Margin = new System.Windows.Forms.Padding(4); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fFinishJob"; + this.Padding = new System.Windows.Forms.Padding(10); + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "작업완료"; + this.Load += new System.EventHandler(this.@__LoaD); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); + this.tableLayoutPanel1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView2)).EndInit(); + this.tableLayoutPanel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView4)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + private System.Windows.Forms.Button button1; + private System.Windows.Forms.DataGridView dataGridView1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.DataGridView dataGridView2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; + private System.Windows.Forms.DataGridView dataGridView3; + private System.Windows.Forms.DataGridView dataGridView4; + private System.Windows.Forms.DataGridViewTextBoxColumn Column1; + private System.Windows.Forms.DataGridViewTextBoxColumn Column2; + private System.Windows.Forms.DataGridViewTextBoxColumn Column5; + private System.Windows.Forms.DataGridViewTextBoxColumn Column6; + private System.Windows.Forms.DataGridViewTextBoxColumn Column3; + private System.Windows.Forms.DataGridViewTextBoxColumn Column4; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2; + private System.Windows.Forms.DataGridViewTextBoxColumn Column7; + private System.Windows.Forms.DataGridViewTextBoxColumn Column8; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn3; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn4; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn5; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn6; + private System.Windows.Forms.DataGridViewTextBoxColumn Column9; + private System.Windows.Forms.DataGridViewTextBoxColumn Column10; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn7; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn8; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn9; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn10; + private System.Windows.Forms.DataGridViewTextBoxColumn Column11; + private System.Windows.Forms.DataGridViewTextBoxColumn Column12; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn11; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn12; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/fFinishJob.cs b/Handler/Project/Dialog/fFinishJob.cs new file mode 100644 index 0000000..58688a5 --- /dev/null +++ b/Handler/Project/Dialog/fFinishJob.cs @@ -0,0 +1,177 @@ +using System; +using System.Drawing; +using System.Windows.Forms; +using System.Linq; +using System.Collections.Generic; + +namespace Project.Dialog +{ + public partial class fFinishJob : Form + { + public string Command = string.Empty; + + public fFinishJob() + { + InitializeComponent(); + this.KeyPreview = true; + this.KeyDown += (s1, e1) => + { + if (e1.KeyCode == Keys.Escape) + { + Close(); + } + }; + if (System.Diagnostics.Debugger.IsAttached == true) + { + this.TopMost = false; + } + this.FormClosed += fFinishJob_FormClosed; + } + + + + void fFinishJob_FormClosed(object sender, FormClosedEventArgs e) + { + // Comm.WebService.Message -= WebService_Message; + } + + private void button1_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void __LoaD(object sender, EventArgs e) + { + this.Text = string.Format("금일 작업 목록 입니다({0})", DateTime.Now.ToShortDateString()); + + + if (AR.SETTING.Data.OnlineMode) + { + RefreshData(); + } + + //lbCntL.Text = cntl.ToString(); + //lbCntR.Text = cntr.ToString(); + //lbSumQty.Text = qty.ToString(); + } + + void RefreshData() + { + + int cntl = 0; + int cntr = 0; + float qty = 0; + + using (var db = new EEEntities()) + { + var sd = DateTime.Parse(DateTime.Now.ToShortDateString() + " 00:00:00"); + var ed = DateTime.Parse(DateTime.Now.ToShortDateString() + " 23:59:59"); + + if (PUB.Result.JobStartTime.Year != 1982) sd = PUB.Result.JobStartTime; + if (PUB.Result.JobEndTime.Year != 1982) ed = PUB.Result.JobEndTime; + + label2.Text = string.Format("현 작업 정보({0}~{1})", sd.ToString("HH:mm:ss"), ed.ToString("HH:mm:ss")); + + //현작업 + var ta = new DataSet1TableAdapters.Component_Reel_ResultTableAdapter(); + var list = ta.GetByValidGuid(sd, ed, AR.SETTING.Data.McName,PUB.Result.guid); + //var list = db.Component_Reel_Result.Where(t => t.STIME >= sd && t.STIME <= ed && t.PRNVALID == true && t.PRNATTACH == true && t.MC == AR.SETTING.Data.McName); + UpdateList(list, dataGridView1, dataGridView2); + + + //당일작업 + sd = DateTime.Parse(sd.ToShortDateString() + " 00:00:00"); + ed = DateTime.Parse(sd.ToShortDateString() + " 23:59:59"); + label3.Text = $"당일({sd.ToShortDateString()}) 작업 정보"; + var listday = ta.GetByValid(sd, ed, AR.SETTING.Data.McName); + UpdateList(listday, dataGridView3, dataGridView4); + //if (list != null && list.Count() > 0) + //{ + // cntl = list.Where(t => t.LOC == "L").GroupBy(t => t.RID0).Count(); + // cntr = list.Where(t => t.LOC == "R").GroupBy(t => t.RID0).Count(); + //} + //dbqty = list.Sum(t => t.QTY); + //if (dbqty != null) qty = ((int)dbqty); + } + } + + void UpdateList(DataSet1.Component_Reel_ResultDataTable list, DataGridView dvS, DataGridView dvB) + { + dvS.Rows.Clear(); + dvB.Rows.Clear(); + + int sum_reel = 0; + int sum_cntl = 0; + int sum_cntr = 0; + double sum_kpc = 0; + + if (list != null && list.Count() > 0) + { + //SID별 + sum_reel = 0; + sum_cntl = 0; + sum_cntr = 0; + sum_kpc = 0; + + var grplist = list.OrderBy(t => t.SID).GroupBy(t => t.SID); + foreach (var row in grplist) + { + var sid = row.Key; + var reel = row.Count(); + var cntl = row.Where(t => t.LOC == "L")?.Count() ?? 0; + var cntr = row.Where(t => t.LOC == "R")?.Count() ?? 0; + double kpc = row.Sum(t => t.QTY) ; + if (kpc > 0) kpc = kpc / 1000.0; + + var lim = -1; + dvS.Rows.Add(new object[] { sid, reel, cntl, cntr, kpc, lim }); + + sum_reel += reel; + sum_cntl += cntl; + sum_cntr += cntr; + sum_kpc += kpc; + } + dvS.Rows.Add(new object[] { "TOTAL", sum_reel, sum_cntl, sum_cntr, sum_kpc, null }); + dvS.Rows[dvS.RowCount - 1].DefaultCellStyle.BackColor = Color.DimGray; + + + //배치별 + sum_reel = 0; + sum_cntl = 0; + sum_cntr = 0; + sum_kpc = 0; + + var grpbatch = list.OrderBy(t => t.BATCH).GroupBy(t => t.BATCH); + foreach (var row in grpbatch) + { + var sid = row.Key; + if (sid.isEmpty()) sid = "(none)"; + var reel = row.Count(); + var cntl = row.Where(t => t.LOC == "L")?.Count() ?? 0; + var cntr = row.Where(t => t.LOC == "R")?.Count() ?? 0; + double kpc = row.Sum(t => t.QTY) ; + if (kpc > 0) kpc = kpc / 1000.0; + + var lim = -1; + dvB.Rows.Add(new object[] { sid, reel, cntl, cntr, kpc, lim }); + + sum_reel += reel; + sum_cntl += cntl; + sum_cntr += cntr; + sum_kpc += kpc; + } + dvB.Rows.Add(new object[] { "TOTAL", sum_reel, sum_cntl, sum_cntr, sum_kpc, null }); + dvB.Rows[dvB.RowCount - 1].DefaultCellStyle.BackColor = Color.DimGray; + + } + dvS.Invalidate(); + dvB.Invalidate(); + } + + private void label3_Click(object sender, EventArgs e) + { + if (AR.SETTING.Data.OnlineMode) + RefreshData(); + } + } +} diff --git a/Handler/Project/Dialog/fFinishJob.resx b/Handler/Project/Dialog/fFinishJob.resx new file mode 100644 index 0000000..da8edcf --- /dev/null +++ b/Handler/Project/Dialog/fFinishJob.resx @@ -0,0 +1,449 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + + + AAABAAMAMDAAAAEAIACoJQAANgAAACAgAAABACAAqBAAAN4lAAAQEAAAAQAgAGgEAACGNgAAKAAAADAA + AABgAAAAAQAgAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgaZsA5C1 + fwOTuIIDkbaAA5K3gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3 + gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3 + gQOSt4EDkreBA5G2gAOTuIIDkLV/A4GmbAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAfaJmBAAAAAB6n2IdfaJmkoescoeIrnSDh61zhIitc4SIrXOEiK1zhIitc4SIrXOEiK1zhIit + c4SIrXOEiK1zhIitc4SIrXOEiK1zhIitc4SIrXOEiK1zhIitc4SIrXOEiK1zhIitc4SIrXOEiK1zhIit + c4SIrXOEiK1zhIitc4SIrXOEiK1zhIitc4SIrXOEiK1zhIetc4SIrnSDh6xyh32iZpJ6n2IdAAAAAH2i + ZgQAAAAAAAAAAAAAAAAAAAAAiKx0BwAAAACApWk1ia52/6DElP+kyJn9osaW/qLGl/+ixpf/osaX/6LG + l/+ixpf/osaX/6LGl/+ixpf/osaX/6LGl/+ixpf/osaX/6LGl/+ixpf/osaX/6LGl/+ixpf/osaX/6LG + l/+ixpf/osaX/6LGl/+ixpf/osaX/6LGl/+ixpf/osaX/6LGl/+ixpf/osaX/6LGlv6kyJn9oMSU/4mu + dv+ApWk1AAAAAIisdAcAAAAAAAAAAAAAAAAAAAAAl7uIBgAAAACIrXQrmr6M47/ivf3E58P8weS/+sLk + wPvC5MD7wuTA+8LkwPvC5MD7wuTA+8LkwPvC5MD7wuTA+8LkwPvC5MD7wuTA+8LkwPvB5MD7wuTA+8Lk + wPvC5MD7wuTA+8LkwPvC5MD7wuTA+8LkwPvC5MD7wuTA+8LkwPvC5MD7wuTA+8LkwPvC5MD7wuTA+8Hk + v/rE58P8v+K9/Zq+jOOIrXQrAAAAAJe7iAYAAAAAAAAAAAAAAAAAAAAAlLiEBgAAAACHq3Itl7uH67nc + tf++4bz+u964/bzfuf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzf + uf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzf + uf6837n+vN+5/rveuP2+4bz+udy1/5e7h+uHq3ItAAAAAJS4hAYAAAAAAAAAAAAAAAAAAAAAlLiEBgAA + AACHq3Isl7uI67rdtv+/4r3/vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzf + uf694Lr+vN+5/r3guv694Lr+vN+5/rzfuf694Lr+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzf + uf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJS4hAYAAAAAAAAAAAAA + AAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/73guv+94Lr/veC6/73g + uv+837n/veC6/73guv+73rf/weO//7ndtf+z163/weTA/7zfuf+837n/veC6/7zfuf+94Lr/veC6/73g + uv+94Lr/veC6/73guv+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5 + hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/73g + uv+94Lr/veC6/7zfuf+94Lr/vN+5/7veuP/C5MH/stet/6bHm/+oxpz/qc6h/7/ivf++4bz/u964/73g + uv+837n/veC6/73guv+94Lr/veC6/73guv+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7 + iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3g + uv+94Lr/veC6/73guv+94Lr/vN+5/73guv+837n/vd+5/8Djvv+02bD/p8ic/8LTt//R3cn/q8ef/67R + p/+94bv/v+K9/7veuP+94Lr/vN+5/73guv+94Lr/veC6/73guv+94Lr/veC6/73guv+94Lr/veC6/7zf + uf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rd + tv+/4r3/vN+5/r3guv+94Lr/veC6/73guv+837n/veC6/7zfuf+94Lr/vuG8/7fasv+mx5v/xte8//b4 + 9P/9/f3/3ObW/6zHoP+u0qf/veG7/77hvP+837n/veC6/73guv+94Lr/veC6/73guv+94Lr/veC6/73g + uv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAA + AACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/73guv+94Lr/vN+5/73guv++4bz/uNu0/6XH + mv/I2b7/9Pfy/////////////f39/9zm1v+tyKD/rtGm/7/ivf+94Lr/vN+5/7zfuf+94Lr/veC6/73g + uv+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAA + AAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/7zfuf+94Lr/u964/8Hj + v/+22bH/o8SX/83exv/2+fX///////39/P/+/f3///////7+/f/h69z/rsmh/6nNn//C5cH/vN+4/7zf + uf+94Lr/vN+5/73guv+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5 + hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/73g + uv+837j/wuTA/7LXrf+nx5z/zNvE//b49P//////+/v6/8bWvP+uxaH/7vLr//7+/v/+////4Oja/7LK + pv+ozJ//wuXB/73guv+837n/veC6/7zfuf+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7 + iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3g + uv+94Lr/vN+5/7zfuf++4Lv/t9uz/6rLoP/C1Lj//Pz7///////4+ff/zNvF/6fInP+kyJr/uM6t/+zw + 6P/+/v7///7//+Do2v+yy6f/qc2h/7/ivf++4bz/u964/73guv+837n/veC6/73guv+94Lr/veC6/7zf + uf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rd + tv+/4r3/vN+5/r3guv+94Lr/vN+5/7zfuf++4Lv/t9uz/6rKn//C07j//v7+//z8+//N28T/qMec/7ba + sv/B47//p8qd/7nOrv/q8Of///////7+/v/g6dv/rcih/63Rpf+94bv/v+K9/7veuP+94Lr/vN+5/73g + uv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAA + AACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/73guv+73rj/wuXB/7HVq/+pyJ7/z97I/9Pg + zf+ryZ//stas/8LkwP+94Lr/vuG8/6PGmP+90rT/6/Dn///////8/fv/3+rb/6/Ko/+u0ab/vOC5/7/h + vP+837n/veC6/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAA + AAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/7zfuf+94Lr/u964/7/j + vf+53LX/o8SY/6PFmP+53LX/wOO+/7veuP+837n/veC6/8Djvv+lyZv/uc+v/+rv5////////f79/+bs + 4f+tx6H/rNCl/8Djvv+837n/vN+5/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5 + hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/73g + uv+94Lr/vN+5/73guv+84Lr/ut22/7rdtv+84Lr/veC6/7zfuf+837n/veC6/73guv+/4rz/p8ue/7bO + q//r8ej///////7+/v/l7OH/ssun/6jNoP/B47//vN+5/7zfuf+94Lr/veC6/7zfuf6/4r3/ut22/5e7 + iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlLiEBgAAAACHq3Itl7uI67rdtv+/4r3/vN+5/r3g + uv+94Lr/veC6/73guv+837n/veC6/7zfuf+94Lr/vuG8/77hvP+94Lr/vN+5/73guv+94Lr/vN+5/7zf + uf+/4bz/vOC5/6jLnv+zy6j/7/Ps///////09vL/tcup/6PImf/C5MD/vN+5/7zfuf+94Lr/veC6/7zf + uf6/4r3/ut22/5e7iOuHq3ItAAAAAJS4hAYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3MsmLuI57rd + tv+/4r3/vN+5/r3guv+94Lr/veC6/73guv+94Lr/vN+5/73guv+837n/vN+5/7zfuf+837n/veC6/7zf + uf+837n/veC6/73guv+73rj/weO//7ndtf+qzKH/uc6t/9bhzv/A07b/sM+n/7fbs/++4Lv/vN+5/7zf + uf+94Lr/veC6/7zfuf6/4r3/ut22/5i7iOeHq3MsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAk7eDBgAA + AACGqnEwlbmG9rrdtv+/4r3+vN+5/r3guv+94Lr/veC6/73guv+94Lr/veC6/73guv+94Lr/veC6/73g + uv+94Lr/veC6/73guv+94Lr/veC6/7zfuf+94Lr/u963/8Djvv+94Lr/qMqe/6vHnv+nyJv/ttqy/8Hk + v/+83rj/veC6/73guv+94Lr/veC6/7zfuf6/4r3+ut22/5W5hvaGqnEwAAAAAJO3gwYAAAAAAAAAAAAA + AAAAAAAAkraCBwAAAACFqnI1lLiF/7nctf+/4r39vN+4/r3guv+94Lr/veC6/73guv+94Lr/veC6/73g + uv+94Lr/veC6/73guv+837n/veC6/7zfuf+837n/vN+5/7zfuf+837n/veC6/7veuP++4Lv/wOK+/7HV + q/+94Lr/v+K9/7veuP+94Lr/vN+5/73guv+94Lr/veC6/7zfuP6/4r39udy1/5S4hf+FqnI1AAAAAJK2 + ggcAAAAAAAAAAAAAAAAAAAAAlLmFBwAAAACIrXU0lruI/7ndtv+/4r39vN+5/r3guv+94Lr/veC6/73g + uv+94Lr/veC6/73guv+94Lr/veC6/73guv+84Lr/vN+5/73guv+94Lr/veC6/73guv+94Lr/veC6/73g + uv+837n/vN+5/73gu/+837n/vN+5/73guv+837n/veC6/73guv+94Lr/veC6/7zfuf6/4r39ud22/5a7 + iP+IrXU0AAAAAJS5hQcAAAAAAAAAAAAAAAAAAAAAlLmFBwAAAACHrXU0lruI/7ndtv+/4r39vN+5/r3g + uv+94Lr/veC6/73guv+94Lr/veC6/73guv+94Ln/veC6/73guv+837n/vN+5/7zfuf+94Lv/vuG8/77h + vP+94Lv/vN+5/7zfuf+837n/veC6/73guv+94Lr/vN+5/73guv+94Lr/veC6/73guv+94Lr/veC6/7zf + uf6/4r39ud22/5a7iP+HrXU0AAAAAJS5hQcAAAAAAAAAAAAAAAAAAAAAk7iEBwAAAACHrXU0lruH/7nd + tv+/4r39vN+5/r3guv+94Lr/veC6/73guv+94Lr/veC6/7zfuf+94Lr/vN+5/7zfuf+837n/weS//7zf + uf+sz6P/oMWW/6DFlv+sz6T/vN+5/8Hkv/+837n/vN+5/7zfuf+94Lr/veC6/7zfuf+94Lr/veC6/73g + uv+94Lr/veC6/7zfuf6/4r39ud22/5a7h/+HrXU0AAAAAJO4hAcAAAAAAAAAAAAAAAAAAAAAlLmFBwAA + AACHrXU0lruH/7ndtv+/4r39vN+5/r3guv+94Lr/veC6/73guv+94Lr/veC6/73guv+837n/veC6/77h + u/+63bf/qMyg/5vBkP+awpD/mMGP/5fBj/+awpH/m8GQ/6jMn/+63rf/vuG7/73guv+837n/veC6/73g + uv+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r39ud22/5a7h/+HrXU0AAAAAJS5hQcAAAAAAAAAAAAA + AAAAAAAAlLmFBwAAAACHrXU0lruH/7ndtv+/4r39vN+5/r3guv+94Lr/veC6/73guv+94Lr/vN+5/7zf + uf+837n/veC5/7rdtv+kyJr/krmF/5G7h/+ZxJL/n8qa/57Kmv+ZxJL/kbqG/5K5hf+kyZr/ut23/7zg + uf+84Ln/vN+5/7zfuf+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r39ud22/5a7h/+HrXU0AAAAAJS5 + hQcAAAAAAAAAAAAAAAAAAAAAk7iEBwAAAACHrXU0lruH/7nctf+/4r39u9+4/rzfuf+837n/vN+5/7zf + uf+837n/vN+5/7zfuP++4bv/vN+5/6XJm/+QuIL/mMOR/6POoP+eyZn/nciY/57ImP+eyZn/o86g/5jD + kf+QuIP/psmd/7zfuf++4bv/vN+4/7zfuf+837n/vN+5/7zfuf+837n/vN+5/7vfuP6/4r39udy1/5a7 + h/+HrXU0AAAAAJO4hAcAAAAAAAAAAAAAAAAAAAAAlLmFBwAAAACIrXU0lruI/7rdtv/A4779vN+5/r3g + uv+94Lr/veC6/73guv+94Lr/veC6/73guv/A4r7/uNu0/4+1gP+Yw5H/oMyd/53Hl/+dyJj/nciY/53I + mP+dyJj/nceX/6DMnf+Yw5H/j7WA/7nbtf/A4r7/vOC5/73guv+94Lr/veC6/73guv+94Lr/veC6/7zf + uf7A4779ut22/5a7iP+IrXU0AAAAAJS5hQcAAAAAAAAAAAAAAAAAAAAAlLmGBwAAAACIrnY0l7yJ/7ve + uP/B5MD9veG7/r7hvP++4bz/vuG8/77hvP++4bz/vuG7/8Djvv+837n/qc6h/5S9iv+axZT/n8qb/53I + mP+eyZn/nsmZ/57Jmf+eyZn/nciY/5/Km/+axZT/lLyJ/6rOof+837n/wOO+/77hu/++4bz/vuG8/77h + vP++4bz/vuG8/77hu/7B5MD9u964/5e8if+IrnY0AAAAAJS5hgcAAAAAAAAAAAAAAAAAAAAAh6tyBwAA + AACApGk1iKx0/53BkP+hxZX9n8OT/6DElP+gxJT/oMSU/6DElP+gxJT/n8OT/6LGl/+avo3/i7F7/5nE + kv+eyZn/nciY/53ImP+dyJj/nsmZ/57Jmf+dyJj/nciY/53ImP+eyZn/mcOS/4uxev+avo3/osaX/5/D + k/+gxJT/oMSU/6DElP+gxJT/oMSU/5/Dk/+gxJX9ncGQ/4isdP+ApGk1AAAAAIercwcAAAAAAAAAAAAA + AAAAAAAAia12BgAAAAB9oWYtjK957qrOov+iyZr+mMCO/pjBj/6YwY//mMGP/5jBj/+YwY//mMGP/5nC + kP+Wv4z/kruI/5zHl/+eyZn/nciY/53ImP+eyZn/nsmZ/57Jmf+eyZn/nciY/53ImP+eyZr/nMiX/5K7 + h/+Wv4z/mcKQ/5jBj/+YwY//mMGP/5jBj/+YwY//mMGP/pjBjv6jypr+qs6i/4yvee59oWUtAAAAAImt + dQYAAAAAAAAAAAAAAAAAAAAAjbJ8BQAAAAB1mlwhkraCwr/ivf613LT/os2e/Z7Kmv+gy5z/n8ub/5/L + m/+fy5v/n8ub/5/Lm/+gy5z/ocye/57Jmf+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+dyJj/nsmZ/6HMnv+gy5z/n8ub/5/Lm/+fy5v/n8ub/5/Lm/+gy5z/nsqa/6LNnv223LT/v+K9/pK2 + gcJ1mlwhAAAAAI6yfAUAAAAAAAAAAAAAAAAAAAAAgadsAwAAAABTfC8Phqxzfq7Sp/W427T/p8+i/JrG + lf6eyZn/nciY/53ImP+dyJj/nciY/53ImP+dyJj/nciY/53ImP+eyZn/nciY/57JmP+eyZn/nsmZ/57J + mf+eyZn/nsmY/53ImP+eyZn/nciY/53Il/+dyJj/nciY/53ImP+dyJj/nciY/53ImP+eyZn/msaV/qfP + ovy427P/rtGm9YetdH1UfDIPAAAAAIKobQMAAAAAAAAAAAAAAAAAAAAAAAAAANT33wEAAAAAfKFlIpe7 + itm32bH/r9ar/ZvGlf6eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/m8aV/q/Wq/232bH/lruH2XimZiEAAAAA1efOAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIyw + ewMAAAAAdZpeComtd7S016/9tty0/6HLnP2dyJj+nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+dyJj+ocuc/bfdtP+01679ia11tXWaWwoAAAAAjLB5AwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAIOpcAIAAAAAWYE6BX6kaXyv0afuut23/6nRpfubx5b/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+bx5b/qdGk+7rdtv+u0abugKRqeluAOwUAAAAAhalxAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHebWySbv47GtNau/7LYsPubx5b+nsmZ/p7I + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciZ/57Jmf6bx5b+stiv+7PWrf+bv43FeppfIwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMs3wBAAAAAAAAAACDq3GgrNGl/7vg + uf6gypv9nsmZ/53ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciY/57Jmf+gypv9u+C5/q3Q + pf+FqXCfAAAAAAAAAACOsnwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIq3IBAAAAAAAA + AAB7oWR0qM2f6Lzguf+q0aX8nciX/53ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciY/53I + l/+q0qX8u+C5/6nNoOd8oGZzAAAAAAAAAACIqnMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABojlAoncGRuLPWrf+02rH6nMeX/pzIl/6dyJj+nciY/p3ImP6dyJj+nciY/p3I + mP6dyJj+nciY/p3ImP6dyJj+nciY/p3ImP6dyJj+nciY/p3ImP6dyJj+nciY/p3ImP6dyJj+nciY/p3I + mP6dyJj+nMiX/pzHl/602rH6s9at/53BkbhpjEsnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJm6iAIAAAAAh6x0f6bJm/+74Lr8oMqc/pvHlv6bx5b+nMeW/pzH + lv6cx5b+nMeW/pzHlv6cx5b+nMeW/pzHlv6cx5b+nMeW/pzHlv6cx5b+nMeW/pzHlv6cx5b+nMeW/pzH + lv6cx5b+nMeW/pzHlv6bx5b+m8eW/qDLnP674Lr8psmb/4esdH8AAAAAmbqIAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIisdQIAAAAAd5xfZaHElebF6MX8u9+5+brf + uPq637j6ut+4+rrfuPq637j6ut+4+rrfuPq637j6ut+4+rrfuPq637j6ut+4+rrfuPq637j6ut+4+rrf + uPq637j6ut+4+rrfuPq637j6ut+4+rrfuPq637j6ut+4+rvgufnF6MX8ocSV5necXmQAAAAAiKx0AgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH+obAEAAAAAapRRJpG3 + gamixpb/qMuf/KnMn/6py5//qcuf/6nLn/+py5//qcuf/6nLn/+py5//qcuf/6nLn/+py5//qcuf/6nL + n/+py5//qcuf/6nLn/+py5//qcuf/6nLn/+py5//qcuf/6nLn/+py5//qcyf/qjLn/yixpb/kbaBqGuS + UCUAAAAAgKdsAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACet4sCAAAAAH2lZ0KGq3KVjrN+ho6yfYiNsn2IjrJ9iI6yfYiOsn2IjrJ9iI6yfYiOsn2IjrJ9iI6y + fYiOsn2IjrJ9iI6yfYiOsn2IjrJ9iI6yfYiOsn2IjrJ9iI6yfYiOsn2IjrJ9iI6yfYiNsn2IjrJ9iI6z + foaGq3KVfqRoQgAAAACWuoQCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIatcgGQtX8DmLyKA5i8igOXu4kDmLyKA5i8 + igOYvIoDmLyKA5i8igOYvIoDmLyKA5i8igOYvIoDmLyKA5i8igOYvIoDmLyKA5i8igOYvIoDmLyKA5i8 + igOYvIoDmLyKA5i8igOXu4kDmLyKA5i8igOQtX8DhqxzAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///////wAA////////AAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgA + AAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAf + AAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgA + AAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAf + AAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA/AAAAAA/AAD8AAAAAD8AAPwA + AAAAPwAA/gAAAAB/AAD+AAAAAH8AAP4AAAAAfwAA/wAAAAD/AAD/AAAAAP8AAP+AAAAB/wAA/4AAAAH/ + AAD/gAAAAf8AAP/AAAAD/wAA////////AAD///////8AACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/pGgBAAAAAHugZE6DqG1jhKpvW4Spbl2EqW5dhKluXYSp + bl2EqW5dhKluXYSpbl2EqW5dhKluXYSpbl2EqW5dhKluXYSpbl2EqW5dhKluXYSpbl2EqW5dhKluXYSp + bl2EqW5dhKpvW4OobWN7oGROAAAAAH+kaAEAAAAAAAAAAJq+jQQAAAAAjbF7vqjLnv+s0KP7qs6h/qvO + ov+rzqL/q86i/6vOov+rzqL/q86i/6vOov+qzqL/qs6i/6vOov+rzqL/q86i/6vOov+rzqL/q86i/6vO + ov+rzqL/q86i/6rOof6s0KP7qMue/42xe74AAAAAmr6NBAAAAAAAAAAArM+jBAAAAACZvYqtveC6/8Ll + wfjA4777weO//MDjv/vA47/7weO/+8Djv/vB47/7wOO++8Hjv/vA4777weO/+8Hjv/vB47/7wOO/+8Dj + v/vA47/7wOO/+8Djv/vB47/8wOO++8Llwfi94Lr/mb2KrQAAAACsz6MEAAAAAAAAAACny54EAAAAAJa6 + hrK427P/veC6+7ret/673rj+u964/rveuP673rf+u964/rrdt/6937r+u9+4/r3guv673rj+u963/rve + t/673rj+u964/rveuP673rj+u964/rveuP663rf+veC6+7jbs/+WuoayAAAAAKfLngQAAAAAAAAAAKjM + nwQAAAAAlrqHsbnctf++4bz7vN+5/r3guv+94Lr+veC6/7zfuf+73rj/vuG8/7ndtv+oyp7/rdCl/77i + vP+837r/vN+5/7zfuv+94Lr/veC6/73guv+94Lr+veC6/7zfuf6+4bz7udy1/5a6h7EAAAAAqMyfBAAA + AAAAAAAAqMyfBAAAAACWuoexudy0/77hu/u837n+veC6/7zfuf6837n+u964/r/hvP643bX+qsqg/tXf + zf7C1Lj+q8+j/r/ivf6837n+vN+5/r3guv6837n+vN+5/rzfuf694Lr/vN+5/r7hu/u53LT/lrqHsQAA + AACozJ8EAAAAAAAAAACozJ8EAAAAAJa6h7G53LT/vuG8+7zfuf694Lr/vN+5/rveuP+/4bz/uNy1/6vL + of/b5dX///////n6+f/C1bn/q8+j/7/ivf+837n/vN+5/73guv+94Lr/vN+5/r3guv+837n+vuG8+7nc + tP+WuoexAAAAAKjMnwQAAAAAAAAAAKjMnwQAAAAAlrqHsbnctP++4bz7vN+5/r3guv+837j+vuG8/7jc + tf+qyaD/3+nb///////n7eP/9ff0//3+/f/F17v/q86h/7/jvf+837n/vN+5/7zfuf+94Lr+veC6/7zf + uf6+4bz7udy0/5a6h7EAAAAAqMyfBAAAAAAAAAAAqMyfBAAAAACWuoexudy0/77hu/u837n+vN+5/73f + uv663rf/q8uh/+Ho2///////4ure/6TEmf+50K//9/j1//39/f/G1r3/q86j/7/ivf+837r/vN+4/7zf + uf694Lr/vN+5/r7hvPu53LT/lrqHsQAAAACozJ8EAAAAAAAAAACozJ8EAAAAAJa6h7G53LT/vuG7+7zf + uf6837n/vd+6/rret/+qyaD/5uzh/+ju5P+ryaD/u9+5/7DUqv+5z6//+Pn3//39/P/D1rr/q8+j/77i + vP+837n/vN+5/r3guv+837n+vuG8+7nctP+WuoexAAAAAKjMnwQAAAAAAAAAAKjMnwQAAAAAlrqHsbnc + tP++4bz7vN+5/r3guv+837j+vuG7/7jdtf+tzKT/rsyl/7ndtf++4Lv/v+K9/6/TqP+70bH/9ffz//3+ + /f/H177/rM+k/7/ivP+83rj+veC6/7zfuf6+4bz7udy0/5a6h7EAAAAAqMyfBAAAAAAAAAAAqMyfBAAA + AACWuoexudy0/77hu/u837n+veC6/7zfuf673rj/vuG7/7ndtv+53bb/vuG7/7veuP+837n/wOO+/67T + qP+40K7/9vn1///////A0rb/q9Ck/8Djvv673rj/vN+5/r7hu/u53LT/lrqHsQAAAACozJ8EAAAAAAAA + AACpzJ8EAAAAAJe6h6+53LX/vuG8+7zfuf694Lr/vN+5/rzfuf+837j/veC6/73gu/+837j/vN+5/7zf + uf+83rj/wOO+/63Spv+90rP/3+fY/7jRr/+z167/vuG8/rvfuP+837n+vuG8+7nctf+XuoevAAAAAKnM + nwQAAAAAAAAAAKfKngQAAAAAlLiFu7jbtP++4bv6vN+5/r3guv+94Lr+vN+5/7zguv+837n/vN+5/73f + uv+837n/vN+4/7veuP+73rj/wOO+/7LUq/+oyJz/tdiw/7/ivf+73rj+veC6/7zfuf6+4bv6uNu0/5S4 + hbsAAAAAp8qeBAAAAAAAAAAApsudBAAAAAGUuYbBuNu0/77hu/q837n/veC6/rzfuf694Lr/veC5/73g + uv+84Lr/u964/7zfuf++4bz/vuG8/7zfuf+73rj/vuG8/7vfuf++4bv/u964/7zfuf694Lr+vN+5/77h + u/q427T/lLmGwQAAAAGmy50EAAAAAAAAAACny50EAAAAAJW7h8G43LT/vuG8+rzfuf+94Lr+vN+5/rzf + uf+837n/vN+5/7veuP+/4rz/vuC7/7XYsP+12LD/veC7/7/ivf+73rj/vd+6/7zfuf+837n/veC6/r3g + uv6837n/vuG8+rjctP+Vu4fBAAAAAKfLnQQAAAAAAAAAAKfLnQQAAAAAlbqGwbjctP++4bz6vN+5/73g + uv694Lr+veC6/7zfuf+837n/vuG7/7LWrf+ix5j/mcGP/5nBkP+ix5j/stas/77hu/+837n/vN+5/7zf + uf+94Lr+veC6/rzfuf++4bz6uNy0/5W6hsEAAAAAp8udBAAAAAAAAAAAp8ucBAAAAACVuobBt9uz/73g + u/q73rj/vN+4/rzfuP673rj/u963/73guv+u0qf/k7uH/5XAjv+dyJj/nciY/5XAjf+Tu4f/r9Ko/73g + uv+73rf/u964/7zfuP6837j+u964/73gu/q327P/lbqGwQAAAACny5wEAAAAAAAAAACozKAEAAAAAJa7 + iMG73rf/wOO/+r7hu/++4bz/vuG8/r7hu//A477/vN64/5O6h/+axpX/oMuc/53Hl/+dx5f/oMuc/5rG + lf+Uuof/vN65/8Djvv++4bv/vuG8/r7hvP++4bv/wOO/+rvet/+Wu4jBAAAAAKjMnwQAAAAAAAAAAKDE + lAQAAAABkbWBwa/SqP+22bH6tNeu/7TXr/6016//tNeu/7bZsf+jx5n/lb+N/57Jmv+cx5f/nciY/53I + mP+cx5f/nsma/5W/jP+jx5n/ttmx/7TXrv+016//tNev/rTXrv+22bH6r9Ko/5G2gcEAAAABn8SVBAAA + AAAAAAAAl7uIBAAAAACKrXe5ocaX/5rBkPqYv43+mMCO/5jAjf6YwI7/mMCO/5C4hP+bxpb/nciY/53I + mP+dyJj/nciY/53ImP+dyJj/m8eW/5C4g/+YwI7/mMCO/5jAjf6YwI7/mL+N/prCkPqhxpf/iq13uQAA + AACXu4kEAAAAAAAAAACny58DAAAAAJC0f4i43LX/qNGl+5zIl/6eypr/ncmZ/p3Jmf+eyZn/n8qc/53I + mP+dyJj/nsmY/57Jmf+eyZn/nsmY/53ImP+dyJj/n8qb/57Jmf+dyZn/ncmZ/p7Kmv+cyJf+qNGl+7nc + tf+QtH6HAAAAAKjMngMAAAAAAAAAAJa7iQEAAAAAdZxeLKfKneix163/m8aV/Z7Imf+dyJj+nciY/53I + mP+dyJj/nciY/53ImP+dyJj/nsmZ/57Jmf+dyJj/nciY/53ImP+dyJj/nciY/53ImP+dyJj+nsiZ/5vG + lf2x163/psmb6HSeXiwAAAAAlryIAQAAAAAAAAAAAAAAAAAAAAAAAAADmLuKvbjctf+hy5z7nMiX/p7J + mf+eyZn+nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/p7J + mf+cyJf+ocuc+7jctf+Yu4m9AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAu924AgAAAACNsntlsdOq/arS + p/yaxpX9nsmZ/p3ImP6dyJj+nciY/p3ImP6dyJj+nciY/p3ImP6dyJj+nciY/p3ImP6dyJj+nciY/p3I + mP6dyJj+nsmZ/prGlf2q0qb8sNOp/I6yfGQAAAAAt9yzAgAAAAAAAAAAAAAAAAAAAACBqG0CAAAAAGWP + Syiix5jntduz/5zHl/yeyJn/nsmZ/p7Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf6eyJn/nMeX/LXbs/+jxpjnZ4xKKAAAAACDp20CAAAAAAAAAAAAAAAAAAAAAHSZ + WwEAAAAABC4AB5q/jZ+12bD/oMqb+5jEk/6bxpX+msaV/prGlf6axpX+msaV/prGlf6axpX+msaV/prG + lf6axpX+msaV/prGlf6axpX+m8aV/pjEk/6gy5v7tdmw/5u/jp4CJgAHAAAAAHSYWwEAAAAAAAAAAAAA + AAAAAAAAAAAAAIqudwIAAAAAfqNoWK7Rpv+027T6pM6g+6fRo/un0KP7p9Cj+6fQo/un0KP7p9Cj+6fQ + o/un0KP7p9Cj+6fQo/un0KP7p9Cj+6fQo/un0KP7pM6g+7TctPqu0ab/fqNoWAAAAACKrncCAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAeaBjAQAAAABnj0wmncGQz6/SqP+v0qf9r9Gn/6/Rp/+v0af/r9Gn/6/R + p/+v0af/r9Gn/6/Rp/+v0af/r9Gn/6/Rp/+v0af/r9Gn/6/Rp/+v0qf9r9Ko/53BkM9njUolAAAAAHqf + YgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8o2Y+iK12Zoywe12Lr3pfjK96X4yv + el+Mr3pfjK96X4yvel+Mr3pfjK96X4yvel+Mr3pfjK96X4yvel+Mr3pfi696X4ywe12IrXZmfaNmPgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///////////gAAAH4AAAB+AAAAfgAAAH4AAAB+AA + AAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AA + AAfwAAAP8AAAD/gAAB/4AAAf+AAAH/wAAD/8AAA///////////8oAAAAEAAAACAAAAABACAAAAAAAAAE + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAH2iZxiGq3E8iK1zNoesczeHrHM3h6xyN4arcTeHrHM3h6xzN4es + czeHrHM3iK1zNoarcTx9omcYAAAAAAAAAACUuIRer9Oo/7TXrvaz1q35s9at+bTXrvm12LD5s9at+bPW + rfmz1q35s9at+bTXrvav06j/lLiEXgAAAAAAAAAAm7+NXbrdtv+/4r77vuG7/r/ivf+737j/stas/73h + u/+/4b3/vuG8/77hvP6/4r77ut22/5u/jV0AAAAAAAAAAJm9i12427P/veC6+73guv623LP+wNq5/ubs + 4f631rH+ud63/r3guv6837n+veC7+7jbs/+ZvYtdAAAAAAAAAACZvYtduNu0/77hvPu43bX+wdq7/u3x + 6f7a5tX+6/Dn/rjWsf653rb+veC6/r3gu/u427T/mb2LXQAAAAAAAAAAmb2LXbjbtP++4bz7uN21/sLa + vP7F3L//rdSn/87gyf/t8er/vNm3/rret/6+4bv7uNu0/5m9i10AAAAAAAAAAJm9i12427T/veC7+73g + uv653bX+uN21/7/ivf+y2K3/z+HJ/9PgzP6z2K/+v+K9+7jbs/+ZvYtdAAAAAAAAAACXvIpjt9uz/77h + u/u837n/veC6/r7gu/++4bv/wOO+/7fbs/+117D+veC6/77hu/u327P/l7yKYwAAAAAAAAAAmL2KZbfa + s/+94Lv7u9+4/73guv663bb/qs+k/6rPo/+73rj/vuG7/rveuP+94Lv7t9qz/5i9imUAAAAAAAAAAJi9 + i2W53LX/wOK++7/hvP+937n+nsWV/5nEk/+ZxJL/nsWV/73fuf6/4bz/wOK++7nctf+YvYtlAAAAAAAA + AACTtoJlp8yf/6fNoPupzqH/oceY/pnEk/+fypr/n8qa/5nEk/+hx5j+qM6h/6fNoPuozJ//k7aCZQAA + AAAAAAAAkbN/NKjOovubx5b/msaV/pvHlv6eyJn+nciY/p3ImP6eyZn+m8eW/prGlf6bx5b/qM6i+5G0 + fjQAAAAAAAAAAAAAAACpzaHBpM2g/53ImPyeyZn+nsmZ/p7Jmf6eyZn+nsmZ/p7Jmf6dyJj8pM2f/6nN + oMEAAAAAAAAAAKvPowMAAAAAn8OTcKnRpf+bx5b8ncmY/p3ImP+dyJj/nciY/53ImP+dyJj+m8eW/KnR + pf+gwpNvAAAAAKvPowOMsXsBAAAAAIKlayKozaDrqc+j/ajOofmozqH6qM6h+qjOofqozqH6qM6h+anP + o/2ozaDqgqVrIgAAAACNsXsBAAAAAAAAAAAAAAAAiq93LZq7ijuauok4mrqJOZq6iTmauok5mrqJOZq6 + iTiau4o7iq53LQAAAAAAAAAAAAAAAP//AADAAwAAwAMAAMADAADAAwAAwAMAAMADAADAAwAAwAMAAMAD + AADAAwAAwAMAAMADAADgBwAA4AcAAP//AAA= + + + \ No newline at end of file diff --git a/Handler/Project/Dialog/fHistory.Designer.cs b/Handler/Project/Dialog/fHistory.Designer.cs new file mode 100644 index 0000000..d8ebb94 --- /dev/null +++ b/Handler/Project/Dialog/fHistory.Designer.cs @@ -0,0 +1,555 @@ +namespace Project.Dialog +{ + partial class fHistory + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fHistory)); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = 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 dataGridViewCellStyle4 = 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(); + this.panel1 = new System.Windows.Forms.Panel(); + this.button3 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.btExport = new System.Windows.Forms.Button(); + this.dtED = new System.Windows.Forms.DateTimePicker(); + this.dtSD = new System.Windows.Forms.DateTimePicker(); + this.tbSearch = new System.Windows.Forms.ComboBox(); + this.btSearch = new System.Windows.Forms.Button(); + this.cm = new System.Windows.Forms.ContextMenuStrip(this.components); + this.목록저장ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.viewXMLToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); + this.sendDataToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.tbFind = new System.Windows.Forms.TextBox(); + this.statusStrip1 = new System.Windows.Forms.StatusStrip(); + this.dv = new arCtl.arDatagridView(); + this.bs = new System.Windows.Forms.BindingSource(this.components); + this.dataSet1 = new Project.DataSet1(); + this.ta = new Project.DataSet1TableAdapters.Component_Reel_ResultTableAdapter(); + this.panel2 = new System.Windows.Forms.Panel(); + this.button1 = new System.Windows.Forms.Button(); + this.sTIMEDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.ETIME = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.jTYPEDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.BATCH = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.sIDDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.SID0 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.rIDDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.rID0DataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.lOCDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.qTYDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.qtymax = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.vNAMEDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.VLOT = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.CUSTCODE = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.PARTNO = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewCheckBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.PRNVALID = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.panel1.SuspendLayout(); + this.cm.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dv)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bs)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).BeginInit(); + this.panel2.SuspendLayout(); + this.SuspendLayout(); + // + // panel1 + // + this.panel1.BackColor = System.Drawing.Color.Gainsboro; + this.panel1.Controls.Add(this.button3); + this.panel1.Controls.Add(this.button2); + this.panel1.Controls.Add(this.label1); + this.panel1.Controls.Add(this.btExport); + this.panel1.Controls.Add(this.dtED); + this.panel1.Controls.Add(this.dtSD); + this.panel1.Controls.Add(this.tbSearch); + this.panel1.Controls.Add(this.btSearch); + this.panel1.Dock = System.Windows.Forms.DockStyle.Top; + this.panel1.Location = new System.Drawing.Point(0, 0); + this.panel1.Name = "panel1"; + this.panel1.Padding = new System.Windows.Forms.Padding(5); + this.panel1.Size = new System.Drawing.Size(954, 75); + this.panel1.TabIndex = 0; + // + // button3 + // + this.button3.Location = new System.Drawing.Point(254, 8); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(42, 59); + this.button3.TabIndex = 13; + this.button3.Text = ">>"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click); + // + // button2 + // + this.button2.Location = new System.Drawing.Point(8, 8); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(42, 59); + this.button2.TabIndex = 12; + this.button2.Text = "<<"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // label1 + // + this.label1.Location = new System.Drawing.Point(302, 15); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(149, 23); + this.label1.TabIndex = 11; + this.label1.Text = "검색어를 입력하세요"; + // + // btExport + // + this.btExport.Font = new System.Drawing.Font("Calibri", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btExport.Image = ((System.Drawing.Image)(resources.GetObject("btExport.Image"))); + this.btExport.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.btExport.Location = new System.Drawing.Point(683, 11); + this.btExport.Name = "btExport"; + this.btExport.Padding = new System.Windows.Forms.Padding(10, 0, 5, 0); + this.btExport.Size = new System.Drawing.Size(145, 56); + this.btExport.TabIndex = 10; + this.btExport.Tag = "0"; + this.btExport.Text = "내보내기(&O)"; + this.btExport.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.btExport.UseVisualStyleBackColor = true; + this.btExport.Click += new System.EventHandler(this.btExport_Click); + // + // dtED + // + this.dtED.Location = new System.Drawing.Point(56, 38); + this.dtED.Name = "dtED"; + this.dtED.Size = new System.Drawing.Size(192, 26); + this.dtED.TabIndex = 2; + // + // dtSD + // + this.dtSD.Location = new System.Drawing.Point(56, 9); + this.dtSD.Name = "dtSD"; + this.dtSD.Size = new System.Drawing.Size(192, 26); + this.dtSD.TabIndex = 1; + // + // tbSearch + // + this.tbSearch.Font = new System.Drawing.Font("Calibri", 12F); + this.tbSearch.FormattingEnabled = true; + this.tbSearch.Location = new System.Drawing.Point(302, 40); + this.tbSearch.Name = "tbSearch"; + this.tbSearch.Size = new System.Drawing.Size(219, 27); + this.tbSearch.TabIndex = 0; + this.tbSearch.Tag = "0"; + // + // btSearch + // + this.btSearch.Font = new System.Drawing.Font("Calibri", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btSearch.Image = ((System.Drawing.Image)(resources.GetObject("btSearch.Image"))); + this.btSearch.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.btSearch.Location = new System.Drawing.Point(525, 11); + this.btSearch.Name = "btSearch"; + this.btSearch.Padding = new System.Windows.Forms.Padding(10, 0, 5, 0); + this.btSearch.Size = new System.Drawing.Size(155, 56); + this.btSearch.TabIndex = 9; + this.btSearch.Tag = "0"; + this.btSearch.Text = "검색(F5)"; + this.btSearch.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.btSearch.UseVisualStyleBackColor = true; + this.btSearch.Click += new System.EventHandler(this.btSearch_Click); + // + // cm + // + this.cm.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.목록저장ToolStripMenuItem, + this.viewXMLToolStripMenuItem, + this.toolStripMenuItem1, + this.sendDataToolStripMenuItem}); + this.cm.Name = "cm"; + this.cm.Size = new System.Drawing.Size(129, 76); + // + // 목록저장ToolStripMenuItem + // + this.목록저장ToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("목록저장ToolStripMenuItem.Image"))); + this.목록저장ToolStripMenuItem.Name = "목록저장ToolStripMenuItem"; + this.목록저장ToolStripMenuItem.Size = new System.Drawing.Size(128, 22); + this.목록저장ToolStripMenuItem.Text = "Export"; + this.목록저장ToolStripMenuItem.Click += new System.EventHandler(this.목록저장ToolStripMenuItem_Click); + // + // viewXMLToolStripMenuItem + // + this.viewXMLToolStripMenuItem.Name = "viewXMLToolStripMenuItem"; + this.viewXMLToolStripMenuItem.Size = new System.Drawing.Size(128, 22); + this.viewXMLToolStripMenuItem.Text = "View XML"; + this.viewXMLToolStripMenuItem.Click += new System.EventHandler(this.viewXMLToolStripMenuItem_Click); + // + // toolStripMenuItem1 + // + this.toolStripMenuItem1.Name = "toolStripMenuItem1"; + this.toolStripMenuItem1.Size = new System.Drawing.Size(125, 6); + // + // sendDataToolStripMenuItem + // + this.sendDataToolStripMenuItem.ForeColor = System.Drawing.Color.Black; + this.sendDataToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("sendDataToolStripMenuItem.Image"))); + this.sendDataToolStripMenuItem.Name = "sendDataToolStripMenuItem"; + this.sendDataToolStripMenuItem.Size = new System.Drawing.Size(128, 22); + this.sendDataToolStripMenuItem.Text = "Print"; + this.sendDataToolStripMenuItem.Click += new System.EventHandler(this.sendDataToolStripMenuItem_Click); + // + // tbFind + // + this.tbFind.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper; + this.tbFind.Dock = System.Windows.Forms.DockStyle.Fill; + this.tbFind.Font = new System.Drawing.Font("Calibri", 20F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tbFind.ImeMode = System.Windows.Forms.ImeMode.Alpha; + this.tbFind.Location = new System.Drawing.Point(0, 0); + this.tbFind.Name = "tbFind"; + this.tbFind.Size = new System.Drawing.Size(898, 40); + this.tbFind.TabIndex = 3; + this.tbFind.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.tbFind.KeyDown += new System.Windows.Forms.KeyEventHandler(this.tbiSearch_KeyDown); + // + // statusStrip1 + // + this.statusStrip1.Location = new System.Drawing.Point(0, 583); + this.statusStrip1.Name = "statusStrip1"; + this.statusStrip1.Size = new System.Drawing.Size(954, 22); + this.statusStrip1.TabIndex = 5; + this.statusStrip1.Text = "statusStrip1"; + // + // dv + // + this.dv.A_DelCurrentCell = true; + this.dv.A_EnterToTab = true; + this.dv.A_KoreanField = null; + this.dv.A_UpperField = null; + this.dv.A_ViewRownumOnHeader = true; + this.dv.AllowUserToAddRows = false; + this.dv.AllowUserToDeleteRows = false; + this.dv.AutoGenerateColumns = false; + this.dv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dv.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.sTIMEDataGridViewTextBoxColumn, + this.ETIME, + this.jTYPEDataGridViewTextBoxColumn, + this.BATCH, + this.sIDDataGridViewTextBoxColumn, + this.SID0, + this.rIDDataGridViewTextBoxColumn, + this.rID0DataGridViewTextBoxColumn, + this.lOCDataGridViewTextBoxColumn, + this.qTYDataGridViewTextBoxColumn, + this.qtymax, + this.vNAMEDataGridViewTextBoxColumn, + this.VLOT, + this.CUSTCODE, + this.PARTNO, + this.dataGridViewCheckBoxColumn1, + this.PRNVALID, + this.Column1}); + this.dv.ContextMenuStrip = this.cm; + this.dv.DataSource = this.bs; + dataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle7.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle7.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle7.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle7.Padding = new System.Windows.Forms.Padding(3); + dataGridViewCellStyle7.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle7.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dv.DefaultCellStyle = dataGridViewCellStyle7; + this.dv.Dock = System.Windows.Forms.DockStyle.Fill; + this.dv.Location = new System.Drawing.Point(0, 75); + this.dv.Name = "dv"; + this.dv.ReadOnly = true; + dataGridViewCellStyle8.Font = new System.Drawing.Font("Calibri", 9.75F); + this.dv.RowsDefaultCellStyle = dataGridViewCellStyle8; + this.dv.RowTemplate.DefaultCellStyle.Font = new System.Drawing.Font("Calibri", 9.75F); + this.dv.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dv.Size = new System.Drawing.Size(954, 468); + this.dv.TabIndex = 2; + this.dv.CellDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dv_CellDoubleClick); + // + // bs + // + this.bs.DataMember = "Component_Reel_Result"; + this.bs.DataSource = this.dataSet1; + this.bs.Sort = "wdate desc"; + // + // dataSet1 + // + this.dataSet1.DataSetName = "DataSet1"; + this.dataSet1.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + // + // ta + // + this.ta.ClearBeforeFill = true; + // + // panel2 + // + this.panel2.Controls.Add(this.tbFind); + this.panel2.Controls.Add(this.button1); + this.panel2.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel2.Location = new System.Drawing.Point(0, 543); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(954, 40); + this.panel2.TabIndex = 6; + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Right; + this.button1.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.button1.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.button1.Location = new System.Drawing.Point(898, 0); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(56, 40); + this.button1.TabIndex = 11; + this.button1.Tag = "0"; + this.button1.Text = "KEY"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // sTIMEDataGridViewTextBoxColumn + // + this.sTIMEDataGridViewTextBoxColumn.DataPropertyName = "STIME"; + dataGridViewCellStyle1.Format = "MM-dd HH:mm:ss"; + this.sTIMEDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle1; + this.sTIMEDataGridViewTextBoxColumn.HeaderText = "시작"; + this.sTIMEDataGridViewTextBoxColumn.Name = "sTIMEDataGridViewTextBoxColumn"; + this.sTIMEDataGridViewTextBoxColumn.ReadOnly = true; + // + // ETIME + // + this.ETIME.DataPropertyName = "ETIME"; + dataGridViewCellStyle2.Format = "MM-dd HH:mm:ss"; + this.ETIME.DefaultCellStyle = dataGridViewCellStyle2; + this.ETIME.HeaderText = "종료"; + this.ETIME.Name = "ETIME"; + this.ETIME.ReadOnly = true; + // + // jTYPEDataGridViewTextBoxColumn + // + this.jTYPEDataGridViewTextBoxColumn.DataPropertyName = "JTYPE"; + this.jTYPEDataGridViewTextBoxColumn.HeaderText = "형태"; + this.jTYPEDataGridViewTextBoxColumn.Name = "jTYPEDataGridViewTextBoxColumn"; + this.jTYPEDataGridViewTextBoxColumn.ReadOnly = true; + // + // BATCH + // + this.BATCH.DataPropertyName = "BATCH"; + this.BATCH.HeaderText = "BATCH"; + this.BATCH.Name = "BATCH"; + this.BATCH.ReadOnly = true; + // + // sIDDataGridViewTextBoxColumn + // + this.sIDDataGridViewTextBoxColumn.DataPropertyName = "SID"; + this.sIDDataGridViewTextBoxColumn.HeaderText = "SID"; + this.sIDDataGridViewTextBoxColumn.Name = "sIDDataGridViewTextBoxColumn"; + this.sIDDataGridViewTextBoxColumn.ReadOnly = true; + // + // SID0 + // + this.SID0.DataPropertyName = "SID0"; + dataGridViewCellStyle3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.SID0.DefaultCellStyle = dataGridViewCellStyle3; + this.SID0.HeaderText = "*"; + this.SID0.Name = "SID0"; + this.SID0.ReadOnly = true; + // + // rIDDataGridViewTextBoxColumn + // + this.rIDDataGridViewTextBoxColumn.DataPropertyName = "RID"; + dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + this.rIDDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle4; + this.rIDDataGridViewTextBoxColumn.HeaderText = "RID"; + this.rIDDataGridViewTextBoxColumn.Name = "rIDDataGridViewTextBoxColumn"; + this.rIDDataGridViewTextBoxColumn.ReadOnly = true; + // + // rID0DataGridViewTextBoxColumn + // + this.rID0DataGridViewTextBoxColumn.DataPropertyName = "RID0"; + dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.rID0DataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle5; + this.rID0DataGridViewTextBoxColumn.HeaderText = "*"; + this.rID0DataGridViewTextBoxColumn.Name = "rID0DataGridViewTextBoxColumn"; + this.rID0DataGridViewTextBoxColumn.ReadOnly = true; + // + // lOCDataGridViewTextBoxColumn + // + this.lOCDataGridViewTextBoxColumn.DataPropertyName = "LOC"; + this.lOCDataGridViewTextBoxColumn.HeaderText = "L/R"; + this.lOCDataGridViewTextBoxColumn.Name = "lOCDataGridViewTextBoxColumn"; + this.lOCDataGridViewTextBoxColumn.ReadOnly = true; + // + // qTYDataGridViewTextBoxColumn + // + this.qTYDataGridViewTextBoxColumn.DataPropertyName = "QTY"; + this.qTYDataGridViewTextBoxColumn.HeaderText = "QTY"; + this.qTYDataGridViewTextBoxColumn.Name = "qTYDataGridViewTextBoxColumn"; + this.qTYDataGridViewTextBoxColumn.ReadOnly = true; + // + // qtymax + // + this.qtymax.DataPropertyName = "qtymax"; + this.qtymax.HeaderText = "(MAX)"; + this.qtymax.Name = "qtymax"; + this.qtymax.ReadOnly = true; + // + // vNAMEDataGridViewTextBoxColumn + // + this.vNAMEDataGridViewTextBoxColumn.DataPropertyName = "VNAME"; + dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + this.vNAMEDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle6; + this.vNAMEDataGridViewTextBoxColumn.HeaderText = "Vender"; + this.vNAMEDataGridViewTextBoxColumn.Name = "vNAMEDataGridViewTextBoxColumn"; + this.vNAMEDataGridViewTextBoxColumn.ReadOnly = true; + // + // VLOT + // + this.VLOT.DataPropertyName = "VLOT"; + this.VLOT.HeaderText = "Vendor #"; + this.VLOT.Name = "VLOT"; + this.VLOT.ReadOnly = true; + // + // CUSTCODE + // + this.CUSTCODE.DataPropertyName = "VNAME"; + this.CUSTCODE.HeaderText = "SUP"; + this.CUSTCODE.Name = "CUSTCODE"; + this.CUSTCODE.ReadOnly = true; + // + // PARTNO + // + this.PARTNO.DataPropertyName = "PARTNO"; + this.PARTNO.HeaderText = "PARTNO"; + this.PARTNO.Name = "PARTNO"; + this.PARTNO.ReadOnly = true; + // + // dataGridViewCheckBoxColumn1 + // + this.dataGridViewCheckBoxColumn1.DataPropertyName = "PRNATTACH"; + this.dataGridViewCheckBoxColumn1.HeaderText = "부착"; + this.dataGridViewCheckBoxColumn1.Name = "dataGridViewCheckBoxColumn1"; + this.dataGridViewCheckBoxColumn1.ReadOnly = true; + this.dataGridViewCheckBoxColumn1.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.dataGridViewCheckBoxColumn1.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + // + // PRNVALID + // + this.PRNVALID.DataPropertyName = "PRNVALID"; + this.PRNVALID.HeaderText = "검증"; + this.PRNVALID.Name = "PRNVALID"; + this.PRNVALID.ReadOnly = true; + this.PRNVALID.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.PRNVALID.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + // + // Column1 + // + this.Column1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; + this.Column1.HeaderText = "비고"; + this.Column1.Name = "Column1"; + this.Column1.ReadOnly = true; + // + // fHistory + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(954, 605); + this.Controls.Add(this.dv); + this.Controls.Add(this.panel2); + this.Controls.Add(this.panel1); + this.Controls.Add(this.statusStrip1); + this.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.KeyPreview = true; + this.Name = "fHistory"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Data History"; + this.Load += new System.EventHandler(this.fHistory_Load); + this.panel1.ResumeLayout(false); + this.cm.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dv)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bs)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).EndInit(); + this.panel2.ResumeLayout(false); + this.panel2.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + private System.Windows.Forms.Label label1; + + #endregion + private System.Windows.Forms.Panel panel1; + private arCtl.arDatagridView dv; + private System.Windows.Forms.BindingSource bs; + private DataSet1 dataSet1; + private System.Windows.Forms.Button btSearch; + private System.Windows.Forms.ComboBox tbSearch; + private System.Windows.Forms.DateTimePicker dtSD; + private System.Windows.Forms.DateTimePicker dtED; + private System.Windows.Forms.TextBox tbFind; + private System.Windows.Forms.Button btExport; + private System.Windows.Forms.ContextMenuStrip cm; + private System.Windows.Forms.ToolStripMenuItem 목록저장ToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem sendDataToolStripMenuItem; + private System.Windows.Forms.StatusStrip statusStrip1; + private System.Windows.Forms.ToolStripMenuItem viewXMLToolStripMenuItem; + private DataSet1TableAdapters.Component_Reel_ResultTableAdapter ta; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.DataGridViewTextBoxColumn sTIMEDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn ETIME; + private System.Windows.Forms.DataGridViewTextBoxColumn jTYPEDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn BATCH; + private System.Windows.Forms.DataGridViewTextBoxColumn sIDDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn SID0; + private System.Windows.Forms.DataGridViewTextBoxColumn rIDDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn rID0DataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn lOCDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn qTYDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn qtymax; + private System.Windows.Forms.DataGridViewTextBoxColumn vNAMEDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn VLOT; + private System.Windows.Forms.DataGridViewTextBoxColumn CUSTCODE; + private System.Windows.Forms.DataGridViewTextBoxColumn PARTNO; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewCheckBoxColumn1; + private System.Windows.Forms.DataGridViewTextBoxColumn PRNVALID; + private System.Windows.Forms.DataGridViewTextBoxColumn Column1; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/fHistory.cs b/Handler/Project/Dialog/fHistory.cs new file mode 100644 index 0000000..4467e3d --- /dev/null +++ b/Handler/Project/Dialog/fHistory.cs @@ -0,0 +1,305 @@ +using AR; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fHistory : Form + { + public StdLabelPrint.LabelPrint PrinterL = null; + // public StdLabelPrint.LabelPrint PrinterR = null; + public fHistory() + { + InitializeComponent(); + //Pub.init(); + this.KeyDown += (s1, e1) => + { + if (e1.KeyCode == Keys.Escape) this.Close(); + else if (e1.KeyCode == Keys.F5) btSearch.PerformClick(); + }; + this.tbSearch.KeyDown += (s1, e1) => { if (e1.KeyCode == Keys.Enter) btSearch.PerformClick(); }; + this.dv.CellFormatting += (s1, e1) => + { + if (e1.RowIndex >= 0 && e1.ColumnIndex >= 0) + { + var dv = s1 as DataGridView; + //var cell = dv.Rows[e1.RowIndex].Cells["dvc_upload"]; + //if (cell.Value != null) + //{ + // if (cell.Value.ToString() == "X") + // dv.Rows[e1.RowIndex].DefaultCellStyle.ForeColor = Color.Red; + // else + // dv.Rows[e1.RowIndex].DefaultCellStyle.ForeColor = Color.Black; + //} + //else dv.Rows[e1.RowIndex].DefaultCellStyle.ForeColor = Color.Black; + } + }; + this.dv.DataError += dv_DataError; + + this.Text =$"Result Viewer ({SETTING.Data.McName})"; + ///this.Text = string.Format("{0} ver{1} - {2}", Application.ProductName, ""); + } + + void dv_DataError(object sender, DataGridViewDataErrorEventArgs e) + { + + } + + private void fHistory_Load(object sender, EventArgs e) + { + + dtSD.Value = DateTime.Now; + dtED.Value = DateTime.Now; + + //PrinterL = new StdLabelPrint.LabelPrint(SETTING.Data.PrinterName); + //PrinterR = new StdLabelPrint.LabelPrint("PrinterR"); + //ApplyZplCode(); + + refreshList(); + + } + + //public void ApplyZplCode() + //{ + // string zplfil = string.Empty; + // var basedir = new System.IO.DirectoryInfo(Util.CurrentPath); + // if (SETTING.Data.PrinterForm7) + // { + // zplfil = System.IO.Path.Combine(basedir.Parent.FullName, "zpl7.txt"); + // } + // else + // { + // zplfil = System.IO.Path.Combine(basedir.Parent.FullName, "zpl.txt"); + // } + + // if (System.IO.File.Exists(zplfil)) + // { + // PrinterL.baseZPL = System.IO.File.ReadAllText(zplfil, System.Text.Encoding.Default); + // } + // else + // { + // Pub.log.AddAT("기본 ZPL파일이 없어 설정파일의 내용을 사용합니다"); + // if (SETTING.Data.PrinterForm7) + // { + // PrinterL.baseZPL = Properties.Settings.Default.ZPL7; + // } + // else + // { + // PrinterL.baseZPL = Properties.Settings.Default.ZPL; + // } + + // } + //} + + private void checkBox5_CheckedChanged(object sender, EventArgs e) + { + // cmbUser.Enabled = checkBox5.Checked; + // if(cmbUser.Enabled && cmbUser.Text.isEmpty()) + // { + // cmbUser.Text = string.Format("{0}({1})", Pub.LoginName, Pub.LoginNo); + // } + } + + void refreshList() + { + //검색일자 검색 + if (dtED.Value < dtSD.Value) + { + UTIL.MsgE("검색종료일자가 시작일자보다 작습니다"); + dtSD.Value = dtED.Value; + dtSD.Focus(); + return; + } + //저장소초기화 + this.dataSet1.Component_Reel_Result.Clear(); + + System.Diagnostics.Stopwatch wat = new System.Diagnostics.Stopwatch(); + wat.Restart(); + + //자료를 검색한다. + var search = tbSearch.Text.Trim(); + if (search.isEmpty()) search = "%"; + else search = "%" + search + "%"; + + ta.FillBySearch(this.dataSet1.Component_Reel_Result, SETTING.Data.McName, dtSD.Value.ToShortDateString(), dtED.Value.ToShortDateString(), search); + + wat.Stop(); + + tbSearch.Focus(); + tbSearch.SelectAll(); + dv.AutoResizeColumns(); + + } + private void btSearch_Click(object sender, EventArgs e) + { + refreshList(); + } + + private void tbiSearch_KeyDown(object sender, KeyEventArgs e) + { + //내부검색기능 + if (e.KeyCode == Keys.Enter) + { + FindData(); + } + + } + void FindData() + { + string searchkey = tbFind.Text.Trim(); + if (searchkey.isEmpty()) + { + bs.Filter = ""; + tbFind.BackColor = SystemColors.Control; + } + else + { + string filter = "rid0 like '%{0}%' or sid0 like '%{0}%' or qr like '%{0}%' or vlot like '%{0}%'"; + filter = string.Format(filter, searchkey); + try + { + bs.Filter = filter; + tbFind.BackColor = Color.Lime; + } + catch + { + bs.Filter = ""; + tbFind.BackColor = Color.Pink; + } + } + tbFind.Focus(); + tbFind.SelectAll(); + } + private void btExport_Click(object sender, EventArgs e) + { + saveXLS(); + } + void saveXLS() + { + + var license = ("Amkor Technology/windows-242f240302c3e50d6cb1686ba2q4k0o9").Split('/'); + var xls = new libxl.XmlBook(); + xls.setKey(license[0], license[1]); + xls.addSheet("Result"); + var Sheet = xls.getSheet(0); + + int row = 0; + for (int i = 0; i < this.dv.Columns.Count; i++) + { + var col = this.dv.Columns[i]; + Sheet.writeStr(row, i, col.HeaderText); + } + row += 1; + foreach (DataGridViewRow dr in this.dv.Rows) + { + for (int i = 0; i < this.dv.Columns.Count; i++) + { + var propertyName = dv.Columns[i].DataPropertyName; + if (propertyName.isEmpty()) + { + Sheet.writeStr(row, i, dr.Cells[i].FormattedValue.ToString());// dr[colname].ToString()); + } + else + { + var dType = this.dataSet1.Component_Reel_Result.Columns[propertyName].DataType; + if (dType == typeof(float)) Sheet.writeNum(row, i, (float)dr.Cells[i].Value); + else if (dType == typeof(double)) Sheet.writeNum(row, i, (double)dr.Cells[i].Value); + else if (dType == typeof(int)) Sheet.writeNum(row, i, (int)dr.Cells[i].Value); + else Sheet.writeStr(row, i, dr.Cells[i].FormattedValue.ToString());// dr[colname].ToString()); + } + + } + row += 1; + } + Sheet.setAutoFitArea(0, 0, row, dv.Columns.Count); + + string filename = "export_{0}~{1}.xlsx"; + filename = string.Format(filename, dtSD.Value.ToString("yyyyMMdd"), dtED.Value.ToString("yyyyMMdd")); + + var sd = new SaveFileDialog(); + sd.Filter = "xlsx|*.xlsx"; + sd.FileName = filename; + sd.RestoreDirectory = true; + if (sd.ShowDialog() != System.Windows.Forms.DialogResult.OK) return; + + try + { + + xls.save(sd.FileName); + PUB.log.Add("Export Data : " + sd.FileName); + if (UTIL.MsgQ("다음 파일이 생성되었습니다.\n\n" + sd.FileName + "\n\n파일을 확인하시겠습니까?") == DialogResult.Yes) + UTIL.RunExplorer(sd.FileName); + } + catch (Exception ex) + { + PUB.log.AddE(ex.Message); + } + + } + private void 목록저장ToolStripMenuItem_Click(object sender, EventArgs e) + { + saveXLS(); + } + + + + private void label2_Click(object sender, EventArgs e) + { + + } + + private void viewXMLToolStripMenuItem_Click(object sender, EventArgs e) + { + + } + + private void dv_CellDoubleClick(object sender, DataGridViewCellEventArgs e) + { + + + } + private void sendDataToolStripMenuItem_Click(object sender, EventArgs e) + { + var drv = this.bs.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.Component_Reel_ResultRow; + + using(var f = new Dialog.fManualPrint(dr.SID,dr.VLOT, dr.QTY.ToString(),dr.MFGDATE,dr.RID, dr.VNAME, dr.PARTNO)) + { + f.ShowDialog(); + } + } + + + + + private void button1_Click(object sender, EventArgs e) + { + var str = tbFind.Text.Trim(); + var f = new Dialog.fTouchKeyFull("검색어 입력", str); + if (f.ShowDialog() != DialogResult.OK) return; + tbFind.Text = f.tbInput.Text.Trim(); + FindData(); + } + + private void button2_Click(object sender, EventArgs e) + { + var sd = dtSD.Value.AddDays(-1); + dtSD.Value = sd; + dtED.Value = sd; + } + + private void button3_Click(object sender, EventArgs e) + { + var sd = dtED.Value.AddDays(1); + dtSD.Value = sd; + dtED.Value = sd; + } + } +} diff --git a/Handler/Project/Dialog/fHistory.resx b/Handler/Project/Dialog/fHistory.resx new file mode 100644 index 0000000..e7d2db7 --- /dev/null +++ b/Handler/Project/Dialog/fHistory.resx @@ -0,0 +1,2004 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAN + 0AAADdABEGw9BwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAALxSURBVEhL5ZTL + T1NBGMVZuPI/8H9whxgFDdVUEzX1URa6AjGEKAZDjbEoKBihiGAExSBQSktBoLys4RGQShVofSBFQDCK + EZSFQQiifVAoHDvD3HqLkNp7kY2nOcl3Tzrfb765nYb830rOUUOIr+ZpO1gLYSJNghVZk11cg/R83RPW + JngJBdsdLuSU1JDJLaxVcBIKJhIFFwMmEgznN2kfM/nMiZ9x+crNEniu2rAUFFzoxGuZtQ0s8mVOKycj + 4mf8fDUJBotVUOBo9UWsp1nbwOIWxGlToOmqg95qhLI2x69Z/mMdql40IbOpkD4nValQ87IF8bor9Lnc + 0oh0411as7aBxTXvG3+LT1MTsIzaMLfgRmLldZpXWh9h2j6D5gEzXPNz0HTX43R5GhaXFnGjpZjWS95P + VnORMPCMYxal3oljNZfoNIpqFc17xwbROfKc1kXmahSYKmg9OjkOw6tW3GxVw70wj1Nll0WAn9XSmm8C + Iidg/dhP6xi1kuZGm8m7qSHUv27DwJd3vu+ztoHFLVgLTHzuQQb0FiOcbhe0PQ00UzXf9675gf7PI/T9 + 62119LqxtoHFNefA5Kib3nTigiGb5rqeRu9xltDaNj4M07CV1uRoyRG7PfNIabhNodslMj8zxOriwIMT + 7+l76/7QC4fbibMV12jeMvAUX2envJsxwz7nRGFnFc2JyRF/d/6kx8+B1XUm6r8Gx+tSoe1u8F6Nhzhf + neVrHlOqxJ0Ovd914kyu0K02Da0Fg8U6aPB6/mUKBpNdc+bEz/j5atqwiVW5BRTANx/Md1ikrIghlyVm + Yo/HgwRFKuIUaT7gSkcnJNvDpcfMEolkE0MuS+w7djpdOBGbiMSU7D+gZ5Qq9659UUOhMtlmhvut9fhx + fZuaxsGok0jOvOeDKjMKFsOl8snQ3fItDOUvAhZrQ7sVrV19iDxwHNfyyqgjpHL7NsmhrQzzbxW257A8 + Yn+Ug5jULN4Y7ZAeUezcezSJPfIUEvILA5nT3LqWQaIAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAK + XQAACl0B/If0DAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAM3SURBVEhLtZZZ + TxNRFMeJRuMaY6Iv+qRG426ivOCDr8YP4BdQg/HRKJQCHaat2paWlpYudqcz3ehGlYgp2hJAKd1sywMS + wASklIISDLtEOs4lNz7oWDow/SUnzcw99//vnHPvnSljAhQ176uRmU7XSPQ36sX6U+AaDjEPiqK7EIXt + EV/TNig0tudUnuCs6U3/PPgF1+A+qrRVgjw4ZefUig2Xn6mdo3hXfDmaWSXSc8Q/EZlaIcjxJZ7GMcKW + mC7CqdsHabHcEeq9MwOTy5SGf0f46xIh0Htz3BbsNpSgDyozXRcafbPx3Dqlyf8C5AuM3lmOAr8GpYrn + rsu1m6d2jA1kVijFtwpQIXL+CO2eIwr8oSOUWqQSLTZsoeQC0ozdh5LFwdc4BxMz9Er8d8SnfxI8jTMF + JbcGVakOiYztWSoxuiEw+LIoqj0ApQvDlmjPa7yhHJUQ3VC5gzl2k+4clC4Mq0l309wZnqMSohsmUoct + NlZA6cKAf6hyM/PEandwuqpRewZKFwb0hKkei4y+KVpnOf+lMxnNrlGKFRvRqVWC3B0JKFkcYB/j7+I7 + 2sdYIEp/H4OTi6u0f+mfWKQU3Sr6xxcIrspO/+QCfeFIWz+JDN78ds7q5zp3liU1X4FyxQEOELJEidaO + 3jVbIAwWSJ7e28mTpf12Ygm1RxC5JY2//bjeGRkiDP7QUr2stYcs2zDWFftR6H2MBWLzXLV9qFqkvwDl + iuOJRHusQYF9tgfCG8DU3NGz2iDHA6DfoFccmeUBX+VMUn2BcMn75Pg92j2tFhlPIApstO19BJr2riHN + lj4Ude2FKX9g7JsLiJBPOuEKxfLAFJSZI7fEH0td+2EK81Q1ms9ylXjG0x0ngClZ5l+IHEs9FWMHYQrz + 1Ir1V7kt1oyvJ7lp6uiKbJCmw2CBwRTmYcssFTyVLevvS22auoOxPFneMfYL03GYwjx1EsMtnto24/+Q + 3jT1dCcIcmGN10ktJ2EK89QI1Ee5SmvmFTRtJ8sMyg16DVNKA7ltyputr78BU39fGphmWULdJThcOsC+ + RBV4Sm7t+I4qrZN1UmM5HCo9lVrtHrCiyac/DG+VmLKy39JXNTjPcJ2cAAAAAElFTkSuQmCC + + + + 181, 17 + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAN + 0AAADdABEGw9BwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAFPSURBVDhPlZJf + S8JgGMX3qbruC9RHKIIgqvsSglwXRVBRUhHWLHMFZXYhdGEjy9JYipRBZSqW9I8RSCDmn6vT3seVU96c + /uDA+7x7ztkZTLDNSWhHosMTE3iwh1awnQWXD+KyrBq2Or8BSi5Iaj4z2E65UtVDDmBf2m4M6ZPG0KkM + aw12cZVNIPGSRDCpol8aR/TpluZwOo5FxY3LzDVGZBGfhTw/oFgpkXH9fB/Dsp0WB90T2LjwYsgzibcv + DfMBF0KPUX5AoVxsqLgVOURae4YvHqA5reVwfBfG6ulu6wBZ9VMDZ2iPGn1XS3TvvzmhlqM7U/yASCaO + 5EcWZ3rFgU0b7t8z9NZQKkaG6aM1pPRG7MwN6FSGtUar/6B5Zjy85vkB7dLV3UMy7O01MPNvgBUrTvef + 2aRZCrCSV1Hp22ccLpO5VzQ6dAYz1s2C8AOKH12z48KW+wAAAABJRU5ErkJggg== + + + + + R0lGODlhEAAQAIQfAJfL/HKQrsDf/ezx9uXt9cfj/omwyldwkbvd/UlVa/L2+mOc4bba/KPQ+6vU+4m7 + 7FJhe7TR4F6Z4ENLXNTh6rHX/JrA1qjL3mif4tvn7ykxQz5FVeLp8Hyhvf///////yH/C05FVFNDQVBF + Mi4wAwEBAAAh+QQBAAAfACwAAAAAEAAQAAAIvQA9CBxIcOCHgx4yRIhwwYIFAwY6dAgQwAPCCBkIDNC4 + kYDHBwcseohAoIBJkwJSKngAUuAFBScLpESAQIFNCAItwEQpAAMCBgwqKMDpQSdPBBgWBHUwVKABmBii + LpgqwQHTBE4V9Ey6QILXBg0IYPXQYcDMoF/BEpggsCzNpRLANgDAga2HAAN+LpULAECGDQIDKPhZwSrY + vgAGAPZwgIKCjhwic8gwIIKGwAcyQ4CQIMGECRs2aCBasDTBgAA7 + + + + 249, 17 + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + 117, 17 + + + 17, 17 + + + 366, 17 + + + + AAABAAYAAAAAAAEAIAASGgAAZgAAAICAAAABACAAKAgBAHgaAABAQAAAAQAgAChCAACgIgEAMDAAAAEA + IACoJQAAyGQBACAgAAABACAAqBAAAHCKAQAQEAAAAQAgAGgEAAAYmwEAiVBORw0KGgoAAAANSUhEUgAA + AQAAAAEACAYAAABccqhmAAAZ2UlEQVR42u3da4xu11kf8P+z1r68l5l3Zs7xuXh87OBgk8ZBWEGBGEs0 + caXKBiOiVHI+kMQNbYh6+YIqhBFVq1MqkIxQhVS1KCIo1MT94KhYIBAOaXGDRC7UAoIUm8RxjBOfm89l + 5szMO++7916Xfhh/IlnPPsnMmTMz6/+Tzqe99Mze+333f87WemYtAR1ZH/v4EwMAtTZmOt6OPWWapz/0 + X5tbfS10c5hbfQJEdOswAIgyxgAgyhgDgChjDACijDEAiDLGACDKmNzqE6Dv7MO/9QsVgCJ13FhTlFXx + gFbDGnNaRE5oY6JEtQ8gRlwJHhe1MV3bfTF475Qh7vf+9W+0+3f36EYVuy9BN0kNYKgcHwJ4v1pBcB8E + 9+hDen8HvAzEF3vGfBXATDk+A8AAOID4CkCUMQYAUcYYAEQZYwAQZYwBQJQxBgBRxhgARBljI9BN8OHf + /sVVAAup49aYY6U1/06rUZbFGWPM8dRxY8TcceL4Ga1GXRa2Kgq7m2tpnfNN57w25tzlq6+HEEPqeAjh + ate517UanQ//xYdwTRmy9Xs/9+vnd3Mt9O3YCHRzCADtwSugBMSbFgFMlB9hjIi62o8RI9bs7j95Rowx + Ij3fE5kA6QDAThNQ3/UWPfeMv6xuAr4CEGWMAUCUMQYAUcYYAEQZYwAQZYwBQJQxTq38A49/4heXAVSp + 49aYcWHt/VqNqrC3GyOLqePGmIVRXat/y19Ye8wYk5w6ExFZWRwv6DWMFHZXbQBw3sP5oC4asrY53Yox + vbBICGHLea/N8WO7aZ4NIWyla8TN1vkLPef6ZR/CVBnSPvXRX1/f1Q05YtgH8O1OQ51/x50AfkErYIw5 + VVgzTh0vrLUnVibHtRp1WWK3D+9eKKxFYa36i+L248uL2nHn/aTp3Ko25sKVa7c775MNRw5hCvhLPaf7 + GwC+pRzfALC+LzfukOArAFHGGABEGWMAEGWMAUCUMQYAUcYYAEQZYwAQZexINQI9/ttPvBs7f0f/HVkj + byms+YBWYzwcHLPWJP/OviqLwW2TyV1ajbKw1hiTvLcigDVGn+SXG9iy45CIAKBvQAQfgteGhBBi57y6 + MMmVjY1vtp2bJ3+GD810NlcbkpwPz/gQX1OGbD71c09+af/u3s111BqBBgDGyvFlAOoqOhAsiUiyE1BE + irKw6kIcZWFhdrkQx1EiwE7qKQqrdz2FIEDP91VEbhOR9BZlghbAqOd0lwFcUY53N/l27St+S4kyxgAg + yhgDgChjDACijDEAiDLGACDK2L5MNT/2zGO9P2th++47oEzzGDETgblDqzEoy/tFJLlIRmHNalUU/1Sr + UdfVyBpTpGtYuzQeaVONsNbAyFGZxT8YQozwPqhjrk+3p9qaAj4E1zTttlajdf5PXQjJhUdijFvztv2y + ViMinAsxbChD3Fv+fnSu55Lj2bNn9/o2fpv96gMQ9P9v4wEoTTwA3g5AXUWnrsrlwqYf3kFVFSeWJz2r + 6FgIH94Dx4jA9GxydNvSohrMMUY4749pYy5f3/jAvO2Sc/3OBzdv2+s9p/ssgJeU45sAfv8GLjvewJhd + 4SsAUcYYAEQZYwAQZYwBQJQxBgBRxhgARBljABBlrHfC+2Mf/5hBT1D4wbGHAZSp40bM2wTyoFZjaTy6 + yxhJzuHXZbU4GQ9PazXKorBGWUdDRKSwVr0W9gAcbbFnYRLnQ1B3OYoxds6pC5NsTGcXm67dTNYI0V2f + bn9TPU/Ez4cYvqoM6V55dfBcz+WG/3v2rHrBN9oI1PdUHIeynRZ2dtP5Qa2AEVk2kl4lp7C2HFSVuhBH + YQ0fYFL1fT/KQv8FEWOE1ikKANvz9kTnzHL6JIKHvvsUsLPD0VXleIv+51LQ00zEVwCijDEAiDLGACDK + GAOAKGMMAKKMMQCIMiYf+eRZPQT89HQEVrUhRVH8M0i6D2BQVvcOqvJHtRqLo+GCEUmeS12WxcJoqE4D + WmP6lp8n2pUYAR/0hUm2tmdN03XJ/QlCjGFjOtvSajRd+5fzrn05fSLoOhf/V8/pnjd2eEkbUECfv0eE + vBfAh7UxAvlxxHRPwXhQ2ztOHFPnTuuy5Bw+HXgiO/0mmuXFcQ0g+csqxojlhbG2+A3OX7n2aNN2WsOR + Mybc33O6n8LO4iRJfAUgyhgDgChjDACijDEAiDLGACDKGAOAKGMMAKKMFdj5u2LNn0Hf5AAB8UEoC4JM + m+a+1y5deY9WY1BXJwwkuR7AoCrLpYXRUKtRclMPuslijOi8uh4Irm9tz7TNRQKinzftZa1G03WfC4gv + KkM6AH/Rc7oX0fN878nT8s9/94kHoSwuYsU+YEQe02qMB/WdIukVgRYGdXVieaI2T1RlyS256KYKMUJ5 + tgEAl9c3NrfmTfLBizG66bz5Vs/P+bSP/ovKEPc/PvLk53d7PXwFIMoYA4AoYwwAoowxAIgyxgAgyhgD + gChjN7ovQJ+tnlqX0NNLEGNsoPQS+BgnTded0WugEmVREbOzMYjVaoi2swgdahFADH0bg3gflI1BYoyh + dZ06t+5jPBdj3FBqdAC+0XO6l7DzXCVPdS/uyYH5rj/+O0+8C8Agdbyw5oeskQ9qNQZldZcRSdYY1lV5 + 6tjyklajrkpYw/8YHUU+BDStPod/6dr69ZkyKMQ4n3etuquPD/Fp58PfKkPmT/3LJ1+41fcD4CsAUdYY + AEQZYwAQZYwBQJQxBgBRxhgARBljABBlbK8agfbCKwC0Jp0LAP5OK+BDeGuQdC/BvOtWL1xbf0SrUVp7 + 2ogkFx4prLXLC+MFtUZphb0Ee8uHgK7zahfP+tZ0y/n0ah0hxlnn/UWtRtt1z7ngz6eOx4g5+pt4XgNw + Xbuc/btzugPTCLQXPvLJJ+4BkHx4rTH3GmM+qtWobHGPEUkuPFKXZXn78ZVjWo1BXUqhNxzSd8l5j3nT + qQFw4eratabrtCaezda7r2s1Qgif8CG8rAyZ/e7PPqnWOEz4a4ooYwwAoowxAIgyxgAgyhgDgChjDACi + jB2kPoC90EHpJYjRzGKwa1qBEMs2iknO03qxpuugTkcZExCCMsUqQNHTJyCCI7PJSYwRUV+HAy4EaHfV + +RD77rt3hfdOkp9djKGNMaqff4yYAUFb8ENfUOCQORrfsBv0vn//R0sA3qGNqYbu50Xw9tRxW7b1eOWN + O7UaZT0vjXXJICqs4PTxkXqu40GNujoa+dy0DtN5o465eHUbTunzCb7wXTNQH77p2slv+a5K/qAY8VI7 + K36z53S/8ge/+lPXkQm+AhBljAFAlDEGAFHGGABEGWMAEGWMAUCUMQYAUcYOUB9AVM/lfb/02SVjw1u0 + MUVpH4JgOXm8KEbD4WhVqzGZDH/UFuZ46rixwdbDVl0QBDI3EKdcjwPsBb2EmQJIz52LCCZjvU+grgqU + xe7WJeicR9Pqm9BsTB2i2ulTI4ax/oP87VD70mIREQdBK9HMqq3glSYuF65ubMz+Uqsxm22fd85tp88D + 667zz/fcttee/dVH1nEIHKZOkzGA7+sZ85MA7kgdFJHKWrus/pDx0tJgUCe3KDPGoKoq9SR8aBBj+qEJ + scH6XO81ad0WXJgnjxsRlGWt1jBWdh8A3mPWs5vO2kaDoARAYSpUhd74tDx4K4ykr0ekEGtq9WLasl0K + IZ0R83mzOJ22K1oNEVkHoHUCngPwas9tuwxgHYcAXwGIMsYAIMoYA4AoYwwAoowxAIgyxgAgytieTAM+ + 9tgz6vHwAxMLI+rP8v5zA8R0X0JR2kURo04m28KUIpKcKrLWGmut2m9gjOx6IQ4BtEsBIBD9dsBIBSPp + 6UYRIEY9v0MAfOhZiaNHCNL7c0RK9TeJkar3enfumrqGyg3RPjtjBH2fv7XWxBiVRWViiSh6U4Ng8th/ + +t9TZUQMzusLJITozNc21A1EPv3pD9zgXUnbqz6AvsnmHwDwY9qAsnb/FkByjraqqmrcsyPP6VOnFqqy + TJ6LMQZlVeJmM6bu+a/VCCeK96gjQmgQlF6CGB2ubag9Lbi6dg0uXN3VtRRmGaW9XR1zeuFH1AfcSAFj + 9J6FvdDXn1HXdTmZTI5rY9quO671ErRtd8+lS5feqdWYbk232rbVegnWAPy3nsv5AoCv9YzZ9Q5DfAUg + yhgDgChjDACijDEAiDLGACDKGAOAKGMMAKKMyXvPPq+GwIrvTovyN/YAYK38Yyg9BfVgcHJQD+7Waiws + jH5MjBmmf4Y1Va1P9I5Ho8qadKOHiMDYw5F5MXpEKOtfxICZ0xcV8WGKEGf6z+k5DysjWKP/Lf+wuB2Q + 9H0VGCj9WQeKD0Fd3CR4H6fb29ocP9qmbb33yQ8vhjDb2tr+glZj3sxfbebzN5Qhzvv451qNCJxbs+VF + bUyB/v8FnAJwvzpC8C8ADFKHjZFBVVdq99Sx48cXiyL9dBpjYO3h+BLtBREL0fqrBBhX36fWiNEhRr1X + JPa02Al6mziPFNuzZRuslaqq1K4m732tNRM55xfbzv0TrUbbNVMI5sqQOYC+HYwcAC1E+ApAlDMGAFHG + GABEGWMAEGWMAUCUMQYAUcYYAEQZK07gshoC3k4KQNQGHIE1UMJEYER6ltkROVDbFB0JIsUNrMRDN4O6 + HtTO4kc9v3zFCNSmBAPrep7L2Pt8838ARBljABBljAFAlDEGAFHGGABEGWMAEGWMAUCUsQL9mwtcAPDX + PWM+AWVBkBDDSte16u4S165efY+IJFeeMNYWZVkOtRrj8biyNr2mgIhktaYAffe89+qCIN77sDWdqrv6 + uK6bB++Tu7qEGLe7rv2cViPGeAE7G4gkfwz6n8sL6Hm+96X35v3/8Y/PAHi7Nsaa8pcBJHdtKctyOBwO + jmk1VldXJ1VVJYPIGIO6vvk71NDh1TQN9J2BWnfu/AV1IY75bLbWdZ22FNNVH7pf6zmVl579lUdfv9nX + y1cAoowxAIgyxgAgyhgDgChjDACijDEAiDLGACDK2H6tFnEewKWeMV+E0pfQOndbu7n1Nq3A9tdf+Vci + ktzFyBgzLMtyVatx6tSphcFgoPYSjEZqPxLdItvbM3UOfz6fu0uXLm1pNbrOXQghJOfwY4znOu9+Sz2R + iK8KcEUdAXXTD6C/QW9P7EsAPPsrjwZA2+cKANBpB9/3H56rAKgfntmpkezAMsZ4Y4y6G1bcoY3Yj1tG + 35OodvHFGKP3Xv0AnXM+hOCUIZ1zXv0eAtj4g//8yMatvhs3gq8ARBljABBljAFAlDEGAFHGGABEGWMA + EGXsMO0aMQdwsWfMZwGsKMfHIcS71B8y2/4R59rkugRGTDGfzZa1GvVgIEVRJHsaRARVpe7pkJ22bdUp + POdcbOZzdQqv67r1ENNTeK5zV0OI/6/nVL4JYFs5vob+72HfHP+BkdVmPD/9y3+yAOCt2pjFhfLnRbTF + S2RkpLhPq3Hs+G12OBol760xBsvLS7f6dhwo6+vX1Sae2fZ2vHb1itocE6J7EYjJhzdGvLS51f1mz6l8 + 4w9/7Sf65vmPDL4CEGWMAUCUMQYAUcYYAEQZYwAQZYwBQJQxBgBRxo5UH8DTz/31uwEsJi9WcLeY+DNa + jbqqzxhj0jsUGVPWdX2bVuOV89uytpVe3sD5iAtr6uYyGI0XUNXphUdEBCsry2oNkb35ePX1EYC1tXV1 + TNvMsD3Vp9ZvX6lR2PT5riyU+P7VkXoiTdNcCSEkb3wIYbtpG3WzjRjkf8aIV5Uhmx985J1f2sXtPFAO + UyfgjRgAGKcOimBijZzUCgxrOyysLVPHrTHFcFiqT1ZVAEZZ/0QQ0LWteiGudrBFuu9lrx7uvdC3nZZz + rvd6BQWM8h/SqgAmI/2+z8QXXmkmct4PndM/fx8xiTH9HULPwjWHDV8BiDLGACDKGAOAKGMMAKKMMQCI + MsYAIMrYvkwDPvPMM0BPz4GbfP8d2vkYaybGpDf9AIBhXd8vgoXUcWvNalmYiVpjUA2tMcrGIGKrUr9t + p46NMKyTM4lwPqAsrFqj8RZd1JanF2xtXFdr2LJEUfR8xD3bHDjv4Dp95qsUB0i60HhscftkUa2xenyI + wqZ/H03GJYa1fi3W1FUIMXljfQi2LKy+qIgL93kfkovKxIitZ/7P34y0GiHEc8EHbV8A97Uv/vA56OLZ + szd/qne/+gAE/f/beABKEw+AtwN4v1agrovlwqYf3kFdFidWFha0GkVhYXY5x74y0XcO8iFifUtvBPrK + q+t4/Y1p8ngIEX9/7rJaY7SwiOFYvdzeAJhtb2G6tamOufvUGMak79mZk2O84251+h3LCzWs2e0XfqjN + 3yPECOf8MW3M5bWtD8ybdOI5H9ysafTkBZ4F8JJyfBPA79/ABd30XWj4CkCUMQYAUcYYAEQZYwAQZYwB + QJQxBgBRxhgARBnrnXj9+AsvGPQExdI1+zCAZOeLiLxNBA9qNVaWRndpDTiDulxcXBie1mpUhbWi/KG8 + MSKFNeq17Mff2UcA3gd1zLz1aLv0mBjR20vw+pUZLlzTx/Q5fazGnbfpfQ3LCzW021aVBoNKb3yy1uzL + 6jR9i5s4H0JQBsUQY+u8ukHJ5tbs4rzpks0TPgS3dn37m/p54vMxxq8qQ7pT5fpzPZcbHnroIfWCb7QR + qO+zOQ5A2+vqTgA/qBUwRpaNkeS3pLCmHNZlrV6MNQdqoYwUefNcNQtDAyjPXYxApa+PgfVpi8LoQdNn + cWhxcmXQc64VDsFtB9Af8GXPBxNjhFWazQBgNmtOGCPLyRoQD0DtSAXwLQBXleMt+p9LQU8zEV8BiDLG + ACDKGAOAKGMMAKKMMQCIMsYAIMpY8cnnn1dDoLiG04iyqlYx+EdQ+gDqujgzqEp1Mnk0qEtjJHkuVVXY + /im+QzIXtRdkZ+5cMxmVOLkyvMGC6Rp9Pyen2w5I71RiVRU2KtNvIUTTLnj1g2lad6ZpupkypLvQTu7X + TzWe/+Tzz1/ShhTQ5+8hAe8F8GF1jMiPQ+kpWBgN7JnTK+rc6aAqDsUc/kEhAEY9K+Tce2YJ955ZutWn + eqSI9PdwrEzGNYBkz0qMEcuTkbpE0rlLa4+2rdMajlyE6AEQ8SnsLE6SxFcAoowxAIgyxgAgyhgDgChj + DACijDEAiDLGACDKWIGdvyvW/Bn0TQ4QYnwQSiPQdNbc99r5q+/Ragzr8oSR9HoAdV2WS4tDtXmiKix7 + CeimijFCn54Hrm/OZo2yuUiI0c+aVt3VZd64z4UYX1SGdAD+oud0L6Ln+S5+9qGH+laMuPjmv6SnP/NX + QyiNQPOmq9rOvVOr4X1YMiLJGhGQxbG+MEVEZk1ptO8idnZl0sybzk23Gy0A3HTWaFuHIYT4dR/iXylD + 3Acf/uG/2e318BWAKGMMAKKMMQCIMsYAIMoYA4AoYwwAoozd6L4AfbZ6al1CTy9BjLGJSi+BD2HStN2Z + nhqVkfSiIiIiZWHVHSrECKcSj6gIIPZM4XXO+6hsDBJiDG3n1Ll1H8K5GGNymi/G2AH4Rs/pXsLOc5Xi + 9uKeHJjv+lN/8sK7ACQn+svC/JA15oNajWFd3WVEkjWGg6o8fWKirpAxqEv0bB5Eh5QPAfP09DwA4OLl + jeuzeavN4c9nTavu6uNDeLpz4W+VIfPHf+JdL9zq+wHwFYAoawwAoowxAIgyxgAgyhgDgChjDACijDEA + iDK2V41Ae+EVAFqTzgUAf6cVcM6/VZQ+AMzb1QtvXH9Eq1GW5rSIJBceKQtrlyfjBa1GVVphL8He8iGg + 7bzaxbO+Md3qnE+u1hFjnHVdUNe2mDfdc53z55Uac/Q38bwG4Lp2Oft353QHphFoL3zqj1+4B0Dy4S1K + e6+15qNajaq09xgjyV1b6qosV08uH9NqDOtSikJtOKTvknMes6ZTA+D8G+vXmlZZiSfEzbbzX9dqeB8+ + 4Tr/sjJk9qFH36XWOEz4a4ooYwwAoowxAIgyxgAgyhgDgChjDACijB2kPoC90EHvJZiiZ48DACMAyWnA + iFg7HyqtQOt8FWJU7q3AWqPOExrBkdnkJMaInnU44H3wO0t2fGfOB+d8UBfiiDFeBNAoQzbR//lPoW+m + 0eEIORrfsD301Ge+dBpKL0Fli9XCFP9Gq2GMeYeInEwdLwpr7zi5fJtWYzyqZVAVR+LzmbcuTrcbNQLO + vbF+xelNPG8EH76i1XDB/fc2uPPKkNnjD7+7LwCywlcAoowxAIgyxgAgyhgDgChjDACijDEAiDLGACDK + 2FFrBNoLG9hpBkmZAfgdrUAEVmNMNxOFEMfrG1N1YZLN6fwuYyTZKyAisrQwWNRq1FVpqtLuqpeg7Xxs + 2i5oY65vzTfV3XRCvOK9VzfTCCE+F6Jy3yM2AWhz/MDOojLaZ3dgFuI4KBgA/8DjD797u2dIbzfZU5/5 + 8hKAOnW8NG65bdo7tRpiTaWtTGSMmKowY62GNUZ2GwDO+Tibt2oAXF7b3A4hJsfEGC/GviaeiD/sgqwr + Q5rHH75fW2WHvgd8BSDKGAOAKGMMAKKMMQCIMsYAIMoYA4AoY5wGvDkitNUtgACgb7pxCzs9CSkmxjjR + CoQQKu/Drj7jEIKLMbY9wzbevCbtWvquN/Tcs54lReh7cSQWnDiKnvrMlxehLExiBcNK4i9pNcTKfWLk + nt2cRwzx5eDDi9qYLsqTPspMGTJ7/OH7N/fjvtF3h68ARBljABBljAFAlDEGAFHGGABEGWMAEGWMAUCU + MTYCHVwN9AUs5gCe7anxBQAntAHaQh5vuoL+3XTWADjluAMdSGwEOsKe+ewLAygLkwBA27m+AGg+9JMP + NKAjia8ARBljABBljAFAlDEGAFHGGABEGWMAEGWMAUCUsf8PzNlsT7yleHcAAAAASUVORK5CYIIoAAAA + gAAAAAABAAABACAAAAAAAAAAAQBhCgAAYQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMu6oEzLuqD8y7qg/Mu6oPzLuqD8i2pA7ItqQO + yLakDsi2pA7ItqQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAMy7qgTMu6oPzLuqD8y7qg/Mu6oPyLakDsi2pA7ItqQOyLakDsi2pAQAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLuqBMy7qg/Mu6oPzLuqD8y7qg/ItqQO + yLakDsi2pA7ItqQOyLakBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADMu6oEzLuqD8y7qg/Mu6oPzLuqD8i2pA7ItqQOyLakDsi2pA7ItqQEAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADRuaIN0bmiENG5ohDRuaIQ0LuqQ9C7q2/Qu6tv0Lurb9G9rH/SwK2s0sCtrNLArazSwK2s + 0sCtrNLArazSwK2s0sCtrNC9q37Pu6puz7uqbs+7qm7Pu6lC0bmiENG5ohDRuaIQ0bmiDQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANG5ohLRuaIW0bmiFtG5ohbQu6pb + 0Lurl9C7q5fQu6uX0b2srNLAreXSwK3l0sCt5dLAreXSwK3l0sCt5dLAreXSwK3l0L2rq8+7qpbPu6qW + z7uqls+7qVrRuaIW0bmiFtG5ohbRuaISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA0bmiEtG5ohbRuaIW0bmiFtC7qlvQu6uX0Lurl9C7q5fRvays0sCt5dLAreXSwK3l + 0sCt5dLAreXSwK3l0sCt5dLAreXQvaurz7uqls+7qpbPu6qWz7upWtG5ohbRuaIW0bmiFtG5ohIAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIS0bmiFtG5ohbRuaIW + 0LuqW9C7q5fQu6uX0Lurl9G9rKzSwK3l0sCt5dLAreXSwK3l0sCt5dLAreXSwK3l0sCt5dC9q6vPu6qW + z7uqls+7qpbPu6la0bmiFtG5ohbRuaIW0bmiEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANG5ogPRuaIK0bmiCtG5ogrRuqUO + 0LyrRNC8q0TQvKtE0LyrRNK/rGzTv6x207+sdtO/rHbYx7eg28y9xdvMvcXbzL3F3c7A0eHVxvHh1cbx + 4dXG8eHVxvHh1cbx4dXG8eHVxvHh1cbx3c7A0dvMvcXbzL3F28y9xdjHt6DTv6x207+sdtO/rHbSv6xs + 0LyrRNC8q0TQvKtE0LyrRNG6pQ7RuaIK0bmiCtG5ogrRuaIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA0bmiB9G5ohbRuaIW0bmiFtG6pR7QvKuR0LyrkdC8q5HQvKuR07+t09PArePTwK3j + 08Ct49zNve/j18r649fK+uPXyvrn3ND78erg//Hq4P/x6uD/8erg//Hq4P/x6uD/8erg//Hq4P/n3ND7 + 49fK+uPXyvrj18r63M2979PArePTwK3j08Ct49O/rdPQvKuR0LyrkdC8q5HQvKuR0bqlHtG5ohbRuaIW + 0bmiFtG5ogcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIH0bmiFtG5ohbRuaIW + 0bqlHtC8q5HQvKuR0LyrkdC8q5HTv63T08Ct49PArePTwK3j3M297+PXyvrj18r649fK+ufc0Pvx6uD/ + 8erg//Hq4P/x6uD/8erg//Hq4P/x6uD/8erg/+fc0Pvj18r649fK+uPXyvrczb3v08Ct49PArePTwK3j + 07+t09C8q5HQvKuR0LyrkdC8q5HRuqUe0bmiFtG5ohbRuaIW0bmiBwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAANG5ogfRuaIW0bmiFtG5ohbRuqUe0LyrkdC8q5HQvKuR0LyrkdO/rdPTwK3j + 08Ct49PArePczb3v49fK+uPXyvrj18r659zQ+/Hq4P/x6uD/8erg//Hq4P/x6uD/8erg//Hq4P/x6uD/ + 59zQ++PXyvrj18r649fK+tzNve/TwK3j08Ct49PArePTv63T0LyrkdC8q5HQvKuR0LyrkdG6pR7RuaIW + 0bmiFtG5ohbRuaIHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAMm5ogbJuaIHybmiB8m5ogfQvasW0b6sIdG+rCHRvqwh0r6sK9O/q0DTv6tA + 07+rQNTArUbXxban18W2p9fFtqfXxban2cm429rJuOnaybjp2sm46eHTxfLm28/75tvP++bbz/vp39P8 + 8erg//Hq4P/x6uD/8erg//Hq4P/x6uD/8erg//Hq4P/p39P85tvP++bbz/vm28/74dPF8trJuOnaybjp + 2sm46dnJuNvXxban18W2p9fFtqfXxban1MCtRtO/q0DTv6tA07+rQNK+rCvRvawh0b2sIdG9rCHQvasW + ybmiB8m5ogfJuaIHybmiBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAybmiHcm5oiHJuaIh + ybmiIdC9q3DRvqyl0b6spdG+rKXSv6271MGv5tTBr+bUwa/m1cOx6Ofbzv3n287959vO/efbzv3w6N3/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+fbzv3n287959vO/efbzv3Vw7Ho + 1MGv5tTBr+bUwa/m0r+tu9G9rKXRvayl0b2spdC9q3DJuaIhybmiIcm5oiHJuaIdAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAADJuaIdybmiIcm5oiHJuaIh0L2rcNG+rKXRvqyl0b6spdK/rbvUwa/m + 1MGv5tTBr+bVw7Ho59vO/efbzv3n287959vO/fDo3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6N3/59vO/efbzv3n287959vO/dXDsejUwa/m1MGv5tTBr+bSv6270b2spdG9rKXRvayl + 0L2rcMm5oiHJuaIhybmiIcm5oh0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMm5oh3JuaIh + ybmiIcm5oiHQvatw0b6spdG+rKXRvqyl0r+tu9TBr+bUwa/m1MGv5tXDsejn287959vO/efbzv3n2879 + 8Ojd//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Do3f/n287959vO/efbzv3n2879 + 1cOx6NTBr+bUwa/m1MGv5tK/rbvRvayl0b2spdG9rKXQvatwybmiIcm5oiHJuaIhybmiHQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAybmiHcm5oiHJuaIhybmiIdC9q3DRvqyl0b6spdG+rKXSv627 + 1MGv5tTBr+bUwa/m1cOx6Ofbzv3n287959vO/efbzv3w6N3/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8Ojd/+fbzv3n287959vO/efbzv3Vw7Ho1MGv5tTBr+bUwa/m0r+tu9G9rKXRvayl + 0b2spdC9q3DJuaIhybmiIcm5oiHJuaIdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAADMtaQRzLWkKsy1pCrMtaQqzrinO9G9q6rRvauq0b2rqtG9q6rUw7LT + 1cSz2tXEs9rVxLPa4tXH7One0vjp3tL46d7S+Ovi1vrw6N798Oje/fDo3v3w6d798erg//Hq4P/x6uD/ + 8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8erg//Hq4P/x6uD/ + 8erg//Dp3v3w6N798Oje/fDo3v3r4tb66d7S+One0vjp3tL44tXH7NXEs9rVxLPa1cSz2tTDstPRvauq + 0b2rqtG9q6rRvauqzrinO8y1pCrMtaQqzLWkKsy1pBEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy1pBLMtaQt + zLWkLcy1pC3OuKc/0b2rttG9q7bRvau20b2rttXDsuDVxLPn1cSz59XEs+fi1cj16uDU/urg1P7q4NT+ + 7eTY/vLr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+3k2P7q4NT+ + 6uDU/urg1P7i1cj11cSz59XEs+fVxLPn1cOy4NG9q7bRvau20b2rttG9q7bOuKc/zLWkLcy1pC3MtaQt + zLWkEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLWkEsy1pC3MtaQtzLWkLc64pz/Rvau20b2rttG9q7bRvau2 + 1cOy4NXEs+fVxLPn1cSz5+LVyPXq4NT+6uDU/urg1P7t5Nj+8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7eTY/urg1P7q4NT+6uDU/uLVyPXVxLPn1cSz59XEs+fVw7Lg + 0b2rttG9q7bRvau20b2rts64pz/MtaQtzLWkLcy1pC3MtaQSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMtaQS + zLWkLcy1pC3MtaQtzrinP9G9q7bRvau20b2rttG9q7bVw7Lg1cSz59XEs+fVxLPn4tXI9erg1P7q4NT+ + 6uDU/u3k2P7y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/t5Nj+ + 6uDU/urg1P7q4NT+4tXI9dXEs+fVxLPn1cSz59XDsuDRvau20b2rttG9q7bRvau2zrinP8y1pC3MtaQt + zLWkLcy1pBIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6Il + zLeiKMy3oijMt6Ioz7ypZdC9qoPQvaqD0L2qg9PArpPWxLSs1sS0rNbEtKzYx7e05NjL5+TYy+fk2Mvn + 5NjL5+je0vXp39P36d/T9+nf0/ft5Nn87+fd/+/n3f/v593/8One//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Dp3v/v593/7+fd/+/n3f/t5Nn86d/T9+nf0/fp39P3 + 6N7S9eTYy+fk2Mvn5NjL5+TYy+fYx7e01sS0rNbEtKzWxLSs08Cuk9C9qoPQvaqD0L2qg8+8qWXMt6Io + zLeiKMy3oijMt6IlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy3ojjMt6I8zLeiPMy3ojzPvKmX0L2qxdC9qsXQvarF + 08Gv1NfFtevXxbXr18W169rJuu7r4tb/6+LW/+vi1v/r4tb/8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/x6uD/6+LW/+vi1v/r4tb/6+LW/9rJuu7XxbXr + 18W169fFtevTwa/U0L2qxdC9qsXQvarFz7ypl8y3ojzMt6I8zLeiPMy3ojgAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + zLeiOMy3ojzMt6I8zLeiPM+8qZfQvarF0L2qxdC9qsXTwa/U18W169fFtevXxbXr2sm67uvi1v/r4tb/ + 6+LW/+vi1v/x6uD/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Hq4P/r4tb/6+LW/+vi1v/r4tb/2sm67tfFtevXxbXr18W169PBr9TQvarF0L2qxdC9qsXPvKmX + zLeiPMy3ojzMt6I8zLeiOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6I4zLeiPMy3ojzMt6I8z7ypl9C9qsXQvarF + 0L2qxdPBr9TXxbXr18W169fFtevaybru6+LW/+vi1v/r4tb/6+LW//Hq4P/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8erg/+vi1v/r4tb/6+LW/+vi1v/aybru + 18W169fFtevXxbXr08Gv1NC9qsXQvarF0L2qxc+8qZfMt6I8zLeiPMy3ojzMt6I4AAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM65pQzOuaUZzrmlGc65pRnPu6gk0b6rUdG+q1HRvqtR + 0b6rUdXDsn/Vw7KC1cOygtXDsoLczLy+3c+/3N3Pv9zdz7/c4NLD5eLVx/Pi1cfz4tXH8+TXyvXu5tr/ + 7uba/+7m2v/u5tr/8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/x6uD/7uba/+7m2v/u5tr/7uba/+TXyvXi1cfz4tXH8+LVx/Pg0sPl3c+/3N3Pv9zdz7/c + 3My8vtXDsoLVw7KC1cOygtXDsn/RvqtR0b6rUdG+q1HRvqtRz7uoJM65pRnOuaUZzrmlGc65pQwAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + zrmlHc65pT7OuaU+zrmlPs+7qFrRvqvL0b6ry9G+q8vRvqvL2ce36tnIuOzZyLjs2ci47Ofbzvnt5Nj/ + 7eTY/+3k2P/v59z/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh/+/n3P/t5Nj/7eTY/+3k2P/n28752ci47NnIuOzZyLjs2ce36tG+q8vRvqvL + 0b6ry9G+q8vPu6hazrmlPs65pT7OuaU+zrmlHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOuaUdzrmlPs65pT7OuaU+z7uoWtG+q8vRvqvL + 0b6ry9G+q8vZx7fq2ci47NnIuOzZyLjs59vO+e3k2P/t5Nj/7eTY/+/n3P/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7+fc/+3k2P/t5Nj/ + 7eTY/+fbzvnZyLjs2ci47NnIuOzZx7fq0b6ry9G+q8vRvqvL0b6ry8+7qFrOuaU+zrmlPs65pT7OuaUd + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAM65pR3OuaU+zrmlPs65pT7Pu6ha0b6ry9G+q8vRvqvL0b6ry9nHt+rZyLjs2ci47NnIuOzn2875 + 7eTY/+3k2P/t5Nj/7+fc//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/v59z/7eTY/+3k2P/t5Nj/59vO+dnIuOzZyLjs2ci47NnHt+rRvqvL + 0b6ry9G+q8vRvqvLz7uoWs65pT7OuaU+zrmlPs65pR0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAL+/nwG/v58Bv7+fAb+/nwHNuKQSzbikGM24pBjNuKQYzrqmNs+6p1fPuqdXz7qnV9G+q2/WxLLS + 1sSy0tbEstLWxLLS3My97d3Nvu/dzb7v3c2+7+jd0Pru5dn/7uXZ/+7l2f/v59z/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3P/u5dn/ + 7uXZ/+7l2f/o3dD63c2+793Nvu/dzb7v3My97dXEstLVxLLS1cSy0tXEstLRvqtvz7qnV8+6p1fPuqdX + z7qmNc65pRjOuaUYzrmlGM65pRK/v58Bv7+fAb+/nwG/v58Bv7+fCL+/nwi/v58Iv7+fCM24pIjNuKS3 + zbikt824pLfPuqfV0Lyp+NC8qfjQvKn41sSz+e3k2P/t5Nj/7eTY/+3k2P/y6+D/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/ + 7OPX/+zj1//s49f/7OPX/9bEs/nQvKr40Lyq+NC8qvjPu6jUzrmltc65pbXOuaW1zrmlh7+/nwi/v58I + v7+fCL+/nwi/v58Iv7+fCL+/nwi/v58IzbikiM24pLfNuKS3zbikt8+6p9XQvKn40Lyp+NC8qfjWxLP5 + 7eTY/+3k2P/t5Nj/7eTY//Lr4P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lq4P/s49f/7OPX/+zj1//s49f/1sSz+dC8qvjQvKr4 + 0Lyq+M+7qNTOuaW1zrmltc65pbXOuaWHv7+fCL+/nwi/v58Iv7+fCL+/nwi/v58Iv7+fCL+/nwjNuKSI + zbikt824pLfNuKS3z7qn1dC8qfjQvKn40Lyp+NbEs/nt5Nj/7eTY/+3k2P/t5Nj/8uvg//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8urg/+zj1//s49f/7OPX/+zj1//WxLP50Lyq+NC8qvjQvKr4z7uo1M65pbXOuaW1zrmltc65pYe/v58I + v7+fCL+/nwi/v58Iv7+fCL+/nwi/v58Iv7+fCM24pIjNuKS3zbikt824pLfPuqfV0Lyp+NC8qfjQvKn4 + 1sSz+e3k2P/t5Nj/7eTY/+3k2P/y6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/7OPX/+zj1//s49f/7OPX/9bEs/nQvKr4 + 0Lyq+NC8qvjPu6jUzrmltc65pbXOuaW1zrmlh7+/nwi/v58Iv7+fCL+/nwi/v58Bv7+fAb+/nwG/v58B + zbuiFc27oh3Nu6IdzbuiHc+7p0fPu6h4z7uoeM+7qHjRvauN1MKx4tTCseLUwrHi1MKx4t/Sw/Hg08Xy + 4NPF8uDTxfLq4dX77+jd/+/o3f/v6N3/8One//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7+bb/+3i1v/t4tb/7eLW/+fWxf/WtJj/1rSY/9a0mP/WtJj/ + 1rSY/9a0mP/WtJj/1rSY/+fWxf/t4tb/7eLW/+3i1v/v5tv/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/w6d7/7+jd/+/o3f/v6N3/6uHV++DTxfLg08Xy + 4NPF8t/Sw/HUwrHi1MKx4tTCseLUwrHi0b2rjc+7qXjPu6l4z7upeM+6qEfMuqgczLqoHMy6qBzMuqgV + v7+fAb+/nwG/v58Bv7+fAQAAAAAAAAAAAAAAAAAAAADMzJkEzMyZBczMmQXMzJkFz7unMc+6qGTPuqhk + z7qoZM+7qXzQvKrd0Lyq3dC8qt3QvKrd3M6/793PwPDdz8Dw3c/A8Onf0/rv59z/7+fc/+/n3P/w6d7/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/v5tr/ + 7OHU/+zh1P/s4dT/5dPB/9Ksjf/SrI3/0qyN/9Ksjf/SrI3/0qyN/9Ksjf/SrI3/5dPB/+zh1P/s4dT/ + 7OHU/+/m2v/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Dp3v/v59z/7+fc/+/n3P/p39P63c/A8N3PwPDdz8Dw3M6/79C8qt3QvKrd0Lyq3dC8qt3Pu6l8 + z7qoZM+6qGTPuqhkzrqpMb+/vwS/v78Ev7+/BL+/vwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAMzMmQTMzJkFzMyZBczMmQXPu6cxz7qoZM+6qGTPuqhkz7upfNC8qt3QvKrd0Lyq3dC8qt3czr/v + 3c/A8N3PwPDdz8Dw6d/T+u/n3P/v59z/7+fc//Dp3v/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/m2v/s4dT/7OHU/+zh1P/l08H/0qyN/9Ksjf/SrI3/ + 0qyN/9Ksjf/SrI3/0qyN/9Ksjf/l08H/7OHU/+zh1P/s4dT/7+ba//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8One/+/n3P/v59z/7+fc/+nf0/rdz8Dw + 3c/A8N3PwPDczr/v0Lyq3dC8qt3QvKrd0Lyq3c+7qXzPuqhkz7qoZM+6qGTOuqkxv7+/BL+/vwS/v78E + v7+/AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMyZBMzMmQXMzJkFzMyZBc+7pzHPuqhk + z7qoZM+6qGTPu6l80Lyq3dC8qt3QvKrd0Lyq3dzOv+/dz8Dw3c/A8N3PwPDp39P67+fc/+/n3P/v59z/ + 8One//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 7+ba/+zh1P/s4dT/7OHU/+XTwf/SrI3/0qyN/9Ksjf/SrI3/0qyN/9Ksjf/SrI3/0qyN/+XTwf/s4dT/ + 7OHU/+zh1P/v5tr/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6d7/7+fc/+/n3P/v59z/6d/T+t3PwPDdz8Dw3c/A8NzOv+/QvKrd0Lyq3dC8qt3QvKrd + z7upfM+6qGTPuqhkz7qoZM66qTG/v78Ev7+/BL+/vwS/v78DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADMzJkBzMyZAszMmQLMzJkCz7unFM+6qCjPuqgoz7qoKM+7qTLPvKpaz7yqWs+8qlrPvKpa + 18a2ltfGtprXxraa18a2mtzNvc/ez8Dp3s/A6d7PwOnh1MXu5trN9ebazfXm2s3159zP9/Do3f/w6N3/ + 8Ojd//Do3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/ + 7ePW/+3j1v/t49b/7ePW/+DItP/dwqv/3cKr/93Cq//Yt53/06+R/9Ovkf/Tr5H/1a2N/9ingP/Yp4D/ + 2KeA/9ingP/Yp4D/2KeA/9ingP/Yp4D/1ayM/9Ovkf/Tr5H/06+R/9i3nf/dwqv/3cKr/93Cq//gyLT/ + 7ePW/+3j1v/t49b/7ePW//Lq4P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6N3/8Ojd//Do3f/w6N3/59zP9ubazfXm2s315trN9eHUxe7ez8Dp3s/A6d7PwOnczb3P + 18a2mtfGtprXxraa18a2ltG7qVrRu6la0bupWtG7qVrQuqkyz7qoKM+6qCjPuqgozrqpFL+/vwK/v78C + v7+/Ar+/vwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAqqqqAaqqqgOqqqoDqqqqA6qqqgPNuKZbzbimYc24pmHNuKZhz7ypstC9qtvQvarb + 0L2q29XEsuPdzr7v3c6+793Ovu/f0cLx7ubb/+7m2//u5tv/7ubb//Hq4P/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hq4P/q3c7/6t3O/+rdzv/q3c7/1LGV/8+mh//Ppof/ + z6aH/8mZdf/DjWX/w41l/8ONZf/Kk2r/3KR4/9ykeP/cpHj/3KR4/9yjeP/co3j/3KN4/9yjeP/Kk2n/ + w41k/8ONZP/DjWT/yZl0/8+mh//Ppof/z6aH/9Sxlf/q3c7/6t3O/+rdzv/q3c7/8erg//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8erg/+7m2//u5tv/7ubb/+7m2//f0cLw + 3c6+7t3Ovu7dzr7u1cSy49C9qtvQvarb0L2q28+8qbLNuKZhzbimYc24pmHNuKZb/4CAAv+AgAL/gIAC + /4CAAv+AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqqqoBqqqqA6qqqgOqqqoD + qqqqA824plvNuKZhzbimYc24pmHPvKmy0L2q29C9qtvQvarb1cSy493Ovu/dzr7v3c6+79/RwvHu5tv/ + 7ubb/+7m2//u5tv/8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8erg/+rdzv/q3c7/6t3O/+rdzv/UsZX/z6aH/8+mh//Ppof/yZl1/8ONZf/DjWX/w41l/8qTav/cpHj/ + 3KR4/9ykeP/cpHj/3KN4/9yjeP/co3j/3KN4/8qTaf/DjWT/w41k/8ONZP/JmXT/z6aH/8+mh//Ppof/ + 1LGV/+rdzv/q3c7/6t3O/+rdzv/x6uD/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/x6uD/7ubb/+7m2//u5tv/7ubb/9/RwvDdzr7u3c6+7t3Ovu7VxLLj0L2q29C9qtvQvarb + z7ypss24pmHNuKZhzbimYc24plv/gIAC/4CAAv+AgAL/gIAC/4CAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAKqqqgGqqqoDqqqqA6qqqgOqqqoDzbimW824pmHNuKZhzbimYc+8qbLQvarb + 0L2q29C9qtvVxLLj3c6+793Ovu/dzr7v39HC8e7m2//u5tv/7ubb/+7m2//x6uD/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/x6uD/6t3O/+rdzv/q3c7/6t3O/9Sxlf/Ppof/ + z6aH/8+mh//JmXX/w41l/8ONZf/DjWX/ypNq/9ykeP/cpHj/3KR4/9ykeP/co3j/3KN4/9yjeP/co3j/ + ypNp/8ONZP/DjWT/w41k/8mZdP/Ppof/z6aH/8+mh//UsZX/6t3O/+rdzv/q3c7/6t3O//Hq4P/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hq4P/u5tv/7ubb/+7m2//u5tv/ + 39HC8N3Ovu7dzr7u3c6+7tXEsuPQvarb0L2q29C9qtvPvKmyzbimYc24pmHNuKZhzbimW/+AgAL/gIAC + /4CAAv+AgAL/gIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqqqqAKqqqgKqqqoC + qqqqAqqqqgLNuKY8zbimQc24pkHNuKZBz7ypd9C9qpLQvaqS0L2qktXDsqLby7q628u6utvLurrdzb3B + 5drN8eXazfHl2s3x5drN8erg1Pfr4dX46+HV+Ovh1fjt49f87uTY/+7k2P/u5Nj/69/R/+bUw//m1MP/ + 5tTD/+bTwf/dwqr/3cKq/93Cqv/dwqr/1aqJ/9Okgf/TpIH/06SB/9Kfef/Sm3H/0ptx/9Kbcf/Wn3X/ + 46p+/+Oqfv/jqn7/46p+/+Oqfv/jqn7/46p+/+Oqfv/Wn3T/0ptx/9Kbcf/Sm3H/0p94/9Okgf/TpIH/ + 06SB/9Wqif/dwqr/3cKq/93Cqv/dwqr/5tPB/+bUw//m1MP/5tTD/+vf0f/u5Nj/7uTY/+7k2P/t49f8 + 6+HV+Ovh1fjr4dX46uDU9+XazfHl2s3x5drN8eXazfHdzb3A28u6udvLurnby7q51cOyotC9qpLQvaqS + 0L2qks+8qXfNuKZBzbimQc24pkHNuKY8/4CAAf+AgAH/gIAB/4CAAf+AgAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAz7ilIM+4pU/PuKVPz7ilT8+5pmHPvarVz72q1c+9qtXPvarV2sm559vLu+rby7vq + 28u76uHSwvfl1sf/5dbH/+XWx//exrL/z6aH/8+mh//Ppof/zqSF/8OMY//DjGP/w4xj/8OMY//WnXH/ + 26F1/9uhdf/boXX/5qyA/++2iv/vtor/77aK/++2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/++2iv/vtor/77aK/++2iv/mrID/26F1/9uhdf/boXX/1p1x/8OMY//DjGP/w4xj/8OMY//OpIX/ + z6aH/8+mh//Ppof/3say/+XWx//l1sf/5dbH/+HSwvfby7vq28u76tvLu+raybnnz72q1c+9qtXPvarV + z72q1c+5pmHPuKVPz7ilT8+4pU/PuKUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPuKUgz7ilT8+4pU/PuKVP + z7mmYc+9qtXPvarVz72q1c+9qtXaybnn28u76tvLu+rby7vq4dLC9+XWx//l1sf/5dbH/97Gsv/Ppof/ + z6aH/8+mh//OpIX/w4xj/8OMY//DjGP/w4xj/9adcf/boXX/26F1/9uhdf/mrID/77aK/++2iv/vtor/ + 77aK//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/77aK/++2iv/vtor/77aK/+asgP/boXX/ + 26F1/9uhdf/WnXH/w4xj/8OMY//DjGP/w4xj/86khf/Ppof/z6aH/8+mh//exrL/5dbH/+XWx//l1sf/ + 4dLC99vLu+rby7vq28u76trJuefPvarVz72q1c+9qtXPvarVz7mmYc+4pU/PuKVPz7ilT8+4pSAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAM+4pSDPuKVPz7ilT8+4pU/PuaZhz72q1c+9qtXPvarVz72q1drJuefby7vq + 28u76tvLu+rh0sL35dbH/+XWx//l1sf/3say/8+mh//Ppof/z6aH/86khf/DjGP/w4xj/8OMY//DjGP/ + 1p1x/9uhdf/boXX/26F1/+asgP/vtor/77aK/++2iv/vtor/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//vtor/77aK/++2iv/vtor/5qyA/9uhdf/boXX/26F1/9adcf/DjGP/w4xj/8OMY//DjGP/ + zqSF/8+mh//Ppof/z6aH/97Gsv/l1sf/5dbH/+XWx//h0sL328u76tvLu+rby7vq2sm558+9qtXPvarV + z72q1c+9qtXPuaZhz7ilT8+4pU/PuKVPz7ilIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz7ilHc+4pUrPuKVK + z7ilSs+5plvPvKnKz7ypys+8qcrPvKnK2Ma05NnHtujZx7bo2ce26N/NvPbj0cD/49HA/+PRwP/cw63/ + 0KaG/9Cmhv/Qpob/z6SE/8aPZv/Gj2b/xo9m/8aPZv/Yn3P/3KJ2/9yidv/conb/5q2B/++2iv/vtor/ + 77aK/++2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/++2iv/vtor/77aK/++2iv/mrYH/ + 3KJ2/9yidv/conb/2J9z/8aPZv/Gj2b/xo9m/8aPZv/PpIT/0KaG/9Cmhv/Qpob/3MOt/+PRwP/j0cD/ + 49HA/9/NvPbZx7bo2ce26NnHtujYxrTkz7ypys+8qcrPvKnKz7ypys+5plvPuKVKz7ilSs+4pUrPuKUd + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAt3pOBrd6Ti63ek4ut3pOLrd6Ti68h1yz + vIdcx7yHXMe8h1zHv4hd5sGIXvvBiF77wYhe+8uSZ/zfpXn/36V5/9+lef/gpnr/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/+Cmev/fpXn/36V5/9+lef/Lkmf8wYhe+8GIXvvBiF77v4hd5ryHXMe8h1zHvIdcx7yHXLO3ek4u + t3pOLrd6Ti63ek4ut3pOBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAC3ek4Gt3pOLrd6Ti63ek4ut3pOLryHXLO8h1zHvIdcx7yHXMe/iF3mwYhe+8GIXvvBiF77 + y5Jn/N+lef/fpXn/36V5/+Cmev/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/4KZ6/9+lef/fpXn/36V5/8uSZ/zBiF77 + wYhe+8GIXvu/iF3mvIdcx7yHXMe8h1zHvIdcs7d6Ti63ek4ut3pOLrd6Ti63ek4GAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALd6Tga3ek4ut3pOLrd6Ti63ek4u + vIdcs7yHXMe8h1zHvIdcx7+IXebBiF77wYhe+8GIXvvLkmf836V5/9+lef/fpXn/4KZ6//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//gpnr/36V5/9+lef/fpXn/y5Jn/MGIXvvBiF77wYhe+7+IXea8h1zHvIdcx7yHXMe8h1yz + t3pOLrd6Ti63ek4ut3pOLrd6TgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAt3pOBrd6Ti63ek4ut3pOLrd6Ti68h1yzvIdcx7yHXMe8h1zHv4hd5sGIXvvBiF77 + wYhe+8uSZ/zfpXn/36V5/9+lef/gpnr/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+Cmev/fpXn/36V5/9+lef/Lkmf8 + wYhe+8GIXvvBiF77v4hd5ryHXMe8h1zHvIdcx7yHXLO3ek4ut3pOLrd6Ti63ek4ut3pOBgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAuH1PIbh9TzG4fU8xuH1PMbqAU127gVWgu4FVoLuBVaC8glalwohcyMKIXMjCiFzI + wohcyNqhde7dpHj03aR49N2kePTjqn76566C/ueugv7nroL+6bCE/u2zh//ts4f/7bOH/+20iP/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7bSI/+2zh//ts4f/7bOH/+mwhP7nroL+566C/ueugv7jqn763aR49N2kePTdpHj0 + 2qF17sKIXMjCiFzIwohcyMKIXMi9glamvIFVobyBVaG8gVWhu4BTXrh9TzG4fU8xuH1PMbh9TyEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4fU8puH1PPbh9Tz24fU89 + uoBTdbuBVci7gVXIu4FVyLyCVs3DiV3uw4ld7sOJXe7DiV3u4KZ6/eSqfv/kqn7/5Kp+/+uyhv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+uyhv/kqn7/5Kp+/+Sqfv/gpnr9w4ld7sOJXe7DiV3uw4ld7r2CVs68gVXJ + vIFVybyBVcm7gFN1uH1PPbh9Tz24fU89uH1PKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALh9Tym4fU89uH1PPbh9Tz26gFN1u4FVyLuBVci7gVXIvIJWzcOJXe7DiV3u + w4ld7sOJXe7gpnr95Kp+/+Sqfv/kqn7/67KG//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/67KG/+Sqfv/kqn7/ + 5Kp+/+Cmev3DiV3uw4ld7sOJXe7DiV3uvYJWzryBVcm8gVXJvIFVybuAU3W4fU89uH1PPbh9Tz24fU8p + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuH1PKbh9Tz24fU89 + uH1PPbqAU3W7gVXIu4FVyLuBVci8glbNw4ld7sOJXe7DiV3uw4ld7uCmev3kqn7/5Kp+/+Sqfv/rsob/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//rsob/5Kp+/+Sqfv/kqn7/4KZ6/cOJXe7DiV3uw4ld7sOJXe69glbO + vIFVybyBVcm8gVXJu4BTdbh9Tz24fU89uH1PPbh9TykAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1flEHtX5RJbV+USW1flEl + tX5RJbqAVGu6gFRwuoBUcLqAVHDCiFyNxItfm8SLX5vEi1+bzZNnudWccOXVnHDl1Zxw5dadcejconb3 + 3KJ299yidvfconb36a+D/uqxhf/qsYX/6rGF/+61if/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61if/qsYX/ + 6rGF/+qxhf/pr4P+3KJ299yidvfconb33KJ299adcejVnHDm1Zxw5tWccObNk2e5xYtemsWLXprFi16a + wohbjLqAVHC6gFRwuoBUcLqAVGu1flEltX5RJbV+USW1flEltX5RBwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALV+UQ61flFFtX5RRbV+UUW1flFFuoBUybqAVNK6gFTSuoBU0sOKXuTHjmLt + x45i7ceOYu3Um2/0566C/+eugv/nroL/6K+D//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 6K+D/+eugv/nroL/566C/9Wbb/TIjmHsyI5h7MiOYezEil3juoBU0rqAVNK6gFTSuoBUybV+UUW1flFF + tX5RRbV+UUW1flEOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtX5RDrV+UUW1flFF + tX5RRbV+UUW6gFTJuoBU0rqAVNK6gFTSw4pe5MeOYu3HjmLtx45i7dSbb/TnroL/566C/+eugv/or4P/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//or4P/566C/+eugv/nroL/1Ztv9MiOYezIjmHs + yI5h7MSKXeO6gFTSuoBU0rqAVNK6gFTJtX5RRbV+UUW1flFFtX5RRbV+UQ4AAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAC1flEOtX5RRbV+UUW1flFFtX5RRbqAVMm6gFTSuoBU0rqAVNLDil7k + x45i7ceOYu3HjmLt1Jtv9Oeugv/nroL/566C/+ivg//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/+ivg//nroL/566C/+eugv/Vm2/0yI5h7MiOYezIjmHsxIpd47qAVNK6gFTSuoBU0rqAVMm1flFF + tX5RRbV+UUW1flFFtX5RDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAKqAVQKqgFUCqoBVAqqAVQK5gFIVuYBSHLmAUhy5gFIcvIFVK72BVju9gVY7vYFWO8CFWUfFjGBz + xYxgc8WMYHPFjGBzyY9j18mPZN7Jj2TeyY9k3tCWauvTmm7y05pu8tOabvLco3f36bCE/+mwhP/psIT/ + 6rGF//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/6rGF/+mwhP/psIT/6bCE/9yjd/fTmm3x + 05pt8dOabfHQlmrryY9k3smPZN7Jj2TeyY9j18WMX3PFjF9zxYxfc8WMX3PAhVlHvYFWO72BVju9gVY7 + vIFVK7mAUhy5gFIcuYBSHLmAUhWqgFUCqoBVAqqAVQKqgFUCqoBVBqqAVQaqgFUGqoBVBrmAUk+5gFJq + uYBSarmAUmq8gVWhvYFW372BVt+9gVbfwYZa49KXa/HSl2vx0pdr8dKXa/HpsIX+67KH/+uyh//rsof/ + 7rWK//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61iv/rsof/67KH/+uyh//psIX+ + 0Zdq8tGXavLRl2ry0Zdq8sGGWuO9gVbfvYFW372BVt+8gVWhuYBSarmAUmq5gFJquYBST6qAVQaqgFUG + qoBVBqqAVQaqgFUGqoBVBqqAVQaqgFUGuYBST7mAUmq5gFJquYBSaryBVaG9gVbfvYFW372BVt/Bhlrj + 0pdr8dKXa/HSl2vx0pdr8emwhf7rsof/67KH/+uyh//utYr/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7rWK/+uyh//rsof/67KH/+mwhf7Rl2ry0Zdq8tGXavLRl2rywYZa472BVt+9gVbf + vYFW37yBVaG5gFJquYBSarmAUmq5gFJPqoBVBqqAVQaqgFUGqoBVBqqAVQaqgFUGqoBVBqqAVQa5gFJP + uYBSarmAUmq5gFJqvIFVob2BVt+9gVbfvYFW38GGWuPSl2vx0pdr8dKXa/HSl2vx6bCF/uuyh//rsof/ + 67KH/+61iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utYr/67KH/+uyh//rsof/ + 6bCF/tGXavLRl2ry0Zdq8tGXavLBhlrjvYFW372BVt+9gVbfvIFVobmAUmq5gFJquYBSarmAUk+qgFUG + qoBVBqqAVQaqgFUGqoBVBqqAVQaqgFUGqoBVBrmAUk+5gFJquYBSarmAUmq8gVWhvYFW372BVt+9gVbf + wYZa49KXa/HSl2vx0pdr8dKXa/HpsIX+67KH/+uyh//rsof/7rWK//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+61iv/rsof/67KH/+uyh//psIX+0Zdq8tGXavLRl2ry0Zdq8sGGWuO9gVbf + vYFW372BVt+8gVWhuYBSarmAUmq5gFJquYBST6qAVQaqgFUGqoBVBqqAVQa/gEAEv4BABL+AQAS/gEAE + un1SSrp9UmS6fVJkun1SZLuAVJy7gVXdu4FV3buBVd3AhVnh0ZZq8NGWavDRlmrw0ZZq8OmwhP7rsob/ + 67KG/+uyhv/utYn/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+62iv/ptYn/6bWJ/+m1if/ptYn/ + 6baI/+m2iP/ptoj/6baI/+63iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/7rWJ/+uyhv/rsob/ + 67KG/+mwhP7Rlmrw0ZZq8NGWavDRlmrwwIVZ4buBVd27gVXdu4FV3buAVJy6fVJkun1SZLp9UmS6fVJK + v4BABL+AQAS/gEAEv4BABL+AQAS/gEAEv4BABL+AQAS6fVJKun1SZLp9UmS6fVJku4BUnLuBVd27gVXd + u4FV3cCFWeHRlmrw0ZZq8NGWavDRlmrw6bCE/uuyhv/rsob/67KG/+61if/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7raK/+m1if/ptYn/6bWJ/+m1if/ptoj/6baI/+m2iP/ptoj/7reK//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//utYn/67KG/+uyhv/rsob/6bCE/tGWavDRlmrw0ZZq8NGWavDAhVnh + u4FV3buBVd27gVXdu4BUnLp9UmS6fVJkun1SZLp9Ukq/gEAEv4BABL+AQAS/gEAEv4BABL+AQAS/gEAE + v4BABLp9Ukq6fVJkun1SZLp9UmS7gFScu4FV3buBVd27gVXdwIVZ4dGWavDRlmrw0ZZq8NGWavDpsIT+ + 67KG/+uyhv/rsob/7rWJ//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utor/6bWJ/+m1if/ptYn/ + 6bWJ/+m2iP/ptoj/6baI/+m2iP/ut4r/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61if/rsob/ + 67KG/+uyhv/psIT+0ZZq8NGWavDRlmrw0ZZq8MCFWeG7gVXdu4FV3buBVd27gFScun1SZLp9UmS6fVJk + un1SSr+AQAS/gEAEv4BABL+AQAS/gEAEv4BABL+AQAS/gEAEun1SSrp9UmS6fVJkun1SZLuAVJy7gVXd + u4FV3buBVd3AhVnh0ZZq8NGWavDRlmrw0ZZq8OmwhP7rsob/67KG/+uyhv/utYn/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+62iv/ptYn/6bWJ/+m1if/ptYn/6baI/+m2iP/ptoj/6baI/+63iv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/7rWJ/+uyhv/rsob/67KG/+mwhP7Rlmrw0ZZq8NGWavDRlmrw + wIVZ4buBVd27gVXdu4FV3buAVJy6fVJkun1SZLp9UmS6fVJKv4BABL+AQAS/gEAEv4BABL+AQAG/gEAB + v4BAAb+AQAG6fVIUun1SG7p9Uhu6fVIbun9UK7p/VT26f1U9un9VPb6DWEzEiV6IxIleiMSJXojEiV6I + yo9j4MqPY+fKj2Pnyo9j59OZbPDXnXD0151w9NedcPTfpXn467GG/+uxhv/rsYb/7LKH//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+q1if/otYj/6LWI/+i1iP/RsYH/va16/72tev+9rXr/tqx4/6Opc/+jqXP/ + o6lz/6Opc/+jqnP/o6pz/6Oqc/+jqnP/t6x4/76tev++rXr/vq16/9Kxgf/otYj/6LWI/+i1iP/qtYn/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/7LOG/+uyhf/rsoX/67KF/9+mefjXnXD0151w9NedcPTTmWzw + yo9j58qPY+fKj2Pnyo9j4MSJXojEiV6IxIleiMSJXoi+g1hMun9VPbp/VT26f1U9un9UK7p9Uhu6fVIb + un1SG7p9UhS/gEABv4BAAb+AQAG/gEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUB + qlVVA6pVVQOqVVUDt3lTFrl9U2K5fVNiuX1TYrl9U2K8gVXWvIFV3ryBVd68gVXeyI1h6s2TZvDNk2bw + zZNm8Nmfcvbpr4T/6a+E/+mvhP/qsIX/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/57WI/+W0h//ltIf/ + 5bSH/8avff+rqnT/q6p0/6uqdP+iqXL/iaVr/4mla/+JpWv/iaVr/4mla/+JpWv/iaVr/4mla/+jqXL/ + rKp0/6yqdP+sqnT/x699/+W0h//ltIf/5bSH/+e1iP/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//qsYT/ + 6bCD/+mwg//psIP/2Z9y9s2TZvDNk2bwzZNm8MiNYeq8gVXevIFV3ryBVd68gVXWuX1TYrl9U2K5fVNi + uX1TYrd5UxaqVVUDqlVVA6pVVQOqVVUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKpVVQGqVVUDqlVVA6pVVQO3eVMWuX1TYrl9U2K5fVNi + uX1TYryBVda8gVXevIFV3ryBVd7IjWHqzZNm8M2TZvDNk2bw2Z9y9umvhP/pr4T/6a+E/+qwhf/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//ntYj/5bSH/+W0h//ltIf/xq99/6uqdP+rqnT/q6p0/6Kpcv+JpWv/ + iaVr/4mla/+JpWv/iaVr/4mla/+JpWv/iaVr/6Opcv+sqnT/rKp0/6yqdP/Hr33/5bSH/+W0h//ltIf/ + 57WI//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+qxhP/psIP/6bCD/+mwg//Zn3L2zZNm8M2TZvDNk2bw + yI1h6ryBVd68gVXevIFV3ryBVda5fVNiuX1TYrl9U2K5fVNit3lTFqpVVQOqVVUDqlVVA6pVVQEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + qlVVAapVVQOqVVUDqlVVA7d5Uxa5fVNiuX1TYrl9U2K5fVNivIFV1ryBVd68gVXevIFV3siNYerNk2bw + zZNm8M2TZvDZn3L26a+E/+mvhP/pr4T/6rCF//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+e1iP/ltIf/ + 5bSH/+W0h//Gr33/q6p0/6uqdP+rqnT/oqly/4mla/+JpWv/iaVr/4mla/+JpWv/iaVr/4mla/+JpWv/ + o6ly/6yqdP+sqnT/rKp0/8evff/ltIf/5bSH/+W0h//ntYj/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 6rGE/+mwg//psIP/6bCD/9mfcvbNk2bwzZNm8M2TZvDIjWHqvIFV3ryBVd68gVXevIFV1rl9U2K5fVNi + uX1TYrl9U2K3eVMWqlVVA6pVVQOqVVUDqlVVAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUBqlVVAqpVVQKqVVUCt3lTDLl9UzS5fVM0 + uX1TNLl9UzS8gFVyvIBVd7yAVXe8gFV3xYpelsiOYaXIjmGlyI5hpc+UacHWnHDr1pxw69accOvXnXLt + 4KZ69uCmevbgpnr24KZ69uuyhv7ss4f/7LOH/+yzh//vtor/8LeL//C3i//wt4v/7reK/+u2if/rton/ + 67aJ/+m1if/RsYH/0bGB/9Gxgf/RsYH/v657/7qtev+6rXr/uq16/6yve/+fsXv/n7F7/5+xe/+csnz/ + kraA/5K2gP+StoD/kraA/5K2gP+StoD/kraA/5K2gP+csnz/n7F7/5+xe/+fsXv/rK97/7qtev+6rXr/ + uq16/7+ue//RsYH/0bGB/9Gxgf/RsYH/6bWJ/+u2if/rton/67aJ/+63iv/wt4v/8LeL//C3i//vtor/ + 7LOH/+yzh//ss4f/67KG/uCmevbgpnr24KZ69uCmevbXnnHt1pxw69accOvWnHDrz5VowciOYaXIjmGl + yI5hpcWKXpW8gVV2vIFVdryBVXa8gVVyuX1TNLl9UzS5fVM0uX1TNLd5UwyqVVUCqlVVAqpVVQKqVVUB + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAH/AAAB/wAAAf8AAAG4elA1 + uHtRT7h7UU+4e1FPun9UhbuBVdW7gVXVu4FV1b2DV9jMkWXrzJFl68yRZevMkWXr5at//Oivg//or4P/ + 6K+D/+20iP/wt4v/8LeL//C3i//stor/5bSH/+W0h//ltIf/4bOG/62rdf+tq3X/rat1/62rdf+Qpm3/ + iaVr/4mla/+JpWv/jbB4/5G5g/+RuYP/kbmD/5S9if+dyZj/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/ + ncmY/5S9if+RuYP/kbmD/5G5g/+NsHj/iaVr/4mla/+JpWv/kKZt/62rdf+tq3X/rat1/62rdf/hs4b/ + 5bSH/+W0h//ltIf/7LaK//C3i//wt4v/8LeL/+20iP/or4P/6K+D/+ivg//lq3/8zJFl68yRZevMkWXr + zJFl672DV9i7gVXVu4FV1buBVdW6f1SFuHtRT7h7UU+4e1FPuHtRNQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA/wAAAf8AAAH/AAAB/wAAAbh6UDW4e1FPuHtRT7h7UU+6f1SFu4FV1buBVdW7gVXV + vYNX2MyRZevMkWXrzJFl68yRZevlq3/86K+D/+ivg//or4P/7bSI//C3i//wt4v/8LeL/+y2iv/ltIf/ + 5bSH/+W0h//hs4b/rat1/62rdf+tq3X/rat1/5Cmbf+JpWv/iaVr/4mla/+NsHj/kbmD/5G5g/+RuYP/ + lL2J/53JmP+dyZj/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/lL2J/5G5g/+RuYP/kbmD/42weP+JpWv/ + iaVr/4mla/+Qpm3/rat1/62rdf+tq3X/rat1/+Gzhv/ltIf/5bSH/+W0h//stor/8LeL//C3i//wt4v/ + 7bSI/+ivg//or4P/6K+D/+Wrf/zMkWXrzJFl68yRZevMkWXrvYNX2LuBVdW7gVXVu4FV1bp/VIW4e1FP + uHtRT7h7UU+4e1E1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAB/wAAAf8AAAH/AAAB + uHpQNbh7UU+4e1FPuHtRT7p/VIW7gVXVu4FV1buBVdW9g1fYzJFl68yRZevMkWXrzJFl6+Wrf/zor4P/ + 6K+D/+ivg//ttIj/8LeL//C3i//wt4v/7LaK/+W0h//ltIf/5bSH/+Gzhv+tq3X/rat1/62rdf+tq3X/ + kKZt/4mla/+JpWv/iaVr/42weP+RuYP/kbmD/5G5g/+UvYn/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/ + ncmY/53JmP+UvYn/kbmD/5G5g/+RuYP/jbB4/4mla/+JpWv/iaVr/5Cmbf+tq3X/rat1/62rdf+tq3X/ + 4bOG/+W0h//ltIf/5bSH/+y2iv/wt4v/8LeL//C3i//ttIj/6K+D/+ivg//or4P/5at//MyRZevMkWXr + zJFl68yRZeu9g1fYu4FV1buBVdW7gVXVun9Uhbh7UU+4e1FPuHtRT7h7UTUAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAP8AAAH/AAAB/wAAAf8AAAG4elAquHtRP7h7UT+4e1E/un9UaruBVaq7gVWq + u4FVqr2DV67LkGTIy5BkyMuQZMjLkGTI3KV58N6oe/beqHv23qh79t6ugPvesoP93rKD/d6yg/3asYP+ + 0rGB/9Kxgf/SsYH/0LGB/6iuef+ornn/qK55/6iuef+TrXX/jax0/42sdP+NrHT/kbV+/5S8h/+UvIf/ + lLyH/5bAjP+dyZj/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/ncmY/5bAjP+UvIf/lLyH/5S8h/+RtX7/ + jax0/42sdP+NrHT/k611/6iuef+ornn/qK55/6iuef/QsYH/0rGB/9Kxgf/SsYH/2rGD/t6yg/3esoP9 + 3rKD/d6ugPveqHv23qh79t6oe/bcpXnwy5BkyMuQZMjLkGTIy5BkyL2DV667gVWqu4FVqruBVaq6f1Rq + uHtRP7h7UT+4e1E/uHtRKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtHtPCLR7Tzq0e086tHtPOrR7TzqwhVa/ + sIVW07CFVtOwhVbTnpNf6ZSbZPeUm2T3lJtk95CeZvqIpWv/iKVr/4ila/+Jpm3/k7uH/5O7h/+Tu4f/ + k7uH/5zGlf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cxpX/k7uH/5O7h/+Tu4f/ + k7uH/4mmbf+IpWv/iKVr/4ila/+Qnmb6lJtk95SbZPeUm2T3npNf6bCFVtOwhVbTsIVW07CFVr+0e086 + tHtPOrR7Tzq0e086tHtPCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAC0e08ItHtPOrR7Tzq0e086tHtPOrCFVr+whVbTsIVW07CFVtOek1/plJtk95SbZPeUm2T3 + kJ5m+oila/+IpWv/iKVr/4mmbf+Tu4f/k7uH/5O7h/+Tu4f/nMaV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5zGlf+Tu4f/k7uH/5O7h/+Tu4f/iaZt/4ila/+IpWv/iKVr/5CeZvqUm2T3 + lJtk95SbZPeek1/psIVW07CFVtOwhVbTsIVWv7R7Tzq0e086tHtPOrR7Tzq0e08IAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALR7Twi0e086tHtPOrR7Tzq0e086 + sIVWv7CFVtOwhVbTsIVW056TX+mUm2T3lJtk95SbZPeQnmb6iKVr/4ila/+IpWv/iaZt/5O7h/+Tu4f/ + k7uH/5O7h/+cxpX/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMaV/5O7h/+Tu4f/ + k7uH/5O7h/+Jpm3/iKVr/4ila/+IpWv/kJ5m+pSbZPeUm2T3lJtk956TX+mwhVbTsIVW07CFVtOwhVa/ + tHtPOrR7Tzq0e086tHtPOrR7TwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAtHtPCLR7Tzq0e086tHtPOrR7TzqwhVa/sIVW07CFVtOwhVbTnpNf6ZSbZPeUm2T3 + lJtk95CeZvqIpWv/iKVr/4ila/+Jpm3/k7uH/5O7h/+Tu4f/k7uH/5zGlf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cxpX/k7uH/5O7h/+Tu4f/k7uH/4mmbf+IpWv/iKVr/4ila/+Qnmb6 + lJtk95SbZPeUm2T3npNf6bCFVtOwhVbTsIVW07CFVr+0e086tHtPOrR7Tzq0e086tHtPCAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHefYBF3n2Aqd59gKnefYCp5oGI8fKJlrnyiZa58omWu + fKJlroKla96DpWzmg6Vs5oOlbOaPtH/0lr2K/pa9iv6WvYr+mMCO/p3Hlv+dx5b/nceW/53Hlv+dyJj/ + nciY/53ImP+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/ + nciY/53ImP+dyJj/nceW/53Hlv+dx5b/nceW/5jAjv6WvYr+lr2K/pa9iv6PtH/0g6Vs5oOlbOaDpWzm + gqVr3nyiZa58omWufKJlrnyiZa55oGI8d59gKnefYCp3n2Aqd59gEQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + d59gEnefYC13n2Atd59gLXmhYj97o2W2e6NltnujZbZ7o2W2f6ds4ICnbeeAp23ngKdt5462gfWWv43+ + lr+N/pa/jf6ZwpH+nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + mcKR/pa/jf6Wv43+lr+N/o62gfWAp23ngKdt54Cnbed/p2zge6NltnujZbZ7o2W2e6NltnmhYj93n2At + d59gLXefYC13n2ASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3n2ASd59gLXefYC13n2AteaFiP3ujZbZ7o2W2 + e6NltnujZbZ/p2zggKdt54CnbeeAp23njraB9Za/jf6Wv43+lr+N/pnCkf6eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+ZwpH+lr+N/pa/jf6Wv43+jraB9YCnbeeAp23n + gKdt53+nbOB7o2W2e6NltnujZbZ7o2W2eaFiP3efYC13n2Atd59gLXefYBIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHefYBJ3n2Atd59gLXefYC15oWI/e6NltnujZbZ7o2W2e6Nltn+nbOCAp23ngKdt54CnbeeOtoH1 + lr+N/pa/jf6Wv43+mcKR/p7Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5nCkf6Wv43+lr+N/pa/jf6OtoH1gKdt54CnbeeAp23nf6ds4HujZbZ7o2W2e6NltnujZbZ5oWI/ + d59gLXefYC13n2Atd59gEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHedXiV3nV4od51eKHedXih6oWRleqJlg3qiZYN6omWDfaRpk4CnbqyAp26sgKdurIOqcrSQuYTn + kLmE55C5hOeQuYTnlL6K9ZW+i/eVvov3lb6L95nDkfybxpX/m8aV/5vGlf+cx5b/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMeW/5vGlf+bxpX/m8aV/5nDkfyVvov3 + lb6L95W+i/eUvor1kLmE55C5hOeQuYTnkLmE54OqcrSAp26sgKdurICnbqx9pGmTeqJlg3qiZYN6omWD + eqFkZXedXih3nV4od51eKHedXiUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd51eOHedXjx3nV48d51ePHqhZJd6omXF + eqJlxXqiZcV9pWnUgahv64Gob+uBqG/rhKx07pfBj/+XwY//l8GP/5fBj/+dyJj/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+XwY//l8GP/5fBj/+XwY// + hKx07oGob+uBqG/rgahv632ladR6omXFeqJlxXqiZcV6oWSXd51ePHedXjx3nV48d51eOAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3nV44d51ePHedXjx3nV48eqFkl3qiZcV6omXFeqJlxX2ladSBqG/rgahv64Gob+uErHTu + l8GP/5fBj/+XwY//l8GP/53ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nciY/5fBj/+XwY//l8GP/5fBj/+ErHTugahv64Gob+uBqG/rfaVp1HqiZcV6omXF + eqJlxXqhZJd3nV48d51ePHedXjx3nV44AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHedXjh3nV48d51ePHedXjx6oWSX + eqJlxXqiZcV6omXFfaVp1IGob+uBqG/rgahv64SsdO6XwY//l8GP/5fBj/+XwY//nciY/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/l8GP/5fBj/+XwY// + l8GP/4SsdO6BqG/rgahv64Gob+t9pWnUeqJlxXqiZcV6omXFeqFkl3edXjx3nV48d51ePHedXjgAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd6BfDHegXxl3oF8Zd6BfGXmhYSR7omRR + e6JkUXuiZFF7omRRf6drf4Cna4KAp2uCgKdrgoavdr6IsXnciLF53IixedyKs3zljbaB8422gfONtoHz + j7iD9ZrEk/+axJP/msST/5rEk/+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/53ImP+axJP/msST/5rEk/+axJP/j7iD9Y22gfONtoHzjbaB84qzfOWIsXnc + iLF53IixedyGr3a+gKdrgoCna4KAp2uCf6drf3uiZFF7omRRe6JkUXuiZFF5oWEkd6BfGXegXxl3oF8Z + d6BfDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3oF8dd6BfPnegXz53oF8+eaFhWnuiZMt7omTLe6Jky3uiZMuDqm/qg6tw7IOrcOyDq3Ds + kbuH+ZjDkf+Yw5H/mMOR/5rFlP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/msWU/5jDkf+Yw5H/mMOR/5G7h/mDq3Dsg6tw7IOrcOyDqm/q + e6Jky3uiZMt7omTLe6Jky3mhYVp3oF8+d6BfPnegXz53oF8dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHegXx13oF8+d6BfPnegXz55oWFa + e6Jky3uiZMt7omTLe6Jky4Oqb+qDq3Dsg6tw7IOrcOyRu4f5mMOR/5jDkf+Yw5H/msWU/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+axZT/ + mMOR/5jDkf+Yw5H/kbuH+YOrcOyDq3Dsg6tw7IOqb+p7omTLe6Jky3uiZMt7omTLeaFhWnegXz53oF8+ + d6BfPnegXx0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAd6BfHXegXz53oF8+d6BfPnmhYVp7omTLe6Jky3uiZMt7omTLg6pv6oOrcOyDq3Ds + g6tw7JG7h/mYw5H/mMOR/5jDkf+axZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5rFlP+Yw5H/mMOR/5jDkf+Ru4f5g6tw7IOrcOyDq3Ds + g6pv6nuiZMt7omTLe6Jky3uiZMt5oWFad6BfPnegXz53oF8+d6BfHQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAgJ9gAYCfYAGAn2ABgJ9gAXacXxJ2nF8YdpxfGHacXxh4n2A2eKBhV3igYVd4oGFX + e6Nlb4Cna9KAp2vSgKdr0oCna9KGr3Xth69274evdu+Hr3bvk72J+pnEkv+ZxJL/mcSS/5vGlf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + m8aV/5nEkv+ZxJL/mcSS/5O9ifqHr3bvh69274evdu+Gr3XtgKdr0oCna9KAp2vSgKdr0nujZW94oGFX + eKBhV3igYVd3oGE1dp5gGHaeYBh2nmAYdp5gEoCfYAGAn2ABgJ9gAYCfYAGAn2AIgJ9gCICfYAiAn2AI + dpxfiHacX7d2nF+3dpxft3ieYtV6oGT4eqBk+HqgZPiAp235mMOR/5jDkf+Yw5H/mMOR/57JmP+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57JmP+YwpD/mMKQ/5jCkP+YwpD/f6dt+XmgZPh5oGT4eaBk+HifYtR2nmC1dp5gtXaeYLV2nmCH + gJ9gCICfYAiAn2AIgJ9gCICfYAiAn2AIgJ9gCICfYAh2nF+Idpxft3acX7d2nF+3eJ5i1XqgZPh6oGT4 + eqBk+ICnbfmYw5H/mMOR/5jDkf+Yw5H/nsmY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmY/5jCkP+YwpD/mMKQ/5jCkP9/p235 + eaBk+HmgZPh5oGT4eJ9i1HaeYLV2nmC1dp5gtXaeYIeAn2AIgJ9gCICfYAiAn2AIgJ9gCICfYAiAn2AI + gJ9gCHacX4h2nF+3dpxft3acX7d4nmLVeqBk+HqgZPh6oGT4gKdt+ZjDkf+Yw5H/mMOR/5jDkf+eyZj/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZj/mMKQ/5jCkP+YwpD/mMKQ/3+nbfl5oGT4eaBk+HmgZPh4n2LUdp5gtXaeYLV2nmC1 + dp5gh4CfYAiAn2AIgJ9gCICfYAiAn2AIgJ9gCICfYAiAn2AIdpxfiHacX7d2nF+3dpxft3ieYtV6oGT4 + eqBk+HqgZPiAp235mMOR/5jDkf+Yw5H/mMOR/57JmP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57JmP+YwpD/mMKQ/5jCkP+YwpD/ + f6dt+XmgZPh5oGT4eaBk+HifYtR2nmC1dp5gtXaeYLV2nmCHgJ9gCICfYAiAn2AIgJ9gCICfYAGAn2AB + gJ9gAYCfYAF0nGAVdJxgHXScYB10nGAdd6BjR3mhY3h5oWN4eaFjeHujZo1/p2zif6ds4n+nbOJ/p2zi + irN88Yu0ffKLtH3yi7R98pbAjfubxpX/m8aV/5vGlf+cx5b/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHlv+bxpX/m8aV/5vGlf+WwI37 + i7R98ou0ffKLtH3yirN88X+nbOJ/p2zif6ds4n+nbOJ7o2aNeKFjeHihY3h4oWN4eJ9iR3eaXBx3mlwc + d5pcHHeaXBWAn2ABgJ9gAYCfYAGAn2ABAAAAAAAAAAAAAAAAAAAAAGaZZgRmmWYFZplmBWaZZgV3oWMx + eKFjZHihY2R4oWNkeaFkfHuiZt17ombde6Jm3XuiZt2Hr3jviLB58IiwefCIsHnwlb6L+pvFlP+bxZT/ + m8WU/5zHlv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nMeW/5vFlP+bxZT/m8WU/5W+i/qIsHnwiLB58IiwefCHr3jve6Jm3XuiZt17ombd + e6Jm3XmhZHx4oWNkeKFjZHihY2R4oGExgIBABICAQASAgEAEgIBAAwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAZplmBGaZZgVmmWYFZplmBXehYzF4oWNkeKFjZHihY2R5oWR8e6Jm3XuiZt17ombd + e6Jm3YeveO+IsHnwiLB58IiwefCVvov6m8WU/5vFlP+bxZT/nMeW/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cx5b/m8WU/5vFlP+bxZT/ + lb6L+oiwefCIsHnwiLB58IeveO97ombde6Jm3XuiZt17ombdeaFkfHihY2R4oWNkeKFjZHigYTGAgEAE + gIBABICAQASAgEADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmmWYEZplmBWaZZgVmmWYF + d6FjMXihY2R4oWNkeKFjZHmhZHx7ombde6Jm3XuiZt17ombdh69474iwefCIsHnwiLB58JW+i/qbxZT/ + m8WU/5vFlP+cx5b/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5zHlv+bxZT/m8WU/5vFlP+Vvov6iLB58IiwefCIsHnwh69473uiZt17ombd + e6Jm3XuiZt15oWR8eKFjZHihY2R4oWNkeKBhMYCAQASAgEAEgIBABICAQAMAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAGaZZgFmmWYCZplmAmaZZgJ3oWMUeKFjKHihYyh4oWMoeaFkMnqiZlp6omZa + eqJmWnqiZlqBqnCWgapwmoGqcJqBqnCah693z4ixeemIsXnpiLF56Yy0fu6QuoX1kLqF9ZC6hfWSvIf3 + nMeW/5zHlv+cx5b/nMeW/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5zHlv+cx5b/nMeW/5zHlv+SvIf2kbqF9ZG6hfWRuoX1jLV+7oixeemIsXnp + iLF56Yevd8+BqnCagapwmoGqcJqBqnCWe6JmWnuiZlp7omZae6JmWnmhZDJ4oWMoeKFjKHihYyh4oGEU + gIBAAoCAQAKAgEACgIBAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAABVqlUBVapVA1WqVQNVqlUDVapVA3agYVt2oGFhdqBhYXagYWF5oWOy + eqFk23qhZNt6oWTbf6ds44avd++Gr3fvhq9374mye/GaxZT/msWU/5rFlP+axZT/nciY/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/msWU/5rFlP+axZT/ + msWU/4qze/CHsHfuh7B37oewd+5/p2zjeqFk23qhZNt6oWTbeaFjsnagYWF2oGFhdqBhYXagYVuAgIAC + gICAAoCAgAKAgIACgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFWqVQFVqlUD + VapVA1WqVQNVqlUDdqBhW3agYWF2oGFhdqBhYXmhY7J6oWTbeqFk23qhZNt/p2zjhq9374avd++Gr3fv + ibJ78ZrFlP+axZT/msWU/5rFlP+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/53ImP+axZT/msWU/5rFlP+axZT/irN78Iewd+6HsHfuh7B37n+nbON6oWTb + eqFk23qhZNt5oWOydqBhYXagYWF2oGFhdqBhW4CAgAKAgIACgICAAoCAgAKAgIAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVapVAVWqVQNVqlUDVapVA1WqVQN2oGFbdqBhYXagYWF2oGFh + eaFjsnqhZNt6oWTbeqFk23+nbOOGr3fvhq9374avd++JsnvxmsWU/5rFlP+axZT/msWU/53ImP+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciY/5rFlP+axZT/ + msWU/5rFlP+Ks3vwh7B37oewd+6HsHfuf6ds43qhZNt6oWTbeqFk23mhY7J2oGFhdqBhYXagYWF2oGFb + gICAAoCAgAKAgIACgICAAoCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVqlUA + VapVAlWqVQJVqlUCVapVAnagYTx2oGFBdqBhQXagYUF5oWN3eqFkknqhZJJ6oWSSf6ZrooSsc7qErHO6 + hKxzuoaud8GRuobxkbqG8ZG6hvGRuobxlb+M95bAjfiWwI34lsCN+JrEk/ycx5f/nMeX/5zHl/+dyJf/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciX/5zHl/+cx5f/ + nMeX/5rEk/yWwI34lsCN+JbAjfiVv4z3kbqG8ZG6hvGRuobxkbqG8Yevd8CFrXO5ha1zuYWtc7l/p2ui + eqFkknqhZJJ6oWSSeaFjd3agYUF2oGFBdqBhQXagYTyAgIABgICAAYCAgAGAgIABgICAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB3m14gd5teT3ebXk93m15PeJxgYXqgZdV6oGXVeqBl1XqgZdWEq3Ln + ha106oWtdOqFrXTqkbuH95nDkv+Zw5L/mcOS/5vFlP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+bxZT/mcOS/5nDkv+Zw5L/kbuH94WtdOqFrXTqha106oSrcud6oGXV + eqBl1XqgZdV6oGXVeJxgYXebXk93m15Pd5teT3ebXiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHebXiB3m15P + d5teT3ebXk94nGBheqBl1XqgZdV6oGXVeqBl1YSrcueFrXTqha106oWtdOqRu4f3mcOS/5nDkv+Zw5L/ + m8WU/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5vFlP+Zw5L/ + mcOS/5nDkv+Ru4f3ha106oWtdOqFrXTqhKty53qgZdV6oGXVeqBl1XqgZdV4nGBhd5teT3ebXk93m15P + d5teIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5teIHebXk93m15Pd5teT3icYGF6oGXVeqBl1XqgZdV6oGXV + hKty54WtdOqFrXTqha106pG7h/eZw5L/mcOS/5nDkv+bxZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/m8WU/5nDkv+Zw5L/mcOS/5G7h/eFrXTqha106oWtdOqEq3Ln + eqBl1XqgZdV6oGXVeqBl1XicYGF3m15Pd5teT3ebXk93m14gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3m14d + d5teSnebXkp3m15KeJxgWnqgZcd6oGXHeqBlx3qgZceDq3Lbha103oWtdN6FrXTekLqF8JfBkPuXwZD7 + l8GQ+5nDkvycx5f+nMeX/pzHl/6cx5f+nciY/53ImP+dyJj/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsiY/57ImP+eyJj/nsiY/5zHl/6cx5f+nMeX/pzHl/6Zw5L8 + l8GQ+5fBkPuXwZD7kLqF8IWtdN6FrXTeha103oOrctt6oGXHeqBlx3qgZcd6oGXHeJxgWnebXkp3m15K + d5teSnebXh0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHacXi92nF42dpxeNnacXjZ6oGSNe6Flx3uhZcd7oWXHfqRp0oKqcemCqnHpgqpx6YOsc+qWwY7/ + lsGO/5bBjv+WwY7/nMeX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Hl/+XwY7/ + l8GO/5fBjv+XwY7/hKxz6oKqcemCqnHpgqpx6X6kadJ7oWXHe6Flx3uhZcd6oGSNdpxeNnacXjZ2nF42 + dpxeLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdpxeL3acXjZ2nF42dpxeNnqgZI17oWXH + e6Flx3uhZcd+pGnSgqpx6YKqcemCqnHpg6xz6pbBjv+WwY7/lsGO/5bBjv+cx5f/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nceX/5fBjv+XwY7/l8GO/5fBjv+ErHPqgqpx6YKqcemCqnHp + fqRp0nuhZcd7oWXHe6Flx3qgZI12nF42dpxeNnacXjZ2nF4vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB2nF4vdpxeNnacXjZ2nF42eqBkjXuhZcd7oWXHe6Flx36kadKCqnHpgqpx6YKqcemDrHPq + lsGO/5bBjv+WwY7/lsGO/5zHl/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dx5f/ + l8GO/5fBjv+XwY7/l8GO/4Ssc+qCqnHpgqpx6YKqcel+pGnSe6Flx3uhZcd7oWXHeqBkjXacXjZ2nF42 + dpxeNnacXi8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHacXi92nF42dpxeNnacXjZ6oGSN + e6Flx3uhZcd7oWXHfqRp0oKqcemCqnHpgqpx6YOsc+qWwY7/lsGO/5bBjv+WwY7/nMeX/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Hl/+XwY7/l8GO/5fBjv+XwY7/hKxz6oKqcemCqnHp + gqpx6X6kadJ7oWXHe6Flx3uhZcd6oGSNdpxeNnacXjZ2nF42dpxeLwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAdpxeCXacXgt2nF4LdpxeC3qgZBx7oWUoe6FlKHuhZSh8omc1faRpT32kaU99pGlP + fqVqV4GpcMWBqXDFgalwxYGpcMWGrXXkhq527IauduyGrnbsj7mD9pfBjv6XwY7+l8GO/pnDkf6eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5nDkf6XwY7+l8GO/pfBjv6PuYP2hq527IauduyGrnbs + hq115IKpcMWCqXDFgqlwxYKpcMV+pWpXfaRpT32kaU99pGlPfKJnNXuhZSh7oWUoe6FlKHqgZBx2nF4L + dpxeC3acXgt2nF4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAHabXQ52m10pdptdKXabXSl3nF8yeqBltnqgZbZ6oGW2eqBltn+ma92Ap2zn + gKds54CnbOeMtH3zlb+L/pW/i/6Vv4v+l8KP/p7Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + l8KP/pW/i/6Vv4v+lb+L/oy0ffOAp2zngKds54CnbOd/pmvdeqBltnqgZbZ6oGW2eqBltnecXzJ2m10p + dptdKXabXSl2m10OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdptdDnabXSl2m10p + dptdKXecXzJ6oGW2eqBltnqgZbZ6oGW2f6Zr3YCnbOeAp2zngKds54y0ffOVv4v+lb+L/pW/i/6Xwo/+ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+Xwo/+lb+L/pW/i/6Vv4v+jLR984CnbOeAp2zn + gKds53+ma916oGW2eqBltnqgZbZ6oGW2d5xfMnabXSl2m10pdptdKXabXQ4AAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB2m10OdptdKXabXSl2m10pd5xfMnqgZbZ6oGW2eqBltnqgZbZ/pmvd + gKds54CnbOeAp2znjLR985W/i/6Vv4v+lb+L/pfCj/6eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5fCj/6Vv4v+lb+L/pW/i/6MtH3zgKds54CnbOeAp2znf6Zr3XqgZbZ6oGW2eqBltnqgZbZ3nF8y + dptdKXabXSl2m10pdptdDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHabXQZ2m10T + dptdE3abXRN3nF8YeqBlVXqgZVV6oGVVeqBlVX6lanF/pWt4f6VreH+la3iGrnWiirJ7x4qye8eKsnvH + i7R90o22gPGNtoDxjbaA8Y22gPGNtoDxjbaA8Y22gPGNtoDxjLR90ouze8eLs3vHi7N7x4eudqJ/pWt4 + f6VreH+la3h+pWpxeqBlVXqgZVV6oGVVeqBlVXecXxh2m10TdptdE3abXRN2m10GAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + dJddEnSXXRZ0l10WdJddFnmfY1t6oGSXeqBkl3qgZJd7oWWsfaRo5X2kaOV9pGjlfaRo5X2kaOV9pGjl + faRo5X2kaOV8oWWrfKBklnygZJZ8oGSWe59jWnSXXRZ0l10WdJddFnSXXRIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0l10SdJddFnSXXRZ0l10WeZ9jW3qgZJd6oGSX + eqBkl3uhZax9pGjlfaRo5X2kaOV9pGjlfaRo5X2kaOV9pGjlfaRo5XyhZat8oGSWfKBklnygZJZ7n2Na + dJddFnSXXRZ0l10WdJddEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHSXXRJ0l10WdJddFnSXXRZ5n2NbeqBkl3qgZJd6oGSXe6FlrH2kaOV9pGjlfaRo5X2kaOV9pGjl + faRo5X2kaOV9pGjlfKFlq3ygZJZ8oGSWfKBklnufY1p0l10WdJddFnSXXRZ0l10SAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddDXSXXRB0l10QdJddEHmfY0N6oGRv + eqBkb3qgZG97oWV/faRorH2kaKx9pGisfaRorH2kaKx9pGisfaRorH2kaKx8oWV+fKBkbnygZG58oGRu + e59jQnSXXRB0l10QdJddEHSXXQ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHeZZgR3mWYPd5lmD3eZZg93mWYP + baRbDm2kWw5tpFsObaRbDm2kWwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAd5lmBHeZZg93mWYPd5lmD3eZZg9tpFsObaRbDm2kWw5tpFsObaRbBAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3mWYEd5lmD3eZZg93mWYP + d5lmD22kWw5tpFsObaRbDm2kWw5tpFsEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAHeZZgR3mWYPd5lmD3eZZg93mWYPbaRbDm2kWw5tpFsObaRbDm2kWwQAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/////////g + B///////////////////4Af//////////////////+AH///////////////////gB/////////////// + ///gAAAH////////////////4AAAB////////////////+AAAAf////////////////gAAAH//////// + ///////AAAAAAAP/////////////wAAAAAAD/////////////8AAAAAAA//////////////AAAAAAAP/ + ///////////AAAAAAAAAA///////////wAAAAAAAAAP//////////8AAAAAAAAAD///////////AAAAA + AAAAA///////////wAAAAAAAAAP/////////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAH///////+A + AAAAAAAAAAAB////////gAAAAAAAAAAAAf//////gAAAAAAAAAAAAAAB/////4AAAAAAAAAAAAAAAf// + //+AAAAAAAAAAAAAAAH/////gAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAA + AAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP + 8AAAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAA + AAAP///wAAAAAAAAAAAAAAAAD/////+AAAAAAAAAAAAB////////gAAAAAAAAAAAAf///////4AAAAAA + AAAAAAH///////+AAAAAAAAAAAAB////////+AAAAAAAAAAAH/////////gAAAAAAAAAAB/////////4 + AAAAAAAAAAAf////////+AAAAAAAAAAAH///////+AAAAAAAAAAAAAAf//////gAAAAAAAAAAAAAH/// + ///4AAAAAAAAAAAAAB//////+AAAAAAAAAAAAAAf////8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAA + AAAP///wAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAA + AAAA//8AAAAAAAAAAAAAAAAAAP///4AAAAAAAAAAAAAAH/////+AAAAAAAAAAAAAAB//////gAAAAAAA + AAAAAAAf/////4AAAAAAAAAAAAAAH///////+AAAAAAAAAAAH/////////gAAAAAAAAAAB/////////4 + AAAAAAAAAAAf////////+AAAAAAAAAAAH////////4AAAAAAAAAAAAH///////+AAAAAAAAAAAAB//// + ////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAH//////4AAAAAAAAAAAAAAAf////+AAAAAAAAAAAAA + AAH/////gAAAAAAAAAAAAAAB/////4AAAAAAAAAAAAAAAf///wAAAAAAAAAAAAAAAAAA//8AAAAAAAAA + AAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAA + AAAAD/AAAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAP///wAAAAAAAA + AAAAAAAAD///8AAAAAAAAAAAAAAAAA//////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAH///////+A + AAAAAAAAAAAB////////gAAAAAAAAAAAAf/////////AAAAAAAAAA///////////wAAAAAAAAAP///// + /////8AAAAAAAAAD///////////AAAAAAAAAA///////////wAAAAAAAAAP////////////AAAAAAAP/ + ////////////wAAAAAAD/////////////8AAAAAAA//////////////AAAAAAAP//////////////+AA + AAf////////////////gAAAH////////////////4AAAB////////////////+AAAAf///////////// + ////4Af//////////////////+AH///////////////////gB///////////////////4Af///////// + KAAAAEAAAACAAAAAAQAgAAAAAAAAQAAAYQoAAGEKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLuqAsy7qg/Mu6oPyLakDsi2pA7ItqQC + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy7qgLMu6oP + zLuqD8i2pA7ItqQOyLakAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANG5ogjRuaIT + 0LqoMdC7q4PQvKuM0sCtyNLArcjSwK3I0sCtyNC8q4vPu6qC0LqoMdG5ohPRuaIIAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADRuaIJ0bmiFtC6qDjQu6uX0LyrodLAreXSwK3l0sCt5dLAreXQvKuhz7uqltC6qDjRuaIW + 0bmiCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADRuaIL0bmiENC8qkDQvKtq0r6shdPArazXxrS64NLE4OHUx+Pp4NP46eDT+Ong0/jp4NP4 + 4dTG49/SxN/XxrS608CtrNK+rIXQvKtq0LyqQNG5ohDRuaILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0bmiD9G5ohbQvKpY0LyrkdK+rLLTwK3j2Me16ePXyvrl2s37 + 8erg//Hq4P/x6uD/8erg/+Xazfvj18r62Me16dPArePSvqyy0LyrkdC8qljRuaIW0bmiDwAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAybmiEsm5ohTRvqxT0b6sY9PAroPUwa6T3My8tOHSxNLj1sjf + 5tvO9Ojd0Pbs49j97eTZ/fLr4f/y6+H/8uvh//Lr4f/t5Nn97OPY/ejd0Pbm287049bI3+HSxNLczLy0 + 1MGuk9PAroPRvaxj0b2sU8m5ohTJuaISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMm5oh/JuaIh0b6si9G+rKXTwK7Q + 1MGv5t/PwPLn28796+HW/vLr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh/+vh1v7n287938/A8tTBr+bTwK7Q0b2spdG9rIvJuaIhybmiHwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLWkBMy1pBXNt6YZ0b2rVdG9q1XTwrB7 + 08Kxfd7Qwb7f0sPP4tTG5uPWyPLo3dD47OLX/u7m2/7y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/u5tv+7OLX/ujd0Pjj1sjy4tTG5t/Rw8/ez8G+08KxfdPCsHvRvatV + 0b2rVc23phnMtaQVzLWkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy1pAnMtaQt + zbemNtG9q7bRvau21cSz5NXEs+fm28756uDU/u/n3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3f/q4NT+ + 5tvO+dXEs+fVxLPk0b2rttG9q7bNt6Y2zLWkLcy1pAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy3ognMt6IU + zrunI9C9qkLRvqxK1MGwbNXCsnPczL3O3My9zt/Sw+3f0sPv6uDU++3k2P7w6d7/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6d7/7eTY/urg1Pvf0sPv39LD7dzMvc7czL3O1cKyc9TBsGzRvqxK0L2qQs67pyPMt6IU + zLeiCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADMt6IczLeiPM67p2rQvarF0r+tzdfFtevYx7fs6+LW/+vi1v/y6uD/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lq4P/r4tb/6+LW/9jHt+zXxbXr + 0r+tzdC9qsXOu6dqzLeiPMy3ohwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADOuaUJzrmlDNC9qh3Rvqsp0r+sQtK/rV/Vw7GF18e10djIt9fdzb7v3s/A8Ozk2P/s5Nj/ + 8uvg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+D/ + 7OTY/+zk2P/ez8Dw3c2+79jIt9fXx7XR1cOxhdK/rV/Sv6xC0b6rKdC9qh3OuaUMzrmlCQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzrmlLc65pT7QvaqT0b6ry9XDstrZyLjs4NLD8u3k2P/u5dr/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/u5dr/7eTY/+DSw/LZyLjs1cOy2tG+q8vQvaqT + zrmlPs65pS0AAAAAAAAAAAAAAAAAAAAAv7+fAb+/nwHNuKQLzbikDM66pjrOuqZK0sCtmtPBr87XxrXd + 28u77eHUxfPt5Nn/7uba//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7uba/+3k2f/h1MXz + 28u77dfGtd3Twa/O0sCtms66pkrOuqY6zrmlDM65pQu/v58Bv7+fAb+/nwi/v58IzbikoM24pLfPu6jn + 0Lyp+OLUxvzt5Nj/7+fc//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/v59z/7OPX/+HUxfzQvKr40Lup5s65pbXOuaWev7+fCL+/nwi/v58I + v7+fCM24pKDNuKS3z7uo59C8qfji1Mb87eTY/+/n3P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7+fc/+zj1//h1MX80Lyq+NC7qebOuaW1 + zrmlnr+/nwi/v58Iv7+fAb+/nwHNvqEPzb6hEc+6qFXPuqhu0b6sstK/rt/YyLjo3tHC8eTZy/bv59z/ + 8Ojd//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8ene/+zi1f/p28z/1LCT/9Swk//UsJP/1LCT/+nbzP/s4tX/8ene//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+/n3P/k2cv23tHC8djIuOjSv63f + 0b6sss+6qG7PuqhVyrqrEMq6qw6/v58Bv7+fAQAAAAAAAAAAzMyZBMzMmQXPuqhLz7qoZNC8qq3QvKrd + 1sW15t3PwPDj18r17+fc//Do3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Do3v/s4dT/6drL/9Ksjf/SrI3/0qyN/9Ksjf/p2sv/7OHU//Do3v/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Do3f/v59z/ + 49fK9d3PwPDWxbXm0Lyq3dC8qq3Puqhkz7qoSr+/vwS/v78DAAAAAAAAAAAAAAAAAAAAAMzMmQHMzJkB + z7qoD8+6qBTOu6okzruqL9K/rlPTwbB+1cOyn9fGteLZybnl4dTF8uLVx/Pv59z/7+fc//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh/+/l2f/s4NL/4867/9a0mf/TrpH/y557/82fe//apnz/2qZ8/9qlfP/apXz/ + zZ97/8ueev/TrpH/1rSZ/+POu//s4NL/7+XZ//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3P/v59z/ + 4tXH8uHUxfHZybnl18a14tXDsp/TwbB+07+uU9K6qS7Ruqgjz7qoFM+6qA+/v78Bv7+/AQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqqqqAqqqqgPMuKYvzbimYc+7qIrQvarb08Gu393Ovu/e0MDw + 7ubb/+7m2//y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/u5Nf/6t3O/9/Hsv/Ppof/zJ9+/8ONZf/GkGj/ + 3KR4/9ykeP/co3j/3KN4/8aQZ//DjWT/zJ9+/8+mh//fx7L/6t3O/+7k1//y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/u5tv/7ubb/97QwO/dzr7u08Gu39C9qtvPu6iKzbimYc63pS7/gIAC/4CAAQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKqqqgGqqqoBzLimEM24piDPu6gu + 0L2qSdLArVXXxbSE2Ma1i9vMvOPbzLzj49bI8OPWyPHo3M786d3Q/+DIs//bvaX/1bGV/9Cnh//TpYL/ + 16N7/9mkfP/gqH7/4ql//+mxhf/psYX/6bCF/+mwhf/iqX7/4Kh9/9mkfP/Xo3v/06WC/9Cnh//VsZX/ + 272l/+DIs//p3dD/6NzO/OPWyPHj1sjw28y849vMvOPYxrWK18W0hNLArVXQvapJz7uoLs24piDOt6UP + /4CAAf+AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAADPuKUQz7ilT8+5pljPvarVz72q1drKuunby7vq49TF++XWx//Wtpz/ + z6aH/8mYdP/DjGP/zZRq/9uhdf/gp3v/77aK/++2iv/wt4v/8LeL//C3i//wt4v/77aK/++2iv/gp3v/ + 26F1/82Uav/DjGP/yZh0/8+mh//Wtpz/5dbH/+PUxfvby7vq2sq66c+9qtXPvarVz7mmWM+4pU/PuKUQ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz7ilB8+4pSXOtqIryrCYfMqwmHzMqo3R + zKmM19Gsj/XSrY/91qiF/tilgP/ZpHz/26N4/9+nfP/mrYH/6a+D//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/6a+D/+atgf/fp3z/26N4/9mkfP/YpYD/1qiF/tKtj/3RrI/1zKmM18yqjdHKsJh8 + yrCYfM62oivPuKUlz7ilBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + t3pOA7d6Ti63ek4uvIdcvbyHXMfAiF7xwYhe+9WbcP7fpXn/6K+D//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//or4P/36V5/9WbcP7BiF77 + wIhe8byHXMe8h1y9t3pOLrd6Ti63ek4DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + uH1PCLh9Txi5f1Iku4FVULyBVVPAhlp7wIZae86Wa9fOl2zd05pv9tSbcP3gpnv+5qyA/+uyhv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 67KG/+asgP/gpnv+1Jtw/dOab/bOl2zdzpZr18CGWnvAhlp7vIFVU7yBVVC6f1IkuH1PGLh9TwgAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALh9TxS4fU89uX9SWbuBVci8glbLw4ld7sOJXe7iqHz+5Kp+/+60iP/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utIj/5Kp+/+KofP7DiV3uw4ld7r2CVsu8gVXJ + un9SWbh9Tz24fU8UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALV+UQu1flESuX9TJLqAVDi9g1dJwYdabMOKXYHJj2PXyZBk2dCWavPQlmrz + 5qyA/uetgf/utYn/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/7rWJ/+etgf/mrID+ + 0JZq89CWavPKkGTZyo9j18SKXYHBh1psvoNXSbqAVDi5f1MktX5RErV+UQsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1flEptX5RRbl/U4e6gFTSv4VZ28eOYu3OlWnx + 566C/+ivg//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/6K+D/+eugv/PlWjwyI5h7L+FWdu6gFTSuX9Th7V+UUW1flEp + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqoBVAaqAVQG5gFIMuYBSDryBVRq9gVYev4ZZQ7+HWlzBh1uW + wohc2MaMYODNlGjv05pu8+ivg//psIT/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+mwhP/or4P/05pt8s6UZ+/GjGDg + wohc2MGIW5a/h1pcvoZZQ72BVh68gVUauYBSDrmAUgyqgFUBqoBVAaqAVQaqgFUGuYBSXbmAUmq8gVXA + vYFW38qPY+rSl2vx3qR4+Ouyh//ttIj/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7bSI/+uyh//dpHj40Zdq8smPYuq9gVbfvIFVwLmAUmq5gFJdqoBVBqqAVQaqgFUG + qoBVBrmAUl25gFJqvIFVwL2BVt/Kj2Pq0pdr8d6kePjrsof/7bSI//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+20iP/rsof/3aR4+NGXavLJj2LqvYFW37yBVcC5gFJq + uYBSXaqAVQaqgFUGv4BABL+AQAS6fVJXun1SZLuAVb27gVXdyY5i6NGWavDeo3f367KG/+20iP/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//vt4v/6bWJ/+m1if/ptoj/6baI/++3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//ttIj/67KG/96jd/fRlmrw + yY5i6LuBVd27gFW9un1SZLp9Ule/gEAEv4BABL+AQAS/gEAEun1SV7p9UmS7gFW9u4FV3cmOYujRlmrw + 3qN39+uyhv/ttIj/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/77eL/+m1if/ptYn/6baI/+m2iP/vt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 7bSI/+uyhv/eo3f30ZZq8MmOYui7gVXdu4BVvbp9UmS6fVJXv4BABL+AQAS/gEABv4BAAbp9Ugy6fVIN + un1VG7p9VSC/g1lTwIRZdcKHW6jDiFziyI5i6NKYa/LXnXH16rCF/+qxhf/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/7LaK/+a0iP/ZsoP/tKx3/7Crdv+Wp2//lqdv/5anb/+Wp2// + sat2/7Wsd//ZsoP/5rSI/+y2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 6rGF/+qxhP/XnXD10phr8siOYujDiFziwodbqMCEWXW/g1lTun1VILp9VRu6fVINun1SDL+AQAG/gEAB + AAAAAAAAAAAAAAAAAAAAAKpVVQKqVVUDuXxTPLl9U2K7gFScvIFV3sKHW+TNk2bw05ls8+mvhP/psIT/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+y2if/ltIf/1rGC/6uqdP+mqXP/ + iaVr/4mla/+JpWv/iaVr/6epc/+sqnT/1rGC/+W0h//ston/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+mwhP/psIP/05ls882TZvDCh1vkvIFV3ruAVJy5fVNiuXxTPKpVVQOqVVUC + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUBqlVVAbl8UxC5fVMavH9UKr1/VDzAhFhR + w4hcesWKXo7Jj2PgypBk4daccPDWnHDw6bCE/uqxhf/vtor/8LeL/+u2if/otYj/0rGB/7+ue/+zrHj/ + oqly/5+sdv+YtX//mLaB/5i/jP+Yv4z/mL+M/5i/jP+YtoH/mLV//5+sdv+iqXL/s6x4/7+ue//SsYH/ + 6LWI/+u2if/wt4v/77aK/+qxhf/psIT+1pxw8NaccPDKkGThyY9j4MWKXo7DiFx6wIRZULyBVTu7gFQq + uX1TGrl8UxCqVVUBqlVVAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAP8AAAD/AAABunhPG7h7UU+5fVNqu4FV1byCVtbMkWXrzJFl6+atgf7or4P/7rWJ//C3i//ptYj/ + 5bSH/8evff+tq3X/n6lx/4mla/+LqnH/kbmD/5O7hv+dyZj/ncmY/53JmP+dyZj/k7uG/5G5g/+LqnH/ + iaVr/5+pcf+tq3X/x699/+W0h//ptYj/8LeL/+61if/or4P/5q2B/syRZevMkWXrvIJW1ruBVdW5fVNq + uHtRT7h7URoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAALp4Twu4e1EguX1TKruBVVW8glZYxotfgcaLX4HJl2re + yZhq5bykcva6pnT6sal1/a2rdv+lsHv/nbWA/5q3g/+Wu4f/lr2J/5nDkP+Zw5H/nsmZ/57Jmf+eyZn/ + nsmZ/5nDkf+Zw5D/lr2J/5a7h/+at4P/nbWA/6Wwe/+tq3b/sal1/bqmdPq8pHL2yZhq5cmXat7Gi1+B + xotfgbyCVli7gVVVuX1TKrh7USC4e1ELAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tHtPBLR7Tzq0e086sIVWybCFVtOZl2LwlJtk94yiafyIpWv/jrF6/5O7h/+XwY7/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/l8GO/5O7h/+OsXr/iKVr/4yiafyUm2T3 + mZdi8LCFVtOwhVbJtHtPOrR7Tzq0e08EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3n2AEd59gFXydYBuKmF90iphfdJiWYdWZlmHclqhz9JWsd/qTs339kraA/5W8iP+Ywo// + msWT/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5rFk/+Ywo// + lbyI/5K2gP+Ts339lax3+paoc/SZlmHcmJZh1YqYX3SKmF90fJ1gG3efYBV3n2AEAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd59gCXefYC14oGE2e6NltnujZbaAp23kgKdt55K7h/mWv43+ + m8aV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/m8aV/5a/jf6Su4f5gKdt54CnbeR7o2W2e6NltnigYTZ3n2At + d59gCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd51eCXedXhR5oGIjeqJlQnujZ0p+pmtsf6dsc4evds6Hr3bO + irN87Yuzfe+Wv437mcKR/pzHlv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHlv+ZwpH+lr+N+4uzfe+Ks3zt + h692zoevds5/p2xzfqZrbHujZ0p6omVCeaBiI3edXhR3nV4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHedXhx3nV48eaBianqiZcV8o2fN + gahv64OqceyXwY//l8GP/57ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsiY/5fBj/+XwY//g6px7IGob+t8o2fNeqJlxXmgYmp3nV48d51eHAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHegXwl3oF8MeqJjHXuiZCl8o2ZC + faRnX3+nbIWBqnDRg6ty14eveO+IsHrwmMOR/5jDkf+eyZj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57JmP+Yw5H/mMOR/4iwevCHr3jvg6ty14GqcNF/p2yF + faRnX3yjZkJ7omQpeqJjHXegXwx3oF8JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3oF8t + d6BfPnqiY5N7omTLf6dq2oOrcOyKs3zymMOR/5nEk/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5nEk/+Yw5H/irN88oOrcOx/p2rae6Jky3qiY5N3oF8+d6BfLQAAAAAAAAAAAAAAAAAAAACAn2AB + gJ9gAXacXwt2nF8MeKBgOnigYEp8pGaafaVozoGpbd2FrXPtjLV+85jDkv+axZP/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+axZP/mMOS/4y1fvOFrXPtgalt3X2laM58pGaad6BgSnegYDp2nmAM + dp5gC4CfYAGAn2ABgJ9gCICfYAh2nF+gdpxft3mfY+d6oGT4jLV//JjDkf+bxpX/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5vFlP+YwpD/ + jLV//HmgZPh4oGPmdp5gtXaeYJ6An2AIgJ9gCICfYAiAn2AIdpxfoHacX7d5n2PneqBk+Iy1f/yYw5H/ + m8aV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+bxZT/mMKQ/4y1f/x5oGT4eKBj5naeYLV2nmCegJ9gCICfYAiAn2ABgJ9gAXKbYQ9ym2ER + eKFjVXihY258pGiyfaVp34OrcuiKsnvxkLmE9pvFlP+cxpX/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+cxpX/m8WU/5C5hPaKsnvxg6ty6H2kad98pGiyeKFjbnigY1V4l1gQeJdYDoCfYAGAn2AB + AAAAAAAAAABmmWYEZplmBXihY0t4oWNkeqJlrXuiZt2BqW/miLB58I+3gvWbxZT/nMaV/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMaV/5vFlP+Pt4L1iLB58IGpb+Z7ombdeqJlrXihY2R4oWJK + gIBABICAQAMAAAAAAAAAAAAAAAAAAAAAZplmAWaZZgF4oWMPeKFjFHmiZSR5omUvfKVpU32man5/qGyf + galv4oOscuWLtH7yjLaA85vGlf+bxpX/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/m8aV/5vGlf+NtoDyjLV+8YSscuWBqW/if6hsn32man58pWlT + e6FnLnqhZiN4oWMUeKFiD4CAQAGAgEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVqlUC + VapVA3WgYS92oGFheKFjinqhZNt9pGjfhq9374exefCaxZT/msWU/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5rFlP+axZT/iLF574ewd+59pGjf + eqFk23ihY4p2oGFhdp9iLoCAgAKAgIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAVapVAVWqVQF1oGEQdqBhIHihYy56oWRJfKNnVYCnbYSBqG6Lhq5344aud+ONtoDw + jreB8ZjCkfybxZT/nciX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciX/5vFlP+YwpH8jreB8Y22gPCGrnfj + hq5344GoboqBqG2EfKNnVXqhZEl4oWMudqBhIHafYg+AgIABgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHebXhB3m15P + d5xfWHqgZdV6oGXVhKxz6YWtdOqVv4z7mcOS/5zHl/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHl/+Zw5L/ + lb+M+4WtdOqErHPpeqBl1XqgZdV3nF9Yd5teT3ebXhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3m14Hd5teJXecXyl6oGVjeqBlY4Gpb4eCqW+KirJ70IuzfeGOt4LtkLmF85W/jfqaxZP/ + m8aV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zGlf+axZP/ + lb+N+pC5hfOOt4Lti7N94Yqye9CCqW+Kgalvh3qgZWN6oGVjd5xfKXebXiV3m14HAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2nF4ydpxeNnuhZap7oWXH + gKdt3oKqcemNt4H1lsGO/5nEkv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+axJL/l8GO/463gfWCqnHpgKdt3nuhZcd7oWWqdpxeNnacXjIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + dpxeHnacXiB7oWVme6Fld3+mbJCBqG+ciLF6wY22geKPuYTqk7yI9ZW/i/iaxZP/m8aU/57Jmf+eyZn/ + nsmZ/57Jmf+bxpT/msWT/5W/i/iTvIj1kLmE6o62geKJsXrBgahvnH+mbJB7oWV3e6FlZnacXiB2nF4e + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2m10bdptdKXmfZHR6oGW2faNoyoCnbOeGrnXt + lb+L/pbAjf6eyZn/nsmZ/57Jmf+eyZn/lsCN/pW/i/6GrnXtgKds532jaMp6oGW2eZ9kdHabXSl2m10b + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdptdFHabXR55n2RV + eqBlhX2jaJaApmuvha1zvZC5hOORuoXllsCN+JbAjfiWwI34lsCN+JG6heWRuoTiha1zvYCma699o2iW + eqBlhXmfZFV2m10edptdFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB0l10JdJddFnidYjh6oGSXe6FloX2kaOV9pGjlfaRo5X2kaOV8oWWh + fKBklnqdYjh0l10WdJddCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddCHSXXRN4nWIxeqBkg3uhZYx9pGjI + faRoyH2kaMh9pGjIfKFli3ygZIJ6nWIxdJddE3SXXQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3mWYCd5lmD3eZZg9tpFsObaRbDm2kWwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5lmAneZZg93mWYPbaRbDm2kWw5tpFsCAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////4H/////////gf//// + ////gAH///////+AAf//////+AAAH//////4AAAf/////4AAAAH/////gAAAAf////AAAAAAD///8AAA + AAAP//8AAAAAAAD//wAAAAAAAP/wAAAAAAAAD/AAAAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADAAAAAAAAAA8AAAAAAAAAD/AAAAAAAAD/8AAAAAAAAP//wAAAAAA////AAAAAAD////AAA + AAA////AAAAAAAP//8AAAAAAA//8AAAAAAAAP/wAAAAAAAA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAA/wAAAAAAAAD/8AAAAAAAP//wAAAAAAA////AAA + AAA////wAAAAAA////AAAAAAD///AAAAAAAA//8AAAAAAAD/8AAAAAAAAA/wAAAAAAAADwAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAPAAAAAAAAAA/wAAAAAAAA//AAAAAAAAD//8AAA + AAAP///wAAAAAA////+AAAAB/////4AAAAH/////+AAAH//////4AAAf//////+AAf///////4AB//// + ////+B/////////4H////ygAAAAwAAAAYAAAAAEAIAAAAAAAACQAAGEKAABhCgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLuqCcy7qg/ItqQOyLakCAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0bmiB9C6qBPQu6s80b6sVdHArWXRv6xk0b6sVM+7qjzQuqcT + 0bmiBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0bmiEtC6qDDQu6uX0b6sxtLAreXSwK3l + 0b6sxc+7qpbQuqcw0bmiEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIB0bmiEdC7qTnQvKt007+trNbEs8Ph08bm + 593Q8uvi1/rr4tf6593Q8uDTxubWxLPD07+trNC8q3TQu6k50bmiEdG5ogEAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJuaIBybmiB9C9qxbRvqwi07+rPtbDsmnXxban + 2cm429zNvezm28/77eTZ/fHq4P/x6uD/7eTZ/ebbz/vczb3s2cm429fFtqfWw7Jp07+rPtG9rCLQvasW + ybmiB8m5ogEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJuaIHybmiIdC9q3DRvqyo + 1MGv49zMvO/n28798Ojd//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+fbzv3czLzv + 1MGv49G9rKjQvatwybmiIcm5ogcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMtaQLzLWkG9G9q13Sv612 + 1MOymN7QwcDj1sjc59vO9Orf0/nu5dn+8erf//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8erf/+7l2f7q39P559vO9OPWyNze0MHA1MOymNK/rXbRvatdzLWkG8y1pAsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6ICzLijA9C9qgjOuaga + zrinNdK/rZ/Twa/C1sa16OPWyfXr4dX+8uvg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvg/+vh1f7j1sn11sa16NPBr8LSv62fzrinNc65qBrQvaoI + zLijA8y3ogIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6Ij + zLijP9C9qrfTwa/M18W14+fcz/fs49f88erf/vHq4P/y6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4P/x6uD/8erf/uzj1/zn3M/3 + 18W149PBr8zQvaq3zLijP8y3oiMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOuaUU + z7uoJNG+q1HUwrBv1sSzht3Pv9jg0sPl4tXH8+zi1/3v59z/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh/+/n3P/s4tf94tXH8+DSw+Xdz7/Y1sSzhtTCsG/RvqtRz7uoJM65pRQAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADOuaUyz7uoWtG+q8vWxLPf2sm57ezj1/7v59z/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3P/s49f+2sm57dbEs9/RvqvLz7uoWs65pTIAAAAA + AAAAAAAAAAC/v58GzLikPs24pJLPu6jG1cOy2uje0fXr4tb57eXa+/Hp3//x6uD/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hq4P/x6d//7eXa++vh1vno3dD1 + 1cOy2tC7qcbOuaWRzbmlPr+/nwa/v58GzLmkP824pJPPu6jM1cOy4Ojd0Pjs4tb67ubb/PHq4P/y6+D/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4P/x6d7/7uPW/+ze0P/s3tD/ + 7uPW//Hp3v/y6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4P/x6uD/ + 7ubb/Ovi1vrn3M/41cOy4NC7qczOuaWSzbmlPr+/nwYAAAAAzMyZAszMmQXPuqhRz7upfNC8qt3YyLjo + 3tDB8e7m2/7w6d7/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hp3v/s4dT/ + 3MGp/9Ksjf/SrI3/3MGp/+zh1P/x6d7/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Dp3v/u5tv+3tDB8djIuOjQvKrdz7upfM+6qFG/v78Ev7+/AgAAAAAAAAAAzMyZAczMmQLPuqgg + z7upMs+8qlrVw7OB18e3nt3PwObh1MXu5trN9e7l2v3w6d7/8uvh//Lr4f/y6+H/8uvh//Do3P/t49b/ + 4Mi0/9u+pv/Tr5H/1qqH/9ingP/Yp4D/1qqH/9Ovkf/bvqb/4Mi0/+3j1v/w6Nz/8uvh//Lr4f/y6+H/ + 8uvh//Dp3v/u5dr95trN9eHUxe7dz8Dm18e3ntXDs4DRu6la0LqpMs+6qCC/v78Cv7+/AQAAAAAAAAAA + AAAAAAAAAAAAAAAAqqqqAaqqqgPMuKY5zbimYtC9qs3VxLLb3c6+6Org1Pnu5tv98erg/vHq4P/x6uD/ + 8ejd/+3i1f/o2sr/1LCU/82hgP/Fj2f/05xx/92lef/dpHn/05tx/8WPZv/NoYD/1LCU/+jayv/t4tX/ + 8ejd//Hq4P/x6uD/8erg/u7m2/3q4NT53c6+59XEstrQvarNzbimYs63pTn/gIAC/4CAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqqqqAKqqqgDMuKYCzbimBNC9qgnRu6go0buoVtG/rL3TwrDb + 3My96+LTxPfl1cb/0auN/8yfff/Fj2f/1p5z/96lef/ttIj/7rWK/++2iv/vtor/7rWJ/+20iP/epXn/ + 1p5z/8WPZ//Mn33/0auN/+XVxv/i08T33My969PCsNvRv6y90buoVtG7qCjQvaoJzbimBM63pQL/gIAA + /4CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPuKUT + z7ilL8y1n37NtJ2h0LKZ3NS1nPDXtpz91aaD/9WifP/VnXP/4ad8/+asgP/vtor/8LeL//C3i//wt4v/ + 8LeL/++2iv/mrID/4ad8/9Wdc//Vonz/1aaD/9e2nP3UtZzw0LKZ3M20naHMtZ9+z7ilL8+4pRMAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALd6TiW6gVVNvIdcx7+IXebCiV/73qR4/+asgP/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//mrID/3qR4/8KJX/u/iF3mvIdcx7qBVU23ek4l + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAuH1PArh9Ty+6gFNdu4FVoMGHW8DJj2PQ3aR49OOqfvrnroL+7LOH/+61if/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utYn/7LOH/+eugv7jqn76 + 3aR49MmPY9DBh1vAvIFVobuAU164fU8vuH1PAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAtX5RA7V+UQ65gFMfuoBULL+FWF7DiV2Oxoxg08uRZevSmGz05q2B/+yzh//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//ss4f/5q2B/9KYbPTLkWXrxoxg1MSJXY7AhVheu4BULLmAUx+1flEOtX5RAwAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtX5RDrV+UUW5gFOau4FV08eNYezUm2/0566C/+61if/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utYn/566C/9Wbb/THjWHru4FV07mAU5q1flFF + tX5RDgAAAAAAAAAAAAAAAAAAAACqgFUEuIBSHLmAUkC9gVZ4wYVajc2TZ6zWnHDT2qF17eCne/flrID7 + 7LOH/++2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//vtor/7LOH/+WsgPrgp3v3 + 2qF17dWccNPNk2atwYVajr2BVni5gFJAuIBSHKqAVQSqgFUGuIBSLrmAUmq9gVbIwYZa49KXa/HhqHz5 + 67KH//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/67KH/+GofPrRl2rywYZa472BVsi5gFJquIBSLqqAVQa/gEAEun1RKrp9UmS7gVXF + wIVZ4dGWavDhp3v567KG//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7LaK/+m1if/ptoj/7LaJ//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/67KG/+Gne/nRlmrwwIVZ4buBVcW6fVJkun1RKr+AQAS/gEAC + un1RGbp9Ujy7gFV3v4VZkMyRZbfVm2/a2qB08uKpfPnnrYH77bSI/++2iv/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7LaK/+e1iP/UsoL/yrB//8Ovff/Dr3z/yrB//9Wygv/ntYj/7LaK//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//vtor/7bSI/+eugfviqXz52qB08tWbb9rMkWW3v4VZkLuAVXe6fVI8 + un1RGb+AQAIAAAAAAAAAAAAAAACqVVUCt3lTFrl9U2K7gFWsvYJW38ySZe/Zn3L26a+E/++1iv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/57WI/9myg/+rqnT/l6dv/4mla/+JpWv/l6dv/6yqdP/asoP/ + 57WI//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//vton/6bCD/9mfcvbMkmXvvYJW37uAVay5fVNi + t3lTFqpVVQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUAt3lTBLl9UxS8flMjvn9UMMGFWmzEiV2b + xoxg3dGXa+vYnnLy6rGF/+20iP/wt4v/6LWI/9Wygv+6rXn/oqly/5qrdP+WtoD/mL2J/5nCj/+Zwo// + mL2J/5a2gP+aq3T/oqly/7qtef/VsoL/6LWI//C3i//ttIj/6rGF/9iecvLRl2vrxoxg3cSJXZvBhVps + vIFVL7uAVSK5fVMUt3lTBKpVVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA + yF8/A7h7UT26f1Rqu4FVqsiNYcLPlWnR3qh79t6ugPvesoP907GB/8Gwfv+ornn/k611/46veP+UvIf/ + mcSR/53JmP+dyZj/mcSR/5S8h/+Or3j/k611/6iuef/BsH7/07GB/96yg/3eroD73qh79s+VadHIjWHC + u4FVqrp/VGq4e1E9uHtRAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALR7Ty6ygFJZsIVW056TX+mTm2T3iKVr/4yudv+Tu4f/ + nMaV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMaV/5O7h/+Mrnb/iKVr/5ObZPeek1/p + sIVW07KAUlm0e08uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3n2ALd59gG4ScYW+Jm2KXkppk35SodPCVsX37 + lbqG/5e+i/+aw5L/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciY/5rDkv+Xvov/ + lbqG/5WxffuUqHTwkppk34mbYpeEnGFvd59gG3efYAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3nV4Cd55fA3qiZQh5oWMaeaFjNXykZ59+pmnC + galv6I63gvWXwI7+nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5fAjv6Ot4L1galv6H6macJ8pGefeaFjNXmhYxp6omUId55fA3edXgIAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3nV4jd55fP3qiZbd9pWnM + gahv45K8iPeYwpD8nciX/p3ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/nciX/pjCkPySvIj3gahv432lacx6omW3 + d55fP3edXiMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3oF8UeaFhJHuiZFF+pmlv + gKhshoixediKs3zljbaB85fBj/2bxZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5vFlP+XwY/9 + jbaB84qzfOWIsXnYgKhshn6maW97omRReaFhJHegXxQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3oF8y + eaFhWnuiZMuAqGzfhKxx7ZfCkP6axZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5rFlP+XwpD+hKxx7YCobN97omTLeaFhWnegXzIAAAAAAAAAAAAAAACAn2AG + d5xfPnacX5J5n2PGgKds2pO+ivWXwY75mcSS+53Il/+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+dyJf/mcSS+5fBjvmTvYn1f6Zs2nigY8Z2nmCR + d55gPoCfYAaAn2AGd5xfP3acX5N5n2PMf6ds4JO9ifiXwY/6msST/J3ImP+eyZj/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57JmP+dyJj/msST/JfBj/qTvIn4 + f6Zs4HmgY8x2nmCSd55gPoCfYAYAAAAAZplmAmaZZgV4oWNReaFkfHuiZt2Dq3LoibF68ZrEk/6cx5b/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHlv+axJP+ + ibF68YOrcuh7ombdeaFkfHihY1GAgEAEgIBAAgAAAAAAAAAAZplmAWaZZgJ4oWMgeaFkMnqiZlp/qG2B + gqpwnoixeeaMtH7ukLqF9ZnEk/2cx5f/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHl/+ZxJP9 + kbqF9Yy1fu6IsXnmgqpwnn+obYB7omZaeaFkMnihYyCAgEACgIBAAQAAAAAAAAAAAAAAAAAAAAAAAAAA + VapVAVWqVQN1oGE5dqBhYnqhZM1/p2zbhq936JXAjfmaxZP9nciY/p3ImP+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/ + nciY/prFk/2WwI35h7B353+nbNp6oWTNdqBhYnagYTmAgIACgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAVapVAFWqVQB1oGECdqBhBHqhZAl5nmEoeZ1hVnuhZ71+pWrbhq5265K7h/eZw5P/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5nDk/+Su4f3hq52636latt7oWe9eZ1hVnmeYSh6oWQJdqBhBHagYQKAgIAAgICAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3m14Td5teL3qgZHB8o2iH + g6txoouzfcyPuIPpk72K9pbBjvqbxpX/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nciY/5vGlf+XwY76k72K9o+4g+mLs33Mg6txonyjaId6oGRwd5teL3ebXhMAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB2nF4LdpxeNnqgZI17oWbIgqpx6Iq0ffKWwY7/nMeX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nceX/5fBjv+LtH3ygqpx6HuhZsh6oGSNdpxeNnacXgsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB2nF4CdpxeC3qgZBx7oWUpfaRpToCnbX6BqXDFhq115Iqye++XwY7+ + m8aV/57Jmf+eyZn/m8aV/5fBjv6Ksnvvhq115IKpcMWAp21+faRpTnuhZSl6oGQcdpxeC3acXgIAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2m10BdptdH3mfY056oGWS + f6ZrtISrcsaSu4bplb+M85jCkPqYwpD6lr+M85K7humEq3LGf6ZrtHqgZZJ5n2NOdptdH3abXQEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAdJddEnidYTB6oGSXfKNnxn2kaOV9pGjlfaNnxXygZJZ5nWEwdJddEgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddB3idYRN6oGQ8fKJnVXyjaGV8pGdkfKNmVHygZDx5nWET + dJddBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5lmCXeZZg9tpFsO + baRbCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///w///8AAP//4Af//wAA///gB///AAD//gAA + f/8AAP/wAAAP/wAA//AAAA//AAD/gAAAAf8AAPwAAAAAPwAA/AAAAAA/AADgAAAAAAcAAOAAAAAABwAA + AAAAAAAAAAAAAAAAAAAAAIAAAAAAAQAAgAAAAAABAADwAAAAAA8AAPAAAAAADwAA/4AAAAH/AAD/4AAA + B/8AAP4AAAAAfwAA8AAAAAAPAADwAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 4AAAAAAHAADgAAAAAAcAAPwAAAAAfwAA/+AAAAf/AAD/gAAAAf8AAPwAAAAAPwAA/AAAAAA/AADgAAAA + AAcAAOAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAQAAgAAAAAABAADwAAAAAA8AAPAAAAAADwAA + /4AAAAH/AAD/8AAAD/8AAP/wAAAP/wAA//4AAH//AAD//+AH//8AAP//4Af//wAA///8P///AAAoAAAA + IAAAAEAAAAABACAAAAAAAAAQAABhCgAAYQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMu6oBzLuqD8i2pA7ItqQBAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIE0LqnJdC7q5LSwK3X0sCt18+7qpHQuqYk + 0bmiBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIG0LuoL9G9rIzVw7HN4tbJ7u3l2vzt5dr8 + 4tbJ7tXDsc3RvayM0LuoL9G5ogYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJuaIMz72qRdK/rZfZyLfI5trN6+3k2Prv593+ + 8uvh//Lr4f/v593+7eTY+ubazevZyLfI0r+tl8+8qkXJuaIMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMtaQU0LyqV9PAr5rczr7H59zP7Ozi1/rw6N3/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+zi1/rn3M/s3M6+x9PAr5rQvKpXzLWkFAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6Idz7ypZdTBsJzf0MLL5tvP7uzi1/rw6d7/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Dp3v/s4tf65tvP7t/QwsvUwbCc + z7ypZcy3oh0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOuaUg0b6radbEs5rg0sPS5trN8ezi1/vx6d// + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/x6d// + 7OLX++bazfHg0sPS1sSzmtG+q2nOuaUgAAAAAAAAAAC/v58EzbikW8+7qJnf0cHZ5drM8u3k2Pzx6t// + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8erf/+3k2Pzl2czy3tDB2dC7qZnOuaVav7+fBL+/nwTNuKRe0LuoqN7PwOPm2872 + 7ubb/fHq4P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/7uXZ/+POuv/jzrr/7uXZ//Lq4P/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/x6uD/7ubb/ebbzvbdz7/j0LupqM65pVy/v58EAAAAAMzMmQPPuqg0 + 0Lyqd9jHt6rh1Mbd593Q9e3l2vzx6uD/8uvh//Lr4f/x6t//7eHU/+PNuv/bvqX/1qmF/9aohf/bvqX/ + 4826/+3h1P/x6t//8uvh//Lr4f/x6uD/7eXa/Ofd0PXh1Mbd2Me3qtC7qnfPuqg0v7+/AgAAAAAAAAAA + AAAAAAAAAACqqqoCzbimMM+8qXfXxrWq4dTF1+jd0fTs4tb769/R/+TPvP/bvKL/06N//9Occv/jqn7/ + 46p+/9Occv/To3//27yi/+TPvP/r39H/7OLW++jd0fTh1MXX18a1qc+8qXfNuKYw/4CAAQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM+4pSPOuKR10bqkw9e+p+zZuJ7+0qJ+/9ObcP/jqX3/ + 77aK//C3i//wt4v/77aK/+Opff/Tm3D/0qJ+/9m4nv7Xvqfs0bqkw864pHXPuKUjAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4fU8IuoBUHb2CVkDDi2CPyJBm49OZbv3mrID/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//mrID/05lu/ciQZuPDi2CPvYJWQLuAVB24fU8I + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1flEHuYBUF72DVkLBh1uexoxg4dedcffqsIT/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/6rCE/9edcffHjGDh + wodbn72DVUK5gFQXtX5RBwAAAAAAAAAAAAAAAKqAVQC5gFIHvYFWDruDVkO+hFiyxo1h5tyjd/jss4f/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/+yzh//do3f4x41g5b6EWLK7g1ZDvYFWDrmAUgeqgFUAqoBVBrmAUmO9gVbPzpNn7eWrgPvutYr/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//utYr/5KuA/M2TZu69gVbPuYBSY6qAVQa/gEAEun1SXruBVc3Nkmbs + 5Kt/++61if/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//ptYn/6baI//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61if/kq3/7zZJm7LuBVc26fVJev4BABL+AQAC6fVIG + uHpVELyAVlm/hFjBypBk69+levnttIj/8LeL//C3i//wt4v/8LeL/+62iv/fs4X/rat1/4+mbf+Ppm3/ + rqt1/9+zhf/utor/8LeL//C3i//wt4v/8LeL/+20iP/fpnn5ypBk67+EWMG8gFZZuHpVELp9Uga/gEAA + AAAAAAAAAACqVVUAuX1TC719Uxq/gldNwYdbq8qQZOXdo3f27LOH/+22iv/asoP/r6t2/5Wpcf+VuIL/ + msSS/5rEkv+VuIL/lalx/6+rdv/asoP/7baK/+yzh//do3f2ypBk5cGHW6u+gldNvIBVGbl9UwuqVVUA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAALh6UAu6gFQgv4VZRr6MXpizlmXno6Nu+5qsdv+Zuob/ + msKQ/5zGlf+eyZn/nsmZ/5zGlf+awpD/mbqG/5qsdv+jo277s5Zl576MXpi/hVlGuoBUILh7UQsAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHefYBR/n2Jfh59luZCoc+yWuYb9 + mcGP/5zGlf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cxpX/mcGP/5a5hv2QqHPsh59luX+fYl93n2AU + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHedXh16oWRlfqVrnIqye8uSvIfu + l8GP+pzHlv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMeW/5fBj/qSvIfu + irJ7y36la5x6oWRld51eHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHegXyB7omRpgKhrmou0fdKRu4bx + l8KQ+53Hl/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/53Hl/+XwpD7kbuG8Yu0fdKAqGuae6JkaXegXyAAAAAAAAAAAICfYAR2nF9beaBjmYmyetmQuoXy + mMOR/J3ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/mMOR/JC6hPKJsnrZeKBjmXaeYFqAn2AEgJ9gBHacX155oGOo + ibJ645K7h/aaxJP9nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+axJP9kruH9omxeuN5oGOodp1fXICfYAQAAAAA + ZplmA3ihYzR6omZ3gqpxqoy1ft2TvIj1mcSS/J3ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+ZxJL8k7yI9Yy1ft2CqnGqe6Jmd3ihYzSAgEAC + AAAAAAAAAAAAAAAAAAAAAFWqVQJ2oGEweaFjd4CobqqLtH/Xk72K9JnDkfudyJf/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Il/+Zw5H7k72K9Iy1f9eBqW6peaFjd3agYTCAgIAB + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5teI3mfY25/pmyqi7N80JS9ivOYw5H7 + nMeX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Hl/+Yw5H7lL2K84uzfNB/pmyqeZ9jbnebXiMAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHacXhR6oGNa + faRpq4evd8+TvYrymcOR+5zHlv+eyZn/nsmZ/5zHlv+Zw5H7lL2K8oevd899pGmreqBjWnacXhQAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB2m10MeJ5iRHuiZ6eDqnDQk72J8ZrFk/yaxZP8k72J8YOqcNB7omeneJ5iRHabXQwAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddBHecYSV6oGSSfaRo132kaNd8oGSReJxhJHSXXQQAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHeZZgF3mWYPbaRbDm2kWwEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/8P///8A// + /8AD//8AAP/8AAA/8AAAD8AAAAMAAAAAAAAAAIAAAAHgAAAH/AAAP/gAAB/gAAAHAAAAAAAAAAAAAAAA + AAAAAMAAAAPwAAAf/AAAP/AAAA/AAAADAAAAAAAAAACAAAAB4AAAB/wAAD//AAD//8AD///wD////D// + KAAAABAAAAAgAAAAAQAgAAAAAAAABAAAYQoAAGEKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAANG6pgrRvqxe0b6sXtC6pgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + zrypFNXDsWXg0sTQ7OPY+uzj2Prg0sTQ1cOxZc68qRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPu6ch + 2Ma2dOLVx9Lt5dn58erg//Lr4f/y6+H/8erg/+3l2fni1cfS2Ma2dM+7pyEAAAAAAAAAAMy4pBjWxbN/ + 49fJ1u3l2fvy6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvg/+3l2fvj18nW1sWzf825pRjMuaMZ + 1cOyjuTZy97u5tv88uvh//Lr4P/t4dT/4cav/+HGr//t4dT/8uvg//Lr4f/u5tv85NnL3tXDso7NuqYZ + AAAAAKqqqgDPu6gq2Mi3huDPvujewqr/2amE/+Wtgf/lrYH/2amE/97Cqv/gz77o2Mi3hs+7qCr/gIAA + AAAAAAAAAAC1flECvIJVGMOJXHfVnHHa5q2B/vC3i//wt4v/8LeL//C3i//mrYH+1Zxx2sOJXHe8glUY + tX5RAgAAAAC4gFIcxIleg9ifc+TqsYX98LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//qsYX9 + 2J9z5MSJXYS4gFIcun1RGsOIXYnZn3Pq67KG/vC3i//wt4v/67aJ/8Wvff/Gr33/67aJ//C3i//wt4v/ + 67KG/tmfc+rDiF2Jun1RGgAAAAC4e1MDvoBVHMWKXn3RoHPdwa58/p60f/+aw5D/msOQ/560f//Brnz+ + 0aBz3cWKXn29gVYcuHtTAwAAAAAAAAAAAAAAAHmgYyGDqXB2kbJ945rCkf6dyJj/nsmZ/57Jmf+dyJj/ + msKR/pGyfeODqXB2eaBjIQAAAAAAAAAAdpxfGICobX+OuILWmcOS+57JmP+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZj/mcOS+464gtaAqG1/dp5gGHacXxmAp22OkLmE3prEk/yeyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5rEk/yQuYTef6dtjnedXxkAAAAAVapVAHihYyqDqnKFj7iD2prEk/ueyZj/ + nsmZ/57Jmf+eyZj/msST+4+4g9qDq3KEeKFjKoCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAHmfYhuBqG5y + jLV/2ZrFk/uaxZP7jbV/2YGobnJ5n2IbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHebYAp8omdefKNmXnibYAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8PwAA8A8AAMADAAAAAAAA + AAAAAIABAACAAQAAAAAAAAAAAACAAQAAwAMAAAAAAAAAAAAAgAEAAPAPAAD8PwAA + + + \ No newline at end of file diff --git a/Handler/Project/Dialog/fImp.Designer.cs b/Handler/Project/Dialog/fImp.Designer.cs new file mode 100644 index 0000000..552a187 --- /dev/null +++ b/Handler/Project/Dialog/fImp.Designer.cs @@ -0,0 +1,315 @@ +namespace Project.Dialog +{ + partial class fImp + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.panel1 = new System.Windows.Forms.Panel(); + this.numericUpDown3 = new System.Windows.Forms.NumericUpDown(); + this.label5 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.numericUpDown2 = new System.Windows.Forms.NumericUpDown(); + this.label3 = new System.Windows.Forms.Label(); + this.numericUpDown1 = new System.Windows.Forms.NumericUpDown(); + this.label2 = new System.Windows.Forms.Label(); + this.tbUpdate = new System.Windows.Forms.Button(); + this.btPreView = new System.Windows.Forms.Button(); + this.btSelect = new System.Windows.Forms.Button(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); + this.statusStrip1 = new System.Windows.Forms.StatusStrip(); + this.prb1 = new System.Windows.Forms.ToolStripProgressBar(); + this.lbMsg = new System.Windows.Forms.ToolStripStatusLabel(); + this.dataGridView1 = new System.Windows.Forms.DataGridView(); + this.listView1 = new System.Windows.Forms.ListView(); + this.panel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit(); + this.statusStrip1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); + this.SuspendLayout(); + // + // panel1 + // + this.panel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(60)))), ((int)(((byte)(60))))); + this.panel1.Controls.Add(this.numericUpDown3); + this.panel1.Controls.Add(this.label5); + this.panel1.Controls.Add(this.label4); + this.panel1.Controls.Add(this.numericUpDown2); + this.panel1.Controls.Add(this.label3); + this.panel1.Controls.Add(this.numericUpDown1); + this.panel1.Controls.Add(this.label2); + this.panel1.Controls.Add(this.tbUpdate); + this.panel1.Controls.Add(this.btPreView); + this.panel1.Controls.Add(this.btSelect); + this.panel1.Controls.Add(this.textBox1); + this.panel1.Controls.Add(this.label1); + this.panel1.Dock = System.Windows.Forms.DockStyle.Top; + this.panel1.Location = new System.Drawing.Point(0, 0); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(1048, 77); + this.panel1.TabIndex = 0; + // + // numericUpDown3 + // + this.numericUpDown3.Location = new System.Drawing.Point(435, 42); + this.numericUpDown3.Maximum = new decimal(new int[] { + 100000, + 0, + 0, + 0}); + this.numericUpDown3.Name = "numericUpDown3"; + this.numericUpDown3.Size = new System.Drawing.Size(100, 21); + this.numericUpDown3.TabIndex = 12; + this.numericUpDown3.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.ForeColor = System.Drawing.Color.White; + this.label5.Location = new System.Drawing.Point(392, 47); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(37, 12); + this.label5.TabIndex = 11; + this.label5.Text = "Sheet"; + // + // label4 + // + this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.label4.AutoSize = true; + this.label4.ForeColor = System.Drawing.Color.White; + this.label4.Location = new System.Drawing.Point(934, 56); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(105, 12); + this.label4.TabIndex = 10; + this.label4.Text = "▼ Column Setting"; + // + // numericUpDown2 + // + this.numericUpDown2.Location = new System.Drawing.Point(219, 42); + this.numericUpDown2.Maximum = new decimal(new int[] { + -1530494977, + 232830, + 0, + 0}); + this.numericUpDown2.Name = "numericUpDown2"; + this.numericUpDown2.Size = new System.Drawing.Size(100, 21); + this.numericUpDown2.TabIndex = 8; + this.numericUpDown2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.numericUpDown2.ValueChanged += new System.EventHandler(this.numericUpDown2_ValueChanged); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.ForeColor = System.Drawing.Color.White; + this.label3.Location = new System.Drawing.Point(193, 47); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(14, 12); + this.label3.TabIndex = 7; + this.label3.Text = "~"; + this.label3.Click += new System.EventHandler(this.label3_Click); + // + // numericUpDown1 + // + this.numericUpDown1.Location = new System.Drawing.Point(79, 42); + this.numericUpDown1.Maximum = new decimal(new int[] { + -1530494977, + 232830, + 0, + 0}); + this.numericUpDown1.Name = "numericUpDown1"; + this.numericUpDown1.Size = new System.Drawing.Size(100, 21); + this.numericUpDown1.TabIndex = 6; + this.numericUpDown1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.numericUpDown1.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.ForeColor = System.Drawing.Color.White; + this.label2.Location = new System.Drawing.Point(12, 47); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(59, 12); + this.label2.TabIndex = 5; + this.label2.Text = "Start Row"; + // + // tbUpdate + // + this.tbUpdate.Location = new System.Drawing.Point(703, 14); + this.tbUpdate.Name = "tbUpdate"; + this.tbUpdate.Size = new System.Drawing.Size(109, 23); + this.tbUpdate.TabIndex = 4; + this.tbUpdate.Text = "Update Data"; + this.tbUpdate.UseVisualStyleBackColor = true; + this.tbUpdate.Click += new System.EventHandler(this.tbUpdate_Click); + // + // btPreView + // + this.btPreView.Location = new System.Drawing.Point(622, 14); + this.btPreView.Name = "btPreView"; + this.btPreView.Size = new System.Drawing.Size(75, 23); + this.btPreView.TabIndex = 3; + this.btPreView.Text = "PreView"; + this.btPreView.UseVisualStyleBackColor = true; + this.btPreView.Click += new System.EventHandler(this.button2_Click); + // + // btSelect + // + this.btSelect.Location = new System.Drawing.Point(541, 14); + this.btSelect.Name = "btSelect"; + this.btSelect.Size = new System.Drawing.Size(75, 23); + this.btSelect.TabIndex = 2; + this.btSelect.Text = "Select"; + this.btSelect.UseVisualStyleBackColor = true; + this.btSelect.Click += new System.EventHandler(this.button1_Click); + // + // textBox1 + // + this.textBox1.Location = new System.Drawing.Point(78, 15); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(457, 21); + this.textBox1.TabIndex = 1; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.ForeColor = System.Drawing.Color.White; + this.label1.Location = new System.Drawing.Point(16, 19); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(53, 12); + this.label1.TabIndex = 0; + this.label1.Text = "filename"; + // + // flowLayoutPanel1 + // + this.flowLayoutPanel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Top; + this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 77); + this.flowLayoutPanel1.Name = "flowLayoutPanel1"; + this.flowLayoutPanel1.Padding = new System.Windows.Forms.Padding(3, 3, 3, 0); + this.flowLayoutPanel1.Size = new System.Drawing.Size(1048, 62); + this.flowLayoutPanel1.TabIndex = 9; + // + // statusStrip1 + // + this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.prb1, + this.lbMsg}); + this.statusStrip1.Location = new System.Drawing.Point(0, 521); + this.statusStrip1.Name = "statusStrip1"; + this.statusStrip1.Size = new System.Drawing.Size(1048, 22); + this.statusStrip1.TabIndex = 1; + this.statusStrip1.Text = "statusStrip1"; + // + // prb1 + // + this.prb1.Name = "prb1"; + this.prb1.Size = new System.Drawing.Size(300, 16); + // + // lbMsg + // + this.lbMsg.Name = "lbMsg"; + this.lbMsg.Size = new System.Drawing.Size(16, 17); + this.lbMsg.Text = "..."; + // + // dataGridView1 + // + this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.dataGridView1.Location = new System.Drawing.Point(0, 77); + this.dataGridView1.Name = "dataGridView1"; + this.dataGridView1.RowTemplate.Height = 23; + this.dataGridView1.Size = new System.Drawing.Size(1048, 444); + this.dataGridView1.TabIndex = 2; + // + // listView1 + // + this.listView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.listView1.HideSelection = false; + this.listView1.Location = new System.Drawing.Point(0, 139); + this.listView1.Name = "listView1"; + this.listView1.Size = new System.Drawing.Size(1048, 382); + this.listView1.TabIndex = 3; + this.listView1.UseCompatibleStateImageBehavior = false; + this.listView1.View = System.Windows.Forms.View.Details; + // + // fImp + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1048, 543); + this.Controls.Add(this.listView1); + this.Controls.Add(this.flowLayoutPanel1); + this.Controls.Add(this.dataGridView1); + this.Controls.Add(this.statusStrip1); + this.Controls.Add(this.panel1); + this.Name = "fImp"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "fImp"; + this.Load += new System.EventHandler(this.fImp_Load); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit(); + this.statusStrip1.ResumeLayout(false); + this.statusStrip1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.StatusStrip statusStrip1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.Button btSelect; + private System.Windows.Forms.DataGridView dataGridView1; + private System.Windows.Forms.ListView listView1; + private System.Windows.Forms.Button tbUpdate; + private System.Windows.Forms.Button btPreView; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.NumericUpDown numericUpDown2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.NumericUpDown numericUpDown1; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1; + private System.Windows.Forms.ToolStripStatusLabel lbMsg; + private System.Windows.Forms.ToolStripProgressBar prb1; + private System.Windows.Forms.NumericUpDown numericUpDown3; + private System.Windows.Forms.Label label5; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/fImp.cs b/Handler/Project/Dialog/fImp.cs new file mode 100644 index 0000000..4df6fc1 --- /dev/null +++ b/Handler/Project/Dialog/fImp.cs @@ -0,0 +1,441 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fImp : Form + { + DataTable dt; + public fImp(DataTable dt_, string title, string[] collist) + { + InitializeComponent(); + this.dt = dt_; + foreach (var col in collist) + { + var uc = new UserControl1(); + uc.label1.Text = col; + uc.numericUpDown1.Value = 0; + uc.Size = new Size(163, 29); + uc.numericUpDown1.Tag = col; + uc.numericUpDown1.ValueChanged += NumericUpDown1_ValueChanged; + uc.numericUpDown1.BackColor = Color.LightGray; + this.flowLayoutPanel1.Controls.Add(uc); + } + this.Text = "엑셀 가져오기(" + title + ")"; + } + + private void NumericUpDown1_ValueChanged(object sender, EventArgs e) + { + //값에 따라서 색상을 달리한다. + var ctl = sender as NumericUpDown; + var col = ctl.Tag.ToString(); + if (ctl.Value == 0) + ctl.BackColor = Color.LightGray; + else + ctl.BackColor = Color.Lime; + UpdateColName(); + } + + void UpdateColName() + { + //reset name + for (int i = 1; i <= this.listView1.Columns.Count; i++) + listView1.Columns[i - 1].Text = "COL" + i.ToString(); + + //remap name + foreach (UserControl1 ctl in this.flowLayoutPanel1.Controls) + { + var colname = ctl.label1.Text; + var colNo = (int)ctl.numericUpDown1.Value; + if (colNo < 1) continue; + listView1.Columns[colNo - 1].Text = colname; + } + } + + private void button1_Click(object sender, EventArgs e) + { + var od = new OpenFileDialog(); + od.RestoreDirectory = true; + if (od.ShowDialog() == DialogResult.OK) + { + this.textBox1.Text = od.FileName; + btPreView.PerformClick(); + } + } + + private void button2_Click(object sender, EventArgs e) + { + var fn = this.textBox1.Text.Trim(); + var ext = System.IO.Path.GetExtension(fn); + libxl.Book book; + + if (ext == "xls") book = new libxl.BinBook(); + else book = new libxl.XmlBook(); + + //Amkor Technology/windows-242f240302c3e50d6cb1686ba2q4k0o9 + book.setKey("Amkor Technology", "windows-242f240302c3e50d6cb1686ba2q4k0o9"); + book.load(fn); + var sheet = book.getSheet((int)numericUpDown3.Value); + var cols = sheet.lastCol(); + var rows = sheet.lastRow(); + if (numericUpDown1.Value < 1) numericUpDown1.Value = 0; + + if(numericUpDown2.Value > rows) this.numericUpDown2.Value = rows; + else if(numericUpDown2.Value < 1) this.numericUpDown2.Value = rows; + + var sn = (int)numericUpDown1.Value; + var en = (int)numericUpDown2.Value; + + if (sn < 1) + { + MessageBox.Show("시작 줄 번호는 0보다 커야 합니다"); + return; + } + if (en < sn) + { + MessageBox.Show("종료 줄 번호는 시작 번호보다 커야 합니다"); + return; + } + + this.listView1.Columns.Clear(); + for (int i = 1; i <= cols; i++) + { + this.listView1.Columns.Add("col" + i.ToString()); + } + + var previewcnt = 20; + this.listView1.Items.Clear(); + var maxrow = Math.Min(previewcnt, en); + for (int i = sn; i <= maxrow; i++) + { + var data0 = sheet.readStr(i - 1, 0); + var lv = this.listView1.Items.Add(data0); + for (int j = 1; j < cols; j++) + { + var data1 = sheet.readStr(i - 1, j); + lv.SubItems.Add(data1.ToString()); + } + } + this.listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); + lbMsg.Text = $"미리보기는 최대 {previewcnt}개 까지 표시 됩니다"; + } + + private void numericUpDown2_ValueChanged(object sender, EventArgs e) + { + + } + + private void label3_Click(object sender, EventArgs e) + { + + } + + private void fImp_Load(object sender, EventArgs e) + { + + } + + void AddData(DataSet1.Component_Reel_SIDConvDataTable dt2, string v_101, string v_103, string v_106, string v_108, string v_103_2, ref int cntI, ref int cntE) + { + var newdr = dt2.NewComponent_Reel_SIDConvRow(); + if (string.IsNullOrEmpty(v_101) == false) newdr.M101 = v_101; + if (string.IsNullOrEmpty(v_103) == false) newdr.M103 = v_103; + if (string.IsNullOrEmpty(v_106) == false) newdr.M106 = v_106; + if (string.IsNullOrEmpty(v_108) == false) newdr.M108 = v_108; + if (string.IsNullOrEmpty(v_103_2) == false) newdr.M103_2 = v_103_2; + dt2.AddComponent_Reel_SIDConvRow(newdr); + cntI += 1; + } + + void UpdateData(DataSet1.Component_Reel_SIDConvDataTable dt2, + List list, + string mainValue, string column, + string v_101, string v_103, string v_106, string v_108, string v_103_2, ref int cntI, ref int cntE) + { + //데이터를 업데이트해준다. + foreach (var item in list) + { + //103값이 있는경우 처리해야한다 + if (string.IsNullOrEmpty(mainValue) == false) + { + //값이 비어있다면 기록하고 없다면 추가한다. + if (item[column] == null || string.IsNullOrEmpty(item[column].ToString())) + { + item[column] = mainValue; + item.EndEdit(); + cntE += 1; + } + else if (item[column].ToString() != mainValue) + AddData(dt2, v_101, v_103, v_106, v_108, v_103_2, ref cntI, ref cntE); + } + } + } + + private void tbUpdate_Click(object sender, EventArgs e) + { + //자료등록메세지 + var dlg = MessageBox.Show(string.Format("{0}건의 자료를 등록 할까요?", this.numericUpDown2.Value), "확인", MessageBoxButtons.YesNo, MessageBoxIcon.Question); + if (dlg == DialogResult.Yes) + { + //먼저 컬럼 목록을 가져온다 + Dictionary collist = new Dictionary(); + foreach (UserControl1 uc in this.flowLayoutPanel1.Controls) + { + var col = uc.label1.Text; + var no = (int)uc.numericUpDown1.Value; + if (no == 0) continue; + if (collist.Where(t => t.Value == no).Any()) + { + MessageBox.Show(string.Format("{0}번 열을 이미 지정된 열 입니다", no)); + return; + } + collist.Add(col, no); + } + + if (collist.Count < 1) + { + MessageBox.Show("지정된 열이 없습니다"); + return; + } + + + var fn = this.textBox1.Text.Trim(); + var ext = System.IO.Path.GetExtension(fn); + libxl.Book book; + if (ext == "xls") book = new libxl.BinBook(); + else book = new libxl.XmlBook(); + + //Amkor Technology/windows-242f240302c3e50d6cb1686ba2q4k0o9 + book.setKey("Amkor Technology", "windows-242f240302c3e50d6cb1686ba2q4k0o9"); + book.load(fn); + var sheet = book.getSheet((int)numericUpDown3.Value); + + var sn = (int)numericUpDown1.Value; + var en = (int)numericUpDown2.Value; + this.prb1.Value = 0; + this.prb1.Maximum = en; + var cntI = 0; + var cntSkip = 0; + var cntD = 0; + var cntE = 0; + for (int i = sn; i <= en; i++) + { + this.prb1.Value = i; + this.lbMsg.Text = string.Format("{0}/{1} 추가:{2},SKIP:{3},중복추가:{4}", i, en, cntI, cntSkip, cntD); + if (i % 10 == 0) Application.DoEvents(); + + Dictionary datalist = new Dictionary(); + foreach (var coldata in collist) + { + var colname = coldata.Key; + var colno = coldata.Value; + + var data0 = sheet.readStr(i - 1, colno - 1); + datalist.Add(colname, data0); + } + + //데이터를 다 기록했다 이중 기준값인 SID + if (dt is DataSet1.Component_Reel_SIDInfoDataTable) + { + //sid 열의 값을 취한다. + if (datalist.Where(t => t.Key == "SID").Any() == false) continue; + var sid = datalist.Where(t => t.Key == "SID").First().Value; + + var custcode = datalist.Where(t => t.Key == "CustCode").First().Value; + if (custcode == null) custcode = string.Empty; + else custcode = custcode.PadLeft(4, '0'); + + var partno = datalist.Where(t => t.Key == "PartNo").First().Value; + if (partno == null) partno = string.Empty; + + + partno = partno.Trim(); + custcode = custcode.Trim(); + sid = sid.Trim(); + + var tata = new DataSet1TableAdapters.Component_Reel_SIDInfoTableAdapter(); + + //이 sid 값이 있는지 체크한다. + var cnt = tata.CheckData(sid, custcode, partno); + //var dt2 = dt as DataSet1.Component_Reel_SIDInfoDataTable; + //var sidlist = dt2.Where(t => t.SID == sid && t.PartNo == partno && t.CustCode == custcode); + if(cnt == 0) + { + //없다면 추가해준다. + //var newdr = dt2.NewComponent_Reel_SIDInfoRow(); + //newdr.SID = sid; + //newdr.PartNo = partno; + //newdr.CustCode = custcode; + //newdr.Remark = "신규추가" + DateTime.Now.ToShortTimeString(); + //dt2.AddComponent_Reel_SIDInfoRow(newdr); + cntI += 1; + + tata.Insert(sid, custcode, string.Empty, string.Empty, partno, string.Empty, DateTime.Now.ToString()); + //Boolean bInsert = false; + //foreach (var item in datalist) + //{ + // if (string.IsNullOrEmpty(item.Value) == false) + // { + // if (item.Key.ToLower() == "custcode") + // { + // var itemvalue = item.Value.ToString(); + // itemvalue = itemvalue.PadLeft(4, '0'); + // newdr[item.Key] = itemvalue; + // } + // else + // { + // newdr[item.Key] = item.Value; + // } + // if (item.Key.ToUpper() != "SID") bInsert = true; + // } + + //} + //if (bInsert) + //{ + // newdr.Remark = "신규추가" + DateTime.Now.ToShortTimeString(); + // dt2.AddComponent_Reel_SIDInfoRow(newdr); + // cntI += 1; + //} + //else newdr.Delete(); + } + else + { + //여러개가 잇다면 모두 처리해준다. + //foreach (var dr in sidlist) + //{ + // Boolean update = false; + // foreach (var item in datalist) + // { + // var itemvalue = item.Value.Trim(); + // if (string.IsNullOrEmpty(itemvalue)) continue; + // if (item.Key.ToLower() == "custcode") + // { + // itemvalue = itemvalue.PadLeft(4, '0'); + // } + // var curValue = dr[item.Key]; + // if (curValue == null) + // { + // dr[item.Key] = item.Value; + // update = true; + // } + // else if (curValue.ToString() != itemvalue) + // { + // dr["remark"] = string.Format("[{2}] {0}->{1}", curValue, itemvalue, item.Key); + // dr[item.Key] = itemvalue; + // update = true; + // } + // } + // if (update) cntSkip += 1; + //} + } + + } + else if (dt is DataSet1.Component_Reel_SIDConvDataTable) + { + var dt2 = dt as DataSet1.Component_Reel_SIDConvDataTable; + + var v_101 = string.Empty; + var v_103 = string.Empty; + var v_103_2 = string.Empty; + var v_106 = string.Empty; + var v_108 = string.Empty; + + var d_101 = datalist.Where(t => t.Key == "M101").FirstOrDefault(); + var d_103 = datalist.Where(t => t.Key == "M103").FirstOrDefault(); + var d_106 = datalist.Where(t => t.Key == "M106").FirstOrDefault(); + var d_108 = datalist.Where(t => t.Key == "M108").FirstOrDefault(); + var d_103_2 = datalist.Where(t => t.Key == "M103_2").FirstOrDefault(); + + if (d_101.Key != null) v_101 = d_101.Value.Trim(); + if (d_103.Key != null) v_103 = d_103.Value.Trim(); + if (d_106.Key != null) v_106 = d_106.Value.Trim(); + if (d_108.Key != null) v_108 = d_108.Value.Trim(); + if (d_103_2.Key != null) v_103_2 = d_103_2.Value.Trim(); + + + //101값이 있다면? + if (string.IsNullOrEmpty(v_101) == false) + { + var list = dt2.Where(t => t.M101 == v_101).ToList(); + if (list.Any() == false) AddData(dt2, v_101, v_103, v_106, v_108, v_103_2, ref cntI, ref cntE); //값이 없으니 추가 해야 한다 + else + { + UpdateData(dt2, list, v_103, "M103", v_101, v_103, v_106, v_108, v_103_2, ref cntI, ref cntE); //데이터를 업데이트해준다. + UpdateData(dt2, list, v_106, "M106", v_101, v_103, v_106, v_108, v_103_2, ref cntI, ref cntE); //데이터를 업데이트해준다. + UpdateData(dt2, list, v_108, "M108", v_101, v_103, v_106, v_108, v_103_2, ref cntI, ref cntE); //데이터를 업데이트해준다. + UpdateData(dt2, list, v_103_2, "M103_2", v_101, v_103, v_106, v_108, v_103_2, ref cntI, ref cntE); //데이터를 업데이트해준다. + } + } + + //103값이 있다면? + if (string.IsNullOrEmpty(v_103) == false) + { + var list = dt2.Where(t => t.M103 == v_103).ToList(); + if (list.Any() == false) AddData(dt2, v_101, v_103, v_106, v_108, v_103_2, ref cntI, ref cntE); //값이 없으니 추가 해야 한다 + else + { + UpdateData(dt2, list, v_101, "M101", v_101, v_103, v_106, v_108, v_103_2, ref cntI, ref cntE); //데이터를 업데이트해준다. + UpdateData(dt2, list, v_106, "M106", v_101, v_103, v_106, v_108, v_103_2, ref cntI, ref cntE); //데이터를 업데이트해준다. + UpdateData(dt2, list, v_108, "M108", v_101, v_103, v_106, v_108, v_103_2, ref cntI, ref cntE); //데이터를 업데이트해준다. + UpdateData(dt2, list, v_103_2, "M103_2", v_101, v_103, v_106, v_108, v_103_2, ref cntI, ref cntE); //데이터를 업데이트해준다. + } + } + //106값이 있다면? + if (string.IsNullOrEmpty(v_106) == false) + { + var list = dt2.Where(t => t.M106 == v_106).ToList(); + if (list.Any() == false) AddData(dt2, v_101, v_103, v_106, v_108, v_103_2, ref cntI, ref cntE); //값이 없으니 추가 해야 한다 + else + { + UpdateData(dt2, list, v_101, "M101", v_101, v_103, v_106, v_108, v_103_2, ref cntI, ref cntE); //데이터를 업데이트해준다. + UpdateData(dt2, list, v_103, "M103", v_101, v_103, v_106, v_108, v_103_2, ref cntI, ref cntE); //데이터를 업데이트해준다. + UpdateData(dt2, list, v_108, "M108", v_101, v_103, v_106, v_108, v_103_2, ref cntI, ref cntE); //데이터를 업데이트해준다. + UpdateData(dt2, list, v_103_2, "M103_2", v_101, v_103, v_106, v_108, v_103_2, ref cntI, ref cntE); //데이터를 업데이트해준다. + } + } + //108값이 있다면? + if (string.IsNullOrEmpty(v_108) == false) + { + var list = dt2.Where(t => t.M108 == v_108).ToList(); + if (list.Any() == false) AddData(dt2, v_101, v_103, v_106, v_108, v_103_2, ref cntI, ref cntE); //값이 없으니 추가 해야 한다 + else + { + UpdateData(dt2, list, v_101, "M101", v_101, v_103, v_106, v_108, v_103_2, ref cntI, ref cntE); //데이터를 업데이트해준다. + UpdateData(dt2, list, v_103, "M103", v_101, v_103, v_106, v_108, v_103_2, ref cntI, ref cntE); //데이터를 업데이트해준다. + UpdateData(dt2, list, v_106, "M106", v_101, v_103, v_106, v_108, v_103_2, ref cntI, ref cntE); //데이터를 업데이트해준다. + UpdateData(dt2, list, v_103_2, "M103_2", v_101, v_103, v_106, v_108, v_103_2, ref cntI, ref cntE); //데이터를 업데이트해준다. + } + } + //103_2값이 있다면? + if (string.IsNullOrEmpty(v_103_2) == false) + { + var list = dt2.Where(t => t.M103_2 == v_103_2).ToList(); + if (list.Any() == false) AddData(dt2, v_101, v_103, v_106, v_108, v_103_2, ref cntI, ref cntE); //값이 없으니 추가 해야 한다 + else + { + UpdateData(dt2, list, v_101, "M101", v_101, v_103, v_106, v_108, v_103_2, ref cntI, ref cntE); //데이터를 업데이트해준다. + UpdateData(dt2, list, v_103, "M103", v_101, v_103, v_106, v_108, v_103_2, ref cntI, ref cntE); //데이터를 업데이트해준다. + UpdateData(dt2, list, v_106, "M106", v_101, v_103, v_106, v_108, v_103_2, ref cntI, ref cntE); //데이터를 업데이트해준다. + UpdateData(dt2, list, v_108, "M108", v_101, v_103, v_106, v_108, v_103_2, ref cntI, ref cntE); //데이터를 업데이트해준다. + } + } + } + + } + this.listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); + lbMsg.Text = string.Format("다음의 수량 만큼 자료가 변경 되었습니다\n" + + "추가:{0},중복추가:{1},SKIP:{2}\n" + + "메인 화면에서 '저장'을 클릭해야 최종 적용 됩니다", cntI, cntD, cntSkip); + MessageBox.Show(lbMsg.Text); + if (cntI > 0 || cntD > 0) DialogResult = DialogResult.OK; + } + } + } +} diff --git a/Handler/Project/Dialog/fImp.resx b/Handler/Project/Dialog/fImp.resx new file mode 100644 index 0000000..174ebc7 --- /dev/null +++ b/Handler/Project/Dialog/fImp.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Handler/Project/Dialog/fLoaderInfo.Designer.cs b/Handler/Project/Dialog/fLoaderInfo.Designer.cs new file mode 100644 index 0000000..d4c3a7d --- /dev/null +++ b/Handler/Project/Dialog/fLoaderInfo.Designer.cs @@ -0,0 +1,1283 @@ +namespace Project.Dialog +{ + partial class fLoaderInfo + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fLoaderInfo)); + this.tbSID = new System.Windows.Forms.TextBox(); + this.tbVLOT = new System.Windows.Forms.TextBox(); + this.tbQTY = new System.Windows.Forms.TextBox(); + this.tbMFG = new System.Windows.Forms.TextBox(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.lvbcdList = new System.Windows.Forms.ListView(); + this.columnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.cmbarc = new System.Windows.Forms.ContextMenuStrip(this.components); + this.회전기준바코드로설정ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.panel7 = new System.Windows.Forms.Panel(); + this.tbBarcode = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.lstErrmsg = new System.Windows.Forms.ListBox(); + this.btOK = new System.Windows.Forms.Button(); + this.panel3 = new System.Windows.Forms.Panel(); + this.label10 = new System.Windows.Forms.Label(); + this.label11 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.button2 = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.tbRID = new System.Windows.Forms.TextBox(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.tbRID0 = new System.Windows.Forms.Label(); + this.button4 = new System.Windows.Forms.Button(); + this.btIDChk = new System.Windows.Forms.Button(); + this.tbSidFind = new System.Windows.Forms.Button(); + this.btPartChk = new System.Windows.Forms.Button(); + this.linkLabel7 = new System.Windows.Forms.LinkLabel(); + this.linkLabel5 = new System.Windows.Forms.LinkLabel(); + this.linkLabel4 = new System.Windows.Forms.LinkLabel(); + this.linkLabel3 = new System.Windows.Forms.LinkLabel(); + this.linkLabel2 = new System.Windows.Forms.LinkLabel(); + this.linkLabel1 = new System.Windows.Forms.LinkLabel(); + this.btDateSelecte = new System.Windows.Forms.Button(); + this.lbQTY0 = new System.Windows.Forms.Label(); + this.lbSID0 = new System.Windows.Forms.Label(); + this.tbpartno = new System.Windows.Forms.TextBox(); + this.btSidConv = new System.Windows.Forms.Button(); + this.btNewID = new System.Windows.Forms.Button(); + this.btChkQty = new System.Windows.Forms.Button(); + this.button9 = new System.Windows.Forms.Button(); + this.linkLabel8 = new System.Windows.Forms.LinkLabel(); + this.TbCustCode = new System.Windows.Forms.TextBox(); + this.btCustomAutoInput = new System.Windows.Forms.Button(); + this.panel4 = new System.Windows.Forms.Panel(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.label2 = new System.Windows.Forms.Label(); + this.pb8 = new System.Windows.Forms.Label(); + this.pb2 = new System.Windows.Forms.Label(); + this.pb4 = new System.Windows.Forms.Label(); + this.pb6 = new System.Windows.Forms.Label(); + this.pb7 = new System.Windows.Forms.Label(); + this.pb9 = new System.Windows.Forms.Label(); + this.pb3 = new System.Windows.Forms.Label(); + this.pb1 = new System.Windows.Forms.Label(); + this.label26 = new System.Windows.Forms.Label(); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.ivF = new arCtl.ImageBox(); + this.tabPage2 = new System.Windows.Forms.TabPage(); + this.ivR = new arCtl.ImageBox(); + this.linkLabel6 = new System.Windows.Forms.LinkLabel(); + this.tbVName = new System.Windows.Forms.TextBox(); + this.panel1 = new System.Windows.Forms.Panel(); + this.panel2 = new System.Windows.Forms.Panel(); + this.panel5 = new System.Windows.Forms.Panel(); + this.groupBox3 = new System.Windows.Forms.GroupBox(); + this.button5 = new System.Windows.Forms.Button(); + this.linkLabel9 = new System.Windows.Forms.LinkLabel(); + this.tbCustName = new System.Windows.Forms.TextBox(); + this.panel6 = new System.Windows.Forms.Panel(); + this.button3 = new System.Windows.Forms.Button(); + this.button1 = new System.Windows.Forms.Button(); + this.tmAutoConfirm = new System.Windows.Forms.Timer(this.components); + this.statusStrip1 = new System.Windows.Forms.StatusStrip(); + this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel(); + this.lnkBatch = new System.Windows.Forms.LinkLabel(); + this.tbBatch = new System.Windows.Forms.TextBox(); + this.linkLabel10 = new System.Windows.Forms.LinkLabel(); + this.tbQtyMax = new System.Windows.Forms.TextBox(); + this.groupBox1.SuspendLayout(); + this.cmbarc.SuspendLayout(); + this.panel7.SuspendLayout(); + this.panel3.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.panel4.SuspendLayout(); + this.tableLayoutPanel1.SuspendLayout(); + this.tabControl1.SuspendLayout(); + this.tabPage1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.ivF)).BeginInit(); + this.tabPage2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.ivR)).BeginInit(); + this.panel2.SuspendLayout(); + this.panel5.SuspendLayout(); + this.groupBox3.SuspendLayout(); + this.panel6.SuspendLayout(); + this.statusStrip1.SuspendLayout(); + this.SuspendLayout(); + // + // tbSID + // + this.tbSID.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); + this.tbSID.Font = new System.Drawing.Font("맑은 고딕", 13F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tbSID.Location = new System.Drawing.Point(102, 90); + this.tbSID.Margin = new System.Windows.Forms.Padding(5, 8, 5, 8); + this.tbSID.Name = "tbSID"; + this.tbSID.Size = new System.Drawing.Size(135, 31); + this.tbSID.TabIndex = 1; + this.tbSID.Tag = "SID"; + this.tbSID.Click += new System.EventHandler(this.tbDate_Click); + // + // tbVLOT + // + this.tbVLOT.Font = new System.Drawing.Font("맑은 고딕", 13F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tbVLOT.Location = new System.Drawing.Point(102, 143); + this.tbVLOT.Margin = new System.Windows.Forms.Padding(5, 8, 5, 8); + this.tbVLOT.Name = "tbVLOT"; + this.tbVLOT.Size = new System.Drawing.Size(294, 31); + this.tbVLOT.TabIndex = 1; + this.tbVLOT.Tag = "VLOT"; + this.tbVLOT.Click += new System.EventHandler(this.tbDate_Click); + // + // tbQTY + // + this.tbQTY.Font = new System.Drawing.Font("맑은 고딕", 13F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tbQTY.Location = new System.Drawing.Point(288, 90); + this.tbQTY.Margin = new System.Windows.Forms.Padding(5, 8, 5, 8); + this.tbQTY.Name = "tbQTY"; + this.tbQTY.Size = new System.Drawing.Size(108, 31); + this.tbQTY.TabIndex = 1; + this.tbQTY.Tag = "QTY"; + this.tbQTY.Click += new System.EventHandler(this.tbDate_Click); + // + // tbMFG + // + this.tbMFG.Font = new System.Drawing.Font("맑은 고딕", 13F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tbMFG.Location = new System.Drawing.Point(102, 176); + this.tbMFG.Margin = new System.Windows.Forms.Padding(5, 8, 5, 8); + this.tbMFG.Name = "tbMFG"; + this.tbMFG.Size = new System.Drawing.Size(294, 31); + this.tbMFG.TabIndex = 3; + this.tbMFG.Tag = "MFGDATE"; + this.tbMFG.Click += new System.EventHandler(this.tbDate_Click); + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.lvbcdList); + this.groupBox1.Controls.Add(this.panel7); + this.groupBox1.Controls.Add(this.lstErrmsg); + this.groupBox1.Controls.Add(this.btOK); + this.groupBox1.Controls.Add(this.panel3); + this.groupBox1.Controls.Add(this.button2); + this.groupBox1.Controls.Add(this.label1); + this.groupBox1.Dock = System.Windows.Forms.DockStyle.Right; + this.groupBox1.Location = new System.Drawing.Point(806, 5); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Padding = new System.Windows.Forms.Padding(5); + this.groupBox1.Size = new System.Drawing.Size(373, 871); + this.groupBox1.TabIndex = 5; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Barcode Data List"; + // + // lvbcdList + // + this.lvbcdList.CheckBoxes = true; + this.lvbcdList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader4, + this.columnHeader1, + this.columnHeader2}); + this.lvbcdList.ContextMenuStrip = this.cmbarc; + this.lvbcdList.Dock = System.Windows.Forms.DockStyle.Fill; + this.lvbcdList.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lvbcdList.FullRowSelect = true; + this.lvbcdList.GridLines = true; + this.lvbcdList.HideSelection = false; + this.lvbcdList.Location = new System.Drawing.Point(5, 185); + this.lvbcdList.Name = "lvbcdList"; + this.lvbcdList.Size = new System.Drawing.Size(363, 372); + this.lvbcdList.TabIndex = 1; + this.lvbcdList.UseCompatibleStateImageBehavior = false; + this.lvbcdList.View = System.Windows.Forms.View.Details; + this.lvbcdList.SelectedIndexChanged += new System.EventHandler(this.lvbcdList_SelectedIndexChanged); + // + // columnHeader4 + // + this.columnHeader4.Text = "Ang"; + this.columnHeader4.Width = 80; + // + // columnHeader1 + // + this.columnHeader1.Text = "Value"; + this.columnHeader1.Width = 240; + // + // columnHeader2 + // + this.columnHeader2.Text = "S"; + this.columnHeader2.Width = 50; + // + // cmbarc + // + this.cmbarc.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.회전기준바코드로설정ToolStripMenuItem}); + this.cmbarc.Name = "cmbarc"; + this.cmbarc.Size = new System.Drawing.Size(207, 26); + // + // 회전기준바코드로설정ToolStripMenuItem + // + this.회전기준바코드로설정ToolStripMenuItem.Name = "회전기준바코드로설정ToolStripMenuItem"; + this.회전기준바코드로설정ToolStripMenuItem.Size = new System.Drawing.Size(206, 22); + this.회전기준바코드로설정ToolStripMenuItem.Text = "회전 기준 바코드로 설정"; + this.회전기준바코드로설정ToolStripMenuItem.Click += new System.EventHandler(this.회전기준바코드로설정ToolStripMenuItem_Click); + // + // panel7 + // + this.panel7.Controls.Add(this.tbBarcode); + this.panel7.Controls.Add(this.label3); + this.panel7.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel7.Location = new System.Drawing.Point(5, 557); + this.panel7.Name = "panel7"; + this.panel7.Size = new System.Drawing.Size(363, 65); + this.panel7.TabIndex = 7; + // + // tbBarcode + // + this.tbBarcode.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.tbBarcode.Dock = System.Windows.Forms.DockStyle.Fill; + this.tbBarcode.Location = new System.Drawing.Point(0, 30); + this.tbBarcode.Name = "tbBarcode"; + this.tbBarcode.Size = new System.Drawing.Size(363, 35); + this.tbBarcode.TabIndex = 1; + this.tbBarcode.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.tbBarcode.KeyDown += new System.Windows.Forms.KeyEventHandler(this.tbBarcode_KeyDown); + // + // label3 + // + this.label3.Dock = System.Windows.Forms.DockStyle.Top; + this.label3.Location = new System.Drawing.Point(0, 0); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(363, 30); + this.label3.TabIndex = 0; + this.label3.Text = "Barcode"; + // + // lstErrmsg + // + this.lstErrmsg.Dock = System.Windows.Forms.DockStyle.Bottom; + this.lstErrmsg.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lstErrmsg.FormattingEnabled = true; + this.lstErrmsg.ItemHeight = 21; + this.lstErrmsg.Location = new System.Drawing.Point(5, 622); + this.lstErrmsg.Name = "lstErrmsg"; + this.lstErrmsg.Size = new System.Drawing.Size(363, 151); + this.lstErrmsg.TabIndex = 5; + // + // btOK + // + this.btOK.BackColor = System.Drawing.Color.DarkSeaGreen; + this.btOK.Dock = System.Windows.Forms.DockStyle.Bottom; + this.btOK.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btOK.Location = new System.Drawing.Point(5, 773); + this.btOK.Name = "btOK"; + this.btOK.Size = new System.Drawing.Size(363, 93); + this.btOK.TabIndex = 4; + this.btOK.Text = "◆ 입력 완료 ◆"; + this.btOK.UseVisualStyleBackColor = false; + this.btOK.Click += new System.EventHandler(this.btOK_Click); + // + // panel3 + // + this.panel3.Controls.Add(this.label10); + this.panel3.Controls.Add(this.label11); + this.panel3.Controls.Add(this.label9); + this.panel3.Dock = System.Windows.Forms.DockStyle.Top; + this.panel3.Location = new System.Drawing.Point(5, 157); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(363, 28); + this.panel3.TabIndex = 3; + // + // label10 + // + this.label10.BackColor = System.Drawing.Color.Gold; + this.label10.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label10.Dock = System.Windows.Forms.DockStyle.Fill; + this.label10.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label10.Location = new System.Drawing.Point(119, 0); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(125, 28); + this.label10.TabIndex = 1; + this.label10.Text = "QR"; + this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label11 + // + this.label11.BackColor = System.Drawing.Color.Lime; + this.label11.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label11.Dock = System.Windows.Forms.DockStyle.Right; + this.label11.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label11.Location = new System.Drawing.Point(244, 0); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(119, 28); + this.label11.TabIndex = 2; + this.label11.Text = "DataMatrix"; + this.label11.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label9 + // + this.label9.BackColor = System.Drawing.Color.WhiteSmoke; + this.label9.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label9.Dock = System.Windows.Forms.DockStyle.Left; + this.label9.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label9.Location = new System.Drawing.Point(0, 0); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(119, 28); + this.label9.TabIndex = 0; + this.label9.Text = "1D"; + this.label9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // button2 + // + this.button2.Dock = System.Windows.Forms.DockStyle.Top; + this.button2.ForeColor = System.Drawing.Color.DarkBlue; + this.button2.Location = new System.Drawing.Point(5, 107); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(363, 50); + this.button2.TabIndex = 2; + this.button2.Text = "◀ 바코드 출력정보에 \"입력\""; + this.button2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // label1 + // + this.label1.Dock = System.Windows.Forms.DockStyle.Top; + this.label1.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label1.ForeColor = System.Drawing.Color.DimGray; + this.label1.Location = new System.Drawing.Point(5, 33); + this.label1.Name = "label1"; + this.label1.Padding = new System.Windows.Forms.Padding(5); + this.label1.Size = new System.Drawing.Size(363, 74); + this.label1.TabIndex = 0; + this.label1.Text = "현재 바코드 리더기로 부터 읽은 데이터를 모두 표시합니다. \r\n1. 입력 하고자 하는 데이터 칸을 좌측에서 먼저 선택합니다\r\n2. 입력 데이터를 " + + "아래 목록에서 선택\r\n3. 하단의 \"입력\" 버튼을 누릅니다"; + // + // tbRID + // + this.tbRID.Font = new System.Drawing.Font("맑은 고딕", 13F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tbRID.Location = new System.Drawing.Point(102, 36); + this.tbRID.Margin = new System.Windows.Forms.Padding(5, 8, 5, 8); + this.tbRID.Name = "tbRID"; + this.tbRID.Size = new System.Drawing.Size(294, 31); + this.tbRID.TabIndex = 7; + this.tbRID.Tag = "ID"; + this.tbRID.Click += new System.EventHandler(this.tbDate_Click); + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.linkLabel10); + this.groupBox2.Controls.Add(this.tbQtyMax); + this.groupBox2.Controls.Add(this.lnkBatch); + this.groupBox2.Controls.Add(this.tbBatch); + this.groupBox2.Controls.Add(this.tbRID0); + this.groupBox2.Controls.Add(this.button4); + this.groupBox2.Controls.Add(this.btIDChk); + this.groupBox2.Controls.Add(this.tbSidFind); + this.groupBox2.Controls.Add(this.btPartChk); + this.groupBox2.Controls.Add(this.linkLabel7); + this.groupBox2.Controls.Add(this.linkLabel5); + this.groupBox2.Controls.Add(this.linkLabel4); + this.groupBox2.Controls.Add(this.linkLabel3); + this.groupBox2.Controls.Add(this.linkLabel2); + this.groupBox2.Controls.Add(this.linkLabel1); + this.groupBox2.Controls.Add(this.btDateSelecte); + this.groupBox2.Controls.Add(this.lbQTY0); + this.groupBox2.Controls.Add(this.lbSID0); + this.groupBox2.Controls.Add(this.tbpartno); + this.groupBox2.Controls.Add(this.btSidConv); + this.groupBox2.Controls.Add(this.btNewID); + this.groupBox2.Controls.Add(this.btChkQty); + this.groupBox2.Controls.Add(this.tbRID); + this.groupBox2.Controls.Add(this.tbVLOT); + this.groupBox2.Controls.Add(this.tbMFG); + this.groupBox2.Controls.Add(this.tbSID); + this.groupBox2.Controls.Add(this.tbQTY); + this.groupBox2.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBox2.Location = new System.Drawing.Point(0, 0); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(556, 297); + this.groupBox2.TabIndex = 8; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Barcode information"; + this.groupBox2.Enter += new System.EventHandler(this.groupBox2_Enter); + // + // tbRID0 + // + this.tbRID0.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.tbRID0.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.tbRID0.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tbRID0.ForeColor = System.Drawing.Color.Gold; + this.tbRID0.Location = new System.Drawing.Point(102, 67); + this.tbRID0.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); + this.tbRID0.Name = "tbRID0"; + this.tbRID0.Size = new System.Drawing.Size(294, 19); + this.tbRID0.TabIndex = 32; + this.tbRID0.Tag = ""; + this.tbRID0.Text = "-- Original Data --"; + this.tbRID0.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // button4 + // + this.button4.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.button4.Location = new System.Drawing.Point(344, 210); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(52, 31); + this.button4.TabIndex = 31; + this.button4.Text = "N/A"; + this.button4.UseVisualStyleBackColor = true; + this.button4.Click += new System.EventHandler(this.button4_Click_1); + // + // btIDChk + // + this.btIDChk.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btIDChk.Location = new System.Drawing.Point(484, 36); + this.btIDChk.Name = "btIDChk"; + this.btIDChk.Size = new System.Drawing.Size(57, 50); + this.btIDChk.TabIndex = 30; + this.btIDChk.Text = "검사"; + this.btIDChk.UseVisualStyleBackColor = true; + this.btIDChk.Click += new System.EventHandler(this.button8_Click); + // + // tbSidFind + // + this.tbSidFind.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tbSidFind.Location = new System.Drawing.Point(484, 89); + this.tbSidFind.Name = "tbSidFind"; + this.tbSidFind.Size = new System.Drawing.Size(57, 32); + this.tbSidFind.TabIndex = 29; + this.tbSidFind.Text = "찾기"; + this.tbSidFind.UseVisualStyleBackColor = true; + this.tbSidFind.Click += new System.EventHandler(this.button7_Click); + // + // btPartChk + // + this.btPartChk.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.btPartChk.Location = new System.Drawing.Point(399, 211); + this.btPartChk.Name = "btPartChk"; + this.btPartChk.Size = new System.Drawing.Size(142, 30); + this.btPartChk.TabIndex = 25; + this.btPartChk.Text = "자동입력"; + this.btPartChk.UseVisualStyleBackColor = true; + this.btPartChk.Click += new System.EventHandler(this.btPart_Click); + // + // linkLabel7 + // + this.linkLabel7.AutoSize = true; + this.linkLabel7.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.linkLabel7.Location = new System.Drawing.Point(24, 216); + this.linkLabel7.Name = "linkLabel7"; + this.linkLabel7.Size = new System.Drawing.Size(73, 20); + this.linkLabel7.TabIndex = 23; + this.linkLabel7.TabStop = true; + this.linkLabel7.Text = "PART NO"; + this.linkLabel7.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel7_LinkClicked); + // + // linkLabel5 + // + this.linkLabel5.AutoSize = true; + this.linkLabel5.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.linkLabel5.Location = new System.Drawing.Point(14, 181); + this.linkLabel5.Name = "linkLabel5"; + this.linkLabel5.Size = new System.Drawing.Size(83, 20); + this.linkLabel5.TabIndex = 23; + this.linkLabel5.TabStop = true; + this.linkLabel5.Text = "MFG DATE"; + this.linkLabel5.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel5_LinkClicked); + // + // linkLabel4 + // + this.linkLabel4.AutoSize = true; + this.linkLabel4.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.linkLabel4.Location = new System.Drawing.Point(242, 95); + this.linkLabel4.Name = "linkLabel4"; + this.linkLabel4.Size = new System.Drawing.Size(40, 21); + this.linkLabel4.TabIndex = 23; + this.linkLabel4.TabStop = true; + this.linkLabel4.Text = "QTY"; + this.linkLabel4.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel4_LinkClicked); + // + // linkLabel3 + // + this.linkLabel3.AutoSize = true; + this.linkLabel3.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.linkLabel3.Location = new System.Drawing.Point(7, 146); + this.linkLabel3.Name = "linkLabel3"; + this.linkLabel3.Size = new System.Drawing.Size(90, 20); + this.linkLabel3.TabIndex = 23; + this.linkLabel3.TabStop = true; + this.linkLabel3.Text = "Vender LOT"; + this.linkLabel3.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel3_LinkClicked); + // + // linkLabel2 + // + this.linkLabel2.AutoSize = true; + this.linkLabel2.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.linkLabel2.Location = new System.Drawing.Point(65, 95); + this.linkLabel2.Name = "linkLabel2"; + this.linkLabel2.Size = new System.Drawing.Size(32, 20); + this.linkLabel2.TabIndex = 23; + this.linkLabel2.TabStop = true; + this.linkLabel2.Text = "SID"; + this.linkLabel2.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel2_LinkClicked); + // + // linkLabel1 + // + this.linkLabel1.AutoSize = true; + this.linkLabel1.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.linkLabel1.Location = new System.Drawing.Point(36, 41); + this.linkLabel1.Name = "linkLabel1"; + this.linkLabel1.Size = new System.Drawing.Size(61, 20); + this.linkLabel1.TabIndex = 23; + this.linkLabel1.TabStop = true; + this.linkLabel1.Text = "REEL ID"; + this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked); + // + // btDateSelecte + // + this.btDateSelecte.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.btDateSelecte.Location = new System.Drawing.Point(399, 176); + this.btDateSelecte.Name = "btDateSelecte"; + this.btDateSelecte.Size = new System.Drawing.Size(142, 31); + this.btDateSelecte.TabIndex = 22; + this.btDateSelecte.Text = "선택"; + this.btDateSelecte.UseVisualStyleBackColor = true; + this.btDateSelecte.Click += new System.EventHandler(this.button4_Click); + // + // lbQTY0 + // + this.lbQTY0.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.lbQTY0.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.lbQTY0.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbQTY0.ForeColor = System.Drawing.Color.Gold; + this.lbQTY0.Location = new System.Drawing.Point(288, 122); + this.lbQTY0.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); + this.lbQTY0.Name = "lbQTY0"; + this.lbQTY0.Size = new System.Drawing.Size(108, 19); + this.lbQTY0.TabIndex = 17; + this.lbQTY0.Tag = ""; + this.lbQTY0.Text = "-- Original Data --"; + this.lbQTY0.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // lbSID0 + // + this.lbSID0.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.lbSID0.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.lbSID0.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbSID0.ForeColor = System.Drawing.Color.Gold; + this.lbSID0.Location = new System.Drawing.Point(102, 122); + this.lbSID0.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); + this.lbSID0.Name = "lbSID0"; + this.lbSID0.Size = new System.Drawing.Size(135, 19); + this.lbSID0.TabIndex = 16; + this.lbSID0.Tag = ""; + this.lbSID0.Text = "-- Original Data --"; + this.lbSID0.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // tbpartno + // + this.tbpartno.Font = new System.Drawing.Font("맑은 고딕", 13F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tbpartno.Location = new System.Drawing.Point(102, 211); + this.tbpartno.Margin = new System.Windows.Forms.Padding(5, 8, 5, 8); + this.tbpartno.Name = "tbpartno"; + this.tbpartno.Size = new System.Drawing.Size(239, 31); + this.tbpartno.TabIndex = 15; + this.tbpartno.Tag = "PARTNO"; + this.tbpartno.Click += new System.EventHandler(this.tbDate_Click); + // + // btSidConv + // + this.btSidConv.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btSidConv.Location = new System.Drawing.Point(399, 89); + this.btSidConv.Name = "btSidConv"; + this.btSidConv.Size = new System.Drawing.Size(82, 32); + this.btSidConv.TabIndex = 11; + this.btSidConv.Text = "SID전환"; + this.btSidConv.UseVisualStyleBackColor = true; + this.btSidConv.Click += new System.EventHandler(this.button3_Click); + // + // btNewID + // + this.btNewID.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btNewID.Location = new System.Drawing.Point(399, 36); + this.btNewID.Name = "btNewID"; + this.btNewID.Size = new System.Drawing.Size(82, 50); + this.btNewID.TabIndex = 9; + this.btNewID.Text = "생성"; + this.btNewID.UseVisualStyleBackColor = true; + this.btNewID.Click += new System.EventHandler(this.btNewID_Click); + // + // btChkQty + // + this.btChkQty.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btChkQty.Location = new System.Drawing.Point(399, 122); + this.btChkQty.Name = "btChkQty"; + this.btChkQty.Size = new System.Drawing.Size(142, 51); + this.btChkQty.TabIndex = 8; + this.btChkQty.Text = "서버 수량 체크"; + this.btChkQty.UseVisualStyleBackColor = true; + this.btChkQty.Click += new System.EventHandler(this.btReqQty_Click); + // + // button9 + // + this.button9.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button9.Location = new System.Drawing.Point(116, 193); + this.button9.Name = "button9"; + this.button9.Size = new System.Drawing.Size(96, 31); + this.button9.TabIndex = 31; + this.button9.Text = "선택"; + this.button9.UseVisualStyleBackColor = true; + this.button9.Click += new System.EventHandler(this.button9_Click); + // + // linkLabel8 + // + this.linkLabel8.AutoSize = true; + this.linkLabel8.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.linkLabel8.Location = new System.Drawing.Point(13, 76); + this.linkLabel8.Name = "linkLabel8"; + this.linkLabel8.Size = new System.Drawing.Size(126, 21); + this.linkLabel8.TabIndex = 28; + this.linkLabel8.TabStop = true; + this.linkLabel8.Text = "Customer Code"; + this.linkLabel8.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel8_LinkClicked); + // + // TbCustCode + // + this.TbCustCode.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.TbCustCode.Font = new System.Drawing.Font("맑은 고딕", 11F); + this.TbCustCode.Location = new System.Drawing.Point(13, 104); + this.TbCustCode.Margin = new System.Windows.Forms.Padding(5, 8, 5, 8); + this.TbCustCode.Name = "TbCustCode"; + this.TbCustCode.Size = new System.Drawing.Size(199, 27); + this.TbCustCode.TabIndex = 27; + this.TbCustCode.Tag = "SUPPLY"; + // + // btCustomAutoInput + // + this.btCustomAutoInput.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.btCustomAutoInput.Location = new System.Drawing.Point(13, 193); + this.btCustomAutoInput.Name = "btCustomAutoInput"; + this.btCustomAutoInput.Size = new System.Drawing.Size(97, 31); + this.btCustomAutoInput.TabIndex = 26; + this.btCustomAutoInput.Text = "자동입력"; + this.btCustomAutoInput.UseVisualStyleBackColor = true; + this.btCustomAutoInput.Click += new System.EventHandler(this.btCustAutoInput_Click); + // + // panel4 + // + this.panel4.Controls.Add(this.tableLayoutPanel1); + this.panel4.Controls.Add(this.tabControl1); + this.panel4.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel4.Location = new System.Drawing.Point(10, 355); + this.panel4.Name = "panel4"; + this.panel4.Size = new System.Drawing.Size(776, 484); + this.panel4.TabIndex = 24; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.tableLayoutPanel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.tableLayoutPanel1.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.Single; + this.tableLayoutPanel1.ColumnCount = 3; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33332F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F)); + this.tableLayoutPanel1.Controls.Add(this.label2, 1, 2); + this.tableLayoutPanel1.Controls.Add(this.pb8, 1, 1); + this.tableLayoutPanel1.Controls.Add(this.pb2, 1, 3); + this.tableLayoutPanel1.Controls.Add(this.pb4, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.pb6, 2, 2); + this.tableLayoutPanel1.Controls.Add(this.pb7, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.pb9, 2, 1); + this.tableLayoutPanel1.Controls.Add(this.pb3, 2, 3); + this.tableLayoutPanel1.Controls.Add(this.pb1, 0, 3); + this.tableLayoutPanel1.Controls.Add(this.label26, 0, 0); + this.tableLayoutPanel1.Location = new System.Drawing.Point(582, 3); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 4; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(191, 191); + this.tableLayoutPanel1.TabIndex = 21; + // + // label2 + // + this.label2.Dock = System.Windows.Forms.DockStyle.Fill; + this.label2.Font = new System.Drawing.Font("Calibri", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label2.ForeColor = System.Drawing.Color.White; + this.label2.Location = new System.Drawing.Point(67, 88); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(56, 50); + this.label2.TabIndex = 22; + this.label2.Tag = "4"; + this.label2.Text = "♣"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.label2.Click += new System.EventHandler(this.label2_Click_1); + // + // pb8 + // + this.pb8.Dock = System.Windows.Forms.DockStyle.Fill; + this.pb8.Font = new System.Drawing.Font("Calibri", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.pb8.ForeColor = System.Drawing.Color.White; + this.pb8.Location = new System.Drawing.Point(67, 37); + this.pb8.Name = "pb8"; + this.pb8.Size = new System.Drawing.Size(56, 50); + this.pb8.TabIndex = 0; + this.pb8.Tag = "8"; + this.pb8.Text = "↑"; + this.pb8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.pb8.Click += new System.EventHandler(this.label22_Click); + // + // pb2 + // + this.pb2.Dock = System.Windows.Forms.DockStyle.Fill; + this.pb2.Font = new System.Drawing.Font("Calibri", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.pb2.ForeColor = System.Drawing.Color.White; + this.pb2.Location = new System.Drawing.Point(67, 139); + this.pb2.Name = "pb2"; + this.pb2.Size = new System.Drawing.Size(56, 51); + this.pb2.TabIndex = 0; + this.pb2.Tag = "2"; + this.pb2.Text = "↓"; + this.pb2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.pb2.Click += new System.EventHandler(this.label22_Click); + // + // pb4 + // + this.pb4.Dock = System.Windows.Forms.DockStyle.Fill; + this.pb4.Font = new System.Drawing.Font("Calibri", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.pb4.ForeColor = System.Drawing.Color.White; + this.pb4.Location = new System.Drawing.Point(4, 88); + this.pb4.Name = "pb4"; + this.pb4.Size = new System.Drawing.Size(56, 50); + this.pb4.TabIndex = 0; + this.pb4.Tag = "4"; + this.pb4.Text = "←"; + this.pb4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.pb4.Click += new System.EventHandler(this.label22_Click); + // + // pb6 + // + this.pb6.Dock = System.Windows.Forms.DockStyle.Fill; + this.pb6.Font = new System.Drawing.Font("Calibri", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.pb6.ForeColor = System.Drawing.Color.White; + this.pb6.Location = new System.Drawing.Point(130, 88); + this.pb6.Name = "pb6"; + this.pb6.Size = new System.Drawing.Size(57, 50); + this.pb6.TabIndex = 0; + this.pb6.Tag = "6"; + this.pb6.Text = "→"; + this.pb6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.pb6.Click += new System.EventHandler(this.label22_Click); + // + // pb7 + // + this.pb7.Dock = System.Windows.Forms.DockStyle.Fill; + this.pb7.Font = new System.Drawing.Font("Calibri", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.pb7.ForeColor = System.Drawing.Color.White; + this.pb7.Location = new System.Drawing.Point(4, 37); + this.pb7.Name = "pb7"; + this.pb7.Size = new System.Drawing.Size(56, 50); + this.pb7.TabIndex = 0; + this.pb7.Tag = "7"; + this.pb7.Text = "↖"; + this.pb7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.pb7.Click += new System.EventHandler(this.label22_Click); + // + // pb9 + // + this.pb9.Dock = System.Windows.Forms.DockStyle.Fill; + this.pb9.Font = new System.Drawing.Font("Calibri", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.pb9.ForeColor = System.Drawing.Color.White; + this.pb9.Location = new System.Drawing.Point(130, 37); + this.pb9.Name = "pb9"; + this.pb9.Size = new System.Drawing.Size(57, 50); + this.pb9.TabIndex = 0; + this.pb9.Tag = "9"; + this.pb9.Text = "↗"; + this.pb9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.pb9.Click += new System.EventHandler(this.label22_Click); + // + // pb3 + // + this.pb3.Dock = System.Windows.Forms.DockStyle.Fill; + this.pb3.Font = new System.Drawing.Font("Calibri", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.pb3.ForeColor = System.Drawing.Color.White; + this.pb3.Location = new System.Drawing.Point(130, 139); + this.pb3.Name = "pb3"; + this.pb3.Size = new System.Drawing.Size(57, 51); + this.pb3.TabIndex = 0; + this.pb3.Tag = "3"; + this.pb3.Text = "↘"; + this.pb3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.pb3.Click += new System.EventHandler(this.label22_Click); + // + // pb1 + // + this.pb1.Dock = System.Windows.Forms.DockStyle.Fill; + this.pb1.Font = new System.Drawing.Font("Calibri", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.pb1.ForeColor = System.Drawing.Color.White; + this.pb1.Location = new System.Drawing.Point(4, 139); + this.pb1.Name = "pb1"; + this.pb1.Size = new System.Drawing.Size(56, 51); + this.pb1.TabIndex = 0; + this.pb1.Tag = "1"; + this.pb1.Text = "↙"; + this.pb1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.pb1.Click += new System.EventHandler(this.label22_Click); + // + // label26 + // + this.label26.BackColor = System.Drawing.Color.Gold; + this.tableLayoutPanel1.SetColumnSpan(this.label26, 3); + this.label26.Dock = System.Windows.Forms.DockStyle.Fill; + this.label26.Font = new System.Drawing.Font("맑은 고딕", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label26.Location = new System.Drawing.Point(1, 1); + this.label26.Margin = new System.Windows.Forms.Padding(0); + this.label26.Name = "label26"; + this.label26.Size = new System.Drawing.Size(189, 35); + this.label26.TabIndex = 10; + this.label26.Text = "부착위치"; + this.label26.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.label26.Click += new System.EventHandler(this.label26_Click); + // + // tabControl1 + // + this.tabControl1.Controls.Add(this.tabPage1); + this.tabControl1.Controls.Add(this.tabPage2); + this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tabControl1.Location = new System.Drawing.Point(0, 0); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(776, 484); + this.tabControl1.TabIndex = 22; + // + // tabPage1 + // + this.tabPage1.Controls.Add(this.ivF); + this.tabPage1.Location = new System.Drawing.Point(4, 39); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(3); + this.tabPage1.Size = new System.Drawing.Size(768, 441); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "Front Image"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // ivF + // + this.ivF.arDebugMessageColor = System.Drawing.Color.SkyBlue; + this.ivF.arInsertROI = false; + this.ivF.arROIDrawColor = System.Drawing.Color.Lime; + this.ivF.arSceanBColor = System.Drawing.Color.Black; + this.ivF.arSceanFColor = System.Drawing.Color.White; + this.ivF.arSceanMessage = null; + this.ivF.arShowCrossLine = false; + this.ivF.arShowDebugMessage = false; + this.ivF.arUseROIControl = false; + this.ivF.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(0)))), ((int)(((byte)(64))))); + this.ivF.Dock = System.Windows.Forms.DockStyle.Fill; + this.ivF.ImageSize = new System.Drawing.Size(0, 0); + this.ivF.isRunZoomFit = false; + this.ivF.Location = new System.Drawing.Point(3, 3); + this.ivF.MotorPosition = ((System.Drawing.PointF)(resources.GetObject("ivF.MotorPosition"))); + this.ivF.Name = "ivF"; + this.ivF.NoImageMessage = ""; + this.ivF.Resolution = ((System.Drawing.PointF)(resources.GetObject("ivF.Resolution"))); + this.ivF.ShowMouseTracking = false; + this.ivF.Size = new System.Drawing.Size(762, 435); + this.ivF.TabIndex = 2; + this.ivF.TabStop = false; + // + // tabPage2 + // + this.tabPage2.Controls.Add(this.ivR); + this.tabPage2.Location = new System.Drawing.Point(4, 39); + this.tabPage2.Name = "tabPage2"; + this.tabPage2.Padding = new System.Windows.Forms.Padding(3); + this.tabPage2.Size = new System.Drawing.Size(768, 490); + this.tabPage2.TabIndex = 1; + this.tabPage2.Text = "Rear Image"; + this.tabPage2.UseVisualStyleBackColor = true; + // + // ivR + // + this.ivR.arDebugMessageColor = System.Drawing.Color.SkyBlue; + this.ivR.arInsertROI = false; + this.ivR.arROIDrawColor = System.Drawing.Color.Lime; + this.ivR.arSceanBColor = System.Drawing.Color.Black; + this.ivR.arSceanFColor = System.Drawing.Color.White; + this.ivR.arSceanMessage = null; + this.ivR.arShowCrossLine = false; + this.ivR.arShowDebugMessage = false; + this.ivR.arUseROIControl = false; + this.ivR.BackColor = System.Drawing.Color.Navy; + this.ivR.Dock = System.Windows.Forms.DockStyle.Fill; + this.ivR.ImageSize = new System.Drawing.Size(0, 0); + this.ivR.isRunZoomFit = false; + this.ivR.Location = new System.Drawing.Point(3, 3); + this.ivR.MotorPosition = ((System.Drawing.PointF)(resources.GetObject("ivR.MotorPosition"))); + this.ivR.Name = "ivR"; + this.ivR.NoImageMessage = ""; + this.ivR.Resolution = ((System.Drawing.PointF)(resources.GetObject("ivR.Resolution"))); + this.ivR.ShowMouseTracking = false; + this.ivR.Size = new System.Drawing.Size(762, 484); + this.ivR.TabIndex = 23; + this.ivR.TabStop = false; + // + // linkLabel6 + // + this.linkLabel6.AutoSize = true; + this.linkLabel6.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.linkLabel6.Location = new System.Drawing.Point(13, 20); + this.linkLabel6.Name = "linkLabel6"; + this.linkLabel6.Size = new System.Drawing.Size(112, 21); + this.linkLabel6.TabIndex = 23; + this.linkLabel6.TabStop = true; + this.linkLabel6.Text = "Vender Name"; + this.linkLabel6.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel6_LinkClicked); + // + // tbVName + // + this.tbVName.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tbVName.Location = new System.Drawing.Point(13, 48); + this.tbVName.Margin = new System.Windows.Forms.Padding(5, 8, 5, 8); + this.tbVName.Name = "tbVName"; + this.tbVName.Size = new System.Drawing.Size(199, 27); + this.tbVName.TabIndex = 13; + this.tbVName.Tag = "SUPPLY"; + this.tbVName.Click += new System.EventHandler(this.tbDate_Click); + this.tbVName.TextChanged += new System.EventHandler(this.tbSupply_TextChanged); + // + // panel1 + // + this.panel1.Dock = System.Windows.Forms.DockStyle.Right; + this.panel1.Location = new System.Drawing.Point(801, 5); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(5, 871); + this.panel1.TabIndex = 9; + // + // panel2 + // + this.panel2.Controls.Add(this.panel4); + this.panel2.Controls.Add(this.panel5); + this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel2.Location = new System.Drawing.Point(5, 5); + this.panel2.Name = "panel2"; + this.panel2.Padding = new System.Windows.Forms.Padding(10); + this.panel2.Size = new System.Drawing.Size(796, 849); + this.panel2.TabIndex = 10; + // + // panel5 + // + this.panel5.Controls.Add(this.groupBox2); + this.panel5.Controls.Add(this.groupBox3); + this.panel5.Controls.Add(this.panel6); + this.panel5.Dock = System.Windows.Forms.DockStyle.Top; + this.panel5.Location = new System.Drawing.Point(10, 10); + this.panel5.Name = "panel5"; + this.panel5.Size = new System.Drawing.Size(776, 345); + this.panel5.TabIndex = 35; + // + // groupBox3 + // + this.groupBox3.Controls.Add(this.button5); + this.groupBox3.Controls.Add(this.linkLabel9); + this.groupBox3.Controls.Add(this.tbCustName); + this.groupBox3.Controls.Add(this.tbVName); + this.groupBox3.Controls.Add(this.button9); + this.groupBox3.Controls.Add(this.linkLabel6); + this.groupBox3.Controls.Add(this.linkLabel8); + this.groupBox3.Controls.Add(this.TbCustCode); + this.groupBox3.Controls.Add(this.btCustomAutoInput); + this.groupBox3.Dock = System.Windows.Forms.DockStyle.Right; + this.groupBox3.Location = new System.Drawing.Point(556, 0); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size(220, 297); + this.groupBox3.TabIndex = 32; + this.groupBox3.TabStop = false; + this.groupBox3.Enter += new System.EventHandler(this.groupBox3_Enter); + // + // button5 + // + this.button5.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.button5.Location = new System.Drawing.Point(161, 17); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(52, 31); + this.button5.TabIndex = 34; + this.button5.Text = "N/A"; + this.button5.UseVisualStyleBackColor = true; + this.button5.Click += new System.EventHandler(this.button5_Click_2); + // + // linkLabel9 + // + this.linkLabel9.AutoSize = true; + this.linkLabel9.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.linkLabel9.Location = new System.Drawing.Point(13, 133); + this.linkLabel9.Name = "linkLabel9"; + this.linkLabel9.Size = new System.Drawing.Size(130, 21); + this.linkLabel9.TabIndex = 33; + this.linkLabel9.TabStop = true; + this.linkLabel9.Text = "Customer Name"; + this.linkLabel9.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel9_LinkClicked); + // + // tbCustName + // + this.tbCustName.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.tbCustName.Font = new System.Drawing.Font("맑은 고딕", 11F); + this.tbCustName.Location = new System.Drawing.Point(13, 161); + this.tbCustName.Margin = new System.Windows.Forms.Padding(5, 8, 5, 8); + this.tbCustName.Name = "tbCustName"; + this.tbCustName.Size = new System.Drawing.Size(199, 27); + this.tbCustName.TabIndex = 32; + this.tbCustName.Tag = "SUPPLY"; + // + // panel6 + // + this.panel6.Controls.Add(this.button3); + this.panel6.Controls.Add(this.button1); + this.panel6.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel6.Location = new System.Drawing.Point(0, 297); + this.panel6.Name = "panel6"; + this.panel6.Size = new System.Drawing.Size(776, 48); + this.panel6.TabIndex = 0; + // + // button3 + // + this.button3.Dock = System.Windows.Forms.DockStyle.Fill; + this.button3.Font = new System.Drawing.Font("맑은 고딕", 11.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button3.Location = new System.Drawing.Point(0, 0); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(401, 48); + this.button3.TabIndex = 34; + this.button3.Text = "작업 결과에서 데이터 자동 입력"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click_1); + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Right; + this.button1.Font = new System.Drawing.Font("맑은 고딕", 11.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button1.Location = new System.Drawing.Point(401, 0); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(375, 48); + this.button1.TabIndex = 33; + this.button1.Text = "작업 결과에서 데이터를 선택 합니다"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click_1); + // + // tmAutoConfirm + // + this.tmAutoConfirm.Interval = 500; + this.tmAutoConfirm.Tick += new System.EventHandler(this.tmAutoConfirm_Tick); + // + // statusStrip1 + // + this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripStatusLabel1}); + this.statusStrip1.Location = new System.Drawing.Point(5, 854); + this.statusStrip1.Name = "statusStrip1"; + this.statusStrip1.Size = new System.Drawing.Size(796, 22); + this.statusStrip1.TabIndex = 11; + this.statusStrip1.Text = "statusStrip1"; + // + // toolStripStatusLabel1 + // + this.toolStripStatusLabel1.Name = "toolStripStatusLabel1"; + this.toolStripStatusLabel1.Size = new System.Drawing.Size(121, 17); + this.toolStripStatusLabel1.Text = "toolStripStatusLabel1"; + // + // lnkBatch + // + this.lnkBatch.AutoSize = true; + this.lnkBatch.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lnkBatch.Location = new System.Drawing.Point(40, 251); + this.lnkBatch.Name = "lnkBatch"; + this.lnkBatch.Size = new System.Drawing.Size(57, 20); + this.lnkBatch.TabIndex = 34; + this.lnkBatch.TabStop = true; + this.lnkBatch.Text = "BATCH"; + this.lnkBatch.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lnkBatch_LinkClicked); + // + // tbBatch + // + this.tbBatch.Font = new System.Drawing.Font("맑은 고딕", 13F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tbBatch.Location = new System.Drawing.Point(102, 246); + this.tbBatch.Margin = new System.Windows.Forms.Padding(5, 8, 5, 8); + this.tbBatch.Name = "tbBatch"; + this.tbBatch.Size = new System.Drawing.Size(222, 31); + this.tbBatch.TabIndex = 33; + this.tbBatch.Tag = "PARTNO"; + // + // linkLabel10 + // + this.linkLabel10.AutoSize = true; + this.linkLabel10.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.linkLabel10.Location = new System.Drawing.Point(328, 250); + this.linkLabel10.Name = "linkLabel10"; + this.linkLabel10.Size = new System.Drawing.Size(66, 20); + this.linkLabel10.TabIndex = 36; + this.linkLabel10.TabStop = true; + this.linkLabel10.Text = "MaxQTY"; + this.linkLabel10.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel10_LinkClicked); + // + // tbQtyMax + // + this.tbQtyMax.Font = new System.Drawing.Font("맑은 고딕", 13F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tbQtyMax.Location = new System.Drawing.Point(399, 245); + this.tbQtyMax.Margin = new System.Windows.Forms.Padding(5, 8, 5, 8); + this.tbQtyMax.Name = "tbQtyMax"; + this.tbQtyMax.Size = new System.Drawing.Size(142, 31); + this.tbQtyMax.TabIndex = 35; + this.tbQtyMax.Tag = "PARTNO"; + // + // fLoaderInfo + // + this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 30F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1184, 881); + this.Controls.Add(this.panel2); + this.Controls.Add(this.statusStrip1); + this.Controls.Add(this.panel1); + this.Controls.Add(this.groupBox1); + this.DoubleBuffered = true; + this.Font = new System.Drawing.Font("맑은 고딕", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.Margin = new System.Windows.Forms.Padding(5, 8, 5, 8); + this.Name = "fLoaderInfo"; + this.Padding = new System.Windows.Forms.Padding(5); + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Barcode Data Element"; + this.Load += new System.EventHandler(this.fLoaderInfo_Load); + this.groupBox1.ResumeLayout(false); + this.cmbarc.ResumeLayout(false); + this.panel7.ResumeLayout(false); + this.panel7.PerformLayout(); + this.panel3.ResumeLayout(false); + this.groupBox2.ResumeLayout(false); + this.groupBox2.PerformLayout(); + this.panel4.ResumeLayout(false); + this.tableLayoutPanel1.ResumeLayout(false); + this.tabControl1.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.ivF)).EndInit(); + this.tabPage2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.ivR)).EndInit(); + this.panel2.ResumeLayout(false); + this.panel5.ResumeLayout(false); + this.groupBox3.ResumeLayout(false); + this.groupBox3.PerformLayout(); + this.panel6.ResumeLayout(false); + this.statusStrip1.ResumeLayout(false); + this.statusStrip1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private System.Windows.Forms.TextBox tbSID; + private System.Windows.Forms.TextBox tbVLOT; + private System.Windows.Forms.TextBox tbQTY; + private System.Windows.Forms.TextBox tbMFG; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.ListView lvbcdList; + private System.Windows.Forms.ColumnHeader columnHeader1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.TextBox tbRID; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.Button btChkQty; + private System.Windows.Forms.Button btNewID; + private arCtl.ImageBox ivF; + private System.Windows.Forms.Button btSidConv; + private System.Windows.Forms.TextBox tbVName; + private System.Windows.Forms.TextBox tbpartno; + private System.Windows.Forms.Label lbQTY0; + private System.Windows.Forms.Label lbSID0; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Label pb8; + private System.Windows.Forms.Label pb2; + private System.Windows.Forms.Label pb4; + private System.Windows.Forms.Label pb6; + private System.Windows.Forms.Label pb7; + private System.Windows.Forms.Label pb9; + private System.Windows.Forms.Label pb3; + private System.Windows.Forms.Label pb1; + private System.Windows.Forms.Label label26; + private System.Windows.Forms.Panel panel3; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Button btDateSelecte; + private System.Windows.Forms.ColumnHeader columnHeader4; + private System.Windows.Forms.LinkLabel linkLabel1; + private System.Windows.Forms.LinkLabel linkLabel7; + private System.Windows.Forms.LinkLabel linkLabel6; + private System.Windows.Forms.LinkLabel linkLabel5; + private System.Windows.Forms.LinkLabel linkLabel4; + private System.Windows.Forms.LinkLabel linkLabel3; + private System.Windows.Forms.LinkLabel linkLabel2; + private System.Windows.Forms.Panel panel4; + private System.Windows.Forms.Button btPartChk; + private System.Windows.Forms.Button btCustomAutoInput; + private System.Windows.Forms.LinkLabel linkLabel8; + private System.Windows.Forms.TextBox TbCustCode; + private System.Windows.Forms.Button tbSidFind; + private System.Windows.Forms.Button btIDChk; + private System.Windows.Forms.Button button9; + private System.Windows.Forms.GroupBox groupBox3; + private System.Windows.Forms.Button btOK; + private System.Windows.Forms.LinkLabel linkLabel9; + private System.Windows.Forms.TextBox tbCustName; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.ListBox lstErrmsg; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.Timer tmAutoConfirm; + private System.Windows.Forms.ContextMenuStrip cmbarc; + private System.Windows.Forms.ToolStripMenuItem 회전기준바코드로설정ToolStripMenuItem; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.StatusStrip statusStrip1; + private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel1; + private System.Windows.Forms.Panel panel5; + private System.Windows.Forms.Panel panel6; + private System.Windows.Forms.Label tbRID0; + private System.Windows.Forms.Button button5; + private arCtl.ImageBox ivR; + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.TabPage tabPage2; + private System.Windows.Forms.ColumnHeader columnHeader2; + private System.Windows.Forms.Panel panel7; + private System.Windows.Forms.TextBox tbBarcode; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.LinkLabel lnkBatch; + private System.Windows.Forms.TextBox tbBatch; + private System.Windows.Forms.LinkLabel linkLabel10; + private System.Windows.Forms.TextBox tbQtyMax; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/fLoaderInfo.cs b/Handler/Project/Dialog/fLoaderInfo.cs new file mode 100644 index 0000000..5f58d33 --- /dev/null +++ b/Handler/Project/Dialog/fLoaderInfo.cs @@ -0,0 +1,2372 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using AR; + +namespace Project.Dialog +{ + public partial class fLoaderInfo : Form + { + string PrintPos = ""; + + public fLoaderInfo(List errlist) + { + InitializeComponent(); + PUB.flag.set(eVarBool.FG_WAIT_LOADERINFO, true, "_LOAD"); + this.FormClosed += FLoaderInfo_FormClosed; + this.lstErrmsg.Items.Clear(); + this.WindowState = FormWindowState.Maximized; + this.label9.Text = "1D(11)"; + this.label10.Text = "QR(1)"; + this.label11.Text = "DataMatrix(2)"; + if (errlist != null) + { + + foreach (var item in errlist) + AddErrorMessage(item); + } + + } + + void AddErrorMessage(string msg) + { + if (this.lstErrmsg.InvokeRequired) + { + this.lstErrmsg.BeginInvoke(new Action(() => + { + //동일한 태그를 가진 항목이 존재하는가? + if (lstErrmsg.FindString(msg) < 0) + lstErrmsg.Items.Add(string.Format("{0}", msg)); + })); + } + else + { + //동일한 태그를 가진 항목이 존재하는가? + if (lstErrmsg.FindString(msg) < 0) + lstErrmsg.Items.Add(string.Format("{0}", msg)); + } + } + + private void FLoaderInfo_FormClosed(object sender, FormClosedEventArgs e) + { + //이미지해제 210329 + if (this.ivF.Image != null) + { + this.ivF.Image.Dispose(); + this.ivF.Image = null; + } + + PUB.flag.set(eVarBool.FG_WAIT_LOADERINFO, false, "_CLOSE"); + + PUB.Result.ItemDataC.VisionData.PropertyChanged -= VisionData_PropertyChanged; + + //사용자가 정보를 정확히 입력하지 않고 닫았다 + if (PUB.Result.ItemDataC.VisionData.Confirm == false) + { + if (PUB.sm.Step == eSMStep.RUN) + { + PUB.Result.SetResultMessage(eResult.OPERATION, eECode.INCOMPLETE_LOADERDATA, eNextStep.PAUSE, 1); + } + } + } + + private void fLoaderInfo_Load(object sender, EventArgs e) + { + //현재 바코드가 읽었단 자료를 모두 표시한다. + var item = PUB.Result.ItemDataC; + this.tbRID.Text = item.VisionData.RID; + this.tbRID0.Text = item.VisionData.RID0; + NewReelId = item.VisionData.RIDNew; + + lvbcdList.Columns.Clear(); + lvbcdList.Columns.Add("각도", 60); + lvbcdList.Columns.Add("값", 250); + lvbcdList.Columns.Add("*", 45); + + + //sid전환기능은 옵션의 상태값에 연결 + if (PUB.sm.Step != eSMStep.IDLE) + btSidConv.Enabled = VAR.BOOL[eVarBool.Opt_SIDConvert]; + + //if (Pub.Result.JobType == "13" ) + //{ + // if (Pub.Result.ItemData[1].VisionData.SID.StartsWith("103")) + // { + // tbSID.Text = Pub.Result.ItemData[1].VisionData.SID; + // } + // else + // { + // var msg = $"13작업이나 입력된 SID가 103이 아니여서 적용하지 않습니다. sid:{Pub.Result.ItemData[1].VisionData.SID}"; + // Pub.AddSystemLog(Application.ProductVersion, "LoaderInfo", msg); + // Pub.log.AddAT(msg); + // } + //} + //else + //{ + tbSID.Text = item.VisionData.SID; + lbSID0.Text = item.VisionData.SID0; + + if (lbSID0.Text.isEmpty() == false) + lbSID0.Tag = lbSID0.Text; + + tbVLOT.Text = item.VisionData.VLOT; + + //수량메뉴얼입력칸 + + + if (VAR.BOOL[eVarBool.Opt_UserQtyRQ]) + { + if (item.VisionData.QTYRQ == true) + { + //수동입력이나 바코드에서 RQ값이 들어있는 상태이니 그것을 사용한다. + //lock (Pub.Result.ItemData[1].VisionData.barcodelist) + { + var rqBcd = item.VisionData.barcodelist.Where(t => t.Value.Data.StartsWith("RQ")).FirstOrDefault(); + if (rqBcd.Value != null) + { + var newqty = rqBcd.Value.Data.Substring(2).Trim(); + PUB.log.Add($"수량업데이트 {tbQTY.Text}->{newqty}"); + tbQTY.Text = newqty; + } + else + { + PUB.log.AddAT("RQ가 설정되어있었으나 해당 값이 코드 목록에 없어 수량을 채우지 않습니다"); + } + } + + + + } + else + { + //수량을 직접입력하는 경우이므로 수량값을 지워버린다. + PUB.log.Add($"수량업데이트 {tbQTY.Text}-> (직접입력으로인한삭제)"); + tbQTY.Text = string.Empty; + } + } + else + { + PUB.log.Add($"수량업데이트 {tbQTY.Text}->{item.VisionData.QTY}"); + tbQTY.Text = item.VisionData.QTY; + } + + lbQTY0.Text = item.VisionData.QTY0; + tbMFG.Text = item.VisionData.MFGDATE; + tbVName.Text = item.VisionData.VNAME; + tbpartno.Text = item.VisionData.PARTNO; + + TbCustCode.Text = item.VisionData.CUSTCODE; //210317 + tbCustName.Text = item.VisionData.CUSTNAME; + tbBatch.Text = item.VisionData.BATCH; + tbQtyMax.Text = item.VisionData.QTYMAX; + + //라벨위치 정보표시 - 210127 -- delete(220706) + //DisplayLabelPos(PUB.Result.ItemData[1].VisionData.LabelPositionData); + + //프린트정보표시 + this.PrintPos = item.VisionData.PrintPositionData; + if (PUB.flag.get(eVarBool.Opt_DisablePrinter)) this.PrintPos = "8"; + if (this.PrintPos.isEmpty() && item.VisionData.SID.isEmpty() == false) + { + //프린트위치가없다면 서버를 조회하여 데이터를 찾아준다. - 231005 + var taresult = new DataSet1TableAdapters.Component_Reel_ResultTableAdapter(); + this.PrintPos = taresult.GetPrintPosition(AR.SETTING.Data.McName, item.VisionData.SID); + } + DisplayPrintPos(this.PrintPos); + + //이미지표시 210121 + this.ivF.Shapes.Clear(); + this.ivR.Shapes.Clear(); + if (item.VisionData.imageF != null) + { + //이미지복사해서사용 210329 + var keyImage = item.VisionData.imageF.Clone(); + this.ivF.Image = keyImage; + } + if (item.VisionData.imageR != null) + { + //이미지복사해서사용 210329 + var keyImage = item.VisionData.imageR.Clone(); + this.ivR.Image = keyImage; + } + this.lvbcdList.Items.Clear(); + + //키엔스로부터 읽은 바코드 목록을 표시한다(우측) + func_displaybcdlist(); + + if (ivF.Image != null) + ivF.ZoomFit(); + + if (ivR.Image != null) + ivR.ZoomFit(); + + selectInput(this.tbRID); + + //자동판단데이터 확인; (101-103d우선처리) + //이제 모든 sid변환은 1,3컬럼만 사용한다, 22-01-04 + if (PUB.Result.JobType2 == "13" && tbSID.Text.StartsWith("10")) func_sidconv(true); + + //기본값 적용 220712 + if (tbVName.Text.isEmpty()) + if (PUB.Result.vModel.Def_Vname.isEmpty() == false) + tbVName.Text = PUB.Result.vModel.Def_Vname; + + if (tbMFG.Text.isEmpty()) + if (PUB.Result.vModel.Def_MFG.isEmpty() == false) + tbMFG.Text = PUB.Result.vModel.Def_MFG; + + //자동완료이며, 사용자 확인이 off된상태, 수량입력도 false 된 상태여야함 + if (VAR.BOOL[eVarBool.Option_AutoConf] && + VAR.BOOL[eVarBool.Opt_UserConfim] == false && + VAR.BOOL[eVarBool.Opt_UserQtyRQ] == false && + PUB.Result.JobFirst == false) + { + //자료가 모두 있는지 확인한다. + tmAutoConfirm.Start(); + } + + + item.VisionData.PropertyChanged += VisionData_PropertyChanged; + } + + delegate void UpdateTextHandler(Control ctrl, string value); + public void UpdateText(Control ctrl, string value) + { + if (ctrl is Label || ctrl is TextBox) + { + if (ctrl.InvokeRequired) + { + ctrl.BeginInvoke(new UpdateTextHandler(UpdateText), new object[] { ctrl, value }); + } + else if (ctrl is Label) + ((Label)ctrl).Text = value; + else if (ctrl is TextBox) + ((TextBox)ctrl).Text = value; + } + + } + + private void VisionData_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + //값이 바뀌었으나 현재 값이 입력되지 않았따면 처리해준다. 220712 + var item = PUB.Result.ItemDataC; + + if (e.PropertyName.Equals("QTY0") && lbQTY0.Text.isEmpty()) + UpdateText(lbQTY0, item.VisionData.QTY0); + + if (e.PropertyName.Equals("QTY") && this.tbQTY.Text.isEmpty()) + UpdateText(tbQTY, item.VisionData.QTY); + + if (e.PropertyName.Equals("MFGDATE") && tbMFG.Text.isEmpty()) + UpdateText(tbMFG, item.VisionData.MFGDATE); + + if (e.PropertyName.Equals("VNAME") && tbVName.Text.isEmpty()) + UpdateText(tbVName, item.VisionData.VNAME); + + if (e.PropertyName.Equals("PARTNO") && tbpartno.Text.isEmpty()) + UpdateText(tbpartno, item.VisionData.PARTNO); + + if (e.PropertyName.Equals("CUSTCODE") && TbCustCode.Text.isEmpty()) + UpdateText(TbCustCode, item.VisionData.CUSTCODE); //210317 + + if (e.PropertyName.Equals("CUSTNAME") && tbCustName.Text.isEmpty()) + UpdateText(tbCustName, item.VisionData.CUSTNAME); + + if (e.PropertyName.Equals("SID") && tbSID.Text.isEmpty()) + UpdateText(tbSID, item.VisionData.SID); + + if (e.PropertyName.Equals("RID") && tbRID.Text.isEmpty()) + UpdateText(tbRID, item.VisionData.RID); + + if (e.PropertyName.Equals("RID0") && tbRID0.Text.isEmpty()) + UpdateText(tbRID0, item.VisionData.RID0); + + if (e.PropertyName.Equals("SID0") && lbSID0.Text.isEmpty()) + UpdateText(lbSID0, item.VisionData.SID0); + + if (e.PropertyName.Equals("VLOT") && tbVLOT.Text.isEmpty()) + UpdateText(tbVLOT, item.VisionData.VLOT); + } + + void func_displaybcdlist() + { + var itemc = PUB.Result.ItemDataC; + var angok = itemc.VisionData.BaseAngle(out string msg, out Class.KeyenceBarcodeData bcd); + lock (itemc.VisionData.barcodelist) + { + var no = 1; + lvbcdList.Items.Clear(); //기존꺼 삭제 + foreach (var bcddata in itemc.VisionData.barcodelist) + { + var item = bcddata.Value; + var lv = this.lvbcdList.Items.Add(item.Angle.ToString("N1")); + lv.SubItems.Add(item.Data); + lv.SubItems.Add(item.barcodeSymbol + item.barcodeSource); + //.SubItems.Add(item.barcodeSource); + //lv.SubItems.Add(item.CenterPX.X.ToString()); + //lv.SubItems.Add(item.CenterPX.Y.ToString()); + if (item.RegExConfirm) + { + if (item.RefExApply) + lv.ForeColor = Color.Blue; + else + lv.ForeColor = Color.Black; + } + else lv.ForeColor = Color.DimGray; + + if (item.barcodeSymbol == "1") lv.BackColor = Color.Gold; + else if (item.barcodeSymbol == "2") lv.BackColor = Color.Lime; + else lv.BackColor = Color.WhiteSmoke; + + //회전에 사용할 데이터라면 체크를 해준다. + if (angok && bcd.Data == item.Data) + { + if (this.lvbcdList.CheckedItems.Count == 0) + lv.Checked = true; + } + else lv.Checked = false; + + //vertext 표시 + var vt = item.vertex; + if (vt.Length == 4) + { + Color lcolor = no % 2 == 0 ? Color.Tomato : Color.Lime; + if (item.barcodeSource == "F") + { + ivF.AddShapeLine(vt[0], vt[1], lcolor); + ivF.AddShapeLine(vt[1], vt[2], lcolor); + ivF.AddShapeLine(vt[2], vt[3], lcolor); + ivF.AddShapeLine(vt[3], vt[0], lcolor); + ivF.AddShapeText(vt[0], no.ToString(), Color.Black); //210312 + } + else + { + ivR.AddShapeLine(vt[0], vt[1], lcolor); + ivR.AddShapeLine(vt[1], vt[2], lcolor); + ivR.AddShapeLine(vt[2], vt[3], lcolor); + ivR.AddShapeLine(vt[3], vt[0], lcolor); + ivR.AddShapeText(vt[0], no.ToString(), Color.Black); //210312 + } + + } + + //가장우측상단에 번호를 표시한다. + + + no += 1; + } + } + } + private void button1_Click(object sender, EventArgs e) + { + + } + + private void label6_Click(object sender, EventArgs e) + { + + } + + string TagStr = string.Empty; + void selectInput(Control c) + { + TagStr = string.Empty; + if (c is TextBox) + { + var tb = c as TextBox; + TagStr = tb.Tag.ToString(); + } + else if (c is Label) + { + var lb = c as Label; + TagStr = lb.Tag.ToString(); + } + + //동일태그를 가진 textbox 의 배경색을 업데이트한다 + foreach (Control tb in groupBox2.Controls) + { + if (tb is TextBox) + { + if (tb.Tag.ToString() == TagStr) + { + tb.BackColor = Color.SkyBlue; + } + else tb.BackColor = SystemColors.Control; + } + } + } + + private void button2_Click(object sender, EventArgs e) + { + //if (this.listView1.FocusedItem == null) + //{ + // Util.MsgE("입력할 바코드 값을 먼저 선택하세요"); + // return; + //} + if (this.TagStr.isEmpty()) + { + UTIL.MsgE("데이터를 입력할 칸을 먼저 클릭 하세요"); + return; + } + var lvitem = this.lvbcdList.FocusedItem; + if (lvitem == null) return; + + var lvValue = lvitem.SubItems[1].Text.Trim(); + if (lvValue.isEmpty()) + { + UTIL.MsgE("선택한 자료에 값이 없습니다\n\n다른 자료를 선택하세요"); + return; + } + + //선택자료가 ; 으로 분류가능하면 추가로 팝업 + if (lvValue.Split(';').Length > 1) + { + var ff = new Dialog.fSelectDataList(lvValue.Split(';')); + if (ff.ShowDialog() == DialogResult.OK) + { + lvValue = ff.SelectedValue; + } + else return; + } + else if (lvValue.Split(',').Length > 1) + { + var ff = new Dialog.fSelectDataList(lvValue.Split(',')); + if (ff.ShowDialog() == DialogResult.OK) + { + lvValue = ff.SelectedValue; + } + else return; + } + + if (TagStr == "RID" || TagStr == "ID") + { + tbRID.Text = lvValue; + } + else if (TagStr == "SID") + { + tbSID.Text = lvValue; + + //sid값을 적용했다면 프린트 위치도 확인한.다. + if (this.PrintPos.isEmpty() || this.PrintPos == "5" && lvValue.isEmpty() == false) + { + try + { + using (var ta = new DataSet1TableAdapters.Component_Reel_Print_InformationTableAdapter()) + { + var dr = ta.GetBySID(PUB.MCCode, lvValue).FirstOrDefault(); + if (dr != null) //자료가잇는 경우에만 적용 + { + this.PrintPos = dr.PrintPosition; + this.DisplayPrintPos(this.PrintPos); + } + } + } + catch (Exception ex) + { + UTIL.MsgE("SID:" + lvValue + " 의 인쇄위치값 불러오기 실패\n" + ex.Message); + } + } + } + else if (TagStr == "VLOT") + { + tbVLOT.Text = lvValue; + } + else if (TagStr == "QTY") + { + PUB.log.Add($"수량업데이트 {tbQTY.Text}->{lvValue}"); + tbQTY.Text = lvValue; + } + else if (TagStr == "MFGDATE") + { + tbMFG.Text = lvValue; + } + else if (TagStr == "SUPPLY") + { + tbVName.Text = lvValue; + } + else if (TagStr == "PARTNO") + { + tbpartno.Text = lvValue; + } + } + + private void button3_Click(object sender, EventArgs e) + { + CancleAutoConfirm(); + //Pub.Result.JobEndTime + //sid를 변경했다면 원본값은 sid0에 넣는다 + if (tbSID.Text.isEmpty()) + { + UTIL.MsgE("SID가 없습니다"); + tbSID.Focus(); + return; + } + func_sidconv(false); + } + + void CancleAutoConfirm() + { + if (VAR.BOOL[eVarBool.Option_AutoConf]) + { + btOK.Text = "◆ 입력 완료 ◆"; + tmAutoConfirm.Stop(); + } + } + + void func_sidconv(Boolean auto) + { + var sid = tbSID.Text.Trim(); + + + if (auto) + { + //데이터베이스에서 조회한다. + try + { + var dr = PUB.Result.DTSidConvert.Where(t => t.SIDFrom == sid); + if (dr.Any() == true) //변환테이블자료가 있다. + { + if (dr.Count() == 1) + { + //원본에 값이 없는경우에만 생성한다 + if (lbSID0.Text.isEmpty()) + { + lbSID0.Tag = tbSID.Text; //변환정보가 있으니 현재 정보를 원본의 값에 넣는다 + lbSID0.Text = tbSID.Text; //원본값 + } + tbSID.Text = dr.First().SIDTo; //변환된 값을 현재 값에 넣는다. + var drsid = dr.First(); + PUB.log.Add(string.Format("다음 SID 자동변환 {0}->{1}", drsid.SIDFrom, drsid.SIDTo)); + } + else + { + PUB.log.AddE(string.Format("SID 자동변환실패 {0}, 발견 SID변환정보 수량:{1}", sid, dr.Count())); + PUB.Result.DTSidConvertMultiList.Add(sid); + } + } + else + { + PUB.Result.DTSidConvertEmptyList.Add(sid); + PUB.log.Add(string.Format("SID자동변경실패 변환자료 없음 sid:{0}", sid)); + } + + } + catch (Exception ex) + { + PUB.log.AddE("SID변환작업실패 메세지:" + ex.Message); + } + } + else + { + var f = new Dialog.fNewSID(sid); + if (f.ShowDialog() != DialogResult.OK) return; + + if (lbSID0.Tag == null || lbSID0.Tag.ToString().isEmpty()) //기존에 변환된 정보가 있는가? + { + //원본값 백업 + lbSID0.Tag = tbSID.Text; + lbSID0.Text = tbSID.Text; + + //from & to + PUB.Result.LastSIDFrom = tbSID.Text.Trim(); + PUB.Result.LastSIDTo = f.NewSID.Trim(); + + PUB.log.Add($"sid수동선택으로 인해 마지막 기록을 입력합니다 from={PUB.Result.LastSIDFrom},to={PUB.Result.LastSIDTo}"); + } + + PUB.Result.LastSIDCnt = f.FindSIDCount; + tbSID.Text = f.NewSID; + } + + UpdateSID(auto); + makenewId(); + + } + + void makenewId() + { + //ID가 잘못되었다. + if (VAR.BOOL[eVarBool.Opt_NewReelID] && CheckRID() == false) + { + //릴 아이디가 잘못되었다면 새로 갱신한다 + var yy = DateTime.Now.ToString("yy"); + var m = DateTime.Now.Month.ToString("X"); + if (TbCustCode.Text.isEmpty()) + { + PUB.log.AddAT("Customer 값이 없어 reelid를 새로 생성하지 못했습니다"); + } + else + { + var newrid = AmkorReelID.MakeReelID(TbCustCode.Text, yy + m); + PUB.log.Add($"RID값을 자동 변경 했습니다 {tbRID.Text} -> {newrid}"); + //if(tbRID.Text.isEmpty()==false) tbri + tbRID.Text = newrid; + } + } + } + + + /// + /// 데이터베이스의 정보를 UI에 반영한다 + /// + /// + void UpdateSID(Boolean auto = false) + { + //고칠게 없다. + if (TbCustCode.Text.isEmpty() == false && tbpartno.Text.isEmpty() == false && this.PrintPos.isEmpty() == false) + { + return; + } + + //sid 가 변경되었으나 해당 sid 인쇄위치 및 customer / part no 값을 확인 합니다. + var taSID = new DataSet1TableAdapters.Component_Reel_SID_InformationTableAdapter(); + var taPRN = new DataSet1TableAdapters.Component_Reel_Print_InformationTableAdapter(); + + try + { + var sid = this.tbSID.Text.Trim(); + + var dr = taSID.GetBySID(PUB.MCCode, sid).FirstOrDefault();// db.Component_Reel_SID_Information.Where(t => t.SID == sid).FirstOrDefault(); + var drP = taPRN.GetBySID(PUB.MCCode, sid).FirstOrDefault(); + + if (dr == null) return; + + var msg = "SID 변경으로 인해 다음 자료를 입력할까요?"; + Boolean bupdate = false; + if (dr.CustCode.isEmpty() == false && dr.CustCode != TbCustCode.Text) + { + msg += "\nCustomer Code : " + dr.CustCode; + msg += "\nCustomer Name : " + dr.CustName; + bupdate = true; + } + + if (dr.PartNo.isEmpty() == false && dr.PartNo != tbpartno.Text)// tbpartno.Text.isEmpty()) + { + msg += "\nPart No : " + dr.PartNo; + bupdate = true; + } + + if (drP.PrintPosition.isEmpty() == false) + { + msg += "\nPrint Position : " + drP.PrintPosition; + bupdate = true; + } + if (bupdate == false) + { + //Util.MsgE("변경 가능한 자료가 없습니다"); + return; + } + + //화면에 표시 --자동화면일떄에는 묻지않고 적용한다 + if (auto == false && UTIL.MsgQ(msg) != DialogResult.Yes) return; + if (dr.CustCode.isEmpty() == false && TbCustCode.Text != dr.CustCode) + { + TbCustCode.Text = dr.CustCode; + tbCustName.Text = dr.CustName; + } + + if (dr.PartNo.isEmpty() == false && tbpartno.Text != dr.PartNo) + { + this.tbpartno.Text = dr.PartNo; + } + + if (drP.PrintPosition.isEmpty() == false) + { + this.PrintPos = drP.PrintPosition; + DisplayPrintPos(this.PrintPos); + } + + //이 SID의 최근 MFGDate 와 Qty 를 추가 체크한다 210326 + if (tbMFG.Text.isEmpty() || tbQTY.Text.isEmpty()) + { + func_CheckDateQty(); + } + } + catch (Exception ex) + { + PUB.log.AddE($"SID정보 업데이트 실패:{ex.Message}"); + } + taSID.Dispose(); + taPRN.Dispose(); + } + + Boolean func_CheckDateQty() + { + Boolean bwarn = false; + using (var db2 = new EEEntities()) + { + var sid = this.tbSID.Text.Trim(); + if (sid.isEmpty()) return false; //sid가 없다. + + //최근 6시간안에서 동일한 데이터를 찾아서 제안 해준다 + var sd = DateTime.Now.AddHours(-1); + var preData = db2.Component_Reel_Result.AsNoTracking().Where(t => + t.JTYPE == PUB.Result.JobType2 && + t.SID == sid && + string.IsNullOrEmpty(t.QR) == false && + t.STIME >= sd).OrderByDescending(t => t.wdate).FirstOrDefault(); + + //기존자료가 없다면 취소 + if (preData == null) return false; + var amkorid = new StdLabelPrint.CAmkorSTDBarcode(preData.QR); + + if (preData.VNAME != tbVName.Text) + { + //해당 mfgdae 가 바코드목록에 잇다면 바로 적용 + //업다면 적용하고 적용 메세지 표시한다 + //Pub.log.Add(string.Format("이전결과에서 값 업데이트 sid:{0},mfgdata={1}", sid, amkorid.MFGDate)); + tbVName.Text = preData.VNAME; + bwarn = true; + //if (func_existbcddata(amkorid.MFGDate) == false) + { + AddErrorMessage("V.Name 이전 기록으로 업데이트"); + PUB.log.Add("'V.Name' 값을 이전 기록을 통해서 입력했습니다\n" + + "이전 작업시간 : " + ((DateTime)(preData.wdate)).ToString("yyyy-MM-dd HH:mm:ss") + "\n" + + "SID : " + preData.SID + "\n" + + "MFG Date : " + amkorid.MFGDate + "\n" + + "Part No : " + amkorid.PARTNO + "\n" + + "Vender Lot : " + amkorid.VLOT + "\n" + + "Vender Name : " + amkorid.VENDERNAME + "\n" + + "QTY : " + amkorid.QTY.ToString(), true); + } + } + + + if (amkorid.MFGDate.isEmpty() == false && tbMFG.Text.isEmpty()) + { + //해당 mfgdae 가 바코드목록에 잇다면 바로 적용 + //업다면 적용하고 적용 메세지 표시한다 + //Pub.log.Add(string.Format("이전결과에서 값 업데이트 sid:{0},mfgdata={1}", sid, amkorid.MFGDate)); + tbMFG.Text = amkorid.MFGDate; + bwarn = true; + if (func_existbcddata(amkorid.MFGDate) == false) + { + AddErrorMessage("MFG 이전 기록으로 업데이트"); + PUB.log.Add("'MFG Date' 값을 이전 기록을 통해서 입력했습니다\n" + + "이전 작업시간 : " + ((DateTime)(preData.wdate)).ToString("yyyy-MM-dd HH:mm:ss") + "\n" + + "SID : " + preData.SID + "\n" + + "MFG Date : " + amkorid.MFGDate + "\n" + + "Part No : " + amkorid.PARTNO + "\n" + + "Vender Lot : " + amkorid.VLOT + "\n" + + "Vender Name : " + amkorid.VENDERNAME + "\n" + + "QTY : " + amkorid.QTY.ToString(), true); + } + } + + if (amkorid.QTY > 0 && tbQTY.Text.isEmpty()) + { + //해당 mfgdae 가 바코드목록에 잇다면 바로 적용 + //업다면 적용하고 적용 메세지 표시한다 + PUB.log.Add($"수량업데이트 {tbQTY.Text}->{amkorid.QTY}"); + tbQTY.Text = amkorid.QTY.ToString(); + //Pub.log.Add(string.Format("이전결과에서 값 업데이트 sid:{0},qty={1}", sid, amkorid.QTY)); + bwarn = true; + if (func_existbcddata(amkorid.QTY.ToString()) == false) + { + AddErrorMessage("QTY 이전 기록으로 업데이트"); + PUB.log.Add("'Qty' 값을 이전 기록을 통해서 입력했습니다\n" + + "이전 작업시간 : " + ((DateTime)(preData.wdate)).ToString("yyyy-MM-dd HH:mm:ss") + "\n" + + "SID : " + preData.SID + "\n" + + "MFG Date : " + amkorid.MFGDate + "\n" + + "Part No : " + amkorid.PARTNO + "\n" + + "Vender Lot : " + amkorid.VLOT + "\n" + + "Vender Name : " + amkorid.VENDERNAME + "\n" + + "QTY : " + amkorid.QTY.ToString(), true); + } + + } + + if (amkorid.PARTNO.isEmpty() == false && tbpartno.Text.isEmpty()) + { + //해당 mfgdae 가 바코드목록에 잇다면 바로 적용 + //업다면 적용하고 적용 메세지 표시한다 + tbpartno.Text = amkorid.PARTNO; + bwarn = true; + //Pub.log.Add(string.Format("이전결과에서 값 업데이트 sid:{0},PARTNO={1}", sid, amkorid.PARTNO)); + if (func_existbcddata(amkorid.PARTNO) == false) + { + AddErrorMessage("PartNo 이전 기록으로 업데이트"); + PUB.log.Add("'Part No' 값을 이전 기록을 통해서 입력했습니다\n" + + "이전 작업시간 : " + ((DateTime)(preData.wdate)).ToString("yyyy-MM-dd HH:mm:ss") + "\n" + + "SID : " + preData.SID + "\n" + + "MFG Date : " + amkorid.MFGDate + "\n" + + "Part No : " + amkorid.PARTNO + "\n" + + "Vender Lot : " + amkorid.VLOT + "\n" + + "Vender Name : " + amkorid.VENDERNAME + "\n" + + "QTY : " + amkorid.QTY.ToString(), true); + } + + } + + //Customer + if (amkorid.RID.Length > 10 && amkorid.RID.Substring(2, 4) != TbCustCode.Text.Trim()) + { + //해당 mfgdae 가 바코드목록에 잇다면 바로 적용 + //업다면 적용하고 적용 메세지 표시한다 + TbCustCode.Text = amkorid.RID.Substring(2, 4); + bwarn = true; + //Pub.log.Add(string.Format("이전결과에서 값 업데이트 sid:{0},VLOT={1}", sid, amkorid.VLOT)); + if (func_existbcddata(TbCustCode.Text) == false) + { + AddErrorMessage("Customer Code 이전 기록으로 업데이트"); + PUB.log.Add("'Customer Code' 값을 이전 기록을 통해서 입력했습니다\n" + + "이전 작업시간 : " + ((DateTime)(preData.wdate)).ToString("yyyy-MM-dd HH:mm:ss") + "\n" + + "SID : " + preData.SID + "\n" + + "MFG Date : " + amkorid.MFGDate + "\n" + + "Part No : " + amkorid.PARTNO + "\n" + + "Vender Lot : " + amkorid.VLOT + "\n" + + "Vender Name : " + amkorid.VENDERNAME + "\n" + + "QTY : " + amkorid.QTY.ToString(), true); + + + } + btCustomAutoInput.PerformClick(); + } + + + if (amkorid.VLOT.isEmpty() == false && tbVLOT.Text.isEmpty()) + { + //해당 mfgdae 가 바코드목록에 잇다면 바로 적용 + //업다면 적용하고 적용 메세지 표시한다 + tbVLOT.Text = amkorid.VLOT; + bwarn = true; + //Pub.log.Add(string.Format("이전결과에서 값 업데이트 sid:{0},VLOT={1}", sid, amkorid.VLOT)); + if (func_existbcddata(amkorid.VLOT) == false) + { + AddErrorMessage("VLOT 이전 기록으로 업데이트"); + PUB.log.Add("'Vender LOT' 값을 이전 기록을 통해서 입력했습니다\n" + + "이전 작업시간 : " + ((DateTime)(preData.wdate)).ToString("yyyy-MM-dd HH:mm:ss") + "\n" + + "SID : " + preData.SID + "\n" + + "MFG Date : " + amkorid.MFGDate + "\n" + + "Part No : " + amkorid.PARTNO + "\n" + + "Vender Lot : " + amkorid.VLOT + "\n" + + "Vender Name : " + amkorid.VENDERNAME + "\n" + + "QTY : " + amkorid.QTY.ToString(), true); + } + + } + + if (amkorid.VENDERNAME.isEmpty() == false && tbVName.Text.isEmpty()) + { + //해당 mfgdae 가 바코드목록에 잇다면 바로 적용 + //업다면 적용하고 적용 메세지 표시한다 + tbVName.Text = amkorid.VENDERNAME; + bwarn = true; + //Pub.log.Add(string.Format("이전결과에서 값 업데이트 sid:{0},VENDERNAME={1}", sid, amkorid.VENDERNAME)); + if (func_existbcddata(amkorid.VENDERNAME) == false) + { + AddErrorMessage("VNAME 이전 기록으로 업데이트"); + PUB.log.Add("'Vender Name' 값을 이전 기록을 통해서 입력했습니다\n" + + "이전 작업시간 : " + ((DateTime)(preData.wdate)).ToString("yyyy-MM-dd HH:mm:ss") + "\n" + + "SID : " + preData.SID + "\n" + + "MFG Date : " + amkorid.MFGDate + "\n" + + "Part No : " + amkorid.PARTNO + "\n" + + "Vender Lot : " + amkorid.VLOT + "\n" + + "Vender Name : " + amkorid.VENDERNAME + "\n" + + "QTY : " + amkorid.QTY.ToString(), true); + } + + } + } + return bwarn; + + } + /// + /// 키엔스 바코드 목록에서 해당 데이터가 있는지 체크합니다 + /// + /// + /// + Boolean func_existbcddata(string data) + { + var lv = lvbcdList.FindItemWithText(data); + return lv != null; + } + + private void btReqQty_Click(object sender, EventArgs e) + { + var msg = string.Empty; + var rid = tbRID.Text.Trim(); + if (rid.isEmpty()) + { + UTIL.MsgE("Reel ID 가 필요 합니다"); + return; + } + if (AR.SETTING.Data.OnlineMode == false) + { + UTIL.MsgE("오프라인 모드라 사용할 수 없습니다"); + return; + } + var cnt = (Amkor.RestfulService.get_stock_count(rid, out msg)); + if (cnt > 0) + { + var oldCnt = int.Parse(tbQTY.Text.Replace(",", "")); + var newCnt = (int)cnt; + if (oldCnt == newCnt) + { + //수량이 동일하니 처리하지 않는다 + } + else + { + //숫자가 달라지면? + if (UTIL.MsgQ(string.Format("수량을 변경하시겠습니까?\n현재:{0}\n서버:{1}", tbQTY.Text, newCnt)) == DialogResult.Yes) + { + PUB.log.Add($"수량업데이트 {tbQTY.Text}->{newCnt}"); + tbQTY.Text = newCnt.ToString(); + } + } + } + else + { + UTIL.MsgE("서버수량 확인 실패\n\n" + msg); + } + } + + private void tbSupply_TextChanged(object sender, EventArgs e) + { + + } + + + private void label13_Click(object sender, EventArgs e) + { + //라벨위치 + //라벨위치느느 클릭해서 고칠필요 없다 + } + + + private void label22_Click(object sender, EventArgs e) + { + //부착위치 + var lb = sender as Label; + PrintPos = lb.Tag.ToString(); + DisplayPrintPos(PrintPos); + } + + void DisplayPrintPos(string v) + { + var lbs = new Label[] { pb7, pb8, pb9, pb4, pb6, pb1, pb2, pb3 }; + foreach (Label item in lbs) + if (item.Tag.ToString() == v) item.BackColor = Color.Blue; + else item.BackColor = Color.FromArgb(64, 64, 64); + } + + + //라벨은 여러 위치에서 발견될 수 있다 + //void DisplayLabelPos(byte[] labelpos) + //{ + // var lbs = new Label[] { lbl1, lbl2, lbl3, lbl4, lbl6, lbl7, lbl8, lbl9 }; + // for (int i = 0; i < labelpos.Length; i++) + // lbs[i].BackColor = labelpos[i] > 0 ? Color.Blue : Color.FromArgb(64, 64, 64); + //} + + bool NewReelId = false; + private void btNewID_Click(object sender, EventArgs e) + { + var id = TbCustCode.Text; // string.Empty; + if (id.Length != 4) + { + UTIL.MsgE($"올바른 고객번호를 입력하세요\n" + + $"고객번호는 4자리여야 합니다\n" + + $"값 : {id}\n" + + $"길이 : {id.Length}"); + return; + } + //if (tbRID.Text.Length > 4) id = tbRID.Text.Substring(0, 4); + + //already check + bool MakeNewID = true; + if (tbRID0.Text.isEmpty() == false && tbRID.Text.isEmpty() == false) + { + if (UTIL.MsgQ($"현재 새로 생성된 ReelID 입니다. 다시 생성할까요?") != DialogResult.Yes) + { + MakeNewID = false; + } + } + + //웹서비스로 생성한다. + if (MakeNewID) + { + var newid = Amkor.RestfulService.Allocation_Unique_ReelID_AmkorSTD(id, "4", "A", out string err); + if (newid.isEmpty()) + { + UTIL.MsgE(err, true); + } + else + { + //remain original reel id + if (this.tbRID0.Text.isEmpty() && tbRID.Text.isEmpty() == false) + this.tbRID0.Text = tbRID.Text.Trim(); + + this.tbRID.Text = newid; + NewReelId = true; + + PUB.log.AddI($"New REELID:{newid}(LoaderInfo)"); + } + + } + + //var f = new Dialog.fNewReelID(id); + //if (f.ShowDialog() != DialogResult.OK) return; + //this.tbRID.Text = f.NewID; + + } + + private void tbDate_Click(object sender, EventArgs e) + { + selectInput(sender as TextBox); + } + + private void button4_Click(object sender, EventArgs e) + { + DateTime dt = DateTime.Now; + var dtstr = this.tbMFG.Text.Trim().Replace("-", "").Replace("/", ""); + if (dtstr.Length == 8) + { + dt = new DateTime( + int.Parse(dtstr.Substring(0, 4)), + int.Parse(dtstr.Substring(4, 2)), + int.Parse(dtstr.Substring(6, 2))); + } + + var f = new Dialog.fSelectDay(dt); + if (f.ShowDialog() == DialogResult.OK) + { + this.tbMFG.Text = f.dt.ToShortDateString(); + } + } + + private void groupBox2_Enter(object sender, EventArgs e) + { + + } + + private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + //클릭하면 입력창을 띄운다 + UTIL.TouchKeyShow(tbRID, "Input REEL ID"); + } + + private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + UTIL.TouchKeyShow(tbSID, "INPUT SID"); + } + + private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + UTIL.TouchKeyShow(tbVLOT, "INPUT VENDER LOT"); + } + + private void linkLabel4_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + UTIL.TouchKeyShow(tbQTY, "INPUT QTY"); + } + + private void linkLabel5_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + UTIL.TouchKeyShow(tbMFG, "INPUT MFG DATE"); + } + + private void linkLabel6_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + UTIL.TouchKeyShow(tbVName, "INPUT SUPPLY NAME"); + } + + private void linkLabel7_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + //tbpartno + UTIL.TouchKeyShow(tbpartno, "INPUT CUSTOMER PART NO."); + } + + private void btPart_Click(object sender, EventArgs e) + { + //파트번호자동입력(sid 를 가지고 테이블에서 찾는다) + if (tbSID.Text.isEmpty()) + { + UTIL.MsgE("SID값이 필요 합니다", true); + return; + } + var sid = tbSID.Text.Trim(); + using (var db = new DataSet1TableAdapters.Component_Reel_SID_InformationTableAdapter()) + { + var dr = db.GetBySID(PUB.MCCode, sid).FirstOrDefault(); + if (dr == null) + { + UTIL.MsgE("해당 SID로 등록된 정보가 없습니다"); + return; + } + + //파트번호가 잇어야 한다. + if (dr.PartNo != null || dr.PartNo.isEmpty()) + { + UTIL.MsgE("해당 SID에 Part No 의 값이 입력되지 않았습니다"); + return; + } + + var partno = dr.PartNo.Trim(); + if (tbpartno.Text.isEmpty()) tbpartno.Text = partno; + else + { + var dlg = UTIL.MsgQ(string.Format("Part NO 값을 변경 할까요?\n" + + "기존 : " + tbpartno.Text + "\n" + + "신규 : " + partno)); + if (dlg == DialogResult.Yes) tbpartno.Text = dr.PartNo; + } + } + + } + + private void btCustAutoInput_Click(object sender, EventArgs e) + { + using (var db = new DataSet1TableAdapters.Component_Reel_SID_InformationTableAdapter()) + { + ////서플라이코드가 있다면 그 코드값으로 가져온다 + //var custCode = TbCustCode.Text.Trim(); + //if (custCode.isEmpty() == false) + //{ + // var drCustCode = db.Component_Reel_SIDConv.Where(t => t.cust == custCode).FirstOrDefault(); + // if (drCustCode != null && drCustCode.manu.isEmpty() == false) + // { + // Pub.log.Add(string.Format("서플라이네임을 가져옴 값={0},코드={1}", drCustCode.manu, custCode)); + // tbVName.Text = drCustCode.manu; + // return; + // } + //} + + var sid = tbSID.Text.Trim(); + if (sid.isEmpty()) + { + UTIL.MsgE("SID값이 필요 합니다", true); + return; + } + + var dr = db.GetBySID(PUB.MCCode, sid).FirstOrDefault(); + if (dr == null || dr.CustCode.isEmpty()) + { + UTIL.MsgE("해당 SID로 등록된 정보가 없습니다"); + return; + } + + //찾은데이터에서 값을 확인한다. + //Util.MsgI(string.Format("Customer/Vender 정보가 업데이트 되었습니다\n" + + // "Customer : {0}\n" + + // "Customer Name : {1}\n" + + // "Vender Name : {2}", dr.CustCode, dr.CustName, dr.VenderName)); + + //벤더네임은 vlot값을 가지고 한다. 210504 + var vlot = this.tbVLOT.Text.Trim(); + if (vlot.isEmpty() == false) + { + using (var taResult = new DataSet1TableAdapters.Component_Reel_ResultTableAdapter()) + { + var dr2 = taResult.GetByLastVLotOne(AR.SETTING.Data.McName, vlot).FirstOrDefault(); + if (dr2 != null) + { + tbVName.Text = dr2.VNAME; + } + } + } + TbCustCode.Text = dr.CustCode; + tbCustName.Text = dr.CustName; + + } + + + } + + private void linkLabel8_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + UTIL.TouchKeyShow(TbCustCode, "INPUT SUPPLY CODE"); + } + + private void button7_Click(object sender, EventArgs e) + { + //진수석님 데이터에서 찾아본다. + var custcode = TbCustCode.Text.Trim(); + var partno = tbpartno.Text.Trim(); + if (partno.isEmpty()) + { + UTIL.MsgE("SID 를 찾기 위해서는 다음 정보가 필요 합니다\n" + + "1. Part No"); + return; + } + + //각 상황에 따라 다르다. + using (var db = new DataSet1TableAdapters.Component_Reel_SID_InformationTableAdapter()) + { + var amksid = string.Empty; + var dtSIDInfo = db.GetData(PUB.MCCode); + + if (custcode.isEmpty() == false && partno.isEmpty() == false) + { + var dr = dtSIDInfo.Where(t => t.CustCode == custcode && t.PartNo == partno && string.IsNullOrEmpty(t.SID) == false).FirstOrDefault(); + if (dr != null && dr.SID.isEmpty() == false) + { + amksid = dr.SID; + } + else + { + UTIL.MsgE("등록된 Customer Code /Part No 에 해당되는 SID를 확인할 수 없습니다\n" + + "Customer Code : " + custcode + "\n" + + "Part No : " + partno); + return; + } + } + else if (custcode.isEmpty() == false) + { + var drow = dtSIDInfo.Where(t => t.CustCode == custcode && string.IsNullOrEmpty(t.SID) == false).ToList(); + if (drow == null || drow.Count < 1) + { + UTIL.MsgE("등록된 Customer Code 에 해당되는 SID를 확인할 수 없습니다\nCustomer : " + custcode); + return; + } + var f = new fSelectDataList(drow.Select(t => t.SID).ToArray()); + if (f.ShowDialog() == DialogResult.OK) + { + amksid = f.SelectedValue; + } + else + { + UTIL.MsgE("사용자 선택이 취소 되었습니다"); + return; + } + } + else if (partno.isEmpty() == false) + { + var drow = dtSIDInfo.Where(t => t.PartNo == partno && string.IsNullOrEmpty(t.SID) == false).ToList(); + if (drow == null || drow.Count < 1) + { + UTIL.MsgE("등록된 Part No 에 해당되는 SID를 확인할 수 없습니다\n" + "Part No : " + partno); + return; + } + + var sidarr = drow.Select(t => t.SID).ToList(); + var lst = new List(); + foreach (var item in sidarr) + { + var m101 = string.Empty; + var m103 = item.Trim(); + var m106 = string.Empty; + lst.Add(m101 + ";" + m103 + ";" + m106); + } + var f = new Dialog.fSelectSID(lst); + if (f.ShowDialog() == DialogResult.OK) + { + var returndata = f.Value.Split(';'); + amksid = returndata[1].Trim(); + } + else + { + UTIL.MsgE("사용자 선택이 취소 되었습니다"); + return; + } + } + + if (amksid.isEmpty() == false) + { + PUB.log.Add(string.Format("amkor SId찾기 code={0},part={1},sid={2}", custcode, partno, amksid)); + tbSID.Text = amksid; + UpdateSID(); + makenewId(); + } + else + { + PUB.log.Add(string.Format("검색된 SID가 없어 sid찾기가 실패 했습니다\n" + + "Cust:{0}\n" + + "PartNo:{1}", custcode, partno)); + } + } + + + + + } + + private void button8_Click(object sender, EventArgs e) + { + //중복검사 + var rid = tbRID.Text.Trim(); + if (rid.isEmpty()) + { + UTIL.MsgE("Reel Id 값이 없습니다"); + return; + } + if (AR.SETTING.Data.OnlineMode == false) + { + UTIL.MsgE("오프라인 모드라 사용할 수 없습니다"); + return; + } + var result = Amkor.RestfulService.get_existed_matl_by_id(rid); + if (result.Complete == false) + { + UTIL.MsgE(result.Message); + } + else + { + if (result.Result == true) + { + UTIL.MsgE($"해당 ID는 중복된 ID 입니다\n값:{rid}"); + return; + } + else + { + UTIL.MsgI($"해당 ID는 중복되지 않았습니다\n{rid}"); + } + } + } + + private void button9_Click(object sender, EventArgs e) + { + var f = new Dialog.fSelectCustInfo(); + if (f.ShowDialog() == DialogResult.OK) + { + this.tbCustName.Text = f.CustName; + this.TbCustCode.Text = f.CustCode; + PUB.log.Add(string.Format("사용자가 Customer 를 직접 선택함 {0}:{1}", tbCustName.Text, TbCustCode.Text)); + } + } + + Boolean CheckRID() + { + var rid = tbRID.Text.Trim(); + if (rid.Length < 10) return false; + //var cut = TbCustCode.Text.Trim(); + //if (rid.Substring(2, 4) != cut) + //{ + // return false; + //} + return true; + } + Boolean autoconf = false; + Boolean warn = false; + Boolean samesidwarn = false; + private void btOK_Click(object sender, EventArgs e) + { + bool topmost = this.TopMost; + //var IsBypas = VAR.STR[eVarString.JOB_TYPE] == "BP"; + if (System.Diagnostics.Debugger.IsAttached) + this.TopMost = false; + + var itemC = PUB.Result.ItemDataC; + + //manu 목록에 없다면 추가 해준다. + var manuName = tbVName.Text.Trim().ToLower(); + if (manuName.isEmpty() == false) + { + lock (PUB.Result.dsList) + { + if (PUB.Result.dsList.Supply.Where(t => t.TITLE.ToLower() == manuName).Any() == false) + { + //기존 manu 목록에 없으니 추가한다. + var newdr = PUB.Result.dsList.Supply.NewSupplyRow(); + newdr.TITLE = tbVName.Text.Trim(); + PUB.Result.dsList.Supply.AddSupplyRow(newdr); + PUB.Result.SaveListDB(); + } + } + } + + //회전용데이터가 여러개 있다면 처리하지 않는다. + #region "Rotate Data" + if (this.lvbcdList.CheckedItems.Count != 1) + { + PUB.AddSystemLog(Application.ProductVersion, "MAIN", $"회전 기준데이터가 {this.lvbcdList.CheckedItems.Count}건 입니다"); + UTIL.MsgE("회전 기준데이터는 1개만 선택되어야 합니다"); + return; + } + if (this.lvbcdList.CheckedItems.Count == 1) + { + var bcddata = lvbcdList.CheckedItems[0].SubItems[1].Text; + lock (itemC.VisionData.barcodelist) + { + foreach (var item in itemC.VisionData.barcodelist) + { + if (item.Value.Data == bcddata) + { + PUB.log.Add(string.Format("회전 기준 바코드값 {0}", item.Value.Data)); + item.Value.UserActive = true; + } + else item.Value.UserActive = false; + } + } + } + #endregion + + //마지막에 작업한 데이터와 비교 ?? 220104 + //if (tbSID.Text == PUB.Result.LastSIDTo && tbVName.Text != PUB.Result.LastVName) + //{ + // PUB.Result.LastVName = tbVName.Text; + // PUB.log.Add($"Vname 값을 저장하여 연속작업시 사용합니다 sid:{tbSID.Text},vname:{tbVName.Text}"); + //} + + //필수값 입력 확인 + #region "Check iNput Data" + if (tbSID.Text.isEmpty()) + { + UTIL.MsgE("SID 가 입력되지 않았습니다"); + tbSID.Focus(); + return; + } + if (tbVLOT.Text.isEmpty()) + { + UTIL.MsgE("VLOT 가 입력되지 않았습니다"); + tbVLOT.Focus(); + return; + } + if (tbQTY.Text.isEmpty()) + { + UTIL.MsgE("QTY 가 입력되지 않았습니다"); + tbQTY.Focus(); + return; + } + if (tbMFG.Text.isEmpty()) + { + UTIL.MsgE("MFG-DATE 가 입력되지 않았습니다"); + tbMFG.Focus(); + return; + } + if (tbRID.Text.isEmpty()) + { + UTIL.MsgE("REEL ID 가 입력되지 않았습니다"); + tbRID.Focus(); + return; + } + if (this.tbpartno.Text.isEmpty()) + { + UTIL.MsgE("PART No 가 입력되지 않았습니다"); + tbpartno.Focus(); + return; + } + if (PUB.OPT_BYPASS() == false && PUB.Result.vModel.DisablePrinter == false && this.PrintPos.isEmpty()) + { + UTIL.MsgE("프린트 부착 위치가 지정되지 않았습니다"); + return; + } + if (PUB.OPT_BYPASS() == false && this.tbVName.Text.isEmpty()) + { + UTIL.MsgE("Vender Name 이 입력되지 않았습니다"); + return; + } + #endregion + + //현재 작업모드와 SID가 일치하는지 확인한다. + var sidNew = this.tbSID.Text.Trim(); + var sidOld = this.lbSID0.Text.Trim();//.Tag == null ? string.Empty : lbSID0.Text;v + var partNo = this.tbpartno.Text.Trim(); + var custCode = this.TbCustCode.Text.Trim(); + + if (VAR.BOOL[eVarBool.Opt_NewReelID] && (tbRID.Text.isEmpty() || NewReelId == false)) + { + UTIL.MsgE("신규 릴ID 생성모드 입니다.\nREEL ID를 생성하세요."); + this.TopMost = topmost; + return; + } + + //sid전환모드 확인 230510 + if (VAR.BOOL[eVarBool.Opt_SIDConvert]) + { + if (lbSID0.Tag == null || lbSID0.Text.Length != 9) + { + UTIL.MsgE("SID전환모드입니다. SID변환을 수행 하세요"); + this.TopMost = topmost; + return; + } + } + + + //신규릴 모드일때에만 CustomerCode 값을 체크한다 + if (VAR.BOOL[eVarBool.Opt_NewReelID] && CheckRID() == false) + { + PUB.AddSystemLog(Application.ProductVersion, "MAIN", $"Reel ID 의 Customer Code 값이 현재 값과 일치하지 않습니다(RID:{tbRID.Text}/CUST:{TbCustCode.Text})"); + UTIL.MsgE("Reel ID 의 Customer Code 값이 현재 값과 일치하지 않습니다\n필요한 경우 REEL ID를 다시 생성하세요"); + this.TopMost = topmost; + return; + } + + //자동 실행이나 LOT값이 변경되면 자동 실행을 취소한다 + var lot = this.tbVLOT.Text.Trim(); + if (warn == false && autoconf == true) + { + if (AR.SETTING.Data.OnlineMode) + { + var taQ = new DataSet1TableAdapters.QueriesTableAdapter(); + var LastLot = taQ.GetLastVLotFromSID(sidNew); + if (LastLot.isEmpty() == false && LastLot.Equals(lot) == false) + { + UTIL.MsgE("이전 LOT 값이 일치 하지 않습니다. 자동 확인이 취소 됩니다\n" + + $"이전 LOT:{LastLot}, 신규 LOT:{lot}"); + warn = true; + this.TopMost = topmost; + return; + } + } + } + + + + //모든자료는 존재한다 저장가능하다 + if (AR.SETTING.Data.OnlineMode) + { + //시드정보테이블의 데이터를 역으로 저장한 경우 + if (VAR.BOOL[eVarBool.Opt_ApplySIDInfo] && VAR.BOOL[eVarBool.Opt_SID_WriteServer]) + { + Dictionary wheres = new Dictionary(); + Dictionary columns = new Dictionary(); + + //조건절생성 + if (VAR.BOOL[eVarBool.Opt_SID_Where_CustCode]) wheres.Add("CustCode", TbCustCode.Text); + if (VAR.BOOL[eVarBool.Opt_SID_Where_PartNo]) wheres.Add("PartNo", tbpartno.Text); + if (VAR.BOOL[eVarBool.Opt_SID_Where_SID]) wheres.Add("SID", tbSID.Text); + if (VAR.BOOL[eVarBool.Opt_SID_Where_VLOT]) wheres.Add("VenderLot", tbVLOT.Text); + + //Make Target COlumns + if (VAR.BOOL[eVarBool.Opt_SID_Apply_CustCode]) columns.Add("CustCode", TbCustCode.Text); + if (VAR.BOOL[eVarBool.Opt_SID_Apply_PartNo]) columns.Add("PartNo", tbpartno.Text); + if (VAR.BOOL[eVarBool.Opt_SID_Apply_PrintPos]) columns.Add("PrintPosition", this.PrintPos); + if (VAR.BOOL[eVarBool.Opt_SID_Apply_SID]) + { + //SID변환기능이 동작한상태에서는 변환된 SID정보를 저장하지 않는다 230510 + if (VAR.BOOL[eVarBool.Opt_SIDConvert]) + { + PUB.log.AddAT($"SID변환기능사용으로인해 SID정보는 업데이트하지 않습니다"); + } + else columns.Add("SID", tbSID.Text); + } + if (VAR.BOOL[eVarBool.Opt_SID_Apply_VenderName]) columns.Add("VenderName", tbVName.Text); + ServerWriteINF(columns, wheres); + } + + + //시드변환정보 저장 + if (VAR.BOOL[eVarBool.Opt_SIDConvert] && VAR.BOOL[eVarBool.Opt_SID_WriteServer]) + { + var SIDO = lbSID0.Text.Trim(); + var SIDN = tbSID.Text.Trim(); + if (SIDO.Equals(SIDN) == false && SIDO.isEmpty() == false && SIDN.isEmpty() == false && SIDO.Length == 9 && SIDO.Length == SIDN.Length) + { + Dictionary wheres = new Dictionary(); + Dictionary columns = new Dictionary(); + + //조건절생성 + wheres.Add("SIDFrom", SIDO); + + //Make Target COlumns + columns.Add("SIDTo", SIDN); + columns.Add("SIDFrom", SIDO); //250106 + ServerWriteCNV(columns, wheres); + } + } + else PUB.log.AddI($"시드변환정보(SID)는 저장하지 않습니다"); + + //시드변환테이블에 데이터를 저장하는 경우이다. + if (VAR.BOOL[eVarBool.Opt_ApplySIDConv] && VAR.BOOL[eVarBool.Opt_Conv_WriteServer]) + { + Dictionary wheres = new Dictionary(); + Dictionary columns = new Dictionary(); + + //조건절생성 + if (VAR.BOOL[eVarBool.Opt_Conv_Where_CustCode]) wheres.Add("CustCode", TbCustCode.Text); + if (VAR.BOOL[eVarBool.Opt_Conv_Where_PartNo]) wheres.Add("PartNo", tbpartno.Text); + if (VAR.BOOL[eVarBool.Opt_Conv_Where_SID]) wheres.Add("SIDTo", tbSID.Text); + if (VAR.BOOL[eVarBool.Opt_Conv_Where_VLOT]) wheres.Add("VenderLot", tbVLOT.Text); + + //Make Target COlumns + if (VAR.BOOL[eVarBool.Opt_Conv_Apply_CustCode]) columns.Add("CustCode", TbCustCode.Text); + if (VAR.BOOL[eVarBool.Opt_Conv_Apply_PartNo]) columns.Add("PartNo", tbpartno.Text); + if (VAR.BOOL[eVarBool.Opt_Conv_Apply_PrintPos]) columns.Add("PrintPosition", this.PrintPos); + if (VAR.BOOL[eVarBool.Opt_Conv_Apply_VenderName]) columns.Add("VenderName", tbVName.Text); + if (VAR.BOOL[eVarBool.Opt_Conv_Apply_Batch]) columns.Add("batch", tbBatch.Text); + if (VAR.BOOL[eVarBool.Opt_Conv_Apply_QtyMax]) columns.Add("qtymax", tbQtyMax.Text); + if (VAR.BOOL[eVarBool.Opt_Conv_Apply_SID]) columns.Add("SIDFrom", lbSID0.Text.Trim()); //250106 + + PUB.log.Add($"sid변환정보 저장컬럼:{string.Join(",", columns)},where:{string.Join("',", wheres)}"); + ServerWriteCONVINF(columns, wheres); + } + else PUB.log.AddI($"시드변환정보(상세)는 저장하지 않습니다"); + } + + //값을 설정해주고 빠져나간다 + itemC.VisionData.SetRID(tbRID.Text.Trim(), "USER CONFIRM");//.RID = tbRID.Text.Trim(); + itemC.VisionData.RID0 = tbRID0.Text.Trim();// tbRID.Text.Trim();// tbRID.Tag.ToString(); //210429 + itemC.VisionData.RIDNew = this.NewReelId; + + + itemC.VisionData.SID0 = lbSID0.Text.Trim(); //orginal sid value + + if (lbSID0.Text.isEmpty() && + itemC.VisionData.SID.isEmpty() == false && + itemC.VisionData.SID.Equals(tbSID.Text.Trim()) == false) + itemC.VisionData.SID0 = itemC.VisionData.SID; + + + itemC.VisionData.SID = tbSID.Text.Trim(); //sid convert value + itemC.VisionData.QTYMAX = tbQtyMax.Text.Trim(); + itemC.VisionData.BATCH = tbBatch.Text.Trim(); + + itemC.VisionData.VLOT = tbVLOT.Text.Trim(); + itemC.VisionData.QTY = tbQTY.Text.Trim(); + itemC.VisionData.MFGDATE = tbMFG.Text.Trim(); + itemC.VisionData.VNAME = tbVName.Text.Trim(); + itemC.VisionData.PARTNO = tbpartno.Text.Trim(); + + //Apply Confirm Data + if (this.autoconf) itemC.VisionData.ConfirmAuto = true; + itemC.VisionData.ConfirmUser = true; + + //Apply Print Position Data + itemC.VisionData.PrintPositionData = this.PrintPos; + itemC.VisionData.PrintPositionCheck = true; //사용자가 확인했다. + + //delete -- 220706 + //this.DisplayLabelPos(itemC.VisionData.LabelPositionData); + + this.PrintPos = itemC.VisionData.PrintPositionData; + this.DisplayPrintPos(itemC.VisionData.PrintPositionData); + + this.TopMost = topmost; + this.Close(); + } + + + /// + /// 지정한 자료를 서버에 기록합니다. 조건절과 대상 열을 제공해야합니다 + /// + void ServerWriteINF(Dictionary columns, Dictionary wheres) + { + //변경된 값만 저장여부를 확인할 것이므로 기존 값을 모두 가져온다 + var SQL = "select top 1 " + string.Join(",", columns.Select(t => "isnull([" + t.Key + "],'') as " + t.Key + "")) + + " from Component_Reel_SID_Information WITH(NOLOCK)"; + + var WSQL = $" where MC='{PUB.MCCode}'"; + for (int i = 0; i < wheres.Count; i++) + { + var col = wheres.ElementAt(i); + var colname = col.Key; + var colvalue = col.Value; + WSQL += " AND "; + WSQL += $" {colname}='{colvalue.Replace("'", "''")}'"; + } + SQL += WSQL; + + Dictionary UpdateTarget = new Dictionary(); + var CN = new System.Data.SqlClient.SqlConnection(); + CN.ConnectionString = Properties.Settings.Default.CS; + var CMD = new System.Data.SqlClient.SqlCommand(SQL, CN); + CN.Open(); + var DAR = CMD.ExecuteReader(); + var NoData = true; + Dictionary InsertTarget = new Dictionary(); + while (DAR.Read()) + { + NoData = false; + foreach (var col in columns) + { + var vStr = DAR[col.Key].ToString(); + var cStr = col.Value; + if (vStr.Equals(cStr) == false) + { + //differenct value + UpdateTarget.Add(col.Key, cStr); + } + } + } + DAR.Close(); + //자료가 없다면 데이터를 추가한다. + if (NoData) + { + foreach (var col in columns) + { + InsertTarget.Add(col.Key, col.Value); + } + } + + if (UpdateTarget.Count > 0) //if update target + { + + var dlgMsg = $"다음 값을 서버(SID정보)에 저장 하시겠습니까?\n"; + foreach (var item in UpdateTarget) + dlgMsg += $"항목:{item.Key} => {item.Value}\n"; + + var dlg = UTIL.MsgQ(dlgMsg); + if (dlg == DialogResult.Yes) + { + + //check double data 220706 + var CSQL = "select count(*) from Component_Reel_SID_Information WITH(NOLOCK) "; + CSQL += WSQL; + CMD.CommandText = CSQL; + var cnt = int.Parse(CMD.ExecuteScalar().ToString()); + var whke = string.Join(",", wheres.Select(t => t.Key).ToList()); + if (cnt < 1) + { + PUB.log.AddAT("SQL=" + CSQL); + UTIL.MsgE($"대상 릴 정보가 없어 정보를 업데이트 할 수 없습니다\n" + whke); + } + else if (cnt > 1) + { + + PUB.log.AddAT("SQL=" + CSQL); + UTIL.MsgE($"대상 릴 정보가 복수로({cnt}건) 존재하여 정보를 업데이트 할 수 없습니다\n" + whke); + } + else + { + var USQL = $"update Component_Reel_SID_Information set [MC]='{PUB.MCCode}'," + + string.Join(",", UpdateTarget.Select(t => "[" + t.Key + "]='" + t.Value + "'")); + + USQL += WSQL; + try + { + CMD.CommandText = USQL; + var UpdateOK = CMD.ExecuteNonQuery() == 1; + if (UpdateOK == false) + { + UTIL.MsgE("Save Error"); + } + } + catch (Exception ex) + { + UTIL.MsgE("Save Error\n" + ex.Message); + } + } + } + } + if (InsertTarget.Count > 0) + { + + var dlgMsg = $"다음 값을 서버에 저장 하시겠습니까?\n"; + foreach (var item in InsertTarget) + dlgMsg += $"항목:{item.Key} => {item.Value}\n"; + foreach (var item in wheres) + dlgMsg += $"항목:{item.Key} => {item.Value}\n"; + + var dlg = UTIL.MsgQ(dlgMsg); + if (dlg == DialogResult.Yes) + { + var ISQL = $"insert into Component_Reel_SID_Information ([MC],wdate," + + string.Join(",", wheres.Select(t => "[" + t.Key + "]")) + "," + + string.Join(",", InsertTarget.Select(t => "[" + t.Key + "]")) + ") values(" + + $"'{PUB.MCCode}',getdate()," + + string.Join(",", wheres.Select(t => "'" + t.Value.Replace("'", "''") + "'")) + "," + + string.Join(",", InsertTarget.Select(t => "'" + t.Value.Replace("'", "''") + "'")) + ")"; + + //ISQL += WSQL; + try + { + CMD.CommandText = ISQL; + var UpdateOK = CMD.ExecuteNonQuery() == 1; + if (UpdateOK == false) + { + UTIL.MsgE("Save Error"); + } + } + catch (Exception ex) + { + UTIL.MsgE("Save Error\n" + ex.Message); + } + } + + } + CN.Close(); + CN.Dispose(); + } + /// + /// 지정한 자료를 서버에 기록합니다. 조건절과 대상 열을 제공해야합니다 + /// + void ServerWriteCNV(Dictionary columns, Dictionary wheres) + { + //변경된 값만 저장여부를 확인할 것이므로 기존 값을 모두 가져온다 + var tableName = "Component_Reel_SID_Convert"; + var SQL = "select top 1 " + string.Join(",", columns.Select(t => "isnull([" + t.Key + "],'') as " + t.Key + "")) + + $" from {tableName} WITH(NOLOCK) "; + + var WSQL = $" where isnull(MC,'{PUB.MCCode}')='{PUB.MCCode}'"; + for (int i = 0; i < wheres.Count; i++) + { + var col = wheres.ElementAt(i); + var colname = col.Key; + var colvalue = col.Value; + WSQL += " AND "; + WSQL += $" {colname}='{colvalue.Replace("'", "''")}'"; + } + SQL += WSQL; + + Dictionary UpdateTarget = new Dictionary(); + var CN = new System.Data.SqlClient.SqlConnection(); + CN.ConnectionString = Properties.Settings.Default.CS; + var CMD = new System.Data.SqlClient.SqlCommand(SQL, CN); + CN.Open(); + var DAR = CMD.ExecuteReader(); + var NoData = true; + Dictionary InsertTarget = new Dictionary(); + while (DAR.Read()) + { + NoData = false; + foreach (var col in columns) + { + var vStr = DAR[col.Key].ToString(); + var cStr = col.Value; + if (vStr.Equals(cStr) == false) + { + //differenct value + UpdateTarget.Add(col.Key, cStr); + } + } + } + DAR.Close(); + + //자료가 없다면 데이터를 추가한다. + if (NoData) + { + foreach (var col in columns) + { + InsertTarget.Add(col.Key, col.Value); + } + } + + if (UpdateTarget.Count > 0) //if update target + { + + var dlgMsg = $"다음 SID변환값을 서버에 업데이트 하시겠습니까?\n"; + foreach (var item in UpdateTarget) + dlgMsg += $"항목:{item.Key} => {item.Value}\n"; + + var dlg = UTIL.MsgQ(dlgMsg); + if (dlg == DialogResult.Yes) + { + + //check double data 220706 + var CSQL = $"select count(*) from {tableName}"; + CSQL += WSQL; + CMD.CommandText = CSQL; + var cnt = int.Parse(CMD.ExecuteScalar().ToString()); + var whke = string.Join(",", wheres.Select(t => t.Key).ToList()); + if (cnt < 1) + { + PUB.log.AddAT("SQL=" + CSQL); + UTIL.MsgE($"대상 릴 정보가 없어 변환정보를 업데이트 할 수 없습니다\n" + whke); + } + else if (cnt > 1) + { + + PUB.log.AddAT("SQL=" + CSQL); + UTIL.MsgE($"대상 릴 변환정보가 복수로({cnt}건) 존재하여 정보를 업데이트 할 수 없습니다\n" + whke); + } + else + { + var USQL = $"update {tableName} set isnull([MC],'{PUB.MCCode}')='{PUB.MCCode}'," + + string.Join(",", UpdateTarget.Select(t => "[" + t.Key + "]='" + t.Value + "'")); + + USQL += WSQL; + try + { + CMD.CommandText = USQL; + var UpdateOK = CMD.ExecuteNonQuery() == 1; + if (UpdateOK == false) + { + UTIL.MsgE("(CNV)Save Error"); + } + } + catch (Exception ex) + { + UTIL.MsgE("(CNV)Save Error\n" + ex.Message); + } + } + } + } + if (InsertTarget.Count > 0) + { + + var dlgMsg = $"다음 변환값을 서버에 추가 하시겠습니까?\n"; + foreach (var item in InsertTarget) + dlgMsg += $"항목:{item.Key} => {item.Value}\n"; + foreach (var item in wheres) + dlgMsg += $"항목:{item.Key} => {item.Value}\n"; + + var dlg = UTIL.MsgQ(dlgMsg); + if (dlg == DialogResult.Yes) + { + var ISQL = $"insert into {tableName} ([MC]," + + string.Join(",", wheres.Select(t => "[" + t.Key + "]")) + "," + + string.Join(",", InsertTarget.Select(t => "[" + t.Key + "]")) + ") values(" + + $"'{PUB.MCCode}'," + + string.Join(",", wheres.Select(t => "'" + t.Value.Replace("'", "''") + "'")) + "," + + string.Join(",", InsertTarget.Select(t => "'" + t.Value.Replace("'", "''") + "'")) + ")"; + + //ISQL += WSQL; + try + { + CMD.CommandText = ISQL; + var UpdateOK = CMD.ExecuteNonQuery() == 1; + if (UpdateOK == false) + { + UTIL.MsgE("Save(CNV) Error"); + } + } + catch (Exception ex) + { + UTIL.MsgE("Save(CNV) Error\n" + ex.Message); + } + } + + } + CN.Close(); + CN.Dispose(); + + if (UpdateTarget.Any() || InsertTarget.Any()) + { + PUB.GetSIDConverDB(); + } + } + + + void ServerWriteCONVINF(Dictionary columns, Dictionary wheres) + { + //변경된 값만 저장여부를 확인할 것이므로 기존 값을 모두 가져온다 + var SQL = "select top 1 " + string.Join(",", columns.Select(t => "isnull([" + t.Key + "],'') as " + t.Key + "")) + + " from Component_Reel_SID_Convert WITH(NOLOCK) "; + + var WSQL = $" where (MC is null or MC='{PUB.MCCode}')"; + for (int i = 0; i < wheres.Count; i++) + { + var col = wheres.ElementAt(i); + var colname = col.Key; + var colvalue = col.Value; + WSQL += " AND "; + WSQL += $" {colname}='{colvalue.Replace("'", "''")}'"; + } + SQL += WSQL; + + PUB.log.Add($"ServerWriteCONVINF SQL={SQL}"); + + Dictionary UpdateTarget = new Dictionary(); + var CN = new System.Data.SqlClient.SqlConnection(); + CN.ConnectionString = Properties.Settings.Default.CS; + var CMD = new System.Data.SqlClient.SqlCommand(SQL, CN); + CN.Open(); + var DAR = CMD.ExecuteReader(); + var NoData = true; + Dictionary InsertTarget = new Dictionary(); + while (DAR.Read()) + { + NoData = false; + foreach (var col in columns) + { + var vStr = DAR[col.Key].ToString(); + var cStr = col.Value; + if (vStr.Equals(cStr) == false) + { + //differenct value + UpdateTarget.Add(col.Key, cStr); + } + } + } + DAR.Close(); + //자료가 없다면 데이터를 추가한다. + if (NoData) + { + foreach (var col in columns) + { + InsertTarget.Add(col.Key, col.Value); + } + } + + if (UpdateTarget.Count > 0) //if update target + { + + var dlgMsg = $"다음 값을 서버(변환정보)에 저장 하시겠습니까?\n"; + foreach (var item in UpdateTarget) + dlgMsg += $"항목:{item.Key} => {item.Value}\n"; + + var dlg = UTIL.MsgQ(dlgMsg); + if (dlg == DialogResult.Yes) + { + + //check double data 220706 + var CSQL = "select count(*) from Component_Reel_SID_Convert WITH(NOLOCK) "; + CSQL += WSQL; + CMD.CommandText = CSQL; + var cnt = int.Parse(CMD.ExecuteScalar().ToString()); + var whke = string.Join(",", wheres.Select(t => t.Key).ToList()); + if (cnt < 1) + { + PUB.log.AddAT("SQL=" + CSQL); + UTIL.MsgE($"(CONVINFO) 대상 릴 정보가 없어 정보를 업데이트 할 수 없습니다\n" + whke); + } + else if (cnt > 1) + { + + PUB.log.AddAT("SQL=" + CSQL); + UTIL.MsgE($"(CONVINFO) 대상 릴 정보가 복수로({cnt}건) 존재하여 정보를 업데이트 할 수 없습니다\n" + whke); + } + else + { + var USQL = $"update Component_Reel_SID_Convert set " + + string.Join(",", UpdateTarget.Select(t => "[" + t.Key + "]='" + t.Value + "'")); + + USQL += WSQL; + try + { + CMD.CommandText = USQL; + var UpdateOK = CMD.ExecuteNonQuery() == 1; + if (UpdateOK == false) + { + UTIL.MsgE("(CONVINFO) Save Error"); + } + } + catch (Exception ex) + { + UTIL.MsgE("(CONVINFO) Save Error\n" + ex.Message); + } + } + } + } + if (InsertTarget.Count > 0) + { + + var dlgMsg = $"다음 값을 서버(변환정보)에 저장 하시겠습니까?\n"; + foreach (var item in InsertTarget) + dlgMsg += $"항목:{item.Key} => {item.Value}\n"; + foreach (var item in wheres) + dlgMsg += $"항목:{item.Key} => {item.Value}\n"; + + var dlg = UTIL.MsgQ(dlgMsg); + if (dlg == DialogResult.Yes) + { + var ISQL = $"insert into Component_Reel_SID_Convert ([MC],wdate," + + string.Join(",", wheres.Select(t => "[" + t.Key + "]")) + "," + + string.Join(",", InsertTarget.Select(t => "[" + t.Key + "]")) + ") values(" + + $"null,getdate()," + + string.Join(",", wheres.Select(t => "'" + t.Value.Replace("'", "''") + "'")) + "," + + string.Join(",", InsertTarget.Select(t => "'" + t.Value.Replace("'", "''") + "'")) + ")"; + + //ISQL += WSQL; + try + { + CMD.CommandText = ISQL; + var UpdateOK = CMD.ExecuteNonQuery() == 1; + if (UpdateOK == false) + { + UTIL.MsgE("(CONVINFO) Save Error"); + } + } + catch (Exception ex) + { + UTIL.MsgE("(CONVINFO) Save Error\n" + ex.Message); + } + } + + } + CN.Close(); + CN.Dispose(); + } + + private void label26_Click(object sender, EventArgs e) + { + var sid = this.tbSID.Text.Trim(); + if (sid.isEmpty()) return; + + var dlg = UTIL.MsgQ("SID 에서 인쇄 위치를 검색 할까요?"); + if (dlg != DialogResult.Yes) return; + + using (var db = new DataSet1TableAdapters.Component_Reel_Print_InformationTableAdapter()) + { + var dr = db.GetBySID(PUB.MCCode, sid).FirstOrDefault(); + if (dr == null || dr.PrintPosition.isEmpty()) + { + UTIL.MsgE("입력된 SID에 저장된 인쇄 위치가 없습니다\n" + + "SID:" + sid); + return; + } + this.PrintPos = dr.PrintPosition; + DisplayPrintPos(this.PrintPos); + } + } + + private void button1_Click_1(object sender, EventArgs e) + { + //데이터베이스 결과에서 자료를 추가한다. + + List result = new List(); + + using (var db = new EEEntities()) + { + //1.sid sid를 먼저 검색한다. 이것이 확률이 제일 높음 + if (this.tbSID.Text.isEmpty() == false) + { + var list = db.Component_Reel_Result.AsNoTracking(). + OrderByDescending(t => t.wdate). + Where(t => t.SID == tbSID.Text.Trim()).Take(5).ToList(); + if (list != null && list.Count > 0) result.AddRange(list); + } + //2.파트번호 + if (result.Count == 0 && this.tbpartno.Text.isEmpty() == false) + { + var list = db.Component_Reel_Result.AsNoTracking(). + OrderByDescending(t => t.wdate). + Where(t => t.QR.Contains(";" + tbpartno.Text)).Take(5).ToList(); + if (list != null && list.Count > 0) result.AddRange(list); + } + //3.벤더LOT + if (result.Count == 0 && this.tbVLOT.Text.isEmpty() == false) + { + var list = db.Component_Reel_Result.AsNoTracking(). + OrderByDescending(t => t.wdate). + Where(t => t.QR.Contains(";" + tbVLOT.Text + ";")).Take(5).ToList(); + if (list != null && list.Count > 0) result.AddRange(list); + } + + //4.벤더이름 + if (result.Count == 0 && this.tbVName.Text.isEmpty() == false) + { + var list = db.Component_Reel_Result.AsNoTracking(). + OrderByDescending(t => t.wdate). + Where(t => t.QR.Contains(";" + tbVName.Text + ";")).Take(5).ToList(); + if (list != null && list.Count > 0) result.AddRange(list); + } + + } + + //customer code + + if (result.Count < 1) + { + UTIL.MsgE("검색된 결과가 없습니다\n검색 아이템\n" + + "1.SID\n" + + "2.LOT\n" + + "3.PARTNO\n"); + return; + } + var f = new fSelectResult(result); + if (f.ShowDialog() != DialogResult.OK) return; + + //값이 없는 것만 처리한다. + string msg = string.Empty; + var qr = f.SelectedValue.QR; + var amk = new StdLabelPrint.CAmkorSTDBarcode(qr); + if (this.tbSID.Text.isEmpty() && amk.SID.isEmpty() == false) + { + msg += (msg.isEmpty() ? "" : "\n") + string.Format("SID:{0}=>{1}", tbSID.Text, amk.SID); + tbSID.Text = amk.SID; + } + if (this.tbpartno.Text.isEmpty() && amk.PARTNO.isEmpty() == false) + { + msg += (msg.isEmpty() ? "" : "\n") + string.Format("Part No:{0}=>{1}", tbpartno.Text, amk.PARTNO); + tbpartno.Text = amk.PARTNO; + } + if (this.tbVLOT.Text.isEmpty() && amk.VLOT.isEmpty() == false) + { + msg += (msg.isEmpty() ? "" : "\n") + string.Format("Vender LOT:{0}=>{1}", tbVLOT.Text, amk.VLOT); + tbVLOT.Text = amk.VLOT; + } + if (this.tbVName.Text.isEmpty() && f.SelectedValue.VNAME.isEmpty() == false) + { + msg += (msg.isEmpty() ? "" : "\n") + string.Format("Vender Name:{0}=>{1}", tbVName.Text, f.SelectedValue.VNAME); + tbVName.Text = f.SelectedValue.VNAME; + } + if (this.tbMFG.Text.isEmpty() && amk.MFGDate.isEmpty() == false) + { + msg += (msg.isEmpty() ? "" : "\n") + string.Format("MFG Date:{0}=>{1}", tbMFG.Text, amk.MFGDate); + tbMFG.Text = amk.MFGDate; + } + + if (VAR.BOOL[eVarBool.Opt_UserQtyRQ] == false && this.tbQTY.Text.isEmpty() && amk.QTY != 0) + { + msg += (msg.isEmpty() ? "" : "\n") + string.Format("QTY:{0}=>{1}", tbQTY.Text, amk.QTY); + + PUB.log.Add($"수량업데이트 {tbQTY.Text}->{amk.QTY}"); + tbQTY.Text = amk.QTY.ToString(); + } + + + var custcode = amk.RID.Substring(2, 4); + if (this.TbCustCode.Text.isEmpty() && custcode.isEmpty() == false) + { + msg += (msg.isEmpty() ? "" : "\n") + string.Format("QTY:{0}=>{1}", TbCustCode.Text, custcode); + TbCustCode.Text = custcode;// amk.QTY.ToString(); + } + + if (msg.isEmpty() == false) + { + UTIL.MsgI("다음 정보가 변경 되었습니다\n" + msg, true); + } + } + + private void label2_Click_1(object sender, EventArgs e) + { + var sid = this.tbSID.Text.Trim(); + if (sid.isEmpty()) return; + using (var db = new DataSet1TableAdapters.Component_Reel_Print_InformationTableAdapter()) + { + var dr = db.GetBySID(PUB.MCCode, sid).FirstOrDefault(); + if (dr == null || dr.PrintPosition.isEmpty()) + { + UTIL.MsgE("입력된 SID에 저장된 인쇄 위치가 없습니다\n" + + "SID:" + sid); + return; + } + this.PrintPos = dr.PrintPosition; + } + + DisplayPrintPos(this.PrintPos); + } + + private void button3_Click_1(object sender, EventArgs e) + { + var sid = this.tbSID.Text.Trim(); + if (sid.isEmpty()) + { + UTIL.MsgE("SID 값이 필요합니다"); + return; + } + func_CheckDateQty(); + } + + DateTime stime = DateTime.Now; + private void tmAutoConfirm_Tick(object sender, EventArgs e) + { + var ts = DateTime.Now - stime; + btOK.Text = string.Format("{0:N0}/{1:N0} 초후 자동 완료", ts.TotalSeconds, AR.SETTING.Data.Timeout_AutoConfirm); + if (ts.TotalSeconds >= AR.SETTING.Data.Timeout_AutoConfirm) + { + tmAutoConfirm.Stop(); + autoconf = true; + btOK.PerformClick(); + } + } + + private void 회전기준바코드로설정ToolStripMenuItem_Click(object sender, EventArgs e) + { + if (lvbcdList.FocusedItem == null) + { + UTIL.MsgE("포커스를 받은 항목이 없습니다"); + return; + } + var dataindex = lvbcdList.FocusedItem.Index; + foreach (ListViewItem item in this.lvbcdList.Items) + { + if (item.Index == dataindex) item.Checked = true; + else item.Checked = false; + } + } + + private void button4_Click_1(object sender, EventArgs e) + { + if (tbpartno.Text.isEmpty()) tbpartno.Text = "N/A"; + else + { + var dlg = UTIL.MsgQ("현재 Part No 값을 N/A로 변경 할까요?"); + if (dlg == DialogResult.Yes) tbpartno.Text = "N/A"; + } + } + + private void linkLabel9_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + UTIL.TouchKeyShow(this.tbCustName, "INPUT CUST NAME"); + } + + private void button5_Click_1(object sender, EventArgs e) + { + var a = 1; + var b = 0; + var c = a / b; + + } + + private void lvbcdList_SelectedIndexChanged(object sender, EventArgs e) + { + if (lvbcdList.FocusedItem == null) toolStripStatusLabel1.Text = "--"; + toolStripStatusLabel1.Text = lvbcdList.FocusedItem.SubItems[1].Text; + } + + private void groupBox3_Enter(object sender, EventArgs e) + { + + } + + private void button5_Click_2(object sender, EventArgs e) + { + if (tbVName.Text.isEmpty()) tbVName.Text = "N/A"; + else + { + var dlg = UTIL.MsgQ("현재 VenderName 값을 N/A로 변경 할까요?"); + if (dlg == DialogResult.Yes) tbVName.Text = "N/A"; + } + } + + private void tbBarcode_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + { + var data = tbBarcode.Text.Trim().Split(';'); + if (data.Length > 4) + { + if (data[0].Length == 9 && data[0].StartsWith("10")) + { + var sid = data[0].Trim(); + var batch = data[1].Trim(); + var cpn = data[4].Trim(); + + if (tbBatch.Text.isEmpty()) + { + tbBatch.Text = batch; + PUB.log.Add($"사용자 바코드 입력으로 batch값을 설정 합니다:{batch}"); + } + + + if (tbSID.Text.isEmpty()) + { + tbSID.Text = sid; + tbpartno.Text = cpn; + PUB.log.Add($"사용자 바코드로 SID/파트번호를 입력입니다 값:{sid}{cpn}"); + } + else + { + if (tbSID.Text.StartsWith("103")) + { + //검증 + if (tbSID.Text.Equals(sid)) + { + //맞다 + tbpartno.Text = cpn; + PUB.log.Add($"사용자 바코드로 파트번호를 입력입니다 값:{cpn}"); + } + else + { + UTIL.MsgE($"103 SID 불일치로 파트번호를 설정하지 않습니다\n원본SID:{tbSID.Text}\n대상SID:{sid}"); + } + } + else if (tbSID.Text.StartsWith("101")) + { + //변경전 101->103 + lbSID0.Text = tbSID.Text.Trim(); + tbSID.Tag = tbSID.Text.Trim(); + tbSID.Text = sid; + tbpartno.Text = cpn; + PUB.log.Add($"사용자 바코드로 SID/파트번호를 입력입니다 값:{sid}{cpn}"); + } + } + } + else PUB.log.AddE($"사용자바코드 0번이 SID가 아닙니다{data}"); + } + else PUB.log.AddE($"사용자 바코드 오류 배열갯수가 적다:{data}"); + tbBarcode.SelectAll(); + tbBarcode.Focus(); + } + } + + private void lnkBatch_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + UTIL.TouchKeyShow(tbBatch, "INPUT BATCH"); + } + + private void linkLabel10_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + UTIL.TouchKeyShow(tbQtyMax, "INPUT MAX QTY(SAP)"); + } + } +} diff --git a/Handler/Project/Dialog/fLoaderInfo.resx b/Handler/Project/Dialog/fLoaderInfo.resx new file mode 100644 index 0000000..87bf1b7 --- /dev/null +++ b/Handler/Project/Dialog/fLoaderInfo.resx @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 155, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJh + d2luZy5Qb2ludEYCAAAAAXgBeQAACwsCAAAAAAAAAAAAAAAL + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJh + d2luZy5Qb2ludEYCAAAAAXgBeQAACwsCAAAAAAAAAAAAAAAL + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJh + d2luZy5Qb2ludEYCAAAAAXgBeQAACwsCAAAAAAAAAAAAAAAL + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0ZW0uRHJh + d2luZy5Qb2ludEYCAAAAAXgBeQAACwsCAAAAAAAAAAAAAAAL + + + + 17, 17 + + + 247, 17 + + \ No newline at end of file diff --git a/Handler/Project/Dialog/fLog.Designer.cs b/Handler/Project/Dialog/fLog.Designer.cs new file mode 100644 index 0000000..bb6da7c --- /dev/null +++ b/Handler/Project/Dialog/fLog.Designer.cs @@ -0,0 +1,200 @@ +namespace Project.Dialog +{ + partial class fLog + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.panLog = new System.Windows.Forms.Panel(); + this.chkVision = new System.Windows.Forms.CheckBox(); + this.chkDebug = new System.Windows.Forms.CheckBox(); + this.chkILStop = new System.Windows.Forms.CheckBox(); + this.chkKen = new System.Windows.Forms.CheckBox(); + this.chkILock = new System.Windows.Forms.CheckBox(); + this.chkFlag = new System.Windows.Forms.CheckBox(); + this.chkMain = new System.Windows.Forms.CheckBox(); + this.logTextBox1 = new arCtl.LogTextBox(); + this.button1 = new System.Windows.Forms.Button(); + this.panLog.SuspendLayout(); + this.SuspendLayout(); + // + // panLog + // + this.panLog.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.panLog.Controls.Add(this.chkVision); + this.panLog.Controls.Add(this.chkDebug); + this.panLog.Controls.Add(this.chkILStop); + this.panLog.Controls.Add(this.chkKen); + this.panLog.Controls.Add(this.chkILock); + this.panLog.Controls.Add(this.chkFlag); + this.panLog.Controls.Add(this.chkMain); + this.panLog.Dock = System.Windows.Forms.DockStyle.Top; + this.panLog.Location = new System.Drawing.Point(0, 0); + this.panLog.Margin = new System.Windows.Forms.Padding(0); + this.panLog.Name = "panLog"; + this.panLog.Padding = new System.Windows.Forms.Padding(5); + this.panLog.Size = new System.Drawing.Size(735, 31); + this.panLog.TabIndex = 6; + // + // chkVision + // + this.chkVision.Dock = System.Windows.Forms.DockStyle.Left; + this.chkVision.Location = new System.Drawing.Point(435, 5); + this.chkVision.Name = "chkVision"; + this.chkVision.Size = new System.Drawing.Size(70, 17); + this.chkVision.TabIndex = 4; + this.chkVision.Text = "Vision"; + this.chkVision.UseVisualStyleBackColor = true; + // + // chkDebug + // + this.chkDebug.Dock = System.Windows.Forms.DockStyle.Left; + this.chkDebug.Location = new System.Drawing.Point(365, 5); + this.chkDebug.Name = "chkDebug"; + this.chkDebug.Size = new System.Drawing.Size(70, 17); + this.chkDebug.TabIndex = 3; + this.chkDebug.Text = "Debug"; + this.chkDebug.UseVisualStyleBackColor = true; + // + // chkILStop + // + this.chkILStop.Dock = System.Windows.Forms.DockStyle.Left; + this.chkILStop.Location = new System.Drawing.Point(295, 5); + this.chkILStop.Name = "chkILStop"; + this.chkILStop.Size = new System.Drawing.Size(70, 17); + this.chkILStop.TabIndex = 2; + this.chkILStop.Text = "IL-Stop"; + this.chkILStop.UseVisualStyleBackColor = true; + // + // chkKen + // + this.chkKen.Dock = System.Windows.Forms.DockStyle.Left; + this.chkKen.Location = new System.Drawing.Point(215, 5); + this.chkKen.Name = "chkKen"; + this.chkKen.Size = new System.Drawing.Size(80, 17); + this.chkKen.TabIndex = 1; + this.chkKen.Text = "Keyence"; + this.chkKen.UseVisualStyleBackColor = true; + // + // chkILock + // + this.chkILock.Dock = System.Windows.Forms.DockStyle.Left; + this.chkILock.Location = new System.Drawing.Point(145, 5); + this.chkILock.Name = "chkILock"; + this.chkILock.Size = new System.Drawing.Size(70, 17); + this.chkILock.TabIndex = 0; + this.chkILock.Text = "ILock"; + this.chkILock.UseVisualStyleBackColor = true; + this.chkILock.Click += new System.EventHandler(this.chkMain_Click); + // + // chkFlag + // + this.chkFlag.Dock = System.Windows.Forms.DockStyle.Left; + this.chkFlag.Location = new System.Drawing.Point(75, 5); + this.chkFlag.Name = "chkFlag"; + this.chkFlag.Size = new System.Drawing.Size(70, 17); + this.chkFlag.TabIndex = 0; + this.chkFlag.Text = "Flag"; + this.chkFlag.UseVisualStyleBackColor = true; + this.chkFlag.Click += new System.EventHandler(this.chkMain_Click); + // + // chkMain + // + this.chkMain.Checked = true; + this.chkMain.CheckState = System.Windows.Forms.CheckState.Checked; + this.chkMain.Dock = System.Windows.Forms.DockStyle.Left; + this.chkMain.Location = new System.Drawing.Point(5, 5); + this.chkMain.Name = "chkMain"; + this.chkMain.Size = new System.Drawing.Size(70, 17); + this.chkMain.TabIndex = 0; + this.chkMain.Text = "Main"; + this.chkMain.UseVisualStyleBackColor = true; + this.chkMain.Click += new System.EventHandler(this.chkMain_Click); + // + // logTextBox1 + // + this.logTextBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(24)))), ((int)(((byte)(24)))), ((int)(((byte)(24))))); + this.logTextBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.logTextBox1.ColorList = new arCtl.sLogMessageColor[0]; + this.logTextBox1.DateFormat = "mm:ss.fff"; + this.logTextBox1.DefaultColor = System.Drawing.Color.LightGray; + this.logTextBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.logTextBox1.EnableDisplayTimer = false; + this.logTextBox1.EnableGubunColor = true; + this.logTextBox1.Font = new System.Drawing.Font("맑은 고딕", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.logTextBox1.ListFormat = "[{0}] {1}"; + this.logTextBox1.Location = new System.Drawing.Point(0, 31); + this.logTextBox1.MaxListCount = ((ushort)(200)); + this.logTextBox1.MaxTextLength = ((uint)(4000u)); + this.logTextBox1.MessageInterval = 50; + this.logTextBox1.Name = "logTextBox1"; + this.logTextBox1.Size = new System.Drawing.Size(735, 469); + this.logTextBox1.TabIndex = 4; + this.logTextBox1.Text = ""; + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.button1.Location = new System.Drawing.Point(0, 500); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(735, 40); + this.button1.TabIndex = 5; + this.button1.Text = "Load File"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // fLog + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(735, 540); + this.Controls.Add(this.logTextBox1); + this.Controls.Add(this.button1); + this.Controls.Add(this.panLog); + this.Name = "fLog"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Log Display"; + this.TopMost = true; + this.Load += new System.EventHandler(this.fLog_Load); + this.panLog.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Panel panLog; + private arCtl.LogTextBox logTextBox1; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.CheckBox chkMain; + private System.Windows.Forms.CheckBox chkILock; + private System.Windows.Forms.CheckBox chkFlag; + private System.Windows.Forms.CheckBox chkKen; + private System.Windows.Forms.CheckBox chkDebug; + private System.Windows.Forms.CheckBox chkILStop; + private System.Windows.Forms.CheckBox chkVision; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/fLog.cs b/Handler/Project/Dialog/fLog.cs new file mode 100644 index 0000000..06e76f0 --- /dev/null +++ b/Handler/Project/Dialog/fLog.cs @@ -0,0 +1,104 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fLog : Form + { + public fLog() + { + InitializeComponent(); + PUB.log.RaiseMsg += log_RaiseMsg; + PUB.logFlag.RaiseMsg += LogFlag_RaiseMsg; + PUB.logILock.RaiseMsg += LogILock_RaiseMsg; + PUB.logKeyence.RaiseMsg += LogKeyence_RaiseMsg; + PUB.logILStop.RaiseMsg += LogIL_RaiseMsg; + PUB.logDbg.RaiseMsg += LogDebug_RaiseMsg; + PUB.logVision.RaiseMsg += LogVision_RaiseMsg; + //this.FormClosed += (s1, e1) => { this.timer1.Stop(); }; + } + + private void LogVision_RaiseMsg(DateTime LogTime, string TypeStr, string Message) + { + if (this.chkVision.Checked) this.logTextBox1.AddMsg(LogTime, "DEBUG", TypeStr + ":" + Message); + } + + private void fLog_Load(object sender, EventArgs e) + { + this.logTextBox1.ColorList = new arCtl.sLogMessageColor[] { + new arCtl.sLogMessageColor("FLAG",Color.SkyBlue), + new arCtl.sLogMessageColor("ILOCK", Color.Gold), + new arCtl.sLogMessageColor("ERR",Color.Red), + new arCtl.sLogMessageColor("ATT", Color.Tomato), + new arCtl.sLogMessageColor("NORM", Color.WhiteSmoke), + }; + //timer1.Start(); + } + private void button1_Click(object sender, EventArgs e) + { + var od = new OpenFileDialog(); + od.InitialDirectory = PUB.log.BaseDirectory; + if (od.ShowDialog() == System.Windows.Forms.DialogResult.OK) + { + this.logTextBox1.Text = System.IO.File.ReadAllText(od.FileName, System.Text.Encoding.Default); + } + } + + private void chkMain_Click(object sender, EventArgs e) + { + + } + private void LogDebug_RaiseMsg(DateTime LogTime, string TypeStr, string Message) + { + if (this.chkDebug.Checked) this.logTextBox1.AddMsg(LogTime, "DEBUG", TypeStr + ":" + Message); + } + + private void LogIL_RaiseMsg(DateTime LogTime, string TypeStr, string Message) + { + if (this.chkILStop.Checked) this.logTextBox1.AddMsg(LogTime, "IL-STOP", TypeStr + ":" + Message); + } + + private void LogFlag_RaiseMsg(DateTime LogTime, string TypeStr, string Message) + { + if (this.chkFlag.Checked) this.logTextBox1.AddMsg(LogTime, "FLAG", TypeStr + ":" + Message); + } + + private void LogILock_RaiseMsg(DateTime LogTime, string TypeStr, string Message) + { + if (this.chkILock.Checked) this.logTextBox1.AddMsg(LogTime, "ILCK", TypeStr + ":" + Message); + } + + private void LogKeyence_RaiseMsg(DateTime LogTime, string TypeStr, string Message) + { + if (this.chkKen.Checked) this.logTextBox1.AddMsg(LogTime, "KEYE", TypeStr + ":" + Message); + } + + + void log_RaiseMsg(DateTime LogTime, string TypeStr, string Message) + { + if (this.chkMain.Checked) this.logTextBox1.AddMsg(LogTime, TypeStr, Message); + } + + private void timer1_Tick(object sender, EventArgs e) + { + //this.textBox1.Text = + // "PX:" + Pub.WaitMessage[(int)eWaitMessage.PX] + "\r\n" + + // "PZ:" + Pub.WaitMessage[(int)eWaitMessage.PZ] + "\r\n" + + // "LMOVE:" + Pub.WaitMessage[(int)eWaitMessage.LMOVE] + "\r\n" + + // "LUPDN:" + Pub.WaitMessage[(int)eWaitMessage.LUPDN] + "\r\n" + + // "RMOVE:" + Pub.WaitMessage[(int)eWaitMessage.RMOVE] + "\r\n" + + // "RUPDN:" + Pub.WaitMessage[(int)eWaitMessage.RUPDN] + "\r\n" + + // "LPRINT:" + Pub.WaitMessage[(int)eWaitMessage.LPRINT] + "\r\n" + + // "RPRINT:" + Pub.WaitMessage[(int)eWaitMessage.RPRINT] + "\r\n" + + // "VIS0:" + Pub.WaitMessage[(int)eWaitMessage.VIS0] + "\r\n" + + // "VIS1:" + Pub.WaitMessage[(int)eWaitMessage.VIS1] + "\r\n" + + // "VIS2:" + Pub.WaitMessage[(int)eWaitMessage.VIS2]; + } + } +} diff --git a/Handler/Project/Dialog/fLog.resx b/Handler/Project/Dialog/fLog.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/Project/Dialog/fLog.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/Project/Dialog/fManualPrint.Designer.cs b/Handler/Project/Dialog/fManualPrint.Designer.cs new file mode 100644 index 0000000..9a32f51 --- /dev/null +++ b/Handler/Project/Dialog/fManualPrint.Designer.cs @@ -0,0 +1,611 @@ +namespace Project.Dialog +{ + partial class fManualPrint + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.chkDelinfo = new System.Windows.Forms.CheckBox(); + this.nudCnt = new System.Windows.Forms.NumericUpDown(); + this.label1 = new System.Windows.Forms.Label(); + this.radRight = new System.Windows.Forms.RadioButton(); + this.radLeft = new System.Windows.Forms.RadioButton(); + this.btPrint = new System.Windows.Forms.Button(); + this.panel1 = new System.Windows.Forms.Panel(); + this.panel8 = new System.Windows.Forms.Panel(); + this.tbPN = new System.Windows.Forms.TextBox(); + this.button9 = new System.Windows.Forms.Button(); + this.button7 = new System.Windows.Forms.Button(); + this.label8 = new System.Windows.Forms.Label(); + this.panel7 = new System.Windows.Forms.Panel(); + this.tbSPY = new System.Windows.Forms.TextBox(); + this.button8 = new System.Windows.Forms.Button(); + this.button6 = new System.Windows.Forms.Button(); + this.label7 = new System.Windows.Forms.Label(); + this.panel6 = new System.Windows.Forms.Panel(); + this.tbRID = new System.Windows.Forms.TextBox(); + this.button5 = new System.Windows.Forms.Button(); + this.label6 = new System.Windows.Forms.Label(); + this.panel5 = new System.Windows.Forms.Panel(); + this.tbDate = new System.Windows.Forms.TextBox(); + this.button4 = new System.Windows.Forms.Button(); + this.label5 = new System.Windows.Forms.Label(); + this.panel4 = new System.Windows.Forms.Panel(); + this.tbQty = new System.Windows.Forms.TextBox(); + this.button3 = new System.Windows.Forms.Button(); + this.label4 = new System.Windows.Forms.Label(); + this.panel3 = new System.Windows.Forms.Panel(); + this.tbVLot = new System.Windows.Forms.TextBox(); + this.button2 = new System.Windows.Forms.Button(); + this.label3 = new System.Windows.Forms.Label(); + this.panel2 = new System.Windows.Forms.Panel(); + this.tbSID = new System.Windows.Forms.TextBox(); + this.button1 = new System.Windows.Forms.Button(); + this.label2 = new System.Windows.Forms.Label(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.tbBarcodeInput = new System.Windows.Forms.TextBox(); + this.groupBox1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudCnt)).BeginInit(); + this.panel1.SuspendLayout(); + this.panel8.SuspendLayout(); + this.panel7.SuspendLayout(); + this.panel6.SuspendLayout(); + this.panel5.SuspendLayout(); + this.panel4.SuspendLayout(); + this.panel3.SuspendLayout(); + this.panel2.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.SuspendLayout(); + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.chkDelinfo); + this.groupBox1.Controls.Add(this.nudCnt); + this.groupBox1.Controls.Add(this.label1); + this.groupBox1.Controls.Add(this.radRight); + this.groupBox1.Controls.Add(this.radLeft); + this.groupBox1.Dock = System.Windows.Forms.DockStyle.Top; + this.groupBox1.Location = new System.Drawing.Point(10, 10); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(522, 68); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Printer"; + // + // chkDelinfo + // + this.chkDelinfo.AutoSize = true; + this.chkDelinfo.Location = new System.Drawing.Point(384, 28); + this.chkDelinfo.Name = "chkDelinfo"; + this.chkDelinfo.Size = new System.Drawing.Size(126, 29); + this.chkDelinfo.TabIndex = 4; + this.chkDelinfo.Text = "인쇄후제거"; + this.chkDelinfo.UseVisualStyleBackColor = true; + // + // nudCnt + // + this.nudCnt.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.nudCnt.Location = new System.Drawing.Point(263, 26); + this.nudCnt.Maximum = new decimal(new int[] { + 99999, + 0, + 0, + 0}); + this.nudCnt.Name = "nudCnt"; + this.nudCnt.Size = new System.Drawing.Size(100, 33); + this.nudCnt.TabIndex = 3; + this.nudCnt.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.nudCnt.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // label1 + // + this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(183, 30); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(64, 25); + this.label1.TabIndex = 2; + this.label1.Text = "Count"; + // + // radRight + // + this.radRight.AutoSize = true; + this.radRight.Checked = true; + this.radRight.Location = new System.Drawing.Point(78, 28); + this.radRight.Name = "radRight"; + this.radRight.Size = new System.Drawing.Size(76, 29); + this.radRight.TabIndex = 1; + this.radRight.TabStop = true; + this.radRight.Text = "Right"; + this.radRight.UseVisualStyleBackColor = true; + // + // radLeft + // + this.radLeft.AutoSize = true; + this.radLeft.Location = new System.Drawing.Point(10, 28); + this.radLeft.Name = "radLeft"; + this.radLeft.Size = new System.Drawing.Size(62, 29); + this.radLeft.TabIndex = 0; + this.radLeft.Text = "Left"; + this.radLeft.UseVisualStyleBackColor = true; + // + // btPrint + // + this.btPrint.Dock = System.Windows.Forms.DockStyle.Bottom; + this.btPrint.Font = new System.Drawing.Font("맑은 고딕", 21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btPrint.Location = new System.Drawing.Point(10, 466); + this.btPrint.Name = "btPrint"; + this.btPrint.Size = new System.Drawing.Size(522, 84); + this.btPrint.TabIndex = 1; + this.btPrint.Text = "Print"; + this.btPrint.UseVisualStyleBackColor = true; + this.btPrint.Click += new System.EventHandler(this.btPrint_Click); + // + // panel1 + // + this.panel1.Controls.Add(this.panel8); + this.panel1.Controls.Add(this.panel7); + this.panel1.Controls.Add(this.panel6); + this.panel1.Controls.Add(this.panel5); + this.panel1.Controls.Add(this.panel4); + this.panel1.Controls.Add(this.panel3); + this.panel1.Controls.Add(this.panel2); + this.panel1.Dock = System.Windows.Forms.DockStyle.Top; + this.panel1.Location = new System.Drawing.Point(10, 78); + this.panel1.Name = "panel1"; + this.panel1.Padding = new System.Windows.Forms.Padding(0, 0, 0, 10); + this.panel1.Size = new System.Drawing.Size(522, 307); + this.panel1.TabIndex = 2; + // + // panel8 + // + this.panel8.Controls.Add(this.tbPN); + this.panel8.Controls.Add(this.button9); + this.panel8.Controls.Add(this.button7); + this.panel8.Controls.Add(this.label8); + this.panel8.Dock = System.Windows.Forms.DockStyle.Top; + this.panel8.Location = new System.Drawing.Point(0, 257); + this.panel8.Name = "panel8"; + this.panel8.Padding = new System.Windows.Forms.Padding(0, 5, 0, 0); + this.panel8.Size = new System.Drawing.Size(522, 43); + this.panel8.TabIndex = 5; + // + // tbPN + // + this.tbPN.Dock = System.Windows.Forms.DockStyle.Fill; + this.tbPN.Location = new System.Drawing.Point(137, 5); + this.tbPN.Name = "tbPN"; + this.tbPN.Size = new System.Drawing.Size(235, 33); + this.tbPN.TabIndex = 1; + this.tbPN.Click += new System.EventHandler(this.tbSID_Click); + // + // button9 + // + this.button9.Dock = System.Windows.Forms.DockStyle.Right; + this.button9.Location = new System.Drawing.Point(372, 5); + this.button9.Name = "button9"; + this.button9.Size = new System.Drawing.Size(75, 38); + this.button9.TabIndex = 2; + this.button9.Text = "N/A"; + this.button9.UseVisualStyleBackColor = true; + this.button9.Click += new System.EventHandler(this.button9_Click); + // + // button7 + // + this.button7.Dock = System.Windows.Forms.DockStyle.Right; + this.button7.Location = new System.Drawing.Point(447, 5); + this.button7.Name = "button7"; + this.button7.Size = new System.Drawing.Size(75, 38); + this.button7.TabIndex = 3; + this.button7.Text = "삭제"; + this.button7.UseVisualStyleBackColor = true; + this.button7.Click += new System.EventHandler(this.button7_Click); + // + // label8 + // + this.label8.Dock = System.Windows.Forms.DockStyle.Left; + this.label8.Location = new System.Drawing.Point(0, 5); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(137, 38); + this.label8.TabIndex = 0; + this.label8.Text = "PN#"; + this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel7 + // + this.panel7.Controls.Add(this.tbSPY); + this.panel7.Controls.Add(this.button8); + this.panel7.Controls.Add(this.button6); + this.panel7.Controls.Add(this.label7); + this.panel7.Dock = System.Windows.Forms.DockStyle.Top; + this.panel7.Location = new System.Drawing.Point(0, 214); + this.panel7.Name = "panel7"; + this.panel7.Padding = new System.Windows.Forms.Padding(0, 5, 0, 0); + this.panel7.Size = new System.Drawing.Size(522, 43); + this.panel7.TabIndex = 4; + // + // tbSPY + // + this.tbSPY.Dock = System.Windows.Forms.DockStyle.Fill; + this.tbSPY.Location = new System.Drawing.Point(137, 5); + this.tbSPY.Name = "tbSPY"; + this.tbSPY.Size = new System.Drawing.Size(235, 33); + this.tbSPY.TabIndex = 1; + this.tbSPY.Click += new System.EventHandler(this.tbSID_Click); + // + // button8 + // + this.button8.Dock = System.Windows.Forms.DockStyle.Right; + this.button8.Location = new System.Drawing.Point(372, 5); + this.button8.Name = "button8"; + this.button8.Size = new System.Drawing.Size(75, 38); + this.button8.TabIndex = 2; + this.button8.Text = "N/A"; + this.button8.UseVisualStyleBackColor = true; + this.button8.Click += new System.EventHandler(this.button8_Click); + // + // button6 + // + this.button6.Dock = System.Windows.Forms.DockStyle.Right; + this.button6.Location = new System.Drawing.Point(447, 5); + this.button6.Name = "button6"; + this.button6.Size = new System.Drawing.Size(75, 38); + this.button6.TabIndex = 3; + this.button6.Text = "삭제"; + this.button6.UseVisualStyleBackColor = true; + this.button6.Click += new System.EventHandler(this.button6_Click); + // + // label7 + // + this.label7.Dock = System.Windows.Forms.DockStyle.Left; + this.label7.Location = new System.Drawing.Point(0, 5); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(137, 38); + this.label7.TabIndex = 0; + this.label7.Text = "SPY"; + this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel6 + // + this.panel6.Controls.Add(this.tbRID); + this.panel6.Controls.Add(this.button5); + this.panel6.Controls.Add(this.label6); + this.panel6.Dock = System.Windows.Forms.DockStyle.Top; + this.panel6.Location = new System.Drawing.Point(0, 171); + this.panel6.Name = "panel6"; + this.panel6.Padding = new System.Windows.Forms.Padding(0, 5, 0, 0); + this.panel6.Size = new System.Drawing.Size(522, 43); + this.panel6.TabIndex = 3; + // + // tbRID + // + this.tbRID.Dock = System.Windows.Forms.DockStyle.Fill; + this.tbRID.Location = new System.Drawing.Point(137, 5); + this.tbRID.Name = "tbRID"; + this.tbRID.Size = new System.Drawing.Size(310, 33); + this.tbRID.TabIndex = 1; + this.tbRID.Click += new System.EventHandler(this.tbSID_Click); + // + // button5 + // + this.button5.Dock = System.Windows.Forms.DockStyle.Right; + this.button5.Location = new System.Drawing.Point(447, 5); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(75, 38); + this.button5.TabIndex = 2; + this.button5.Text = "삭제"; + this.button5.UseVisualStyleBackColor = true; + this.button5.Click += new System.EventHandler(this.button5_Click); + // + // label6 + // + this.label6.Dock = System.Windows.Forms.DockStyle.Left; + this.label6.Location = new System.Drawing.Point(0, 5); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(137, 38); + this.label6.TabIndex = 0; + this.label6.Text = "RID"; + this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel5 + // + this.panel5.Controls.Add(this.tbDate); + this.panel5.Controls.Add(this.button4); + this.panel5.Controls.Add(this.label5); + this.panel5.Dock = System.Windows.Forms.DockStyle.Top; + this.panel5.Location = new System.Drawing.Point(0, 128); + this.panel5.Name = "panel5"; + this.panel5.Padding = new System.Windows.Forms.Padding(0, 5, 0, 0); + this.panel5.Size = new System.Drawing.Size(522, 43); + this.panel5.TabIndex = 2; + // + // tbDate + // + this.tbDate.Dock = System.Windows.Forms.DockStyle.Fill; + this.tbDate.Location = new System.Drawing.Point(137, 5); + this.tbDate.Name = "tbDate"; + this.tbDate.Size = new System.Drawing.Size(310, 33); + this.tbDate.TabIndex = 1; + this.tbDate.Click += new System.EventHandler(this.tbSID_Click); + // + // button4 + // + this.button4.Dock = System.Windows.Forms.DockStyle.Right; + this.button4.Location = new System.Drawing.Point(447, 5); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(75, 38); + this.button4.TabIndex = 2; + this.button4.Text = "삭제"; + this.button4.UseVisualStyleBackColor = true; + this.button4.Click += new System.EventHandler(this.button4_Click); + // + // label5 + // + this.label5.Dock = System.Windows.Forms.DockStyle.Left; + this.label5.Location = new System.Drawing.Point(0, 5); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(137, 38); + this.label5.TabIndex = 0; + this.label5.Text = "DATE"; + this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel4 + // + this.panel4.Controls.Add(this.tbQty); + this.panel4.Controls.Add(this.button3); + this.panel4.Controls.Add(this.label4); + this.panel4.Dock = System.Windows.Forms.DockStyle.Top; + this.panel4.Location = new System.Drawing.Point(0, 85); + this.panel4.Name = "panel4"; + this.panel4.Padding = new System.Windows.Forms.Padding(0, 5, 0, 0); + this.panel4.Size = new System.Drawing.Size(522, 43); + this.panel4.TabIndex = 1; + // + // tbQty + // + this.tbQty.Dock = System.Windows.Forms.DockStyle.Fill; + this.tbQty.Location = new System.Drawing.Point(137, 5); + this.tbQty.Name = "tbQty"; + this.tbQty.Size = new System.Drawing.Size(310, 33); + this.tbQty.TabIndex = 1; + this.tbQty.Click += new System.EventHandler(this.tbSID_Click); + // + // button3 + // + this.button3.Dock = System.Windows.Forms.DockStyle.Right; + this.button3.Location = new System.Drawing.Point(447, 5); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(75, 38); + this.button3.TabIndex = 2; + this.button3.Text = "삭제"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click); + // + // label4 + // + this.label4.Dock = System.Windows.Forms.DockStyle.Left; + this.label4.Location = new System.Drawing.Point(0, 5); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(137, 38); + this.label4.TabIndex = 0; + this.label4.Text = "QTY"; + this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel3 + // + this.panel3.Controls.Add(this.tbVLot); + this.panel3.Controls.Add(this.button2); + this.panel3.Controls.Add(this.label3); + this.panel3.Dock = System.Windows.Forms.DockStyle.Top; + this.panel3.Location = new System.Drawing.Point(0, 42); + this.panel3.Name = "panel3"; + this.panel3.Padding = new System.Windows.Forms.Padding(0, 5, 0, 0); + this.panel3.Size = new System.Drawing.Size(522, 43); + this.panel3.TabIndex = 0; + // + // tbVLot + // + this.tbVLot.Dock = System.Windows.Forms.DockStyle.Fill; + this.tbVLot.Location = new System.Drawing.Point(137, 5); + this.tbVLot.Name = "tbVLot"; + this.tbVLot.Size = new System.Drawing.Size(310, 33); + this.tbVLot.TabIndex = 1; + this.tbVLot.Click += new System.EventHandler(this.tbSID_Click); + // + // button2 + // + this.button2.Dock = System.Windows.Forms.DockStyle.Right; + this.button2.Location = new System.Drawing.Point(447, 5); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(75, 38); + this.button2.TabIndex = 2; + this.button2.Text = "삭제"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // label3 + // + this.label3.Dock = System.Windows.Forms.DockStyle.Left; + this.label3.Location = new System.Drawing.Point(0, 5); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(137, 38); + this.label3.TabIndex = 0; + this.label3.Text = "VLOT"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel2 + // + this.panel2.Controls.Add(this.tbSID); + this.panel2.Controls.Add(this.button1); + this.panel2.Controls.Add(this.label2); + this.panel2.Dock = System.Windows.Forms.DockStyle.Top; + this.panel2.Location = new System.Drawing.Point(0, 0); + this.panel2.Name = "panel2"; + this.panel2.Padding = new System.Windows.Forms.Padding(0, 5, 0, 0); + this.panel2.Size = new System.Drawing.Size(522, 42); + this.panel2.TabIndex = 0; + // + // tbSID + // + this.tbSID.Dock = System.Windows.Forms.DockStyle.Fill; + this.tbSID.Location = new System.Drawing.Point(137, 5); + this.tbSID.Name = "tbSID"; + this.tbSID.Size = new System.Drawing.Size(310, 33); + this.tbSID.TabIndex = 1; + this.tbSID.Click += new System.EventHandler(this.tbSID_Click); + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Right; + this.button1.Location = new System.Drawing.Point(447, 5); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(75, 37); + this.button1.TabIndex = 2; + this.button1.Text = "삭제"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // label2 + // + this.label2.Dock = System.Windows.Forms.DockStyle.Left; + this.label2.Location = new System.Drawing.Point(0, 5); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(137, 37); + this.label2.TabIndex = 0; + this.label2.Text = "SID"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.tbBarcodeInput); + this.groupBox2.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBox2.Location = new System.Drawing.Point(10, 385); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Padding = new System.Windows.Forms.Padding(10); + this.groupBox2.Size = new System.Drawing.Size(522, 81); + this.groupBox2.TabIndex = 0; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "바코드입력칸(커서를 이동 후 입력하세요)"; + // + // tbBarcodeInput + // + this.tbBarcodeInput.Dock = System.Windows.Forms.DockStyle.Fill; + this.tbBarcodeInput.Location = new System.Drawing.Point(10, 36); + this.tbBarcodeInput.Name = "tbBarcodeInput"; + this.tbBarcodeInput.Size = new System.Drawing.Size(502, 33); + this.tbBarcodeInput.TabIndex = 0; + this.tbBarcodeInput.KeyDown += new System.Windows.Forms.KeyEventHandler(this.tbBarcodeInput_KeyDown); + // + // fManualPrint + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(542, 560); + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.panel1); + this.Controls.Add(this.btPrint); + this.Controls.Add(this.groupBox1); + this.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fManualPrint"; + this.Padding = new System.Windows.Forms.Padding(10); + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Manual Print"; + this.Load += new System.EventHandler(this.fManualPrint_Load); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudCnt)).EndInit(); + this.panel1.ResumeLayout(false); + this.panel8.ResumeLayout(false); + this.panel8.PerformLayout(); + this.panel7.ResumeLayout(false); + this.panel7.PerformLayout(); + this.panel6.ResumeLayout(false); + this.panel6.PerformLayout(); + this.panel5.ResumeLayout(false); + this.panel5.PerformLayout(); + this.panel4.ResumeLayout(false); + this.panel4.PerformLayout(); + this.panel3.ResumeLayout(false); + this.panel3.PerformLayout(); + this.panel2.ResumeLayout(false); + this.panel2.PerformLayout(); + this.groupBox2.ResumeLayout(false); + this.groupBox2.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.RadioButton radLeft; + private System.Windows.Forms.Button btPrint; + private System.Windows.Forms.RadioButton radRight; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.NumericUpDown nudCnt; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.TextBox tbSID; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Panel panel8; + private System.Windows.Forms.TextBox tbPN; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Panel panel7; + private System.Windows.Forms.TextBox tbSPY; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Panel panel6; + private System.Windows.Forms.TextBox tbRID; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Panel panel5; + private System.Windows.Forms.TextBox tbDate; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Panel panel4; + private System.Windows.Forms.TextBox tbQty; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Panel panel3; + private System.Windows.Forms.TextBox tbVLot; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.CheckBox chkDelinfo; + private System.Windows.Forms.Button button7; + private System.Windows.Forms.Button button6; + private System.Windows.Forms.Button button5; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button button9; + private System.Windows.Forms.Button button8; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.TextBox tbBarcodeInput; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/fManualPrint.cs b/Handler/Project/Dialog/fManualPrint.cs new file mode 100644 index 0000000..a739d03 --- /dev/null +++ b/Handler/Project/Dialog/fManualPrint.cs @@ -0,0 +1,228 @@ +using Emgu.CV.OCR; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using AR; + +namespace Project.Dialog +{ + public partial class fManualPrint : Form + { + bool ReprintMode = false; + public fManualPrint() + { + InitializeComponent(); + this.FormClosed += FManualPrint_FormClosed; + } + public fManualPrint(string sid, string lot, string qty, string mfg, string rid, string spy, string pn) + { + InitializeComponent(); + this.FormClosed += FManualPrint_FormClosed; + this.tbSID.Text = sid; + this.tbVLot.Text = lot; + this.tbQty.Text = qty; + this.tbDate.Text = mfg; + this.tbRID.Text = rid; + this.tbSPY.Text = spy; + this.tbPN.Text = pn; + chkDelinfo.Enabled = false; + chkDelinfo.Checked = false; + tbBarcodeInput.Enabled = false; + this.ReprintMode = true; + } + + private void fManualPrint_Load(object sender, EventArgs e) + { + var lockvalue = true; + PUB.iLock[(int)eAxis.PZ_PICK].set((int)eILock.MPrint, lockvalue, "COMMINTERLOCK"); + PUB.iLock[(int)eAxis.Z_THETA].set((int)eILock.MPrint, lockvalue, "COMMINTERLOCK"); + PUB.iLock[(int)eAxis.PX_PICK].set((int)eILock.MPrint, lockvalue, "COMMINTERLOCK"); + + PUB.iLock[(int)eAxis.PL_MOVE].set((int)eILock.MPrint, lockvalue, "COMMINTERLOCK"); + PUB.iLock[(int)eAxis.PR_MOVE].set((int)eILock.MPrint, lockvalue, "COMMINTERLOCK"); + + if (ReprintMode) button1.Focus(); + else tbBarcodeInput.Focus(); + } + + private void FManualPrint_FormClosed(object sender, FormClosedEventArgs e) + { + //PUB.LockPKT.set((int)eILockPKX.MPrint, false, "COMMINTERLOCK"); + var lockvalue = false; + PUB.iLock[(int)eAxis.PZ_PICK].set((int)eILock.MPrint, lockvalue, "COMMINTERLOCK"); + PUB.iLock[(int)eAxis.Z_THETA].set((int)eILock.MPrint, lockvalue, "COMMINTERLOCK"); + PUB.iLock[(int)eAxis.PX_PICK].set((int)eILock.MPrint, lockvalue, "COMMINTERLOCK"); + + PUB.iLock[(int)eAxis.PL_MOVE].set((int)eILock.MPrint, lockvalue, "COMMINTERLOCK"); + PUB.iLock[(int)eAxis.PR_MOVE].set((int)eILock.MPrint, lockvalue, "COMMINTERLOCK"); + } + + private void btPrint_Click(object sender, EventArgs e) + { + //프린트해야한다 + string zpl = ""; + string qrdata = ""; + + var Printer = radLeft.Checked ? PUB.PrinterL : PUB.PrinterR; + var sid = tbSID.Text.Trim(); + var rid = tbRID.Text.Trim(); + var lot = tbVLot.Text.Trim(); + var mfg = tbDate.Text.Trim(); + var qty = tbQty.Text.Trim(); + var spy = tbSPY.Text.Trim(); + var pan = tbPN.Text.Trim(); + + if (int.TryParse(qty, out int vqty) == false) + { + UTIL.MsgE("수량은 숫자로 입력하세요"); + tbQty.SelectAll(); + tbQty.Focus(); + return; + } + + zpl = Printer.makeZPL_210908(new Class.Reel + { + sid = sid, + lot = lot, + manu = spy, + qty = vqty, + id = rid, + mfg = mfg, + partnum = pan, + }, SETTING.Data.DrawOutbox, out qrdata); + + var cnt = (int)nudCnt.Value; + for (int i = 0; i < cnt; i++) + { + if (Printer.Print(zpl) == false) + { + //인쇄실패시 처리하지 않음 + UTIL.MsgE("인쇄 실패로 인해 더이상 진행하지 않습니다"); + break; + } + else + { + if (i == 0) //첫장만 로깅 + PUB.log.Add("사용자 프린트 완료" + string.Join("|", new string[] { sid, lot, spy, qty, rid, mfg, pan })); + } + System.Threading.Thread.Sleep(100); + } + + if (ReprintMode) DialogResult = DialogResult.OK; + else + { + //자료를 삭제해야한다 + if (chkDelinfo.Checked) + { + ClearData(tbSID, tbVLot, tbQty, tbDate, tbRID, tbSPY, tbPN); + tbSID.Focus(); + } + + } + + } + void ClearData(params TextBox[] tbs) + { + foreach (var tb in tbs) + { + tb.Text = ""; + tb.Focus(); + } + + } + private void button1_Click(object sender, EventArgs e) + { + //sid + ClearData(tbSID); + } + + + private void button2_Click(object sender, EventArgs e) + { + //vlot + ClearData(tbVLot); + } + + private void button3_Click(object sender, EventArgs e) + { + //qty + ClearData(tbQty); + } + + + private void button4_Click(object sender, EventArgs e) + { + //date + ClearData(tbDate); + } + + private void button5_Click(object sender, EventArgs e) + { + //rid + ClearData(tbRID); + } + + private void button6_Click(object sender, EventArgs e) + { + //spy + ClearData(tbSPY); + } + + private void button7_Click(object sender, EventArgs e) + { + //pn + ClearData(tbPN); + } + + private void tbSID_Click(object sender, EventArgs e) + { + var tb = sender as TextBox; + var rlt = AR.UTIL.InputBox("값을 입력하세요", tb.Text, AR.UTIL.eInputbox.TouchFullSingleLine); + if (rlt.Item1) tb.Text = rlt.Item2; + } + + private void button8_Click(object sender, EventArgs e) + { + tbSPY.Text = "N/A"; + } + + private void button9_Click(object sender, EventArgs e) + { + tbPN.Text = "N/A"; + } + + private void tbBarcodeInput_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + { + var buf = tbBarcodeInput.Text.Trim().Split(';'); + if (buf.Length != 7) + { + UTIL.MsgE("바코드 데이터가 7개가 아닙니다"); + tbBarcodeInput.SelectAll(); + return; + } + if (int.TryParse(buf[3], out var code) == false) + { + UTIL.MsgE("4번데이터(수량)가 숫자가 아닙니다\nAmkor STD 바코드만 허용 됩니다"); + return; + } + tbSID.Text = buf[0]; + tbVLot.Text = buf[1]; + tbSPY.Text = buf[2]; + tbQty.Text = buf[3]; + tbRID.Text = buf[4]; + tbDate.Text = buf[5]; + tbPN.Text = buf[6]; + tbBarcodeInput.SelectAll(); + tbBarcodeInput.Focus(); + } + } + } +} diff --git a/Handler/Project/Dialog/fManualPrint.resx b/Handler/Project/Dialog/fManualPrint.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/Project/Dialog/fManualPrint.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/Project/Dialog/fManualPrint0.Designer.cs b/Handler/Project/Dialog/fManualPrint0.Designer.cs new file mode 100644 index 0000000..d3c1291 --- /dev/null +++ b/Handler/Project/Dialog/fManualPrint0.Designer.cs @@ -0,0 +1,254 @@ +namespace Project.Dialog +{ + partial class fManualPrint0 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.btOK = new System.Windows.Forms.Button(); + this.tbSid = new System.Windows.Forms.TextBox(); + this.lbSID = new System.Windows.Forms.Label(); + this.tbQty = new System.Windows.Forms.TextBox(); + this.lbQty = new System.Windows.Forms.Label(); + this.tbPart = new System.Windows.Forms.TextBox(); + this.lbPart = new System.Windows.Forms.Label(); + this.tbMfg = new System.Windows.Forms.TextBox(); + this.lbMFG = new System.Windows.Forms.Label(); + this.tbManu = new System.Windows.Forms.TextBox(); + this.lbManu = new System.Windows.Forms.Label(); + this.tbLot = new System.Windows.Forms.TextBox(); + this.lbLot = new System.Windows.Forms.Label(); + this.tbRid = new System.Windows.Forms.TextBox(); + this.lbRID = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // btOK + // + this.btOK.Dock = System.Windows.Forms.DockStyle.Bottom; + this.btOK.Location = new System.Drawing.Point(0, 452); + this.btOK.Margin = new System.Windows.Forms.Padding(8, 13, 8, 13); + this.btOK.Name = "btOK"; + this.btOK.Size = new System.Drawing.Size(618, 50); + this.btOK.TabIndex = 18; + this.btOK.Text = "확인"; + this.btOK.UseVisualStyleBackColor = true; + this.btOK.Click += new System.EventHandler(this.btOK_Click); + // + // tbSid + // + this.tbSid.Location = new System.Drawing.Point(132, 380); + this.tbSid.Margin = new System.Windows.Forms.Padding(7); + this.tbSid.Name = "tbSid"; + this.tbSid.Size = new System.Drawing.Size(452, 39); + this.tbSid.TabIndex = 32; + this.tbSid.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // lbSID + // + this.lbSID.Font = new System.Drawing.Font("굴림", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbSID.Location = new System.Drawing.Point(17, 380); + this.lbSID.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0); + this.lbSID.Name = "lbSID"; + this.lbSID.Size = new System.Drawing.Size(101, 72); + this.lbSID.TabIndex = 31; + this.lbSID.Text = "sid"; + this.lbSID.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // tbQty + // + this.tbQty.Location = new System.Drawing.Point(132, 320); + this.tbQty.Margin = new System.Windows.Forms.Padding(7); + this.tbQty.Name = "tbQty"; + this.tbQty.Size = new System.Drawing.Size(452, 39); + this.tbQty.TabIndex = 30; + this.tbQty.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // lbQty + // + this.lbQty.Font = new System.Drawing.Font("굴림", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbQty.ForeColor = System.Drawing.Color.Blue; + this.lbQty.Location = new System.Drawing.Point(17, 320); + this.lbQty.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0); + this.lbQty.Name = "lbQty"; + this.lbQty.Size = new System.Drawing.Size(101, 72); + this.lbQty.TabIndex = 29; + this.lbQty.Text = "qty"; + this.lbQty.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // tbPart + // + this.tbPart.Location = new System.Drawing.Point(132, 259); + this.tbPart.Margin = new System.Windows.Forms.Padding(7); + this.tbPart.Name = "tbPart"; + this.tbPart.Size = new System.Drawing.Size(452, 39); + this.tbPart.TabIndex = 28; + this.tbPart.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // lbPart + // + this.lbPart.Font = new System.Drawing.Font("굴림", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbPart.Location = new System.Drawing.Point(17, 259); + this.lbPart.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0); + this.lbPart.Name = "lbPart"; + this.lbPart.Size = new System.Drawing.Size(101, 72); + this.lbPart.TabIndex = 27; + this.lbPart.Text = "part"; + this.lbPart.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // tbMfg + // + this.tbMfg.Location = new System.Drawing.Point(132, 198); + this.tbMfg.Margin = new System.Windows.Forms.Padding(7); + this.tbMfg.Name = "tbMfg"; + this.tbMfg.Size = new System.Drawing.Size(452, 39); + this.tbMfg.TabIndex = 26; + this.tbMfg.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // lbMFG + // + this.lbMFG.Font = new System.Drawing.Font("굴림", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbMFG.ForeColor = System.Drawing.Color.Blue; + this.lbMFG.Location = new System.Drawing.Point(17, 198); + this.lbMFG.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0); + this.lbMFG.Name = "lbMFG"; + this.lbMFG.Size = new System.Drawing.Size(101, 72); + this.lbMFG.TabIndex = 25; + this.lbMFG.Text = "mfg"; + this.lbMFG.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // tbManu + // + this.tbManu.Location = new System.Drawing.Point(132, 138); + this.tbManu.Margin = new System.Windows.Forms.Padding(7); + this.tbManu.Name = "tbManu"; + this.tbManu.Size = new System.Drawing.Size(452, 39); + this.tbManu.TabIndex = 24; + this.tbManu.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // lbManu + // + this.lbManu.Font = new System.Drawing.Font("굴림", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbManu.Location = new System.Drawing.Point(17, 138); + this.lbManu.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0); + this.lbManu.Name = "lbManu"; + this.lbManu.Size = new System.Drawing.Size(101, 72); + this.lbManu.TabIndex = 23; + this.lbManu.Text = "manu"; + this.lbManu.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // tbLot + // + this.tbLot.Location = new System.Drawing.Point(132, 77); + this.tbLot.Margin = new System.Windows.Forms.Padding(7); + this.tbLot.Name = "tbLot"; + this.tbLot.Size = new System.Drawing.Size(452, 39); + this.tbLot.TabIndex = 22; + this.tbLot.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // lbLot + // + this.lbLot.Font = new System.Drawing.Font("굴림", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbLot.ForeColor = System.Drawing.Color.Blue; + this.lbLot.Location = new System.Drawing.Point(17, 77); + this.lbLot.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0); + this.lbLot.Name = "lbLot"; + this.lbLot.Size = new System.Drawing.Size(101, 72); + this.lbLot.TabIndex = 21; + this.lbLot.Text = "lot"; + this.lbLot.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // tbRid + // + this.tbRid.Location = new System.Drawing.Point(132, 16); + this.tbRid.Margin = new System.Windows.Forms.Padding(7); + this.tbRid.Name = "tbRid"; + this.tbRid.Size = new System.Drawing.Size(452, 39); + this.tbRid.TabIndex = 20; + this.tbRid.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // lbRID + // + this.lbRID.Font = new System.Drawing.Font("굴림", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbRID.ForeColor = System.Drawing.Color.Blue; + this.lbRID.Location = new System.Drawing.Point(17, 20); + this.lbRID.Margin = new System.Windows.Forms.Padding(7, 0, 7, 0); + this.lbRID.Name = "lbRID"; + this.lbRID.Size = new System.Drawing.Size(101, 72); + this.lbRID.TabIndex = 19; + this.lbRID.Text = "rid"; + this.lbRID.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // fManualPrint + // + this.AutoScaleDimensions = new System.Drawing.SizeF(14F, 32F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(618, 502); + this.Controls.Add(this.tbSid); + this.Controls.Add(this.lbSID); + this.Controls.Add(this.tbQty); + this.Controls.Add(this.lbQty); + this.Controls.Add(this.tbPart); + this.Controls.Add(this.lbPart); + this.Controls.Add(this.tbMfg); + this.Controls.Add(this.lbMFG); + this.Controls.Add(this.tbManu); + this.Controls.Add(this.lbManu); + this.Controls.Add(this.tbLot); + this.Controls.Add(this.lbLot); + this.Controls.Add(this.tbRid); + this.Controls.Add(this.lbRID); + this.Controls.Add(this.btOK); + this.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.Margin = new System.Windows.Forms.Padding(6, 8, 6, 8); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fManualPrint"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Make New Reel ID"; + this.Load += new System.EventHandler(this.fNewReelID_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private System.Windows.Forms.Button btOK; + private System.Windows.Forms.TextBox tbSid; + private System.Windows.Forms.Label lbSID; + private System.Windows.Forms.TextBox tbQty; + private System.Windows.Forms.Label lbQty; + private System.Windows.Forms.TextBox tbPart; + private System.Windows.Forms.Label lbPart; + private System.Windows.Forms.TextBox tbMfg; + private System.Windows.Forms.Label lbMFG; + private System.Windows.Forms.TextBox tbManu; + private System.Windows.Forms.Label lbManu; + private System.Windows.Forms.TextBox tbLot; + private System.Windows.Forms.Label lbLot; + private System.Windows.Forms.TextBox tbRid; + private System.Windows.Forms.Label lbRID; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/fManualPrint0.cs b/Handler/Project/Dialog/fManualPrint0.cs new file mode 100644 index 0000000..2f3287f --- /dev/null +++ b/Handler/Project/Dialog/fManualPrint0.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fManualPrint0 : Form + { + public string NewID { get; set; } + public fManualPrint0() + { + InitializeComponent(); + } + private void fNewReelID_Load(object sender, EventArgs e) + { + + } + + private void btOK_Click(object sender, EventArgs e) + { + + int qty = 0; + int.TryParse(tbQty.Text, out qty); + string rid, lot, manu, mfg, partnum,sid; + rid = lot = manu = mfg =sid= partnum = ""; + if (tbRid.Text.isEmpty() == false) rid = tbRid.Text.Trim(); + if (tbSid.Text.isEmpty() == false) sid = tbSid.Text.Trim(); + if (tbMfg.Text.isEmpty() == false) mfg = tbMfg.Text.Trim(); + if (tbPart.Text.isEmpty() == false) partnum = tbPart.Text.Trim(); + if (tbLot.Text.isEmpty() == false) lot = tbLot.Text.Trim(); + if (tbManu.Text.isEmpty() == false) manu = tbManu.Text.Trim(); + var rlt = PUB.PrinterR.Print(new Class.Reel + { + id = rid, + lot = lot, + manu = manu, + mfg = mfg, + partnum =partnum, + qty = qty, + sid = sid, + }, true, false); + + PUB.log.Add($"manual print:{PUB.PrinterR.qrData}"); + } + + } +} diff --git a/Handler/Project/Dialog/fManualPrint0.resx b/Handler/Project/Dialog/fManualPrint0.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/Project/Dialog/fManualPrint0.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/Project/Dialog/fMessageInput.Designer.cs b/Handler/Project/Dialog/fMessageInput.Designer.cs new file mode 100644 index 0000000..ee768f5 --- /dev/null +++ b/Handler/Project/Dialog/fMessageInput.Designer.cs @@ -0,0 +1,77 @@ +namespace Project.Dialog +{ + partial class fMessageInput + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.richTextBox1 = new System.Windows.Forms.RichTextBox(); + this.button1 = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // richTextBox1 + // + this.richTextBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.richTextBox1.Font = new System.Drawing.Font("굴림", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.richTextBox1.Location = new System.Drawing.Point(0, 0); + this.richTextBox1.Name = "richTextBox1"; + this.richTextBox1.Size = new System.Drawing.Size(883, 475); + this.richTextBox1.TabIndex = 0; + this.richTextBox1.Text = "1111111"; + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.button1.Font = new System.Drawing.Font("맑은 고딕", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button1.Location = new System.Drawing.Point(0, 475); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(883, 100); + this.button1.TabIndex = 1; + this.button1.Text = "확인"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // fMessageInput + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(883, 575); + this.Controls.Add(this.richTextBox1); + this.Controls.Add(this.button1); + this.Name = "fMessageInput"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "fMessageInput"; + this.Load += new System.EventHandler(this.fMessageInput_Load); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.RichTextBox richTextBox1; + private System.Windows.Forms.Button button1; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/fMessageInput.cs b/Handler/Project/Dialog/fMessageInput.cs new file mode 100644 index 0000000..13793c0 --- /dev/null +++ b/Handler/Project/Dialog/fMessageInput.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fMessageInput : Form + + { + public string value = string.Empty; + public fMessageInput(string msg) + { + InitializeComponent(); + this.richTextBox1.Text = msg; + this.value = msg; + } + + private void button1_Click(object sender, EventArgs e) + { + this.value = this.richTextBox1.Text.Trim(); + DialogResult = DialogResult.OK; + } + + private void fMessageInput_Load(object sender, EventArgs e) + { + this.richTextBox1.SelectAll(); + this.richTextBox1.Focus(); + } + } +} diff --git a/Handler/Project/Dialog/fMessageInput.resx b/Handler/Project/Dialog/fMessageInput.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/Project/Dialog/fMessageInput.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/Project/Dialog/fNewReelID.Designer.cs b/Handler/Project/Dialog/fNewReelID.Designer.cs new file mode 100644 index 0000000..2b88539 --- /dev/null +++ b/Handler/Project/Dialog/fNewReelID.Designer.cs @@ -0,0 +1,412 @@ +namespace Project.Dialog +{ + partial class fNewReelID + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.linkLabel3 = new System.Windows.Forms.LinkLabel(); + this.linkLabel2 = new System.Windows.Forms.LinkLabel(); + this.linkLabel1 = new System.Windows.Forms.LinkLabel(); + this.tbDiv = new System.Windows.Forms.TextBox(); + this.btOK = new System.Windows.Forms.Button(); + this.tbRID = new System.Windows.Forms.TextBox(); + this.tbCustCode = new System.Windows.Forms.TextBox(); + this.tbYear = new System.Windows.Forms.TextBox(); + this.linkLabel4 = new System.Windows.Forms.LinkLabel(); + this.tbSeq = new System.Windows.Forms.TextBox(); + this.tb1 = new System.Windows.Forms.TextBox(); + this.tbtype = new System.Windows.Forms.TextBox(); + this.linkLabel5 = new System.Windows.Forms.LinkLabel(); + this.linkLabel6 = new System.Windows.Forms.LinkLabel(); + this.linkLabel7 = new System.Windows.Forms.LinkLabel(); + this.tbLoca = new System.Windows.Forms.TextBox(); + this.linkLabel8 = new System.Windows.Forms.LinkLabel(); + this.tbMon = new System.Windows.Forms.TextBox(); + this.button8 = new System.Windows.Forms.Button(); + this.lbLen = new System.Windows.Forms.Label(); + this.button1 = new System.Windows.Forms.Button(); + this.radNormal = new System.Windows.Forms.RadioButton(); + this.radReturn = new System.Windows.Forms.RadioButton(); + this.radDup = new System.Windows.Forms.RadioButton(); + this.SuspendLayout(); + // + // linkLabel3 + // + this.linkLabel3.AutoSize = true; + this.linkLabel3.Location = new System.Drawing.Point(58, 196); + this.linkLabel3.Margin = new System.Windows.Forms.Padding(8, 0, 8, 0); + this.linkLabel3.Name = "linkLabel3"; + this.linkLabel3.Size = new System.Drawing.Size(95, 32); + this.linkLabel3.TabIndex = 8; + this.linkLabel3.TabStop = true; + this.linkLabel3.Text = "분류(1)"; + this.linkLabel3.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel3_LinkClicked); + // + // linkLabel2 + // + this.linkLabel2.AutoSize = true; + this.linkLabel2.Location = new System.Drawing.Point(10, 104); + this.linkLabel2.Margin = new System.Windows.Forms.Padding(8, 0, 8, 0); + this.linkLabel2.Name = "linkLabel2"; + this.linkLabel2.Size = new System.Drawing.Size(143, 32); + this.linkLabel2.TabIndex = 4; + this.linkLabel2.TabStop = true; + this.linkLabel2.Text = "고객번호(4)"; + this.linkLabel2.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel2_LinkClicked); + // + // linkLabel1 + // + this.linkLabel1.AutoSize = true; + this.linkLabel1.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); + this.linkLabel1.Location = new System.Drawing.Point(58, 242); + this.linkLabel1.Margin = new System.Windows.Forms.Padding(8, 0, 8, 0); + this.linkLabel1.Name = "linkLabel1"; + this.linkLabel1.Size = new System.Drawing.Size(95, 32); + this.linkLabel1.TabIndex = 10; + this.linkLabel1.TabStop = true; + this.linkLabel1.Text = "년도(2)"; + this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked); + // + // tbDiv + // + this.tbDiv.Location = new System.Drawing.Point(160, 193); + this.tbDiv.Margin = new System.Windows.Forms.Padding(8, 13, 8, 13); + this.tbDiv.Name = "tbDiv"; + this.tbDiv.Size = new System.Drawing.Size(404, 39); + this.tbDiv.TabIndex = 9; + this.tbDiv.Text = "A/M/L"; + this.tbDiv.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.tbDiv.TextChanged += new System.EventHandler(this.tbCustCode_TextChanged); + // + // btOK + // + this.btOK.Dock = System.Windows.Forms.DockStyle.Bottom; + this.btOK.Location = new System.Drawing.Point(0, 458); + this.btOK.Margin = new System.Windows.Forms.Padding(8, 13, 8, 13); + this.btOK.Name = "btOK"; + this.btOK.Size = new System.Drawing.Size(573, 50); + this.btOK.TabIndex = 18; + this.btOK.Text = "확인"; + this.btOK.UseVisualStyleBackColor = true; + this.btOK.Click += new System.EventHandler(this.btOK_Click); + // + // tbRID + // + this.tbRID.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.tbRID.Font = new System.Drawing.Font("맑은 고딕", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tbRID.Location = new System.Drawing.Point(107, 417); + this.tbRID.Margin = new System.Windows.Forms.Padding(8, 13, 8, 13); + this.tbRID.Name = "tbRID"; + this.tbRID.ReadOnly = true; + this.tbRID.Size = new System.Drawing.Size(364, 32); + this.tbRID.TabIndex = 17; + this.tbRID.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // tbCustCode + // + this.tbCustCode.BackColor = System.Drawing.SystemColors.Window; + this.tbCustCode.Location = new System.Drawing.Point(160, 101); + this.tbCustCode.Margin = new System.Windows.Forms.Padding(8, 13, 8, 13); + this.tbCustCode.Name = "tbCustCode"; + this.tbCustCode.Size = new System.Drawing.Size(404, 39); + this.tbCustCode.TabIndex = 5; + this.tbCustCode.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.tbCustCode.TextChanged += new System.EventHandler(this.tbCustCode_TextChanged); + // + // tbYear + // + this.tbYear.BackColor = System.Drawing.SystemColors.Window; + this.tbYear.Location = new System.Drawing.Point(160, 239); + this.tbYear.Margin = new System.Windows.Forms.Padding(8, 13, 8, 13); + this.tbYear.Name = "tbYear"; + this.tbYear.Size = new System.Drawing.Size(404, 39); + this.tbYear.TabIndex = 11; + this.tbYear.Text = "21"; + this.tbYear.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.tbYear.TextChanged += new System.EventHandler(this.tbCustCode_TextChanged); + // + // linkLabel4 + // + this.linkLabel4.AutoSize = true; + this.linkLabel4.Location = new System.Drawing.Point(10, 334); + this.linkLabel4.Margin = new System.Windows.Forms.Padding(8, 0, 8, 0); + this.linkLabel4.Name = "linkLabel4"; + this.linkLabel4.Size = new System.Drawing.Size(143, 32); + this.linkLabel4.TabIndex = 14; + this.linkLabel4.TabStop = true; + this.linkLabel4.Text = "일련번호(4)"; + this.linkLabel4.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel4_LinkClicked); + // + // tbSeq + // + this.tbSeq.Location = new System.Drawing.Point(160, 331); + this.tbSeq.Margin = new System.Windows.Forms.Padding(8, 13, 8, 13); + this.tbSeq.Name = "tbSeq"; + this.tbSeq.Size = new System.Drawing.Size(289, 39); + this.tbSeq.TabIndex = 15; + this.tbSeq.Text = "R000,0001"; + this.tbSeq.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.tbSeq.TextChanged += new System.EventHandler(this.tbCustCode_TextChanged); + // + // tb1 + // + this.tb1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); + this.tb1.Location = new System.Drawing.Point(160, 9); + this.tb1.Margin = new System.Windows.Forms.Padding(8, 13, 8, 13); + this.tb1.Name = "tb1"; + this.tb1.Size = new System.Drawing.Size(404, 39); + this.tb1.TabIndex = 1; + this.tb1.Text = "R"; + this.tb1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.tb1.TextChanged += new System.EventHandler(this.tbCustCode_TextChanged); + // + // tbtype + // + this.tbtype.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); + this.tbtype.Location = new System.Drawing.Point(160, 55); + this.tbtype.Margin = new System.Windows.Forms.Padding(8, 13, 8, 13); + this.tbtype.Name = "tbtype"; + this.tbtype.Size = new System.Drawing.Size(404, 39); + this.tbtype.TabIndex = 3; + this.tbtype.Text = "I/C"; + this.tbtype.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.tbtype.TextChanged += new System.EventHandler(this.tbCustCode_TextChanged); + // + // linkLabel5 + // + this.linkLabel5.AutoSize = true; + this.linkLabel5.Location = new System.Drawing.Point(58, 12); + this.linkLabel5.Margin = new System.Windows.Forms.Padding(8, 0, 8, 0); + this.linkLabel5.Name = "linkLabel5"; + this.linkLabel5.Size = new System.Drawing.Size(95, 32); + this.linkLabel5.TabIndex = 0; + this.linkLabel5.TabStop = true; + this.linkLabel5.Text = "예약(1)"; + this.linkLabel5.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel5_LinkClicked); + // + // linkLabel6 + // + this.linkLabel6.AutoSize = true; + this.linkLabel6.Location = new System.Drawing.Point(58, 58); + this.linkLabel6.Margin = new System.Windows.Forms.Padding(8, 0, 8, 0); + this.linkLabel6.Name = "linkLabel6"; + this.linkLabel6.Size = new System.Drawing.Size(95, 32); + this.linkLabel6.TabIndex = 2; + this.linkLabel6.TabStop = true; + this.linkLabel6.Text = "종류(1)"; + this.linkLabel6.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel6_LinkClicked); + // + // linkLabel7 + // + this.linkLabel7.AutoSize = true; + this.linkLabel7.Location = new System.Drawing.Point(34, 150); + this.linkLabel7.Margin = new System.Windows.Forms.Padding(8, 0, 8, 0); + this.linkLabel7.Name = "linkLabel7"; + this.linkLabel7.Size = new System.Drawing.Size(119, 32); + this.linkLabel7.TabIndex = 6; + this.linkLabel7.TabStop = true; + this.linkLabel7.Text = "발행처(1)"; + this.linkLabel7.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel7_LinkClicked); + // + // tbLoca + // + this.tbLoca.BackColor = System.Drawing.SystemColors.Window; + this.tbLoca.Location = new System.Drawing.Point(160, 147); + this.tbLoca.Margin = new System.Windows.Forms.Padding(8, 13, 8, 13); + this.tbLoca.Name = "tbLoca"; + this.tbLoca.Size = new System.Drawing.Size(404, 39); + this.tbLoca.TabIndex = 7; + this.tbLoca.Text = "K3=3,K4=4,K5=5"; + this.tbLoca.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.tbLoca.TextChanged += new System.EventHandler(this.tbCustCode_TextChanged); + // + // linkLabel8 + // + this.linkLabel8.AutoSize = true; + this.linkLabel8.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); + this.linkLabel8.Location = new System.Drawing.Point(82, 288); + this.linkLabel8.Margin = new System.Windows.Forms.Padding(8, 0, 8, 0); + this.linkLabel8.Name = "linkLabel8"; + this.linkLabel8.Size = new System.Drawing.Size(71, 32); + this.linkLabel8.TabIndex = 12; + this.linkLabel8.TabStop = true; + this.linkLabel8.Text = "월(1)"; + this.linkLabel8.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel8_LinkClicked); + // + // tbMon + // + this.tbMon.BackColor = System.Drawing.SystemColors.Window; + this.tbMon.Location = new System.Drawing.Point(160, 285); + this.tbMon.Margin = new System.Windows.Forms.Padding(8, 13, 8, 13); + this.tbMon.Name = "tbMon"; + this.tbMon.Size = new System.Drawing.Size(404, 39); + this.tbMon.TabIndex = 13; + this.tbMon.Text = "10=A,11=B,12=C"; + this.tbMon.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.tbMon.TextChanged += new System.EventHandler(this.tbCustCode_TextChanged); + // + // button8 + // + this.button8.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.button8.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button8.Location = new System.Drawing.Point(477, 417); + this.button8.Name = "button8"; + this.button8.Size = new System.Drawing.Size(87, 32); + this.button8.TabIndex = 31; + this.button8.Text = "중복검사"; + this.button8.UseVisualStyleBackColor = true; + this.button8.Click += new System.EventHandler(this.button8_Click); + // + // lbLen + // + this.lbLen.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.lbLen.BackColor = System.Drawing.Color.Tomato; + this.lbLen.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.lbLen.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbLen.Location = new System.Drawing.Point(13, 417); + this.lbLen.Name = "lbLen"; + this.lbLen.Size = new System.Drawing.Size(89, 32); + this.lbLen.TabIndex = 33; + this.lbLen.Text = "길이"; + this.lbLen.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // button1 + // + this.button1.Font = new System.Drawing.Font("맑은 고딕", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button1.Location = new System.Drawing.Point(460, 331); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(104, 39); + this.button1.TabIndex = 34; + this.button1.Text = "생성"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click_1); + // + // radNormal + // + this.radNormal.AutoSize = true; + this.radNormal.Checked = true; + this.radNormal.Location = new System.Drawing.Point(160, 376); + this.radNormal.Name = "radNormal"; + this.radNormal.Size = new System.Drawing.Size(81, 36); + this.radNormal.TabIndex = 36; + this.radNormal.TabStop = true; + this.radNormal.Text = "일반"; + this.radNormal.UseVisualStyleBackColor = true; + this.radNormal.Click += new System.EventHandler(this.radNormal_Click); + // + // radReturn + // + this.radReturn.AutoSize = true; + this.radReturn.Location = new System.Drawing.Point(247, 376); + this.radReturn.Name = "radReturn"; + this.radReturn.Size = new System.Drawing.Size(81, 36); + this.radReturn.TabIndex = 36; + this.radReturn.Text = "반환"; + this.radReturn.UseVisualStyleBackColor = true; + this.radReturn.Click += new System.EventHandler(this.radNormal_Click); + // + // radDup + // + this.radDup.AutoSize = true; + this.radDup.Location = new System.Drawing.Point(334, 376); + this.radDup.Name = "radDup"; + this.radDup.Size = new System.Drawing.Size(81, 36); + this.radDup.TabIndex = 36; + this.radDup.Text = "중복"; + this.radDup.UseVisualStyleBackColor = true; + this.radDup.Click += new System.EventHandler(this.radNormal_Click); + // + // fNewReelID + // + this.AutoScaleDimensions = new System.Drawing.SizeF(14F, 32F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(573, 508); + this.Controls.Add(this.radDup); + this.Controls.Add(this.radReturn); + this.Controls.Add(this.radNormal); + this.Controls.Add(this.button1); + this.Controls.Add(this.lbLen); + this.Controls.Add(this.button8); + this.Controls.Add(this.linkLabel8); + this.Controls.Add(this.tbMon); + this.Controls.Add(this.linkLabel7); + this.Controls.Add(this.tbLoca); + this.Controls.Add(this.linkLabel6); + this.Controls.Add(this.linkLabel5); + this.Controls.Add(this.tbtype); + this.Controls.Add(this.tb1); + this.Controls.Add(this.linkLabel4); + this.Controls.Add(this.tbSeq); + this.Controls.Add(this.linkLabel3); + this.Controls.Add(this.linkLabel2); + this.Controls.Add(this.linkLabel1); + this.Controls.Add(this.tbDiv); + this.Controls.Add(this.btOK); + this.Controls.Add(this.tbRID); + this.Controls.Add(this.tbCustCode); + this.Controls.Add(this.tbYear); + this.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.Margin = new System.Windows.Forms.Padding(6, 8, 6, 8); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fNewReelID"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Make New Reel ID"; + this.Load += new System.EventHandler(this.fNewReelID_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.LinkLabel linkLabel3; + private System.Windows.Forms.LinkLabel linkLabel2; + private System.Windows.Forms.LinkLabel linkLabel1; + private System.Windows.Forms.Button btOK; + private System.Windows.Forms.LinkLabel linkLabel4; + public System.Windows.Forms.TextBox tbDiv; + public System.Windows.Forms.TextBox tbCustCode; + public System.Windows.Forms.TextBox tbYear; + public System.Windows.Forms.TextBox tbSeq; + private System.Windows.Forms.TextBox tbRID; + public System.Windows.Forms.TextBox tb1; + public System.Windows.Forms.TextBox tbtype; + private System.Windows.Forms.LinkLabel linkLabel5; + private System.Windows.Forms.LinkLabel linkLabel6; + private System.Windows.Forms.LinkLabel linkLabel7; + public System.Windows.Forms.TextBox tbLoca; + private System.Windows.Forms.LinkLabel linkLabel8; + public System.Windows.Forms.TextBox tbMon; + private System.Windows.Forms.Button button8; + private System.Windows.Forms.Label lbLen; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.RadioButton radNormal; + private System.Windows.Forms.RadioButton radReturn; + private System.Windows.Forms.RadioButton radDup; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/fNewReelID.cs b/Handler/Project/Dialog/fNewReelID.cs new file mode 100644 index 0000000..f8ce863 --- /dev/null +++ b/Handler/Project/Dialog/fNewReelID.cs @@ -0,0 +1,261 @@ +using AR; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fNewReelID : Form + { + public string NewID { get; set; } + public fNewReelID(string custcode) + { + InitializeComponent(); + this.NewID = string.Empty; + tbCustCode.Text = custcode; + + if (PUB.Result.JobType2 == "RET") + radReturn.Checked = true; + else + radNormal.Checked = false; + + + tbRID.TextChanged += (s1, e1) => + { + lbLen.Text = $"길이({tbRID.Text.Length})"; + lbLen.BackColor = tbRID.Text.Length == 15 ? Color.Lime : Color.Tomato; + }; + } + private void fNewReelID_Load(object sender, EventArgs e) + { + tbtype.Text = "C"; + tbLoca.Text = AR.SETTING.Data.ReelIdDeviceLoc; + tbDiv.Text = AR.SETTING.Data.ReelIdDeviceID; + tbYear.Text = DateTime.Now.Year.ToString().Substring(2); + tbMon.Text = DateTime.Now.Month.ToString("X"); + this.radNormal.Checked = true; + RefreshID(); + } + + private void btOK_Click(object sender, EventArgs e) + { + var codelen = 15; + this.NewID = tbRID.Text; + if (this.NewID.Length != codelen) + { + UTIL.MsgE($"Reel ID는 {codelen}자리 입니다"); + return; + } + + //db에서도 검색한다 + var db = new EEEntities(); + if (db.Component_Reel_Result.Where(t => t.RID == NewID).Any()) + { + UTIL.MsgE($"해당 ID는 발행 기록이 있는 ID 입니다\n값:{NewID}"); + return; + } + + //서버에서 중복검사실행 + if (AR.SETTING.Data.OnlineMode == false) + { + UTIL.MsgE("오프라인 모드라 사용할 수 없습니다"); + return; + } + + var rlt = Amkor.RestfulService.get_existed_matl_by_id(NewID); + if (rlt.Complete == false) + { + UTIL.MsgE("중복검사 실패\n" + rlt.Message); + return; + } + else if (rlt.Result == true) + { + UTIL.MsgE("REEL ID 가 중복되었습니다\n새로고침 하세요"); + return; + } + + ////데이터를 추가해준다. + //var db = new EEEntities(); + //db.Component_Reel_NewAssign.Add(new Component_Reel_NewAssign() + //{ + // bPrint = false, + // CUST = tbCustCode.Text.Trim(), + // TIME = tbYear.Text.Trim(), + // DIV = tbDiv.Text.Trim(), + // SEQ = tbSeq.Text, + // RID = tbRID.Text.Trim(), + // wdate = DateTime.Now, + // wuid = COMM.SETTING.Data.Asset, + //}); + //db.SaveChanges(); + + DialogResult = DialogResult.OK; + } + void UpdateRID() + { + var data = tb1.Text.Trim(); + data += tbtype.Text.Trim(); + data += tbCustCode.Text.Trim(); + data += tbLoca.Text.Trim(); + data += tbDiv.Text.Trim(); + data += tbYear.Text.Trim(); + data += tbMon.Text.Trim(); + data += tbSeq.Text.Trim(); + this.tbRID.Text = data; + } + + private void tbCustCode_TextChanged(object sender, EventArgs e) + { + UpdateRID(); + } + + private void button1_Click(object sender, EventArgs e) + { + RefreshID(); + } + void RefreshID() + { + if (tbCustCode.Text.Length != 4) + { + tbCustCode.Focus(); + tbCustCode.SelectAll(); + } + + + //시간정보업데이트 + tbYear.Text = DateTime.Now.ToString("yy"); + tbDiv.Text = AR.SETTING.Data.ReelIdDeviceID; //라벨어태치용 + + UpdateSN(); + UpdateRID(); + } + + /// + /// 일련번호 업데이트 + /// + void UpdateSN() + { + var datestr = this.tbYear.Text + this.tbMon.Text; + if (datestr.Length != 3) + { + UTIL.MsgE("년도/월 값이 입력되지 않았습니다"); + return; + } + + var newsn = string.Empty; + + if (this.radReturn.Checked) + newsn = AmkorReelID.GetNextSNbyYM_Return(datestr); + else if (this.radDup.Checked) + newsn = AmkorReelID.GetNextSNbyYM_Dup(datestr); + else + newsn = AmkorReelID.GetNextSNbyYM(datestr); + + tbSeq.Text = newsn; + } + + private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + UTIL.TouchKeyShow(tbCustCode, "고객코드를 입력하세요"); + } + + private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + UTIL.TouchKeyShow(tbDiv, "장치 분류를 입력(L:Logistic/M:Manufacture,A:AutoLabel Attach)"); + } + + private void linkLabel4_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + UTIL.TouchKeyShow(tbSeq, "일련번호입력(001~999)"); + } + + private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + UTIL.TouchKeyShow(tbYear, "년도(2자리)"); + } + + private void linkLabel5_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + UTIL.TouchKeyShow(tb1, "예약됨(R)"); + } + + private void linkLabel6_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + UTIL.TouchKeyShow(tbtype, "예약됨(C/I)"); + } + + private void linkLabel7_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + UTIL.TouchKeyShow(tbLoca, "발행처(3/4/5)"); + } + + private void linkLabel8_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + UTIL.TouchKeyShow(tbMon, "월(1자리 10월=A,11월=B,12월=C"); + } + + private void button8_Click(object sender, EventArgs e) + { + //중복검사 + var rid = tbRID.Text.Trim(); + if (rid.isEmpty()) + { + UTIL.MsgE("Reel Id 값이 없습니다"); + return; + } + + //db에서도 검색한다 + if (AR.SETTING.Data.OnlineMode) + { + var db = new EEEntities(); + if (db.Component_Reel_Result.Where(t => t.RID == rid).Any()) + { + UTIL.MsgE($"해당 ID는 발행 기록이 있는 ID 입니다\n값:{rid}"); + return; + } + + var result = Amkor.RestfulService.get_existed_matl_by_id(rid); + if (result.Complete == false) + { + UTIL.MsgE("중복검사 서버 오류\n" + result.Message); + } + else + { + if (result.Result == true) + { + UTIL.MsgE($"해당 ID는 중복된 ID 입니다\n값:{rid}"); + return; + } + else + { + UTIL.MsgI($"해당 ID는 중복되지 않았습니다\n{rid}"); + } + } + } + + } + + private void chkReturn_CheckedChanged(object sender, EventArgs e) + { + UpdateSN(); + UpdateRID(); + } + + private void button1_Click_1(object sender, EventArgs e) + { + UpdateSN(); + } + + private void radNormal_Click(object sender, EventArgs e) + { + UpdateSN(); + UpdateRID(); + } + } +} diff --git a/Handler/Project/Dialog/fNewReelID.resx b/Handler/Project/Dialog/fNewReelID.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/Project/Dialog/fNewReelID.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/Project/Dialog/fNewSID.Designer.cs b/Handler/Project/Dialog/fNewSID.Designer.cs new file mode 100644 index 0000000..d46c4c7 --- /dev/null +++ b/Handler/Project/Dialog/fNewSID.Designer.cs @@ -0,0 +1,134 @@ +namespace Project.Dialog +{ + partial class fNewSID + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.button1 = new System.Windows.Forms.Button(); + this.tbOldSid = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.tbNewSid = new System.Windows.Forms.TextBox(); + this.linkLabel3 = new System.Windows.Forms.LinkLabel(); + this.button2 = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.button1.Location = new System.Drawing.Point(10, 138); + this.button1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(694, 68); + this.button1.TabIndex = 4; + this.button1.Text = "확인"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // tbOldSid + // + this.tbOldSid.Location = new System.Drawing.Point(182, 17); + this.tbOldSid.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.tbOldSid.Name = "tbOldSid"; + this.tbOldSid.ReadOnly = true; + this.tbOldSid.Size = new System.Drawing.Size(368, 43); + this.tbOldSid.TabIndex = 2; + this.tbOldSid.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(55, 17); + this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(114, 37); + this.label3.TabIndex = 3; + this.label3.Text = "Old SID"; + // + // tb1 + // + this.tbNewSid.Location = new System.Drawing.Point(182, 71); + this.tbNewSid.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.tbNewSid.Name = "tb1"; + this.tbNewSid.Size = new System.Drawing.Size(368, 43); + this.tbNewSid.TabIndex = 6; + this.tbNewSid.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // linkLabel3 + // + this.linkLabel3.AutoSize = true; + this.linkLabel3.Location = new System.Drawing.Point(52, 71); + this.linkLabel3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.linkLabel3.Name = "linkLabel3"; + this.linkLabel3.Size = new System.Drawing.Size(127, 37); + this.linkLabel3.TabIndex = 8; + this.linkLabel3.TabStop = true; + this.linkLabel3.Text = "New SID"; + this.linkLabel3.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel3_LinkClicked); + // + // button2 + // + this.button2.Location = new System.Drawing.Point(557, 17); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(147, 97); + this.button2.TabIndex = 9; + this.button2.Text = "변환정보에서 찾기"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // fNewSID + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(714, 216); + this.Controls.Add(this.button2); + this.Controls.Add(this.linkLabel3); + this.Controls.Add(this.tbNewSid); + this.Controls.Add(this.button1); + this.Controls.Add(this.label3); + this.Controls.Add(this.tbOldSid); + this.Font = new System.Drawing.Font("맑은 고딕", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fNewSID"; + this.Padding = new System.Windows.Forms.Padding(10); + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Find New SID"; + this.Load += new System.EventHandler(this.fNewSID_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private System.Windows.Forms.Button button1; + private System.Windows.Forms.TextBox tbOldSid; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox tbNewSid; + private System.Windows.Forms.LinkLabel linkLabel3; + private System.Windows.Forms.Button button2; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/fNewSID.cs b/Handler/Project/Dialog/fNewSID.cs new file mode 100644 index 0000000..76c7409 --- /dev/null +++ b/Handler/Project/Dialog/fNewSID.cs @@ -0,0 +1,104 @@ +using AR; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fNewSID : Form + { + public int FindSIDCount = -1; + public string NewSID { get; set; } + public fNewSID(string presid) + { + InitializeComponent(); + this.tbOldSid.Text = presid; + + } + + private void fNewSID_Load(object sender, EventArgs e) + { + //해당 sid 로 101,103,106 가능한 sid 목록을 표시한다 + var sid = tbOldSid.Text.Trim(); + var presid = this.tbOldSid.Text; + + var newsid = PUB.SIDCovert(presid, "fNewSID_Load", out bool converr); + if (converr == false) + { + tbNewSid.Text = newsid; + } + else + { + if (newsid.Contains('|')) + { + //multi sid list + var lst = new List(); + foreach (var SIDTo in newsid.Split('|')) + { + var msidto = presid + ";" + SIDTo; + lst.Add(msidto); + } + var f = new Dialog.fSelectSID(lst); + if (f.ShowDialog() == DialogResult.OK) + { + var v = f.Value.Split(';'); //0은 old .1=new + tbNewSid.Text = v[1].Trim(); + } + } + else + { + tbNewSid.Text = string.Empty; + } + } + + + } + + private void button1_Click(object sender, EventArgs e) + { + this.NewSID = tbNewSid.Text.Trim(); + + if (NewSID.isEmpty()) + { + UTIL.MsgE("SID값이 입력(선택) 되지 않았습니다"); + return; + } + + if (NewSID == tbOldSid.Text) + { + UTIL.MsgE($"기존 SID와 동일한 SID값이 확인되었습니다\n\n" + + $"기존:{tbOldSid.Text}\n" + + $"신규:{NewSID}"); + return; + } + + DialogResult = DialogResult.OK; + } + + private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + UTIL.TouchKeyShow(tbNewSid, "Input SID"); + } + + private void button2_Click(object sender, EventArgs e) + { + var old = this.tbOldSid.Text.Trim(); + var newsid = PUB.SIDCovert(old, "fNewSID_Button2Click", out bool err); + + if (err == false) + tbNewSid.Text = newsid; + else + { + tbNewSid.Text = string.Empty; + UTIL.MsgE(newsid); + } + + } + } +} diff --git a/Handler/Project/Dialog/fNewSID.resx b/Handler/Project/Dialog/fNewSID.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/Project/Dialog/fNewSID.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/Project/Dialog/fPickerMove.Designer.cs b/Handler/Project/Dialog/fPickerMove.Designer.cs new file mode 100644 index 0000000..70d9cde --- /dev/null +++ b/Handler/Project/Dialog/fPickerMove.Designer.cs @@ -0,0 +1,423 @@ +namespace Project.Dialog +{ + partial class fPickerMove + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.btlw = new System.Windows.Forms.Button(); + this.btc = new System.Windows.Forms.Button(); + this.btl = new System.Windows.Forms.Button(); + this.btrw = new System.Windows.Forms.Button(); + this.btr = new System.Windows.Forms.Button(); + this.button6 = new System.Windows.Forms.Button(); + this.button7 = new System.Windows.Forms.Button(); + this.button8 = new System.Windows.Forms.Button(); + this.button9 = new System.Windows.Forms.Button(); + this.button10 = new System.Windows.Forms.Button(); + this.button11 = new System.Windows.Forms.Button(); + this.button12 = new System.Windows.Forms.Button(); + this.button13 = new System.Windows.Forms.Button(); + this.timer1 = new System.Windows.Forms.Timer(this.components); + this.button14 = new System.Windows.Forms.Button(); + this.button15 = new System.Windows.Forms.Button(); + this.button5 = new System.Windows.Forms.Button(); + this.button4 = new System.Windows.Forms.Button(); + this.button3 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.button1 = new System.Windows.Forms.Button(); + this.tableLayoutPanel1.SuspendLayout(); + this.SuspendLayout(); + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 5; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel1.Controls.Add(this.button9, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.button10, 4, 2); + this.tableLayoutPanel1.Controls.Add(this.button11, 1, 2); + this.tableLayoutPanel1.Controls.Add(this.button12, 2, 2); + this.tableLayoutPanel1.Controls.Add(this.button13, 3, 2); + this.tableLayoutPanel1.Controls.Add(this.button1, 0, 3); + this.tableLayoutPanel1.Controls.Add(this.button2, 1, 3); + this.tableLayoutPanel1.Controls.Add(this.button3, 2, 3); + this.tableLayoutPanel1.Controls.Add(this.button4, 3, 3); + this.tableLayoutPanel1.Controls.Add(this.button5, 4, 3); + this.tableLayoutPanel1.Controls.Add(this.btl, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.btlw, 1, 1); + this.tableLayoutPanel1.Controls.Add(this.btc, 2, 1); + this.tableLayoutPanel1.Controls.Add(this.btrw, 3, 1); + this.tableLayoutPanel1.Controls.Add(this.btr, 4, 1); + this.tableLayoutPanel1.Controls.Add(this.button6, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.button7, 3, 0); + this.tableLayoutPanel1.Controls.Add(this.button8, 2, 0); + this.tableLayoutPanel1.Controls.Add(this.button14, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.button15, 4, 0); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 4; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.00001F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(822, 561); + this.tableLayoutPanel1.TabIndex = 0; + // + // btlw + // + this.btlw.Dock = System.Windows.Forms.DockStyle.Fill; + this.btlw.Font = new System.Drawing.Font("맑은 고딕", 25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btlw.Location = new System.Drawing.Point(174, 150); + this.btlw.Margin = new System.Windows.Forms.Padding(10); + this.btlw.Name = "btlw"; + this.btlw.Size = new System.Drawing.Size(144, 120); + this.btlw.TabIndex = 0; + this.btlw.Text = "대기"; + this.btlw.UseVisualStyleBackColor = true; + this.btlw.Click += new System.EventHandler(this.button1_Click); + // + // btc + // + this.btc.Dock = System.Windows.Forms.DockStyle.Fill; + this.btc.Font = new System.Drawing.Font("맑은 고딕", 25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btc.ForeColor = System.Drawing.Color.ForestGreen; + this.btc.Location = new System.Drawing.Point(338, 150); + this.btc.Margin = new System.Windows.Forms.Padding(10); + this.btc.Name = "btc"; + this.btc.Size = new System.Drawing.Size(144, 120); + this.btc.TabIndex = 0; + this.btc.Text = "중앙"; + this.btc.UseVisualStyleBackColor = true; + this.btc.Click += new System.EventHandler(this.button2_Click); + // + // btl + // + this.btl.Dock = System.Windows.Forms.DockStyle.Fill; + this.btl.Font = new System.Drawing.Font("맑은 고딕", 25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btl.Location = new System.Drawing.Point(10, 150); + this.btl.Margin = new System.Windows.Forms.Padding(10); + this.btl.Name = "btl"; + this.btl.Size = new System.Drawing.Size(144, 120); + this.btl.TabIndex = 0; + this.btl.Text = "좌측"; + this.btl.UseVisualStyleBackColor = true; + this.btl.Click += new System.EventHandler(this.button3_Click); + // + // btrw + // + this.btrw.Dock = System.Windows.Forms.DockStyle.Fill; + this.btrw.Font = new System.Drawing.Font("맑은 고딕", 25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btrw.Location = new System.Drawing.Point(502, 150); + this.btrw.Margin = new System.Windows.Forms.Padding(10); + this.btrw.Name = "btrw"; + this.btrw.Size = new System.Drawing.Size(144, 120); + this.btrw.TabIndex = 0; + this.btrw.Text = "대기"; + this.btrw.UseVisualStyleBackColor = true; + this.btrw.Click += new System.EventHandler(this.button4_Click); + // + // btr + // + this.btr.Dock = System.Windows.Forms.DockStyle.Fill; + this.btr.Font = new System.Drawing.Font("맑은 고딕", 25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btr.Location = new System.Drawing.Point(666, 150); + this.btr.Margin = new System.Windows.Forms.Padding(10); + this.btr.Name = "btr"; + this.btr.Size = new System.Drawing.Size(146, 120); + this.btr.TabIndex = 0; + this.btr.Text = "우측"; + this.btr.UseVisualStyleBackColor = true; + this.btr.Click += new System.EventHandler(this.button5_Click); + // + // button6 + // + this.button6.Dock = System.Windows.Forms.DockStyle.Fill; + this.button6.Font = new System.Drawing.Font("Consolas", 50F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.button6.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(64))))); + this.button6.Location = new System.Drawing.Point(174, 10); + this.button6.Margin = new System.Windows.Forms.Padding(10); + this.button6.Name = "button6"; + this.button6.Size = new System.Drawing.Size(144, 120); + this.button6.TabIndex = 1; + this.button6.Text = "◀"; + this.button6.UseVisualStyleBackColor = true; + this.button6.Click += new System.EventHandler(this.button6_Click); + this.button6.MouseDown += new System.Windows.Forms.MouseEventHandler(this.button6_MouseDown); + this.button6.MouseUp += new System.Windows.Forms.MouseEventHandler(this.button6_MouseUp); + // + // button7 + // + this.button7.Dock = System.Windows.Forms.DockStyle.Fill; + this.button7.Font = new System.Drawing.Font("Consolas", 50F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.button7.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(64))))); + this.button7.Location = new System.Drawing.Point(502, 10); + this.button7.Margin = new System.Windows.Forms.Padding(10); + this.button7.Name = "button7"; + this.button7.Size = new System.Drawing.Size(144, 120); + this.button7.TabIndex = 1; + this.button7.Text = "▶"; + this.button7.UseVisualStyleBackColor = true; + this.button7.Click += new System.EventHandler(this.button7_Click); + this.button7.MouseDown += new System.Windows.Forms.MouseEventHandler(this.button6_MouseDown); + this.button7.MouseUp += new System.Windows.Forms.MouseEventHandler(this.button6_MouseUp); + // + // button8 + // + this.button8.Dock = System.Windows.Forms.DockStyle.Fill; + this.button8.Font = new System.Drawing.Font("Consolas", 45F, System.Drawing.FontStyle.Bold); + this.button8.ForeColor = System.Drawing.Color.Red; + this.button8.Location = new System.Drawing.Point(338, 10); + this.button8.Margin = new System.Windows.Forms.Padding(10); + this.button8.Name = "button8"; + this.button8.Size = new System.Drawing.Size(144, 120); + this.button8.TabIndex = 2; + this.button8.Text = "■"; + this.button8.UseVisualStyleBackColor = true; + this.button8.Click += new System.EventHandler(this.button8_Click); + // + // button9 + // + this.button9.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); + this.button9.Dock = System.Windows.Forms.DockStyle.Fill; + this.button9.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold); + this.button9.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.button9.Location = new System.Drawing.Point(10, 290); + this.button9.Margin = new System.Windows.Forms.Padding(10); + this.button9.Name = "button9"; + this.button9.Size = new System.Drawing.Size(144, 120); + this.button9.TabIndex = 3; + this.button9.Text = "비젼검증\r\n취소(L)"; + this.button9.UseVisualStyleBackColor = false; + this.button9.Click += new System.EventHandler(this.button9_Click); + // + // button10 + // + this.button10.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); + this.button10.Dock = System.Windows.Forms.DockStyle.Fill; + this.button10.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold); + this.button10.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.button10.Location = new System.Drawing.Point(666, 290); + this.button10.Margin = new System.Windows.Forms.Padding(10); + this.button10.Name = "button10"; + this.button10.Size = new System.Drawing.Size(146, 120); + this.button10.TabIndex = 4; + this.button10.Text = "비젼검증\r\n취소(R)"; + this.button10.UseVisualStyleBackColor = false; + this.button10.Click += new System.EventHandler(this.button10_Click); + // + // button11 + // + this.button11.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(255))))); + this.button11.Dock = System.Windows.Forms.DockStyle.Fill; + this.button11.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold); + this.button11.Location = new System.Drawing.Point(174, 290); + this.button11.Margin = new System.Windows.Forms.Padding(10); + this.button11.Name = "button11"; + this.button11.Size = new System.Drawing.Size(144, 120); + this.button11.TabIndex = 5; + this.button11.Text = "프린트관리\r\n위치(L)"; + this.button11.UseVisualStyleBackColor = false; + this.button11.Click += new System.EventHandler(this.button11_Click); + // + // button12 + // + this.button12.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(255))))); + this.button12.Dock = System.Windows.Forms.DockStyle.Fill; + this.button12.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold); + this.button12.Location = new System.Drawing.Point(338, 290); + this.button12.Margin = new System.Windows.Forms.Padding(10); + this.button12.Name = "button12"; + this.button12.Size = new System.Drawing.Size(144, 120); + this.button12.TabIndex = 5; + this.button12.Text = "관리위치\r\n복귀"; + this.button12.UseVisualStyleBackColor = false; + this.button12.Click += new System.EventHandler(this.button12_Click); + // + // button13 + // + this.button13.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(255))))); + this.button13.Dock = System.Windows.Forms.DockStyle.Fill; + this.button13.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold); + this.button13.Location = new System.Drawing.Point(502, 290); + this.button13.Margin = new System.Windows.Forms.Padding(10); + this.button13.Name = "button13"; + this.button13.Size = new System.Drawing.Size(144, 120); + this.button13.TabIndex = 5; + this.button13.Text = "프린트관리\r\n위치(R)"; + this.button13.UseVisualStyleBackColor = false; + this.button13.Click += new System.EventHandler(this.button13_Click); + // + // timer1 + // + this.timer1.Tick += new System.EventHandler(this.timer1_Tick); + // + // button14 + // + this.button14.Dock = System.Windows.Forms.DockStyle.Fill; + this.button14.Font = new System.Drawing.Font("Consolas", 60F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.button14.ForeColor = System.Drawing.Color.DarkMagenta; + this.button14.Location = new System.Drawing.Point(10, 10); + this.button14.Margin = new System.Windows.Forms.Padding(10); + this.button14.Name = "button14"; + this.button14.Size = new System.Drawing.Size(144, 120); + this.button14.TabIndex = 1; + this.button14.Text = "▲"; + this.button14.UseVisualStyleBackColor = true; + this.button14.MouseDown += new System.Windows.Forms.MouseEventHandler(this.button6_MouseDown); + this.button14.MouseUp += new System.Windows.Forms.MouseEventHandler(this.button6_MouseUp); + // + // button15 + // + this.button15.Dock = System.Windows.Forms.DockStyle.Fill; + this.button15.Font = new System.Drawing.Font("Consolas", 60F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.button15.ForeColor = System.Drawing.Color.DarkMagenta; + this.button15.Location = new System.Drawing.Point(666, 10); + this.button15.Margin = new System.Windows.Forms.Padding(10); + this.button15.Name = "button15"; + this.button15.Size = new System.Drawing.Size(146, 120); + this.button15.TabIndex = 1; + this.button15.Text = "▼"; + this.button15.UseVisualStyleBackColor = true; + this.button15.MouseDown += new System.Windows.Forms.MouseEventHandler(this.button6_MouseDown); + this.button15.MouseUp += new System.Windows.Forms.MouseEventHandler(this.button6_MouseUp); + // + // button5 + // + this.button5.Dock = System.Windows.Forms.DockStyle.Fill; + this.button5.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold); + this.button5.Location = new System.Drawing.Point(666, 430); + this.button5.Margin = new System.Windows.Forms.Padding(10); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(146, 121); + this.button5.TabIndex = 6; + this.button5.Text = "Z-ZERO"; + this.button5.UseVisualStyleBackColor = true; + this.button5.Click += new System.EventHandler(this.button5_Click_1); + // + // button4 + // + this.button4.Dock = System.Windows.Forms.DockStyle.Fill; + this.button4.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold); + this.button4.Location = new System.Drawing.Point(502, 430); + this.button4.Margin = new System.Windows.Forms.Padding(10); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(144, 121); + this.button4.TabIndex = 6; + this.button4.Text = "프린트\r\n(R)"; + this.button4.UseVisualStyleBackColor = true; + this.button4.Click += new System.EventHandler(this.button4_Click_1); + // + // button3 + // + this.button3.Dock = System.Windows.Forms.DockStyle.Fill; + this.button3.Enabled = false; + this.button3.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold); + this.button3.Location = new System.Drawing.Point(338, 430); + this.button3.Margin = new System.Windows.Forms.Padding(10); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(144, 121); + this.button3.TabIndex = 6; + this.button3.Text = "--"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click_1); + // + // button2 + // + this.button2.Dock = System.Windows.Forms.DockStyle.Fill; + this.button2.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold); + this.button2.Location = new System.Drawing.Point(174, 430); + this.button2.Margin = new System.Windows.Forms.Padding(10); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(144, 121); + this.button2.TabIndex = 6; + this.button2.Text = "프린트\r\n(L)"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click_1); + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Fill; + this.button1.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold); + this.button1.Location = new System.Drawing.Point(10, 430); + this.button1.Margin = new System.Windows.Forms.Padding(10); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(144, 121); + this.button1.TabIndex = 6; + this.button1.Text = "Z-HOME"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click_1); + // + // fPickerMove + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(822, 561); + this.Controls.Add(this.tableLayoutPanel1); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fPickerMove"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "피커(X) 이동 및 관리"; + this.Load += new System.EventHandler(this.fPickerMove_Load); + this.tableLayoutPanel1.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Button btlw; + private System.Windows.Forms.Button btc; + private System.Windows.Forms.Button btl; + private System.Windows.Forms.Button btrw; + private System.Windows.Forms.Button btr; + private System.Windows.Forms.Button button6; + private System.Windows.Forms.Button button7; + private System.Windows.Forms.Button button8; + private System.Windows.Forms.Button button9; + private System.Windows.Forms.Button button10; + private System.Windows.Forms.Button button11; + private System.Windows.Forms.Button button12; + private System.Windows.Forms.Button button13; + private System.Windows.Forms.Timer timer1; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.Button button5; + private System.Windows.Forms.Button button14; + private System.Windows.Forms.Button button15; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/fPickerMove.cs b/Handler/Project/Dialog/fPickerMove.cs new file mode 100644 index 0000000..b2259e1 --- /dev/null +++ b/Handler/Project/Dialog/fPickerMove.cs @@ -0,0 +1,510 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using AR; +namespace Project.Dialog +{ + public partial class fPickerMove : Form + { + public fPickerMove() + { + InitializeComponent(); + this.FormClosing += FPickerMove_FormClosing; + } + private void fPickerMove_Load(object sender, EventArgs e) + { + PUB.flag.set(eVarBool.FG_MOVE_PICKER, true, "PICKERMOVE"); + timer1.Start(); + } + private void FPickerMove_FormClosing(object sender, FormClosingEventArgs e) + { + if (ManPosL) + { + UTIL.MsgE("프린터측 모션이 관리위치에 있습니다\n위치를 복귀 한 후 다시 시도하세요", true); + e.Cancel = true; + return; + } + if (ManPosR) + { + UTIL.MsgE("프린터측 모션이 관리위치에 있습니다\n위치를 복귀 한 후 다시 시도하세요", true); + e.Cancel = true; + return; + } + PUB.flag.set(eVarBool.FG_MOVE_PICKER, false, "PICKERMOVE"); + timer1.Stop(); + } + + Boolean CheckSafty() + { + if (DIO.isSaftyDoorF() == false) + { + UTIL.MsgE("전면 도어가 열려 있습니다"); + return false; + } + + if (PUB.mot.HasHomeSetOff) + { + UTIL.MsgE("모션의 홈 작업이 완료되지 않았습니다"); + return false; + } + return true; + } + + private void button3_Click(object sender, EventArgs e) + { + if (CheckSafty() == false) return; + + //Z-check + var z = MOT.GetPZPos(ePZLoc.READY); + var zpos = MOT.getPositionOffset(z); + if (zpos >= 0.5) + { + UTIL.MsgE("Z 축을 올리고 다시 시도하세요"); + return; + } + + //왼쪽프린터 뭉치가 준비위치가 아니면 오류 + var m1 = MOT.GetLMPos(eLMLoc.READY); + if (MOT.getPositionMatch(m1) == false) + { + UTIL.MsgE("프린터 부착물 위치가 준비 위치가 아닙니다.\n충돌 할 수 있으므로 이동 할 수 없습니다"); + return; + } + + + //도어가 열려있다면 경고메세지를 표시한다. + if (DIO.isSaftyDoorF(2, true) == false) + { + if (UTIL.MsgQ("도어가 열려있습니다. 모션을 이동 할까요?") != DialogResult.Yes) return; + } + + + var p1 = MOT.GetPXPos(ePXLoc.PICKOFFL); + MOT.Move(eAxis.PX_PICK, p1.Position, 250, p1.Acc, false, false, false); + DialogResult = DialogResult.OK; + } + + private void button1_Click(object sender, EventArgs e) + { + if (CheckSafty() == false) return; + + //Z-check + var z = MOT.GetPZPos(ePZLoc.READY); + var zpos = MOT.getPositionOffset(z); + if (zpos >= 0.5) + { + UTIL.MsgE("Z 축을 올리고 다시 시도하세요"); + return; + } + + //왼쪽프린터 뭉치가 준비위치가 아니면 오류 + var m1 = MOT.GetLMPos(eLMLoc.READY); + if (MOT.getPositionMatch(m1) == false) + { + UTIL.MsgE("프린터 부착물 위치가 준비 위치가 아닙니다.\n충돌 할 수 있으므로 이동 할 수 없습니다"); + return; + } + + //도어가 열려있다면 경고메세지를 표시한다. + if (DIO.isSaftyDoorF(2, true) == false) + { + if (UTIL.MsgQ("도어가 열려있습니다. 모션을 이동 할까요?") != DialogResult.Yes) return; + } + + var p1 = MOT.GetPXPos(ePXLoc.READYL); + MOT.Move(eAxis.PX_PICK, p1.Position, 250, p1.Acc, false, false, false); + DialogResult = DialogResult.OK; + } + + private void button2_Click(object sender, EventArgs e) + { + if (CheckSafty() == false) return; + + //Z-check + var z = MOT.GetPZPos(ePZLoc.READY); + var zpos = MOT.getPositionOffset(z); + if (zpos >= 0.5) + { + UTIL.MsgE("Z 축을 올리고 다시 시도하세요"); + return; + } + + //도어가 열려있다면 경고메세지를 표시한다. + if (DIO.isSaftyDoorF(1, true) == false) + { + if (UTIL.MsgQ("도어가 열려있습니다. 모션을 이동 할까요?") != DialogResult.Yes) return; + } + + var p1 = MOT.GetPXPos(ePXLoc.PICKON); + MOT.Move(eAxis.PX_PICK, p1.Position, 250, p1.Acc, false, false, false); + DialogResult = DialogResult.OK; + } + + private void button4_Click(object sender, EventArgs e) + { + if (CheckSafty() == false) return; + + //Z-check + var z = MOT.GetPZPos(ePZLoc.READY); + var zpos = MOT.getPositionOffset(z); + if (zpos >= 0.5) + { + UTIL.MsgE("Z 축을 올리고 다시 시도하세요"); + return; + } + + //오른쪽프린터 뭉치가 준비위치가 아니면 오류 + var m1 = MOT.GetRMPos(eRMLoc.READY); + if (MOT.getPositionMatch(m1) == false) + { + UTIL.MsgE("프린터 부착물 위치가 준비 위치가 아닙니다.\n충돌 할 수 있으므로 이동 할 수 없습니다"); + return; + } + //도어가 열려있다면 경고메세지를 표시한다. + if (DIO.isSaftyDoorF(0, true) == false) + { + if (UTIL.MsgQ("도어가 열려있습니다. 모션을 이동 할까요?") != DialogResult.Yes) return; + } + var p1 = MOT.GetPXPos(ePXLoc.READYR); + MOT.Move(eAxis.PX_PICK, p1.Position, 250, p1.Acc, false, false, false); + DialogResult = DialogResult.OK; + } + + private void button5_Click(object sender, EventArgs e) + { + if (CheckSafty() == false) return; + + //Z-check + var z = MOT.GetPZPos(ePZLoc.READY); + var zpos = MOT.getPositionOffset(z); + if (zpos >= 0.5) + { + UTIL.MsgE("Z 축을 올리고 다시 시도하세요"); + return; + } + + //오른쪽프린터 뭉치가 준비위치가 아니면 오류 + var m1 = MOT.GetRMPos(eRMLoc.READY); + if (MOT.getPositionMatch(m1) == false) + { + UTIL.MsgE("프린터 부착물 위치가 준비 위치가 아닙니다.\n충돌 할 수 있으므로 이동 할 수 없습니다"); + return; + } + + //도어가 열려있다면 경고메세지를 표시한다. + if (DIO.isSaftyDoorF(0, true) == false) + { + if (UTIL.MsgQ("도어가 열려있습니다. 모션을 이동 할까요?") != DialogResult.Yes) return; + } + + var p1 = MOT.GetPXPos(ePXLoc.PICKOFFR); + MOT.Move(eAxis.PX_PICK, p1.Position, 250, p1.Acc, false, false, false); + DialogResult = DialogResult.OK; + } + + private void button8_Click(object sender, EventArgs e) + { + PUB.mot.MoveStop("pmove", (int)eAxis.PX_PICK); + } + + private void button6_Click(object sender, EventArgs e) + { + //jog left + } + + private void button7_Click(object sender, EventArgs e) + { + //jog right + } + + private void button6_MouseDown(object sender, MouseEventArgs e) + { + //조그시작 + + + var bt = sender as Button; + if (bt.Text.Equals("▼")) + PUB.mot.JOG((int)eAxis.PZ_PICK, arDev.MOT.MOTION_DIRECTION.Positive, AR.SETTING.Data.JOG_Speed, AR.SETTING.Data.JOG_Acc); + else if (bt.Text.Equals("▲")) + PUB.mot.JOG((int)eAxis.PZ_PICK, arDev.MOT.MOTION_DIRECTION.Negative, AR.SETTING.Data.JOG_Speed, AR.SETTING.Data.JOG_Acc); + else if (bt.Text.Equals("◀")) + PUB.mot.JOG((int)eAxis.PX_PICK, arDev.MOT.MOTION_DIRECTION.Negative, AR.SETTING.Data.JOG_Speed, AR.SETTING.Data.JOG_Acc); + else if (bt.Text.Equals("▶")) + PUB.mot.JOG((int)eAxis.PX_PICK, arDev.MOT.MOTION_DIRECTION.Positive, AR.SETTING.Data.JOG_Speed, AR.SETTING.Data.JOG_Acc); + } + + private void button6_MouseUp(object sender, MouseEventArgs e) + { + //마우스 놓으면 멈춤 + PUB.mot.MoveStop("pmove", (short)eAxis.PX_PICK); + PUB.mot.MoveStop("pmove", (short)eAxis.PZ_PICK); + } + + private void button9_Click(object sender, EventArgs e) + { + //왼쪽검증취소 + // if (PUB.flag.get(eVarBool.RDY_VISION0) == false) return; + var dlg = UTIL.MsgQ("LEFT-QR코드 검증을 취소할까요?"); + if (dlg != DialogResult.Yes) return; + + PUB.flag.set(eVarBool.FG_PRC_VISIONL, false, "CANCEL"); + PUB.flag.set(eVarBool.FG_PORTL_ITEMON, false, "CANCEL"); + //PUB.sm.seq.Clear(eSMStep.RUN_VISION0); + //PUB.sm.seq.UpdateTime(eSMStep.RUN_COM_VS0); + PUB.log.Add(string.Format("LEFT-QR검증({0}) 취소 JGUID={1}", "L", PUB.Result.ItemDataL.guid)); + UpdateDatabase(0); + DialogResult = DialogResult.OK; + } + + private void button10_Click(object sender, EventArgs e) + { + //왼쪽검증취소 + //if (PUB.flag.get(eVarBool.RDY_VISION0) == false) return; + var dlg = UTIL.MsgQ("RIGHT-QR코드 검증을 취소할까요?"); + if (dlg != DialogResult.Yes) return; + + PUB.flag.set(eVarBool.FG_PRC_VISIONR, false, "CANCEL"); + PUB.flag.set(eVarBool.FG_PORTR_ITEMON, false, "CANCEL"); + //PUB.sm.seq.Clear(eSMStep.RUN_VISION2); + //PUB.sm.seq.UpdateTime(eSMStep.RUN_COM_VS2); + PUB.log.Add(string.Format("RIGHT-QR검증({0}) 취소 JGUID={1}", "R", PUB.Result.ItemDataR.guid)); + + UpdateDatabase(eWorkPort.Right); + DialogResult = DialogResult.OK; + } + + void UpdateDatabase(eWorkPort vidx) + { + var itemdata = vidx == eWorkPort.Left ? PUB.Result.ItemDataL : PUB.Result.ItemDataR; + + //취소상태를 DB에도 남긴다. + using (var db = new EEEntities()) + { + + var dr = db.Component_Reel_Result.AsNoTracking().Where(t => t.JGUID == itemdata.guid).FirstOrDefault(); + if (dr == null) + { + var ermsg = string.Format("다음 guid 를 찾을수 없어 검증취소 를 변경하지 못함 vidx={2},guid={0},sid={1}", itemdata.guid, itemdata.VisionData.SID, vidx); + PUB.AddDebugLog(ermsg, true); + PUB.log.AddE(ermsg); + } + else + { + dr.ANGLE = itemdata.VisionData.ApplyAngle; //210331 - 도중에 사용자 angle 이 있다면 그것이 적용되었음 + dr.PRNVALID = false; + dr.REMARK = "검증취소"; + db.SaveChanges(); + } + } + } + + private void button11_Click(object sender, EventArgs e) + { + //관리위치L + MoveMangePos(0); + } + + private void button13_Click(object sender, EventArgs e) + { + //관리위치 + MoveMangePos(2); + } + + Boolean ManPosL = false; + Boolean ManPosR = false; + + void MoveMangePos(int vidx) + { + if (PUB.sm.Step != eSMStep.IDLE) + { + UTIL.MsgE("대기상태에서만 사용 가능 합니다"); + return; + } + + + var Xpos = DIO.GetIOInput(eDIName.PICKER_SAFE);// MOT.getPositionMatch(MOT.GetPXPos(ePXLoc.PICKON), 1); + if (Xpos == false) + { + UTIL.MsgE("피커위치가 중앙에서만 사용 가능 합니다"); + return; + } + + Task.Run(new Action(() => + { + //Z축을 Ready 위치로 이동한다. + if (vidx == 0) + { + var zPos = MOT.GetLZPos(eLZLoc.READY); + MOT.Move(zPos); + while (MOT.getPositionMatch(zPos) == false) + System.Threading.Thread.Sleep(10); + + var mPos = MOT.GetLMPos(eLMLoc.PRINTL07); + MOT.Move(mPos); + while (MOT.getPositionMatch(mPos) == false) + System.Threading.Thread.Sleep(10); + + var zPos2 = MOT.GetLZPos(eLZLoc.PICKOFF); + var tPos = (zPos2.Position / 2f); + MOT.Move(eAxis.PL_UPDN, tPos, zPos.Speed, zPos.Acc); + ManPosL = true; + } + else + { + var zPos = MOT.GetRZPos(eRZLoc.READY); + MOT.Move(zPos); + while (MOT.getPositionMatch(zPos) == false) + System.Threading.Thread.Sleep(10); + + var mPos = MOT.GetRMPos(eRMLoc.PRINTL07); + MOT.Move(mPos); + while (MOT.getPositionMatch(mPos) == false) + System.Threading.Thread.Sleep(10); + + var zPos2 = MOT.GetRZPos(eRZLoc.PICKOFF); + var tPos = (zPos2.Position / 2f); + MOT.Move(eAxis.PR_UPDN, tPos, zPos.Speed, zPos.Acc); + ManPosR = true; + } + + })); + } + + private void button12_Click(object sender, EventArgs e) + { + var Xpos = DIO.GetIOInput(eDIName.PICKER_SAFE); + if (Xpos == false) + { + UTIL.MsgE("피커위치가 중앙에서만 사용 가능 합니다"); + return; + } + + //위치복귀 + PosRecover(0); + PosRecover(2); + } + + void PosRecover(int vidx) + { + Task.Run(new Action(() => + { + //Z축을 Ready 위치로 이동한다. + if (vidx == 0) + { + var zPos = MOT.GetLZPos(eLZLoc.READY); + MOT.Move(zPos); + while (MOT.getPositionMatch(zPos) == false) + System.Threading.Thread.Sleep(100); + + var mPos = MOT.GetLMPos(eLMLoc.READY); + MOT.Move(mPos); + while (MOT.getPositionMatch(mPos) == false) + System.Threading.Thread.Sleep(100); + ManPosL = false; + } + else + { + var zPos = MOT.GetRZPos(eRZLoc.READY); + MOT.Move(zPos); + while (MOT.getPositionMatch(zPos) == false) + System.Threading.Thread.Sleep(100); + + var mPos = MOT.GetRMPos(eRMLoc.READY); + MOT.Move(mPos); + while (MOT.getPositionMatch(zPos) == false) + System.Threading.Thread.Sleep(100); + + ManPosR = false; + } + + })); + } + + private void timer1_Tick(object sender, EventArgs e) + { + + + + + + //X축 피커는 Z축이 원점,limit 에 걸려있거나 home 위치 근처라면 가능한다 + if (PUB.mot.IsHomeSet((int)eAxis.PZ_PICK) == false) + { + //Z축 홈이 안잡힌 상태에는 원점 센서 혹은 리밋이 걸린경우 이동가능한다 + if (PUB.mot.IsOrg((int)eAxis.PZ_PICK) || PUB.mot.IsLimitN((int)eAxis.PZ_PICK)) + button6.Enabled = true; + else + button6.Enabled = false; + } + else + { + //Z축 홈이 잡혀있다면 현재 위치는 ready 위에 있어야 한다. + var PosZ = MOT.GetPZPos(ePZLoc.READY); + var OffZ = MOT.getPositionOffset(PosZ); + button6.Enabled = OffZ < 1; + } + button7.Enabled = button6.Enabled; + + AR.VAR.BOOL[eVarBool.Enable_PickerMoveX] = button6.Enabled; + + var doorsafef = DIO.isSaftyDoorF(); + var allsafe = PUB.mot.HasHomeSetOff == false && doorsafef == true; + this.button11.Enabled = allsafe; + this.button12.Enabled = allsafe; + this.button13.Enabled = allsafe; + + //모션홈이 안잡혀있다면 이동 기능은 OFf한다 + btl.Enabled = allsafe; + btlw.Enabled = allsafe; + btc.Enabled = allsafe; + btrw.Enabled = allsafe; + btr.Enabled = allsafe; + + this.button8.BackColor = DIO.GetIOInput(eDIName.PICKER_SAFE) ? Color.Lime : Color.Tomato; + + + } + + private void button2_Click_1(object sender, EventArgs e) + { + PUB.PrinterL.TestPrint(AR.SETTING.Data.DrawOutbox, "", ""); + PUB.log.Add("임시프린트L:" + PUB.PrinterL.LastPrintZPL); + } + + private void button4_Click_1(object sender, EventArgs e) + { + PUB.PrinterR.TestPrint(AR.SETTING.Data.DrawOutbox, "", ""); + PUB.log.Add("임시프린트R:" + PUB.PrinterR.LastPrintZPL); + } + + private void button5_Click_1(object sender, EventArgs e) + { + if (PUB.mot.IsHomeSet((int)eAxis.PZ_PICK) == false) + { + UTIL.MsgE("Z 홈작업이 완료되지 않았습니다 HOME 을 먼저 진행 하세요"); + return; + } + if (UTIL.MsgQ("피커 Z축을 좌표:0 으로 이동 할까요?") != DialogResult.Yes) return; + MOT.Move(eAxis.PZ_PICK, 0, 500, 1000, false, false, false); + } + + private void button1_Click_1(object sender, EventArgs e) + { + var dlg = UTIL.MsgQ("피커 Z축 홈 검색을 진행 할까요?"); + if (dlg != DialogResult.Yes) return; + + MOT.Home("관리", eAxis.PZ_PICK, false); + } + + private void button3_Click_1(object sender, EventArgs e) + { + + } + } +} diff --git a/Handler/Project/Dialog/fPickerMove.resx b/Handler/Project/Dialog/fPickerMove.resx new file mode 100644 index 0000000..bb20d54 --- /dev/null +++ b/Handler/Project/Dialog/fPickerMove.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + 17, 17 + + \ No newline at end of file diff --git a/Handler/Project/Dialog/fSIDInformation.resx b/Handler/Project/Dialog/fSIDInformation.resx new file mode 100644 index 0000000..42cf9d4 --- /dev/null +++ b/Handler/Project/Dialog/fSIDInformation.resx @@ -0,0 +1,380 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + 393, 17 + + + 17, 17 + + + 527, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC + pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++ + Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ + /5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA + zpX/v6RC8f/fWzFAjeH/p+Zp/J+QpfW/O0P3f3uq/v/mREPCYTIb6E+Qc//dCPjfk6FDWAM6APnz3w1/ + IPb735qsT7oB3em6YP+CcH2cEekGtCQZ/G+IN/xfE2v8vzLahHQD6AQYGAAkI9iedfyIaQAAAABJRU5E + rkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC + DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC + rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV + i9OIytR3EMNWcJ/BWH8A6j8/bOGFxwXNxYEvGbMQ9XnQ1/K78KfY3/VXzkMY0qFGG2H4RoLGQshJQNbG + 86CNhdrsX9a/uQZTPhQl4rMY4OLofbl3aX7I8uwPC7y/g1YdjyVJuEvT8e1tfwUYteHUxCCfHChDeHmG + QQvokjlOU+PbWA0x3pZnILVVI3uvQyHsbiLnqnGmRCF1NYD8pDhpRxOH7HQoAKZGkFKjceszQbpSrumX + bO+G80MFwKUTxgfgcO/b8D9IpXoFiiMDHIQm0skAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 + wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0 + v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg + UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA + Iu/O/9T+11gVGSSd+C+b9vW/bvA83AYYZt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPu + lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w + 5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f + Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+ + 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 + n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI + N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f + oAc0QjgAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// + h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B + twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA + kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG + WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9 + 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAExJREFUOE9joAr49u3bf1IxVCsEgAWC58Dxh/cf4RhZDETHTNiHaQgpBoAwzBCo + dtINAGGiDUDGyGpoawAxeNSAQWkAORiqnRLAwAAA9EMMU8Daa3MAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + 117, 17 + + + 324, 17 + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC + pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++ + Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ + /5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA + zpX/v6RC8f/fWzFAjeH/p+Zp/J+QpfW/O0P3f3uq/v/mREPCYTIb6E+Qc//dCPjfk6FDWAM6APnz3w1/ + IPb735qsT7oB3em6YP+CcH2cEekGtCQZ/G+IN/xfE2v8vzLahHQD6AQYGAAkI9iedfyIaQAAAABJRU5E + rkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC + DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC + rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV + i9OIytR3EMNWcJ/BWH8A6j8/bOGFxwXNxYEvGbMQ9XnQ1/K78KfY3/VXzkMY0qFGG2H4RoLGQshJQNbG + 86CNhdrsX9a/uQZTPhQl4rMY4OLofbl3aX7I8uwPC7y/g1YdjyVJuEvT8e1tfwUYteHUxCCfHChDeHmG + QQvokjlOU+PbWA0x3pZnILVVI3uvQyHsbiLnqnGmRCF1NYD8pDhpRxOH7HQoAKZGkFKjceszQbpSrumX + bO+G80MFwKUTxgfgcO/b8D9IpXoFiiMDHIQm0skAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 + wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0 + v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg + UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA + Iu/O/9T+11gVGSSd+C+b9vW/bvA83AYYZt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPu + lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w + 5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f + Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+ + 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 + n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI + N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f + oAc0QjgAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// + h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B + twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA + kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG + WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9 + 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAExJREFUOE9joAr49u3bf1IxVCsEgAWC58Dxh/cf4RhZDETHTNiHaQgpBoAwzBCo + dtINAGGiDUDGyGpoawAxeNSAQWkAORiqnRLAwAAA9EMMU8Daa3MAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + 185, 17 + + + 251, 17 + + + 461, 17 + + \ No newline at end of file diff --git a/Handler/Project/Dialog/fSIDQty.Designer.cs b/Handler/Project/Dialog/fSIDQty.Designer.cs new file mode 100644 index 0000000..22261ed --- /dev/null +++ b/Handler/Project/Dialog/fSIDQty.Designer.cs @@ -0,0 +1,224 @@ +namespace Project.Dialog +{ + partial class fSIDQty + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.panel1 = new System.Windows.Forms.Panel(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.panel2 = new System.Windows.Forms.Panel(); + this.label3 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.listView1 = new System.Windows.Forms.ListView(); + this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); + this.deleteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.label5 = new System.Windows.Forms.Label(); + this.panel1.SuspendLayout(); + this.panel2.SuspendLayout(); + this.contextMenuStrip1.SuspendLayout(); + this.SuspendLayout(); + // + // panel1 + // + this.panel1.Controls.Add(this.label2); + this.panel1.Controls.Add(this.label1); + this.panel1.Dock = System.Windows.Forms.DockStyle.Top; + this.panel1.Location = new System.Drawing.Point(0, 0); + this.panel1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.panel1.Name = "panel1"; + this.panel1.Padding = new System.Windows.Forms.Padding(3); + this.panel1.Size = new System.Drawing.Size(327, 40); + this.panel1.TabIndex = 0; + // + // label1 + // + this.label1.Dock = System.Windows.Forms.DockStyle.Left; + this.label1.Location = new System.Drawing.Point(3, 3); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(75, 34); + this.label1.TabIndex = 0; + this.label1.Text = "DATE"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.label1.Click += new System.EventHandler(this.label1_Click); + // + // label2 + // + this.label2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(200)))), ((int)(((byte)(200))))); + this.label2.Dock = System.Windows.Forms.DockStyle.Fill; + this.label2.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label2.Location = new System.Drawing.Point(78, 3); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(246, 34); + this.label2.TabIndex = 1; + this.label2.Text = "label2"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.label2.Click += new System.EventHandler(this.label2_Click); + // + // panel2 + // + this.panel2.Controls.Add(this.label3); + this.panel2.Controls.Add(this.label5); + this.panel2.Controls.Add(this.label4); + this.panel2.Dock = System.Windows.Forms.DockStyle.Top; + this.panel2.Location = new System.Drawing.Point(0, 40); + this.panel2.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.panel2.Name = "panel2"; + this.panel2.Padding = new System.Windows.Forms.Padding(3); + this.panel2.Size = new System.Drawing.Size(327, 40); + this.panel2.TabIndex = 1; + // + // label3 + // + this.label3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(200)))), ((int)(((byte)(200))))); + this.label3.Dock = System.Windows.Forms.DockStyle.Fill; + this.label3.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label3.Location = new System.Drawing.Point(78, 3); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(171, 34); + this.label3.TabIndex = 1; + this.label3.Text = "label3"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label4 + // + this.label4.Dock = System.Windows.Forms.DockStyle.Left; + this.label4.Location = new System.Drawing.Point(3, 3); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(75, 34); + this.label4.TabIndex = 0; + this.label4.Text = "NO"; + this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // listView1 + // + this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader1, + this.columnHeader2, + this.columnHeader3}); + this.listView1.ContextMenuStrip = this.contextMenuStrip1; + this.listView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.listView1.FullRowSelect = true; + this.listView1.GridLines = true; + this.listView1.HideSelection = false; + this.listView1.Location = new System.Drawing.Point(0, 80); + this.listView1.MultiSelect = false; + this.listView1.Name = "listView1"; + this.listView1.Size = new System.Drawing.Size(327, 326); + this.listView1.TabIndex = 2; + this.listView1.UseCompatibleStateImageBehavior = false; + this.listView1.View = System.Windows.Forms.View.Details; + // + // columnHeader1 + // + this.columnHeader1.Text = "SID"; + this.columnHeader1.Width = 160; + // + // columnHeader2 + // + this.columnHeader2.Text = "KPC"; + this.columnHeader2.Width = 80; + // + // contextMenuStrip1 + // + this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.deleteToolStripMenuItem}); + this.contextMenuStrip1.Name = "contextMenuStrip1"; + this.contextMenuStrip1.Size = new System.Drawing.Size(109, 26); + // + // deleteToolStripMenuItem + // + this.deleteToolStripMenuItem.Name = "deleteToolStripMenuItem"; + this.deleteToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.deleteToolStripMenuItem.Text = "Delete"; + this.deleteToolStripMenuItem.Click += new System.EventHandler(this.deleteToolStripMenuItem_Click); + // + // columnHeader3 + // + this.columnHeader3.Text = "Rev"; + this.columnHeader3.Width = 80; + // + // label5 + // + this.label5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.label5.Dock = System.Windows.Forms.DockStyle.Right; + this.label5.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label5.ForeColor = System.Drawing.Color.White; + this.label5.Location = new System.Drawing.Point(249, 3); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(75, 34); + this.label5.TabIndex = 2; + this.label5.Text = "KPC"; + this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // fSIDQty + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(327, 406); + this.Controls.Add(this.listView1); + this.Controls.Add(this.panel2); + this.Controls.Add(this.panel1); + this.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.KeyPreview = true; + this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fSIDQty"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "SID QTY"; + this.TopMost = true; + this.Load += new System.EventHandler(this.fSIDQty_Load); + this.panel1.ResumeLayout(false); + this.panel2.ResumeLayout(false); + this.contextMenuStrip1.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.ListView listView1; + private System.Windows.Forms.ColumnHeader columnHeader1; + private System.Windows.Forms.ColumnHeader columnHeader2; + private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; + private System.Windows.Forms.ToolStripMenuItem deleteToolStripMenuItem; + private System.Windows.Forms.ColumnHeader columnHeader3; + private System.Windows.Forms.Label label5; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/fSIDQty.cs b/Handler/Project/Dialog/fSIDQty.cs new file mode 100644 index 0000000..7f94ea7 --- /dev/null +++ b/Handler/Project/Dialog/fSIDQty.cs @@ -0,0 +1,72 @@ +using AR; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fSIDQty : Form + { + public fSIDQty(string JobSeqDate, string JobSeqNo) + { + InitializeComponent(); + var SIDHistoryFiles = PUB.dbmSidHistory.Getfiles(JobSeqDate, JobSeqNo); + label2.Text = JobSeqDate; + label3.Text = JobSeqNo; + label5.Text = "--"; + this.listView1.Items.Clear(); + + if (SIDHistoryFiles != null) + foreach (var file in SIDHistoryFiles) + { + var DT = PUB.dbmSidHistory.GetDatas(new System.IO.FileInfo[] { file }); + var dr = DT.FirstOrDefault(); + label5.Text = dr.rev.ToString(); + var kpc = DT.Sum(t => t.qty) / 1000; + var lv = this.listView1.Items.Add(dr.sid); + lv.SubItems.Add(kpc.ToString()); + lv.SubItems.Add(dr.rev.ToString()); + lv.Tag = file.FullName; + if (dr.rev > 0 && kpc > dr.rev) lv.ForeColor = Color.Red; + } + + } + + private void fSIDQty_Load(object sender, EventArgs e) + { + this.KeyDown += FSIDQty_KeyDown; + } + + private void FSIDQty_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Escape) this.Close(); + } + + private void label1_Click(object sender, EventArgs e) + { + + } + + private void label2_Click(object sender, EventArgs e) + { + + } + + private void deleteToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.listView1.FocusedItem == null) return; + var file = this.listView1.FocusedItem.Tag.ToString(); + var dlg = UTIL.MsgQ(string.Format("다음 파일을 삭제 하시겠습니까?\n{0}", file)); + if (dlg != DialogResult.Yes) return; + System.IO.File.Delete(file); + this.listView1.Items.Remove(this.listView1.FocusedItem); + + } + } +} diff --git a/Handler/Project/Dialog/fSIDQty.resx b/Handler/Project/Dialog/fSIDQty.resx new file mode 100644 index 0000000..ad53752 --- /dev/null +++ b/Handler/Project/Dialog/fSIDQty.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Handler/Project/Dialog/fSavePosition.Designer.cs b/Handler/Project/Dialog/fSavePosition.Designer.cs new file mode 100644 index 0000000..5ba57d6 --- /dev/null +++ b/Handler/Project/Dialog/fSavePosition.Designer.cs @@ -0,0 +1,116 @@ +namespace Project.Dialog +{ + partial class fSavePosition + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.listView1 = new System.Windows.Forms.ListView(); + this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.button1 = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // listView1 + // + this.listView1.CheckBoxes = true; + this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader1, + this.columnHeader2, + this.columnHeader3, + this.columnHeader4}); + this.listView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.listView1.Font = new System.Drawing.Font("맑은 고딕", 15.75F, System.Drawing.FontStyle.Bold); + this.listView1.FullRowSelect = true; + this.listView1.GridLines = true; + this.listView1.Location = new System.Drawing.Point(0, 0); + this.listView1.Name = "listView1"; + this.listView1.Size = new System.Drawing.Size(815, 431); + this.listView1.TabIndex = 0; + this.listView1.UseCompatibleStateImageBehavior = false; + this.listView1.View = System.Windows.Forms.View.Details; + // + // columnHeader1 + // + this.columnHeader1.Text = "Axis"; + this.columnHeader1.Width = 150; + // + // columnHeader2 + // + this.columnHeader2.Text = "위치"; + this.columnHeader2.Width = 220; + // + // columnHeader3 + // + this.columnHeader3.Text = "변경전"; + this.columnHeader3.Width = 200; + // + // columnHeader4 + // + this.columnHeader4.Text = "변경후"; + this.columnHeader4.Width = 200; + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.button1.Font = new System.Drawing.Font("맑은 고딕", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button1.Location = new System.Drawing.Point(0, 375); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(815, 56); + this.button1.TabIndex = 1; + this.button1.Text = "확인"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // fSavePosition + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(815, 431); + this.Controls.Add(this.button1); + this.Controls.Add(this.listView1); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fSavePosition"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "fSavePosition"; + this.Load += new System.EventHandler(this.fSavePosition_Load); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.ListView listView1; + private System.Windows.Forms.ColumnHeader columnHeader1; + private System.Windows.Forms.ColumnHeader columnHeader2; + private System.Windows.Forms.ColumnHeader columnHeader3; + private System.Windows.Forms.ColumnHeader columnHeader4; + private System.Windows.Forms.Button button1; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/fSavePosition.cs b/Handler/Project/Dialog/fSavePosition.cs new file mode 100644 index 0000000..9e9ceaa --- /dev/null +++ b/Handler/Project/Dialog/fSavePosition.cs @@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fSavePosition : Form + { + public fSavePosition(Queue> list) + { + InitializeComponent(); + + listView1.Items.Clear(); + foreach (var item in list) + { + var lv = this.listView1.Items.Add(item.Item2.ToString()); + lv.SubItems.Add(item.Item3); + lv.SubItems.Add(item.Item4.ToString()); + lv.SubItems.Add(item.Item5.ToString()); + lv.Tag = item; + if (item.Item2.ToString().StartsWith("Z")) + { + lv.Checked = false; //z축은 기본 해제 + lv.ForeColor = Color.DarkMagenta; + } + else if (item.Item4.ToString() == item.Item5.ToString()) + { + lv.Checked = false; //값이 같으면 해제 + } + else lv.Checked = true; + } + } + + private void button1_Click(object sender, EventArgs e) + { + var cnt = 0; + foreach (ListViewItem item in listView1.CheckedItems) + { + var p = item.Tag as Tuple; + p.Item1.Position = p.Item5; + p.Item1.EndEdit(); + cnt += 1; + } + if (cnt > 0) + DialogResult = DialogResult.OK; + else + this.Close(); + } + + private void fSavePosition_Load(object sender, EventArgs e) + { + + } + } +} diff --git a/Handler/Project/Dialog/fSavePosition.resx b/Handler/Project/Dialog/fSavePosition.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/Project/Dialog/fSavePosition.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/Project/Dialog/fSelectCustInfo.Designer.cs b/Handler/Project/Dialog/fSelectCustInfo.Designer.cs new file mode 100644 index 0000000..aa2ad59 --- /dev/null +++ b/Handler/Project/Dialog/fSelectCustInfo.Designer.cs @@ -0,0 +1,101 @@ +namespace Project.Dialog +{ + partial class fSelectCustInfo + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.listView1 = new System.Windows.Forms.ListView(); + this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.btOK = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // listView1 + // + this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader1, + this.columnHeader2}); + this.listView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.listView1.Font = new System.Drawing.Font("맑은 고딕", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.listView1.FullRowSelect = true; + this.listView1.GridLines = true; + this.listView1.Location = new System.Drawing.Point(0, 0); + this.listView1.MultiSelect = false; + this.listView1.Name = "listView1"; + this.listView1.Size = new System.Drawing.Size(499, 400); + this.listView1.TabIndex = 0; + this.listView1.UseCompatibleStateImageBehavior = false; + this.listView1.View = System.Windows.Forms.View.Details; + // + // columnHeader1 + // + this.columnHeader1.Text = "Code"; + this.columnHeader1.Width = 130; + // + // columnHeader2 + // + this.columnHeader2.Text = "Customer Name"; + this.columnHeader2.Width = 360; + // + // btOK + // + this.btOK.Dock = System.Windows.Forms.DockStyle.Bottom; + this.btOK.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); + this.btOK.Location = new System.Drawing.Point(0, 400); + this.btOK.Margin = new System.Windows.Forms.Padding(8, 13, 8, 13); + this.btOK.Name = "btOK"; + this.btOK.Size = new System.Drawing.Size(499, 50); + this.btOK.TabIndex = 19; + this.btOK.Text = "확인"; + this.btOK.UseVisualStyleBackColor = true; + this.btOK.Click += new System.EventHandler(this.btOK_Click); + // + // fSelectCustInfo + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(499, 450); + this.Controls.Add(this.listView1); + this.Controls.Add(this.btOK); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fSelectCustInfo"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Select Customer"; + this.Load += new System.EventHandler(this.fSelectCustInfo_Load); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.ListView listView1; + private System.Windows.Forms.ColumnHeader columnHeader1; + private System.Windows.Forms.ColumnHeader columnHeader2; + private System.Windows.Forms.Button btOK; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/fSelectCustInfo.cs b/Handler/Project/Dialog/fSelectCustInfo.cs new file mode 100644 index 0000000..ed0d0ae --- /dev/null +++ b/Handler/Project/Dialog/fSelectCustInfo.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fSelectCustInfo : Form + { + public string CustCode, CustName; + public fSelectCustInfo() + { + InitializeComponent(); + } + + private void fSelectCustInfo_Load(object sender, EventArgs e) + { + this.Show(); + Application.DoEvents(); + + var ta = new DataSet1TableAdapters.Component_Reel_CustInfoTableAdapter(); + var dt = ta.GetData(); + this.listView1.Items.Clear(); + foreach(DataSet1.Component_Reel_CustInfoRow item in dt) + { + if (item.code.isEmpty()) continue; + var lv = this.listView1.Items.Add(item.code); + lv.SubItems.Add(item.name); + } + } + + private void btOK_Click(object sender, EventArgs e) + { + if (this.listView1.FocusedItem == null) + return; + + this.CustCode = this.listView1.FocusedItem.SubItems[0].Text; + this.CustName = this.listView1.FocusedItem.SubItems[1].Text; + DialogResult = DialogResult.OK; + } + } +} diff --git a/Handler/Project/Dialog/fSelectCustInfo.resx b/Handler/Project/Dialog/fSelectCustInfo.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/Project/Dialog/fSelectCustInfo.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/Project/Dialog/fSelectDataList.Designer.cs b/Handler/Project/Dialog/fSelectDataList.Designer.cs new file mode 100644 index 0000000..0027f36 --- /dev/null +++ b/Handler/Project/Dialog/fSelectDataList.Designer.cs @@ -0,0 +1,78 @@ +namespace Project.Dialog +{ + partial class fSelectDataList + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.listBox1 = new System.Windows.Forms.ListBox(); + this.button1 = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // listBox1 + // + this.listBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.listBox1.FormattingEnabled = true; + this.listBox1.ItemHeight = 40; + this.listBox1.Location = new System.Drawing.Point(0, 0); + this.listBox1.Name = "listBox1"; + this.listBox1.Size = new System.Drawing.Size(398, 392); + this.listBox1.TabIndex = 0; + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.button1.Location = new System.Drawing.Point(0, 392); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(398, 55); + this.button1.TabIndex = 1; + this.button1.Text = "선택 확인"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // fSelectDataList + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(398, 447); + this.Controls.Add(this.listBox1); + this.Controls.Add(this.button1); + this.Font = new System.Drawing.Font("맑은 고딕", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fSelectDataList"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "목록을 선택하세요"; + this.Load += new System.EventHandler(this.fSelectDataList_Load); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.ListBox listBox1; + private System.Windows.Forms.Button button1; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/fSelectDataList.cs b/Handler/Project/Dialog/fSelectDataList.cs new file mode 100644 index 0000000..a4f3a00 --- /dev/null +++ b/Handler/Project/Dialog/fSelectDataList.cs @@ -0,0 +1,48 @@ +using AR; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fSelectDataList : Form + { + public string SelectedValue = string.Empty; + public fSelectDataList(string[] list) + { + InitializeComponent(); + this.listBox1.Items.Clear(); + foreach (var item in list) + this.listBox1.Items.Add(item); + this.KeyDown += FSelectDataList_KeyDown; + } + + private void FSelectDataList_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Escape) this.Close(); + } + + private void fSelectDataList_Load(object sender, EventArgs e) + { + + } + + private void button1_Click(object sender, EventArgs e) + { + if (this.listBox1.SelectedIndex < 0) + { + UTIL.MsgE("아이템을 선택하세요\n\n취소하려면 ESC키 혹은 닫기 버튼을 누르세요"); + return; + } + this.SelectedValue = this.listBox1.Items[this.listBox1.SelectedIndex].ToString(); + this.DialogResult = DialogResult.OK; + + } + } +} diff --git a/Handler/Project/Dialog/fSelectDataList.resx b/Handler/Project/Dialog/fSelectDataList.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/Project/Dialog/fSelectDataList.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/Project/Dialog/fSelectDay.Designer.cs b/Handler/Project/Dialog/fSelectDay.Designer.cs new file mode 100644 index 0000000..bc73a2c --- /dev/null +++ b/Handler/Project/Dialog/fSelectDay.Designer.cs @@ -0,0 +1,74 @@ +namespace Project.Dialog +{ + partial class fSelectDay + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.monthCalendar1 = new System.Windows.Forms.MonthCalendar(); + this.button1 = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // monthCalendar1 + // + this.monthCalendar1.CalendarDimensions = new System.Drawing.Size(3, 2); + this.monthCalendar1.Dock = System.Windows.Forms.DockStyle.Fill; + this.monthCalendar1.Location = new System.Drawing.Point(0, 0); + this.monthCalendar1.Name = "monthCalendar1"; + this.monthCalendar1.TabIndex = 0; + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.button1.Location = new System.Drawing.Point(0, 312); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(669, 61); + this.button1.TabIndex = 1; + this.button1.Text = "선택"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // fSelectDay + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(669, 373); + this.Controls.Add(this.button1); + this.Controls.Add(this.monthCalendar1); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fSelectDay"; + this.Text = "fSelectDay"; + this.Load += new System.EventHandler(this.fSelectDay_Load); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.MonthCalendar monthCalendar1; + private System.Windows.Forms.Button button1; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/fSelectDay.cs b/Handler/Project/Dialog/fSelectDay.cs new file mode 100644 index 0000000..0fc5704 --- /dev/null +++ b/Handler/Project/Dialog/fSelectDay.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fSelectDay : Form + { + public DateTime dt { get; set; } + public fSelectDay(DateTime dt_) + { + InitializeComponent(); + this.dt = dt_; + this.StartPosition = FormStartPosition.CenterScreen; + } + + private void fSelectDay_Load(object sender, EventArgs e) + { + this.monthCalendar1.SelectionStart = this.dt; + this.monthCalendar1.SelectionEnd = this.dt; + } + + private void button1_Click(object sender, EventArgs e) + { + this.dt = this.monthCalendar1.SelectionStart; + DialogResult = DialogResult.OK; + } + } +} diff --git a/Handler/Project/Dialog/fSelectDay.resx b/Handler/Project/Dialog/fSelectDay.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/Project/Dialog/fSelectDay.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/Project/Dialog/fSelectJob.Designer.cs b/Handler/Project/Dialog/fSelectJob.Designer.cs new file mode 100644 index 0000000..5401a5c --- /dev/null +++ b/Handler/Project/Dialog/fSelectJob.Designer.cs @@ -0,0 +1,1219 @@ +namespace Project.Dialog +{ + partial class fSelectJob + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fSelectJob)); + this.panel2 = new System.Windows.Forms.Panel(); + this.panel5 = new System.Windows.Forms.Panel(); + this.cmbCustCode = new System.Windows.Forms.ComboBox(); + this.panel1 = new System.Windows.Forms.Panel(); + this.button1 = new System.Windows.Forms.Button(); + this.progressBar1 = new System.Windows.Forms.ProgressBar(); + this.label1 = new System.Windows.Forms.Label(); + this.lbMsgCamoff = new arCtl.arLabel(); + this.lbTitle = new arCtl.arLabel(); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.chkApplySidInfo = new System.Windows.Forms.CheckBox(); + this.chkApplyJobInfo = new System.Windows.Forms.CheckBox(); + this.chkApplySIDConv = new System.Windows.Forms.CheckBox(); + this.chkUserConfirm = new System.Windows.Forms.CheckBox(); + this.chkSIDConv = new System.Windows.Forms.CheckBox(); + this.chkQtyServer = new System.Windows.Forms.CheckBox(); + this.chkQtyMRQ = new System.Windows.Forms.CheckBox(); + this.chkNew = new System.Windows.Forms.CheckBox(); + this.tabPage2 = new System.Windows.Forms.TabPage(); + this.GrpSidConvData = new System.Windows.Forms.GroupBox(); + this.chkCVSave = new System.Windows.Forms.CheckBox(); + this.chkCVApplyQtyMax = new System.Windows.Forms.CheckBox(); + this.chkCVApplyBatch = new System.Windows.Forms.CheckBox(); + this.chkCVWhereLot = new System.Windows.Forms.CheckBox(); + this.chkCVApplyPrint = new System.Windows.Forms.CheckBox(); + this.chkCVApplyVender = new System.Windows.Forms.CheckBox(); + this.chkCVWhereSID = new System.Windows.Forms.CheckBox(); + this.chkCVWhereCust = new System.Windows.Forms.CheckBox(); + this.chkCVWherePart = new System.Windows.Forms.CheckBox(); + this.chkCVApplySID = new System.Windows.Forms.CheckBox(); + this.chkCVApplyCust = new System.Windows.Forms.CheckBox(); + this.chkCVApplyPartno = new System.Windows.Forms.CheckBox(); + this.label6 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.grpapplyjob = new System.Windows.Forms.GroupBox(); + this.chkDayWhereLot = new System.Windows.Forms.CheckBox(); + this.chkDayApplyPrint = new System.Windows.Forms.CheckBox(); + this.label3 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.chkDayApplyVender = new System.Windows.Forms.CheckBox(); + this.chkDayWhereSID = new System.Windows.Forms.CheckBox(); + this.chkDayWhereCust = new System.Windows.Forms.CheckBox(); + this.chkDayWherePart = new System.Windows.Forms.CheckBox(); + this.chkDayApplySID = new System.Windows.Forms.CheckBox(); + this.chkDayApplyCust = new System.Windows.Forms.CheckBox(); + this.chkDayApplyPart = new System.Windows.Forms.CheckBox(); + this.grpApplySidinfo = new System.Windows.Forms.GroupBox(); + this.chkInfoWhereMC = new System.Windows.Forms.CheckBox(); + this.chkInfoWhereLot = new System.Windows.Forms.CheckBox(); + this.chkInfoApplyQty = new System.Windows.Forms.CheckBox(); + this.chkInfoApplyBatch = new System.Windows.Forms.CheckBox(); + this.chkInfoSave = new System.Windows.Forms.CheckBox(); + this.chkInfoApplyPrint = new System.Windows.Forms.CheckBox(); + this.label4 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.chkInfoApplyVender = new System.Windows.Forms.CheckBox(); + this.chkInfoWhereSID = new System.Windows.Forms.CheckBox(); + this.chkInfoWhereCust = new System.Windows.Forms.CheckBox(); + this.chkInfoWherePart = new System.Windows.Forms.CheckBox(); + this.chkInfoApplySID = new System.Windows.Forms.CheckBox(); + this.chkInfoApplyCust = new System.Windows.Forms.CheckBox(); + this.chkInfoApplyPart = new System.Windows.Forms.CheckBox(); + this.tabPage3 = new System.Windows.Forms.TabPage(); + this.chkCustom = new System.Windows.Forms.CheckBox(); + this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); + this.btOK = new arCtl.arLabel(); + this.btCancle = new arCtl.arLabel(); + this.dataSet11 = new Project.DataSet1(); + this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); + this.panel2.SuspendLayout(); + this.panel5.SuspendLayout(); + this.tabControl1.SuspendLayout(); + this.tabPage1.SuspendLayout(); + this.tabPage2.SuspendLayout(); + this.GrpSidConvData.SuspendLayout(); + this.grpapplyjob.SuspendLayout(); + this.grpApplySidinfo.SuspendLayout(); + this.tabPage3.SuspendLayout(); + this.tableLayoutPanel3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataSet11)).BeginInit(); + this.SuspendLayout(); + // + // panel2 + // + this.panel2.Controls.Add(this.panel5); + this.panel2.Controls.Add(this.progressBar1); + this.panel2.Controls.Add(this.label1); + this.panel2.Controls.Add(this.lbMsgCamoff); + this.panel2.Controls.Add(this.lbTitle); + this.panel2.Controls.Add(this.tabControl1); + this.panel2.Controls.Add(this.tableLayoutPanel3); + this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel2.Location = new System.Drawing.Point(0, 0); + this.panel2.Name = "panel2"; + this.panel2.Padding = new System.Windows.Forms.Padding(9, 5, 9, 7); + this.panel2.Size = new System.Drawing.Size(751, 701); + this.panel2.TabIndex = 136; + // + // panel5 + // + this.panel5.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.panel5.Controls.Add(this.cmbCustCode); + this.panel5.Controls.Add(this.panel1); + this.panel5.Controls.Add(this.button1); + this.panel5.Dock = System.Windows.Forms.DockStyle.Top; + this.panel5.Location = new System.Drawing.Point(9, 224); + this.panel5.Name = "panel5"; + this.panel5.Padding = new System.Windows.Forms.Padding(5); + this.panel5.Size = new System.Drawing.Size(733, 73); + this.panel5.TabIndex = 28; + // + // cmbCustCode + // + this.cmbCustCode.Dock = System.Windows.Forms.DockStyle.Fill; + this.cmbCustCode.Font = new System.Drawing.Font("맑은 고딕", 30F, System.Drawing.FontStyle.Bold); + this.cmbCustCode.FormattingEnabled = true; + this.cmbCustCode.Location = new System.Drawing.Point(216, 5); + this.cmbCustCode.Name = "cmbCustCode"; + this.cmbCustCode.Size = new System.Drawing.Size(510, 62); + this.cmbCustCode.TabIndex = 1; + this.cmbCustCode.Text = "0000"; + // + // panel1 + // + this.panel1.Dock = System.Windows.Forms.DockStyle.Left; + this.panel1.Location = new System.Drawing.Point(211, 5); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(5, 61); + this.panel1.TabIndex = 18; + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Left; + this.button1.Font = new System.Drawing.Font("Microsoft Sans Serif", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button1.Location = new System.Drawing.Point(5, 5); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(206, 61); + this.button1.TabIndex = 17; + this.button1.Text = "CUSTOMER"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // progressBar1 + // + this.progressBar1.Dock = System.Windows.Forms.DockStyle.Top; + this.progressBar1.Location = new System.Drawing.Point(9, 214); + this.progressBar1.Name = "progressBar1"; + this.progressBar1.Size = new System.Drawing.Size(733, 10); + this.progressBar1.TabIndex = 27; + // + // label1 + // + this.label1.BackColor = System.Drawing.Color.SkyBlue; + this.label1.Dock = System.Windows.Forms.DockStyle.Top; + this.label1.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label1.Location = new System.Drawing.Point(9, 164); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(733, 50); + this.label1.TabIndex = 17; + this.label1.Text = "CONVEYOR MODE"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // lbMsgCamoff + // + this.lbMsgCamoff.BackColor = System.Drawing.Color.Tomato; + this.lbMsgCamoff.BackColor2 = System.Drawing.Color.Transparent; + this.lbMsgCamoff.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbMsgCamoff.BorderColor = System.Drawing.Color.Red; + this.lbMsgCamoff.BorderColorOver = System.Drawing.Color.Red; + this.lbMsgCamoff.BorderSize = new System.Windows.Forms.Padding(0); + this.lbMsgCamoff.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbMsgCamoff.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbMsgCamoff.Dock = System.Windows.Forms.DockStyle.Top; + this.lbMsgCamoff.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbMsgCamoff.ForeColor = System.Drawing.Color.White; + this.lbMsgCamoff.GradientEnable = true; + this.lbMsgCamoff.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lbMsgCamoff.GradientRepeatBG = false; + this.lbMsgCamoff.isButton = false; + this.lbMsgCamoff.Location = new System.Drawing.Point(9, 115); + this.lbMsgCamoff.MouseDownColor = System.Drawing.Color.Yellow; + this.lbMsgCamoff.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbMsgCamoff.msg = null; + this.lbMsgCamoff.Name = "lbMsgCamoff"; + this.lbMsgCamoff.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lbMsgCamoff.ProgressBorderColor = System.Drawing.Color.Black; + this.lbMsgCamoff.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbMsgCamoff.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbMsgCamoff.ProgressEnable = false; + this.lbMsgCamoff.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbMsgCamoff.ProgressForeColor = System.Drawing.Color.Black; + this.lbMsgCamoff.ProgressMax = 100F; + this.lbMsgCamoff.ProgressMin = 0F; + this.lbMsgCamoff.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbMsgCamoff.ProgressValue = 0F; + this.lbMsgCamoff.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.lbMsgCamoff.Sign = ""; + this.lbMsgCamoff.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbMsgCamoff.SignColor = System.Drawing.Color.Yellow; + this.lbMsgCamoff.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbMsgCamoff.Size = new System.Drawing.Size(733, 49); + this.lbMsgCamoff.TabIndex = 61; + this.lbMsgCamoff.Text = "카메라 사용이 OFF 되었습니다"; + this.lbMsgCamoff.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lbMsgCamoff.TextShadow = false; + this.lbMsgCamoff.TextVisible = true; + // + // lbTitle + // + this.lbTitle.BackColor = System.Drawing.Color.Transparent; + this.lbTitle.BackColor2 = System.Drawing.Color.Transparent; + this.lbTitle.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbTitle.BorderColor = System.Drawing.Color.Red; + this.lbTitle.BorderColorOver = System.Drawing.Color.Red; + this.lbTitle.BorderSize = new System.Windows.Forms.Padding(0); + this.lbTitle.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbTitle.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbTitle.Dock = System.Windows.Forms.DockStyle.Top; + this.lbTitle.Font = new System.Drawing.Font("맑은 고딕", 35F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbTitle.ForeColor = System.Drawing.Color.DarkCyan; + this.lbTitle.GradientEnable = true; + this.lbTitle.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lbTitle.GradientRepeatBG = false; + this.lbTitle.isButton = false; + this.lbTitle.Location = new System.Drawing.Point(9, 5); + this.lbTitle.MouseDownColor = System.Drawing.Color.Yellow; + this.lbTitle.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbTitle.msg = null; + this.lbTitle.Name = "lbTitle"; + this.lbTitle.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lbTitle.ProgressBorderColor = System.Drawing.Color.Black; + this.lbTitle.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbTitle.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbTitle.ProgressEnable = false; + this.lbTitle.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbTitle.ProgressForeColor = System.Drawing.Color.Black; + this.lbTitle.ProgressMax = 100F; + this.lbTitle.ProgressMin = 0F; + this.lbTitle.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbTitle.ProgressValue = 0F; + this.lbTitle.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.lbTitle.Sign = ""; + this.lbTitle.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbTitle.SignColor = System.Drawing.Color.Yellow; + this.lbTitle.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbTitle.Size = new System.Drawing.Size(733, 110); + this.lbTitle.TabIndex = 60; + this.lbTitle.Text = "작업 방식을 선택하세요"; + this.lbTitle.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lbTitle.TextShadow = false; + this.lbTitle.TextVisible = true; + this.lbTitle.Click += new System.EventHandler(this.lbTitle_Click); + // + // tabControl1 + // + this.tabControl1.Controls.Add(this.tabPage1); + this.tabControl1.Controls.Add(this.tabPage2); + this.tabControl1.Controls.Add(this.tabPage3); + this.tabControl1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.tabControl1.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tabControl1.Location = new System.Drawing.Point(9, 297); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(733, 296); + this.tabControl1.TabIndex = 26; + // + // tabPage1 + // + this.tabPage1.Controls.Add(this.chkApplySidInfo); + this.tabPage1.Controls.Add(this.chkApplyJobInfo); + this.tabPage1.Controls.Add(this.chkApplySIDConv); + this.tabPage1.Controls.Add(this.chkUserConfirm); + this.tabPage1.Controls.Add(this.chkSIDConv); + this.tabPage1.Controls.Add(this.chkQtyServer); + this.tabPage1.Controls.Add(this.chkQtyMRQ); + this.tabPage1.Controls.Add(this.chkNew); + this.tabPage1.Location = new System.Drawing.Point(4, 26); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(10); + this.tabPage1.Size = new System.Drawing.Size(725, 266); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "옵션"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // chkApplySidInfo + // + this.chkApplySidInfo.AutoSize = true; + this.chkApplySidInfo.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.chkApplySidInfo.ForeColor = System.Drawing.Color.Gray; + this.chkApplySidInfo.Location = new System.Drawing.Point(13, 199); + this.chkApplySidInfo.Name = "chkApplySidInfo"; + this.chkApplySidInfo.Size = new System.Drawing.Size(423, 25); + this.chkApplySidInfo.TabIndex = 33; + this.chkApplySidInfo.Tag = "6"; + this.chkApplySidInfo.Text = "SID정보 테이블을 이용하여 데이터를 자동 기록합니다."; + this.chkApplySidInfo.UseVisualStyleBackColor = true; + this.chkApplySidInfo.CheckStateChanged += new System.EventHandler(this.checkBox1_CheckStateChanged); + // + // chkApplyJobInfo + // + this.chkApplyJobInfo.AutoSize = true; + this.chkApplyJobInfo.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.chkApplyJobInfo.ForeColor = System.Drawing.Color.Gray; + this.chkApplyJobInfo.Location = new System.Drawing.Point(13, 167); + this.chkApplyJobInfo.Name = "chkApplyJobInfo"; + this.chkApplyJobInfo.Size = new System.Drawing.Size(427, 25); + this.chkApplyJobInfo.TabIndex = 32; + this.chkApplyJobInfo.Tag = "5"; + this.chkApplyJobInfo.Text = "당일 작업 내역을 이용하여 데이터를 자동 기록 합니다."; + this.chkApplyJobInfo.UseVisualStyleBackColor = true; + this.chkApplyJobInfo.CheckStateChanged += new System.EventHandler(this.checkBox1_CheckStateChanged); + // + // chkApplySIDConv + // + this.chkApplySIDConv.AutoSize = true; + this.chkApplySIDConv.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.chkApplySIDConv.ForeColor = System.Drawing.Color.Gray; + this.chkApplySIDConv.Location = new System.Drawing.Point(13, 231); + this.chkApplySIDConv.Name = "chkApplySIDConv"; + this.chkApplySIDConv.Size = new System.Drawing.Size(425, 25); + this.chkApplySIDConv.TabIndex = 31; + this.chkApplySIDConv.Tag = "7"; + this.chkApplySIDConv.Text = "SID변환 테이블을 이용하여 데이터를 자동 기록 합니다"; + this.chkApplySIDConv.UseVisualStyleBackColor = true; + this.chkApplySIDConv.CheckStateChanged += new System.EventHandler(this.checkBox1_CheckStateChanged); + // + // chkUserConfirm + // + this.chkUserConfirm.AutoSize = true; + this.chkUserConfirm.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.chkUserConfirm.ForeColor = System.Drawing.Color.Gray; + this.chkUserConfirm.Location = new System.Drawing.Point(13, 8); + this.chkUserConfirm.Name = "chkUserConfirm"; + this.chkUserConfirm.Size = new System.Drawing.Size(435, 25); + this.chkUserConfirm.TabIndex = 13; + this.chkUserConfirm.Tag = "0"; + this.chkUserConfirm.Text = "최종 인쇄값을 사용자가 확인 합니다 (자동진행 안됨)"; + this.chkUserConfirm.UseVisualStyleBackColor = true; + this.chkUserConfirm.CheckStateChanged += new System.EventHandler(this.checkBox1_CheckStateChanged); + // + // chkSIDConv + // + this.chkSIDConv.AutoSize = true; + this.chkSIDConv.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.chkSIDConv.ForeColor = System.Drawing.Color.Gray; + this.chkSIDConv.Location = new System.Drawing.Point(13, 135); + this.chkSIDConv.Name = "chkSIDConv"; + this.chkSIDConv.Size = new System.Drawing.Size(413, 25); + this.chkSIDConv.TabIndex = 28; + this.chkSIDConv.Tag = "4"; + this.chkSIDConv.Text = "SID변환 테이블을 이용하여 SID값을 전환 합니다."; + this.chkSIDConv.UseVisualStyleBackColor = true; + this.chkSIDConv.CheckStateChanged += new System.EventHandler(this.checkBox1_CheckStateChanged); + // + // chkQtyServer + // + this.chkQtyServer.AutoSize = true; + this.chkQtyServer.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.chkQtyServer.ForeColor = System.Drawing.Color.Gray; + this.chkQtyServer.Location = new System.Drawing.Point(13, 40); + this.chkQtyServer.Name = "chkQtyServer"; + this.chkQtyServer.Size = new System.Drawing.Size(448, 25); + this.chkQtyServer.TabIndex = 13; + this.chkQtyServer.Tag = "1"; + this.chkQtyServer.Text = "Reel ID 를 기준으로 서버의 수량을 조회하여 사용 합니다."; + this.chkQtyServer.UseVisualStyleBackColor = true; + this.chkQtyServer.CheckStateChanged += new System.EventHandler(this.checkBox1_CheckStateChanged); + // + // chkQtyMRQ + // + this.chkQtyMRQ.AutoSize = true; + this.chkQtyMRQ.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.chkQtyMRQ.ForeColor = System.Drawing.Color.Gray; + this.chkQtyMRQ.Location = new System.Drawing.Point(13, 103); + this.chkQtyMRQ.Name = "chkQtyMRQ"; + this.chkQtyMRQ.Size = new System.Drawing.Size(405, 25); + this.chkQtyMRQ.TabIndex = 27; + this.chkQtyMRQ.Tag = "3"; + this.chkQtyMRQ.Text = "수량을 직접 입력 합니다.(RQ가 읽혔다면 자동 진행)"; + this.chkQtyMRQ.UseVisualStyleBackColor = true; + this.chkQtyMRQ.CheckStateChanged += new System.EventHandler(this.checkBox1_CheckStateChanged); + // + // chkNew + // + this.chkNew.AutoSize = true; + this.chkNew.Font = new System.Drawing.Font("맑은 고딕", 11F); + this.chkNew.ForeColor = System.Drawing.Color.Gray; + this.chkNew.Location = new System.Drawing.Point(13, 72); + this.chkNew.Name = "chkNew"; + this.chkNew.Size = new System.Drawing.Size(247, 24); + this.chkNew.TabIndex = 24; + this.chkNew.Tag = "2"; + this.chkNew.Text = "Reel ID 를 신규로 생성 합니다"; + this.chkNew.UseVisualStyleBackColor = true; + this.chkNew.CheckStateChanged += new System.EventHandler(this.checkBox1_CheckStateChanged); + // + // tabPage2 + // + this.tabPage2.Controls.Add(this.GrpSidConvData); + this.tabPage2.Controls.Add(this.grpapplyjob); + this.tabPage2.Controls.Add(this.grpApplySidinfo); + this.tabPage2.Location = new System.Drawing.Point(4, 26); + this.tabPage2.Name = "tabPage2"; + this.tabPage2.Padding = new System.Windows.Forms.Padding(10); + this.tabPage2.Size = new System.Drawing.Size(725, 266); + this.tabPage2.TabIndex = 1; + this.tabPage2.Text = "옵션 데이터"; + this.tabPage2.UseVisualStyleBackColor = true; + // + // GrpSidConvData + // + this.GrpSidConvData.Controls.Add(this.chkCVSave); + this.GrpSidConvData.Controls.Add(this.chkCVApplyQtyMax); + this.GrpSidConvData.Controls.Add(this.chkCVApplyBatch); + this.GrpSidConvData.Controls.Add(this.chkCVWhereLot); + this.GrpSidConvData.Controls.Add(this.chkCVApplyPrint); + this.GrpSidConvData.Controls.Add(this.chkCVApplyVender); + this.GrpSidConvData.Controls.Add(this.chkCVWhereSID); + this.GrpSidConvData.Controls.Add(this.chkCVWhereCust); + this.GrpSidConvData.Controls.Add(this.chkCVWherePart); + this.GrpSidConvData.Controls.Add(this.chkCVApplySID); + this.GrpSidConvData.Controls.Add(this.chkCVApplyCust); + this.GrpSidConvData.Controls.Add(this.chkCVApplyPartno); + this.GrpSidConvData.Controls.Add(this.label6); + this.GrpSidConvData.Controls.Add(this.label7); + this.GrpSidConvData.Dock = System.Windows.Forms.DockStyle.Top; + this.GrpSidConvData.Enabled = false; + this.GrpSidConvData.Font = new System.Drawing.Font("맑은 고딕", 10F); + this.GrpSidConvData.Location = new System.Drawing.Point(10, 174); + this.GrpSidConvData.Name = "GrpSidConvData"; + this.GrpSidConvData.Size = new System.Drawing.Size(705, 82); + this.GrpSidConvData.TabIndex = 34; + this.GrpSidConvData.TabStop = false; + this.GrpSidConvData.Text = "SID변환 테이블 서버적용"; + // + // chkCVSave + // + this.chkCVSave.AutoSize = true; + this.chkCVSave.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.chkCVSave.ForeColor = System.Drawing.Color.Tomato; + this.chkCVSave.Location = new System.Drawing.Point(431, 47); + this.chkCVSave.Name = "chkCVSave"; + this.chkCVSave.Size = new System.Drawing.Size(230, 23); + this.chkCVSave.TabIndex = 51; + this.chkCVSave.Tag = "11"; + this.chkCVSave.Text = "변경 정보를 서버에 기록 합니다"; + this.chkCVSave.UseVisualStyleBackColor = true; + // + // chkCVApplyQtyMax + // + this.chkCVApplyQtyMax.AutoSize = true; + this.chkCVApplyQtyMax.ForeColor = System.Drawing.Color.Green; + this.chkCVApplyQtyMax.Location = new System.Drawing.Point(617, 21); + this.chkCVApplyQtyMax.Name = "chkCVApplyQtyMax"; + this.chkCVApplyQtyMax.Size = new System.Drawing.Size(86, 23); + this.chkCVApplyQtyMax.TabIndex = 50; + this.chkCVApplyQtyMax.Tag = "10"; + this.chkCVApplyQtyMax.Text = "Qty(Max)"; + this.chkCVApplyQtyMax.UseVisualStyleBackColor = true; + // + // chkCVApplyBatch + // + this.chkCVApplyBatch.AutoSize = true; + this.chkCVApplyBatch.ForeColor = System.Drawing.Color.Green; + this.chkCVApplyBatch.Location = new System.Drawing.Point(548, 21); + this.chkCVApplyBatch.Name = "chkCVApplyBatch"; + this.chkCVApplyBatch.Size = new System.Drawing.Size(63, 23); + this.chkCVApplyBatch.TabIndex = 49; + this.chkCVApplyBatch.Tag = "9"; + this.chkCVApplyBatch.Text = "Batch"; + this.chkCVApplyBatch.UseVisualStyleBackColor = true; + // + // chkCVWhereLot + // + this.chkCVWhereLot.AutoSize = true; + this.chkCVWhereLot.ForeColor = System.Drawing.Color.Blue; + this.chkCVWhereLot.Location = new System.Drawing.Point(311, 46); + this.chkCVWhereLot.Name = "chkCVWhereLot"; + this.chkCVWhereLot.Size = new System.Drawing.Size(62, 23); + this.chkCVWhereLot.TabIndex = 48; + this.chkCVWhereLot.Tag = "8"; + this.chkCVWhereLot.Text = "VLOT"; + this.chkCVWhereLot.UseVisualStyleBackColor = true; + // + // chkCVApplyPrint + // + this.chkCVApplyPrint.AutoSize = true; + this.chkCVApplyPrint.Location = new System.Drawing.Point(431, 21); + this.chkCVApplyPrint.Name = "chkCVApplyPrint"; + this.chkCVApplyPrint.Size = new System.Drawing.Size(111, 23); + this.chkCVApplyPrint.TabIndex = 47; + this.chkCVApplyPrint.Tag = "4"; + this.chkCVApplyPrint.Text = "Print Position"; + this.chkCVApplyPrint.UseVisualStyleBackColor = true; + // + // chkCVApplyVender + // + this.chkCVApplyVender.AutoSize = true; + this.chkCVApplyVender.Location = new System.Drawing.Point(311, 20); + this.chkCVApplyVender.Name = "chkCVApplyVender"; + this.chkCVApplyVender.Size = new System.Drawing.Size(114, 23); + this.chkCVApplyVender.TabIndex = 46; + this.chkCVApplyVender.Tag = "3"; + this.chkCVApplyVender.Text = "Vender Name"; + this.chkCVApplyVender.UseVisualStyleBackColor = true; + // + // chkCVWhereSID + // + this.chkCVWhereSID.AutoSize = true; + this.chkCVWhereSID.ForeColor = System.Drawing.Color.Blue; + this.chkCVWhereSID.Location = new System.Drawing.Point(255, 46); + this.chkCVWhereSID.Name = "chkCVWhereSID"; + this.chkCVWhereSID.Size = new System.Drawing.Size(50, 23); + this.chkCVWhereSID.TabIndex = 45; + this.chkCVWhereSID.Tag = "7"; + this.chkCVWhereSID.Text = "SID"; + this.chkCVWhereSID.UseVisualStyleBackColor = true; + // + // chkCVWhereCust + // + this.chkCVWhereCust.AutoSize = true; + this.chkCVWhereCust.ForeColor = System.Drawing.Color.Blue; + this.chkCVWhereCust.Location = new System.Drawing.Point(156, 46); + this.chkCVWhereCust.Name = "chkCVWhereCust"; + this.chkCVWhereCust.Size = new System.Drawing.Size(93, 23); + this.chkCVWhereCust.TabIndex = 40; + this.chkCVWhereCust.Tag = "6"; + this.chkCVWhereCust.Text = "Cust Code"; + this.chkCVWhereCust.UseVisualStyleBackColor = true; + // + // chkCVWherePart + // + this.chkCVWherePart.AutoSize = true; + this.chkCVWherePart.ForeColor = System.Drawing.Color.Blue; + this.chkCVWherePart.Location = new System.Drawing.Point(73, 46); + this.chkCVWherePart.Name = "chkCVWherePart"; + this.chkCVWherePart.Size = new System.Drawing.Size(77, 23); + this.chkCVWherePart.TabIndex = 41; + this.chkCVWherePart.Tag = "5"; + this.chkCVWherePart.Text = "Part No"; + this.chkCVWherePart.UseVisualStyleBackColor = true; + // + // chkCVApplySID + // + this.chkCVApplySID.AutoSize = true; + this.chkCVApplySID.Location = new System.Drawing.Point(255, 20); + this.chkCVApplySID.Name = "chkCVApplySID"; + this.chkCVApplySID.Size = new System.Drawing.Size(50, 23); + this.chkCVApplySID.TabIndex = 44; + this.chkCVApplySID.Tag = "2"; + this.chkCVApplySID.Text = "SID"; + this.chkCVApplySID.UseVisualStyleBackColor = true; + // + // chkCVApplyCust + // + this.chkCVApplyCust.AutoSize = true; + this.chkCVApplyCust.Location = new System.Drawing.Point(156, 20); + this.chkCVApplyCust.Name = "chkCVApplyCust"; + this.chkCVApplyCust.Size = new System.Drawing.Size(93, 23); + this.chkCVApplyCust.TabIndex = 42; + this.chkCVApplyCust.Tag = "1"; + this.chkCVApplyCust.Text = "Cust Code"; + this.chkCVApplyCust.UseVisualStyleBackColor = true; + // + // chkCVApplyPartno + // + this.chkCVApplyPartno.AutoSize = true; + this.chkCVApplyPartno.Location = new System.Drawing.Point(73, 20); + this.chkCVApplyPartno.Name = "chkCVApplyPartno"; + this.chkCVApplyPartno.Size = new System.Drawing.Size(77, 23); + this.chkCVApplyPartno.TabIndex = 43; + this.chkCVApplyPartno.Tag = "0"; + this.chkCVApplyPartno.Text = "Part No"; + this.chkCVApplyPartno.UseVisualStyleBackColor = true; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Font = new System.Drawing.Font("맑은 고딕", 9F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic)))); + this.label6.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.label6.Location = new System.Drawing.Point(6, 54); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(55, 15); + this.label6.TabIndex = 29; + this.label6.Text = "조회대상"; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Font = new System.Drawing.Font("맑은 고딕", 9F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic)))); + this.label7.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.label7.Location = new System.Drawing.Point(7, 28); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(55, 15); + this.label7.TabIndex = 29; + this.label7.Text = "적용대상"; + // + // grpapplyjob + // + this.grpapplyjob.Controls.Add(this.chkDayWhereLot); + this.grpapplyjob.Controls.Add(this.chkDayApplyPrint); + this.grpapplyjob.Controls.Add(this.label3); + this.grpapplyjob.Controls.Add(this.label2); + this.grpapplyjob.Controls.Add(this.chkDayApplyVender); + this.grpapplyjob.Controls.Add(this.chkDayWhereSID); + this.grpapplyjob.Controls.Add(this.chkDayWhereCust); + this.grpapplyjob.Controls.Add(this.chkDayWherePart); + this.grpapplyjob.Controls.Add(this.chkDayApplySID); + this.grpapplyjob.Controls.Add(this.chkDayApplyCust); + this.grpapplyjob.Controls.Add(this.chkDayApplyPart); + this.grpapplyjob.Dock = System.Windows.Forms.DockStyle.Top; + this.grpapplyjob.Enabled = false; + this.grpapplyjob.Font = new System.Drawing.Font("맑은 고딕", 10F); + this.grpapplyjob.Location = new System.Drawing.Point(10, 92); + this.grpapplyjob.Name = "grpapplyjob"; + this.grpapplyjob.Size = new System.Drawing.Size(705, 82); + this.grpapplyjob.TabIndex = 33; + this.grpapplyjob.TabStop = false; + this.grpapplyjob.Text = "당일작업 적용"; + // + // chkDayWhereLot + // + this.chkDayWhereLot.AutoSize = true; + this.chkDayWhereLot.ForeColor = System.Drawing.Color.Blue; + this.chkDayWhereLot.Location = new System.Drawing.Point(311, 50); + this.chkDayWhereLot.Name = "chkDayWhereLot"; + this.chkDayWhereLot.Size = new System.Drawing.Size(62, 23); + this.chkDayWhereLot.TabIndex = 31; + this.chkDayWhereLot.Tag = "11"; + this.chkDayWhereLot.Text = "VLOT"; + this.chkDayWhereLot.UseVisualStyleBackColor = true; + // + // chkDayApplyPrint + // + this.chkDayApplyPrint.AutoSize = true; + this.chkDayApplyPrint.Location = new System.Drawing.Point(431, 24); + this.chkDayApplyPrint.Name = "chkDayApplyPrint"; + this.chkDayApplyPrint.Size = new System.Drawing.Size(111, 23); + this.chkDayApplyPrint.TabIndex = 30; + this.chkDayApplyPrint.Tag = "4"; + this.chkDayApplyPrint.Text = "Print Position"; + this.chkDayApplyPrint.UseVisualStyleBackColor = true; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Font = new System.Drawing.Font("맑은 고딕", 9F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic)))); + this.label3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.label3.Location = new System.Drawing.Point(6, 54); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(55, 15); + this.label3.TabIndex = 29; + this.label3.Text = "조회대상"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("맑은 고딕", 9F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic)))); + this.label2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.label2.Location = new System.Drawing.Point(7, 28); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(55, 15); + this.label2.TabIndex = 29; + this.label2.Text = "적용대상"; + // + // chkDayApplyVender + // + this.chkDayApplyVender.AutoSize = true; + this.chkDayApplyVender.Location = new System.Drawing.Point(311, 24); + this.chkDayApplyVender.Name = "chkDayApplyVender"; + this.chkDayApplyVender.Size = new System.Drawing.Size(114, 23); + this.chkDayApplyVender.TabIndex = 28; + this.chkDayApplyVender.Tag = "3"; + this.chkDayApplyVender.Text = "Vender Name"; + this.chkDayApplyVender.UseVisualStyleBackColor = true; + // + // chkDayWhereSID + // + this.chkDayWhereSID.AutoSize = true; + this.chkDayWhereSID.ForeColor = System.Drawing.Color.Blue; + this.chkDayWhereSID.Location = new System.Drawing.Point(255, 50); + this.chkDayWhereSID.Name = "chkDayWhereSID"; + this.chkDayWhereSID.Size = new System.Drawing.Size(50, 23); + this.chkDayWhereSID.TabIndex = 27; + this.chkDayWhereSID.Tag = "7"; + this.chkDayWhereSID.Text = "SID"; + this.chkDayWhereSID.UseVisualStyleBackColor = true; + // + // chkDayWhereCust + // + this.chkDayWhereCust.AutoSize = true; + this.chkDayWhereCust.ForeColor = System.Drawing.Color.Blue; + this.chkDayWhereCust.Location = new System.Drawing.Point(156, 50); + this.chkDayWhereCust.Name = "chkDayWhereCust"; + this.chkDayWhereCust.Size = new System.Drawing.Size(93, 23); + this.chkDayWhereCust.TabIndex = 25; + this.chkDayWhereCust.Tag = "6"; + this.chkDayWhereCust.Text = "Cust Code"; + this.chkDayWhereCust.UseVisualStyleBackColor = true; + // + // chkDayWherePart + // + this.chkDayWherePart.AutoSize = true; + this.chkDayWherePart.ForeColor = System.Drawing.Color.Blue; + this.chkDayWherePart.Location = new System.Drawing.Point(73, 50); + this.chkDayWherePart.Name = "chkDayWherePart"; + this.chkDayWherePart.Size = new System.Drawing.Size(77, 23); + this.chkDayWherePart.TabIndex = 25; + this.chkDayWherePart.Tag = "5"; + this.chkDayWherePart.Text = "Part No"; + this.chkDayWherePart.UseVisualStyleBackColor = true; + // + // chkDayApplySID + // + this.chkDayApplySID.AutoSize = true; + this.chkDayApplySID.Location = new System.Drawing.Point(255, 24); + this.chkDayApplySID.Name = "chkDayApplySID"; + this.chkDayApplySID.Size = new System.Drawing.Size(50, 23); + this.chkDayApplySID.TabIndex = 26; + this.chkDayApplySID.Tag = "2"; + this.chkDayApplySID.Text = "SID"; + this.chkDayApplySID.UseVisualStyleBackColor = true; + // + // chkDayApplyCust + // + this.chkDayApplyCust.AutoSize = true; + this.chkDayApplyCust.Location = new System.Drawing.Point(156, 24); + this.chkDayApplyCust.Name = "chkDayApplyCust"; + this.chkDayApplyCust.Size = new System.Drawing.Size(93, 23); + this.chkDayApplyCust.TabIndex = 25; + this.chkDayApplyCust.Tag = "1"; + this.chkDayApplyCust.Text = "Cust Code"; + this.chkDayApplyCust.UseVisualStyleBackColor = true; + // + // chkDayApplyPart + // + this.chkDayApplyPart.AutoSize = true; + this.chkDayApplyPart.Location = new System.Drawing.Point(73, 24); + this.chkDayApplyPart.Name = "chkDayApplyPart"; + this.chkDayApplyPart.Size = new System.Drawing.Size(77, 23); + this.chkDayApplyPart.TabIndex = 25; + this.chkDayApplyPart.Tag = "0"; + this.chkDayApplyPart.Text = "Part No"; + this.chkDayApplyPart.UseVisualStyleBackColor = true; + // + // grpApplySidinfo + // + this.grpApplySidinfo.Controls.Add(this.chkInfoWhereMC); + this.grpApplySidinfo.Controls.Add(this.chkInfoWhereLot); + this.grpApplySidinfo.Controls.Add(this.chkInfoApplyQty); + this.grpApplySidinfo.Controls.Add(this.chkInfoApplyBatch); + this.grpApplySidinfo.Controls.Add(this.chkInfoSave); + this.grpApplySidinfo.Controls.Add(this.chkInfoApplyPrint); + this.grpApplySidinfo.Controls.Add(this.label4); + this.grpApplySidinfo.Controls.Add(this.label5); + this.grpApplySidinfo.Controls.Add(this.chkInfoApplyVender); + this.grpApplySidinfo.Controls.Add(this.chkInfoWhereSID); + this.grpApplySidinfo.Controls.Add(this.chkInfoWhereCust); + this.grpApplySidinfo.Controls.Add(this.chkInfoWherePart); + this.grpApplySidinfo.Controls.Add(this.chkInfoApplySID); + this.grpApplySidinfo.Controls.Add(this.chkInfoApplyCust); + this.grpApplySidinfo.Controls.Add(this.chkInfoApplyPart); + this.grpApplySidinfo.Dock = System.Windows.Forms.DockStyle.Top; + this.grpApplySidinfo.Enabled = false; + this.grpApplySidinfo.Font = new System.Drawing.Font("맑은 고딕", 10F); + this.grpApplySidinfo.Location = new System.Drawing.Point(10, 10); + this.grpApplySidinfo.Name = "grpApplySidinfo"; + this.grpApplySidinfo.Size = new System.Drawing.Size(705, 82); + this.grpApplySidinfo.TabIndex = 33; + this.grpApplySidinfo.TabStop = false; + this.grpApplySidinfo.Text = "입력정보 적용"; + // + // chkInfoWhereMC + // + this.chkInfoWhereMC.AutoSize = true; + this.chkInfoWhereMC.ForeColor = System.Drawing.Color.Blue; + this.chkInfoWhereMC.Location = new System.Drawing.Point(379, 50); + this.chkInfoWhereMC.Name = "chkInfoWhereMC"; + this.chkInfoWhereMC.Size = new System.Drawing.Size(50, 23); + this.chkInfoWhereMC.TabIndex = 36; + this.chkInfoWhereMC.Tag = "12"; + this.chkInfoWhereMC.Text = "MC"; + this.chkInfoWhereMC.UseVisualStyleBackColor = true; + // + // chkInfoWhereLot + // + this.chkInfoWhereLot.AutoSize = true; + this.chkInfoWhereLot.ForeColor = System.Drawing.Color.Blue; + this.chkInfoWhereLot.Location = new System.Drawing.Point(311, 50); + this.chkInfoWhereLot.Name = "chkInfoWhereLot"; + this.chkInfoWhereLot.Size = new System.Drawing.Size(62, 23); + this.chkInfoWhereLot.TabIndex = 35; + this.chkInfoWhereLot.Tag = "11"; + this.chkInfoWhereLot.Text = "VLOT"; + this.chkInfoWhereLot.UseVisualStyleBackColor = true; + // + // chkInfoApplyQty + // + this.chkInfoApplyQty.AutoSize = true; + this.chkInfoApplyQty.ForeColor = System.Drawing.Color.Green; + this.chkInfoApplyQty.Location = new System.Drawing.Point(614, 24); + this.chkInfoApplyQty.Name = "chkInfoApplyQty"; + this.chkInfoApplyQty.Size = new System.Drawing.Size(86, 23); + this.chkInfoApplyQty.TabIndex = 34; + this.chkInfoApplyQty.Tag = "10"; + this.chkInfoApplyQty.Text = "Qty(Max)"; + this.chkInfoApplyQty.UseVisualStyleBackColor = true; + // + // chkInfoApplyBatch + // + this.chkInfoApplyBatch.AutoSize = true; + this.chkInfoApplyBatch.ForeColor = System.Drawing.Color.Green; + this.chkInfoApplyBatch.Location = new System.Drawing.Point(545, 24); + this.chkInfoApplyBatch.Name = "chkInfoApplyBatch"; + this.chkInfoApplyBatch.Size = new System.Drawing.Size(63, 23); + this.chkInfoApplyBatch.TabIndex = 33; + this.chkInfoApplyBatch.Tag = "9"; + this.chkInfoApplyBatch.Text = "Batch"; + this.chkInfoApplyBatch.UseVisualStyleBackColor = true; + // + // chkInfoSave + // + this.chkInfoSave.AutoSize = true; + this.chkInfoSave.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.chkInfoSave.ForeColor = System.Drawing.Color.Tomato; + this.chkInfoSave.Location = new System.Drawing.Point(431, 50); + this.chkInfoSave.Name = "chkInfoSave"; + this.chkInfoSave.Size = new System.Drawing.Size(230, 23); + this.chkInfoSave.TabIndex = 32; + this.chkInfoSave.Tag = "8"; + this.chkInfoSave.Text = "변경 정보를 서버에 기록 합니다"; + this.chkInfoSave.UseVisualStyleBackColor = true; + // + // chkInfoApplyPrint + // + this.chkInfoApplyPrint.AutoSize = true; + this.chkInfoApplyPrint.Location = new System.Drawing.Point(431, 25); + this.chkInfoApplyPrint.Name = "chkInfoApplyPrint"; + this.chkInfoApplyPrint.Size = new System.Drawing.Size(111, 23); + this.chkInfoApplyPrint.TabIndex = 31; + this.chkInfoApplyPrint.Tag = "4"; + this.chkInfoApplyPrint.Text = "Print Position"; + this.chkInfoApplyPrint.UseVisualStyleBackColor = true; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Font = new System.Drawing.Font("맑은 고딕", 9F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic)))); + this.label4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.label4.Location = new System.Drawing.Point(6, 54); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(55, 15); + this.label4.TabIndex = 29; + this.label4.Text = "조회대상"; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Font = new System.Drawing.Font("맑은 고딕", 9F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic)))); + this.label5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.label5.Location = new System.Drawing.Point(7, 28); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(55, 15); + this.label5.TabIndex = 29; + this.label5.Text = "적용대상"; + // + // chkInfoApplyVender + // + this.chkInfoApplyVender.AutoSize = true; + this.chkInfoApplyVender.Location = new System.Drawing.Point(311, 24); + this.chkInfoApplyVender.Name = "chkInfoApplyVender"; + this.chkInfoApplyVender.Size = new System.Drawing.Size(114, 23); + this.chkInfoApplyVender.TabIndex = 28; + this.chkInfoApplyVender.Tag = "3"; + this.chkInfoApplyVender.Text = "Vender Name"; + this.chkInfoApplyVender.UseVisualStyleBackColor = true; + // + // chkInfoWhereSID + // + this.chkInfoWhereSID.AutoSize = true; + this.chkInfoWhereSID.ForeColor = System.Drawing.Color.Blue; + this.chkInfoWhereSID.Location = new System.Drawing.Point(255, 50); + this.chkInfoWhereSID.Name = "chkInfoWhereSID"; + this.chkInfoWhereSID.Size = new System.Drawing.Size(50, 23); + this.chkInfoWhereSID.TabIndex = 27; + this.chkInfoWhereSID.Tag = "7"; + this.chkInfoWhereSID.Text = "SID"; + this.chkInfoWhereSID.UseVisualStyleBackColor = true; + // + // chkInfoWhereCust + // + this.chkInfoWhereCust.AutoSize = true; + this.chkInfoWhereCust.ForeColor = System.Drawing.Color.Blue; + this.chkInfoWhereCust.Location = new System.Drawing.Point(156, 50); + this.chkInfoWhereCust.Name = "chkInfoWhereCust"; + this.chkInfoWhereCust.Size = new System.Drawing.Size(93, 23); + this.chkInfoWhereCust.TabIndex = 25; + this.chkInfoWhereCust.Tag = "6"; + this.chkInfoWhereCust.Text = "Cust Code"; + this.chkInfoWhereCust.UseVisualStyleBackColor = true; + // + // chkInfoWherePart + // + this.chkInfoWherePart.AutoSize = true; + this.chkInfoWherePart.ForeColor = System.Drawing.Color.Blue; + this.chkInfoWherePart.Location = new System.Drawing.Point(73, 50); + this.chkInfoWherePart.Name = "chkInfoWherePart"; + this.chkInfoWherePart.Size = new System.Drawing.Size(77, 23); + this.chkInfoWherePart.TabIndex = 25; + this.chkInfoWherePart.Tag = "5"; + this.chkInfoWherePart.Text = "Part No"; + this.chkInfoWherePart.UseVisualStyleBackColor = true; + // + // chkInfoApplySID + // + this.chkInfoApplySID.AutoSize = true; + this.chkInfoApplySID.Location = new System.Drawing.Point(255, 24); + this.chkInfoApplySID.Name = "chkInfoApplySID"; + this.chkInfoApplySID.Size = new System.Drawing.Size(50, 23); + this.chkInfoApplySID.TabIndex = 26; + this.chkInfoApplySID.Tag = "2"; + this.chkInfoApplySID.Text = "SID"; + this.chkInfoApplySID.UseVisualStyleBackColor = true; + // + // chkInfoApplyCust + // + this.chkInfoApplyCust.AutoSize = true; + this.chkInfoApplyCust.Location = new System.Drawing.Point(156, 24); + this.chkInfoApplyCust.Name = "chkInfoApplyCust"; + this.chkInfoApplyCust.Size = new System.Drawing.Size(93, 23); + this.chkInfoApplyCust.TabIndex = 25; + this.chkInfoApplyCust.Tag = "1"; + this.chkInfoApplyCust.Text = "Cust Code"; + this.chkInfoApplyCust.UseVisualStyleBackColor = true; + // + // chkInfoApplyPart + // + this.chkInfoApplyPart.AutoSize = true; + this.chkInfoApplyPart.Location = new System.Drawing.Point(73, 24); + this.chkInfoApplyPart.Name = "chkInfoApplyPart"; + this.chkInfoApplyPart.Size = new System.Drawing.Size(77, 23); + this.chkInfoApplyPart.TabIndex = 25; + this.chkInfoApplyPart.Tag = "0"; + this.chkInfoApplyPart.Text = "Part No"; + this.chkInfoApplyPart.UseVisualStyleBackColor = true; + // + // tabPage3 + // + this.tabPage3.Controls.Add(this.chkCustom); + this.tabPage3.Location = new System.Drawing.Point(4, 26); + this.tabPage3.Name = "tabPage3"; + this.tabPage3.Size = new System.Drawing.Size(725, 266); + this.tabPage3.TabIndex = 2; + this.tabPage3.Text = "기타"; + this.tabPage3.UseVisualStyleBackColor = true; + // + // chkCustom + // + this.chkCustom.AutoSize = true; + this.chkCustom.Location = new System.Drawing.Point(17, 15); + this.chkCustom.Name = "chkCustom"; + this.chkCustom.Size = new System.Drawing.Size(105, 23); + this.chkCustom.TabIndex = 19; + this.chkCustom.Text = "Custom JOB"; + this.chkCustom.UseVisualStyleBackColor = true; + // + // tableLayoutPanel3 + // + this.tableLayoutPanel3.ColumnCount = 2; + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel3.Controls.Add(this.btOK, 1, 0); + this.tableLayoutPanel3.Controls.Add(this.btCancle, 0, 0); + this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Bottom; + this.tableLayoutPanel3.Location = new System.Drawing.Point(9, 593); + this.tableLayoutPanel3.Name = "tableLayoutPanel3"; + this.tableLayoutPanel3.RowCount = 1; + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel3.Size = new System.Drawing.Size(733, 101); + this.tableLayoutPanel3.TabIndex = 12; + // + // btOK + // + this.btOK.BackColor = System.Drawing.Color.Green; + this.btOK.BackColor2 = System.Drawing.Color.Lime; + this.btOK.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btOK.BorderColor = System.Drawing.Color.Gray; + this.btOK.BorderColorOver = System.Drawing.Color.Gray; + this.btOK.BorderSize = new System.Windows.Forms.Padding(5); + this.btOK.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btOK.Cursor = System.Windows.Forms.Cursors.Hand; + this.btOK.Dock = System.Windows.Forms.DockStyle.Fill; + this.btOK.Font = new System.Drawing.Font("맑은 고딕", 30F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btOK.ForeColor = System.Drawing.Color.White; + this.btOK.GradientEnable = true; + this.btOK.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.btOK.GradientRepeatBG = false; + this.btOK.isButton = true; + this.btOK.Location = new System.Drawing.Point(369, 3); + this.btOK.MouseDownColor = System.Drawing.Color.Yellow; + this.btOK.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btOK.msg = null; + this.btOK.Name = "btOK"; + this.btOK.ProgressBorderColor = System.Drawing.Color.Black; + this.btOK.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btOK.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btOK.ProgressEnable = false; + this.btOK.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btOK.ProgressForeColor = System.Drawing.Color.Black; + this.btOK.ProgressMax = 100F; + this.btOK.ProgressMin = 0F; + this.btOK.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btOK.ProgressValue = 0F; + this.btOK.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.btOK.Sign = ""; + this.btOK.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btOK.SignColor = System.Drawing.Color.Yellow; + this.btOK.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btOK.Size = new System.Drawing.Size(361, 95); + this.btOK.TabIndex = 1; + this.btOK.Text = "시작"; + this.btOK.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btOK.TextShadow = true; + this.btOK.TextVisible = true; + this.btOK.Click += new System.EventHandler(this.btOK_Click); + this.btOK.MouseClick += new System.Windows.Forms.MouseEventHandler(this.btOK_MouseClick); + // + // btCancle + // + this.btCancle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.btCancle.BackColor2 = System.Drawing.Color.Gray; + this.btCancle.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btCancle.BorderColor = System.Drawing.Color.Gray; + this.btCancle.BorderColorOver = System.Drawing.Color.Gray; + this.btCancle.BorderSize = new System.Windows.Forms.Padding(5); + this.btCancle.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btCancle.Cursor = System.Windows.Forms.Cursors.Hand; + this.btCancle.Dock = System.Windows.Forms.DockStyle.Fill; + this.btCancle.Font = new System.Drawing.Font("맑은 고딕", 30F, System.Drawing.FontStyle.Bold); + this.btCancle.ForeColor = System.Drawing.Color.White; + this.btCancle.GradientEnable = true; + this.btCancle.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.btCancle.GradientRepeatBG = false; + this.btCancle.isButton = true; + this.btCancle.Location = new System.Drawing.Point(3, 3); + this.btCancle.MouseDownColor = System.Drawing.Color.Yellow; + this.btCancle.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btCancle.msg = null; + this.btCancle.Name = "btCancle"; + this.btCancle.ProgressBorderColor = System.Drawing.Color.Black; + this.btCancle.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btCancle.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btCancle.ProgressEnable = false; + this.btCancle.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btCancle.ProgressForeColor = System.Drawing.Color.Black; + this.btCancle.ProgressMax = 100F; + this.btCancle.ProgressMin = 0F; + this.btCancle.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btCancle.ProgressValue = 0F; + this.btCancle.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.btCancle.Sign = ""; + this.btCancle.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btCancle.SignColor = System.Drawing.Color.Yellow; + this.btCancle.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btCancle.Size = new System.Drawing.Size(360, 95); + this.btCancle.TabIndex = 0; + this.btCancle.Text = "취소"; + this.btCancle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btCancle.TextShadow = true; + this.btCancle.TextVisible = true; + this.btCancle.Click += new System.EventHandler(this.btCancle_Click); + // + // dataSet11 + // + this.dataSet11.DataSetName = "DataSet1"; + this.dataSet11.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + // + // fSelectJob + // + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 17F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(751, 701); + this.Controls.Add(this.panel2); + this.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Margin = new System.Windows.Forms.Padding(4); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fSelectJob"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = " "; + this.TopMost = true; + this.Load += new System.EventHandler(this.@__LoaD); + this.panel2.ResumeLayout(false); + this.panel5.ResumeLayout(false); + this.tabControl1.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + this.tabPage1.PerformLayout(); + this.tabPage2.ResumeLayout(false); + this.GrpSidConvData.ResumeLayout(false); + this.GrpSidConvData.PerformLayout(); + this.grpapplyjob.ResumeLayout(false); + this.grpapplyjob.PerformLayout(); + this.grpApplySidinfo.ResumeLayout(false); + this.grpApplySidinfo.PerformLayout(); + this.tabPage3.ResumeLayout(false); + this.tabPage3.PerformLayout(); + this.tableLayoutPanel3.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dataSet11)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + private arCtl.arLabel lbTitle; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; + private arCtl.arLabel btOK; + private arCtl.arLabel btCancle; + private System.Windows.Forms.CheckBox chkUserConfirm; + private System.Windows.Forms.CheckBox chkQtyServer; + private System.Windows.Forms.CheckBox chkNew; + private System.Windows.Forms.CheckBox chkQtyMRQ; + private System.Windows.Forms.CheckBox chkSIDConv; + private System.Windows.Forms.CheckBox chkApplySIDConv; + private System.Windows.Forms.GroupBox grpapplyjob; + private System.Windows.Forms.CheckBox chkDayApplyPart; + private System.Windows.Forms.CheckBox chkDayApplyCust; + private System.Windows.Forms.CheckBox chkDayWhereCust; + private System.Windows.Forms.CheckBox chkDayWherePart; + private System.Windows.Forms.CheckBox chkDayApplySID; + private System.Windows.Forms.CheckBox chkDayWhereSID; + private System.Windows.Forms.CheckBox chkDayApplyVender; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.GroupBox grpApplySidinfo; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.CheckBox chkInfoApplyVender; + private System.Windows.Forms.CheckBox chkInfoWhereSID; + private System.Windows.Forms.CheckBox chkInfoWhereCust; + private System.Windows.Forms.CheckBox chkInfoWherePart; + private System.Windows.Forms.CheckBox chkInfoApplySID; + private System.Windows.Forms.CheckBox chkInfoApplyCust; + private System.Windows.Forms.CheckBox chkInfoApplyPart; + private System.Windows.Forms.CheckBox chkDayApplyPrint; + private System.Windows.Forms.CheckBox chkInfoApplyPrint; + private System.Windows.Forms.GroupBox GrpSidConvData; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.TabPage tabPage2; + private DataSet1 dataSet11; + private System.Windows.Forms.CheckBox chkApplySidInfo; + private System.Windows.Forms.CheckBox chkApplyJobInfo; + private System.Windows.Forms.CheckBox chkInfoSave; + private System.Windows.Forms.ToolTip toolTip1; + private System.Windows.Forms.ProgressBar progressBar1; + private System.Windows.Forms.Panel panel5; + private System.Windows.Forms.ComboBox cmbCustCode; + private System.Windows.Forms.CheckBox chkInfoApplyBatch; + private System.Windows.Forms.CheckBox chkInfoApplyQty; + private System.Windows.Forms.CheckBox chkDayWhereLot; + private System.Windows.Forms.CheckBox chkInfoWhereLot; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.CheckBox chkCustom; + private arCtl.arLabel lbMsgCamoff; + private System.Windows.Forms.TabPage tabPage3; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.CheckBox chkInfoWhereMC; + private System.Windows.Forms.CheckBox chkCVSave; + private System.Windows.Forms.CheckBox chkCVApplyQtyMax; + private System.Windows.Forms.CheckBox chkCVApplyBatch; + private System.Windows.Forms.CheckBox chkCVWhereLot; + private System.Windows.Forms.CheckBox chkCVApplyPrint; + private System.Windows.Forms.CheckBox chkCVApplyVender; + private System.Windows.Forms.CheckBox chkCVWhereSID; + private System.Windows.Forms.CheckBox chkCVWhereCust; + private System.Windows.Forms.CheckBox chkCVWherePart; + private System.Windows.Forms.CheckBox chkCVApplySID; + private System.Windows.Forms.CheckBox chkCVApplyCust; + private System.Windows.Forms.CheckBox chkCVApplyPartno; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/fSelectJob.cs b/Handler/Project/Dialog/fSelectJob.cs new file mode 100644 index 0000000..cc5064f --- /dev/null +++ b/Handler/Project/Dialog/fSelectJob.cs @@ -0,0 +1,550 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using AR; + +namespace Project.Dialog +{ + public partial class fSelectJob : Form + { + public fSelectJob() + { + InitializeComponent(); + this.tabControl1.Visible = false; + this.UpdateHeight(); + + this.KeyPreview = true; + this.FormClosing += __Closing; + this.lbTitle.MouseMove += LbTitle_MouseMove; + this.lbTitle.MouseUp += LbTitle_MouseUp; + this.lbTitle.MouseDown += LbTitle_MouseDown; + this.KeyDown += (s1, e1) => + { + if (e1.KeyCode == Keys.Escape) this.Close(); + }; + + if (System.Diagnostics.Debugger.IsAttached == false) + { + //// = new Dialog.fBlurPanel(); + //fb.Show(); + } + this.Text = $"작업 시작({PUB.Result.vModel.Title})"; + + PUB.flag.set(eVarBool.FG_SCR_JOBSELECT, true, "selectjbo"); + PUB.dio.IOValueChanged += Dio_IOValueChanged; + + //var visionoff = PUB.Result.vModel.DisableCamera || (SETTING.Data.Enable_Unloader_QRValidation == false); + List offlist = new List(); + if (SETTING.Data.SystemBypass || PUB.Result.vModel.DisableCamera || SETTING.Data.Enable_Unloader_QRValidation == false) + offlist.Add("카메라"); + if (SETTING.Data.SystemBypass || PUB.Result.vModel.DisablePrinter || (SETTING.Data.Disable_PrinterL && SETTING.Data.Disable_PrinterR)) + offlist.Add("프린터"); + if (offlist.Any()) + { + var msg = "(" + string.Join("/", offlist) + ") 사용이 OFF 되었습니다"; + lbMsgCamoff.Text = msg; + } + + lbMsgCamoff.Visible = offlist.Any(); + } + + List custlist = new List(); + private void __LoaD(object sender, EventArgs e) + { + label1.Text = VAR.BOOL[eVarBool.Use_Conveyor] ? "CONVEYOR ON" : "CONVEYOR OFF"; + lbTitle.Text = PUB.Result.vModel.Title; + var codelist = PUB.Result.vModel.Code.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); + + this.cmbCustCode.Items.Clear(); + foreach (var item in codelist) + if (item.isEmpty() == false) cmbCustCode.Items.Add(item); + + //마지막에 등록된데이터 기준으로 추가 + custlist = SETTING.User.customerlist.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).ToList(); + foreach (var item in custlist) + { + cmbCustCode.Items.Add(item.Trim()); + } + + + if (cmbCustCode.Items.Count > 0) + cmbCustCode.SelectedIndex = 0; + + //자료를 조회하고 대표 코드가 잇으면 처리한다. 221013 + var taSID = new DataSet1TableAdapters.SidinfoCustGroupTableAdapter(); + var dtcustgrp = taSID.GetData(PUB.MCCode); + if (dtcustgrp != null && dtcustgrp.Count == 1) + cmbCustCode.Text = dtcustgrp.First().CustCode; + + //프리셋가져온다 + var ta = new DataSet1TableAdapters.Component_Reel_PreSetTableAdapter(); + ta.Fill(this.dataSet11.Component_Reel_PreSet, "R1"); + + //작업형태를 다시 시작해준다. - 210329 + if (PUB.Result.JobType2.isEmpty()) PUB.Result.JobType2 = "모델정보"; + Func_SelectJobType("M"); + } + + //그룹박스내의 아이템중에 Black,blue 아이템갯수를 반환한다 + Tuple CheckDataIn(GroupBox g) + { + int black = 0; + int blue = 0; + foreach (var item in g.Controls) + { + if (item.GetType() == typeof(CheckBox)) + { + var chk = item as CheckBox; + if (chk.Checked == false) continue; + if (chk.ForeColor == Color.Blue) + blue += 1; + else black += 1; + } + } + return new Tuple(black, blue); + + } + + private void Dio_IOValueChanged(object sender, arDev.DIO.IOValueEventArgs e) + { + if (AR.SETTING.Data.Enable_ButtonStart) + { + var pin = (eDIName)e.ArrIDX; + if (DIO.GetIOInput(pin) == true) + { + if (pin == eDIName.BUT_STARTF) this.Confirm(); + else if (pin == eDIName.BUT_STOPF || pin == eDIName.BUT_RESETF) this.Cancel(); + } + } + } + + + void Confirm() + { + if (this.InvokeRequired) + this.BeginInvoke(new MethodInvoker(Confirm), null); + else + { + if (System.Diagnostics.Debugger.IsAttached) this.TopMost = false; + this.Validate(); + + if (this.ModeData.isEmpty() || this.ModeData == "--") + { + UTIL.MsgE("작업 방식이 선택되지 않았습니다"); + return; + } + if (this.ModeData == "--") + { + UTIL.MsgE("사용할 수 없는 작업방법 입니다"); + return; + } + if (GrpSidConvData.Enabled) + { + //검색조건확인 + var v = CheckDataIn(GrpSidConvData); + if (v.Item1 < 1) + { + UTIL.MsgE("서버기록 항목 중 대상항목이 지정되지 않았습니다"); + return; + } + if (v.Item2 < 1) + { + UTIL.MsgE("서버기록 항목 중 검색항목이 지정되지 않았습니다"); + return; + } + } + if (grpapplyjob.Enabled) + { + //검색조건확인 + var v = CheckDataIn(grpapplyjob); + if (v.Item1 < 1) + { + UTIL.MsgE("당일작업 항목 중 대상항목이 지정되지 않았습니다"); + return; + } + if (v.Item2 < 1) + { + UTIL.MsgE("당일작업 항목 중 검색항목이 지정되지 않았습니다"); + return; + } + } + if (grpApplySidinfo.Enabled) + { + //검색조건확인 + var v = CheckDataIn(grpApplySidinfo); + if (v.Item1 < 1) + { + UTIL.MsgE("SID정보 항목 중 대상항목이 지정되지 않았습니다"); + return; + } + if (v.Item2 < 1) + { + UTIL.MsgE("SID정보 항목 중 검색항목이 지정되지 않았습니다"); + return; + } + } + + if (chkCustom.Checked) PUB.MCCode = AR.SETTING.Data.McName; + else PUB.MCCode = "IB";// AR.SETTING.Data.MCID; + + var curcust = this.cmbCustCode.Text.Trim(); + if (curcust.isEmpty() == false) + { + //신규코드는 저장한다 + if (this.custlist.Contains(curcust) == false) // + { + this.custlist.Insert(0, curcust); + if (this.custlist.Count > 10) this.custlist.RemoveAt(custlist.Count - 1); + SETTING.User.customerlist = string.Join(";", this.custlist); + SETTING.User.Save(); + } + } + + + //230509 + if (chkSIDConv.Checked) + { + try + { + //sid정보테이블을 다시 불러온다 + var taConv = new DataSet1TableAdapters.Component_Reel_SID_ConvertTableAdapter(); + PUB.Result.DTSidConvert.Clear(); + taConv.Fill(PUB.Result.DTSidConvert); + PUB.Result.DTSidConvert.AcceptChanges(); + PUB.Result.DTSidConvertEmptyList.Clear(); + PUB.Result.DTSidConvertMultiList.Clear(); + PUB.log.Add($"sid변환테이블 {PUB.Result.DTSidConvert.Rows.Count}건 확인"); + } + catch (Exception ex) + { + UTIL.MsgE("SID변환정보 확인실패\n" + ex.Message); + return; + } + } + + + + //작업형태 지정 + PUB.Result.JobType2 = this.ModeData; + + + + PUB.flag.set(eVarBool.FG_ENABLE_LEFT, AR.SETTING.Data.Disable_Left == false, "START"); + PUB.flag.set(eVarBool.FG_ENABLE_RIGHT, AR.SETTING.Data.Disable_Right == false, "START"); + + //옵션사항 설정 210121 + VAR.BOOL[eVarBool.Opt_UserConfim] = chkUserConfirm.Checked; + VAR.BOOL[eVarBool.Opt_ServerQty] = chkQtyServer.Checked; + VAR.BOOL[eVarBool.Opt_NewReelID] = chkNew.Checked; + VAR.BOOL[eVarBool.Opt_UserQtyRQ] = chkQtyMRQ.Checked; + VAR.BOOL[eVarBool.Opt_SIDConvert] = chkSIDConv.Checked; + + VAR.BOOL[eVarBool.Opt_ApplySIDConv] = chkApplySIDConv.Checked; + VAR.BOOL[eVarBool.Opt_ApplyJobInfo] = chkApplyJobInfo.Checked; + VAR.BOOL[eVarBool.Opt_ApplySIDInfo] = chkApplySidInfo.Checked; + VAR.BOOL[eVarBool.Opt_CheckSIDExist] = PUB.Result.vModel.CheckSIDExsit; + + //모델에서 카메라 사용을 끄거나, 환경설정에서 QRValidation 을 사용하지 않는 경우 + if (SETTING.Data.SystemBypass) VAR.BOOL[eVarBool.Opt_DisableCamera] = true; + else VAR.BOOL[eVarBool.Opt_DisableCamera] = PUB.Result.vModel.DisableCamera || (SETTING.Data.Enable_Unloader_QRValidation == false); + + //BYPASS MODEL,모델에서 프린터가 껴져있거나, 환경설정에서 양쪽의 프린터를 사용하지 않는 경우 + if (SETTING.Data.SystemBypass) VAR.BOOL[eVarBool.Opt_DisablePrinter] = true; + else VAR.BOOL[eVarBool.Opt_DisablePrinter] = PUB.Result.vModel.DisablePrinter || (SETTING.Data.Disable_PrinterL && SETTING.Data.Disable_PrinterR); + + VAR.BOOL[eVarBool.Opt_SID_Apply_PartNo] = chkInfoApplyPart.Checked; + VAR.BOOL[eVarBool.Opt_SID_Apply_CustCode] = chkInfoApplyCust.Checked; + VAR.BOOL[eVarBool.Opt_SID_Apply_SID] = chkInfoApplySID.Checked; + VAR.BOOL[eVarBool.Opt_SID_Apply_VenderName] = chkInfoApplyVender.Checked; + VAR.BOOL[eVarBool.Opt_SID_Apply_PrintPos] = chkInfoApplyPrint.Checked; + + ///22092[ + VAR.BOOL[eVarBool.Opt_SID_Apply_batch] = chkInfoApplyBatch.Checked; + VAR.BOOL[eVarBool.Opt_SID_Apply_qty] = chkInfoApplyQty.Checked; + VAR.BOOL[eVarBool.Opt_SID_Where_PartNo] = chkInfoWherePart.Checked; + VAR.BOOL[eVarBool.Opt_SID_Where_CustCode] = chkInfoWhereCust.Checked; + VAR.BOOL[eVarBool.Opt_SID_Where_SID] = chkInfoWhereSID.Checked; + VAR.BOOL[eVarBool.Opt_SID_Where_VLOT] = chkInfoWhereLot.Checked; + VAR.BOOL[eVarBool.Opt_SID_Where_MC] = chkInfoWhereMC.Checked; + VAR.BOOL[eVarBool.Opt_SID_WriteServer] = chkInfoSave.Checked; + + + VAR.BOOL[eVarBool.Opt_Job_Apply_PartNo] = chkDayApplyPart.Checked; + VAR.BOOL[eVarBool.Opt_Job_Apply_CustCode] = chkDayApplyCust.Checked; + VAR.BOOL[eVarBool.Opt_Job_Apply_SID] = chkDayApplySID.Checked; + VAR.BOOL[eVarBool.Opt_Job_Apply_VenderName] = chkDayApplyVender.Checked; + VAR.BOOL[eVarBool.Opt_Job_Apply_PrintPos] = chkDayApplyPrint.Checked; + + VAR.BOOL[eVarBool.Opt_Job_Where_PartNo] = chkDayWherePart.Checked; + VAR.BOOL[eVarBool.Opt_Job_Where_CustCode] = chkDayWhereCust.Checked; + VAR.BOOL[eVarBool.Opt_Job_Where_SID] = chkDayWhereSID.Checked; + VAR.BOOL[eVarBool.Opt_Job_Where_VLOT] = chkDayWhereLot.Checked; + + VAR.BOOL[eVarBool.Opt_Conv_Apply_PartNo] = chkCVApplyPartno.Checked; + VAR.BOOL[eVarBool.Opt_Conv_Apply_CustCode] = chkCVApplyCust.Checked; + VAR.BOOL[eVarBool.Opt_Conv_Apply_SID] = chkCVApplySID.Checked; + VAR.BOOL[eVarBool.Opt_Conv_Apply_VenderName] = chkCVApplyVender.Checked; + VAR.BOOL[eVarBool.Opt_Conv_Apply_PrintPos] = chkCVApplyPrint.Checked; + VAR.BOOL[eVarBool.Opt_Conv_Apply_Batch] = chkCVApplyBatch.Checked; + VAR.BOOL[eVarBool.Opt_Conv_Apply_QtyMax] = chkCVApplyQtyMax.Checked; + + VAR.BOOL[eVarBool.Opt_Conv_Where_PartNo] = chkCVWherePart.Checked; + VAR.BOOL[eVarBool.Opt_Conv_Where_CustCode] = chkCVWhereCust.Checked; + VAR.BOOL[eVarBool.Opt_Conv_Where_SID] = chkCVWhereSID.Checked; + VAR.BOOL[eVarBool.Opt_Conv_Where_VLOT] = chkCVWhereLot.Checked; + VAR.BOOL[eVarBool.Opt_Conv_WriteServer] = chkCVSave.Checked; + + VAR.STR[eVarString.JOB_CUSTOMER_CODE] = cmbCustCode.Text.Trim(); + //VAR.STR[eVarString.JOB_BYPASS_SID] = tbBypassSID.Text.Trim(); //add bypass sid 230511 + // VAR.STR[eVarString.JOB_TYPE] = tbJobtype.Text.Trim(); + this.DialogResult = DialogResult.OK; + } + + } + void Cancel() + { + if (this.InvokeRequired) + this.BeginInvoke(new MethodInvoker(Cancel), null); + else + this.Close(); + } + + void __Closing(object sender, FormClosingEventArgs e) + { + // if (fb != null) fb.Dispose(); + PUB.dio.IOValueChanged -= Dio_IOValueChanged; + PUB.flag.set(eVarBool.FG_SCR_JOBSELECT, false, "selectjbo"); + } + + + #region "Mouse Form Move" + + private Boolean fMove = false; + private Point MDownPos; + private void LbTitle_MouseMove(object sender, MouseEventArgs e) + { + if (fMove) + { + Point offset = new Point(e.X - MDownPos.X, e.Y - MDownPos.Y); + this.Left += offset.X; + this.Top += offset.Y; + offset = new Point(0, 0); + } + } + private void LbTitle_MouseUp(object sender, MouseEventArgs e) + { + fMove = false; + } + private void LbTitle_MouseDown(object sender, MouseEventArgs e) + { + MDownPos = new Point(e.X, e.Y); + fMove = true; + } + + #endregion + + + + private void btCancle_Click(object sender, EventArgs e) + { + Cancel(); + } + + + arCtl.arLabel[] btsMOD; + string ModeData = string.Empty; + void Func_SelectJobType(string mode) + { + if (mode.Equals("--")) + { + UTIL.MsgE("사용할 수 없는 버튼 입니다"); + return; + } + ModeData = mode; + + var dr = PUB.Result.vModel; + + //update checkbox + foreach (var c in tabPage1.Controls) + { + if (c.GetType() != typeof(CheckBox)) continue; + var chk = c as CheckBox; + if (chk.Tag == null) continue; + chk.Checked = UTIL.GetBitState(dr.vOption, int.Parse(chk.Tag.ToString())); + } + foreach (var c in grpApplySidinfo.Controls) + { + if (c.GetType() != typeof(CheckBox)) continue; + var chk = c as CheckBox; + if (chk.Tag == null) continue; + chk.Checked = UTIL.GetBitState(dr.vSIDInfo, int.Parse(chk.Tag.ToString())); + } + foreach (var c in grpapplyjob.Controls) + { + if (c.GetType() != typeof(CheckBox)) continue; + var chk = c as CheckBox; + if (chk.Tag == null) continue; + chk.Checked = UTIL.GetBitState(dr.vJobInfo, int.Parse(chk.Tag.ToString())); + } + foreach (var c in GrpSidConvData.Controls) + { + if (c.GetType() != typeof(CheckBox)) continue; + var chk = c as CheckBox; + if (chk.Tag == null) continue; + chk.Checked = UTIL.GetBitState(dr.vSIDConv1, int.Parse(chk.Tag.ToString())); + } + + //프린터를 사용하지 않는다면 코드입력창 비활성화 + if (dr.DisablePrinter) + { + cmbCustCode.Text = "0000"; + cmbCustCode.Enabled = false; + button1.Enabled = false; + } + + } + + + + private void checkBox1_CheckStateChanged(object sender, EventArgs e) + { + var chk = sender as CheckBox; + chk.ForeColor = chk.Checked ? Color.Blue : Color.Gray; + + if (chk.Name.Equals(chkApplyJobInfo.Name)) + { + grpapplyjob.Enabled = chk.Checked; + } + if (chk.Name.Equals(chkApplySidInfo.Name)) + { + grpApplySidinfo.Enabled = chk.Checked; + } + if (chk.Name.Equals(chkApplySIDConv.Name)) + { + GrpSidConvData.Enabled = chk.Checked; + } + } + + + + private void btOK_MouseClick(object sender, MouseEventArgs e) + { + + Confirm(); + + + } + + + private void 옵션적용ToolStripMenuItem_Click(object sender, EventArgs e) + { + //현재선택된 옵션을 변경한다 + var ctl = UTIL.GetContextOwnerControl(sender); + if (ctl == null) return; + var bt = ctl as arCtl.arLabel; + var txt = bt.Text.Trim(); + + var tagstr = bt.Tag.ToString(); + if (tagstr == "M") //모델기본 + { + UTIL.MsgI("이 모델은 기본모델입니다 [작업모델] 화면에서 업데이트 하세요"); + } + else + { + var dlg = UTIL.MsgQ($"{txt} 항목 옵션을 현재 값으로 변경 할까요??"); + if (dlg != DialogResult.Yes) return; + + var dr = this.dataSet11.Component_Reel_PreSet.Where(t => t.Title == txt).FirstOrDefault(); + if (dr == null) + { + UTIL.MsgE("프리셋 정보를 찾을 수 없어 신규로 생성합니다"); + return; + } + dr.MC = "R1";// AR.SETTING.Data.McName; + // dr.jobtype = tbJobtype.Text; + //dr.bypasssid = tbBypassSID.Text; + //assig check events + foreach (var c in tabPage1.Controls) + { + if (c.GetType() != typeof(CheckBox)) continue; + var chk = c as CheckBox; + if (chk.Tag == null) continue; + dr.vOption = UTIL.SetBitState((ushort)dr.vOption, int.Parse(chk.Tag.ToString()), chk.Checked); + } + foreach (var c in grpApplySidinfo.Controls) + { + if (c.GetType() != typeof(CheckBox)) continue; + var chk = c as CheckBox; + if (chk.Tag == null) continue; + dr.vSidInfo = UTIL.SetBitState((ushort)dr.vSidInfo, int.Parse(chk.Tag.ToString()), chk.Checked); + } + foreach (var c in grpapplyjob.Controls) + { + if (c.GetType() != typeof(CheckBox)) continue; + var chk = c as CheckBox; + if (chk.Tag == null) continue; + dr.vJobInfo = UTIL.SetBitState((ushort)dr.vJobInfo, int.Parse(chk.Tag.ToString()), chk.Checked); + } + foreach (var c in GrpSidConvData.Controls) + { + if (c.GetType() != typeof(CheckBox)) continue; + var chk = c as CheckBox; + if (chk.Tag == null) continue; + dr.vServerWrite = UTIL.SetBitState((ushort)dr.vServerWrite, int.Parse(chk.Tag.ToString()), chk.Checked); + } + dr.EndEdit(); + + var ta = new DataSet1TableAdapters.Component_Reel_PreSetTableAdapter(); + var rlt = ta.Update(this.dataSet11.Component_Reel_PreSet) == 1; + if (rlt == false) UTIL.MsgE("변경 실패"); + } + + + } + + + private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + + } + + private void button1_Click(object sender, EventArgs e) + { + this.TopMost = false; + var f = new Dialog.fTouchKeyFull("CUSTOMER CODE", cmbCustCode.Text.Trim()); + if (f.ShowDialog() == DialogResult.OK) + { + cmbCustCode.Text = f.tbInput.Text.Trim(); + if (cmbCustCode.Text.isEmpty() == false) + { + if (cmbCustCode.Text.Length == 3) + cmbCustCode.Text = "0" + cmbCustCode.Text; + } + } + this.TopMost = true; + } + + private void lbTitle_Click(object sender, EventArgs e) + { + this.tabControl1.Visible = !tabControl1.Visible; + UpdateHeight(); + } + + void UpdateHeight() + { + if (this.tabControl1.Visible) this.Height = 740; + else this.Height = 445; + } + + private void btOK_Click(object sender, EventArgs e) + { + + } + } +} diff --git a/Handler/Project/Dialog/fSelectJob.resx b/Handler/Project/Dialog/fSelectJob.resx new file mode 100644 index 0000000..6a6a9dc --- /dev/null +++ b/Handler/Project/Dialog/fSelectJob.resx @@ -0,0 +1,417 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 124, 17 + + + 60 + + + + + AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAAMMOAADDDgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWqUeEVyo + H1Bbpx59W6gepVunH8xbqB7gW6gf7lqoH/1aqB/9W6gf7luoHuBaqB/LW6gepVunHn1apyBPX68fEAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF2n + ISZaqB+BW6cfzFunH/xbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1unH/xaqB/LWqgfgVypHCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAA/vwAEW6keXFunHsZbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6cexlupHlw/vwAEAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAD+/AARaqR5lWqcf3luoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf3FqnHmM/vwAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFynHjpapx7QW6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gezluoHzgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX58fCFqnHpVbpx/+W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9aqB/9W6gfkUi2 + JAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWaUbJVunHs9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB7OWaUbJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWqgfQVun + HvBbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1qnHu9ZqSA/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAW6YeVFunHvhbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Wqge91um + H1EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAWqcfUlunH/xbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bpx/8W6YdTgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXKYeQlunHvlbqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1unHvhcph5CAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW6kgJ1unHvBbqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//Zq4u/3CzPP9cqSH/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6ce8Fyp + HCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVKkcCVqn + HtBbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9cqCD/u9uj//7+/f//////5PHa/3O1QP9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9apx/NSLYkBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAFuoHpZbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//k8Zr//////////////////// + ///P5r7/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1qnH5IAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFmqHTxbpx/+W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/7bY + nP//////////////////////8fjt/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9aqB/9W6gfOAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/AARbqB7RW6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/+726P///////////////////////X68v9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1unHs9VqgADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbqCBnW6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//u9uj///////////////////////1+vL/W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6geZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAA/vwAEWqcf3luoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/7vbo/////////////// + ////////9fry/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH9w/vwAEAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAXKgdXluoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/+726P///////////////////////X68v9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//WageWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFqoHshbqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//u9uj///////////////////////1+vL/W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1unHsYAAAAAAAAAAAAAAAAAAAAAAAAAAFmlHyhbqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/7vbo///////////////////////9fry/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//XKkcJAAAAAAAAAAAAAAAAAAA + AABaqB6EW6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/+726P///////// + //////////////X68v9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1qo + H4EAAAAAAAAAAAAAAAAAAAAAW6gezluoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//u9uj///////////////////////1+vL/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9aqB/LAAAAAAAAAAAAAAAAXa4aE1qoH/1bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//dbZC//D36v///////////////////////////6nRif9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6cf/FqlHhEAAAAAAAAAAFumH1FbqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//dbZC//D36v////////////////////////////// + ////////qdGJ/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9apyBPAAAAAAAA + AABbpx+AW6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//dbZC//D36v////////////// + ///2+vP/1+rJ//////////////////////+p0Yn/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6cefgAAAAAAAAAAWqcepluoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//dbZC//D3 + 6v/////////////////2+vP/gLxS/1+qJP/N5bv//////////////////////6nRif9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1unH6QAAAAAAAAAAFuoHs5bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//dbZC//D36v/////////////////2+vP/gLxS/1uoH/9bqB//X6ok/83lu/////////////// + ////////qdGJ/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9aqB/LAAAAAAAAAABapx7hW6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//dbZC//D36v/////////////////2+vP/gLxS/1uoH/9bqB//W6gf/1uo + H/9fqiT/zeW7//////////////////////+p0Yn/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Wqce4QAA + AAAAAAAAW6ce8FuoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//dbZC//D36v/////////////////2+vP/gLxS/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1+qJP/N5bv//////////////////////6nRif9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1qnHu8AAAAAAAAAAFqoH/1bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//dbZC//D36v////////////// + ///2+vP/gLxS/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//X6ok/83lu/////////////// + ////////qdGJ/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bpx/8AAAAAAAAAABaqB/9W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9gqyb/q9KM/3a2RP9bqB//W6gf/1uoH/9bqB//dbZC//D3 + 6v/////////////////2+vP/gLxS/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9fqiT/zeW7//////////////////////+p0Yn/W6gf/1uoH/9bqB//W6gf/1+qJP+o0Yj/e7lL/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6cf/AAAAAAAAAAAW6ce8Fuo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//kMRn///////z+e7/erhJ/1uo + H/9bqB//dbZC//D36v/////////////////2+vP/gLxS/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1+qJP/N5bv//////////////////////6nRif9bqB//W6gf/1+q + JP/O5bz//////9Dmv/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1qn + Hu8AAAAAAAAAAFqnHuFbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/7PX + l/////////////P57v97uUr/dbZC//D36v/////////////////2+vP/gLxS/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//X6ok/83lu/////////////// + ////////qdGJ/1+qJP/O5bz////////////y+O3/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9apx7hAAAAAAAAAABbqB7OW6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH//W6cf/////////////////8/nu//D36v/////////////////2+vP/gLxS/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9fqiT/zeW7///////////////////////l8dv//////////////////////3K0P/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//WqgfywAAAAAAAAAAWqcepluoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9dqSL/9/v0//////////////////////////////////// + ///2+vP/gLxS/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1+qJP/N5bv///////////////////////////////////////// + //+Uxm3/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1unH6QAAAAAAAAAAFun + H4BbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//ebhH//////////////////// + ///////////////////2+vP/gLxS/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//X6ok/83lu/////////////// + ////////////////////////uNmd/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bpx5+AAAAAAAAAABapx9SW6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/5vK + dv//////////////////////////////////////8fjt/3m4SP9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/12p + Iv/E4K7//////////////////////////////////////9rszf9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//WqcgTwAAAAAAAAAAXa4aE1qoH/1bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/+/3af////////////////////////////////////////////x+O3/ebhI/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/12pIv/E4K7////////////////////////////////////////////6/Pj/X6ok/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6cf/FqlHhEAAAAAAAAAAAAAAABapx7QW6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//4e/W//////////////////////////////////// + //////////////H47f91tkP/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH//C36z///////////////////////////////////////// + /////////////3y5TP9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1unH8wAAAAAAAAAAAAA + AAAAAAAAWqgehVuoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Yqwp//3+/P////////////// + ////////////////////////////////////////ptCG/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9hqyj//P37//////////////////// + //////////////////////////////////+gzX3/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9aqB+CAAAAAAAAAAAAAAAAAAAAAF2nHylbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/4O9 + Vf//////////////////////////////////////8ffs/87lvP+r043/iMBc/16pI/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/3W2 + Qv+gzX3/w9+t/+by3f/+//7/////////////////////////////////wd6r/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//WaUbJQAAAAAAAAAAAAAAAAAAAAAAAAAAWqcfyluoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/+Wx3D////////////5/Pf/2evL/7bYnP+Uxmz/cLM8/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Za0t/4nAXf+r043/zuW8//H47f///////////9jq + yf9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//WqcexwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFqn + H2BbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Xqoj/5DEaP97uUv/Xqkj/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//cLM8/5PGa/91tkP/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1upHlwAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAA/vwAEW6ge31uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H90/vwAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFuoH2pbqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9apx5mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/vwAEWqcf01uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bpx7PP78ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAFunHT1bpx/+W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bpx/+XKceOgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW6cel1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gflAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGayGQpbqB7RW6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gezl+fHwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAWaUfKFunHvBbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6ce8F2nISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcph5CW6ce+VuoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6ce+VymHkIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFqoHlVbpx/8W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6cf/FumH1EAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAW6YeVFunHvhbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6ce+Fum + HlQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbpx5DWqce8luoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//Wqge8VqoH0EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFmlHyhapx/TW6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6cez12nISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAVKkcCVqnHphbpx/+W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bpx/+W6cel1+fHwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW6cdPVqnH9NbqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB7RWqgeOwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/vwAEWqYea1uo + Ht9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1qnH95bqCBnP78ABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABmmTMFW6kgX1unHslbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Wqcex1up + IF8/vwAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWaUfKFunHoZapx7QWqgf/Vuo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Wqgf/Vuo + Hs5aqB6EWaUfKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAF2uGhNapx9SW6cfgFunHqdapx/NW6ge4luoH+5bpx/+W6cf/luoH+5bqB7iWqcfzVun + Hqdbpx+AW6YfUV2uGhMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA//////////////8AAP//////+AAAH//////AAAAD/////wAAAAD////+AAAAAH////gAAAAA + H///8AAAAAAP///gAAAAAAf//8AAAAAAA///gAAAAAAB//8AAAAAAAD//gAAAAAAAH/8AAAAAAAAP/wA + AAAAAAA/+AAAAAAAAB/wAAAAAAAAD/AAAAAAAAAP4AAAAAAAAAfgAAAAAAAAB+AAAAAAAAAHwAAAAAAA + AAPAAAAAAAAAA8AAAAAAAAADgAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAYAA + AAAAAAABgAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABgAAAAAAA + AAGAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAHAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAPgAAAAAAAAB+AA + AAAAAAAH4AAAAAAAAAfwAAAAAAAAD/AAAAAAAAAP+AAAAAAAAB/8AAAAAAAAP/wAAAAAAAA//gAAAAAA + AH//AAAAAAAA//+AAAAAAAH//8AAAAAAA///4AAAAAAH///wAAAAAA////gAAAAAH////gAAAAB///// + AAAAAP/////AAAAD//////gAAB///////wAA//////////////8= + + + \ No newline at end of file diff --git a/Handler/Project/Dialog/fSelectResult.Designer.cs b/Handler/Project/Dialog/fSelectResult.Designer.cs new file mode 100644 index 0000000..add1e15 --- /dev/null +++ b/Handler/Project/Dialog/fSelectResult.Designer.cs @@ -0,0 +1,137 @@ +namespace Project.Dialog +{ + partial class fSelectResult + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.button1 = new System.Windows.Forms.Button(); + this.lv1 = new System.Windows.Forms.ListView(); + this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader5 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader6 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader7 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.SuspendLayout(); + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.button1.Location = new System.Drawing.Point(0, 493); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(932, 55); + this.button1.TabIndex = 1; + this.button1.Text = "선택 확인"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // lv1 + // + this.lv1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader1, + this.columnHeader2, + this.columnHeader3, + this.columnHeader5, + this.columnHeader6, + this.columnHeader7, + this.columnHeader4}); + this.lv1.Dock = System.Windows.Forms.DockStyle.Fill; + this.lv1.Font = new System.Drawing.Font("맑은 고딕", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lv1.FullRowSelect = true; + this.lv1.GridLines = true; + this.lv1.Location = new System.Drawing.Point(0, 0); + this.lv1.Name = "lv1"; + this.lv1.Size = new System.Drawing.Size(932, 493); + this.lv1.TabIndex = 2; + this.lv1.UseCompatibleStateImageBehavior = false; + this.lv1.View = System.Windows.Forms.View.Details; + // + // columnHeader1 + // + this.columnHeader1.Text = "TIME"; + this.columnHeader1.Width = 120; + // + // columnHeader2 + // + this.columnHeader2.Text = "SID"; + this.columnHeader2.Width = 120; + // + // columnHeader3 + // + this.columnHeader3.Text = "RID"; + this.columnHeader3.Width = 130; + // + // columnHeader4 + // + this.columnHeader4.Text = "QTY"; + this.columnHeader4.Width = 80; + // + // columnHeader5 + // + this.columnHeader5.Text = "CUST"; + this.columnHeader5.Width = 100; + // + // columnHeader6 + // + this.columnHeader6.Text = "V.LOT"; + this.columnHeader6.Width = 140; + // + // columnHeader7 + // + this.columnHeader7.Text = "V.NAME"; + this.columnHeader7.Width = 130; + // + // fSelectResult + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(932, 548); + this.Controls.Add(this.lv1); + this.Controls.Add(this.button1); + this.Font = new System.Drawing.Font("맑은 고딕", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fSelectResult"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "값을 선택하세요 (실제 비어 있는 데이터만 선택값에서 추출 됩니다)"; + this.Load += new System.EventHandler(this.fSelectDataList_Load); + this.ResumeLayout(false); + + } + + #endregion + private System.Windows.Forms.Button button1; + private System.Windows.Forms.ListView lv1; + private System.Windows.Forms.ColumnHeader columnHeader1; + private System.Windows.Forms.ColumnHeader columnHeader2; + private System.Windows.Forms.ColumnHeader columnHeader3; + private System.Windows.Forms.ColumnHeader columnHeader4; + private System.Windows.Forms.ColumnHeader columnHeader5; + private System.Windows.Forms.ColumnHeader columnHeader6; + private System.Windows.Forms.ColumnHeader columnHeader7; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/fSelectResult.cs b/Handler/Project/Dialog/fSelectResult.cs new file mode 100644 index 0000000..2373ba8 --- /dev/null +++ b/Handler/Project/Dialog/fSelectResult.cs @@ -0,0 +1,61 @@ +using AR; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fSelectResult : Form + { + public Component_Reel_Result SelectedValue = null; + public fSelectResult(List list) + { + InitializeComponent(); + this.lv1.Items.Clear(); + foreach (var item in list) + { + var dt = (DateTime)item.wdate; + var lv = this.lv1.Items.Add(dt.ToString("dd HH:mm:ss")); + var std = new StdLabelPrint.CAmkorSTDBarcode(item.QR); + lv.SubItems.Add(item.SID); + lv.SubItems.Add(item.RID); + var custcode = item.RID.Substring(2, 4); + lv.SubItems.Add(custcode); + lv.SubItems.Add(std.VLOT); + lv.SubItems.Add(item.VNAME); + lv.SubItems.Add(item.QTY.ToString()); + lv.Tag = item; + } + + this.KeyDown += FSelectDataList_KeyDown; + } + + private void FSelectDataList_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Escape) this.Close(); + } + + private void fSelectDataList_Load(object sender, EventArgs e) + { + + } + + private void button1_Click(object sender, EventArgs e) + { + if (this.lv1.FocusedItem == null) + { + UTIL.MsgE("아이템을 선택하세요\n\n취소하려면 ESC키 혹은 닫기 버튼을 누르세요"); + return; + } + this.SelectedValue = this.lv1.FocusedItem.Tag as Component_Reel_Result; + this.DialogResult = DialogResult.OK; + + } + } +} diff --git a/Handler/Project/Dialog/fSelectResult.resx b/Handler/Project/Dialog/fSelectResult.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/Project/Dialog/fSelectResult.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/Project/Dialog/fSelectSID.Designer.cs b/Handler/Project/Dialog/fSelectSID.Designer.cs new file mode 100644 index 0000000..b42b3ab --- /dev/null +++ b/Handler/Project/Dialog/fSelectSID.Designer.cs @@ -0,0 +1,123 @@ + +namespace Project.Dialog +{ + partial class fSelectSID + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.label1 = new System.Windows.Forms.Label(); + this.listView1 = new System.Windows.Forms.ListView(); + this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.button1 = new System.Windows.Forms.Button(); + this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.SuspendLayout(); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("맑은 고딕", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label1.Location = new System.Drawing.Point(15, 21); + this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(633, 60); + this.label1.TabIndex = 0; + this.label1.Text = "복수개의 SID 변환 정보가 확인 되었습니다.\r\n아래 SID 목록에서 사용할 데이터를 선택하고 \"확인\" 을 누르세요."; + // + // listView1 + // + this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader2, + this.columnHeader1, + this.columnHeader3}); + this.listView1.FullRowSelect = true; + this.listView1.GridLines = true; + this.listView1.HideSelection = false; + this.listView1.Location = new System.Drawing.Point(16, 107); + this.listView1.Name = "listView1"; + this.listView1.Size = new System.Drawing.Size(652, 205); + this.listView1.TabIndex = 1; + this.listView1.UseCompatibleStateImageBehavior = false; + this.listView1.View = System.Windows.Forms.View.Details; + // + // columnHeader1 + // + this.columnHeader1.Text = "New SID"; + this.columnHeader1.Width = 200; + // + // columnHeader3 + // + this.columnHeader3.Text = "Cust#"; + this.columnHeader3.Width = 300; + // + // button1 + // + this.button1.Font = new System.Drawing.Font("맑은 고딕", 25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button1.Location = new System.Drawing.Point(16, 327); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(652, 66); + this.button1.TabIndex = 2; + this.button1.Text = "확인"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // columnHeader2 + // + this.columnHeader2.Text = "Old SID"; + this.columnHeader2.Width = 200; + // + // fSelectSID + // + this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 21F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(685, 413); + this.Controls.Add(this.button1); + this.Controls.Add(this.listView1); + this.Controls.Add(this.label1); + this.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fSelectSID"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "fSelectSID"; + this.Load += new System.EventHandler(this.fSelectSID_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.ListView listView1; + private System.Windows.Forms.ColumnHeader columnHeader1; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.ColumnHeader columnHeader3; + private System.Windows.Forms.ColumnHeader columnHeader2; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/fSelectSID.cs b/Handler/Project/Dialog/fSelectSID.cs new file mode 100644 index 0000000..bf629cc --- /dev/null +++ b/Handler/Project/Dialog/fSelectSID.cs @@ -0,0 +1,96 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fSelectSID : Form + { + + public string Value = string.Empty; + public fSelectSID(List list) + { + InitializeComponent(); + //this.listView1.Columns[1].Text = aftercolumnname; + + this.listView1.Columns[0].Text = "Old SID"; + this.listView1.Columns[1].Text = "New SID"; + //this.listView1.Columns[2].Text = "106"; + //this.listView1.Columns[3].Text = "--"; + + this.listView1.Items.Clear(); + foreach (var item in list) + { + var buf = item.Split(';'); + + var lv = this.listView1.Items.Add(buf[0].Trim()); //101 + if (buf.Length > 1) lv.SubItems.Add(buf[1].Trim()); //103; + else lv.SubItems.Add(string.Empty); + //if (buf.Length > 2) lv.SubItems.Add(buf[2].Trim()); //103; + //else lv.SubItems.Add(string.Empty); + //if (buf.Length > 3) lv.SubItems.Add(buf[3].Trim()); //103; + //lv.SubItems.Add(string.Empty); + } + this.listView1.FocusedItem = null; + } + + private void button1_Click(object sender, EventArgs e) + { + Value = string.Empty; + if (this.listView1.SelectedItems != null && this.listView1.SelectedItems.Count == 1) + { + var lv = this.listView1.SelectedItems[0]; + Value = string.Format("{0};{1}", lv.SubItems[0].Text, lv.SubItems[1].Text); + } + else if (this.listView1.FocusedItem != null) + { + var lv = this.listView1.FocusedItem; + Value = string.Format("{0};{1}", lv.SubItems[0].Text, lv.SubItems[1].Text); + } + + if (Value.isEmpty() == false) + DialogResult = DialogResult.OK; + } + + private void fSelectSID_Load(object sender, EventArgs e) + { + // 모든데이터를 확인하고 마지막 customer 정보를 확인하.ㄴㄷ + + foreach (ListViewItem lv in this.listView1.Items) + { + var sidNew = lv.SubItems[1].Text; + if (sidNew.isEmpty()) lv.SubItems.Add("--"); + else + { + using (var db = new DataSet1TableAdapters.Component_Reel_SID_InformationTableAdapter()) + { + var list = db.GetbySIDNoCustCode(PUB.MCCode, sidNew).ToList(); + if (list.Any() == true) + { + var buffer = new System.Text.StringBuilder(); + foreach (var custinfo in list) + { + if (buffer.Length > 0) buffer.Append(","); + buffer.Append(string.Format("[{0}] {1}", custinfo.CustCode,custinfo.CustName)); + } + lv.SubItems.Add(buffer.ToString()); //cust info + } + else + { + ///자료가 없다 + lv.SubItems.Add("정보 없음"); + } + } + } + + } + + } + } +} diff --git a/Handler/Project/Dialog/fSelectSID.resx b/Handler/Project/Dialog/fSelectSID.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/Project/Dialog/fSelectSID.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/Project/Dialog/fVAR.Designer.cs b/Handler/Project/Dialog/fVAR.Designer.cs new file mode 100644 index 0000000..179cfcb --- /dev/null +++ b/Handler/Project/Dialog/fVAR.Designer.cs @@ -0,0 +1,116 @@ +namespace Project.Dialog +{ + partial class fVAR + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.comboBox1 = new System.Windows.Forms.ComboBox(); + this.listView1 = new System.Windows.Forms.ListView(); + this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.timer1 = new System.Windows.Forms.Timer(this.components); + this.SuspendLayout(); + // + // comboBox1 + // + this.comboBox1.Dock = System.Windows.Forms.DockStyle.Top; + this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comboBox1.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.comboBox1.FormattingEnabled = true; + this.comboBox1.Location = new System.Drawing.Point(0, 0); + this.comboBox1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new System.Drawing.Size(326, 36); + this.comboBox1.TabIndex = 0; + this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged); + // + // listView1 + // + this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader1, + this.columnHeader2, + this.columnHeader3}); + this.listView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.listView1.FullRowSelect = true; + this.listView1.GridLines = true; + this.listView1.Location = new System.Drawing.Point(0, 36); + this.listView1.Name = "listView1"; + this.listView1.Size = new System.Drawing.Size(326, 537); + this.listView1.TabIndex = 1; + this.listView1.Tag = "11"; + this.listView1.UseCompatibleStateImageBehavior = false; + this.listView1.View = System.Windows.Forms.View.Details; + // + // columnHeader1 + // + this.columnHeader1.Text = "IDX"; + // + // columnHeader2 + // + this.columnHeader2.Text = "Title"; + this.columnHeader2.Width = 150; + // + // columnHeader3 + // + this.columnHeader3.Text = "Value"; + this.columnHeader3.Width = 100; + // + // timer1 + // + this.timer1.Interval = 500; + this.timer1.Tick += new System.EventHandler(this.timer1_Tick); + // + // fVAR + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(326, 573); + this.Controls.Add(this.listView1); + this.Controls.Add(this.comboBox1); + this.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.Name = "fVAR"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "fVAR"; + this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.fVAR_FormClosed); + this.Load += new System.EventHandler(this.fVAR_Load); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.ComboBox comboBox1; + private System.Windows.Forms.ListView listView1; + private System.Windows.Forms.ColumnHeader columnHeader1; + private System.Windows.Forms.ColumnHeader columnHeader2; + private System.Windows.Forms.ColumnHeader columnHeader3; + private System.Windows.Forms.Timer timer1; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/fVAR.cs b/Handler/Project/Dialog/fVAR.cs new file mode 100644 index 0000000..602eba3 --- /dev/null +++ b/Handler/Project/Dialog/fVAR.cs @@ -0,0 +1,198 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using AR; + +namespace Project.Dialog +{ + public partial class fVAR : Form + { + public fVAR() + { + InitializeComponent(); + } + + private void fVAR_Load(object sender, EventArgs e) + { + comboBox1.Items.AddRange(new string[] { + "Byte", + "Bool", + "Time", + "String", + "UInt32", + "Int32", + "Dbl", + }); + comboBox1.SelectedIndex = -1; + timer1.Start(); + } + + object itemrefresh = new object(); + + private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) + { + if (comboBox1.SelectedIndex < 0) return; + var strtype = comboBox1.Text.Trim().ToUpper(); + + if (System.Diagnostics.Debugger.IsAttached) + this.TopMost = false; + + lock (itemrefresh) + { + listView1.Items.Clear(); + Array valuelist; + if (strtype == "BOOL") + { + valuelist = Enum.GetValues(typeof(eVarBool)); + foreach (var item in valuelist) + { + var v = (eVarBool)item; + var lv = listView1.Items.Add($"{(int)v}"); + lv.SubItems.Add($"{item}"); + lv.SubItems.Add("--"); + } + } + //else if (strtype == "BYTE") + //{ + // valuelist = Enum.GetValues(typeof(eVarByte)); + // foreach (var item in valuelist) + // { + // var v = (eVarByte)item; + // var lv = listView1.Items.Add($"{(int)v}"); + // lv.SubItems.Add($"{item}"); + // lv.SubItems.Add("--"); + // } + //} + else if (strtype == "STRING") + { + valuelist = Enum.GetValues(typeof(eVarString)); + foreach (var item in valuelist) + { + var v = (eVarString)item; + var lv = listView1.Items.Add($"{(int)v}"); + lv.SubItems.Add($"{item}"); + lv.SubItems.Add("--"); + } + } + else if (strtype == "TIME") + { + valuelist = Enum.GetValues(typeof(eVarTime)); + foreach (var item in valuelist) + { + var v = (eVarTime)item; + var lv = listView1.Items.Add($"{(int)v}"); + lv.SubItems.Add($"{item}"); + lv.SubItems.Add("--"); + } + } + else if (strtype == "INT32") + { + valuelist = Enum.GetValues(typeof(eVarInt32)); + foreach (var item in valuelist) + { + var v = (eVarInt32)item; + var lv = listView1.Items.Add($"{(int)v}"); + lv.SubItems.Add($"{item}"); + lv.SubItems.Add("--"); + } + } + else if (strtype == "DBL") + { + valuelist = Enum.GetValues(typeof(eVarDBL)); + foreach (var item in valuelist) + { + var v = (eVarDBL)item; + var lv = listView1.Items.Add($"{(int)v}"); + lv.SubItems.Add($"{item}"); + lv.SubItems.Add("--"); + } + } + listView1.Tag = strtype; + } + + + } + + private void fVAR_FormClosed(object sender, FormClosedEventArgs e) + { + timer1.Stop(); + } + + private void timer1_Tick(object sender, EventArgs e) + { + if (comboBox1.SelectedIndex < 0) return; + if (this.listView1.Items.Count < 1) return; + + lock (itemrefresh) + { + var strtype = comboBox1.Text.Trim().ToUpper(); + if (strtype != listView1.Tag.ToString()) return; + + foreach (ListViewItem item in listView1.Items) + { + var idx = int.Parse(item.SubItems[0].Text); + //if (strtype == "UINT32") + //{ + // var v = VAR.U32[idx]; + // item.SubItems[2].Text = v.ToString(); + // item.ForeColor = v == 0 ? Color.DimGray : Color.Black; + //} + //else + if (strtype == "INT32") + { + var v = VAR.I32[idx];// ((eVarByte)idx); + item.SubItems[2].Text = v.ToString(); + item.ForeColor = v == 0 ? Color.DimGray : Color.Black; + } + else if (strtype == "BYTE") + { + var v = VAR.I32[idx];// ((eVarByte)idx); + item.SubItems[2].Text = v.ToString(); + item.ForeColor = v == 0 ? Color.DimGray : Color.Black; + } + else if (strtype == "BOOL") + { + var v = VAR.BOOL[idx];//[(eVarBool)idx); + item.SubItems[2].Text = v ? "O" : "X"; + item.ForeColor = v ? Color.Green : Color.DimGray; + } + else if (strtype == "STRING") + { + var v = VAR.STR[idx];// .GetString((eVarString)idx); + if (v == null) item.SubItems[2].Text = "(null)"; + else item.SubItems[2].Text = v.ToString(); + item.ForeColor = v.isEmpty() ? Color.DimGray : Color.Black; + } + else if (strtype == "TIME") + { + var v = VAR.TIME[idx];// ((eVarTime)idx); + if (v.Year == 1982) + { + item.SubItems[2].Text = "--"; + item.ForeColor = Color.DimGray; + } + else + { + item.SubItems[2].Text = v.ToString(); + item.ForeColor = Color.Black; + } + } + else if (strtype == "DBL") + { + var v = VAR.DBL[idx];// .GetString((eVarString)idx); + item.SubItems[2].Text = v.ToString(); + item.ForeColor = v == 0 ? Color.DimGray : Color.Black; + } + + } + } + + } + } +} diff --git a/Handler/Project/Dialog/fVAR.resx b/Handler/Project/Dialog/fVAR.resx new file mode 100644 index 0000000..1f666f2 --- /dev/null +++ b/Handler/Project/Dialog/fVAR.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Handler/Project/Dialog/fZPLEditor.Designer.cs b/Handler/Project/Dialog/fZPLEditor.Designer.cs new file mode 100644 index 0000000..9363cc3 --- /dev/null +++ b/Handler/Project/Dialog/fZPLEditor.Designer.cs @@ -0,0 +1,153 @@ + +namespace Project.Dialog +{ + partial class fZPLEditor + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fZPLEditor)); + this.richTextBox1 = new System.Windows.Forms.RichTextBox(); + this.toolStrip1 = new System.Windows.Forms.ToolStrip(); + this.toolStripButton1 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton2 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton3 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton4 = new System.Windows.Forms.ToolStripButton(); + this.logTextBox1 = new arCtl.LogTextBox(); + this.toolStrip1.SuspendLayout(); + this.SuspendLayout(); + // + // richTextBox1 + // + this.richTextBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.richTextBox1.Location = new System.Drawing.Point(0, 39); + this.richTextBox1.Name = "richTextBox1"; + this.richTextBox1.Size = new System.Drawing.Size(664, 462); + this.richTextBox1.TabIndex = 0; + this.richTextBox1.Text = ""; + // + // toolStrip1 + // + this.toolStrip1.ImageScalingSize = new System.Drawing.Size(32, 32); + this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripButton1, + this.toolStripButton2, + this.toolStripButton3, + this.toolStripButton4}); + this.toolStrip1.Location = new System.Drawing.Point(0, 0); + this.toolStrip1.Name = "toolStrip1"; + this.toolStrip1.Size = new System.Drawing.Size(664, 39); + this.toolStrip1.TabIndex = 1; + this.toolStrip1.Text = "toolStrip1"; + // + // toolStripButton1 + // + this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image"))); + this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton1.Name = "toolStripButton1"; + this.toolStripButton1.Size = new System.Drawing.Size(69, 36); + this.toolStripButton1.Text = "Load"; + this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click); + // + // toolStripButton2 + // + this.toolStripButton2.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton2.Image"))); + this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton2.Name = "toolStripButton2"; + this.toolStripButton2.Size = new System.Drawing.Size(68, 36); + this.toolStripButton2.Text = "Save"; + this.toolStripButton2.Click += new System.EventHandler(this.toolStripButton2_Click); + // + // toolStripButton3 + // + this.toolStripButton3.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.toolStripButton3.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton3.Image"))); + this.toolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton3.Name = "toolStripButton3"; + this.toolStripButton3.Size = new System.Drawing.Size(82, 36); + this.toolStripButton3.Text = "Print(L)"; + this.toolStripButton3.Click += new System.EventHandler(this.toolStripButton3_Click); + // + // toolStripButton4 + // + this.toolStripButton4.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.toolStripButton4.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton4.Image"))); + this.toolStripButton4.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton4.Name = "toolStripButton4"; + this.toolStripButton4.Size = new System.Drawing.Size(83, 36); + this.toolStripButton4.Text = "Print(R)"; + this.toolStripButton4.Click += new System.EventHandler(this.toolStripButton4_Click); + // + // logTextBox1 + // + this.logTextBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(24)))), ((int)(((byte)(24)))), ((int)(((byte)(24))))); + this.logTextBox1.ColorList = new arCtl.sLogMessageColor[0]; + this.logTextBox1.DateFormat = "yy-MM-dd HH:mm:ss"; + this.logTextBox1.DefaultColor = System.Drawing.Color.LightGray; + this.logTextBox1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.logTextBox1.EnableDisplayTimer = true; + this.logTextBox1.EnableGubunColor = true; + this.logTextBox1.Font = new System.Drawing.Font("Consolas", 9F); + this.logTextBox1.ListFormat = "[{0}] {1}"; + this.logTextBox1.Location = new System.Drawing.Point(0, 501); + this.logTextBox1.MaxListCount = ((ushort)(200)); + this.logTextBox1.MaxTextLength = ((uint)(4000u)); + this.logTextBox1.MessageInterval = 50; + this.logTextBox1.Name = "logTextBox1"; + this.logTextBox1.Size = new System.Drawing.Size(664, 100); + this.logTextBox1.TabIndex = 2; + this.logTextBox1.Text = ""; + // + // fZPLEditor + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(664, 601); + this.Controls.Add(this.richTextBox1); + this.Controls.Add(this.logTextBox1); + this.Controls.Add(this.toolStrip1); + this.Name = "fZPLEditor"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "fZPLEditor"; + this.Load += new System.EventHandler(this.fZPLEditor_Load); + this.toolStrip1.ResumeLayout(false); + this.toolStrip1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.RichTextBox richTextBox1; + private System.Windows.Forms.ToolStrip toolStrip1; + private System.Windows.Forms.ToolStripButton toolStripButton1; + private System.Windows.Forms.ToolStripButton toolStripButton2; + private System.Windows.Forms.ToolStripButton toolStripButton3; + private System.Windows.Forms.ToolStripButton toolStripButton4; + private arCtl.LogTextBox logTextBox1; + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/fZPLEditor.cs b/Handler/Project/Dialog/fZPLEditor.cs new file mode 100644 index 0000000..08aa818 --- /dev/null +++ b/Handler/Project/Dialog/fZPLEditor.cs @@ -0,0 +1,71 @@ +using AR; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fZPLEditor : Form + { + string fn = string.Empty; + public fZPLEditor(string fn_) + { + InitializeComponent(); + this.fn = fn_; + this.FormClosed += FZPLEditor_FormClosed; + } + + private void FZPLEditor_FormClosed(object sender, FormClosedEventArgs e) + { + PUB.log.RaiseMsg -= Log_RaiseMsg; + } + + private void fZPLEditor_Load(object sender, EventArgs e) + { + this.richTextBox1.Text = System.IO.File.ReadAllText(this.fn, System.Text.Encoding.Default); + PUB.log.RaiseMsg += Log_RaiseMsg; + } + + private void Log_RaiseMsg(DateTime LogTime, string TypeStr, string Message) + { + this.logTextBox1.AddMsg(LogTime, TypeStr, Message); + } + + private void toolStripButton1_Click(object sender, EventArgs e) + { + //load + if(UTIL.MsgQ("다시 불러 올까요?") == DialogResult.Yes) + this.richTextBox1.Text = System.IO.File.ReadAllText(this.fn, System.Text.Encoding.Default); + } + + private void toolStripButton2_Click(object sender, EventArgs e) + { + //save + if(UTIL.MsgQ("저장 할까요?")== DialogResult.Yes) + System.IO.File.WriteAllText(this.fn, this.richTextBox1.Text.Trim(), System.Text.Encoding.Default); + } + + private void toolStripButton4_Click(object sender, EventArgs e) + { + //right + if (PUB.PrinterR.IsOpen) + PUB.PrinterR.Print(this.richTextBox1.Text); + else PUB.log.AddAT("프린터R연결 안됨"); + } + + private void toolStripButton3_Click(object sender, EventArgs e) + { + //left + if (PUB.PrinterL.IsOpen) + PUB.PrinterL.Print(this.richTextBox1.Text); + else + PUB.log.AddAT("프린터L 연결 안됨"); + } + } +} diff --git a/Handler/Project/Dialog/fZPLEditor.resx b/Handler/Project/Dialog/fZPLEditor.resx new file mode 100644 index 0000000..1e778fd --- /dev/null +++ b/Handler/Project/Dialog/fZPLEditor.resx @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + \ No newline at end of file diff --git a/Handler/Project/Dialog/fswPLC.Designer.cs b/Handler/Project/Dialog/fswPLC.Designer.cs new file mode 100644 index 0000000..8be771d --- /dev/null +++ b/Handler/Project/Dialog/fswPLC.Designer.cs @@ -0,0 +1,351 @@ +namespace Project.Dialog +{ + partial class fswPLC + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.timer1 = new System.Windows.Forms.Timer(this.components); + this.statusStrip1 = new System.Windows.Forms.StatusStrip(); + this.toolStripStatusLabel2 = new System.Windows.Forms.ToolStripStatusLabel(); + this.toolStripStatusLabel3 = new System.Windows.Forms.ToolStripStatusLabel(); + this.ioPanel1 = new arDev.AjinEXTEK.IOPanel(); + this.logTextBox1 = new arCtl.LogTextBox(); + this.gridView1 = new arCtl.GridView.GridView(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.button1 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.button3 = new System.Windows.Forms.Button(); + this.button4 = new System.Windows.Forms.Button(); + this.button5 = new System.Windows.Forms.Button(); + this.button6 = new System.Windows.Forms.Button(); + this.button7 = new System.Windows.Forms.Button(); + this.button8 = new System.Windows.Forms.Button(); + this.button9 = new System.Windows.Forms.Button(); + this.button10 = new System.Windows.Forms.Button(); + this.button11 = new System.Windows.Forms.Button(); + this.button12 = new System.Windows.Forms.Button(); + this.statusStrip1.SuspendLayout(); + this.tableLayoutPanel1.SuspendLayout(); + this.SuspendLayout(); + // + // timer1 + // + this.timer1.Interval = 250; + this.timer1.Tick += new System.EventHandler(this.timer1_Tick); + // + // statusStrip1 + // + this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripStatusLabel2, + this.toolStripStatusLabel3}); + this.statusStrip1.Location = new System.Drawing.Point(0, 570); + this.statusStrip1.Name = "statusStrip1"; + this.statusStrip1.Size = new System.Drawing.Size(627, 22); + this.statusStrip1.TabIndex = 2; + this.statusStrip1.Text = "statusStrip1"; + // + // toolStripStatusLabel2 + // + this.toolStripStatusLabel2.Name = "toolStripStatusLabel2"; + this.toolStripStatusLabel2.Size = new System.Drawing.Size(121, 17); + this.toolStripStatusLabel2.Text = "toolStripStatusLabel2"; + // + // toolStripStatusLabel3 + // + this.toolStripStatusLabel3.Name = "toolStripStatusLabel3"; + this.toolStripStatusLabel3.Size = new System.Drawing.Size(121, 17); + this.toolStripStatusLabel3.Text = "toolStripStatusLabel3"; + // + // ioPanel1 + // + this.ioPanel1.BorderColor = System.Drawing.Color.Empty; + this.ioPanel1.BorderSize = 0; + this.ioPanel1.ColorList = null; + this.ioPanel1.Dock = System.Windows.Forms.DockStyle.Top; + this.ioPanel1.FontPin = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.ioPanel1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(200)))), ((int)(((byte)(200))))); + this.ioPanel1.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.ioPanel1.Location = new System.Drawing.Point(0, 0); + this.ioPanel1.MatrixSize = new System.Drawing.Point(3, 6); + this.ioPanel1.MenuBorderSize = 1; + this.ioPanel1.MenuGap = 5; + this.ioPanel1.MinimumSize = new System.Drawing.Size(100, 50); + this.ioPanel1.Name = "ioPanel1"; + this.ioPanel1.ShadowColor = System.Drawing.Color.Transparent; + this.ioPanel1.showDebugInfo = false; + this.ioPanel1.ShowPinName = true; + this.ioPanel1.Size = new System.Drawing.Size(627, 116); + this.ioPanel1.TabIndex = 0; + this.ioPanel1.TextAttachToImage = true; + // + // logTextBox1 + // + this.logTextBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(24)))), ((int)(((byte)(24)))), ((int)(((byte)(24))))); + this.logTextBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.logTextBox1.ColorList = new arCtl.sLogMessageColor[0]; + this.logTextBox1.DateFormat = "mm:ss.fff"; + this.logTextBox1.DefaultColor = System.Drawing.Color.LightGray; + this.logTextBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.logTextBox1.EnableDisplayTimer = true; + this.logTextBox1.EnableGubunColor = true; + this.logTextBox1.Font = new System.Drawing.Font("Consolas", 9F); + this.logTextBox1.ListFormat = "[{0}] {1}"; + this.logTextBox1.Location = new System.Drawing.Point(0, 116); + this.logTextBox1.MaxListCount = ((ushort)(200)); + this.logTextBox1.MaxTextLength = ((uint)(4000u)); + this.logTextBox1.MessageInterval = 50; + this.logTextBox1.Name = "logTextBox1"; + this.logTextBox1.Size = new System.Drawing.Size(627, 208); + this.logTextBox1.TabIndex = 0; + this.logTextBox1.Text = ""; + // + // gridView1 + // + this.gridView1.arVeriticalDraw = false; + this.gridView1.BorderColor = System.Drawing.Color.Black; + this.gridView1.BorderSize = 0; + this.gridView1.ColorList = null; + this.gridView1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.gridView1.FontPin = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.gridView1.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gridView1.Location = new System.Drawing.Point(0, 470); + this.gridView1.MatrixSize = new System.Drawing.Point(3, 4); + this.gridView1.MenuBorderSize = 1; + this.gridView1.MenuGap = 5; + this.gridView1.MinimumSize = new System.Drawing.Size(100, 50); + this.gridView1.Name = "gridView1"; + this.gridView1.Names = null; + this.gridView1.ShadowColor = System.Drawing.Color.Transparent; + this.gridView1.showDebugInfo = false; + this.gridView1.ShowIndexString = true; + this.gridView1.ShowNameString = true; + this.gridView1.ShowValueString = true; + this.gridView1.Size = new System.Drawing.Size(627, 100); + this.gridView1.TabIndex = 3; + this.gridView1.Tags = null; + this.gridView1.Text = "gridView1"; + this.gridView1.TextAttachToImage = true; + this.gridView1.Titles = null; + this.gridView1.Values = null; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 3; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F)); + this.tableLayoutPanel1.Controls.Add(this.button1, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.button2, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.button3, 2, 0); + this.tableLayoutPanel1.Controls.Add(this.button4, 2, 1); + this.tableLayoutPanel1.Controls.Add(this.button5, 1, 1); + this.tableLayoutPanel1.Controls.Add(this.button6, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.button7, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.button8, 1, 2); + this.tableLayoutPanel1.Controls.Add(this.button9, 2, 2); + this.tableLayoutPanel1.Controls.Add(this.button10, 2, 3); + this.tableLayoutPanel1.Controls.Add(this.button11, 1, 3); + this.tableLayoutPanel1.Controls.Add(this.button12, 0, 3); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 324); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 4; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(627, 146); + this.tableLayoutPanel1.TabIndex = 4; + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Fill; + this.button1.Location = new System.Drawing.Point(3, 3); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(202, 30); + this.button1.TabIndex = 0; + this.button1.Text = "UP"; + this.button1.UseVisualStyleBackColor = true; + // + // button2 + // + this.button2.Dock = System.Windows.Forms.DockStyle.Fill; + this.button2.Location = new System.Drawing.Point(211, 3); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(203, 30); + this.button2.TabIndex = 0; + this.button2.Text = "UP"; + this.button2.UseVisualStyleBackColor = true; + // + // button3 + // + this.button3.Dock = System.Windows.Forms.DockStyle.Fill; + this.button3.Location = new System.Drawing.Point(420, 3); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(204, 30); + this.button3.TabIndex = 0; + this.button3.Text = "UP"; + this.button3.UseVisualStyleBackColor = true; + // + // button4 + // + this.button4.Dock = System.Windows.Forms.DockStyle.Fill; + this.button4.Location = new System.Drawing.Point(420, 39); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(204, 30); + this.button4.TabIndex = 0; + this.button4.Text = "STOP"; + this.button4.UseVisualStyleBackColor = true; + // + // button5 + // + this.button5.Dock = System.Windows.Forms.DockStyle.Fill; + this.button5.Location = new System.Drawing.Point(211, 39); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(203, 30); + this.button5.TabIndex = 0; + this.button5.Text = "STOP"; + this.button5.UseVisualStyleBackColor = true; + // + // button6 + // + this.button6.Dock = System.Windows.Forms.DockStyle.Fill; + this.button6.Location = new System.Drawing.Point(3, 39); + this.button6.Name = "button6"; + this.button6.Size = new System.Drawing.Size(202, 30); + this.button6.TabIndex = 0; + this.button6.Text = "STOP"; + this.button6.UseVisualStyleBackColor = true; + // + // button7 + // + this.button7.Dock = System.Windows.Forms.DockStyle.Fill; + this.button7.Location = new System.Drawing.Point(3, 75); + this.button7.Name = "button7"; + this.button7.Size = new System.Drawing.Size(202, 30); + this.button7.TabIndex = 0; + this.button7.Text = "DOWN"; + this.button7.UseVisualStyleBackColor = true; + // + // button8 + // + this.button8.Dock = System.Windows.Forms.DockStyle.Fill; + this.button8.Location = new System.Drawing.Point(211, 75); + this.button8.Name = "button8"; + this.button8.Size = new System.Drawing.Size(203, 30); + this.button8.TabIndex = 0; + this.button8.Text = "DOWN"; + this.button8.UseVisualStyleBackColor = true; + // + // button9 + // + this.button9.Dock = System.Windows.Forms.DockStyle.Fill; + this.button9.Location = new System.Drawing.Point(420, 75); + this.button9.Name = "button9"; + this.button9.Size = new System.Drawing.Size(204, 30); + this.button9.TabIndex = 0; + this.button9.Text = "DOWN"; + this.button9.UseVisualStyleBackColor = true; + // + // button10 + // + this.button10.Dock = System.Windows.Forms.DockStyle.Fill; + this.button10.Location = new System.Drawing.Point(420, 111); + this.button10.Name = "button10"; + this.button10.Size = new System.Drawing.Size(204, 32); + this.button10.TabIndex = 0; + this.button10.Text = "REFRESH"; + this.button10.UseVisualStyleBackColor = true; + // + // button11 + // + this.button11.Dock = System.Windows.Forms.DockStyle.Fill; + this.button11.Location = new System.Drawing.Point(211, 111); + this.button11.Name = "button11"; + this.button11.Size = new System.Drawing.Size(203, 32); + this.button11.TabIndex = 0; + this.button11.Text = "REFRESH"; + this.button11.UseVisualStyleBackColor = true; + // + // button12 + // + this.button12.Dock = System.Windows.Forms.DockStyle.Fill; + this.button12.Location = new System.Drawing.Point(3, 111); + this.button12.Name = "button12"; + this.button12.Size = new System.Drawing.Size(202, 32); + this.button12.TabIndex = 0; + this.button12.Text = "REFRESH"; + this.button12.UseVisualStyleBackColor = true; + // + // fswPLC + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(627, 592); + this.Controls.Add(this.logTextBox1); + this.Controls.Add(this.tableLayoutPanel1); + this.Controls.Add(this.gridView1); + this.Controls.Add(this.statusStrip1); + this.Controls.Add(this.ioPanel1); + this.Name = "fswPLC"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Form1"; + this.Load += new System.EventHandler(this.Form1_Load); + this.statusStrip1.ResumeLayout(false); + this.statusStrip1.PerformLayout(); + this.tableLayoutPanel1.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private arCtl.LogTextBox logTextBox1; + private System.Windows.Forms.Timer timer1; + private arDev.AjinEXTEK.IOPanel ioPanel1; + private System.Windows.Forms.StatusStrip statusStrip1; + private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel2; + private arCtl.GridView.GridView gridView1; + private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel3; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.Button button5; + private System.Windows.Forms.Button button6; + private System.Windows.Forms.Button button7; + private System.Windows.Forms.Button button8; + private System.Windows.Forms.Button button9; + private System.Windows.Forms.Button button10; + private System.Windows.Forms.Button button11; + private System.Windows.Forms.Button button12; + } +} + diff --git a/Handler/Project/Dialog/fswPLC.cs b/Handler/Project/Dialog/fswPLC.cs new file mode 100644 index 0000000..c3c70bc --- /dev/null +++ b/Handler/Project/Dialog/fswPLC.cs @@ -0,0 +1,349 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Security.Cryptography.X509Certificates; +using System.Text; +using System.Windows.Forms; +using AR; + +namespace Project.Dialog +{ + public partial class fswPLC : Form + { + + // byte[] buffer = new byte[16]; + + public fswPLC() + { + InitializeComponent(); + this.Text = $"{Application.ProductName} ver {Application.ProductVersion}"; + PUB.log.RaiseMsg += (p1, p2, p3) => { this.logTextBox1.AddMsg(p1, p2, p3); }; + this.FormClosing += (s1, e2) => + { + timer1.Stop(); + }; + + this.logTextBox1.ColorList = new arCtl.sLogMessageColor[] { + new arCtl.sLogMessageColor("NORM",Color.Yellow), + new arCtl.sLogMessageColor("ERR",Color.Red), + new arCtl.sLogMessageColor("WARN",Color.Tomato), + new arCtl.sLogMessageColor("INFO",Color.LightSkyBlue) + }; + + List piname = new List(); + List titles = new List(); + List values = new List(); + + titles.AddRange(new string[] { + "Upper Limit","Reel Detect","Lower Limit", + "Motor Direction(1=DN,0=UP)","Motor Run","Emergency", + }); + piname.AddRange(new string[] { + "X"+((int)eDIName.PORTL_LIM_UP).ToString("X2"), + "X"+((int)eDIName.PORTL_DET_UP).ToString("X2"), + "X"+((int)eDIName.PORTL_LIM_DN).ToString("X2"), + "Y"+((int)eDOName.PORTL_MOT_DIR).ToString("X2"), + "Y"+((int)eDOName.PORTL_MOT_RUN).ToString("X2"),"--" + }); + + titles.AddRange(new string[] { + "Upper Limit","Reel Detect","Lower Limit", + "Motor Direction(1=DN,0=UP)","Motor Run","--", + }); + piname.AddRange(new string[] { + "X"+((int)eDIName.PORTC_LIM_UP).ToString("X2"), + "X"+((int)eDIName.PORTC_DET_UP).ToString("X2"), + "X"+((int)eDIName.PORTC_LIM_DN).ToString("X2"), + "Y"+((int)eDOName.PORTC_MOT_DIR).ToString("X2"), + "Y"+((int)eDOName.PORTC_MOT_RUN).ToString("X2"),"--" + }); + + + titles.AddRange(new string[] { + "Upper Limit","Reel Detect","Lower Limit", + "Motor Direction(1=DN,0=UP)","Motor Run","--" + }); + piname.AddRange(new string[] { + "X"+((int)eDIName.PORTR_LIM_UP).ToString("X2"), + "X"+((int)eDIName.PORTR_DET_UP).ToString("X2"), + "X"+((int)eDIName.PORTR_LIM_DN).ToString("X2"), + "Y"+((int)eDOName.PORTR_MOT_DIR).ToString("X2"), + "Y"+((int)eDOName.PORTR_MOT_RUN).ToString("X2"),"--" + }); + + for (int i = 0; i < titles.Count; i++) + values.Add(false); + + ioPanel1.ColorList = new arDev.AjinEXTEK.ColorListItem[] { + new arDev.AjinEXTEK.ColorListItem{ BackColor1 = Color.DimGray, BackColor2 = Color.FromArgb(30,30,30), Remark="False" }, + new arDev.AjinEXTEK.ColorListItem{ BackColor1 = Color.Lime, BackColor2 = Color.Green, Remark="True" }, + }; + + this.ioPanel1.setTitle(titles.ToArray()); + this.ioPanel1.setNames(piname.ToArray()); + this.ioPanel1.setValue(values.ToArray()); + this.ioPanel1.Invalidate(); + + //내부버퍼확인 + titles.Clear(); + piname.Clear(); + var valueb = new List(); + for (int i = 0; i < 16; i++) + { + var addr = (eswPLCAddr)i; + piname.Add(i.ToString("X2")); + titles.Add(addr.ToString()); + valueb.Add(0); + } + + gridView1.ColorList = new arCtl.GridView.ColorListItem[] { + new arCtl.GridView.ColorListItem{ BackColor1 = Color.DimGray, BackColor2 = Color.FromArgb(30,30,30), Remark="False" }, + new arCtl.GridView.ColorListItem{ BackColor1 = Color.Lime, BackColor2 = Color.Green, Remark="True" }, + }; + this.gridView1.setTitle(titles.ToArray()); + this.gridView1.setNames(piname.ToArray()); + this.gridView1.setValue(valueb.ToArray()); + this.gridView1.ShowValueString = true; + this.gridView1.ShowNameString = true; + this.gridView1.ShowIndexString = false; + this.gridView1.Invalidate(); + + } + + private void Form1_Load(object sender, EventArgs e) + { + PUB.log.AddI("프로그램시작"); + PUB.plc.ValueChanged += Plc_ValueChanged; + ioPanel1.ItemClick += IoPanel1_ItemClick; + timer1.Start(); + } + + private void Plc_ValueChanged(object sender, AR.MemoryMap.Core.monitorvalueargs e) + { + + } + private void Dio_IOValueChanged(object sender, arDev.DIO.IOValueEventArgs e) + { + if (e.Direction == arDev.DIO.eIOPINDIR.INPUT) + { + var pin = (eDIName)e.ArrIDX; + + //센서가 활성화될때는 이값을 설정해준다 + //나머지조건은 autocontrol 에서 처리된다. + if (e.NewValue) + { + if (pin == eDIName.PORTL_LIM_DN) WriteBuffer(eswPLCAddr.LPort, 1); + else if (pin == eDIName.PORTL_DET_UP) WriteBuffer(eswPLCAddr.LPort, 2); + else if (pin == eDIName.PORTL_LIM_UP) WriteBuffer(eswPLCAddr.LPort, 3); + + else if (pin == eDIName.PORTC_LIM_DN) WriteBuffer(eswPLCAddr.CPort, 1); + else if (pin == eDIName.PORTC_DET_UP) WriteBuffer(eswPLCAddr.CPort, 2); + else if (pin == eDIName.PORTC_LIM_UP) WriteBuffer(eswPLCAddr.CPort, 3); + + else if (pin == eDIName.PORTR_LIM_DN) WriteBuffer(eswPLCAddr.RPort, 1); + else if (pin == eDIName.PORTR_DET_UP) WriteBuffer(eswPLCAddr.RPort, 2); + else if (pin == eDIName.PORTR_LIM_UP) WriteBuffer(eswPLCAddr.RPort, 3); + } + } + else + { + var pin = (eDOName)e.ArrIDX; + + if (pin == eDOName.PORTL_MOT_RUN) + { + if (e.NewValue == false) WriteBuffer(eswPLCAddr.LMotor, 3); + else + { + //방향을 확인해야한다 + var value = GetDOValue(eDOName.PORTL_MOT_DIR) ? 2 : 1; + WriteBuffer(eswPLCAddr.LMotor, (byte)value); + } + } + else if (pin == eDOName.PORTC_MOT_RUN) + { + if (e.NewValue == false) WriteBuffer(eswPLCAddr.CMotor, 3); + else + { + //방향을 확인해야한다 + var value = GetDOValue(eDOName.PORTC_MOT_DIR) ? 2 : 1; + WriteBuffer(eswPLCAddr.CMotor, (byte)value); + } + } + else if (pin == eDOName.PORTR_MOT_RUN) + { + if (e.NewValue == false) WriteBuffer(eswPLCAddr.RMotor, 3); + else + { + //방향을 확인해야한다 + var value = GetDOValue(eDOName.PORTR_MOT_DIR) ? 2 : 1; + WriteBuffer(eswPLCAddr.RMotor, (byte)value); + } + } + } + } + private void IoPanel1_ItemClick(object sender, arDev.AjinEXTEK.IOPanel.ItemClickEventArgs e) + { + var name = this.ioPanel1.Names[e.idx]; + if (name.StartsWith("Y")) + { + var pinno = Convert.ToInt32(name.Substring(1), 16); + var pin = (eDOName)pinno; + var cur = GetDOValue(pin); + DIO.SetOutput(pin, !cur); + PUB.log.Add($"value change [X{pinno:X2}] {pin} to {!cur}"); + } + } + bool GetDOValue(eDOName pin) + { + return PUB.dio.GetDOValue((int)pin); + } + bool GetDIValue(eDIName pin) + { + if (pin == eDIName.PORTL_LIM_DN || pin == eDIName.PORTC_LIM_DN || pin == eDIName.PORTR_LIM_DN) + { + return !PUB.dio.GetDIValue((int)pin); + } + else if (pin == eDIName.PORTL_LIM_UP || pin == eDIName.PORTC_LIM_UP || pin == eDIName.PORTR_LIM_UP) + { + return !PUB.dio.GetDIValue((int)pin); + } + else if (pin == eDIName.PORTL_DET_UP || pin == eDIName.PORTC_DET_UP || pin == eDIName.PORTR_DET_UP) + { + return !PUB.dio.GetDIValue((int)pin); + } + else if (pin == eDIName.BUT_EMGF) + { + return !PUB.dio.GetDIValue((int)pin); + } + else return PUB.dio.GetDIValue((int)pin); + } + + public enum eMotList + { + Left = 0, + Center, + Right, + } + public enum eMotControl + { + Stop, + Down, + Up, + + } + + void MotorControl(eMotList mot, eMotControl cmd) + { + if (cmd == eMotControl.Stop) + { + eDOName pin = eDOName.PORTL_MOT_RUN; + if (mot == eMotList.Center) pin = eDOName.PORTC_MOT_RUN; + else if (mot == eMotList.Right) pin = eDOName.PORTR_MOT_RUN; + + //출력이켜져있다면 끈다 + if (GetDOValue(pin)) SetOutput(pin, false); + } + else if (cmd == eMotControl.Down || cmd == eMotControl.Up) + { + var dir = cmd == eMotControl.Down ? false : true; + eDOName pinDir = eDOName.PORTL_MOT_DIR; + if (mot == eMotList.Center) pinDir = eDOName.PORTC_MOT_DIR; + else if (mot == eMotList.Right) pinDir = eDOName.PORTR_MOT_DIR; + + eDOName pinRun = eDOName.PORTL_MOT_RUN; + if (mot == eMotList.Center) pinRun = eDOName.PORTC_MOT_RUN; + else if (mot == eMotList.Right) pinRun = eDOName.PORTR_MOT_RUN; + + if (GetDOValue(pinDir) != dir) SetOutput(pinDir, dir); + if (GetDOValue(pinRun) == false) SetOutput(pinRun, true); + } + + } + bool SetOutput(eDOName pin, bool value) + { + return PUB.dio.SetOutput((int)pin, value); + } + + /// + /// 내부임시버퍼의 값을 확인합니다 + /// + /// + /// + byte ReadBuffer(eswPLCAddr addr) + { + return PUB.swPLCBuffer[(int)addr]; + } + void WriteBuffer(eswPLCAddr addr, byte value) + { + PUB.swPLCBuffer[(int)addr] = value; + } + + private void timer1_Tick(object sender, EventArgs e) + { + //io상태 ㅍ시 + + var idx = 0; + if (PUB.dio != null && PUB.dio.IsInit) + { + ioPanel1.setValue(idx++, GetDIValue(eDIName.PORTL_LIM_UP)); + ioPanel1.setValue(idx++, GetDIValue(eDIName.PORTL_DET_UP)); + ioPanel1.setValue(idx++, GetDIValue(eDIName.PORTL_LIM_DN)); + ioPanel1.setValue(idx++, PUB.dio.GetDOValue((int)eDOName.PORTL_MOT_DIR)); + ioPanel1.setValue(idx++, PUB.dio.GetDOValue((int)eDOName.PORTL_MOT_RUN)); + ioPanel1.setValue(idx++, GetDIValue(eDIName.BUT_EMGF)); + + ioPanel1.setValue(idx++, GetDIValue(eDIName.PORTC_LIM_UP)); + ioPanel1.setValue(idx++, GetDIValue(eDIName.PORTC_DET_UP)); + ioPanel1.setValue(idx++, GetDIValue(eDIName.PORTC_LIM_DN)); + ioPanel1.setValue(idx++, PUB.dio.GetDOValue((int)eDOName.PORTC_MOT_DIR)); + ioPanel1.setValue(idx++, PUB.dio.GetDOValue((int)eDOName.PORTC_MOT_RUN)); + ioPanel1.setValue(idx++, false); + + ioPanel1.setValue(idx++, GetDIValue(eDIName.PORTR_LIM_UP)); + ioPanel1.setValue(idx++, GetDIValue(eDIName.PORTR_DET_UP)); + ioPanel1.setValue(idx++, GetDIValue(eDIName.PORTR_LIM_DN)); + ioPanel1.setValue(idx++, PUB.dio.GetDOValue((int)eDOName.PORTR_MOT_DIR)); + ioPanel1.setValue(idx++, PUB.dio.GetDOValue((int)eDOName.PORTR_MOT_RUN)); + ioPanel1.setValue(idx++, false); + } + else + { + ioPanel1.setValue(idx++, false); + ioPanel1.setValue(idx++, false); + ioPanel1.setValue(idx++, false); + ioPanel1.setValue(idx++, false); + ioPanel1.setValue(idx++, false); + ioPanel1.setValue(idx++, false); + + ioPanel1.setValue(idx++, false); + ioPanel1.setValue(idx++, false); + ioPanel1.setValue(idx++, false); + ioPanel1.setValue(idx++, false); + ioPanel1.setValue(idx++, false); + ioPanel1.setValue(idx++, false); + + ioPanel1.setValue(idx++, false); + ioPanel1.setValue(idx++, false); + ioPanel1.setValue(idx++, false); + ioPanel1.setValue(idx++, false); + ioPanel1.setValue(idx++, false); + ioPanel1.setValue(idx++, false); + } + ioPanel1.Invalidate(); + + //내부버퍼표시 + for (int i = 0; i < 16; i++) + { + gridView1.setValue(i, ReadBuffer((eswPLCAddr)i)); + } + gridView1.Invalidate(); + + toolStripStatusLabel2.Text = PUB.plc.Init ? "Connected" : "Disconnected"; + toolStripStatusLabel2.ForeColor = PUB.plc.Init ? Color.Black : Color.Red; + toolStripStatusLabel3.Text = $"Loop({PUB.sm.Loop_ms:N0}ms)"; + } + } +} \ No newline at end of file diff --git a/Handler/Project/Dialog/fswPLC.resx b/Handler/Project/Dialog/fswPLC.resx new file mode 100644 index 0000000..49808f7 --- /dev/null +++ b/Handler/Project/Dialog/fswPLC.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 104, 17 + + \ No newline at end of file diff --git a/Handler/Project/History.txt b/Handler/Project/History.txt new file mode 100644 index 0000000..8166f53 --- /dev/null +++ b/Handler/Project/History.txt @@ -0,0 +1,154 @@ +1. 초기화 후 카트 내려가게 하기 +2. 프린터 위치값이 조회되지 않고 오류나는 경우 있음 -> 로컬자료로 보정하자 +3. 데이터베이스 조회시 no lock 추가하기 +4. 완료대기중에 조건을 화면에 표시하자 1번 장비에서 완료가 되지 않는 경우가 있음 + + + +qucick onctrol 에서 실린더 on 시 버튼 배경색이 검정으로 보인다. +피커 실린더는 항상 사용하도록 한다 (길이가 안나옴 / 안쓰면 스프링 여유가 없다.) + + +돌아가는거,, 3개 고칠거,바코드 + +21PGJM0225C1E3R0WB01D,P105-80181-03R0,1TSC1527EE5,1J163SC00G83,16D20210527,14D20211127,Q20000,1PGJM0225C1E3R0WB01D:04:90%:3 + +컨트롤버튼이 안보인다 +모션초기화 오류가 게속 나온다 어딘가에서 off하는듯 +비젼 acq를 항상 유지하는 것으로 한다 (작업시작시 on , 작업 종료시 off); + +축 정보 + +-피치- +프린터Z : 10mm 피치 +프린터Y : 한바퀴가 49.5mm +피커Z : 10mm +피커X : 20mm +Theta : 1/50 + +0 : Picker X +1 : Picker Z +2 : Print Left - Y : 0.00325 +3 : Print Left Up/Dn +4 : Print Right - Y : 0.00325 +5 : Print Right Up/Dn +6 : Theta + + +//특정좌표가 기준점으로부터 몇도 틀어져 있는가? +math.atan2(PY-CY,PX-CX) + +//회전후좌표계산 +x = root( (px - cx)^2 + (py-cy)^2 ) * cos@ + cx +y = root( px^2 + py^2 ) * sin@ + cy + + +1. 카트교환시 - 가장 아래로 내리고 마그넷을 푸는 방식 확인 필요 / 동작중에도 교환을 누르면 / 교환프로세서를 port 시퀀스에 집어넣어야할듯 함. +2. SID변환등의 작업을 완료했을 떄 DB에도 해당 내용을 업데이트 해준다. SID별 Part no 와 customer Code 등 +3. 릴 ID는 신규생성이 필요하다 101=>103 변환 테이블 확인 필요 +4. 초반 시작시에 . 중앙에 너무 머무리는 경향이 있다. 아이템을 잡은 후 바로 가지않고, 중앙포트가 안정되면 그떄서야 움직인다. +5. 추가로 검증 할 수 있는 프로그램을 개발하여 제대로 붙었는지 체크한다. +검증 완료시 해당 비젼쪽에 검증 확인 메세지를 추가한다.(잘 보이게) + + + +미처리내역 +[h/w] + port0,2번 detect 센서 + 릴 카트 + 피커 진공패드 +[s/w] + 비젼 관련 (바코드) + port0,2번 센서가 없어서 해당 기능 oFF됨 + 최초 작업 실행 , 촬영작업 없이 실행 됨 + history 저장 기능 + 간헐적으로 진행중에 멈추는 현상 + 카메라 live 활성화시 해당 카메라만 활성화할 수 잇도록 context menu 에서 호출 인덱스 확인 필요 + 카트크기정보 및 카드관련 코드 추가 + 에러메세지 잡아야 함 + 작업완료시 데이터 저장하는 기능 추가 + JOBEND 화면 정리 + 작업시작 화면 멘트도 변경한다 + QR코드 읽는 명령에 유레시스의 것도 넣는다. + QR코드 읽기 실패시에 밝기를 += 3% 처리를 한다. + 릴 원형 감지하고 마스킹영역을 설정한다 + 중앙만 작업 완료 전에 limit 센서 터치되면 최하단으로 이동 : + + RDR 처리된 sid 로 변경된 것들 + 인쇄위치의 자동 결정 및 관련 UI 에 반영하기 (인쇄위치는 총 4면만 지원한다 N,E,W,S); + 인쇄위치에 따른 모션의 좌표 관련 처리 ( 모든 영역을 지정하거나 미리 계산해서 입력하거나 -> 비젼의 scale 값은 미리 계산해도 가능할 듯) + 티칭화면에서 길이(px) 값 확인하는 ruller 모드 추가 + 티칭화면에서 Mask 이미지 생성하는 화면 추가 (흑백 배경에 백색 원 추가하기) + 비젼 진행시 마스크 이미지 적용기능 (각 크기에 따름) + + +101SID bypass 옵션추가필요 +서버데이터 통신 기능 추가 필요(json) +비젼프로그램 통신이 느리다. 빠르게 할 방법 필요 함 + + +230511 chi bypass 모드 적용 완료 + => 피커 회전 off + => 인쇄 작업 off + 작업시작시 excel import 기능 제거 + 작업시작시 basemode save 시 오류메세지 추가 + 상단 카메라 옵션에서 비젼L/R에 trigger on/off 명령 추가 + + +230504 chi 작업완료후 10초이상 동작이 없는 경우에 완료되도록 함 + 컨베어모드관련 UI변경 작업 + +230503 chi 키엔스2대에 대한 코드 추가 + 초기 시작시 바코드 패턴 오류 처리 + 컨베어 모드를 옵션화 (기존 장비 호환됨) + + +220322 chi UI 저해상도 모드 추가 + +211201 chi offline mode 와, dry run 정의 +210414 chi 작업완료시 모든 포트를 아래로 내린다. + 포트가 하단 리밋에 걸리면 "포트잠금"을 해제 한다 + 로더포트의 오버로드 확인시 작업 시작 안됨 + 좌/우 활성화 여부에 따라서 포트의 동작 on/off 결정 + 비활성화된 축에 이동이 금지 되도록 코드 추가 + 최초 실행시 "포트잠금" 해제 기능이 1회 동작하지 않는 현상 수정 + +210325 chi 위치리셋후에 오른쪽으로 비키게 됨 +210302 chi 작업형태에 return 항목 추가 return 시에는 신규 생성시 return 이 기본 체크되게 함 + 모션작업시 timeout 항목에 -1을 입력한 데이터는 timeout 을 적용하지 않게함 + 바코드 검증 실패 메세지 변경 (mfg date 항목을 추가하고 rid는 줄을 분리 함) + +210112 chi 감지된 카트크기 화면에 표시함 + 비젼 외각 인식 관련 코드 추가 중 + +201229 chi + 비젼촬영횟수도 저장하자 + 이미지파일 저장하기 + PRINTR_AIRON , PRINTL_AIRON 핀이 서로 바뀜 + 프린트 횟수 추가 해서 보여주기 + 비젼촬영작업시 0,2번의 경우에는 프린터의Y축 값도 확인해야함 + 비젼iLOCK 이름중 PY 를 피커X로 변경 해야 함 + 프린트 출력이 다량 발생하는 오류 있음( 이거 해결하면 시퀀스는 일단 됨) + 비젼의 lock 정보도 loader 컨트롤에 전달하고 화면에 표시한다 + 전면에 카드 감지센서가 들어오고 몇초있다가 마그넷을 활성화 해준다. + +201224 chi X축의 안전위치를 화면에 표시해준다. + 마그넷 활성화를 화면에 표시해준다. + Theta는 홈 안잡음 + +201223* chi Loader 컨트롤의 모터 표시 방향 변경 + 인터락제한조건 수정 + 로더컨트롤에 safezone 과 포트 magnet 상태 표시함 + ILock 상태 display + +201223 chi [O]피커 Z축 - Limit 동작 안함 + [O]Printer Y 축 떨림 해결 + +201222 chi 모션화면에서 SVON 이 제대로 표시되지 않는 현상 수정 + 포트 up/dn 위치 확인 및 limit 센서 위치 조정 + 모션의 limit 센서 및 org 위치 동작 확인 (피커 z는 n-lim 은 동작 안함) + 모션화면에서 svon 과 p.clr 버튼 추가 + Y-PICKER -> X-PICKER 명칭 변경 + 카메라3대 확인 라이브 영상 확인 +201005 chi 시작시 카메라 연결확인 +200915 chi 프로젝트초기화 \ No newline at end of file diff --git a/Handler/Project/Language/Lang.cs b/Handler/Project/Language/Lang.cs new file mode 100644 index 0000000..7d09dc1 --- /dev/null +++ b/Handler/Project/Language/Lang.cs @@ -0,0 +1,259 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Project +{ + public static class Lang + { + ////main + public static string OK { get; set; } + public static string Q_EXIT { get; set; } + public static string ERROR { get; set; } + public static string NO { get; set; } + public static string YES { get; set; } + + public static string MENU_RESET { get; set; } + public static string MENU_LOGIN { get; set; } + public static string MENU_LOGOUT { get; set; } + public static string MENU_RESULT { get; set; } + public static string MENU_MODELEDIT { get; set; } + public static string MENU_SETUP { get; set; } + + public static string RESULT { get; set; } + public static string LOG { get; set; } + public static string HISTORY { get; set; } + + public static string NOT_READY { get; set; } + public static string CAN_NOT_RUN_AUTOMODE { get; set; } + + public static string m_오류_AIROFF { get; set; } + public static string m_오류_AIRDETECT { get; set; } + public static string m_오류_SAFTYAREA { get; set; } + public static string m_오류_REQUIRELOTLIST { get; set; } + public static string m_진행중 { get; set; } + public static string m_준비완료 { get; set; } + + public static string m_트레이로드 { get; set; } + public static string m_시작조건검사 { get; set; } + public static string m_시작조건프로그램 { get; set; } + public static string m_시작조건장치 { get; set; } + public static string m_카메라촬영 { get; set; } + public static string m_이미지수집 { get; set; } + public static string m_비젼검사_원점 { get; set; } + public static string m_비젼검사_DOT { get; set; } + public static string m_LASERMARKING { get; set; } + public static string m_AIRBLOW { get; set; } + public static string m_트레이언로드 { get; set; } + + public static void CreateFile() + { + //utf8파일로 파일을 생성한다. + //if (System.IO.File.Exists(FileName)) System.IO.File.Delete(FileName); + iniHelper.CreateFile(); //System.IO.File.WriteAllText(FileName, "//INI FILE", System.Text.Encoding.Unicode); + + int i = 1; + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.Q_EXIT); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.OK); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.ERROR); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.NO); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.YES); + + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.MENU_RESULT); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.MENU_LOGOUT); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.MENU_LOGIN); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.MENU_MODELEDIT); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.MENU_SETUP); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.MENU_RESET); + + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.RESULT); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.LOG); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.HISTORY); + + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.NOT_READY); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.CAN_NOT_RUN_AUTOMODE); + + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_오류_AIROFF); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_오류_AIRDETECT); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_오류_SAFTYAREA); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_오류_REQUIRELOTLIST); + + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_진행중); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_준비완료); + + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_트레이로드); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_시작조건검사); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_시작조건프로그램); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_시작조건장치); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_카메라촬영); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_이미지수집); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_비젼검사_원점 ); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_비젼검사_DOT ); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_LASERMARKING ); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_AIRBLOW); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_트레이언로드); + + iniHelper.Flush(); + } + + public static bool Loading(string langName) + { + Lang.SelectedLang = langName; + iniHelper = new arUtil.INIHelper(FileName); + + int i = 1; + + Lang.Q_EXIT = GetINIValue(string.Format("MSG{0:0000}", i++), "종료하시겠습니까?"); + Lang.OK = GetINIValue(string.Format("MSG{0:0000}", i++), "확인"); + Lang.ERROR = GetINIValue(string.Format("MSG{0:0000}", i++), "오류"); + Lang.NO = GetINIValue(string.Format("MSG{0:0000}", i++), "아니오"); + Lang.YES = GetINIValue(string.Format("MSG{0:0000}", i++), "예"); + + Lang.MENU_RESULT = GetINIValue(string.Format("MSG{0:0000}", i++), "History"); + Lang.MENU_LOGOUT = GetINIValue(string.Format("MSG{0:0000}", i++), "Logout"); + Lang.MENU_LOGIN = GetINIValue(string.Format("MSG{0:0000}", i++), "Login"); + Lang.MENU_MODELEDIT = GetINIValue(string.Format("MSG{0:0000}", i++), "Model Editor"); + Lang.MENU_SETUP = GetINIValue(string.Format("MSG{0:0000}", i++), "Setting"); + Lang.MENU_RESET = GetINIValue(string.Format("MSG{0:0000}", i++), "Clear"); + + Lang.RESULT = GetINIValue(string.Format("MSG{0:0000}", i++), "Result"); + Lang.LOG = GetINIValue(string.Format("MSG{0:0000}", i++), "Log"); + Lang.HISTORY = GetINIValue(string.Format("MSG{0:0000}", i++), "History"); + Lang.NOT_READY = GetINIValue(string.Format("MSG{0:0000}", i++), "Input sensor condition not completed."); + + Lang.CAN_NOT_RUN_AUTOMODE = "AUTO-RUN MODE{n}[자동실행] 중에는 사용할 수 없습니다{n}중지 후 다시 시도하세요"; + Lang.m_오류_AIROFF = GetINIValue(string.Format("MSG{0:0000}", i++), "AIR OFF{n}AIR 공급상태가 [OFF] 입니다{n}전면의 [AIR S/W]를 누르세요{n}출력포트 : Y004"); + Lang.m_오류_AIRDETECT = GetINIValue(string.Format("MSG{0:0000}", i++), "AIR NOT DETECTED{n}장비 전면커버를 열고 AIR 감지 센서의 출력을 확인합니다{n}감지센서 : X005"); + Lang.m_오류_SAFTYAREA = GetINIValue(string.Format("MSG{0:0000}", i++), "SAFTY AREA SENSOR ERROR{n}매거진 투입구 안전 센서가 감지되었습니다{n}감지센서 : X00A"); + Lang.m_오류_REQUIRELOTLIST = GetINIValue(string.Format("MSG{0:0000}", i++), "REQUIRE LOT-LIST{n}LOT 목록이 조회 되어야 합니다{n}바코드를 이용하여 A/L TAG를 입력하세요"); + Lang.m_진행중 = GetINIValue(string.Format("MSG{0:0000}", i++), "진행 중"); + Lang.m_준비완료 = GetINIValue(string.Format("MSG{0:0000}", i++), "준비 완료"); + + Lang.m_트레이로드 = GetINIValue(string.Format("MSG{0:0000}", i++), "TRAY LOAD"); + Lang.m_시작조건검사 = GetINIValue(string.Format("MSG{0:0000}", i++), "CHECK INIT"); + Lang.m_시작조건프로그램 = GetINIValue(string.Format("MSG{0:0000}", i++), "CHECK S/W"); + Lang.m_시작조건장치 = GetINIValue(string.Format("MSG{0:0000}", i++), "CHECK H/W"); + Lang.m_카메라촬영 = GetINIValue(string.Format("MSG{0:0000}", i++), "CAMERA ON"); + Lang.m_이미지수집 = GetINIValue(string.Format("MSG{0:0000}", i++), "GRAB IMAGE"); + Lang.m_비젼검사_원점 = GetINIValue(string.Format("MSG{0:0000}", i++), "IMAGE(ORIGNE)"); + Lang.m_비젼검사_DOT = GetINIValue(string.Format("MSG{0:0000}", i++), "IMAGE(DOT)"); + Lang.m_LASERMARKING = GetINIValue(string.Format("MSG{0:0000}", i++), "LASER MARKING"); + Lang.m_AIRBLOW = GetINIValue(string.Format("MSG{0:0000}", i++), "AIR BLOW"); + Lang.m_트레이언로드 = GetINIValue(string.Format("MSG{0:0000}", i++), "TRAY UNLOAD"); + + Type thClass = typeof(Lang); + + foreach (var method in thClass.GetMethods()) + { + var parameters = method.GetParameters(); + if (method.Name.StartsWith("get_m_")==false) continue; + //set은 사용하지 않는다. + + //key + string keyname = method.Name.Substring(4); + string methodName = method.Name; + string valuetype = method.ReturnType.Name.ToLower(); + var odata = thClass.GetMethod(methodName).Invoke(null, null).ToString(); + if(odata.Contains("{n}")) + { + var ndata = odata.Replace("{n}", "\n"); + thClass.GetMethod("set_" + keyname).Invoke(thClass, new object[] { ndata }); + } + } + //171104 없다면 생성 + if (!isExist()) CreateFile(); + return true; + } + + #region "Common " + + public static Boolean ReLoad() + { + return Loading(SelectedLang); + } + private static arUtil.INIHelper iniHelper; + private static string GetINIValue(string key, string def = "") + { + if (!System.IO.File.Exists(Lang.FileName)) + return def; + + string retval = iniHelper.get_Data("lang", key, def); + return retval; + } + private static void SetINIValue(string key, string value) + { + iniHelper.set_Data("lang", key, value); + } + public static Boolean isExist() + { + return System.IO.File.Exists(FileName); + } + + ////local data + private static string _path = ""; + private static string _selectedLang = ""; + public static string SelectedLang + { + get + { + if ((string.IsNullOrWhiteSpace(_selectedLang))) + { + return "kor"; + } + else + { + string fullname = Path + "\\" + _selectedLang + ".ini"; + //if ((!System.IO.File.Exists(fullname))) + //{ + // CreateFile(); + //} + return _selectedLang; + } + } + set { _selectedLang = value; } + } + public static string Path + { + get + { + if (string.IsNullOrWhiteSpace(_path)) + { + _path = AppDomain.CurrentDomain.BaseDirectory + "\\Language"; + if (!System.IO.Directory.Exists(_path)) System.IO.Directory.CreateDirectory(_path); + } + return _path; + } + set { _path = value; } + } + public static List LangList + { + get + { + List retval = new List(); + if ((System.IO.Directory.Exists(Path))) + { + string[] files = System.IO.Directory.GetFiles(Path, "*.ini"); + foreach (string file in files) + { + retval.Add(file.Substring(file.LastIndexOf("\\") + 1)); + } + } + return retval; + } + } + public static string FileName + { + get + { + string fn = Path + "\\" + SelectedLang; + if(fn.ToLower().LastIndexOf(".ini") == -1) fn += ".ini"; + return fn.Replace("\\\\", "\\"); + } + } + #endregion + + + } +} + diff --git a/Handler/Project/Manager/DataBaseManagerCount.cs b/Handler/Project/Manager/DataBaseManagerCount.cs new file mode 100644 index 0000000..d97a1a4 --- /dev/null +++ b/Handler/Project/Manager/DataBaseManagerCount.cs @@ -0,0 +1,369 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Project.Manager +{ + public class DatabaseManagerCount + { + /// + /// 파일검색방법 + /// + public enum eFileSearchMode + { + Normal, + Project, + Model, + MCCode, + Barcode, + All, + } + + public enum eStripSearchResult + { + None, + OK, + NG, + } + + /// + /// 최종파일 + /// + private String LastFileName; + public string dataPath = string.Empty; + + /// + /// 파일디비초기화작업(클라이언트 갯수만큼 버퍼를 확보한다) + /// + public DatabaseManagerCount() + { + LastFileName = string.Empty; + } + + public Boolean UpdateCountDate(DateTime jobStartTime, int shutIndex, int slotIndex, int count = 1) + { + //대상파일을 설정한다. + var fileName = System.IO.Path.Combine(AR.SETTING.Data.Path_Data, "Count", + jobStartTime.Year.ToString("0000"), + jobStartTime.Month.ToString("00"), + jobStartTime.Day.ToString("00"), + "S" + (shutIndex == 0 ? "F" : "B") + "_" + slotIndex.ToString("0000") + ".xml"); + return UpdateCount(fileName, "", count); + } + + public Boolean UpdateCountDM(string DataMatrix, int count = 1) + { + string ww, seq; + PUB.splitID(DataMatrix, out ww, out seq); + + //대상파일을 설정한다. + try + { + var fileName = ""; + if (seq.Length > 2) + { + fileName = System.IO.Path.Combine(this.dataPath, "Count", ww, seq.Substring(0, 2), seq + ".xml"); + } + else + fileName = System.IO.Path.Combine(this.dataPath, "Count", ww, seq + ".xml"); + + return UpdateCount(fileName, DataMatrix, count); + } + catch (Exception ex) + { + PUB.log.AddE("UpdateCountDM(" + DataMatrix + ") " + ex.Message); + return false; + } + } + + public enum eCountTarget + { + Year = 0, + Month, + Day + } + + + /// + /// 전체수량을 업데이트 합니다. + /// + public void AddTotalCount(UInt32 New, UInt32 Good, UInt32 Over, UInt32 Err, UInt32 Empty, string modelName) + { + AddTotalCount(eCountTarget.Year, New, Good, Over, Err, Empty, ""); + AddTotalCount(eCountTarget.Month, New, Good, Over, Err, Empty, ""); + AddTotalCount(eCountTarget.Day, New, Good, Over, Err, Empty, ""); + + //모델별로 추가 기록을 해준다 + if (modelName != "") + { + AddTotalCount(eCountTarget.Year, New, Good, Over, Err, Empty, modelName); + AddTotalCount(eCountTarget.Month, New, Good, Over, Err, Empty, modelName); + AddTotalCount(eCountTarget.Day, New, Good, Over, Err, Empty, modelName); + } + + //기존값에 해당값을 누적만 시킨다. + } + private void AddTotalCount(eCountTarget target, UInt32 New, UInt32 good, UInt32 Over, UInt32 Err, UInt32 Empty, string modelName) + { + DateTime dt = DateTime.Now; + var filename = ""; + if (target == eCountTarget.Year) + { + filename = System.IO.Path.Combine(this.dataPath, "Count", + dt.Year.ToString("0000"), "count.xml"); + } + else if (target == eCountTarget.Month) + { + filename = System.IO.Path.Combine(this.dataPath, "Count", + dt.Year.ToString("0000"), + dt.Month.ToString("00"), "count.xml"); + } + else if (target == eCountTarget.Day) + { + filename = System.IO.Path.Combine(this.dataPath, "Count", + dt.Year.ToString("0000"), + dt.Month.ToString("00"), + dt.Day.ToString("00"), "count.xml"); + } + + var keyname = modelName == "" ? "userdata" : modelName; + + //파일이 없다면 생성한다 + var fi = new System.IO.FileInfo(filename); + if (fi.Directory.Exists == false) fi.Directory.Create(); + var xml = new arUtil.XMLHelper(fi.FullName); + if (xml.Exist() == false) xml.CreateFile(); + + var str_new = xml.get_Data(keyname,"cnt_new"); + var str_good = xml.get_Data(keyname, "cnt_good"); + var str_over = xml.get_Data(keyname, "cnt_over"); + var str_empty = xml.get_Data(keyname, "cnt_empty"); + var str_err = xml.get_Data(keyname, "cnt_error"); + if (str_new == "") str_new = "0"; + if (str_good == "") str_good = "0"; + if (str_over == "") str_over = "0"; + if (str_empty == "") str_empty = "0"; + if (str_err == "") str_err = "0"; + + var cnt_New = UInt32.Parse(str_new); + var cnt_good = UInt32.Parse(str_good); + var cnt_Over = UInt32.Parse(str_over); + var cnt_Empty = UInt32.Parse(str_empty); + var cnt_Err = UInt32.Parse(str_err); + + //기존수량에 누적 + cnt_New += New; + cnt_good += good; + cnt_Over += Over; + cnt_Empty += Empty; + cnt_Err += Err; + + //값을 더해서 다시 기록해준다. + xml.set_Data(keyname, "cnt_new", (cnt_New).ToString()); + xml.set_Data(keyname, "cnt_good", cnt_good.ToString()); + xml.set_Data(keyname, "cnt_over", cnt_Over.ToString()); + xml.set_Data(keyname, "cnt_empty", cnt_Empty.ToString()); + xml.set_Data(keyname, "cnt_error", cnt_Err.ToString()); + string msg; + xml.Save(out msg); + } + + public struct eCountData + { + public UInt32 NewCount; + public UInt32 GoodCount; + public UInt32 OverCount; + public UInt32 EmptyCount; + public UInt32 ErrorCount; + public UInt32 TotalCount + { + get + { + return NewCount + GoodCount + OverCount + EmptyCount + ErrorCount; + } + } + public void clear() + { + NewCount = 0; + GoodCount = 0; + OverCount = 0; + EmptyCount = 0; + ErrorCount = 0; + } + } + + public eCountData ReadTotalCount(eCountTarget target,string modelName) + { + var cnt = new eCountData(); + cnt.clear(); + + DateTime dt = DateTime.Now; + var fi = ""; + if (target == eCountTarget.Year) + { + fi = System.IO.Path.Combine(this.dataPath, "Count", + dt.Year.ToString("0000"), "count.xml"); + } + else if (target == eCountTarget.Month) + { + fi = System.IO.Path.Combine(this.dataPath, "Count", + dt.Year.ToString("0000"), + dt.Month.ToString("00"), "count.xml"); + } + else if (target == eCountTarget.Day) + { + fi = System.IO.Path.Combine(this.dataPath, "Count", + dt.Year.ToString("0000"), + dt.Month.ToString("00"), + dt.Day.ToString("00"), "count.xml"); + } + + var appkey = modelName == "" ? "userdata" : modelName; + + //년도데이터가없다면 처리안함 + if (System.IO.File.Exists(fi)) + { + var xmlYear = new arUtil.XMLHelper(fi); + var str_new = xmlYear.get_Data(appkey,"cnt_new"); + var str_good = xmlYear.get_Data(appkey, "cnt_good"); + var str_over = xmlYear.get_Data(appkey, "cnt_over"); + var str_empty = xmlYear.get_Data(appkey, "cnt_empty"); + var str_err = xmlYear.get_Data(appkey, "cnt_error"); + + if (str_new == "") str_new = "0"; + if (str_good == "") str_good = "0"; + if (str_over == "") str_over = "0"; + if (str_empty == "") str_empty = "0"; + if (str_err == "") str_err = "0"; + + cnt.NewCount = UInt32.Parse(str_new); + cnt.GoodCount = UInt32.Parse(str_good); + cnt.OverCount = UInt32.Parse(str_over); + cnt.EmptyCount = UInt32.Parse(str_empty); + cnt.ErrorCount = UInt32.Parse(str_err); + } + + return cnt; + } + + //해다 자료가 있다면 수량을 올려주고, 그렇지 않다면 파일을 생성해준다. + private Boolean UpdateCount(string fileName, string DataMatrix, int count = 1) + { + var fi = new System.IO.FileInfo(fileName); + + try + { + var xml = new arUtil.XMLHelper(fileName); + var newCount = count; + if (fi.Exists == false) + { + //신규이다 + if (fi.Directory.Exists == false) fi.Directory.Create(); + + //생성해서 추가한다 + xml.CreateFile(); + xml.set_Data("id", DataMatrix); + newCount = 2; + } + else + { + //기존에 있으므로 수량을 읽어서 증가시킨다. + int curCnt; + var cntStr = xml.get_Data("count"); + if (int.TryParse(cntStr, out curCnt) == false) + { + curCnt = 2; + PUB.log.AddE("기존 사용수량 읽기 실패 카운트문자=" + cntStr + "기본값(1)으로 설정"); + } + newCount = curCnt + newCount; + } + xml.set_Data("count", newCount.ToString()); + + //이수량입력되는 시점의 데이터를 기록한다 200117 + string saveMssage; + xml.set_Data("History" + newCount.ToString("000"), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); + xml.Save(out saveMssage); + + LastFileName = fileName; + return true; + } + catch + { + return false; + } + } + + + /// + /// 지정된 파일의 모든 내용을 읽어서 DataTable 로 반환합니다. + /// + /// + /// + public Dictionary GetDatas(int sYear, int sWorkWeek, int eYear, int eWorkWeek, string searchDataMatrix = "") + { + var retval = new Dictionary(); + //모든파일을 대상으로한다. + + List retfiles = new List(); + + //날짜사이의 모든 파일을 대상으로해야함 + int sy = sYear; + int ey = eYear; + int sw = sWorkWeek; + int ew = eWorkWeek; + + int eym = ey * 100 + ew; + int sym = sy * 100 + sw; + + Boolean endtast = false; + for (int y = sy; y <= ey; y++) + { + var yPath = System.IO.Path.Combine(dataPath, "Count", y.ToString("0000")); + if (System.IO.Directory.Exists(yPath) == false) continue; + + for (int w = 1; w <= 50; w++) + { + var ym = y * 100 + w; + if (ym == eym) endtast = true; //마지막 날짜이다. + if (ym < sym) continue; //이전 WW는 넘어간다 + + var path = new System.IO.DirectoryInfo(System.IO.Path.Combine(yPath, w.ToString("00"))); + if (path.Exists == false) continue; //경로가 없다면 처리하지 않음 + + //검색할 파일 혹은 조건을 생성 + var searchFileName = (searchDataMatrix == "") ? "*.xml" : (searchDataMatrix + ".xml"); + + var files = path.GetFiles(searchFileName, System.IO.SearchOption.TopDirectoryOnly); + foreach (var file in files) + { + try + { + var xml = new arUtil.XMLHelper(file.FullName); + var id = xml.get_Data("id"); + int curCnt; + var cntStr = xml.get_Data("count"); + if (int.TryParse(cntStr, out curCnt) == false) + { + curCnt = 1; + PUB.log.AddE("기존 사용수량 읽기 실패 카운트문자=" + cntStr + "기본값(1)으로 설정"); + } + retval.Add(id, curCnt); + } + catch (Exception ex) + { + PUB.log.AddE("database count getdata" + ex.Message); + } + } + + if (endtast) + break; // TODO: might not be correct. Was : Exit For + } + if (endtast) + break; // TODO: might not be correct. Was : Exit For + } + return retval; + } + + } +} diff --git a/Handler/Project/Manager/DatabaseManagerHistory.cs b/Handler/Project/Manager/DatabaseManagerHistory.cs new file mode 100644 index 0000000..bbab522 --- /dev/null +++ b/Handler/Project/Manager/DatabaseManagerHistory.cs @@ -0,0 +1,333 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Project.Manager +{ + //public class DatabaseManagerHistory + //{ + // /// + // /// 최종파일 + // /// + // private String LastFileName; + // // private DataSet1.ResultDataDataTable dt; + // private string baseDirName = "History"; + + // /// + // /// 파일디비초기화작업(클라이언트 갯수만큼 버퍼를 확보한다) + // /// + // public DatabaseManagerHistory(string basedirbname = "History") + // { + // LastFileName = string.Empty; + // //dt = new DataSet1.ResultDataDataTable(); + // baseDirName = basedirbname; + // } + + // /// + // /// JOB데이터를 작업기록에 추가한다 + // /// + // /// + // /// + // public Boolean Add(Class.JobData job) + // { + // //작업기록은 별도 xml 에 데이터를 넣는다 + // var newdr = this.dt.NewResultDataRow(); + + + // newdr.model_motion = Pub.Result.mModel.Title; + // newdr.model_device = Pub.Result.vModel.Title; + // newdr.time_jobs = job.JobStart; + // newdr.time_jobe = job.JobEnd; + // newdr.runtime_job = job.JobRun.TotalSeconds; + + // newdr.info_filename = string.Empty; //이 값을 파일불러올떄 자동생성됨 + + // newdr.info_message = job.Message; + // newdr.info_imagel = job.VisionData.FileNameL; + // newdr.info_imageu = job.VisionData.FileNameU; + // newdr.info_portpos = job.PortPos; + // newdr.info_printpos = job.PrintPos; + // newdr.info_angle = job.VisionData.Angle; + // newdr.info_inputraw = job.VisionData.QRInputRaw; + // newdr.info_outputraw = job.VisionData.QROutRaw; + // newdr.info_rid = job.VisionData.RID; + // newdr.info_sid = job.VisionData.SID; + // newdr.info_lot = job.VisionData.VLOT; + // newdr.info_mfgdate = job.VisionData.MFGDATE; + // newdr.info_manu = job.VisionData.MANU; + // if (job.VisionData.QTY.isEmpty()) newdr.info_qty = -1; + // else newdr.info_qty = int.Parse(job.VisionData.QTY); + + // this.dt.AddResultDataRow(newdr); + // try + // { + // Flush(); //파일에 실제저장한다. + // return true; + // } + // catch (Exception ex) + // { + // Pub.log.AddE("history data add" + ex.Message); + // return false; + // } + // } + + // //해당 결과를 버퍼에 추가한다. + // public Boolean Add(DataSet1.ResultDataRow dataRow, Boolean autoFlush = false) + // { + // //입력된 자료를 복사해서 버퍼에 넣는다. + // var newdr = this.dt.NewResultDataRow(); + // foreach (string col in getDataColumnList()) + // { + // if (col.ToLower() == "idx") continue; + // newdr[col] = dataRow[col]; + // } + // this.dt.AddResultDataRow(newdr); + + // try + // { + // Flush(); //파일에 실제저장한다. + // return true; + // } + // catch (Exception ex) + // { + // Pub.log.AddE("history data add" + ex.Message); + // return false; + // } + + // } + + // /// + // /// 신규파일을 생성합니다. + // /// + // /// + // void MakeFile(string filename) + // { + // //파일이없다면 헤더를 만들어준다. + // var cols = getDataColumnList(); + // var headerstr = string.Join("\t", cols); + // System.IO.File.WriteAllText(filename, headerstr, System.Text.Encoding.UTF8); + // } + + // /// + // /// 저장해야할 컬럼명을 반환한다.(idx는 제외한다) + // /// + // /// + // public string[] getDataColumnList() + // { + // //저장하고자하는 순서를 미리 지정한다.(지정안된 자료는 알아서 저장된다) + // string[] reserveCols = new string[] { }; + // List cols = new List(); + // cols.AddRange(reserveCols); + + // for (int i = 0; i < this.dt.Columns.Count; i++) + // { + // string colname = dt.Columns[i].ColumnName; + // if (colname.ToLower() == "idx") continue; //제외한다 + // if (reserveCols.Contains(colname)) continue; + // cols.Add(colname); + // } + // return cols.ToArray(); + // } + + // public string GetFileName(DateTime time_jobs, string jobseqdate, string jobseqno) + // { + // var saveFileName = System.IO.Path.Combine(COMM.SETTING.Data.Path_Data, baseDirName, + // time_jobs.Year.ToString("0000"), + // time_jobs.Month.ToString("00"), + // time_jobs.Day.ToString("00"), + // string.Format("{0}_{1}_{2}", jobseqdate, jobseqno, time_jobs.ToString("HHmmss"))); + // return saveFileName; + // } + + // public void Flush() + // { + // //데이터가없다면 처리하지 않음 + // if (this.dt.Rows.Count < 1) return; + + // //쓸데이터를 모두 버퍼에 밀어넣는다. + + // foreach (DataSet1.ResultDataRow dr in dt.Rows) + // { + // if (dr.RowState == System.Data.DataRowState.Deleted || dr.RowState == System.Data.DataRowState.Detached) continue; + + // //lot date check + // //if (dr.time_lotstart.Year == 1982) dr.time_lotstart = DateTime.Now; + + // //작업이 종료된 시간을 기준으로 파일을 생성한다. + // // if (dr.info_lot.isEmpty()) dr.info_lot = "NoLot"; + // //if (dr.info_stripid.isEmpty()) dr.info_stripid = "S" + dr.time_pcbstart.ToString("yyyyMMddHHmmss"); + + // //string curdatestr = string.Format("{0:0000}\\{1:00}\\{2:00}\\{3}\\{4}", + // // dr.time_lotstart.Year, dr.time_lotstart.Month, dr.time_lotstart.Day, dr.info_lot,dr.info_stripid); + + // //작업이 시작한 시간으로 데이터 파일을 저장해야함 + // var saveFileName = System.IO.Path.Combine(COMM.SETTING.Data.Path_Data, baseDirName, + // dr.time_jobs.Year.ToString("0000"), + // dr.time_jobs.Month.ToString("00"), + // dr.time_jobs.Day.ToString("00"), + // string.Format("{0}.tab", dr.time_jobs.ToString("HH"))); + + // dr.info_filename = saveFileName; + // dr.EndEdit(); + + // //저장할 파일 체크 + // System.IO.FileInfo fi = new System.IO.FileInfo(saveFileName); + + // //폴더새엇ㅇ + // if (!fi.Directory.Exists) fi.Directory.Create(); + + // //파일없는경우 헤더생성 + // if (!fi.Exists) MakeFile(fi.FullName); + + // //파일에기록 + // try + // { + // //general info + // //파일의 내용을 탭으로 분리되게 저장한다 + // //var xml = new arUtil.XMLHelper(fi.FullName); + // var cols = this.getDataColumnList(); + // List buffer = new List(); + // foreach (var col in cols) + // { + // var dc = dt.Columns[col]; + // if (dc.ColumnName.ToLower() == "idx") continue; + // if (dc.ColumnName.ToLower() == "info_filename") continue; + // var colname = dc.ColumnName.Split('_'); + // var data = dr[dc.ColumnName]; + // if (colname[0].ToLower() == "time") + // { + // string date_value = ""; + // if (data != null && data != DBNull.Value) + // date_value = ((DateTime)data).ToString("yyyy-MM-dd HH:mm:ss"); + // buffer.Add(date_value); //xml.set_Data(colname[0], colname[1], date_value); + // } + // else + // { + // if (data != null && data != DBNull.Value) + // buffer.Add(data.ToString());// xml.set_Data(colname[0], colname[1], data.ToString()); + // else + // buffer.Add("");// xml.set_Data(colname[0], colname[1], ""); + // } + // } + // string savemsg; + // // xml.Save(out savemsg); + // System.IO.File.AppendAllText(fi.FullName, "\r\n" + string.Join("\t", buffer), System.Text.Encoding.UTF8); + // } + // catch (Exception ex) + // { + // Pub.log.AddE("DBMAN:FLUSH:" + ex.Message); + // return; + // } + + // Pub.log.Add("DATABASE", string.Format("◆ Data Saved : {0}", fi.Name)); + // } + + // dt.Clear(); + // dt.AcceptChanges(); + // } + + // /// + // /// 지정된 파일의 모든 내용을 읽어서 DataTable 로 반환합니다. + // /// + // /// + // /// + // public DataSet1.ResultDataDataTable GetDatas(List files) + // { + // DataSet1.ResultDataDataTable retval = new DataSet1.ResultDataDataTable(); + // //모든파일을 대상으로한다. + + // foreach (var file in files) + // { + // var newdr = retval.NewResultDataRow(); + + // arUtil.XMLHelper xml = new arUtil.XMLHelper(file.FullName); + // foreach (System.Data.DataColumn col in retval.Columns) + // { + // if (col.ColumnName.ToLower() == "idx") continue; + // if (col.ColumnName.ToLower() == "filename") continue; + // var colbuf = col.ColumnName.Split('_'); + + // var readstr = xml.get_Data(colbuf[0], colbuf[1]); + // if (col.DataType == typeof(DateTime)) + // { + // if (readstr != "") + // { + // DateTime dt; + // if (DateTime.TryParse(readstr, out dt)) + // newdr[col.ColumnName] = dt; + // } + // } + // else + // { + // if (readstr.isEmpty() == false) + // newdr[col.ColumnName] = readstr; + // } + // } + // newdr.info_filename = file.FullName; + // retval.AddResultDataRow(newdr); + // } + + + // retval.AcceptChanges(); + // return retval; + // } + + + + // /// + // /// 지정된 기간사이의 파일명을 반환합니다. + // /// + // /// 검색시작일(시간은 적용안함) + // /// 검색종료일(시간은 적용안함) + // /// 검색필터 + // /// 장치번호 + // /// 검색바코드 + // /// + // public List Getfiles(DateTime sdate, DateTime edate) + // { + // List retfiles = new List(); + // //날짜사이의 모든 파일을 대상으로해야함 + + // string sd = sdate.ToShortDateString(); + // string ed = edate.ToShortDateString(); + + // int sy = sdate.Year; + // int ey = edate.Year; + // int sm = sdate.Month; + // int em = edate.Month; + // int sday = sdate.Day; + // int eday = edate.Day; + + // Boolean endtast = false; + // for (int y = sy; y <= ey; y++) + // { + // for (int m = 1; m <= 12; m++) + // { + // for (int d = 1; d <= 31; d++) + // { + // string daystr = string.Format("{0:0000}-{1:00}-{2:00}", y, m, d); + // if (ed == daystr) endtast = true; //마지막 날짜이다. + + // if (y == sy && m < sm) continue; //시작년도 시작월 이전의 자료라면 넘어간다. + // else if (y == sy && m == sm && d < sday) continue; //시작년도 시작월 시작일 이전의 자료라면 넘어간다. + + // var path = new System.IO.DirectoryInfo( + // System.IO.Path.Combine(COMM.SETTING.Data.Path_Data, baseDirName, daystr.Replace("-", "\\"))); + // if (path.Exists == false) continue; + // var files = path.GetFiles("*.xml", System.IO.SearchOption.TopDirectoryOnly); + // if (files != null && files.Length > 0) retfiles.AddRange(files.OrderBy(t => t.Name).ToList()); + + // if (endtast) + // break; // TODO: might not be correct. Was : Exit For + // } + // if (endtast) + // break; // TODO: might not be correct. Was : Exit For + // } + // if (endtast) + // break; // TODO: might not be correct. Was : Exit For + // } + // return retfiles; + // } + //} +} diff --git a/Handler/Project/Manager/DatabaseManagerSIDHistory.cs b/Handler/Project/Manager/DatabaseManagerSIDHistory.cs new file mode 100644 index 0000000..06dd8aa --- /dev/null +++ b/Handler/Project/Manager/DatabaseManagerSIDHistory.cs @@ -0,0 +1,276 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Project.Manager +{ + public class DatabaseManagerSIDHistory + { + /// + /// 최종파일 + /// + private String LastFileName; + private DataSet1.SIDHistoryDataTable dt; + private string baseDirName; + + /// + /// 파일디비초기화작업(클라이언트 갯수만큼 버퍼를 확보한다) + /// + public DatabaseManagerSIDHistory(string basedirbname = "HistorySID") + { + LastFileName = string.Empty; + dt = new DataSet1.SIDHistoryDataTable(); + baseDirName = basedirbname; + } + + //해당 결과를 버퍼에 추가한다. + public Boolean Add(DataSet1.SIDHistoryRow dataRow, Boolean autoFlush = false) + { + //입력된 자료를 복사해서 버퍼에 넣는다. + var newdr = this.dt.NewSIDHistoryRow(); + foreach (string col in getDataColumnList()) + { + if (col.ToLower() == "idx") continue; + newdr[col] = dataRow[col]; + } + this.dt.AddSIDHistoryRow(newdr); + + try + { + Flush(); //파일에 실제저장한다. + return true; + } + catch (Exception ex) + { + PUB.log.AddE("history data add" + ex.Message); + return false; + } + + } + + /// + /// 신규파일을 생성합니다. + /// + /// + void MakeFile(string filename) + { + //파일이없다면 헤더를 만들어준다. + var xml = new arUtil.XMLHelper(filename); + xml.CreateFile(); + } + + /// + /// 저장해야할 컬럼명을 반환한다.(idx는 제외한다) + /// + /// + public string[] getDataColumnList() + { + //저장하고자하는 순서를 미리 지정한다.(지정안된 자료는 알아서 저장된다) + string[] reserveCols = new string[] { }; + List cols = new List(); + cols.AddRange(reserveCols); + + for (int i = 0; i < this.dt.Columns.Count; i++) + { + string colname = dt.Columns[i].ColumnName; + if (reserveCols.Contains(colname)) continue; + cols.Add(colname); + } + return cols.ToArray(); + } + + public string GetFileName(string jobseqdate, string jobseqno, string sid) + { + var saveFileName = System.IO.Path.Combine(AR.SETTING.Data.Path_Data, baseDirName, + jobseqdate.Substring(0, 4), + jobseqdate.Substring(4, 2), + jobseqdate.Substring(6, 2), + string.Format("{0}_{1}_{2}", jobseqdate, jobseqno, sid)); + return saveFileName; + } + + public void Flush() + { + //데이터가없다면 처리하지 않음 + if (this.dt.Rows.Count < 1) return; + + //쓸데이터를 모두 버퍼에 밀어넣는다. + + foreach (DataSet1.SIDHistoryRow dr in dt.Rows) + { + if (dr.RowState == System.Data.DataRowState.Deleted || dr.RowState == System.Data.DataRowState.Detached) continue; + + //lot date check + //if (dr.time_lotstart.Year == 1982) dr.time_lotstart = DateTime.Now; + + //작업이 종료된 시간을 기준으로 파일을 생성한다. + // if (dr.info_lot.isEmpty()) dr.info_lot = "NoLot"; + //if (dr.info_stripid.isEmpty()) dr.info_stripid = "S" + dr.time_pcbstart.ToString("yyyyMMddHHmmss"); + + //string curdatestr = string.Format("{0:0000}\\{1:00}\\{2:00}\\{3}\\{4}", + // dr.time_lotstart.Year, dr.time_lotstart.Month, dr.time_lotstart.Day, dr.info_lot,dr.info_stripid); + + //작업이 시작한 시간으로 데이터 파일을 저장해야함 + var saveFileName = System.IO.Path.Combine(AR.SETTING.Data.Path_Data, baseDirName, + dr.seqdate.Substring(0, 4), + dr.seqdate.Substring(4, 2), + dr.seqdate.Substring(6, 2), + string.Format("{0}_{1}_{2}.csv", dr.seqdate, dr.seqno, dr.sid)); + + + dr.EndEdit(); + + //저장할 파일 체크 + System.IO.FileInfo fi = new System.IO.FileInfo(saveFileName); + + //폴더새엇ㅇ + if (!fi.Directory.Exists) fi.Directory.Create(); + + //파일없는경우 헤더생성 + // if (!fi.Exists) MakeFile(fi.FullName); + + //파일에기록 + try + { + //general info + //데이터는 csv 형태로 저장한다 + var line = string.Format("{2},{0},{1},{3}\r\n", dr.rid, dr.qty, dr.time.ToString("yyyy-MM-dd HH:mm:ss"), dr.rev); + System.IO.File.AppendAllText(fi.FullName, line, System.Text.Encoding.UTF8); + } + catch (Exception ex) + { + PUB.log.AddE("DBMAN:FLUSH:" + ex.Message); + return; + } + + PUB.log.Add("DATABASE", string.Format("◆ Data Saved : {0}", fi.Name)); + } + + dt.Clear(); + dt.AcceptChanges(); + } + + + /// + /// 지정된 파일의 모든 내용을 읽어서 DataTable 로 반환합니다. + /// + /// + /// + public DataSet1.SIDHistoryDataTable GetDatas(System.IO.FileInfo[] files) + { + DataSet1.SIDHistoryDataTable retval = new DataSet1.SIDHistoryDataTable(); + //모든파일을 대상으로한다. + + if (files != null && files.Count() > 0) + { + foreach (var file in files) + { + + + var lines = System.IO.File.ReadAllLines(file.FullName, System.Text.Encoding.UTF8); + foreach (var line in lines) + { + var onlyName = file.Name.Replace(file.Extension, "").Split('_'); + if (String.IsNullOrEmpty(line.Trim())) continue; + var buf = line.Split(','); + + var newdr = retval.NewSIDHistoryRow(); + newdr.seqdate = onlyName[0]; + newdr.seqno = onlyName[1]; + newdr.sid = onlyName[2]; + + newdr.time = DateTime.Parse(buf[0]); + newdr.rid = buf[1]; + + int qty, rev; + if (int.TryParse(buf[2], out qty)) newdr.qty = qty; + else newdr.qty = 0; + if (buf.Length > 3 && int.TryParse(buf[3], out rev)) newdr.rev = rev; + else newdr.rev = 0; + + //newdr.qty = int.Parse(buf[2]); + //newdr.rev = int.Parse(buf[3]); + + retval.AddSIDHistoryRow(newdr); + } + + } + + } + + + retval.AcceptChanges(); + return retval; + } + + public System.IO.FileInfo[] Getfiles(string seqdate, string seqno) + { + var path = System.IO.Path.Combine(AR.SETTING.Data.Path_Data, baseDirName, + seqdate.Substring(0, 4), + seqdate.Substring(4, 2), + seqdate.Substring(6, 2)); + + var di = new System.IO.DirectoryInfo(path); + if (di.Exists == false) return null; + else return di.GetFiles(string.Format("{0}_{1}_*.csv", seqdate, seqno)); + } + + + + /// + /// 지정된 기간사이의 파일명을 반환합니다. + /// + /// 검색시작일(시간은 적용안함) + /// 검색종료일(시간은 적용안함) + /// 검색필터 + /// 장치번호 + /// 검색바코드 + /// + //public List Getfiles(DateTime sdate, DateTime edate) + //{ + // List retfiles = new List(); + // //날짜사이의 모든 파일을 대상으로해야함 + + // string sd = sdate.ToShortDateString(); + // string ed = edate.ToShortDateString(); + + // int sy = sdate.Year; + // int ey = edate.Year; + // int sm = sdate.Month; + // int em = edate.Month; + // int sday = sdate.Day; + // int eday = edate.Day; + + // Boolean endtast = false; + // for (int y = sy; y <= ey; y++) + // { + // for (int m = 1; m <= 12; m++) + // { + // for (int d = 1; d <= 31; d++) + // { + // string daystr = string.Format("{0:0000}-{1:00}-{2:00}", y, m, d); + // if (ed == daystr) endtast = true; //마지막 날짜이다. + + // if (y == sy && m < sm) continue; //시작년도 시작월 이전의 자료라면 넘어간다. + // else if (y == sy && m == sm && d < sday) continue; //시작년도 시작월 시작일 이전의 자료라면 넘어간다. + + // var path = new System.IO.DirectoryInfo( + // System.IO.Path.Combine(COMM.SETTING.Data.Path_Data, baseDirName, daystr.Replace("-", "\\"))); + // if (path.Exists == false) continue; + // var files = path.GetFiles("*.csv", System.IO.SearchOption.TopDirectoryOnly); + // if (files != null && files.Length > 0) retfiles.AddRange(files.OrderBy(t => t.Name).ToList()); + + // if (endtast) + // break; // TODO: might not be correct. Was : Exit For + // } + // if (endtast) + // break; // TODO: might not be correct. Was : Exit For + // } + // if (endtast) + // break; // TODO: might not be correct. Was : Exit For + // } + // return retfiles; + //} + } +} diff --git a/Handler/Project/Manager/ModelManager.cs b/Handler/Project/Manager/ModelManager.cs new file mode 100644 index 0000000..ae9bacb --- /dev/null +++ b/Handler/Project/Manager/ModelManager.cs @@ -0,0 +1,504 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.IO; +using AR; + +namespace Project.Manager +{ + public class ModelManager + { + public DataSet1 dataSet; + readonly private string fn_ModelV; + readonly private string fn_ModelM; + readonly private string fn_Error; + readonly private string fn_Input; + readonly private string fn_Output; + + public ModelManager(string fnVision, string fnMachine, string fnError, string fnInput, string fnOutput) + { + this.fn_ModelV = fnVision; + this.fn_ModelM = fnMachine; + this.fn_Error = fnError; + this.fn_Input = fnInput; + this.fn_Output = fnOutput; + + dataSet = new DataSet1(); + } + public void LoadModelE() + { + //set filename + string filename = fn_Error; + + //read file + var fi = new FileInfo(filename); + if (fi.Exists == false) + { + PUB.log.AddE("▣ No Load Model(Error)-Data)"); + return; + } + dataSet.ErrorDescription.Clear(); + dataSet.ErrorDescription.ReadXml(fi.FullName); + dataSet.ErrorDescription.AcceptChanges(); + } + public void LoadModelV() + { + //set filename + string filename = fn_ModelV; + int lineCount = 0; + string buffer = string.Empty; + + //read file + var fi = new FileInfo(filename); + if (fi.Exists == false) + { + PUB.log.AddE("▣ No Load Model(Vision)-Data)"); + return; + } + + lineCount = 0; + try + { + buffer = System.IO.File.ReadAllText(fi.FullName, System.Text.Encoding.Default); + } + catch (Exception ex) + { + buffer = string.Empty; + PUB.log.AddE(string.Format("Model(Vision) Error File={0},Message={1}", filename, ex.Message)); + return; + } + + //존재하는 컬럼확인을 위해 미리 저장함 + List dbCols = new List(); + foreach (System.Data.DataColumn col in dataSet.OPModel.Columns) + dbCols.Add(col.ColumnName); + + List Cols = new List(); + foreach (string items in buffer.Split('\r')) + { + lineCount += 1; + var line = items.Replace("\r", "").Replace("\n", ""); + if (line.Trim() == "" || line.StartsWith("ver")) continue; //빈줄과 버젼표기는 제거한다. + string[] buf = line.Split(','); + + //첫줄에는 컬럼명이 들어있다. + if (Cols.Count < 1) + { + foreach (string colname in buf) + { + if (colname.isEmpty()) continue; //비어있는값은 처리하지 않는다. + Cols.Add(colname); + } + continue; + } + + //데이터를 각 컬럼에 넣는다. + DataSet1.OPModelRow dr = dataSet.OPModel.NewOPModelRow(); + + //비젼속성은 컬럼명이 v_로 시작한다. + for (int i = 0; i < Cols.Count; i++) //0번은 Mccode이므로 제외한다. + { + try + { + if (dbCols.IndexOf(Cols[i]) == -1) continue; //존재하지 않는 컬럼은 제외한다. + if (Cols[i].ToUpper() == "IDX") continue; + dr[Cols[i]] = buf[i]; + } + catch (Exception ex) + { + PUB.log.AddE("Model(Vision) Load Error:" + ex.Message); + } + } + + //if (dr.TagBarcode.isEmpty()) dr.Delete(); + try + { + if (dr.RowState == System.Data.DataRowState.Detached) dataSet.OPModel.AddOPModelRow(dr);//신규자료일경우에는 추가함 + else if (dr.RowState != System.Data.DataRowState.Deleted) dr.EndEdit(); + } + catch (Exception ex) + { + PUB.log.AddE("Load Model(Vision) file" + ex.Message); + } + } + + dataSet.OPModel.AcceptChanges(); + } + public void LoadModelM() + { + //set filename + string filename = fn_ModelM; + int lineCount = 0; + string buffer = string.Empty; + + //read file + var fi = new FileInfo(filename); + if (fi.Exists == false) + { + PUB.log.AddE("▣ No Load M/C Model-Data)"); + return; + } + + lineCount = 0; + try + { + buffer = System.IO.File.ReadAllText(fi.FullName, System.Text.Encoding.Default); + } + catch (Exception ex) + { + buffer = string.Empty; + PUB.log.AddE(string.Format("M/C ModelData Error File={0},Message={1}", filename, ex.Message)); + return; + } + + //존재하는 컬럼확인을 위해 미리 저장함 + List dbCols = new List(); + foreach (System.Data.DataColumn col in dataSet.MCModel.Columns) + dbCols.Add(col.ColumnName); + + List Cols = new List(); + foreach (string items in buffer.Split('\r')) + { + lineCount += 1; + var line = items.Replace("\r", "").Replace("\n", ""); + if (line.Trim() == "" || line.StartsWith("ver")) continue; //빈줄과 버젼표기는 제거한다. + string[] buf = line.Split('\t'); + + //첫줄에는 컬럼명이 들어있다. + if (Cols.Count < 1) + { + foreach (string colname in buf) + { + if (colname.isEmpty()) continue; //비어있는값은 처리하지 않는다. + Cols.Add(colname); + } + continue; + } + + //데이터를 각 컬럼에 넣는다. + var dr = dataSet.MCModel.NewMCModelRow(); + + //비젼속성은 컬럼명이 v_로 시작한다. + for (int i = 0; i < Cols.Count; i++) //0번은 Mccode이므로 제외한다. + { + try + { + if (dbCols.IndexOf(Cols[i]) == -1) continue; //존재하지 않는 컬럼은 제외한다. + // if (Cols[i].ToUpper() == "IDX") continue; + dr[Cols[i]] = buf[i]; + } + catch (Exception ex) + { + PUB.log.AddE("M/C Model Load Error:" + ex.Message); + } + } + + //if (dr.TagBarcode.isEmpty()) dr.Delete(); + try + { + if (dr.RowState == System.Data.DataRowState.Detached) dataSet.MCModel.AddMCModelRow(dr);//신규자료일경우에는 추가함 + else if (dr.RowState != System.Data.DataRowState.Deleted) dr.EndEdit(); + } + catch (Exception ex) + { + PUB.log.AddE("Load M/C Model Data file" + ex.Message); + } + } + + //자료중 보정 + foreach (var dr in this.dataSet.MCModel) + { + if (dr.IsSpeedAccNull()) dr.SpeedAcc = 100; + if (dr.IsSpeedDccNull()) dr.SpeedDcc = 0; + if (dr.IsSpeedNull()) dr.Speed = 50; + } + dataSet.OPModel.AcceptChanges(); + + } + public void LoadModelI() + { + //set filename + string filename = fn_Input; + + //read file + var fi = new FileInfo(filename); + if (fi.Exists == false) + { + PUB.log.AddE("▣ No Load Model(Error)-Data)"); + return; + } + dataSet.InputDescription.Clear(); + dataSet.InputDescription.ReadXml(fi.FullName); + dataSet.InputDescription.AcceptChanges(); + } + public void LoadModelO() + { + //set filename + string filename = fn_Output; + + //read file + var fi = new FileInfo(filename); + if (fi.Exists == false) + { + PUB.log.AddE("▣ No Load Model(Error)-Data)"); + return; + } + dataSet.OutputDescription.Clear(); + dataSet.OutputDescription.ReadXml(fi.FullName); + dataSet.OutputDescription.AcceptChanges(); + } + + /// + /// project , model read from file + /// + public void Load() + { + //데이터셋 초기화 + if (dataSet == null) dataSet = new DataSet1(); + else dataSet.Clear(); + + //파일로부터 데이터를 읽어들인다. + this.LoadModelV(); + this.LoadModelM(); + this.LoadModelE(); + this.LoadModelI(); + this.LoadModelO(); + this.dataSet.AcceptChanges(); + + var cntP = dataSet.OPModel.Rows.Count; + var cntM = dataSet.MCModel.Rows.Count; + var cntE = dataSet.ErrorDescription.Rows.Count; + var cntI = dataSet.InputDescription.Rows.Count; + var cntO = dataSet.OutputDescription.Rows.Count; + + PUB.log.AddI(string.Format("※ Model Manager : P{0},M{1},E{2},I{3},O:{4}", cntP, cntM, cntE, cntI, cntO)); + } + + //public void Save() + //{ + // this.dataSet.AcceptChanges(); + // System.IO.DirectoryInfo di = new DirectoryInfo(modelPath); + // if (!di.Exists) di.Create(); + // SaveModelM(); + // SaveModelV(); + //} + + public string modelPath + { + get + { + return System.IO.Path.Combine(UTIL.CurrentPath, "Model"); + } + + } + + public void SaveModelM() + { + this.dataSet.MCModel.AcceptChanges(); + var data = new StringBuilder(); + data.AppendLine("ver\t" + "1"); //version + // data.Append("Title"); //첫열에는 Mccode를 넣는다. + + List cols = new List(); + //cols.AddRange(new string[] { "title","idx","pidx"}); + + foreach (System.Data.DataColumn col in this.dataSet.MCModel.Columns) + { + string colname = col.ColumnName.ToLower(); + if (cols.Contains(colname) == true) continue; //이미 존재하면 처리하지 않음 + // if (colname == "idx") continue; //기본열은 제외한다. + cols.Add(col.ColumnName); + } + + //열을 정렬해서 추가한다. + //var bb = cols.OrderBy(t => t); + for (int i = 0; i < cols.Count; i++) + { + var colname = cols[i]; + if (i > 0) data.Append("\t"); + data.Append(colname); + } + data.AppendLine(); + + //output data(글로벌 셋팅하고 MC코드값만 취한다) + foreach (var list in dataSet.MCModel.Rows) + { + var dr = list as DataSet1.MCModelRow; + //bb = cols.OrderBy(t => t); + for (int i = 0; i < cols.Count; i++) + { + var colname = cols[i]; + if (i > 0) data.Append("\t"); + + if (dr[colname] != DBNull.Value) + data.Append(dr[colname].ToString()); + else if ( dataSet.MCModel.Columns[colname].DataType == typeof(Boolean)) + data.Append("False"); + else if (dataSet.MCModel.Columns[colname].DataType == typeof(double) || + dataSet.MCModel.Columns[colname].DataType == typeof(Int32) || + dataSet.MCModel.Columns[colname].DataType == typeof(UInt32) || + dataSet.MCModel.Columns[colname].DataType == typeof(Single) || + dataSet.MCModel.Columns[colname].DataType == typeof(byte) || + dataSet.MCModel.Columns[colname].DataType == typeof(Int16) || + dataSet.MCModel.Columns[colname].DataType == typeof(UInt16)) + { + //숫자는 기본 0으로 처리한다 + data.Append("0"); + } + else data.Append(""); + } + data.AppendLine(); + } + try + { + var mfile = new System.IO.FileInfo(fn_ModelM); + var bakfile = new System.IO.FileInfo(System.IO.Path.Combine(mfile.Directory.FullName, "Backup", "m" + DateTime.Now.ToString("yyyyMMddHHmmss") + mfile.Extension)); + if (bakfile.Exists) bakfile.Delete(); + if (bakfile.Directory.Exists == false) bakfile.Directory.Create(); + if (mfile.Exists) System.IO.File.Copy(mfile.FullName, bakfile.FullName, true); + PUB.log.Add("model backup(motion) : " + bakfile.FullName); + + System.IO.File.WriteAllText(fn_ModelM, data.ToString(), System.Text.Encoding.Default); + PUB.log.AddAT("Save M/C Model Parameter - OK"); + } + catch (Exception ex) + { + UTIL.MsgE("M/C Model Save Error\r\n" + ex.Message); + PUB.log.AddE("M/C Model Save Error :: " + ex.Message); + } + } + + public void SaveModelV() + { + this.dataSet.OPModel.AcceptChanges(); + var data = new StringBuilder(); + data.AppendLine("ver,:" + "1"); //version + data.Append("Title"); //첫열에는 Mccode를 넣는다. + + List cols = new List(); + foreach (System.Data.DataColumn col in this.dataSet.OPModel.Columns) + { + string colname = col.ColumnName.ToLower(); + if (colname == "Memo" || colname == "idx") continue; //기본열은 제외한다. + cols.Add(col.ColumnName); + } + cols.Add("Memo"); + + //열을 정렬해서 추가한다. + var bb = cols.OrderBy(t => t); + foreach (string colname in bb) + data.Append("," + colname); + data.AppendLine(); + + //output data(글로벌 셋팅하고 MC코드값만 취한다) + foreach (var list in dataSet.OPModel.Select("isnull(Title,'') <> ''", "Title")) + { + var dr = list as DataSet1.OPModelRow; + data.Append(dr.Title); //일반셋팅은 mccode 값 그대로 넣는다. + bb = cols.OrderBy(t => t); + foreach (string colname in bb) //지정된 열제목의 데이터를 가져온다. + { + data.Append(","); + if (dr[colname] != DBNull.Value) data.Append(dr[colname].ToString()); + else if (dataSet.OPModel.Columns[colname].DataType == typeof(Boolean)) + data.Append("False"); + else if (dataSet.OPModel.Columns[colname].DataType == typeof(double) || + dataSet.OPModel.Columns[colname].DataType == typeof(Int32) || + dataSet.OPModel.Columns[colname].DataType == typeof(UInt32) || + dataSet.OPModel.Columns[colname].DataType == typeof(Single) || + dataSet.OPModel.Columns[colname].DataType == typeof(byte) || + dataSet.OPModel.Columns[colname].DataType == typeof(Int16) || + dataSet.OPModel.Columns[colname].DataType == typeof(UInt16)) + { + //숫자는 기본 0으로 처리한다 + data.Append("0"); + } + else data.Append("0"); + } + data.AppendLine(); + } + try + { + //기존파일은 백업을 한다. + var mfile = new System.IO.FileInfo(fn_ModelV); + var bakfile = new System.IO.FileInfo(System.IO.Path.Combine(mfile.Directory.FullName, "Backup", "v" + DateTime.Now.ToString("yyyyMMddHHmmss") + mfile.Extension)); + if (bakfile.Exists) bakfile.Delete(); + if (bakfile.Directory.Exists == false) bakfile.Directory.Create(); + if (mfile.Exists) System.IO.File.Copy(mfile.FullName, bakfile.FullName, true); + PUB.log.Add("model backup(vision) : " + bakfile.FullName); + System.IO.File.WriteAllText(fn_ModelV, data.ToString(), System.Text.Encoding.Default); + PUB.log.AddAT("Save Model(Vision) Parameter - OK"); + } + catch (Exception ex) + { + UTIL.MsgE(" Model(Vision) Save Error\r\n" + ex.Message); + PUB.log.AddE(" Model(Vision) Save Error :: " + ex.Message); + } + } + public void SaveModelI() + { + SaveModel(fn_Input, "i", dataSet.InputDescription); + } + public void SaveModelO() + { + SaveModel(fn_Output, "o", dataSet.OutputDescription); + } + public void SaveModelE() + { + SaveModel(fn_Error, "e", dataSet.ErrorDescription); + } + + void SaveModel(string fn, string prefix, System.Data.DataTable dt) + { + dt.AcceptChanges(); + + try + { + var mfile = new System.IO.FileInfo(fn); + var bakfile = new System.IO.FileInfo(System.IO.Path.Combine(mfile.Directory.FullName, "Backup", prefix + DateTime.Now.ToString("yyyyMMddHHmmss") + mfile.Extension)); + if (bakfile.Exists) bakfile.Delete(); + if (bakfile.Directory.Exists == false) bakfile.Directory.Create(); + if (mfile.Exists) System.IO.File.Copy(mfile.FullName, bakfile.FullName, true); + //Pub.log.Add($"model backup({dt.TableName}) : " + bakfile.FullName); + + var savefeil = mfile.FullName; + if (savefeil.EndsWith(".csv")) savefeil = savefeil.Replace(".csv", ".xml"); + + dt.WriteXml(savefeil, true); + //System.IO.File.WriteAllText(savefeil, data.ToString(), System.Text.Encoding.Default); + PUB.log.AddAT($"Save {dt.TableName} Model Parameter - OK"); + } + catch (Exception ex) + { + UTIL.MsgE($"{dt.TableName} Model Save Error\r\n" + ex.Message); + PUB.log.AddE($"{dt.TableName} Model Save Error :: " + ex.Message); + } + } + + /// + /// 지정된 mccode 의 개체를 반환합니다. (없거나 중복일경우 mccode 가 비어있습니다) + /// + /// + /// + public DataSet1.MCModelRow GetDataM(string title) + { + if (title.isEmpty()) return null; + if (dataSet.MCModel == null || dataSet.MCModel.Rows.Count < 1) return null; + var datas = dataSet.MCModel.Where(t => t.Title == title).ToArray(); + if (datas.Length != 1) return null; + return datas[0]; + } + public DataSet1.OPModelRow GetDataV(string title) + { + if (title.isEmpty()) return null; + if (dataSet.OPModel == null || dataSet.OPModel.Rows.Count < 1) return null; + var datas = dataSet.OPModel.Where(t => t.Title == title).ToArray(); + if (datas.Length != 1) return null; + return datas[0]; + } + + + } + +} diff --git a/Handler/Project/Model1.Context.cs b/Handler/Project/Model1.Context.cs new file mode 100644 index 0000000..4d1c40f --- /dev/null +++ b/Handler/Project/Model1.Context.cs @@ -0,0 +1,33 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 템플릿에서 생성되었습니다. +// +// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다. +// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다. +// +//------------------------------------------------------------------------------ + +namespace Project +{ + using System; + using System.Data.Entity; + using System.Data.Entity.Infrastructure; + + public partial class EEEntities : DbContext + { + public EEEntities() + : base("name=EEEntities") + { + } + + protected override void OnModelCreating(DbModelBuilder modelBuilder) + { + throw new UnintentionalCodeFirstException(); + } + + public virtual DbSet Component_Reel_Result { get; set; } + public virtual DbSet Component_Reel_Info { get; set; } + public virtual DbSet Component_Reel_SID_Convert { get; set; } + public virtual DbSet vCustomerList { get; set; } + } +} diff --git a/Handler/Project/Model1.Context.tt b/Handler/Project/Model1.Context.tt new file mode 100644 index 0000000..7b8920f --- /dev/null +++ b/Handler/Project/Model1.Context.tt @@ -0,0 +1,636 @@ +<#@ template language="C#" debug="false" hostspecific="true"#> +<#@ include file="EF6.Utility.CS.ttinclude"#><#@ + output extension=".cs"#><# + +const string inputFile = @"Model1.edmx"; +var textTransform = DynamicTextTransformation.Create(this); +var code = new CodeGenerationTools(this); +var ef = new MetadataTools(this); +var typeMapper = new TypeMapper(code, ef, textTransform.Errors); +var loader = new EdmMetadataLoader(textTransform.Host, textTransform.Errors); +var itemCollection = loader.CreateEdmItemCollection(inputFile); +var modelNamespace = loader.GetModelNamespace(inputFile); +var codeStringGenerator = new CodeStringGenerator(code, typeMapper, ef); + +var container = itemCollection.OfType().FirstOrDefault(); +if (container == null) +{ + return string.Empty; +} +#> +//------------------------------------------------------------------------------ +// +// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine1")#> +// +// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine2")#> +// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine3")#> +// +//------------------------------------------------------------------------------ + +<# + +var codeNamespace = code.VsNamespaceSuggestion(); +if (!String.IsNullOrEmpty(codeNamespace)) +{ +#> +namespace <#=code.EscapeNamespace(codeNamespace)#> +{ +<# + PushIndent(" "); +} + +#> +using System; +using System.Data.Entity; +using System.Data.Entity.Infrastructure; +<# +if (container.FunctionImports.Any()) +{ +#> +using System.Data.Entity.Core.Objects; +using System.Linq; +<# +} +#> + +<#=Accessibility.ForType(container)#> partial class <#=code.Escape(container)#> : DbContext +{ + public <#=code.Escape(container)#>() + : base("name=<#=container.Name#>") + { +<# +if (!loader.IsLazyLoadingEnabled(container)) +{ +#> + this.Configuration.LazyLoadingEnabled = false; +<# +} + +foreach (var entitySet in container.BaseEntitySets.OfType()) +{ + // Note: the DbSet members are defined below such that the getter and + // setter always have the same accessibility as the DbSet definition + if (Accessibility.ForReadOnlyProperty(entitySet) != "public") + { +#> + <#=codeStringGenerator.DbSetInitializer(entitySet)#> +<# + } +} +#> + } + + protected override void OnModelCreating(DbModelBuilder modelBuilder) + { + throw new UnintentionalCodeFirstException(); + } + +<# + foreach (var entitySet in container.BaseEntitySets.OfType()) + { +#> + <#=codeStringGenerator.DbSet(entitySet)#> +<# + } + + foreach (var edmFunction in container.FunctionImports) + { + WriteFunctionImport(typeMapper, codeStringGenerator, edmFunction, modelNamespace, includeMergeOption: false); + } +#> +} +<# + +if (!String.IsNullOrEmpty(codeNamespace)) +{ + PopIndent(); +#> +} +<# +} +#> +<#+ + +private void WriteFunctionImport(TypeMapper typeMapper, CodeStringGenerator codeStringGenerator, EdmFunction edmFunction, string modelNamespace, bool includeMergeOption) +{ + if (typeMapper.IsComposable(edmFunction)) + { +#> + + [DbFunction("<#=edmFunction.NamespaceName#>", "<#=edmFunction.Name#>")] + <#=codeStringGenerator.ComposableFunctionMethod(edmFunction, modelNamespace)#> + { +<#+ + codeStringGenerator.WriteFunctionParameters(edmFunction, WriteFunctionParameter); +#> + <#=codeStringGenerator.ComposableCreateQuery(edmFunction, modelNamespace)#> + } +<#+ + } + else + { +#> + + <#=codeStringGenerator.FunctionMethod(edmFunction, modelNamespace, includeMergeOption)#> + { +<#+ + codeStringGenerator.WriteFunctionParameters(edmFunction, WriteFunctionParameter); +#> + <#=codeStringGenerator.ExecuteFunction(edmFunction, modelNamespace, includeMergeOption)#> + } +<#+ + if (typeMapper.GenerateMergeOptionFunction(edmFunction, includeMergeOption)) + { + WriteFunctionImport(typeMapper, codeStringGenerator, edmFunction, modelNamespace, includeMergeOption: true); + } + } +} + +public void WriteFunctionParameter(string name, string isNotNull, string notNullInit, string nullInit) +{ +#> + var <#=name#> = <#=isNotNull#> ? + <#=notNullInit#> : + <#=nullInit#>; + +<#+ +} + +public const string TemplateId = "CSharp_DbContext_Context_EF6"; + +public class CodeStringGenerator +{ + private readonly CodeGenerationTools _code; + private readonly TypeMapper _typeMapper; + private readonly MetadataTools _ef; + + public CodeStringGenerator(CodeGenerationTools code, TypeMapper typeMapper, MetadataTools ef) + { + ArgumentNotNull(code, "code"); + ArgumentNotNull(typeMapper, "typeMapper"); + ArgumentNotNull(ef, "ef"); + + _code = code; + _typeMapper = typeMapper; + _ef = ef; + } + + public string Property(EdmProperty edmProperty) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2} {{ {3}get; {4}set; }}", + Accessibility.ForProperty(edmProperty), + _typeMapper.GetTypeName(edmProperty.TypeUsage), + _code.Escape(edmProperty), + _code.SpaceAfter(Accessibility.ForGetter(edmProperty)), + _code.SpaceAfter(Accessibility.ForSetter(edmProperty))); + } + + public string NavigationProperty(NavigationProperty navProp) + { + var endType = _typeMapper.GetTypeName(navProp.ToEndMember.GetEntityType()); + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2} {{ {3}get; {4}set; }}", + AccessibilityAndVirtual(Accessibility.ForNavigationProperty(navProp)), + navProp.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many ? ("ICollection<" + endType + ">") : endType, + _code.Escape(navProp), + _code.SpaceAfter(Accessibility.ForGetter(navProp)), + _code.SpaceAfter(Accessibility.ForSetter(navProp))); + } + + public string AccessibilityAndVirtual(string accessibility) + { + return accessibility + (accessibility != "private" ? " virtual" : ""); + } + + public string EntityClassOpening(EntityType entity) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1}partial class {2}{3}", + Accessibility.ForType(entity), + _code.SpaceAfter(_code.AbstractOption(entity)), + _code.Escape(entity), + _code.StringBefore(" : ", _typeMapper.GetTypeName(entity.BaseType))); + } + + public string EnumOpening(SimpleType enumType) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} enum {1} : {2}", + Accessibility.ForType(enumType), + _code.Escape(enumType), + _code.Escape(_typeMapper.UnderlyingClrType(enumType))); + } + + public void WriteFunctionParameters(EdmFunction edmFunction, Action writeParameter) + { + var parameters = FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef); + foreach (var parameter in parameters.Where(p => p.NeedsLocalVariable)) + { + var isNotNull = parameter.IsNullableOfT ? parameter.FunctionParameterName + ".HasValue" : parameter.FunctionParameterName + " != null"; + var notNullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", " + parameter.FunctionParameterName + ")"; + var nullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", typeof(" + TypeMapper.FixNamespaces(parameter.RawClrTypeName) + "))"; + writeParameter(parameter.LocalVariableName, isNotNull, notNullInit, nullInit); + } + } + + public string ComposableFunctionMethod(EdmFunction edmFunction, string modelNamespace) + { + var parameters = _typeMapper.GetParameters(edmFunction); + + return string.Format( + CultureInfo.InvariantCulture, + "{0} IQueryable<{1}> {2}({3})", + AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)), + _typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace), + _code.Escape(edmFunction), + string.Join(", ", parameters.Select(p => TypeMapper.FixNamespaces(p.FunctionParameterType) + " " + p.FunctionParameterName).ToArray())); + } + + public string ComposableCreateQuery(EdmFunction edmFunction, string modelNamespace) + { + var parameters = _typeMapper.GetParameters(edmFunction); + + return string.Format( + CultureInfo.InvariantCulture, + "return ((IObjectContextAdapter)this).ObjectContext.CreateQuery<{0}>(\"[{1}].[{2}]({3})\"{4});", + _typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace), + edmFunction.NamespaceName, + edmFunction.Name, + string.Join(", ", parameters.Select(p => "@" + p.EsqlParameterName).ToArray()), + _code.StringBefore(", ", string.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray()))); + } + + public string FunctionMethod(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption) + { + var parameters = _typeMapper.GetParameters(edmFunction); + var returnType = _typeMapper.GetReturnType(edmFunction); + + var paramList = String.Join(", ", parameters.Select(p => TypeMapper.FixNamespaces(p.FunctionParameterType) + " " + p.FunctionParameterName).ToArray()); + if (includeMergeOption) + { + paramList = _code.StringAfter(paramList, ", ") + "MergeOption mergeOption"; + } + + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2}({3})", + AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)), + returnType == null ? "int" : "ObjectResult<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">", + _code.Escape(edmFunction), + paramList); + } + + public string ExecuteFunction(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption) + { + var parameters = _typeMapper.GetParameters(edmFunction); + var returnType = _typeMapper.GetReturnType(edmFunction); + + var callParams = _code.StringBefore(", ", String.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray())); + if (includeMergeOption) + { + callParams = ", mergeOption" + callParams; + } + + return string.Format( + CultureInfo.InvariantCulture, + "return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction{0}(\"{1}\"{2});", + returnType == null ? "" : "<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">", + edmFunction.Name, + callParams); + } + + public string DbSet(EntitySet entitySet) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} virtual DbSet<{1}> {2} {{ get; set; }}", + Accessibility.ForReadOnlyProperty(entitySet), + _typeMapper.GetTypeName(entitySet.ElementType), + _code.Escape(entitySet)); + } + + public string DbSetInitializer(EntitySet entitySet) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} = Set<{1}>();", + _code.Escape(entitySet), + _typeMapper.GetTypeName(entitySet.ElementType)); + } + + public string UsingDirectives(bool inHeader, bool includeCollections = true) + { + return inHeader == string.IsNullOrEmpty(_code.VsNamespaceSuggestion()) + ? string.Format( + CultureInfo.InvariantCulture, + "{0}using System;{1}" + + "{2}", + inHeader ? Environment.NewLine : "", + includeCollections ? (Environment.NewLine + "using System.Collections.Generic;") : "", + inHeader ? "" : Environment.NewLine) + : ""; + } +} + +public class TypeMapper +{ + private const string ExternalTypeNameAttributeName = @"http://schemas.microsoft.com/ado/2006/04/codegeneration:ExternalTypeName"; + + private readonly System.Collections.IList _errors; + private readonly CodeGenerationTools _code; + private readonly MetadataTools _ef; + + public static string FixNamespaces(string typeName) + { + return typeName.Replace("System.Data.Spatial.", "System.Data.Entity.Spatial."); + } + + public TypeMapper(CodeGenerationTools code, MetadataTools ef, System.Collections.IList errors) + { + ArgumentNotNull(code, "code"); + ArgumentNotNull(ef, "ef"); + ArgumentNotNull(errors, "errors"); + + _code = code; + _ef = ef; + _errors = errors; + } + + public string GetTypeName(TypeUsage typeUsage) + { + return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace: null); + } + + public string GetTypeName(EdmType edmType) + { + return GetTypeName(edmType, isNullable: null, modelNamespace: null); + } + + public string GetTypeName(TypeUsage typeUsage, string modelNamespace) + { + return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace); + } + + public string GetTypeName(EdmType edmType, string modelNamespace) + { + return GetTypeName(edmType, isNullable: null, modelNamespace: modelNamespace); + } + + public string GetTypeName(EdmType edmType, bool? isNullable, string modelNamespace) + { + if (edmType == null) + { + return null; + } + + var collectionType = edmType as CollectionType; + if (collectionType != null) + { + return String.Format(CultureInfo.InvariantCulture, "ICollection<{0}>", GetTypeName(collectionType.TypeUsage, modelNamespace)); + } + + var typeName = _code.Escape(edmType.MetadataProperties + .Where(p => p.Name == ExternalTypeNameAttributeName) + .Select(p => (string)p.Value) + .FirstOrDefault()) + ?? (modelNamespace != null && edmType.NamespaceName != modelNamespace ? + _code.CreateFullName(_code.EscapeNamespace(edmType.NamespaceName), _code.Escape(edmType)) : + _code.Escape(edmType)); + + if (edmType is StructuralType) + { + return typeName; + } + + if (edmType is SimpleType) + { + var clrType = UnderlyingClrType(edmType); + if (!IsEnumType(edmType)) + { + typeName = _code.Escape(clrType); + } + + typeName = FixNamespaces(typeName); + + return clrType.IsValueType && isNullable == true ? + String.Format(CultureInfo.InvariantCulture, "Nullable<{0}>", typeName) : + typeName; + } + + throw new ArgumentException("edmType"); + } + + public Type UnderlyingClrType(EdmType edmType) + { + ArgumentNotNull(edmType, "edmType"); + + var primitiveType = edmType as PrimitiveType; + if (primitiveType != null) + { + return primitiveType.ClrEquivalentType; + } + + if (IsEnumType(edmType)) + { + return GetEnumUnderlyingType(edmType).ClrEquivalentType; + } + + return typeof(object); + } + + public object GetEnumMemberValue(MetadataItem enumMember) + { + ArgumentNotNull(enumMember, "enumMember"); + + var valueProperty = enumMember.GetType().GetProperty("Value"); + return valueProperty == null ? null : valueProperty.GetValue(enumMember, null); + } + + public string GetEnumMemberName(MetadataItem enumMember) + { + ArgumentNotNull(enumMember, "enumMember"); + + var nameProperty = enumMember.GetType().GetProperty("Name"); + return nameProperty == null ? null : (string)nameProperty.GetValue(enumMember, null); + } + + public System.Collections.IEnumerable GetEnumMembers(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + var membersProperty = enumType.GetType().GetProperty("Members"); + return membersProperty != null + ? (System.Collections.IEnumerable)membersProperty.GetValue(enumType, null) + : Enumerable.Empty(); + } + + public bool EnumIsFlags(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + var isFlagsProperty = enumType.GetType().GetProperty("IsFlags"); + return isFlagsProperty != null && (bool)isFlagsProperty.GetValue(enumType, null); + } + + public bool IsEnumType(GlobalItem edmType) + { + ArgumentNotNull(edmType, "edmType"); + + return edmType.GetType().Name == "EnumType"; + } + + public PrimitiveType GetEnumUnderlyingType(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + return (PrimitiveType)enumType.GetType().GetProperty("UnderlyingType").GetValue(enumType, null); + } + + public string CreateLiteral(object value) + { + if (value == null || value.GetType() != typeof(TimeSpan)) + { + return _code.CreateLiteral(value); + } + + return string.Format(CultureInfo.InvariantCulture, "new TimeSpan({0})", ((TimeSpan)value).Ticks); + } + + public bool VerifyCaseInsensitiveTypeUniqueness(IEnumerable types, string sourceFile) + { + ArgumentNotNull(types, "types"); + ArgumentNotNull(sourceFile, "sourceFile"); + + var hash = new HashSet(StringComparer.InvariantCultureIgnoreCase); + if (types.Any(item => !hash.Add(item))) + { + _errors.Add( + new CompilerError(sourceFile, -1, -1, "6023", + String.Format(CultureInfo.CurrentCulture, CodeGenerationTools.GetResourceString("Template_CaseInsensitiveTypeConflict")))); + return false; + } + return true; + } + + public IEnumerable GetEnumItemsToGenerate(IEnumerable itemCollection) + { + return GetItemsToGenerate(itemCollection) + .Where(e => IsEnumType(e)); + } + + public IEnumerable GetItemsToGenerate(IEnumerable itemCollection) where T: EdmType + { + return itemCollection + .OfType() + .Where(i => !i.MetadataProperties.Any(p => p.Name == ExternalTypeNameAttributeName)) + .OrderBy(i => i.Name); + } + + public IEnumerable GetAllGlobalItems(IEnumerable itemCollection) + { + return itemCollection + .Where(i => i is EntityType || i is ComplexType || i is EntityContainer || IsEnumType(i)) + .Select(g => GetGlobalItemName(g)); + } + + public string GetGlobalItemName(GlobalItem item) + { + if (item is EdmType) + { + return ((EdmType)item).Name; + } + else + { + return ((EntityContainer)item).Name; + } + } + + public IEnumerable GetSimpleProperties(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type); + } + + public IEnumerable GetSimpleProperties(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type); + } + + public IEnumerable GetComplexProperties(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type); + } + + public IEnumerable GetComplexProperties(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type); + } + + public IEnumerable GetPropertiesWithDefaultValues(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null); + } + + public IEnumerable GetPropertiesWithDefaultValues(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null); + } + + public IEnumerable GetNavigationProperties(EntityType type) + { + return type.NavigationProperties.Where(np => np.DeclaringType == type); + } + + public IEnumerable GetCollectionNavigationProperties(EntityType type) + { + return type.NavigationProperties.Where(np => np.DeclaringType == type && np.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many); + } + + public FunctionParameter GetReturnParameter(EdmFunction edmFunction) + { + ArgumentNotNull(edmFunction, "edmFunction"); + + var returnParamsProperty = edmFunction.GetType().GetProperty("ReturnParameters"); + return returnParamsProperty == null + ? edmFunction.ReturnParameter + : ((IEnumerable)returnParamsProperty.GetValue(edmFunction, null)).FirstOrDefault(); + } + + public bool IsComposable(EdmFunction edmFunction) + { + ArgumentNotNull(edmFunction, "edmFunction"); + + var isComposableProperty = edmFunction.GetType().GetProperty("IsComposableAttribute"); + return isComposableProperty != null && (bool)isComposableProperty.GetValue(edmFunction, null); + } + + public IEnumerable GetParameters(EdmFunction edmFunction) + { + return FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef); + } + + public TypeUsage GetReturnType(EdmFunction edmFunction) + { + var returnParam = GetReturnParameter(edmFunction); + return returnParam == null ? null : _ef.GetElementType(returnParam.TypeUsage); + } + + public bool GenerateMergeOptionFunction(EdmFunction edmFunction, bool includeMergeOption) + { + var returnType = GetReturnType(edmFunction); + return !includeMergeOption && returnType != null && returnType.EdmType.BuiltInTypeKind == BuiltInTypeKind.EntityType; + } +} + +public static void ArgumentNotNull(T arg, string name) where T : class +{ + if (arg == null) + { + throw new ArgumentNullException(name); + } +} +#> \ No newline at end of file diff --git a/Handler/Project/Model1.Context1.cs b/Handler/Project/Model1.Context1.cs new file mode 100644 index 0000000..ca67c70 --- /dev/null +++ b/Handler/Project/Model1.Context1.cs @@ -0,0 +1,36 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 템플릿에서 생성되었습니다. +// +// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다. +// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다. +// +//------------------------------------------------------------------------------ + +namespace Project +{ + using System; + using System.Data.Entity; + using System.Data.Entity.Infrastructure; + + public partial class EEEntities : DbContext + { + public EEEntities() + : base("name=EEEntities") + { + } + + protected override void OnModelCreating(DbModelBuilder modelBuilder) + { + throw new UnintentionalCodeFirstException(); + } + + public virtual DbSet Component_Reel_Info { get; set; } + public virtual DbSet vCustomerList { get; set; } + public virtual DbSet Component_Reel_Result { get; set; } + public virtual DbSet Component_Reel_SIDConv { get; set; } + public virtual DbSet Component_Reel_CustInfo { get; set; } + public virtual DbSet Component_Reel_CustRule { get; set; } + public virtual DbSet Component_Reel_SIDInfo { get; set; } + } +} diff --git a/Handler/Project/Model1.Designer.cs b/Handler/Project/Model1.Designer.cs new file mode 100644 index 0000000..16981b5 --- /dev/null +++ b/Handler/Project/Model1.Designer.cs @@ -0,0 +1,10 @@ +// 모델 'D:\Source\(4875) 물류 Amkor Reel ID Print & Attach 장비 개발 (STD) - 리시빙\Source\_V2_Handler(EV)(UniConv)_리시빙통합\Project\Model1.edmx'에 대해 T4 코드 생성이 사용됩니다. +// 레거시 코드 생성을 사용하려면 '코드 생성 전략' 디자이너 속성의 값을 +// 'Legacy ObjectContext'로 변경하십시오. 이 속성은 모델이 디자이너에서 열릴 때 +// 속성 창에서 사용할 수 있습니다. + +// 컨텍스트 및 엔터티 클래스가 생성되지 않은 경우 빈 모델을 만들었기 때문일 수도 있지만 +// 사용할 Entity Framework 버전을 선택하지 않았기 때문일 수도 있습니다. 모델에 맞는 컨텍스트 클래스 및 +// 엔터티 클래스를 생성하려면 디자이너에서 모델을 열고 디자이너 화면에서 마우스 오른쪽 단추를 클릭한 +// 다음 '데이터베이스에서 모델 업데이트...', '모델에서 데이터베이스 생성...' 또는 '코드 생성 항목 추가...'를 +// 선택하십시오. \ No newline at end of file diff --git a/Handler/Project/Model1.cs b/Handler/Project/Model1.cs new file mode 100644 index 0000000..593fb34 --- /dev/null +++ b/Handler/Project/Model1.cs @@ -0,0 +1,9 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 템플릿에서 생성되었습니다. +// +// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다. +// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다. +// +//------------------------------------------------------------------------------ + diff --git a/Handler/Project/Model1.edmx b/Handler/Project/Model1.edmx new file mode 100644 index 0000000..b31ffe9 --- /dev/null +++ b/Handler/Project/Model1.edmx @@ -0,0 +1,275 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT + [vCustomerList].[CustCode] AS [CustCode], + [vCustomerList].[CustName] AS [CustName] + FROM [dbo].[vCustomerList] AS [vCustomerList] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Handler/Project/Model1.edmx.diagram b/Handler/Project/Model1.edmx.diagram new file mode 100644 index 0000000..a359a69 --- /dev/null +++ b/Handler/Project/Model1.edmx.diagram @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Handler/Project/Model1.tt b/Handler/Project/Model1.tt new file mode 100644 index 0000000..b0e43c7 --- /dev/null +++ b/Handler/Project/Model1.tt @@ -0,0 +1,733 @@ +<#@ template language="C#" debug="false" hostspecific="true"#> +<#@ include file="EF6.Utility.CS.ttinclude"#><#@ + output extension=".cs"#><# + +const string inputFile = @"Model1.edmx"; +var textTransform = DynamicTextTransformation.Create(this); +var code = new CodeGenerationTools(this); +var ef = new MetadataTools(this); +var typeMapper = new TypeMapper(code, ef, textTransform.Errors); +var fileManager = EntityFrameworkTemplateFileManager.Create(this); +var itemCollection = new EdmMetadataLoader(textTransform.Host, textTransform.Errors).CreateEdmItemCollection(inputFile); +var codeStringGenerator = new CodeStringGenerator(code, typeMapper, ef); + +if (!typeMapper.VerifyCaseInsensitiveTypeUniqueness(typeMapper.GetAllGlobalItems(itemCollection), inputFile)) +{ + return string.Empty; +} + +WriteHeader(codeStringGenerator, fileManager); + +foreach (var entity in typeMapper.GetItemsToGenerate(itemCollection)) +{ + fileManager.StartNewFile(entity.Name + ".cs"); + BeginNamespace(code); +#> +<#=codeStringGenerator.UsingDirectives(inHeader: false)#> +<#=codeStringGenerator.EntityClassOpening(entity)#> +{ +<# + var propertiesWithDefaultValues = typeMapper.GetPropertiesWithDefaultValues(entity); + var collectionNavigationProperties = typeMapper.GetCollectionNavigationProperties(entity); + var complexProperties = typeMapper.GetComplexProperties(entity); + + if (propertiesWithDefaultValues.Any() || collectionNavigationProperties.Any() || complexProperties.Any()) + { +#> + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] + public <#=code.Escape(entity)#>() + { +<# + foreach (var edmProperty in propertiesWithDefaultValues) + { +#> + this.<#=code.Escape(edmProperty)#> = <#=typeMapper.CreateLiteral(edmProperty.DefaultValue)#>; +<# + } + + foreach (var navigationProperty in collectionNavigationProperties) + { +#> + this.<#=code.Escape(navigationProperty)#> = new HashSet<<#=typeMapper.GetTypeName(navigationProperty.ToEndMember.GetEntityType())#>>(); +<# + } + + foreach (var complexProperty in complexProperties) + { +#> + this.<#=code.Escape(complexProperty)#> = new <#=typeMapper.GetTypeName(complexProperty.TypeUsage)#>(); +<# + } +#> + } + +<# + } + + var simpleProperties = typeMapper.GetSimpleProperties(entity); + if (simpleProperties.Any()) + { + foreach (var edmProperty in simpleProperties) + { +#> + <#=codeStringGenerator.Property(edmProperty)#> +<# + } + } + + if (complexProperties.Any()) + { +#> + +<# + foreach(var complexProperty in complexProperties) + { +#> + <#=codeStringGenerator.Property(complexProperty)#> +<# + } + } + + var navigationProperties = typeMapper.GetNavigationProperties(entity); + if (navigationProperties.Any()) + { +#> + +<# + foreach (var navigationProperty in navigationProperties) + { + if (navigationProperty.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many) + { +#> + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] +<# + } +#> + <#=codeStringGenerator.NavigationProperty(navigationProperty)#> +<# + } + } +#> +} +<# + EndNamespace(code); +} + +foreach (var complex in typeMapper.GetItemsToGenerate(itemCollection)) +{ + fileManager.StartNewFile(complex.Name + ".cs"); + BeginNamespace(code); +#> +<#=codeStringGenerator.UsingDirectives(inHeader: false, includeCollections: false)#> +<#=Accessibility.ForType(complex)#> partial class <#=code.Escape(complex)#> +{ +<# + var complexProperties = typeMapper.GetComplexProperties(complex); + var propertiesWithDefaultValues = typeMapper.GetPropertiesWithDefaultValues(complex); + + if (propertiesWithDefaultValues.Any() || complexProperties.Any()) + { +#> + public <#=code.Escape(complex)#>() + { +<# + foreach (var edmProperty in propertiesWithDefaultValues) + { +#> + this.<#=code.Escape(edmProperty)#> = <#=typeMapper.CreateLiteral(edmProperty.DefaultValue)#>; +<# + } + + foreach (var complexProperty in complexProperties) + { +#> + this.<#=code.Escape(complexProperty)#> = new <#=typeMapper.GetTypeName(complexProperty.TypeUsage)#>(); +<# + } +#> + } + +<# + } + + var simpleProperties = typeMapper.GetSimpleProperties(complex); + if (simpleProperties.Any()) + { + foreach(var edmProperty in simpleProperties) + { +#> + <#=codeStringGenerator.Property(edmProperty)#> +<# + } + } + + if (complexProperties.Any()) + { +#> + +<# + foreach(var edmProperty in complexProperties) + { +#> + <#=codeStringGenerator.Property(edmProperty)#> +<# + } + } +#> +} +<# + EndNamespace(code); +} + +foreach (var enumType in typeMapper.GetEnumItemsToGenerate(itemCollection)) +{ + fileManager.StartNewFile(enumType.Name + ".cs"); + BeginNamespace(code); +#> +<#=codeStringGenerator.UsingDirectives(inHeader: false, includeCollections: false)#> +<# + if (typeMapper.EnumIsFlags(enumType)) + { +#> +[Flags] +<# + } +#> +<#=codeStringGenerator.EnumOpening(enumType)#> +{ +<# + var foundOne = false; + + foreach (MetadataItem member in typeMapper.GetEnumMembers(enumType)) + { + foundOne = true; +#> + <#=code.Escape(typeMapper.GetEnumMemberName(member))#> = <#=typeMapper.GetEnumMemberValue(member)#>, +<# + } + + if (foundOne) + { + this.GenerationEnvironment.Remove(this.GenerationEnvironment.Length - 3, 1); + } +#> +} +<# + EndNamespace(code); +} + +fileManager.Process(); + +#> +<#+ + +public void WriteHeader(CodeStringGenerator codeStringGenerator, EntityFrameworkTemplateFileManager fileManager) +{ + fileManager.StartHeader(); +#> +//------------------------------------------------------------------------------ +// +// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine1")#> +// +// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine2")#> +// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine3")#> +// +//------------------------------------------------------------------------------ +<#=codeStringGenerator.UsingDirectives(inHeader: true)#> +<#+ + fileManager.EndBlock(); +} + +public void BeginNamespace(CodeGenerationTools code) +{ + var codeNamespace = code.VsNamespaceSuggestion(); + if (!String.IsNullOrEmpty(codeNamespace)) + { +#> +namespace <#=code.EscapeNamespace(codeNamespace)#> +{ +<#+ + PushIndent(" "); + } +} + +public void EndNamespace(CodeGenerationTools code) +{ + if (!String.IsNullOrEmpty(code.VsNamespaceSuggestion())) + { + PopIndent(); +#> +} +<#+ + } +} + +public const string TemplateId = "CSharp_DbContext_Types_EF6"; + +public class CodeStringGenerator +{ + private readonly CodeGenerationTools _code; + private readonly TypeMapper _typeMapper; + private readonly MetadataTools _ef; + + public CodeStringGenerator(CodeGenerationTools code, TypeMapper typeMapper, MetadataTools ef) + { + ArgumentNotNull(code, "code"); + ArgumentNotNull(typeMapper, "typeMapper"); + ArgumentNotNull(ef, "ef"); + + _code = code; + _typeMapper = typeMapper; + _ef = ef; + } + + public string Property(EdmProperty edmProperty) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2} {{ {3}get; {4}set; }}", + Accessibility.ForProperty(edmProperty), + _typeMapper.GetTypeName(edmProperty.TypeUsage), + _code.Escape(edmProperty), + _code.SpaceAfter(Accessibility.ForGetter(edmProperty)), + _code.SpaceAfter(Accessibility.ForSetter(edmProperty))); + } + + public string NavigationProperty(NavigationProperty navProp) + { + var endType = _typeMapper.GetTypeName(navProp.ToEndMember.GetEntityType()); + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2} {{ {3}get; {4}set; }}", + AccessibilityAndVirtual(Accessibility.ForNavigationProperty(navProp)), + navProp.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many ? ("ICollection<" + endType + ">") : endType, + _code.Escape(navProp), + _code.SpaceAfter(Accessibility.ForGetter(navProp)), + _code.SpaceAfter(Accessibility.ForSetter(navProp))); + } + + public string AccessibilityAndVirtual(string accessibility) + { + return accessibility + (accessibility != "private" ? " virtual" : ""); + } + + public string EntityClassOpening(EntityType entity) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1}partial class {2}{3}", + Accessibility.ForType(entity), + _code.SpaceAfter(_code.AbstractOption(entity)), + _code.Escape(entity), + _code.StringBefore(" : ", _typeMapper.GetTypeName(entity.BaseType))); + } + + public string EnumOpening(SimpleType enumType) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} enum {1} : {2}", + Accessibility.ForType(enumType), + _code.Escape(enumType), + _code.Escape(_typeMapper.UnderlyingClrType(enumType))); + } + + public void WriteFunctionParameters(EdmFunction edmFunction, Action writeParameter) + { + var parameters = FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef); + foreach (var parameter in parameters.Where(p => p.NeedsLocalVariable)) + { + var isNotNull = parameter.IsNullableOfT ? parameter.FunctionParameterName + ".HasValue" : parameter.FunctionParameterName + " != null"; + var notNullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", " + parameter.FunctionParameterName + ")"; + var nullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", typeof(" + TypeMapper.FixNamespaces(parameter.RawClrTypeName) + "))"; + writeParameter(parameter.LocalVariableName, isNotNull, notNullInit, nullInit); + } + } + + public string ComposableFunctionMethod(EdmFunction edmFunction, string modelNamespace) + { + var parameters = _typeMapper.GetParameters(edmFunction); + + return string.Format( + CultureInfo.InvariantCulture, + "{0} IQueryable<{1}> {2}({3})", + AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)), + _typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace), + _code.Escape(edmFunction), + string.Join(", ", parameters.Select(p => TypeMapper.FixNamespaces(p.FunctionParameterType) + " " + p.FunctionParameterName).ToArray())); + } + + public string ComposableCreateQuery(EdmFunction edmFunction, string modelNamespace) + { + var parameters = _typeMapper.GetParameters(edmFunction); + + return string.Format( + CultureInfo.InvariantCulture, + "return ((IObjectContextAdapter)this).ObjectContext.CreateQuery<{0}>(\"[{1}].[{2}]({3})\"{4});", + _typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace), + edmFunction.NamespaceName, + edmFunction.Name, + string.Join(", ", parameters.Select(p => "@" + p.EsqlParameterName).ToArray()), + _code.StringBefore(", ", string.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray()))); + } + + public string FunctionMethod(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption) + { + var parameters = _typeMapper.GetParameters(edmFunction); + var returnType = _typeMapper.GetReturnType(edmFunction); + + var paramList = String.Join(", ", parameters.Select(p => TypeMapper.FixNamespaces(p.FunctionParameterType) + " " + p.FunctionParameterName).ToArray()); + if (includeMergeOption) + { + paramList = _code.StringAfter(paramList, ", ") + "MergeOption mergeOption"; + } + + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2}({3})", + AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)), + returnType == null ? "int" : "ObjectResult<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">", + _code.Escape(edmFunction), + paramList); + } + + public string ExecuteFunction(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption) + { + var parameters = _typeMapper.GetParameters(edmFunction); + var returnType = _typeMapper.GetReturnType(edmFunction); + + var callParams = _code.StringBefore(", ", String.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray())); + if (includeMergeOption) + { + callParams = ", mergeOption" + callParams; + } + + return string.Format( + CultureInfo.InvariantCulture, + "return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction{0}(\"{1}\"{2});", + returnType == null ? "" : "<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">", + edmFunction.Name, + callParams); + } + + public string DbSet(EntitySet entitySet) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} virtual DbSet<{1}> {2} {{ get; set; }}", + Accessibility.ForReadOnlyProperty(entitySet), + _typeMapper.GetTypeName(entitySet.ElementType), + _code.Escape(entitySet)); + } + + public string UsingDirectives(bool inHeader, bool includeCollections = true) + { + return inHeader == string.IsNullOrEmpty(_code.VsNamespaceSuggestion()) + ? string.Format( + CultureInfo.InvariantCulture, + "{0}using System;{1}" + + "{2}", + inHeader ? Environment.NewLine : "", + includeCollections ? (Environment.NewLine + "using System.Collections.Generic;") : "", + inHeader ? "" : Environment.NewLine) + : ""; + } +} + +public class TypeMapper +{ + private const string ExternalTypeNameAttributeName = @"http://schemas.microsoft.com/ado/2006/04/codegeneration:ExternalTypeName"; + + private readonly System.Collections.IList _errors; + private readonly CodeGenerationTools _code; + private readonly MetadataTools _ef; + + public TypeMapper(CodeGenerationTools code, MetadataTools ef, System.Collections.IList errors) + { + ArgumentNotNull(code, "code"); + ArgumentNotNull(ef, "ef"); + ArgumentNotNull(errors, "errors"); + + _code = code; + _ef = ef; + _errors = errors; + } + + public static string FixNamespaces(string typeName) + { + return typeName.Replace("System.Data.Spatial.", "System.Data.Entity.Spatial."); + } + + public string GetTypeName(TypeUsage typeUsage) + { + return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace: null); + } + + public string GetTypeName(EdmType edmType) + { + return GetTypeName(edmType, isNullable: null, modelNamespace: null); + } + + public string GetTypeName(TypeUsage typeUsage, string modelNamespace) + { + return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace); + } + + public string GetTypeName(EdmType edmType, string modelNamespace) + { + return GetTypeName(edmType, isNullable: null, modelNamespace: modelNamespace); + } + + public string GetTypeName(EdmType edmType, bool? isNullable, string modelNamespace) + { + if (edmType == null) + { + return null; + } + + var collectionType = edmType as CollectionType; + if (collectionType != null) + { + return String.Format(CultureInfo.InvariantCulture, "ICollection<{0}>", GetTypeName(collectionType.TypeUsage, modelNamespace)); + } + + var typeName = _code.Escape(edmType.MetadataProperties + .Where(p => p.Name == ExternalTypeNameAttributeName) + .Select(p => (string)p.Value) + .FirstOrDefault()) + ?? (modelNamespace != null && edmType.NamespaceName != modelNamespace ? + _code.CreateFullName(_code.EscapeNamespace(edmType.NamespaceName), _code.Escape(edmType)) : + _code.Escape(edmType)); + + if (edmType is StructuralType) + { + return typeName; + } + + if (edmType is SimpleType) + { + var clrType = UnderlyingClrType(edmType); + if (!IsEnumType(edmType)) + { + typeName = _code.Escape(clrType); + } + + typeName = FixNamespaces(typeName); + + return clrType.IsValueType && isNullable == true ? + String.Format(CultureInfo.InvariantCulture, "Nullable<{0}>", typeName) : + typeName; + } + + throw new ArgumentException("edmType"); + } + + public Type UnderlyingClrType(EdmType edmType) + { + ArgumentNotNull(edmType, "edmType"); + + var primitiveType = edmType as PrimitiveType; + if (primitiveType != null) + { + return primitiveType.ClrEquivalentType; + } + + if (IsEnumType(edmType)) + { + return GetEnumUnderlyingType(edmType).ClrEquivalentType; + } + + return typeof(object); + } + + public object GetEnumMemberValue(MetadataItem enumMember) + { + ArgumentNotNull(enumMember, "enumMember"); + + var valueProperty = enumMember.GetType().GetProperty("Value"); + return valueProperty == null ? null : valueProperty.GetValue(enumMember, null); + } + + public string GetEnumMemberName(MetadataItem enumMember) + { + ArgumentNotNull(enumMember, "enumMember"); + + var nameProperty = enumMember.GetType().GetProperty("Name"); + return nameProperty == null ? null : (string)nameProperty.GetValue(enumMember, null); + } + + public System.Collections.IEnumerable GetEnumMembers(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + var membersProperty = enumType.GetType().GetProperty("Members"); + return membersProperty != null + ? (System.Collections.IEnumerable)membersProperty.GetValue(enumType, null) + : Enumerable.Empty(); + } + + public bool EnumIsFlags(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + var isFlagsProperty = enumType.GetType().GetProperty("IsFlags"); + return isFlagsProperty != null && (bool)isFlagsProperty.GetValue(enumType, null); + } + + public bool IsEnumType(GlobalItem edmType) + { + ArgumentNotNull(edmType, "edmType"); + + return edmType.GetType().Name == "EnumType"; + } + + public PrimitiveType GetEnumUnderlyingType(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + return (PrimitiveType)enumType.GetType().GetProperty("UnderlyingType").GetValue(enumType, null); + } + + public string CreateLiteral(object value) + { + if (value == null || value.GetType() != typeof(TimeSpan)) + { + return _code.CreateLiteral(value); + } + + return string.Format(CultureInfo.InvariantCulture, "new TimeSpan({0})", ((TimeSpan)value).Ticks); + } + + public bool VerifyCaseInsensitiveTypeUniqueness(IEnumerable types, string sourceFile) + { + ArgumentNotNull(types, "types"); + ArgumentNotNull(sourceFile, "sourceFile"); + + var hash = new HashSet(StringComparer.InvariantCultureIgnoreCase); + if (types.Any(item => !hash.Add(item))) + { + _errors.Add( + new CompilerError(sourceFile, -1, -1, "6023", + String.Format(CultureInfo.CurrentCulture, CodeGenerationTools.GetResourceString("Template_CaseInsensitiveTypeConflict")))); + return false; + } + return true; + } + + public IEnumerable GetEnumItemsToGenerate(IEnumerable itemCollection) + { + return GetItemsToGenerate(itemCollection) + .Where(e => IsEnumType(e)); + } + + public IEnumerable GetItemsToGenerate(IEnumerable itemCollection) where T: EdmType + { + return itemCollection + .OfType() + .Where(i => !i.MetadataProperties.Any(p => p.Name == ExternalTypeNameAttributeName)) + .OrderBy(i => i.Name); + } + + public IEnumerable GetAllGlobalItems(IEnumerable itemCollection) + { + return itemCollection + .Where(i => i is EntityType || i is ComplexType || i is EntityContainer || IsEnumType(i)) + .Select(g => GetGlobalItemName(g)); + } + + public string GetGlobalItemName(GlobalItem item) + { + if (item is EdmType) + { + return ((EdmType)item).Name; + } + else + { + return ((EntityContainer)item).Name; + } + } + + public IEnumerable GetSimpleProperties(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type); + } + + public IEnumerable GetSimpleProperties(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type); + } + + public IEnumerable GetComplexProperties(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type); + } + + public IEnumerable GetComplexProperties(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type); + } + + public IEnumerable GetPropertiesWithDefaultValues(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null); + } + + public IEnumerable GetPropertiesWithDefaultValues(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null); + } + + public IEnumerable GetNavigationProperties(EntityType type) + { + return type.NavigationProperties.Where(np => np.DeclaringType == type); + } + + public IEnumerable GetCollectionNavigationProperties(EntityType type) + { + return type.NavigationProperties.Where(np => np.DeclaringType == type && np.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many); + } + + public FunctionParameter GetReturnParameter(EdmFunction edmFunction) + { + ArgumentNotNull(edmFunction, "edmFunction"); + + var returnParamsProperty = edmFunction.GetType().GetProperty("ReturnParameters"); + return returnParamsProperty == null + ? edmFunction.ReturnParameter + : ((IEnumerable)returnParamsProperty.GetValue(edmFunction, null)).FirstOrDefault(); + } + + public bool IsComposable(EdmFunction edmFunction) + { + ArgumentNotNull(edmFunction, "edmFunction"); + + var isComposableProperty = edmFunction.GetType().GetProperty("IsComposableAttribute"); + return isComposableProperty != null && (bool)isComposableProperty.GetValue(edmFunction, null); + } + + public IEnumerable GetParameters(EdmFunction edmFunction) + { + return FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef); + } + + public TypeUsage GetReturnType(EdmFunction edmFunction) + { + var returnParam = GetReturnParameter(edmFunction); + return returnParam == null ? null : _ef.GetElementType(returnParam.TypeUsage); + } + + public bool GenerateMergeOptionFunction(EdmFunction edmFunction, bool includeMergeOption) + { + var returnType = GetReturnType(edmFunction); + return !includeMergeOption && returnType != null && returnType.EdmType.BuiltInTypeKind == BuiltInTypeKind.EntityType; + } +} + +public static void ArgumentNotNull(T arg, string name) where T : class +{ + if (arg == null) + { + throw new ArgumentNullException(name); + } +} +#> \ No newline at end of file diff --git a/Handler/Project/Model11.Designer.cs b/Handler/Project/Model11.Designer.cs new file mode 100644 index 0000000..a655568 --- /dev/null +++ b/Handler/Project/Model11.Designer.cs @@ -0,0 +1,10 @@ +// 모델 'D:\Source\##### 완료아이템\(4576) 물류 Amkor Reel ID Print & Attach 장비 개발 (STD)\Source\Handler(EV)(UniConv)\Project\Model1.edmx'에 대해 T4 코드 생성이 사용됩니다. +// 레거시 코드 생성을 사용하려면 '코드 생성 전략' 디자이너 속성의 값을 +// 'Legacy ObjectContext'로 변경하십시오. 이 속성은 모델이 디자이너에서 열릴 때 +// 속성 창에서 사용할 수 있습니다. + +// 컨텍스트 및 엔터티 클래스가 생성되지 않은 경우 빈 모델을 만들었기 때문일 수도 있지만 +// 사용할 Entity Framework 버전을 선택하지 않았기 때문일 수도 있습니다. 모델에 맞는 컨텍스트 클래스 및 +// 엔터티 클래스를 생성하려면 디자이너에서 모델을 열고 디자이너 화면에서 마우스 오른쪽 단추를 클릭한 +// 다음 '데이터베이스에서 모델 업데이트...', '모델에서 데이터베이스 생성...' 또는 '코드 생성 항목 추가...'를 +// 선택하십시오. \ No newline at end of file diff --git a/Handler/Project/Model11.cs b/Handler/Project/Model11.cs new file mode 100644 index 0000000..593fb34 --- /dev/null +++ b/Handler/Project/Model11.cs @@ -0,0 +1,9 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 템플릿에서 생성되었습니다. +// +// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다. +// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다. +// +//------------------------------------------------------------------------------ + diff --git a/Handler/Project/Program.cs b/Handler/Project/Program.cs new file mode 100644 index 0000000..46daa1a --- /dev/null +++ b/Handler/Project/Program.cs @@ -0,0 +1,126 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; +using System.Reflection; +using System.Runtime.InteropServices; +using System.Resources; +using System.Threading; +using AR; +using System.Security.Principal; +using System.Diagnostics; + +namespace Project +{ + static class Program + { + /// + /// 해당 응용 프로그램의 주 진입점입니다. + /// + [STAThread] + static void Main() + { + //중복실행방지 + var guidAttr = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(GuidAttribute), true); + if (guidAttr != null) + { + var guida = (GuidAttribute)guidAttr[0]; + var guidstr = guida.Value; + Mutex mtx = new Mutex(true, guidstr); + var success = mtx.WaitOne(new TimeSpan(0, 0, 1)); + if (success == false) + { + //MessageBox.Show("중복실행 불가\n\n프로그램이 실행 중 입니다"); + + //"※ Amkor Standard Label Attach" + var list = System.Diagnostics.Process.GetProcesses(); + var prc = list.Where(t => t.ProcessName == "Amkor" && t.MainModule.FileVersionInfo.FileDescription.Contains("Amkor Standard Label")).FirstOrDefault(); + if (prc != null) + { + var dlg = MessageBox.Show( + "중복 실행이 감지 되었습니다.\r\n" + + "현재 실행중인 프로그램을 종료 할까요?\r\n" + + "프로그램은 다시 실행하세요", "중복실행", MessageBoxButtons.YesNo, + MessageBoxIcon.Question); + + if (dlg == DialogResult.Yes) + { + prc.Kill(); + } + } + + return; + } + } + + //if(IsAdmin()==false) + //{ + // var dlg = MessageBox.Show( + // "이 프로그램은 관리자 모드로 실행해야 합니다", "중복실행", MessageBoxButtons.YesNo, + // MessageBoxIcon.Question); + // return; + //} + + + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException); + AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); + Application.Run(new FMain()); + } + + static bool IsAdmin() + { + var identy = WindowsIdentity.GetCurrent(); + if(identy != null) + { + var princ = new WindowsPrincipal(identy); + return princ.IsInRole(WindowsBuiltInRole.Administrator); + } + return false; + } + + + + + static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) + { + + string emsg = "Fatal Error(UHE)\n\n" + e.ExceptionObject.ToString(); + PUB.log.AddE(emsg); + PUB.log.Flush(); + UTIL.SaveBugReport(emsg); + Shutdown(); + var f = new Dialog.fErrorException(emsg); + f.ShowDialog(); + Application.ExitThread(); + } + + static void Shutdown() + { + PUB.dio.SetOutput(false); //모두끄기 + PUB.sm.SetNewStep(eSMStep.IDLE, true); + PUB.flag.set(eVarBool.FG_USERSTEP, false, "shutdown"); + PUB.log.Add("Program Close"); + PUB.log.Flush(); + PUB.dio.StopMonitor(); + PUB.mot.StopMonitor(); + PUB.sm.Stop(); + + } + + static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e) + { + + string emsg = "Fatal Error(ATE)\n\n" + e.Exception.ToString(); + //emsg += "stack:" + e.Exception.StackTrace; + PUB.log.AddE(emsg); + PUB.log.Flush(); + UTIL.SaveBugReport(emsg); + Shutdown(); + var f = new Dialog.fErrorException(emsg); + f.ShowDialog(); + Application.ExitThread(); + } + } +} diff --git a/Handler/Project/Properties/AssemblyInfo.cs b/Handler/Project/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..efffb16 --- /dev/null +++ b/Handler/Project/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("※ Amkor Standard Label Attach Inbound")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("K4-EET1P (chikyun.kim@amkor.co.kr, T8567)")] +[assembly: AssemblyProduct("※ Amkor Standard Label Attach Inbound")] +[assembly: AssemblyCopyright("Copyright ©Amkor-EET 2023")] +[assembly: AssemblyTrademark("EED")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("65f3e762-800c-772e-1111-b444642ec666")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로 +// 지정되도록 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("25.05.28.0000")] +[assembly: AssemblyFileVersion("25.05.28.0000")] diff --git a/Handler/Project/Properties/Resources.Designer.cs b/Handler/Project/Properties/Resources.Designer.cs new file mode 100644 index 0000000..981d353 --- /dev/null +++ b/Handler/Project/Properties/Resources.Designer.cs @@ -0,0 +1,663 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +namespace Project.Properties { + using System; + + + /// + /// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다. + /// + // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder + // 클래스에서 자동으로 생성되었습니다. + // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을 + // 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Project.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을 + /// 재정의합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap action_go { + get { + object obj = ResourceManager.GetObject("action_go", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap Arrow_Left { + get { + object obj = ResourceManager.GetObject("Arrow_Left", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap Arrow_Right { + get { + object obj = ResourceManager.GetObject("Arrow_Right", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap Barcode { + get { + object obj = ResourceManager.GetObject("Barcode", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap Camera { + get { + object obj = ResourceManager.GetObject("Camera", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_add_40 { + get { + object obj = ResourceManager.GetObject("icons8_add_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_add_image_40 { + get { + object obj = ResourceManager.GetObject("icons8_add_image_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_backward_40 { + get { + object obj = ResourceManager.GetObject("icons8_backward_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_black_circle_40 { + get { + object obj = ResourceManager.GetObject("icons8_black_circle_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_border_all_40 { + get { + object obj = ResourceManager.GetObject("icons8_border_all_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_broom_40 { + get { + object obj = ResourceManager.GetObject("icons8_broom_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_camera_40 { + get { + object obj = ResourceManager.GetObject("icons8_camera_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_cancel_40 { + get { + object obj = ResourceManager.GetObject("icons8_cancel_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_checked_40 { + get { + object obj = ResourceManager.GetObject("icons8_checked_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_checked_radio_button_48 { + get { + object obj = ResourceManager.GetObject("icons8_checked_radio_button_48", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_clamps_40 { + get { + object obj = ResourceManager.GetObject("icons8_clamps_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_control_panel_40 { + get { + object obj = ResourceManager.GetObject("icons8_control_panel_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_copy_40 { + get { + object obj = ResourceManager.GetObject("icons8_copy_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_delete_40 { + get { + object obj = ResourceManager.GetObject("icons8_delete_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_edit_48 { + get { + object obj = ResourceManager.GetObject("icons8_edit_48", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_exercise_40 { + get { + object obj = ResourceManager.GetObject("icons8_exercise_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_flip_vertical_40 { + get { + object obj = ResourceManager.GetObject("icons8_flip_vertical_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_folder_40 { + get { + object obj = ResourceManager.GetObject("icons8_folder_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_grab_tool_48 { + get { + object obj = ResourceManager.GetObject("icons8_grab_tool_48", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_green_circle_40 { + get { + object obj = ResourceManager.GetObject("icons8_green_circle_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_hand_40 { + get { + object obj = ResourceManager.GetObject("icons8_hand_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_input_40 { + get { + object obj = ResourceManager.GetObject("icons8_input_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_joystick_40 { + get { + object obj = ResourceManager.GetObject("icons8_joystick_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_laser_beam_40 { + get { + object obj = ResourceManager.GetObject("icons8_laser_beam_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_light_20 { + get { + object obj = ResourceManager.GetObject("icons8_light_20", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_light_30 { + get { + object obj = ResourceManager.GetObject("icons8_light_30", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_light_on_40 { + get { + object obj = ResourceManager.GetObject("icons8_light_on_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_log_40 { + get { + object obj = ResourceManager.GetObject("icons8_log_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_move_right_40 { + get { + object obj = ResourceManager.GetObject("icons8_move_right_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_new_40 { + get { + object obj = ResourceManager.GetObject("icons8_new_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_no_running_40 { + get { + object obj = ResourceManager.GetObject("icons8_no_running_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_object_40 { + get { + object obj = ResourceManager.GetObject("icons8_object_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_pin_40 { + get { + object obj = ResourceManager.GetObject("icons8_pin_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_plus_40 { + get { + object obj = ResourceManager.GetObject("icons8_plus_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_printer_48 { + get { + object obj = ResourceManager.GetObject("icons8-printer-48", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_red_circle_40 { + get { + object obj = ResourceManager.GetObject("icons8_red_circle_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_refresh { + get { + object obj = ResourceManager.GetObject("icons8_refresh", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_repeat_40 { + get { + object obj = ResourceManager.GetObject("icons8_repeat_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_resize_horizontal_40 { + get { + object obj = ResourceManager.GetObject("icons8_resize_horizontal_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_robot_hand_40 { + get { + object obj = ResourceManager.GetObject("icons8_robot_hand_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_running_40 { + get { + object obj = ResourceManager.GetObject("icons8_running_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_save_40 { + get { + object obj = ResourceManager.GetObject("icons8_save_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_save_close_40 { + get { + object obj = ResourceManager.GetObject("icons8_save_close_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_save_to_grid_40 { + get { + object obj = ResourceManager.GetObject("icons8_save_to_grid_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_selection_40 { + get { + object obj = ResourceManager.GetObject("icons8_selection_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_tornado_40 { + get { + object obj = ResourceManager.GetObject("icons8_tornado_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_unavailable_40 { + get { + object obj = ResourceManager.GetObject("icons8_unavailable_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_what_40 { + get { + object obj = ResourceManager.GetObject("icons8_what_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_zoom_to_extents_40 { + get { + object obj = ResourceManager.GetObject("icons8_zoom_to_extents_40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap Lock { + get { + object obj = ResourceManager.GetObject("Lock", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap Motor { + get { + object obj = ResourceManager.GetObject("Motor", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap Socket { + get { + object obj = ResourceManager.GetObject("Socket", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap Vision { + get { + object obj = ResourceManager.GetObject("Vision", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap Zoom_In { + get { + object obj = ResourceManager.GetObject("Zoom_In", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap Zoom_Out { + get { + object obj = ResourceManager.GetObject("Zoom_Out", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Handler/Project/Properties/Resources.resx b/Handler/Project/Properties/Resources.resx new file mode 100644 index 0000000..cb26077 --- /dev/null +++ b/Handler/Project/Properties/Resources.resx @@ -0,0 +1,301 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\icons8-black-circle-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-refresh.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-checked-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-laser-beam-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-add-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-repeat-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-no-running-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-flip-vertical-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\action_go.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-new-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-unavailable-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-zoom-to-extents-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-move-right-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-plus-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-light-20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-barcode-scanner-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-add-image-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-what-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-joystick-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-copy-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-green-circle-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-save-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-light-on-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-log-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-light-30.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-clamps-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-delete-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-broom-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-resize-horizontal-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-border-all-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-cancel-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-camera-401.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-vision-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-save-to-grid-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-camera-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-robot-hand-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-arrow-40-right.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-control-panel-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-smart-lock-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-input-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-zoom-out-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-socket-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-folder-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-arrow-pointing-left-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-red-circle-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-hand-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-grab-tool-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-edit-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-running-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-exercise-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-backward-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-tornado-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-stepper-motor-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-save-close-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-zoom-in-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-selection-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-object-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-pin-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-checked-radio-button-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-printer-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Handler/Project/Properties/Settings.Designer.cs b/Handler/Project/Properties/Settings.Designer.cs new file mode 100644 index 0000000..d7fad70 --- /dev/null +++ b/Handler/Project/Properties/Settings.Designer.cs @@ -0,0 +1,182 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +namespace Project.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.9.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.WebServiceUrl)] + [global::System.Configuration.DefaultSettingValueAttribute("http://k1xip00.amkor.co.kr:50000/XISOAPAdapter/MessageServlet?senderParty=&sender" + + "Service=eCIM_ATK&receiverParty=&receiverService=&interface=ZK_RFID_TRANS_SEQ&int" + + "erfaceNamespace=urn%3Asap-com%3Adocument%3Asap%3Arfc%3Afunctions")] + public string Logistics_Vision_wr_ZK_RFID_TRANS_SEQService { + get { + return ((string)(this["Logistics_Vision_wr_ZK_RFID_TRANS_SEQService"])); + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("K9OE1zaaQEPD8jE33YK1vDdDS4JBz1DB")] + public string Softtek { + get { + return ((string)(this["Softtek"])); + } + set { + this["Softtek"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("101410653;AG64B3W;SAMSUNG;20000;AG64B3W0031;19000101;")] + public string BcdDemo { + get { + return ((string)(this["BcdDemo"])); + } + set { + this["BcdDemo"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("Amkor Technology/windows-242f240302c3e50d6cb1686ba2q4k0o9")] + public string libxl { + get { + return ((string)(this["libxl"])); + } + set { + this["libxl"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute(@"^XA~TA000~JSN^LT0^MNW^MTT^PON^PMN^LH0,0^JMA^PR6,6~SD15^JUS^LRN^CI0^XZ +^XA +^MMT +^PW519 +^LL0200 +^LS25 +^FO205,5^GB305,186,4^FS +^FT25,170^BQN,2,4 +^FDLA, +{qrData} +^FS +^FO205,9^GB0,183,4^FS +^FO250,9^GB0,183,4^FS +^FO209,34^GB299,0,4^FS +^FO209,65^GB299,0,4^FS +^FO207,95^GB300,0,4^FS +^FO207,126^GB303,0,4^FS +^FT211,30^A0N,23,24^FDSID^FS +^FT210,59^A0N,23,24^FDLOT^FS +^FT215,91^A0N,23,24^FDPN^FS +^FT212,153^A0N,23,24^FDRID^FS +^FT210,120^A0N,23,24^FDQ'ty^FS +^FT260,31^A0N,23,24^FD +{sid} +^FS +^FT260,60^A0N,23,24^FD +{lot} +^FS +^FT258,93^A0N,27,16^FD +{partnum} +^FS +^FT256,150^A0N,21,19^FD +{rid} +^FS +^FT259,121^A0N,23,24^FD +{qty} +^FS +^FO207,157^GB303,0,4^FS +^FT212,182^A0N,20,19^FDDate^FS +^FT260,183^A0N,23,24^FD +{mfg} +^FS +^PQ1,0,1,Y^XZ")] + public string ZPL { + get { + return ((string)(this["ZPL"])); + } + set { + this["ZPL"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute(@"^XA +^MMT +^PW519 +^LL0200 +^LS0 +^FO207,5^GB303,186,4^FS +^FT10,190^BQN,2,4 +^FH\^FDLA,{qrData}^FS +^FO250,8^GB0,183,4^FS +^FO209,29^GB299,0,4^FS +^FO209,56^GB299,0,4^FS +^FO207,81^GB300,0,4^FS +^FO207,108^GB303,0,4^FS +^FT212,27^A0N,20,19^FH\^FDSID^FS +^FT212,52^A0N,20,19^FH\^FDLOT^FS +^FT211,132^A0N,20,19^FH\^FDRID^FS +^FT212,104^A0N,20,19^FH\^FDQ'ty^FS +^FT256,27^A0N,20,19^FH\^FD{sid}^FS +^FT257,53^A0N,20,19^FH\^FD{lot}^FS +^FT257,184^A0N,17,16^FH\^FD{partnum}^FS +^FT258,131^A0N,20,19^FH\^FD{rid}^FS +^FT257,104^A0N,20,19^FH\^FD{qty}^FS +^FO207,162^GB303,0,4^FS +^FO207,135^GB303,0,4^FS +^FT211,158^A0N,20,19^FH\^FDDate^FS +^FT258,158^A0N,20,19^FH\^FD{mfg}^FS +^FT212,183^A0N,17,16^FH\^FDPN#^FS +^FT212,79^A0N,20,19^FH\^FDSPY^FS +^FT256,79^A0N,20,19^FH\^FD{supply}^FS +^PQ1,0,1,Y^XZ +")] + public string ZPL7 { + get { + return ((string)(this["ZPL7"])); + } + set { + this["ZPL7"] = value; + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)] + [global::System.Configuration.DefaultSettingValueAttribute("Data Source=K4FASQL.kr.ds.amkor.com,50150;Initial Catalog=EE;Persist Security Inf" + + "o=True;User ID=eeadm;Password=uJnU8a8q&DJ+ug-D;Encrypt=False;TrustServerCertific" + + "ate=True")] + public string CS { + get { + return ((string)(this["CS"])); + } + } + } +} diff --git a/Handler/Project/Properties/Settings.settings b/Handler/Project/Properties/Settings.settings new file mode 100644 index 0000000..ada8486 --- /dev/null +++ b/Handler/Project/Properties/Settings.settings @@ -0,0 +1,104 @@ + + + + + + http://k1xip00.amkor.co.kr:50000/XISOAPAdapter/MessageServlet?senderParty=&senderService=eCIM_ATK&receiverParty=&receiverService=&interface=ZK_RFID_TRANS_SEQ&interfaceNamespace=urn%3Asap-com%3Adocument%3Asap%3Arfc%3Afunctions + + + K9OE1zaaQEPD8jE33YK1vDdDS4JBz1DB + + + 101410653;AG64B3W;SAMSUNG;20000;AG64B3W0031;19000101; + + + Amkor Technology/windows-242f240302c3e50d6cb1686ba2q4k0o9 + + + ^XA~TA000~JSN^LT0^MNW^MTT^PON^PMN^LH0,0^JMA^PR6,6~SD15^JUS^LRN^CI0^XZ +^XA +^MMT +^PW519 +^LL0200 +^LS25 +^FO205,5^GB305,186,4^FS +^FT25,170^BQN,2,4 +^FDLA, +{qrData} +^FS +^FO205,9^GB0,183,4^FS +^FO250,9^GB0,183,4^FS +^FO209,34^GB299,0,4^FS +^FO209,65^GB299,0,4^FS +^FO207,95^GB300,0,4^FS +^FO207,126^GB303,0,4^FS +^FT211,30^A0N,23,24^FDSID^FS +^FT210,59^A0N,23,24^FDLOT^FS +^FT215,91^A0N,23,24^FDPN^FS +^FT212,153^A0N,23,24^FDRID^FS +^FT210,120^A0N,23,24^FDQ'ty^FS +^FT260,31^A0N,23,24^FD +{sid} +^FS +^FT260,60^A0N,23,24^FD +{lot} +^FS +^FT258,93^A0N,27,16^FD +{partnum} +^FS +^FT256,150^A0N,21,19^FD +{rid} +^FS +^FT259,121^A0N,23,24^FD +{qty} +^FS +^FO207,157^GB303,0,4^FS +^FT212,182^A0N,20,19^FDDate^FS +^FT260,183^A0N,23,24^FD +{mfg} +^FS +^PQ1,0,1,Y^XZ + + + ^XA +^MMT +^PW519 +^LL0200 +^LS0 +^FO207,5^GB303,186,4^FS +^FT10,190^BQN,2,4 +^FH\^FDLA,{qrData}^FS +^FO250,8^GB0,183,4^FS +^FO209,29^GB299,0,4^FS +^FO209,56^GB299,0,4^FS +^FO207,81^GB300,0,4^FS +^FO207,108^GB303,0,4^FS +^FT212,27^A0N,20,19^FH\^FDSID^FS +^FT212,52^A0N,20,19^FH\^FDLOT^FS +^FT211,132^A0N,20,19^FH\^FDRID^FS +^FT212,104^A0N,20,19^FH\^FDQ'ty^FS +^FT256,27^A0N,20,19^FH\^FD{sid}^FS +^FT257,53^A0N,20,19^FH\^FD{lot}^FS +^FT257,184^A0N,17,16^FH\^FD{partnum}^FS +^FT258,131^A0N,20,19^FH\^FD{rid}^FS +^FT257,104^A0N,20,19^FH\^FD{qty}^FS +^FO207,162^GB303,0,4^FS +^FO207,135^GB303,0,4^FS +^FT211,158^A0N,20,19^FH\^FDDate^FS +^FT258,158^A0N,20,19^FH\^FD{mfg}^FS +^FT212,183^A0N,17,16^FH\^FDPN#^FS +^FT212,79^A0N,20,19^FH\^FDSPY^FS +^FT256,79^A0N,20,19^FH\^FD{supply}^FS +^PQ1,0,1,Y^XZ + + + + <?xml version="1.0" encoding="utf-16"?> +<SerializableConnectionString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <ConnectionString>Data Source=K4FASQL.kr.ds.amkor.com,50150;Initial Catalog=EE;Persist Security Info=True;User ID=eeadm;Password=uJnU8a8q&amp;DJ+ug-D;Encrypt=False;TrustServerCertificate=True</ConnectionString> + <ProviderName>System.Data.SqlClient</ProviderName> +</SerializableConnectionString> + Data Source=K4FASQL.kr.ds.amkor.com,50150;Initial Catalog=EE;Persist Security Info=True;User ID=eeadm;Password=uJnU8a8q&DJ+ug-D;Encrypt=False;TrustServerCertificate=True + + + \ No newline at end of file diff --git a/Handler/Project/Properties/app.manifest b/Handler/Project/Properties/app.manifest new file mode 100644 index 0000000..5059a77 --- /dev/null +++ b/Handler/Project/Properties/app.manifest @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Handler/Project/Pub.cs b/Handler/Project/Pub.cs new file mode 100644 index 0000000..ffcf293 --- /dev/null +++ b/Handler/Project/Pub.cs @@ -0,0 +1,1971 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.IO; +using System.Runtime.Serialization.Formatters.Binary; +using System.Text; +using System.Management; +using System.Data.SqlClient; +using System.Data; +using System.Threading.Tasks; +using System.Net.NetworkInformation; +using System.Net; +using System.Runtime.CompilerServices; +using System.Windows.Forms; +using AR; +using Emgu.CV.BgSegm; +using Microsoft.Owin.StaticFiles; +using System.Runtime.Remoting; + +namespace Project +{ + public static class PUB + { + public static string MCCode = "IB"; + public static Class.StatusMessage StatusMessage { get; set; } = new Class.StatusMessage(); + public static string[] WaitMessage = new string[] { "", "", "", "", "", "", "", "", "", "", "" }; + + public static byte[] swPLCBuffer = new byte[16]; + + //######################################################## + // DEVICE DEFINE + //######################################################## + public static arDev.DIO.IDIO dio; //Ajin + public static arDev.MOT.IMotion mot; //Ajin + public static arDev.RS232 remocon; + public static arDev.RS232 BarcodeFix; + public static AR.MemoryMap.Client plc; + + public static Device.SATOPrinterAPI PrinterL; + public static Device.SATOPrinterAPI PrinterR; + + public static arDev.Joystick.JoystickRaw joypad; + public static WatsonWebsocket.WatsonWsClient wsL; + public static WatsonWebsocket.WatsonWsClient wsR; + public static arDev.Joystick.JoystickRaw joystick; + //public static StdLabelPrint.LabelPrint PrinterL = null; + //public static StdLabelPrint.LabelPrint PrinterR = null; + public static Device.KeyenceBarcode keyenceF = null; + public static Device.KeyenceBarcode keyenceR = null; + + + + public static int uploadcount = 0; + public static DateTime BuzzerTime; + public static DateTime MGZRunTime; + + public static CounterSetting counter; + + //public static Flag flag; + public static MessageWindow popup; + + //interlock check + public static CInterLock[] iLock; + public static CInterLock iLockPRL; //printer -left + public static CInterLock iLockPRR; //printer -right + public static CInterLock iLockVS0; //visoin - 0 + public static CInterLock iLockVS1; //vision - 1 + public static CInterLock iLockVS2; //vision - 2 + public static CInterLock iLockCVL; + public static CInterLock iLockCVR; + + public static System.Threading.ManualResetEvent LockModel = new System.Threading.ManualResetEvent(true); + + /// + /// database manager + /// + //public static Manager.DatabaseManagerHistory dbmHistory; //트레이기록(날짜기준) + public static Manager.DatabaseManagerCount dbmCount; //수량기록(ID기준) + public static Manager.DatabaseManagerSIDHistory dbmSidHistory; + + //public static Manager.DataBaseMSSQL dbSQL; + + /// + /// model manager + /// + public static Manager.ModelManager mdm; + + public static System_MotParameter system_mot; + public static SystemSetting system; + public static UserSetting uSetting; + //public static CommonSetting setting; + + public static arUtil.Log logVision; + public static arUtil.Log log; + public static arUtil.Log logILStop; + public static arUtil.Log logDbg; + public static arUtil.Log logFlag; + public static arUtil.Log logILock; + public static arUtil.Log logWS; + public static arUtil.Log logKeyence; + // public static arUtil.Log logCV; + public static arUtil.Log logbarcode; + + public static DataSet1.UsersDataTable userList; + public static DataSet1.MailRecipientDataTable mailList; + public static DataSet1.MailFormatDataTable mailForm; + + public static DateTime LastInputTime = DateTime.Now; + public static CResult Result; + public static double FreeSpace = 0; + + //######################################################## + // DEVICE DEFINE + //######################################################## + public static Device.CStateMachine sm; //상태머신분리 190529 + + + public static Boolean UserAdmin { get { return true; } } + + public static bool OPT_CAMERA(eWorkPort target) + { + var retval = VAR.BOOL[eVarBool.Opt_DisableCamera]; + if (retval == false) + { + //전체옵션은 사용가능하지만 환경설정의 개별옵션이 꺼진경우에 동작안함 + retval = !AR.SETTING.Data.Enable_Unloader_QRValidation; + } + return retval; + } + public static bool OPT_BYPASS() + { + return SETTING.Data.SystemBypass; + } + public static bool OPT_PRINTEROFF(eWorkPort target) + { + var retval = VAR.BOOL[eVarBool.Opt_DisablePrinter]; + if (retval == false) + { + //전체옵션은 사용가능하지만 환경설정의 개별옵션이 꺼진경우에 동작안함 + if (target == eWorkPort.Left) + retval = AR.SETTING.Data.Disable_PrinterL; + else + retval = AR.SETTING.Data.Disable_PrinterR; + } + return retval; + } + + + + + + public static void AddDebugLog(string div, string msg, Boolean iserr = false) + { + if (AR.SETTING.Data.Log_Debug == false) return; + if (iserr) PUB.logDbg.AddE(msg); + else PUB.logDbg.Add(div, msg); + } + public static bool SelectModelM(string modelName, bool bUploadConfig = true) + { + //if (this.InvokeRequired) + //{ + // this.Invoke(new SelectModelHandler(SelectModelM), new object[] { modelName, bUploadConfig }); + // return; + //} + + //초기화 + var rlt = PUB.Result.mModel.ReadValue(modelName); + if (rlt && PUB.Result.mModel.isSet) + { + PUB.log.AddAT("모션모델선택완료 : " + PUB.Result.mModel.Title); + + //사용한 모델이름을 저장함 + if (PUB.uSetting.LastModelM != PUB.Result.mModel.Title) + { + PUB.uSetting.LastModelM = PUB.Result.mModel.Title; + PUB.uSetting.Save(); + } + return true; + } + else + { + PUB.log.AddE("모션모델선택실패(없는모델명:" + modelName + ")"); + return false; + } + } + public static void AddDebugLog(string msg, Boolean iserr = false) + { + PUB.logDbg.Add("NORMAL", msg, iserr); + } + + //public static bool PrintSend(bool left, string zpl) + //{ + // var dev = left ? PUB.PrinterL : PUB.PrinterR; + // var tag = left ? COMM.SETTING.Data.PrintL_AddSend : COMM.SETTING.Data.PrintR_AddSend; + // if (dev.IsOpen == false) return false; + // try + // { + // dev.Write(zpl); + + // //추가 + // if (tag.isEmpty() == false) + // { + // var addbytes = UTIL.ConvertHexStringToByte(tag); + // dev.Write(addbytes); + // } + // return true; + // } + // catch (Exception ex) + // { + // return false; + // } + //} + + public static bool SelectModelV(string modelName, bool bUploadConfig = true) + { + // + //if (this.InvokeRequired) + //{ + // this.Invoke(new SelectModelHandler(SelectModelV), new object[] { modelName, bUploadConfig }); + // return; + //} + + //초기화 + PUB.Result.vModel.Title = string.Empty; + var modelVision = PUB.mdm.GetDataV(modelName); + if (modelVision != null) + { + var mv = PUB.Result.vModel; + mv.ReadValue(modelVision); //Util.CopyData(model, Pub.Result.vModel); + PUB.log.AddAT("작업모델선택완료 : " + mv.Title); + + //선택한 모델을 저장함 + if (PUB.uSetting.LastModelV != mv.Title) + { + PUB.uSetting.LastModelV = mv.Title; + PUB.uSetting.Save(); + } + + PUB.Result.BCDPattern = PUB.GetPatterns(modelName, false); + PUB.Result.BCDIgnorePattern = PUB.GetPatterns(modelName, true); + PUB.Result.BCDPrintPattern = PUB.GetPrintPatterns(); //220902 + + PUB.log.Add($"모델패턴로딩:{PUB.Result.BCDPattern.Count}/{PUB.Result.BCDIgnorePattern.Count}"); + if (modelVision.Code.isEmpty()) + { + //PUB.Result.CustCode = string.Empty; + VAR.STR[eVarString.JOB_CUSTOMER_CODE] = string.Empty; + } + else + { + var codlist = modelVision.Code.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); + + string custcode = string.Empty; + if (codlist.Length == 1) custcode = codlist[0]; + VAR.STR[eVarString.JOB_CUSTOMER_CODE] = custcode; + } + + //모든 저장된 바코드를 삭제한ㄷ. + PUB.Result.ItemDataC.Clear("SELCTMODEL"); + + //바코드설정파일 업데이트 + if (bUploadConfig) + { + //SAVE + UpLoadBarcodeConfig(PUB.keyenceF); + UpLoadBarcodeConfig(PUB.keyenceR); + } + + return true; + } + else + { + //PUB.Result.CustCode = string.Empty; + VAR.STR[eVarString.JOB_CUSTOMER_CODE] = string.Empty; + PUB.log.AddE("모델선택실패(없는모델명:" + modelName + ")"); + return false; + } + + } + public static bool UpLoadBarcodeConfig(Device.KeyenceBarcode keyence) + { + + if (keyence == null || keyence.IsConnect == false) + { + var tagstr = keyence?.Tag ?? string.Empty; + + PUB.log.AddAT($"바코드({tagstr})가 연결되지 않아 설정 파일을 업로드하지 않습니다." + + "신규 작업 시작시 해당 정보는 재 전송 됩니다." + + $"{(tagstr == "F" ? "좌" : "우")}측하단의 바코드 연결을 확인 후 모델을 선택하시면 이 오류가 발생되지 않습니다"); + return false; + } + + //바코드설정파일 입력 + var mv = PUB.Result.vModel; + var configfilenameB = mv.Title; + if (configfilenameB.isEmpty()) configfilenameB = mv.Title; + if (configfilenameB.EndsWith(keyence.Tag) == false) configfilenameB += keyence.Tag; + + var configfilenameJ = configfilenameB; + //var jobcode = VAR.STR[eVarString.JOB_TYPE]; + //if (jobcode.isEmpty() == false) configfilenameJ += $"_{jobcode}"; + //else PUB.log.AddAT($"작업형태값이 없어 모델 기본을 사용 합니다"); + + + if (configfilenameB.ToLower().EndsWith("ptc") == false) configfilenameB += ".ptc"; + if (configfilenameJ.ToLower().EndsWith("ptc") == false) configfilenameJ += ".ptc"; + + var configpathB = System.IO.Path.Combine(UTIL.CurrentPath, "Model", configfilenameB); + var configpathJ = System.IO.Path.Combine(UTIL.CurrentPath, "Model", configfilenameJ); + var configfiB = new System.IO.FileInfo(configpathB); + var configfiJ = new System.IO.FileInfo(configpathJ); + + if (configfiB.Exists == false && configfiJ.Exists == false) + { + PUB.log.AddAT($"바코드({keyence.Tag}) 설정파일({configfiB.Name})이 없습니다"); + } + else + { + try + { + //접속되어잇ㅇ츠면 끈다 + var ip = keyence.Tag == "F" ? SETTING.Data.Keyence_IPF : SETTING.Data.Keyence_IPR; + if (keyence.IsConnect) keyence.Trigger(false); + var ftp = new AR.FTPClient.FTPClient(); + ftp.Host = ip;// COMM.SETTING.Data.Keyence_IPF; + ftp.Port = 21; + var UPFileName = @"\CONFIG\CONFIG.PTC"; + + var fn = configfiJ.Exists ? configfiJ.FullName : configfiB.FullName; + var upOk = ftp.Upload(UPFileName, fn); + if (upOk == false) PUB.log.AddE($"바코드({keyence.Tag}) 설정파일 업로드 실패"); + else PUB.log.AddI($"바코드({keyence.Tag}) 설정파일 업로드 완료({fn})"); + if (keyence.IsConnect) keyence.Trigger(true); + return true; + } + catch (Exception ex) + { + PUB.log.AddE($"바코드({keyence.Tag}) FTP전송 실패:{ex.Message}"); + } + } + return false; + } + + //public static List activesid = new List(); + public static Task> UpdateSIDInfoByECS() + { + var rlt = Task.Run>(() => + { + bool result = false; + string message = string.Empty; + int cnt = 0; + int rdy = 0; + System.Diagnostics.Stopwatch wat = new System.Diagnostics.Stopwatch(); + wat.Restart(); + + // activesid.Clear(); + //아무것도 하지 않는다. + if (SETTING.Data.ECSSkip) + { + //기존 SID정보에서 데이터를 취합니다. + var mc = AR.SETTING.Data.McName; + PUB.log.AddAT($"환경설정에서 ECS SKIP이 되었습니다 기존 정보에서 데이터를 생성합니다 MC={mc}"); + using (var tainfo = new DataSet1TableAdapters.Component_Reel_SID_InformationTableAdapter()) + { + var cntd = tainfo.DeleteAll("IB"); + PUB.log.AddAT($"{cntd}건의 자료가 삭제됨"); + var cnti = tainfo.MakeIBData(mc); + PUB.log.AddAT($"{cnti}건의 자료가 복제됨"); + } + message = "ECS-OFF 됨 장비전용 데이터로 진행 함"; + result = true; + rdy = 1; + } + else + { + + PUB.log.Add($"ECS로부터 SID 정보를 수신 합니다"); + var url = $@"http://10.131.32.29:8080/api/job?MC={SETTING.Data.McName}"; + var newbuf = UTIL.GetStrfromurl(url, out bool iserror, 15000); + newbuf = newbuf.Replace("k__BackingField", "").Replace("<", "").Replace(">", ""); + if (newbuf.StartsWith("[") == false || newbuf.EndsWith("]") == false) + { + wat.Stop(); + PUB.log.AddE($"ECS수신데이터오류:{newbuf} {wat.ElapsedMilliseconds}ms"); + message = newbuf; + result = false; + } + else + { + Newtonsoft.Json.Linq.JArray data = null; + + try + { + data = Newtonsoft.Json.Linq.JArray.Parse(newbuf); + + //시드정보를 삭제한다. + PUB.log.Add($"sid정보삭제 {PUB.MCCode}"); + var ta = new DataSet1TableAdapters.Component_Reel_SID_InformationTableAdapter(); + ta.DeleteAll(PUB.MCCode); + + //신규로드옭한다 + var dt = new DataSet1.Component_Reel_SID_InformationDataTable(); + for (int i = 0; i < data.Count; i++) + { + var jsondata = data[i]; //데이터가 없는 경우 null반환 + var v_sid = jsondata["SID"]; + var v_bat = jsondata["BATCH"]; + var v_lot = jsondata["VENDOR_LOT"]; + var v_ccd = jsondata["CUST_CODE"]; + var v_pat = jsondata["PART_NO"]; + var v_ivq = jsondata["IVC_QTY"]; + var v_att = jsondata["ATTACH"]; + var v_rdy = jsondata["ECS_READY"].ToString().ToLower(); + + + + var newdr = dt.NewComponent_Reel_SID_InformationRow(); + newdr.MC = PUB.MCCode; + newdr.SID = ""; + newdr.CustCode = ""; + newdr.CustName = ""; + newdr.PartNo = ""; + newdr.VenderLot = ""; + newdr.VenderName = ""; + newdr.Remark = "auto"; + newdr.qtymax = 0; //인보이스수량 + newdr.batch = ""; + newdr.attach = ""; + newdr.wdate = DateTime.Now; + + //값이존재하는 경우에만 기록 + if (v_sid != null && v_sid.Type != Newtonsoft.Json.Linq.JTokenType.Null) newdr.SID = v_sid.ToString(); + if (v_bat != null && v_bat.Type != Newtonsoft.Json.Linq.JTokenType.Null) newdr.batch = v_bat.ToString(); + if (v_lot != null && v_lot.Type != Newtonsoft.Json.Linq.JTokenType.Null) newdr.VenderLot = v_lot.ToString(); + if (v_ccd != null && v_ccd.Type != Newtonsoft.Json.Linq.JTokenType.Null) newdr.CustCode = v_ccd.ToString(); + if (v_pat != null && v_pat.Type != Newtonsoft.Json.Linq.JTokenType.Null) newdr.PartNo = v_pat.ToString(); + if (v_ivq != null && v_ivq.Type != Newtonsoft.Json.Linq.JTokenType.Null) newdr.qtymax = (int)v_ivq; + if (v_att != null && v_att.Type != Newtonsoft.Json.Linq.JTokenType.Null) newdr.attach = v_att.ToString(); + if (newdr.CustCode.Length == 3) newdr.CustCode = "0" + newdr.CustCode; + + + if (v_rdy == "true") + { + rdy += 1; + if (newdr.SID.isEmpty() == false) + { + //if (activesid.Contains(newdr.SID) == false) + // activesid.Add(newdr.SID); + PUB.log.Add($"{newdr.SID} 값은 활성화 SID입니다(ATTACH:{v_att},MC:{SETTING.Data.McName}"); + } + } + + + newdr.EndEdit(); + if (newdr.SID.isEmpty() == false) + dt.AddComponent_Reel_SID_InformationRow(newdr); + else newdr.Delete(); + } + cnt = ta.Update(dt); + if (cnt == 0) message = "No data"; + result = cnt > 0; + } + catch (Exception ex) + { + wat.Stop(); + message = ex.Message; + PUB.log.AddE($"ECS수신데이터오류:{newbuf},메세지={ex.Message} {wat.ElapsedMilliseconds}ms"); + } + } + + } + wat.Stop(); + PUB.log.Add($"{cnt}건의 sid정보가 추가됨 {wat.ElapsedMilliseconds:N2}ms"); + return new Tuple(result, message, rdy); + }); + return rlt; + } + + public static List> GetECSActiveSIDList() + { + List> retval = new List>(); + bool result = false; + string message = string.Empty; + int cnt = 0; + int rdy = 0; + + //아무것도 하지 않는다. + if (SETTING.Data.ECSSkip) + { + PUB.log.AddAT($"ecs skip 으로 인해 활성sid목록을 가져오지 않습니다"); + } + else + { + + PUB.log.Add($"ECS로부터 SID 정보를 수신 합니다"); + var url = $@"http://10.131.32.29:8080/api/job?MC={SETTING.Data.McName}"; + var newbuf = UTIL.GetStrfromurl(url, out bool iserror, 15000); + newbuf = newbuf.Replace("k__BackingField", "").Replace("<", "").Replace(">", ""); + if (newbuf.StartsWith("[") == false || newbuf.EndsWith("]") == false) + { + PUB.log.AddE($"ECS수신데이터오류:{newbuf}"); + } + else + { + Newtonsoft.Json.Linq.JArray data = null; + + try + { + data = Newtonsoft.Json.Linq.JArray.Parse(newbuf); + + + //신규로드옭한다 + for (int i = 0; i < data.Count; i++) + { + var jsondata = data[i]; //데이터가 없는 경우 null반환 + var v_sid = jsondata["SID"]; + var v_bat = jsondata["BATCH"]; + var v_att = jsondata["ATTACH"]; + var v_rdy = jsondata["ECS_READY"].ToString().ToLower(); + + var str_sid = ""; + var str_bat = ""; + var str_att = ""; + + //값이존재하는 경우에만 기록 + if (v_sid != null && v_sid.Type != Newtonsoft.Json.Linq.JTokenType.Null) str_sid = v_sid.ToString(); + if (v_bat != null && v_bat.Type != Newtonsoft.Json.Linq.JTokenType.Null) str_bat = v_bat.ToString(); + if (v_att != null && v_att.Type != Newtonsoft.Json.Linq.JTokenType.Null) str_att = v_att.ToString(); + + if (str_sid.isEmpty() == false && str_bat.isEmpty() == false) + { + retval.Add(new Tuple( + str_sid, + str_bat, + str_att, + (v_rdy == "true"))); + } + + } + + } + catch (Exception ex) + { + + message = ex.Message; + PUB.log.AddE($"ECS수신데이터오류:{newbuf},메세지={ex.Message} "); + } + } + + } + return retval; + } + + + //public static Task GetECSSIDAcitve(string sid, string batch) + //{ + // var rlt = Task.Run(() => + // { + // bool result = false; + // string message = string.Empty; + // int cnt = 0; + // int rdy = 0; + // System.Diagnostics.Stopwatch wat = new System.Diagnostics.Stopwatch(); + // wat.Restart(); + + // //아무것도 하지 않는다. + // if (SETTING.Data.ECSSkip) + // { + // result = true; + // rdy = 1; + // } + // else + // { + // try + // { + // PUB.log.Add($"ECS로부터 SID ACTIVE 정보를 수신 합니다"); + // var url = $@"http://10.131.32.29:8080/api/active?MC={SETTING.Data.McName}&SID={sid}&BATCH={batch}"; + // var newbuf = UTIL.GetStrfromurl(url, out bool iserror, 15000); + // newbuf = newbuf.Replace("k__BackingField", "").Replace("<", "").Replace(">", ""); + // PUB.log.Add($"ecs active check message={newbuf}"); + // result = newbuf.ToLower() == "true"; + // } + // catch (Exception ex) + // { + // PUB.log.AddE(ex.Message); + // result = true; + // } + // } + // wat.Stop(); + // //PUB.log.Add($"{cnt}건의 sid정보가 추가됨 {wat.ElapsedMilliseconds:N2}ms"); + // return result; + // }); + // return rlt; + //} + + /// + /// 전체 작업목록을 별도파일에 저장한다 + /// + /// + /// + /// + public static void AddJobList(string seqdate, string seqno, string file) + { + //저장된 파일은 아래와같은 데이터를 가지고 있다 + //sb.AppendLine("#Time\tSID\tRID\tRAW"); + + //해당 차수로 저장된 파일이 잇는지 체크한다. + var savepath = System.IO.Path.Combine(AR.SETTING.Data.Path_Data, "JobData", seqdate.Substring(0, 6), seqdate + "-" + seqno + ".txt"); + var fi = new System.IO.FileInfo(savepath); + if (fi.Directory.Exists == false) fi.Directory.Create(); //폴더가 없다면 생성 + + //신규파일이므로, 해당 내용을 모두 옴겨놓는다(번호는 중요치않다) + List savedList = new List(); + if (fi.Exists) + { + var oldlist = System.IO.File.ReadAllLines(fi.FullName, System.Text.Encoding.UTF8); + savedList.AddRange(oldlist); + } + + //기존목록을 불러와서 없는 데이터만 추가해준다. + var newbuffer = System.IO.File.ReadAllLines(file, System.Text.Encoding.UTF8); + foreach (var line in newbuffer) + { + if (line.isEmpty() || line.StartsWith("#")) continue; + var buffer = line.Split('\t'); + var raw = buffer[3].Trim(); + if (savedList.Where(t => t == raw).Count() == 0) + savedList.Add(raw); + } + + //전체목록을 저장한다 + System.IO.File.WriteAllLines(fi.FullName, savedList.ToArray(), System.Text.Encoding.UTF8); + } + + public static bool GetSIDConverDB() + { + //230509 + try + { + //sid정보테이블을 다시 불러온다 + var taConv = new DataSet1TableAdapters.Component_Reel_SID_ConvertTableAdapter(); + PUB.Result.DTSidConvert.Clear(); + taConv.Fill(PUB.Result.DTSidConvert); + PUB.Result.DTSidConvert.AcceptChanges(); + PUB.Result.DTSidConvertEmptyList.Clear(); + PUB.Result.DTSidConvertMultiList.Clear(); + PUB.log.Add($"sid변환테이블 {PUB.Result.DTSidConvert.Rows.Count}건 확인"); + return true; + } + catch (Exception ex) + { + PUB.log.AddE("SID변환정보 확인실패\n" + ex.Message); + return false; + } + } + + public static string SIDCovert(string oldsid, string src, out bool err) + { + err = true; + var retval = string.Empty; + + //원본sid가 있어야 한다 + if (oldsid.isEmpty()) + { + return $"[{src}] 원본SID값이 없습니다"; + } + + try + { + if (PUB.Result.DTSidConvert.Any() == false) + { + GetSIDConverDB(); + if (PUB.Result.DTSidConvert.Any()) + { + PUB.log.Add($"[{src}] sid변환테이블조회결과 {PUB.Result.DTSidConvert.Rows.Count}건"); + VAR.BOOL[eVarBool.JOB_Empty_SIDConvertInfo] = false; + } + else + { + PUB.log.AddAT($"SId변환테이블에 자료가 없습니다"); + VAR.BOOL[eVarBool.JOB_Empty_SIDConvertInfo] = true; + } + + } + } + catch (Exception ex) + { + PUB.log.AddE(ex.Message); + } + + + if (PUB.sm.Step == eSMStep.RUN) + PUB.log.Add($"[{src}] sid변환작업시작 원본:{oldsid}"); + + var sidconvlist = PUB.Result.DTSidConvert.Where(t => t.SIDFrom.Equals(oldsid)); + if (sidconvlist.Any() == false) + { + PUB.Result.DTSidConvertEmptyList.Add(oldsid); + return $"SID변환정보없음({oldsid}) 전체 DB {PUB.Result.DTSidConvert.Rows.Count}건"; + } + else + { + if (sidconvlist.Count() != 1) + { + //여러개가 있다면 그 데이터 목록을 반환한다. + PUB.Result.DTSidConvertMultiList.Add(oldsid); + var sb = new System.Text.StringBuilder(); + var tolist = sidconvlist.Select(t => t.SIDTo).ToList(); + return string.Join("|", tolist); + //foreach(var dr in sidconvlist) + //{ + // sb.AppendLine($"{dr.SIDFrom}|{dr.SIDTo}"); + //} + //return ($"sid변환테이블정보복수 {sidconvlist.Count()}건 있음"); + } + else + { + //1건의 변경정보가 있다. + //sid값의 빈값 및 동일sid값은 db쿼리시에 진행했으니 이곳의 데이터는 꺠긋하다 + var sidconvDr = sidconvlist.First(); + err = false; + if (PUB.sm.Step == eSMStep.RUN) + PUB.log.AddI($"[{src}] sid변환완료 {oldsid}->{sidconvDr.SIDTo}"); + return sidconvDr.SIDTo; + } + } + } + + /// + /// 바코드값을 비젼버퍼에 기록합니다. + /// + /// + /// + /// + /// 바코드 룰에서 신뢰 하도록 됨(amkor std 라벨이 설정되어있음) + /// + public static bool SetBCDValue(Class.VisionData vdata, string TargetPos, string Value, bool trust) + { + bool retval = false; + Value = Value.Replace("\r", "").Replace("\n", "").Trim(); + + //220901 - 특문있으면 추가 제거 + var r1 = (char)0x1D; + var r2 = (char)0x1E; + var r3 = (char)0x04; + Value = Value.Replace(r1.ToString(), ""); + Value = Value.Replace(r2.ToString(), ""); + Value = Value.Replace(r3.ToString(), ""); + Value = Value.Replace("\r", ""); + Value = Value.Replace("\n", ""); + Value = Value.RemoveNoneASCII().Trim(); + + switch (TargetPos) + { + case "TARGET": + + if (vdata.Target != Value) PUB.log.Add($"update target : {vdata.Target} > {Value}"); + vdata.Target = Value; + retval = true; + + break; + case "MCN": + + if (vdata.MCN != Value) PUB.log.Add($"update mcn : {vdata.MCN} > {Value}"); + vdata.MCN = Value; + retval = true; + + break; + case "SID": + if (vdata.SID.isEmpty()) + { + vdata.SID = Value; + vdata.SID_Trust = trust && vdata.SID.Length == 9 && vdata.SID.StartsWith("10"); + retval = true; + } + else + { + //이전의 값이있지만 신뢰값이 아닌경우이다 + if (vdata.SID_Trust == false) + { + if (trust) + { + vdata.SID = Value; + vdata.SID_Trust = (vdata.SID.Length == 9 && vdata.SID.StartsWith("10")); + retval = true; + } + } + } + break; + case "RID": + if (vdata.RID.isEmpty()) + { + vdata.SetRID(Value, "PASER"); + vdata.RID_Trust = trust; + retval = true; + } + else + { + //if value is not empty , check trust level and Apply data + if (vdata.RID_Trust == false) + { + if (trust) + { + vdata.SetRID(Value, "PASER"); + vdata.RID_Trust = trust; + retval = true; + } + } + else + { + //check newreelid _ old data + if (vdata.RIDNew) + { + if (vdata.RID0.isEmpty()) + { + PUB.log.Add($"RID(Org) Set =>{Value}"); + vdata.RID0 = Value; + } + + } + } + } + break; + case "VLOT": + if (vdata.VLOT.isEmpty()) + { + vdata.VLOT = Value; + vdata.VLOT_Trust = trust; + retval = true; + } + else + { + //if value is not empty , check trust level and Apply data + if (vdata.VLOT_Trust == false) + { + if (trust) + { + vdata.VLOT = Value; + vdata.VLOT_Trust = true; + retval = true; + } + } + } + break; + case "VNAME": + if (vdata.VNAME.isEmpty()) + { + vdata.VNAME = Value; + vdata.VNAME_Trust = trust; + retval = true; + } + else + { + //if value is not empty , check trust level and Apply data + if (vdata.VNAME_Trust == false) + { + if (trust) + { + vdata.VNAME = Value; + vdata.VNAME_Trust = true; + retval = true; + } + } + } + break; + case "PART": + if (vdata.PARTNO.isEmpty()) + { + vdata.PARTNO = Value; + vdata.PARTNO_Trust = trust; + retval = true; + } + else + { + //if value is not empty , check trust level and Apply data + if (vdata.PARTNO_Trust == false) + { + if (trust) + { + vdata.PARTNO = Value; + vdata.PARTNO_Trust = true; + retval = true; + } + } + } + break; + case "MFG": + if (vdata.MFGDATE.isEmpty()) + { + vdata.MFGDATE = Value; + vdata.MFGDATE_Trust = trust; + retval = true; + } + else + { + //if value is not empty , check trust level and Apply data + if (vdata.MFGDATE_Trust == false) + { + if (trust) + { + vdata.MFGDATE = Value; + vdata.MFGDATE_Trust = true; + retval = true; + } + } + } + break; + case "QTY": + if (vdata.QTY.isEmpty()) + { + vdata.QTY = Value; + vdata.QTY_Trust = trust; + retval = true; + } + else + { + //if value is not empty , check trust level and Apply data + if (vdata.QTY_Trust == false) + { + if (trust) + { + vdata.QTY = Value; + vdata.QTY_Trust = true; + retval = true; + } + } + else + { + //신규발행에의해 신뢰된 자료라면 원본릴아이디에 이 값을 쓴다 + if (vdata.QTY0.Equals("NONE") || vdata.QTY0.isEmpty()) + { + PUB.log.AddAT($"릴수량(원본)값 적용(신규값적용상태):{Value}"); + vdata.QTY0 = Value.Trim(); + } + } + } + break; + case "QTYRQ": + if (vdata.QTY.isEmpty()) + { + vdata.QTY = Value; + vdata.QTYRQ = true; + vdata.QTY_Trust = trust; + retval = true; + } + else + { + if (trust) //if value is trust, + { + vdata.QTY = Value; + vdata.QTYRQ = true; + vdata.QTY_Trust = true; + retval = true; + } + } + break; + } + return retval; + } + + + + + public static List GetPatterns(string custname, bool ignore) + { + var patterns = new List(); + if (custname.isEmpty()) custname = "%"; + + //데이터베이스에서 해당 데이터를 가져온다 + if (AR.SETTING.Data.OnlineMode) + { + try + { + using (var ta = new DataSet1TableAdapters.Component_Reel_RegExRuleTableAdapter()) + { + ta.ClearBeforeFill = true; + if (ignore) ta.FillIgnore(PUB.mdm.dataSet.Component_Reel_RegExRule, custname); + else ta.Fill(PUB.mdm.dataSet.Component_Reel_RegExRule, custname); + PUB.mdm.dataSet.Component_Reel_RegExRule.AcceptChanges(); + } + } + catch (Exception ex) + { + PUB.log.Add(ex.Message); + } + } + + //data + foreach (DataSet1.Component_Reel_RegExRuleRow dr in PUB.mdm.dataSet.Component_Reel_RegExRule) + { + if (ignore) + { + if (dr.Pattern.isEmpty()) continue; + } + else + { + if (dr.Groups.isEmpty() || dr.Pattern.isEmpty()) continue; + } + + var groupsbuf = dr.Groups.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + var Groups = new List(); + foreach (var item in groupsbuf) + { + var itembuf = item.Split('='); + Groups.Add(new Class.RegexGroupMatch + { + GroupNo = int.Parse(itembuf[1].Trim()), + TargetPos = itembuf[0].Trim(), + }); + } + + //add pattern data + patterns.Add(new Class.RegexPattern + { + Seq = dr.Seq, + Customer = dr.CustCode, + Description = dr.Description, + Symbol = dr.Symbol, + Pattern = dr.Pattern, + IsTrust = dr.IsTrust, + IsAmkStd = dr.IsAmkStd, + IsEnable = dr.IsEnable, + Groups = Groups.ToArray(), + }); + } + return patterns; + } + + + public static List GetPrintPatterns() + { + var patterns = new List(); + + //if (custname.isEmpty()) custname = "%"; + //데이터베이스에서 해당 데이터를 가져온다 + if (AR.SETTING.Data.OnlineMode) + { + try + { + using (var ta = new DataSet1TableAdapters.Component_Reel_PrintRegExRuleTableAdapter()) + { + ta.ClearBeforeFill = true; + ta.Fill(PUB.mdm.dataSet.Component_Reel_PrintRegExRule); + PUB.mdm.dataSet.Component_Reel_RegExRule.AcceptChanges(); + } + } + catch (Exception ex) + { + PUB.log.AddE(ex.Message); + } + } + + + //data + foreach (DataSet1.Component_Reel_PrintRegExRuleRow dr in PUB.mdm.dataSet.Component_Reel_PrintRegExRule) + { + if (dr.Groups.isEmpty() || dr.Pattern.isEmpty()) continue; + + var groupsbuf = dr.Groups.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + var Groups = new List(); + foreach (var item in groupsbuf) + { + var itembuf = item.Split('='); + Groups.Add(new Class.RegexGroupMatch + { + GroupNo = int.Parse(itembuf[1].Trim()), + TargetPos = itembuf[0].Trim(), + }); + } + + //add pattern data + patterns.Add(new Class.RegexPattern + { + Seq = dr.Seq, + Customer = dr.CustCode, + Description = dr.Description, + Symbol = dr.Symbol, + Pattern = dr.Pattern, + Groups = Groups.ToArray(), + }); + } + + + return patterns; + } + + + public static int RemoveCache(string basefile) + { + var fi = new System.IO.FileInfo(basefile); + //해당폴더에서 해당 차수의 파일 및 다른 확장자 모두를 삭제한다. + var fisearch = fi.Name.Replace(fi.Extension, ".*"); + var delFiles = fi.Directory.GetFiles(fisearch, System.IO.SearchOption.TopDirectoryOnly); + if (delFiles.Count() < 1) return 0; + else + { + //파일을 삭제한다. + var cnt = 0; + try + { + foreach (var delFile in delFiles) + { + PUB.log.Add("보관파일삭제: " + delFile.FullName); + delFile.Delete(); + cnt += 1; + } + } + catch (Exception ex) + { + PUB.log.AddE(ex.Message); + } + return cnt; + } + } + //public static class flag + //{ + // public static void set(eFlag idx, bool value, string remark) + // { + // VAR.BOOL[(int)idx] + // } + //} + + public static class flag + { + public static bool get(eVarBool flag) + { + return VAR.BOOL[(int)flag]; + } + public static void set(eVarBool flag, bool value, string remark) + { + VAR.BOOL.Set((int)flag, value, remark); + } + } + + public static void initCore() + { + //system parameter + system = new SystemSetting(); + system.Load(); + + system_mot = new System_MotParameter(UTIL.MakePath("System_mot.xml")); + system_mot.Load(); + + //setting + SETTING.Load(); + VAR.Init(LenI32: 128, LenBool: 192); + + //flag = new VarDataBool(128); + + //user setting + uSetting = new UserSetting(); + uSetting.Load(); + + //counter setting + counter = new CounterSetting(); + counter.Load(); + + + //log + log = new arUtil.Log(); + logDbg = new arUtil.Log(); logDbg.FileNameFormat = "{yyyyMMdd}_DEBUG"; + logFlag = new arUtil.Log(); logFlag.FileNameFormat = "{yyyyMMdd}_FG"; + logILock = new arUtil.Log(); logILock.FileNameFormat = "{yyyyMMdd}_IL"; + logbarcode = new arUtil.Log(); logbarcode.FileNameFormat = "{yyyyMMdd}_BC"; + logWS = new arUtil.Log(); logWS.FileNameFormat = "{yyyyMMdd}_WS"; + logKeyence = new arUtil.Log(); logKeyence.FileNameFormat = "{yyyyMMdd}_KEYENCE"; + logILStop = new arUtil.Log(); logILStop.FileNameFormat = "{yyyyMMdd}_ILOCK"; + logVision = new arUtil.Log(); logVision.FileNameFormat = "{yyyyMMdd}_VISION"; + + //popupmessage + popup = new MessageWindow(); + popup.WindowClose += popup_WindowClose; + popup.WindowOpen += popup_WindowOpen; + + //zpl파일 만든다. + var fn = System.IO.Path.Combine(UTIL.CurrentPath, "zpl.txt"); + if (System.IO.File.Exists(fn) == false) + { + System.IO.File.WriteAllText(fn, Properties.Settings.Default.ZPL, System.Text.Encoding.Default); + } + + } + + + + static void popup_WindowOpen(object sender, EventArgs e) + { + var msgdata = sender as MessageWindow.CMessageData; + Console.WriteLine("window open : " + msgdata.Tag); + } + + static void popup_WindowClose(object sender, EventArgs e) + { + var msgdata = sender as MessageWindow.CMessageData; + Console.WriteLine("window close : " + msgdata.Tag); + } + public static void LogFlush() + { + PUB.log.Flush(); + PUB.logbarcode.Flush(); + PUB.logDbg.Flush(); + PUB.logFlag.Flush(); + PUB.logILock.Flush(); + PUB.logKeyence.Flush(); + PUB.logILStop.Flush(); + PUB.logVision.Flush(); + } + + public static void init() + { + Result = new CResult(); + + //state machine + sm = new Device.CStateMachine(); + + //database + mdm = new Manager.ModelManager( + UTIL.CurrentPath + "Model\\modelv.csv", + UTIL.CurrentPath + "Model\\modelc.csv", + UTIL.CurrentPath + "Model\\modele.xml", + UTIL.CurrentPath + "Model\\modeli.xml", + UTIL.CurrentPath + "Model\\modelo.xml"); + + mdm.Load(); + + //핀정보설정 + DIO.Pin = new PinList(); + DIO.Pin.SetOutputData(PUB.mdm.dataSet.OutputDescription); + DIO.Pin.SetInputData(PUB.mdm.dataSet.InputDescription); + + + //dbSQL = new Manager.DataBaseMSSQL(); + //dbmHistory = new Manager.DatabaseManagerHistory(); + dbmSidHistory = new Manager.DatabaseManagerSIDHistory(); + + dbmCount = new Manager.DatabaseManagerCount(); + dbmCount.dataPath = AR.SETTING.Data.Path_Data; //200113 + + dio = new arDev.AjinEXTEK.DIO(); + mot = new arDev.AjinEXTEK.MOT(); + + // flag = new Flag(); + + //모터축에대한 인터락우선추가 + var axislist = Enum.GetNames(typeof(eAxis)); + iLock = new CInterLock[axislist.Length]; + int i = 0; + for (i = 0; i < axislist.Length; i++) + { + var axisname = axislist[i]; + iLock[i] = new CInterLock(64, axisname); + iLock[i].idx = i; + } + + //프린터관련 인터락추가 + iLockPRL = new CInterLock(64, "PRL"); + iLockPRR = new CInterLock(64, "PRR"); + iLockVS0 = new CInterLock(64, "VS0"); + iLockVS1 = new CInterLock(64, "VS1"); + iLockVS2 = new CInterLock(64, "VS2"); + iLockCVL = new CInterLock(64, "CVL"); + iLockCVR = new CInterLock(64, "CVR"); + + Array.Resize(ref iLock, axislist.Length + 7); + iLock[i++] = iLockPRL; + iLock[i++] = iLockPRR; + iLock[i++] = iLockVS0; + iLock[i++] = iLockVS1; + iLock[i++] = iLockVS2; + iLock[i++] = iLockCVL; + iLock[i++] = iLockCVR; + + //default를 해제하면 sps에서 할당제한을 한다 + //sps도 같이 체크해야함 + for (i = 7; i < iLock.Length; i++) + { + //iLock[i].DefaultLock = false; + iLock[i].idx = i; + } + + //language + Lang.Loading(AR.SETTING.Data.Language + ".ini"); + + LoadDataTable(); + + + + + //allow list + userList = new DataSet1.UsersDataTable(); + string fn = AppDomain.CurrentDomain.BaseDirectory + "users.xml"; + if (System.IO.File.Exists(fn)) userList.ReadXml(fn); + else userList.WriteXml(fn, true); + + + BuzzerTime = DateTime.Parse("1982-11-23"); + MGZRunTime = DateTime.Parse("1982-11-23"); + LoadSIDList(); //사용자sid목록 가져옴 + } + + public static string IP { get; set; } + public static string MAC { get; set; } + + /// + /// 프로그램 사용기록 추가 + /// + /// + /// + /// + public static void CheckNRegister3(string prgmName, string develop, string prgmVersion) + { + if (prgmName.Length > 50) prgmName = prgmName.Substring(0, 50); //길이제한 + var task = Task.Factory.StartNew(() => + { + try + { + string ip = ""; + string mac = ""; + // string prgmName = Application.ProductName; + + var nif = NetworkInterface.GetAllNetworkInterfaces(); + var host = Dns.GetHostEntry(Dns.GetHostName()); + string fullname = System.Net.Dns.GetHostEntry("").HostName; + foreach (IPAddress r in host.AddressList) + { + string str = r.ToString(); + + if (str != "" && str.Substring(0, 3) == "10.") + { + ip = str; + break; + } + } + + string rtn = string.Empty; + ObjectQuery oq = new System.Management.ObjectQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled='TRUE'"); + ManagementObjectSearcher query1 = new ManagementObjectSearcher(oq); + foreach (ManagementObject mo in query1.Get()) + { + string[] address = (string[])mo["IPAddress"]; + if (address[0] == ip && mo["MACAddress"] != null) + { + mac = mo["MACAddress"].ToString(); + break; + } + } + + if (ip == "" || mac == "") + { + return; + } + + + SqlConnection conn = new SqlConnection("Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!"); + conn.Open(); + string ProcName = "AddPrgmUser3"; + SqlCommand cmd = new SqlCommand(ProcName, conn) + { + CommandType = CommandType.StoredProcedure + }; + + SqlParameter param = cmd.Parameters.Add("@mac", SqlDbType.NVarChar, 50); + param.Value = mac; + + param = cmd.Parameters.Add("@ip", SqlDbType.NVarChar, 50); + param.Value = ip; + + param = cmd.Parameters.Add("@pgrm", SqlDbType.NVarChar, 50); + param.Value = prgmName; + + param = cmd.Parameters.Add("@develop", SqlDbType.NVarChar, 50); + param.Value = develop; + + param = cmd.Parameters.Add("@pgver", SqlDbType.NVarChar, 50); + param.Value = prgmVersion; + + param = cmd.Parameters.Add("@prgmLogin", SqlDbType.VarChar, 20); + param.Value = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + + param = cmd.Parameters.Add("@account", SqlDbType.NVarChar, 50); + param.Value = System.Environment.UserName; + + param = cmd.Parameters.Add("@hostname", SqlDbType.NVarChar, 100); + param.Value = fullname; + + cmd.ExecuteNonQuery(); + conn.Close(); + + IP = ip; + MAC = mac; + } + catch (Exception ex) + { + PUB.log.AddE(ex.Message); + } + + }); + } + + /// + /// 디버깅정보르를 포함한 시스템 로그를 넣습니다. + /// + /// + /// + /// + /// + public static void AddSystemLog(string prgmVersion, string Screen, string Message, + [CallerFilePath] string filenpath = null, + [CallerLineNumber] int linenumer = -1, + [CallerMemberName] string callMember = null) + { + + var stackFrame = new System.Diagnostics.StackTrace(1).GetFrame(1); + string fileName = stackFrame.GetFileName(); + if (fileName.isEmpty()) fileName = filenpath; + + string methodName = stackFrame.GetMethod().ToString(); + if (methodName.isEmpty()) methodName = callMember; + + int lineNumber = stackFrame.GetFileLineNumber(); + if (linenumer != -1) lineNumber = linenumer; + + var maxlen = 100; + if (Screen.Length > maxlen) Screen = Screen.Substring(0, maxlen - 1); //길이제한 + maxlen = 255; + if (Message.Length > maxlen) Message = Message.Substring(0, maxlen - 1); //길이제한 + maxlen = 3000; + + var TraceInfo = stackFrame.ToString(); + if (TraceInfo.Length > maxlen) TraceInfo = TraceInfo.Substring(0, maxlen - 1); //길이제한 + + + var task = Task.Factory.StartNew(() => + { + try + { + string HostName = System.Net.Dns.GetHostEntry("").HostName; + + SqlConnection conn = new SqlConnection("Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!"); + conn.Open(); + string ProcName = "insert into SystemLog_STDLabelAttach(HostName,Version,Screen,Message,TraceInfo,wdate,FileName,LineNumber) values(@p1,@p2,@p3,@p4,@p5,@p6,@p7,@p8)"; + SqlCommand cmd = new SqlCommand(ProcName, conn); + cmd.CommandType = CommandType.Text; + var param = cmd.Parameters.Add("@p1", SqlDbType.VarChar, 50); + param.Value = HostName; + + param = cmd.Parameters.Add("@p2", SqlDbType.VarChar, 20); + param.Value = prgmVersion; + + param = cmd.Parameters.Add("@p3", SqlDbType.VarChar, 100); + param.Value = Screen; + + param = cmd.Parameters.Add("@p4", SqlDbType.VarChar, 255); + param.Value = Message; + + param = cmd.Parameters.Add("@p5", SqlDbType.VarChar); + param.Value = TraceInfo; + + param = cmd.Parameters.Add("@p6", SqlDbType.DateTime); + param.Value = DateTime.Now; + + param = cmd.Parameters.Add("@p7", SqlDbType.VarChar, 1000); + param.Value = fileName; + + param = cmd.Parameters.Add("@p8", SqlDbType.Int); + param.Value = lineNumber; + + var cnt = cmd.ExecuteNonQuery(); + conn.Close(); + } + catch (Exception ex) + { + PUB.log.AddE(ex.Message); + } + + }); + } + public static Boolean PasswordCheck() + { + var pass = new Dialog.fPassword(); + if (pass.ShowDialog() == DialogResult.OK) + { + var p = AR.SETTING.Data.Password_Setup; + if (p.isEmpty()) p = DateTime.Now.ToString("ddMM"); + if (pass.tbInput.Text.Trim() != p) return false; + else return true; + } + else return false; + } + public static void LoadDataTable() + { + mailForm = new DataSet1.MailFormatDataTable(); + string fn = AppDomain.CurrentDomain.BaseDirectory + "mailForm.xml"; + if (System.IO.File.Exists(fn)) mailForm.ReadXml(fn); + else + { + var nr = mailForm.NewMailFormatRow(); + nr.subject = ""; + nr.content = ""; + mailForm.AddMailFormatRow(nr); + mailForm.AcceptChanges(); + mailForm.WriteXml(fn, true); + } + mailList = new DataSet1.MailRecipientDataTable(); + string fn1 = AppDomain.CurrentDomain.BaseDirectory + "mailList.xml"; + if (System.IO.File.Exists(fn1)) mailList.ReadXml(fn1); + else mailList.WriteXml(fn, true); + } + public static Rectangle GetVisionOrientSearchArea( + Rectangle baserect, + int offsetX, + int offsetY, + out string VisionOrientMessage) + { + VisionOrientMessage = ""; + var newORectW = baserect.Width + offsetX; + var newORectH = baserect.Height + offsetY; + + var newORectX = baserect.X - ((newORectW - baserect.Width) / 2.0); + var newORectY = baserect.Y - ((newORectH - baserect.Height) / 2.0); + if (newORectX < 1) + { + newORectW += (int)newORectY; + newORectX = 1; + } + if (newORectY < 1) + { + newORectH += (int)newORectY; + newORectY = 1; + } + if (newORectW < 4) newORectW = 0; + if (newORectH < 4) newORectH = 0; + var newORect = new Rectangle((int)newORectX, (int)newORectY, (int)newORectW, (int)newORectH); + if (newORect.Width < 1 || newORect.Height < 1) + { + VisionOrientMessage = string.Format("기준영역 크기 오류({0},{1},{2},{3})", newORect.Left, newORect.Top, newORect.Width, newORect.Height); + return Rectangle.Empty; + } + else return newORect; + } + + public static void GetJobColor(Class.JobData.ErrorCode result, Color baseBack, out Color fColor, out Color bColor) + { + if (result == Class.JobData.ErrorCode.BarcodeRead) + { + //배출됫엇다면 색상을 변경한다. + fColor = Color.Tomato; + bColor = baseBack; + } + else + { + fColor = Color.WhiteSmoke; + bColor = baseBack; + } + } + + public static DataSet1.UserSIDDataTable DTUserSID; + public static void LoadSIDList() + { + if (DTUserSID == null) DTUserSID = new DataSet1.UserSIDDataTable(); + else DTUserSID.Clear(); + var fi = new System.IO.FileInfo(UTIL.CurrentPath + "Data\\UserSID.csv"); + + + if (fi.Exists == true) + { + string[] lines = null; + try + { + lines = System.IO.File.ReadAllLines(fi.FullName, System.Text.Encoding.UTF8); + } + catch (Exception ex) + { + UTIL.MsgE(ex.Message, true); + lines = new string[] { }; + } + foreach (var line in lines) + { + if (line.isEmpty()) continue; + if (line.StartsWith("#")) continue; //주석문 + var buffer = line.Split(','); + if (buffer.Length < 2) continue; + var port = buffer[0]; + var sid = buffer[1]; + if (sid.isEmpty()) continue; + if (port == "0") port = "11"; + if (port == "1") port = "12"; + if (port == "2") port = "21"; + if (port == "3") port = "22"; + if (port == "4") port = "31"; + if (port == "5") port = "32"; + if (port == "6") port = "41"; + if (port == "7") port = "42"; + + //중복체크 + var Exist = DTUserSID.Where(t => t.SID == sid && t.Port == port).Count() > 0; + if (Exist == false) + { + var newdr = DTUserSID.NewUserSIDRow(); + newdr.Port = port; + newdr.SID = sid; + DTUserSID.AddUserSIDRow(newdr); + } + } + } + else if (fi.Directory.Exists == false) fi.Directory.Create(); + + DTUserSID.AcceptChanges(); + PUB.log.Add("사용자 SID 목록 : " + DTUserSID.Count.ToString() + " 건 불러옴"); + } + public static void SaveSIDList() + { + if (DTUserSID == null) return; + var fi = new System.IO.FileInfo(UTIL.CurrentPath + "Data\\UserSID.csv"); + if (fi.Directory.Exists == false) fi.Directory.Create(); + + if (DTUserSID.Count < 1) fi.Delete(); + else + { + //자료를 저장한다. + var sb = new System.Text.StringBuilder(); + sb.AppendLine("#PORT,SID"); + var orderlist = from m in DTUserSID + orderby m.Port + orderby m.SID + select m; + + var cnt = 0; + foreach (DataSet1.UserSIDRow dr in orderlist) + { + if (dr.SID.isEmpty() || dr.Port.isEmpty()) continue; + sb.AppendLine(string.Format("{0},{1}", dr.Port, dr.SID)); + cnt += 1; + } + System.IO.File.WriteAllText(fi.FullName, sb.ToString(), System.Text.Encoding.UTF8); + PUB.log.Add(string.Format("{0}건의 사용자 sid가 저장되었습니다", cnt)); + } + } + + public static double GetFreeSpace(string driveletter) + { + try + { + var di = new System.IO.DriveInfo(driveletter); + var freespace = di.TotalFreeSpace; + var totalspace = di.TotalSize; + var freeSpaceRate = (freespace * 1.0 / totalspace) * 100.0; + return freeSpaceRate; + } + catch + { + return 100.0; + } + } + + public static string getSavePath(out double freespace) + { + Boolean path1Exist = false; + double freespace1 = 100.0; + string savePath1 = ""; + + freespace = 100.0; + + savePath1 = System.IO.Path.Combine(AR.SETTING.Data.Path_Data, "Images"); + if (savePath1 != "" && System.IO.Directory.Exists(savePath1)) + { + path1Exist = true; + //이폴더를 사용 + if (savePath1.StartsWith("\\")) return savePath1; + //남은잔량을 체크한다. + freespace1 = GetFreeSpace(savePath1.Substring(0, 1)); + if (freespace1 >= AR.SETTING.Data.AutoDeleteThreshold) return savePath1; + } + + if (path1Exist) + { + freespace = freespace1; + return savePath1; + } + + //이제 문제가 좀 심각? (폴더가 없다) + var savePath = System.IO.Path.Combine(UTIL.CurrentPath, "Images"); + if (System.IO.Directory.Exists(savePath) == false) + System.IO.Directory.CreateDirectory(savePath); + + freespace = GetFreeSpace(savePath.Substring(0, 1)); + return savePath; + } + public static double ChangeValuePopup(double value, string title) + { + var f = new Dialog.fInput(title, value.ToString()); + if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK) + { + var val = double.Parse(f.tbInput.Text); + return val; + } + else return value; + + } + //public static bool ImportSIDInfo(DataSet1.Component_Reel_SID_InformationDataTable Component_Reel_SID_Information, + // String InputFileName, + // System.Windows.Forms.ProgressBar progressBar1 = null) + //{ + // //엑셀을 읽어와서 처리한다. + // var fi = new System.IO.FileInfo(InputFileName); + // var ext = fi.Extension.ToLower(); + // libxl.Book book; + // if (ext == ".xlsx") book = new libxl.XmlBook(); + // else if (ext == ".xls") book = new libxl.BinBook(); + // else return false; + + // var keyinfo = Properties.Settings.Default.libxl.Split('/'); + // book.setKey(keyinfo[0], keyinfo[1]); + // book.load(fi.FullName); + // var sheet = book.getSheet(0); + + // var cs = sheet.firstCol(); + // var ce = sheet.lastCol(); + // var rs = sheet.firstRow(); + // var re = sheet.lastRow(); + + // if (progressBar1 != null) + // { + // progressBar1.Minimum = 0; + // progressBar1.Maximum = re; + // progressBar1.Value = 0; + // } + + // if (rs == 0) rs += 1; + + // int cntA = 0; + // int cntU = 0; + // for (int row = rs; row <= re; row++) + // { + // //update progress bar + // if (progressBar1 != null) + // { + // if (progressBar1.Value < progressBar1.Maximum) progressBar1.Value += 1; + // } + + + // var cCustCode = sheet.readStr(row, 0); + // var cSID = sheet.readStr(row, 1); + // var cPartNo = sheet.readStr(row, 2); + + // if (cCustCode.isEmpty() == false && cCustCode.Length != 4) + // cCustCode = cCustCode.PadLeft(4, '0'); + + // if (cSID.isEmpty() && cCustCode.isEmpty()) break; // + + // //if (cSID.StartsWith("10")) + // //{ + // EnumerableRowCollection plist = null; + // plist = Component_Reel_SID_Information.Where(t => t.MC == AR.SETTING.Data.McName && t.SID == cSID && t.CustCode == cCustCode && t.PartNo == cPartNo); + + // if (plist == null || plist.Any() == false) + // { + // //존재하지않으면 추가한다. + // var newdr = Component_Reel_SID_Information.NewComponent_Reel_SID_InformationRow(); + // newdr.CustCode = cCustCode; + // newdr.SID = cSID; + // newdr.PartNo = cPartNo; + // newdr.MC = AR.SETTING.Data.McName; + // newdr.wdate = DateTime.Now; + // Component_Reel_SID_Information.AddComponent_Reel_SID_InformationRow(newdr); + // cntA += 1; + // } + // else + // { + // //있다면 업데이트 해준다. + // //foreach (var item in plist) + // //{ + // // if (cSID.isEmpty() == false) + // // { + // // item.SID = cSID; ; + // // item.EndEdit(); + // // cntU += 1; + // // } + + // //} + // } + // //} + + // } + // PUB.log.Add($"Import SID Information : {cntA}"); + // return true; + //} + + + public static void CheckFreeSpace() + { + //용량확인 + var DriveName = AR.SETTING.Data.Path_Data.Substring(0, 1); + PUB.FreeSpace = UTIL.GetFreeSpace(DriveName); + + } + + public static void splitID(string ID, out string ww, out string seq) + { + if (ID.Length < 3) + { + ww = ""; + seq = ""; + } + else + { + try + { + ww = ID.Substring(0, 2);// int.Parse(ID.Substring(0, 2)); + seq = ID.Substring(2);// int.Parse(ID.Substring(2)); + } + catch (Exception ex) + { + PUB.log.AddE("slit id eerr" + ex.Message); + ww = ""; + seq = "-1"; + } + } + } + public static UInt16[] SIDtoUInt16(string sid) + { + var sidstr = sid.PadLeft(10, '0'); //총 10자리로 만들어놓는다 + var getbytes = System.Text.Encoding.Default.GetBytes(sidstr); + + var c1 = getbytes[1].ToString("X2") + getbytes[0].ToString("x2"); + var c2 = getbytes[3].ToString("X2") + getbytes[2].ToString("x2"); + var c3 = getbytes[5].ToString("X2") + getbytes[4].ToString("x2"); + var c4 = getbytes[7].ToString("X2") + getbytes[6].ToString("x2"); + var c5 = getbytes[9].ToString("X2") + getbytes[8].ToString("x2"); + + var Buffer = new UInt16[5]; + var index = 0; + Buffer[index++] = Convert.ToUInt16(c1, 16); + Buffer[index++] = Convert.ToUInt16(c2, 16); + Buffer[index++] = Convert.ToUInt16(c3, 16); + Buffer[index++] = Convert.ToUInt16(c4, 16); + Buffer[index++] = Convert.ToUInt16(c5, 16); + return Buffer; + } + + public static void ChangeUIPopup(System.Windows.Forms.NumericUpDown valueCtl) + { + var value = valueCtl.Value.ToString(); + Dialog.fInput f = new Dialog.fInput("Input value", value); + if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK) + { + var val = decimal.Parse(f.tbInput.Text); + if (val < valueCtl.Minimum) + { + UTIL.MsgE(string.Format("최소 입력값은 {0} 입니다.", valueCtl.Minimum)); + val = valueCtl.Minimum; + } + if (val > valueCtl.Maximum) + { + UTIL.MsgE(string.Format("최대 입력값은 {0} 입니다.", valueCtl.Maximum)); + val = valueCtl.Maximum; + } + valueCtl.Value = val; + } + } + + #region "message description" + + + public static string GetErrorMessage(eECode err, params object[] args) + { + string ermsg = string.Empty;// $"[E{(int)err}] "; + var dr = PUB.mdm.dataSet.ErrorDescription.Where(t => t.Idx == (short)err).FirstOrDefault(); + if (dr != null) + { + //자료는 있으나 사용자가 입력하지 않은 상태 + if (dr.Description.isEmpty()) ermsg += "NO ERROR DESCRIPTION\nERR:" + err.ToString() + "\n{0}"; + else ermsg += dr.Description.Replace("\\n", "\n"); + } + else ermsg = "NO ERROR DATA\nERR:" + err.ToString() + "\n{0}"; //자료자체를 찾을 수 없다 + try + { + var newermsg = string.Format(ermsg, args); + ermsg = newermsg; + } + catch (Exception ex) + { + + } + return ermsg; + } + + public static string GetPinDescription(eDIName pin) + { + var pinno = (int)pin; + string ermsg = $"[X{pinno:X2}] {pin}"; + try + { + var dr = PUB.mdm.dataSet.InputDescription.Where(t => t.Idx == (short)pin).FirstOrDefault(); + if (dr != null) + { + if (dr.Description.isEmpty()) ermsg += $" {pin}"; + else ermsg += $" " + dr.Description.Replace("\\n", "\n"); + } + } + catch (Exception ex) { ermsg += "\n설명가져오기오류\n" + ex.Message; } + return ermsg; + } + + public static string GetPinDescription(eDOName pin) + { + var pinno = (int)pin; + string ermsg = $"[X{pinno:X2}] {pin}"; + try + { + var dr = PUB.mdm.dataSet.OutputDescription.Where(t => t.Idx == (short)pin).FirstOrDefault(); + if (dr != null) + { + if (dr.Description.isEmpty()) ermsg += $" {pin}"; + else ermsg += $" " + dr.Description.Replace("\\n", "\n"); + } + } + catch (Exception ex) { ermsg += "\n설명가져오기오류\n" + ex.Message; } + return ermsg; + } + + public static string GetPinName(eDIName pin) + { + var pinno = (int)pin; + string ermsg = $"[X{pinno:X2}] {pin}"; + + + try + { + var dr = PUB.mdm.dataSet.InputDescription.Where(t => t.Idx == (short)pin).FirstOrDefault(); + if (dr != null) + { + ermsg = dr.Title; + } + } + catch (Exception ex) { ermsg += "\n이름가져오기오류\n" + ex.Message; } + + + + return ermsg; + } + + public static string GetPinName(eDOName pin) + { + var pinno = (int)pin; + string ermsg = $"[Y{pinno:X2}] {pin}"; + + try + { + var dr = PUB.mdm.dataSet.OutputDescription.Where(t => t.Idx == (short)pin).FirstOrDefault(); + if (dr != null) + { + ermsg = dr.Title; + } + } + catch (Exception ex) { ermsg += "\n이름가져오기오류\n" + ex.Message; } + + + return ermsg; + } + public static string GetResultCodeMessage(eResult rltCode) + { + //별도 메세지처리없이 그대로 노출한다 + return rltCode.ToString().ToUpper(); + } + + #endregion + + } +} diff --git a/Handler/Project/Resources/action_go.gif b/Handler/Project/Resources/action_go.gif new file mode 100644 index 0000000..82ae7ed Binary files /dev/null and b/Handler/Project/Resources/action_go.gif differ diff --git a/Handler/Project/Resources/icons8-add-40.png b/Handler/Project/Resources/icons8-add-40.png new file mode 100644 index 0000000..d7acc3e Binary files /dev/null and b/Handler/Project/Resources/icons8-add-40.png differ diff --git a/Handler/Project/Resources/icons8-add-image-40.png b/Handler/Project/Resources/icons8-add-image-40.png new file mode 100644 index 0000000..7713915 Binary files /dev/null and b/Handler/Project/Resources/icons8-add-image-40.png differ diff --git a/Handler/Project/Resources/icons8-arrow-40-right.png b/Handler/Project/Resources/icons8-arrow-40-right.png new file mode 100644 index 0000000..c066ecf Binary files /dev/null and b/Handler/Project/Resources/icons8-arrow-40-right.png differ diff --git a/Handler/Project/Resources/icons8-arrow-pointing-left-40.png b/Handler/Project/Resources/icons8-arrow-pointing-left-40.png new file mode 100644 index 0000000..3296d3c Binary files /dev/null and b/Handler/Project/Resources/icons8-arrow-pointing-left-40.png differ diff --git a/Handler/Project/Resources/icons8-backward-40.png b/Handler/Project/Resources/icons8-backward-40.png new file mode 100644 index 0000000..60202e3 Binary files /dev/null and b/Handler/Project/Resources/icons8-backward-40.png differ diff --git a/Handler/Project/Resources/icons8-barcode-scanner-40.png b/Handler/Project/Resources/icons8-barcode-scanner-40.png new file mode 100644 index 0000000..a90a934 Binary files /dev/null and b/Handler/Project/Resources/icons8-barcode-scanner-40.png differ diff --git a/Handler/Project/Resources/icons8-black-circle-40.png b/Handler/Project/Resources/icons8-black-circle-40.png new file mode 100644 index 0000000..f70bfc3 Binary files /dev/null and b/Handler/Project/Resources/icons8-black-circle-40.png differ diff --git a/Handler/Project/Resources/icons8-border-all-40.png b/Handler/Project/Resources/icons8-border-all-40.png new file mode 100644 index 0000000..692dfed Binary files /dev/null and b/Handler/Project/Resources/icons8-border-all-40.png differ diff --git a/Handler/Project/Resources/icons8-broom-40.png b/Handler/Project/Resources/icons8-broom-40.png new file mode 100644 index 0000000..699b3ff Binary files /dev/null and b/Handler/Project/Resources/icons8-broom-40.png differ diff --git a/Handler/Project/Resources/icons8-camera-40.png b/Handler/Project/Resources/icons8-camera-40.png new file mode 100644 index 0000000..bc1d5c1 Binary files /dev/null and b/Handler/Project/Resources/icons8-camera-40.png differ diff --git a/Handler/Project/Resources/icons8-camera-401.png b/Handler/Project/Resources/icons8-camera-401.png new file mode 100644 index 0000000..bc1d5c1 Binary files /dev/null and b/Handler/Project/Resources/icons8-camera-401.png differ diff --git a/Handler/Project/Resources/icons8-cancel-40.png b/Handler/Project/Resources/icons8-cancel-40.png new file mode 100644 index 0000000..7d1f298 Binary files /dev/null and b/Handler/Project/Resources/icons8-cancel-40.png differ diff --git a/Handler/Project/Resources/icons8-checked-40.png b/Handler/Project/Resources/icons8-checked-40.png new file mode 100644 index 0000000..8d08969 Binary files /dev/null and b/Handler/Project/Resources/icons8-checked-40.png differ diff --git a/Handler/Project/Resources/icons8-checked-radio-button-48.png b/Handler/Project/Resources/icons8-checked-radio-button-48.png new file mode 100644 index 0000000..7130e2f Binary files /dev/null and b/Handler/Project/Resources/icons8-checked-radio-button-48.png differ diff --git a/Handler/Project/Resources/icons8-clamps-40.png b/Handler/Project/Resources/icons8-clamps-40.png new file mode 100644 index 0000000..1a267bb Binary files /dev/null and b/Handler/Project/Resources/icons8-clamps-40.png differ diff --git a/Handler/Project/Resources/icons8-control-panel-40.png b/Handler/Project/Resources/icons8-control-panel-40.png new file mode 100644 index 0000000..d7b3121 Binary files /dev/null and b/Handler/Project/Resources/icons8-control-panel-40.png differ diff --git a/Handler/Project/Resources/icons8-copy-40.png b/Handler/Project/Resources/icons8-copy-40.png new file mode 100644 index 0000000..29c6ef5 Binary files /dev/null and b/Handler/Project/Resources/icons8-copy-40.png differ diff --git a/Handler/Project/Resources/icons8-delete-40.png b/Handler/Project/Resources/icons8-delete-40.png new file mode 100644 index 0000000..11c1a98 Binary files /dev/null and b/Handler/Project/Resources/icons8-delete-40.png differ diff --git a/Handler/Project/Resources/icons8-edit-48.png b/Handler/Project/Resources/icons8-edit-48.png new file mode 100644 index 0000000..c45b94c Binary files /dev/null and b/Handler/Project/Resources/icons8-edit-48.png differ diff --git a/Handler/Project/Resources/icons8-exercise-40.png b/Handler/Project/Resources/icons8-exercise-40.png new file mode 100644 index 0000000..ee72597 Binary files /dev/null and b/Handler/Project/Resources/icons8-exercise-40.png differ diff --git a/Handler/Project/Resources/icons8-flip-vertical-40.png b/Handler/Project/Resources/icons8-flip-vertical-40.png new file mode 100644 index 0000000..231f62a Binary files /dev/null and b/Handler/Project/Resources/icons8-flip-vertical-40.png differ diff --git a/Handler/Project/Resources/icons8-folder-40.png b/Handler/Project/Resources/icons8-folder-40.png new file mode 100644 index 0000000..4e819e3 Binary files /dev/null and b/Handler/Project/Resources/icons8-folder-40.png differ diff --git a/Handler/Project/Resources/icons8-grab-tool-48.png b/Handler/Project/Resources/icons8-grab-tool-48.png new file mode 100644 index 0000000..f79590c Binary files /dev/null and b/Handler/Project/Resources/icons8-grab-tool-48.png differ diff --git a/Handler/Project/Resources/icons8-green-circle-40.png b/Handler/Project/Resources/icons8-green-circle-40.png new file mode 100644 index 0000000..6a0a7df Binary files /dev/null and b/Handler/Project/Resources/icons8-green-circle-40.png differ diff --git a/Handler/Project/Resources/icons8-hand-40.png b/Handler/Project/Resources/icons8-hand-40.png new file mode 100644 index 0000000..29484a7 Binary files /dev/null and b/Handler/Project/Resources/icons8-hand-40.png differ diff --git a/Handler/Project/Resources/icons8-input-40.png b/Handler/Project/Resources/icons8-input-40.png new file mode 100644 index 0000000..e7be5f0 Binary files /dev/null and b/Handler/Project/Resources/icons8-input-40.png differ diff --git a/Handler/Project/Resources/icons8-joystick-40.png b/Handler/Project/Resources/icons8-joystick-40.png new file mode 100644 index 0000000..0061b03 Binary files /dev/null and b/Handler/Project/Resources/icons8-joystick-40.png differ diff --git a/Handler/Project/Resources/icons8-laser-beam-40.png b/Handler/Project/Resources/icons8-laser-beam-40.png new file mode 100644 index 0000000..c0606ac Binary files /dev/null and b/Handler/Project/Resources/icons8-laser-beam-40.png differ diff --git a/Handler/Project/Resources/icons8-light-20.png b/Handler/Project/Resources/icons8-light-20.png new file mode 100644 index 0000000..9e6e5b8 Binary files /dev/null and b/Handler/Project/Resources/icons8-light-20.png differ diff --git a/Handler/Project/Resources/icons8-light-30.png b/Handler/Project/Resources/icons8-light-30.png new file mode 100644 index 0000000..4844ca9 Binary files /dev/null and b/Handler/Project/Resources/icons8-light-30.png differ diff --git a/Handler/Project/Resources/icons8-light-on-40.png b/Handler/Project/Resources/icons8-light-on-40.png new file mode 100644 index 0000000..86adb94 Binary files /dev/null and b/Handler/Project/Resources/icons8-light-on-40.png differ diff --git a/Handler/Project/Resources/icons8-log-40.png b/Handler/Project/Resources/icons8-log-40.png new file mode 100644 index 0000000..81794d2 Binary files /dev/null and b/Handler/Project/Resources/icons8-log-40.png differ diff --git a/Handler/Project/Resources/icons8-move-right-40.png b/Handler/Project/Resources/icons8-move-right-40.png new file mode 100644 index 0000000..b5fc850 Binary files /dev/null and b/Handler/Project/Resources/icons8-move-right-40.png differ diff --git a/Handler/Project/Resources/icons8-new-40.png b/Handler/Project/Resources/icons8-new-40.png new file mode 100644 index 0000000..85f3a28 Binary files /dev/null and b/Handler/Project/Resources/icons8-new-40.png differ diff --git a/Handler/Project/Resources/icons8-no-running-40.png b/Handler/Project/Resources/icons8-no-running-40.png new file mode 100644 index 0000000..be7c877 Binary files /dev/null and b/Handler/Project/Resources/icons8-no-running-40.png differ diff --git a/Handler/Project/Resources/icons8-object-40.png b/Handler/Project/Resources/icons8-object-40.png new file mode 100644 index 0000000..73b5e17 Binary files /dev/null and b/Handler/Project/Resources/icons8-object-40.png differ diff --git a/Handler/Project/Resources/icons8-pin-40.png b/Handler/Project/Resources/icons8-pin-40.png new file mode 100644 index 0000000..2352608 Binary files /dev/null and b/Handler/Project/Resources/icons8-pin-40.png differ diff --git a/Handler/Project/Resources/icons8-plus-40.png b/Handler/Project/Resources/icons8-plus-40.png new file mode 100644 index 0000000..aab1bc3 Binary files /dev/null and b/Handler/Project/Resources/icons8-plus-40.png differ diff --git a/Handler/Project/Resources/icons8-printer-48.png b/Handler/Project/Resources/icons8-printer-48.png new file mode 100644 index 0000000..be5c951 Binary files /dev/null and b/Handler/Project/Resources/icons8-printer-48.png differ diff --git a/Handler/Project/Resources/icons8-red-circle-40.png b/Handler/Project/Resources/icons8-red-circle-40.png new file mode 100644 index 0000000..84dc810 Binary files /dev/null and b/Handler/Project/Resources/icons8-red-circle-40.png differ diff --git a/Handler/Project/Resources/icons8-refresh.gif b/Handler/Project/Resources/icons8-refresh.gif new file mode 100644 index 0000000..5aecc11 Binary files /dev/null and b/Handler/Project/Resources/icons8-refresh.gif differ diff --git a/Handler/Project/Resources/icons8-repeat-40.png b/Handler/Project/Resources/icons8-repeat-40.png new file mode 100644 index 0000000..cb2fb87 Binary files /dev/null and b/Handler/Project/Resources/icons8-repeat-40.png differ diff --git a/Handler/Project/Resources/icons8-resize-horizontal-40.png b/Handler/Project/Resources/icons8-resize-horizontal-40.png new file mode 100644 index 0000000..6a5a735 Binary files /dev/null and b/Handler/Project/Resources/icons8-resize-horizontal-40.png differ diff --git a/Handler/Project/Resources/icons8-robot-hand-40.png b/Handler/Project/Resources/icons8-robot-hand-40.png new file mode 100644 index 0000000..bde7935 Binary files /dev/null and b/Handler/Project/Resources/icons8-robot-hand-40.png differ diff --git a/Handler/Project/Resources/icons8-running-40.png b/Handler/Project/Resources/icons8-running-40.png new file mode 100644 index 0000000..6329e3a Binary files /dev/null and b/Handler/Project/Resources/icons8-running-40.png differ diff --git a/Handler/Project/Resources/icons8-save-40.png b/Handler/Project/Resources/icons8-save-40.png new file mode 100644 index 0000000..a096fb1 Binary files /dev/null and b/Handler/Project/Resources/icons8-save-40.png differ diff --git a/Handler/Project/Resources/icons8-save-close-40.png b/Handler/Project/Resources/icons8-save-close-40.png new file mode 100644 index 0000000..8565781 Binary files /dev/null and b/Handler/Project/Resources/icons8-save-close-40.png differ diff --git a/Handler/Project/Resources/icons8-save-to-grid-40.png b/Handler/Project/Resources/icons8-save-to-grid-40.png new file mode 100644 index 0000000..3e4fea2 Binary files /dev/null and b/Handler/Project/Resources/icons8-save-to-grid-40.png differ diff --git a/Handler/Project/Resources/icons8-selection-40.png b/Handler/Project/Resources/icons8-selection-40.png new file mode 100644 index 0000000..2693a22 Binary files /dev/null and b/Handler/Project/Resources/icons8-selection-40.png differ diff --git a/Handler/Project/Resources/icons8-smart-lock-40.png b/Handler/Project/Resources/icons8-smart-lock-40.png new file mode 100644 index 0000000..db46b8a Binary files /dev/null and b/Handler/Project/Resources/icons8-smart-lock-40.png differ diff --git a/Handler/Project/Resources/icons8-socket-40.png b/Handler/Project/Resources/icons8-socket-40.png new file mode 100644 index 0000000..4bb1dea Binary files /dev/null and b/Handler/Project/Resources/icons8-socket-40.png differ diff --git a/Handler/Project/Resources/icons8-stepper-motor-40.png b/Handler/Project/Resources/icons8-stepper-motor-40.png new file mode 100644 index 0000000..4f9cdaa Binary files /dev/null and b/Handler/Project/Resources/icons8-stepper-motor-40.png differ diff --git a/Handler/Project/Resources/icons8-tornado-40.png b/Handler/Project/Resources/icons8-tornado-40.png new file mode 100644 index 0000000..a4c655c Binary files /dev/null and b/Handler/Project/Resources/icons8-tornado-40.png differ diff --git a/Handler/Project/Resources/icons8-unavailable-40.png b/Handler/Project/Resources/icons8-unavailable-40.png new file mode 100644 index 0000000..ecf2604 Binary files /dev/null and b/Handler/Project/Resources/icons8-unavailable-40.png differ diff --git a/Handler/Project/Resources/icons8-vision-40.png b/Handler/Project/Resources/icons8-vision-40.png new file mode 100644 index 0000000..857a345 Binary files /dev/null and b/Handler/Project/Resources/icons8-vision-40.png differ diff --git a/Handler/Project/Resources/icons8-what-40.png b/Handler/Project/Resources/icons8-what-40.png new file mode 100644 index 0000000..172e9ce Binary files /dev/null and b/Handler/Project/Resources/icons8-what-40.png differ diff --git a/Handler/Project/Resources/icons8-zoom-in-40.png b/Handler/Project/Resources/icons8-zoom-in-40.png new file mode 100644 index 0000000..4d87dbf Binary files /dev/null and b/Handler/Project/Resources/icons8-zoom-in-40.png differ diff --git a/Handler/Project/Resources/icons8-zoom-out-40.png b/Handler/Project/Resources/icons8-zoom-out-40.png new file mode 100644 index 0000000..ae3f5ff Binary files /dev/null and b/Handler/Project/Resources/icons8-zoom-out-40.png differ diff --git a/Handler/Project/Resources/icons8-zoom-to-extents-40.png b/Handler/Project/Resources/icons8-zoom-to-extents-40.png new file mode 100644 index 0000000..a9f5193 Binary files /dev/null and b/Handler/Project/Resources/icons8-zoom-to-extents-40.png differ diff --git a/Handler/Project/RunCode/Device/_Joystick.cs b/Handler/Project/RunCode/Device/_Joystick.cs new file mode 100644 index 0000000..9309a7a --- /dev/null +++ b/Handler/Project/RunCode/Device/_Joystick.cs @@ -0,0 +1,174 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using AR; +using arDev; + +namespace Project +{ + public partial class FMain + { + + private void Joystick_InputChanged(object sender, arDev.Joystick.JoystickRaw.InputChangedEventHandler e) + { + + var keyName = e.input.ToString(); + if (e.input == HidSharp.Reports.Usage.Button5) keyName = "L-TRIGGER"; + else if (e.input == HidSharp.Reports.Usage.Button6) keyName = "R-TRIGGER"; + else if (e.input == HidSharp.Reports.Usage.Button9) keyName = "SELECT"; + else if (e.input == HidSharp.Reports.Usage.Button10) keyName = "START"; + else if (e.input == HidSharp.Reports.Usage.Button4) keyName = "BUT-Y"; + else if (e.input == HidSharp.Reports.Usage.Button1) keyName = "BUT-X"; + + PUB.log.Add("JOYSTICK", string.Format("[{0}] {1}->{2}", keyName, e.oldValue, e.newValue)); + + if (PUB.sm.Step != eSMStep.IDLE && PUB.sm.Step != eSMStep.ERROR && PUB.flag.get(eVarBool.FG_MOVE_PICKER) == false && PUB.sm.Step != eSMStep.WAITSTART) return; + + if (e.input == HidSharp.Reports.Usage.Button4) //stop + { + if (e.newValue > 0) + { + PUB.log.Add("Joystick Click : Stop"); + _BUTTON_STOP(); + } + } + else if (e.input == HidSharp.Reports.Usage.Button1) //reset + { + if (e.newValue > 0) + { + PUB.log.Add("Joystick Click : Reset"); + _BUTTON_RESET(); + } + } + else if (e.input == HidSharp.Reports.Usage.Button9) //select button + { + if (e.newValue == 1) + { + PUB.Result.JoystickAxisGroup += 1; + if (PUB.Result.JoystickAxisGroup > 3) PUB.Result.JoystickAxisGroup = 0; + } + } + else if (e.input == HidSharp.Reports.Usage.Button10) //start button + { + if (e.newValue == 1 && PUB.flag.get(eVarBool.FG_SCR_JOBSELECT) == false) + { + if (PUB.sm.Step >= eSMStep.IDLE) + { + PUB.log.AddI("START BUTTON"); + this._BUTTON_START(); + } + } + } + else if (e.input == HidSharp.Reports.Usage.Button5) //ltrigger + { + AR.SETTING.Data.Enable_SpeedLimit = true; + } + else if (e.input == HidSharp.Reports.Usage.Button6) //ltrigger + { + AR.SETTING.Data.Enable_SpeedLimit = false; + } + + //트리거 L,R을 눌렀을때 홈 가능한 위치라면 홈을 진행한다 + if (e.newValue > 0 && (e.input == HidSharp.Reports.Usage.Button5 || e.input == HidSharp.Reports.Usage.Button6)) + { + //두개가 동시에 눌렷을때 + if (PUB.joystick.Buttons[4] && PUB.joystick.Buttons[5]) + { + if (PUB.flag.get(eVarBool.FG_INIT_MOTIO) == false) return; + if (PUB.sm.isRunning == true) return; + if (DIO.IsEmergencyOn() == true) return; + if (PUB.sm.Step == eSMStep.RUN) return; + + PUB.log.AddAT("조이스틱으로 홈 초기화작업"); + Func_sw_initialize(); + } + } + + //동작중만 아니면 작동하게한다. + if (PUB.sm.Step != eSMStep.RUN) + { + short axisH = 0; + short axisV = 1; + if (PUB.Result.JoystickAxisGroup == 1) //왼쪽뭉치 + { + axisH = 2; + axisV = 3; + } + else if (PUB.Result.JoystickAxisGroup == 2) //오른쪽뭉치 + { + axisH = 4; + axisV = 5; + } + else if (PUB.Result.JoystickAxisGroup == 3) //theta, picker-Z + { + axisH = 6; + axisV = 1; + } + + //X축으로 이동하는것은 PX, + if (e.input == HidSharp.Reports.Usage.GenericDesktopX) + { + if (e.newValue == 0) + { + //좌 + PUB.mot.JOG(axisH, arDev.MOT.MOTION_DIRECTION.Negative, 100, 500, false, false); + PUB.flag.set(eVarBool.FG_JOYSTICK, true, "joystick"); + } + else if (e.newValue == 127) + { + //멈춤 + PUB.mot.MoveStop("Joystick", axisH); + PUB.flag.set(eVarBool.FG_JOYSTICK, false, "joystick"); + } + else if (e.newValue == 255) + { + //우 + PUB.mot.JOG(axisH, arDev.MOT.MOTION_DIRECTION.Positive, 100, 500, false, false); + PUB.flag.set(eVarBool.FG_JOYSTICK, true, "joystick"); + } + } + else if (e.input == HidSharp.Reports.Usage.GenericDesktopY) + { + if (e.newValue == 0) + { + //상 + PUB.mot.JOG(axisV, arDev.MOT.MOTION_DIRECTION.Negative, 100, 500, false, false); + PUB.flag.set(eVarBool.FG_JOYSTICK, true, "joystick"); + } + else if (e.newValue == 127) + { + //멈춤 + PUB.mot.MoveStop("Joystick", axisV); + PUB.flag.set(eVarBool.FG_JOYSTICK, false, "joystick"); + } + else if (e.newValue == 255) + { + //하 + PUB.mot.JOG(axisV, arDev.MOT.MOTION_DIRECTION.Positive, 100, 500, false, false); + PUB.flag.set(eVarBool.FG_JOYSTICK, true, "joystick"); + } + } + + } + + } + + private void Joystick_Disconnected(object sender, EventArgs e) + { + PUB.log.AddE("조이스틱 연결 종료"); + } + + private void Joystick_Connected(object sender, EventArgs e) + { + PUB.log.AddI("조이스틱 연결 완료"); + } + + private void Joystick_Changed(object sender, EventArgs e) + { + PUB.log.AddAT("조이스틱 감지"); + } + + } +} diff --git a/Handler/Project/RunCode/Device/_Keyence.cs b/Handler/Project/RunCode/Device/_Keyence.cs new file mode 100644 index 0000000..e1ff127 --- /dev/null +++ b/Handler/Project/RunCode/Device/_Keyence.cs @@ -0,0 +1,436 @@ +using AR; +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Project +{ + public partial class FMain + { + + private void Keyence_BarcodeRecv(object sender, Device.KeyenceBarcode.RecvDataEvent e) + { + var dev = sender as Device.KeyenceBarcode; + if (e.RawData.StartsWith("ERROR")) + { + //로그가 너무 많이 쌓이니 해제한다 + //Pub.log.AddE("Reader RES : " + resp); + } + else if (e.RawData.StartsWith("OK")) + { + //OK회신 + } + else + { + //값은 받았다 + if (PUB.sm.Step != eSMStep.HOME_FULL && PUB.sm.Step != eSMStep.HOME_QUICK) + { + // PUB.logKeyence.Add($"{resp.Replace("\n", "").Replace("\r", "")}"); + ParseBarcode(e.RawData, dev.Tag.ToString()); + } + else + { + //PUB.logKeyence.Add($"Code Ignore by Home Process({resp.Replace("\n", "").Replace("\r", "")})"); + } + } + } + + bool imageprocess = false; + private void Keyence_ImageRecv(object sender, Device.KeyenceBarcode.RecvImageEvent e) + { + + var dev = sender as Device.KeyenceBarcode; + System.Windows.Forms.PictureBox keyenceview; + if (dev.Tag == "R") keyenceview = keyenceviewR; + else keyenceview = keyenceviewF; + + if (imageprocess == false) + { + imageprocess = true; + + if (PUB.sm.Step >= eSMStep.IDLE && this.IsDisposed == false && this.Disposing == false) + { + + //var oimage = this.pictureBox1.Image; + //this.pictureBox1.Image = e.Image; + //if (oimage != null) oimage.Dispose(); + + if (keyenceview.Image == null) + { + //var newbitmap = new Bitmap(e.Image.Width,e.Image.Height, e.Image.PixelFormat); + var old = keyenceview.Image; + //var newbitmap = PUB.keyence.CreateBitmap(e.Image.Width, e.Image.Height); + //PUB.keyence.UpdateBitmap((Bitmap)e.Image, newbitmap); + keyenceview.Image = e.Image; + if (old != null) old.Dispose(); + PUB.log.AddAT("최초 이미지 수신"); + } + else + { + //내용ㅁㄴ업데이트하자 + var preimage = keyenceview.Image as Bitmap; + keyenceview.Image = e.Image; + if (preimage != null) preimage.Dispose(); + //PUB.keyence.UpdateBitmap((Bitmap)e.Image, preimage); + //this.pictureBox2.Invalidate(); + } + + + } + + if (this.IsDisposed) + { + dev.Dispose(); + } + + imageprocess = false; + } + } + + double GetAngle(Point pt1, Point pt2) + { + var val = Math.Asin((pt2.Y - pt1.Y) / Math.Sqrt(Math.Pow(pt2.X - pt1.X, 2.0) + Math.Pow(pt2.Y - pt1.Y, 2.0))); + + + double retval = 0.0; + if ((pt2.X - pt1.X) >= 0 && (pt2.Y - pt1.Y) >= 0) + retval = val; + else if ((pt2.X - pt1.X) < 0 && (pt2.Y - pt1.Y) >= 0) + retval = Math.PI - val; + else if ((pt2.X - pt1.X) < 0 && (pt2.Y - pt1.Y) < 0) + retval = Math.PI - val; + else if ((pt2.X - pt1.X) >= 0 && (pt2.Y - pt1.Y) < 0) + retval = Math.PI * 2 + val; + + return retval; + } + + private string KeyenceBarcodeDataF = string.Empty; + private string KeyenceBarcodeDataR = string.Empty; + //List barcodelist = new List(); + void ParseBarcode(string response, string Source) + { + + //220901 - 특문있었ㅇ츰 + var r1 = (char)0x1D; + var r2 = (char)0x1E; + var r3 = (char)0x04; + var r4 = (char)0x00; + response = response.Replace(r1.ToString(), ""); + response = response.Replace(r2.ToString(), ""); + response = response.Replace(r3.ToString(), ""); + response = response.Replace(r4.ToString(), ""); + response = response.Replace("\r", ""); + response = response.Replace("\n", ""); + response = response.Replace("\0", ""); + response = response.RemoveNoneASCII().Trim(); + + ///101409576:522/1171:427/1143:429/1134:524/1155:475/1151\r + var frames = response.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries); + var itemC = PUB.Result.ItemDataC; + + //키엔스바코드패턴검사 + var Pattern = @"^(\d+):(\w+.*):(\d+/\d+):(\d+/\d+):(\d+/\d+):(\d+/\d+):(\d+/\d+)"; + Pattern = @"^(\d+):(.*):(\d+/\d+):(\d+/\d+):(\d+/\d+):(\d+/\d+):(\d+/\d+)"; + var RegX = new System.Text.RegularExpressions.Regex(Pattern); + foreach (var resp in frames) + { + if (RegX.IsMatch(resp.Trim()) == false) + { + //에러처리 221018 + if (resp.StartsWith("0:ERROR")) continue; + + PUB.log.AddE($"***바코드({Source}) 응답데이터 오류 값(키엔스 전송포맷을 확인하세요) " + resp); + listView21.SetText(9, 3, "ERR");//.setTitle(8, 1, "ERR"); + continue; + } + + if (AR.VAR.BOOL[eVarBool.JOB_PickON_Retry]) //221110 + { + if (PUB.sm.Step == eSMStep.RUN) + PUB.log.AddAT($"피커({Source}) 재시도 중이라 바코드를 무시 합니다:{resp}"); + continue; + } + + + var MatchList = RegX.Matches(resp.Trim()); + var buf = MatchList[0].Groups; + + //var buf = resp.Split(':'); //데이터는 :로 분리되어있음 + //if (buf.Length != 7) //데이터는 총 6개의 데이터로 구성됨 + //{ + // PUB.log.AddE("***바코드 응답데이터 오류 값(키엔스 전송포맷을 확인하세요) " + resp); + // gridView2.setTitle(8, 1, "ERR"); + // continue; + //} + + var angle = 0; + Boolean STDData = false; //들어온 자료가 amkor std 바코드여부 + var sym = buf[1].Value; + var vData = buf[2].Value.Trim(); + + + if (Source == "R") KeyenceBarcodeDataR = vData; + else KeyenceBarcodeDataF = vData; + + //바코드 무시조건 확인 + //if (PUB.Result.BCDIgnorePattern != null) + //{ + // Boolean ignore = false; + // foreach (var ignoreitem in PUB.Result.BCDIgnorePattern) + // { + // if (ignoreitem.Pattern.isEmpty()) continue; + // RegX = new System.Text.RegularExpressions.Regex(ignoreitem.Pattern); + // if (RegX.IsMatch(vData)) + // { + // var igmsg = "무시바코드 Patter: " + ignoreitem.Pattern + ",값=" + vData; + // ignore = true; + // break; + // } + // } + // if (ignore) continue; + //} + + var vV1 = buf[3].Value.Split('/'); + var vV2 = buf[4].Value.Split('/'); + var vV3 = buf[5].Value.Split('/'); + var vV4 = buf[6].Value.Split('/'); + var vCP = buf[7].Value.Split('/'); + + var vertex = new Point[4]; + vertex[0] = new Point(int.Parse(vV1[0]), int.Parse(vV1[1])); + vertex[1] = new Point(int.Parse(vV2[0]), int.Parse(vV2[1])); + vertex[2] = new Point(int.Parse(vV3[0]), int.Parse(vV3[1])); + vertex[3] = new Point(int.Parse(vV4[0]), int.Parse(vV4[1])); + var vertextCP = new Point(int.Parse(vCP[0]), int.Parse(vCP[1])); + + var ReelCP = Point.Empty; + if (itemC.VisionData.ReelSize == eCartSize.Inch13) + ReelCP = AR.SETTING.Data.CenterPosition13; + else + ReelCP = AR.SETTING.Data.CenterPosition7; + + //각도를 이곳에서 처리함 + angle = (int)(GetAngle(vertex[0], vertex[1]) * 180.0 / Math.PI); + + //var atkstdbcd = new StdLabelPrint.CAmkorSTDBarcode(vData); + //if (atkstdbcd.DisposalCode) //사용하지않는 103코드라면 아에 처리안함 + //{ + // PUB.log.AddE("***폐기된 103 코드형태라 처리하지 않음" + vData); + // continue; + //} + + //특정좌표가 기준점으로부터 몇도 틀어져 있는가? + //math.atan2(PY - CY, PX - CX) + + //회전후좌표계산 + //x = root((px - cx) ^ 2 + (py - cy) ^ 2) * cos@ +cx + //y = root(px ^ 2 + py ^ 2) * sin@ +cy + double theta = 0.0;// Pub.Result.ItemData[1].VisionData.BaseAngle; + if (itemC.VisionData.BaseAngle(out string msg, out Class.KeyenceBarcodeData angbcd)) + { + theta = angbcd.Angle; + } + + + var theta_rad = -theta * Math.PI / 180.0; + var PX = (int)(Math.Cos(theta_rad) * (vertextCP.X - ReelCP.X) - Math.Sin(theta_rad) * (vertextCP.Y - ReelCP.Y)) + ReelCP.X; + var PY = (int)(Math.Sin(theta_rad) * (vertextCP.X - ReelCP.X) + Math.Cos(theta_rad) * (vertextCP.Y - ReelCP.Y)) + ReelCP.Y; + + + float LabelAngRad = (float)(Math.Atan2(PY - ReelCP.Y, PX - ReelCP.X));// 2; //라벨의 위치값을 찾아서 입력해야한다. + var labelpos = (float)(LabelAngRad * 180.0 / Math.PI); + if (labelpos < 0) labelpos = 360 + labelpos; + + byte lp = 0; + + if (labelpos >= 15 * 22.5 && labelpos <= 360) lp = 6; + else if (labelpos >= 0 && labelpos <= 22.5) lp = 6; + else if (labelpos >= 1 * 22.5 && labelpos <= 3 * 22.5) lp = 3; + else if (labelpos >= 3 * 22.5 && labelpos <= 5 * 22.5) lp = 2; + else if (labelpos >= 5 * 22.5 && labelpos <= 7 * 22.5) lp = 1; + else if (labelpos >= 7 * 22.5 && labelpos <= 9 * 22.5) lp = 4; + else if (labelpos >= 9 * 22.5 && labelpos <= 11 * 22.5) lp = 7; + else if (labelpos >= 11 * 22.5 && labelpos <= 13 * 22.5) lp = 8; + else if (labelpos >= 13 * 22.5 && labelpos <= 15 * 22.5) lp = 9; + else + { + + } + + //중첩된 데이터가 있는가? + lock (itemC.VisionData.barcodelist) + { + //키값에 소스위치도 같이 포함한다 + var valuekey = Source + vData; + var bcdin = itemC.VisionData.barcodelist.ContainsKey(valuekey);//.Where(t => t.Value.CheckIntersect(vertextCP, vData) == true).FirstOrDefault(); + if (bcdin == false) + { + PUB.logKeyence.Add($"{resp.Replace("\n", "").Replace("\r", "")}"); + + //없다면 추가한다. + var newitem = new Class.KeyenceBarcodeData() + { + AmkorData = new StdLabelPrint.CAmkorSTDBarcode(vData), + CenterPX = vertextCP, + Data = vData, + vertex = vertex, + Angle = angle, + LabelPosition = lp, + barcodeSymbol = sym, + barcodeSource = Source, + }; + + var addok = itemC.VisionData.barcodelist.TryAdd(valuekey, newitem); + if (addok) PUB.log.Add($"[NEW:{sym}] " + Source + " " + vData); + else PUB.log.AddE($"X-[NEW:{sym}] " + Source + " " + vData); + + itemC.VisionData.UpdateBarcodePositionData(); + itemC.VisionData.BarcodeTouched = true; + } + else + { + //기존데이터와 좌표가 겹치면 두고 다르면 업데이트한다 + var predata = itemC.VisionData.barcodelist[valuekey]; + if (predata.CheckIntersect(vertextCP, vData) == false) + { + var newitem = new Class.KeyenceBarcodeData() + { + AmkorData = new StdLabelPrint.CAmkorSTDBarcode(vData), + CenterPX = vertextCP, + Data = vData, + vertex = vertex, + Angle = angle, + LabelPosition = lp, + barcodeSymbol = sym, + barcodeSource = Source, + }; + + //기존정보를 지우고 + PUB.log.Add($"[UPD:{sym}] " + Source + " " + vData); + itemC.VisionData.barcodelist[valuekey] = newitem; + itemC.VisionData.UpdateBarcodePositionData(); + itemC.VisionData.BarcodeTouched = true; + } + } + } + + listView21.SetText(9, 3, $"{angle} > {theta}"); + listView21.SetText(10, 3, itemC.VisionData.QRInputRaw.isEmpty() ? $"DETECT" : $"NONE"); + listView21.SetText(13, 2, $"LABEL"); + listView21.SetText(13, 3, $"{labelpos:N1}"); + } + } + + Boolean IsSIDValue(string data) + { + if (data.Length != 9) return false; + decimal a = 0; + if (decimal.TryParse(data, out a) == false) return false; + if (data.StartsWith("10") == false) return false; + return true; + } + Boolean IsDateValue(string date, out string datestr) + { + //821123 과 19821123 의 데이터를 판별한다 + datestr = string.Empty; + date = date.Replace("-", "").Replace("/", ""); + if (date.Length == 6) + { + var vy = date.Substring(0, 2); + var vm = date.Substring(2, 2); + var vd = date.Substring(4, 2); + if (isDigit(vy) == false || isDigit(vm) == false || isDigit(vd) == false) + return false; + if (vy.toInt() < 0 || vy.toInt() > 29) return false; + if (vm.toInt() < 1 || vm.toInt() > 12) return false; + if (vd.toInt() < 1 || vd.toInt() > 21) return false; + datestr = "20" + vy + vm + vd; + return true; + + } + else if (date.Length == 8) + { + var vy = date.Substring(0, 4); + var vm = date.Substring(4, 2); + var vd = date.Substring(6, 2); + if (isDigit(vy) == false || isDigit(vm) == false || isDigit(vd) == false) + return false; + if (vy.toInt() < 2000 || vy.toInt() > 2900) return false; + if (vm.toInt() < 1 || vm.toInt() > 12) return false; + if (vd.toInt() < 1 || vd.toInt() > 31) return false; + datestr = vy + vm + vd; + return true; + } + else return false; + } + Boolean isDigit(string v) + { + int a; + return int.TryParse(v, out a); + } + + + string cmd = string.Empty; + DateTime LastTrigOnTime = DateTime.Now; + Boolean bTrgOn = false; + //private void Keyence_Trigger(bool bOn) + //{ + + // if (PUB.flag.get(eVarBool.KEYENCE_TRIGGER) == bOn) return; + + // if (bOn) + // cmd = "LON"; + // else + // cmd = "LOFF"; + + // if (bOn) LastTrigOnTime = DateTime.Now; + + // string resp = reader.ExecCommand(cmd); + // bTrgOn = bOn; + // PUB.logKeyence.Add("BARCODE", $"트리거 전송({cmd})"); + // _isCrevisACQ[1] = bOn; + + // //트리거 + // PUB.flag.set(eVarBool.KEYENCE_TRIGGER, bOn, "JOB"); + //} + private void SaveImage(string filename) + { + var fi = new System.IO.FileInfo(filename); + var ext = fi.Extension; + var nameonly = fi.FullName.Replace(fi.Extension, ""); + var fiF = new System.IO.FileInfo(nameonly + "F" + ext); + var fiR = new System.IO.FileInfo(nameonly + "F" + ext); + + + if (PUB.keyenceF != null) + { + var img = this.keyenceviewF.Image; + if (img == null) return; + using (var newimg = new Bitmap(img.Width, img.Height, img.PixelFormat)) + { + PUB.keyenceR.UpdateBitmap((Bitmap)img, newimg); + if (fiF.Directory.Exists == false) fiF.Directory.Create(); + if (fiF.Exists) fiF.Delete(); + newimg.Save(fiF.FullName); + } + } + + if (PUB.keyenceR != null) + { + var img = this.keyenceviewR.Image; + if (img == null) return; + using (var newimg = new Bitmap(img.Width, img.Height, img.PixelFormat)) + { + PUB.keyenceR.UpdateBitmap((Bitmap)img, newimg); + if (fiR.Directory.Exists == false) fiR.Directory.Create(); + if (fiR.Exists) fiR.Delete(); + newimg.Save(fiR.FullName); + } + } + } + } +} diff --git a/Handler/Project/RunCode/Device/_Keyence_Rule_ReturnReel.cs b/Handler/Project/RunCode/Device/_Keyence_Rule_ReturnReel.cs new file mode 100644 index 0000000..3b5f982 --- /dev/null +++ b/Handler/Project/RunCode/Device/_Keyence_Rule_ReturnReel.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using AR; + +namespace Project +{ + public partial class FMain + { + ///// + ///// RQ바코드값 사용 여부 + ///// + ///// + //Boolean Process_ReturnReel(string vData) + //{ + // //120326 - return 수량 관련 (오토에서만 사용한다) + // var qrbuf = vData.Split(';'); + // if (vData.EndsWith(";;;") && qrbuf.Length > 4 && VAR.BOOL[eVarBool.Opt_UserQtyRQ]== false) + // { + // var qrsid = qrbuf[0].Trim(); + // var qrlot = qrbuf[1].Trim(); + // var qrqty = qrbuf[2].Trim(); + // if (double.TryParse(qrqty, out double qtynum) && qrsid.Length == 9 && qrsid.StartsWith("10")) + // { + // //수량이 맞고 sid 가 101로 들어있는 경우에만 처리한다 + // PUB.log.Add("리턴릴 임시 바코드로 확인되어 데이터를 사용합니다 값:" + vData); + // PUB.log.Add("SID값 변경함 #2 " + PUB.Result.ItemDataC.VisionData.SID + "=>" + qrsid); + + // if (PUB.Result.ItemDataC.VisionData.QTY != qrqty) + // { + // PUB.AddSystemLog(AppContext.BaseDirectory, "_KEYENCE", $"리턴릴세미형태에서 QTY값을 적용 함({qrqty})"); + // } + // PUB.Result.ItemDataC.VisionData.QTY = qrqty; + // PUB.Result.ItemDataC.VisionData.SID = qrsid; + // PUB.Result.ItemDataC.VisionData.VLOT = qrlot; + // } + // } + + + // //리턴릴수량추가확인(수동일때에만 사용) + // if (vData.StartsWith("RQ")) + // { + // //리턴릴 바코드는 무조건 적용한다 + // var rqqtystr = vData.Substring(2); + // if (int.TryParse(rqqtystr, out int rqqty)) + // { + // //시스템로기 + // if (PUB.Result.ItemDataC.VisionData.QTY != rqqtystr || PUB.Result.ItemDataC.VisionData.QTYRQ == false) + // { + // PUB.AddSystemLog(AppContext.BaseDirectory, "_KEYENCE", $"리턴릴 QTY값 적용({rqqtystr})"); + + // //수량 + // PUB.Result.ItemDataC.VisionData.QTYRQ = true; + // PUB.Result.ItemDataC.VisionData.QTY = rqqtystr; + // PUB.log.Add("리턴릴 바코드값=" + vData + "을 적용합니다"); + // } + // } + // else + // { + // PUB.log.AddE("리턴릴 바코드값=" + vData + "을 적용 실패"); + // } + // return true; + // } + + // return false; + //} + } +} diff --git a/Handler/Project/RunCode/Display/DisplayTextHandler.cs b/Handler/Project/RunCode/Display/DisplayTextHandler.cs new file mode 100644 index 0000000..a426dd4 --- /dev/null +++ b/Handler/Project/RunCode/Display/DisplayTextHandler.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Net; +using System.Text; +using System.Windows.Forms; + +namespace Project +{ + public partial class FMain + { + delegate void ShowLotTextHandler(string value); + + delegate void UpdateDMTextHandler(string value1); + + //void UpdateResultText(string value1) + //{ + // if (this.lbResult.InvokeRequired) + // { + // lbResult.BeginInvoke(new UpdateDMTextHandler(UpdateResultText), new object[] { value1 }); + // } + // else + // { + // lbResult.Text = value1; + // } + //} + + delegate void UpdateLabelTextHandler(Control ctl, string value); + void UpdateLabelText(Control ctl, string value) + { + if (ctl.InvokeRequired) + { + ctl.BeginInvoke(new UpdateLabelTextHandler(UpdateLabelText), new object[] { ctl, value }); + } + else + { + ctl.Text = value; + } + } + } +} diff --git a/Handler/Project/RunCode/Display/GetErrorMessage.cs b/Handler/Project/RunCode/Display/GetErrorMessage.cs new file mode 100644 index 0000000..86b70d2 --- /dev/null +++ b/Handler/Project/RunCode/Display/GetErrorMessage.cs @@ -0,0 +1,22 @@ +//using System; +//using System.Collections.Generic; +//using System.Diagnostics; +//using System.Drawing; +//using System.IO; +//using System.Linq; +//using System.Net; +//using System.Net.NetworkInformation; +//using System.Runtime.Serialization.Formatters.Binary; +//using System.Text; +//using System.Windows.Forms; +//using System.Management; +//using COMM; + + +//namespace Project +//{ +// public static partial class UTIL +// { + +// } +//} diff --git a/Handler/Project/RunCode/Display/_Interval_1min.cs b/Handler/Project/RunCode/Display/_Interval_1min.cs new file mode 100644 index 0000000..8034cbf --- /dev/null +++ b/Handler/Project/RunCode/Display/_Interval_1min.cs @@ -0,0 +1,63 @@ +using AR; +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Project +{ + public partial class FMain + { + + void _Display_Interval_1min() + { + //리셋카운트 + AutoResetCount(); + PUB.CheckFreeSpace(); + } + + /// + /// 환경설정에따른 카운트를 리셋처리한다. 171128 + /// + void AutoResetCount() + { + //수량누적시 자동으로 소거하게 되었다 + //if (COMM.SETTING.Data.datetime_Check_1 && COMM.SETTING.Data.datetime_Reset_1 != "") //오전 + //{ + // try + // { + // DateTime SetTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " " + COMM.SETTING.Data.datetime_Reset_1 + ":00"); + // DateTime LastClearTime = Pub.counter.; + + // //현재 시간이 클리어대상 시간보다 크고, 마지막으로 클리어한 시간이 지정시간보다 작아야함 + // if (DateTime.Now > SetTime && LastClearTime < SetTime) + // { + // Pub.log.AddI("Count Reset #1"); + // Pub.counter.ClearDay(); + // } + // } + // catch { } + //} + + //if (COMM.SETTING.Data.datetime_Check_2 && COMM.SETTING.Data.datetime_Reset_2 != "") //오후 + //{ + // try + // { + // DateTime SetTime = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " " + COMM.SETTING.Data.datetime_Reset_2 + ":00"); + // DateTime LastClearTime = Pub.counter.CountReset; + + // //현재 시간이 클리어대상 시간보다 크고, 마지막으로 클리어한 시간이 지정시간보다 작아야함 + // if (DateTime.Now > SetTime && LastClearTime < SetTime) + // { + // Pub.log.AddI("Count Reset #2"); + // Pub.counter.ClearDay(); + // } + // } + // catch { } + //} + } + + } +} diff --git a/Handler/Project/RunCode/Display/_Interval_250ms.cs b/Handler/Project/RunCode/Display/_Interval_250ms.cs new file mode 100644 index 0000000..379bac9 --- /dev/null +++ b/Handler/Project/RunCode/Display/_Interval_250ms.cs @@ -0,0 +1,614 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using AR; +namespace Project +{ + public partial class FMain + { + + + void _Display_Interval_250ms() + { + //타워램프조정 + //if (COMM.SETTING.Data.Disable_TowerLamp == false) Update_TowerLamp(); + TowerLamp.Update(PUB.sm.Step); + + //컨베이어가동시간을 추적한다 230926 + if (VAR.BOOL[eVarBool.Use_Conveyor]) + { + ////왼쪽컨베이어에 아이템이 존재하는 경우에만 누적 + //if (DIO.GetIOOutput(eDOName.LEFT_CONV) && VAR.BOOL[eVarBool.LEFT_ITEM_PICKOFF]) + //{ + // if (VAR.TIME[eVarBool.LEFT_ITEM_PICKOFF].Year == 1982) + // VAR.TIME[eVarBool.LEFT_ITEM_PICKOFF] = DateTime.Now; //시간초기화 + // else + // { + // var ts = DateTime.Now - VAR.TIME[eVarBool.LEFT_ITEM_PICKOFF]; + // VAR.DBL[eVarDBL.LEFT_ITEM_PICKOFF] += ts.TotalSeconds; //경과시간누적 + // VAR.TIME[eVarBool.LEFT_ITEM_PICKOFF] = DateTime.Now; //시간초기화 + // } + //} + + ////오른쪽컨베이어에 아이템이 존재하는 경우에만 누적 + //if (DIO.GetIOOutput(eDOName.RIGHT_CONV) && VAR.BOOL[eVarBool.RIGT_ITEM_PICKOFF] ) + //{ + // if(VAR.TIME[eVarBool.RIGT_ITEM_PICKOFF].Year == 1982) + // { + // VAR.TIME[eVarBool.RIGT_ITEM_PICKOFF] = DateTime.Now; //시간초기화 + // } + // else + // { + // var ts = DateTime.Now - VAR.TIME[eVarBool.RIGT_ITEM_PICKOFF]; + // VAR.DBL[eVarDBL.RIGT_ITEM_PICKOFF] += ts.TotalSeconds; //경과시간누적 + // VAR.TIME[eVarBool.RIGT_ITEM_PICKOFF] = DateTime.Now; //시간초기화 + // } + + //} + + var t1 = VAR.I32[eVarInt32.LEFT_ITEM_COUNT]; + var t2 = VAR.I32[eVarInt32.RIGT_ITEM_COUNT]; + groupBox2.Text = $"바코드({t1:N1}/{t2:N1})"; + } + else + { + groupBox2.Text = "바코드"; + } + + groupBox1.Text = $"장비조작({PUB.sm.Loop_ms:N0}ms)"; + //릴사이즈가 맞지 않으면 깜박인다. + if (DIO.getCartSize(1) != eCartSize.None) + { + if (VAR.BOOL[eVarBool.Use_Conveyor] == false && DIO.getCartSize(1) != DIO.getCartSize(0)) + { + if (listView21.GetStyle(0, 1).BackColor != Color.Red) + { + listView21.GetStyle(0, 1).BackColor = Color.Red; + } + else + { + listView21.GetStyle(0, 1).BackColor = Color.FromArgb(32, 32, 32); + } + } + else + { + listView21.GetStyle(0, 1).BackColor = Color.FromArgb(32, 32, 32); + } + + if (VAR.BOOL[eVarBool.Use_Conveyor] == false && DIO.getCartSize(1) != DIO.getCartSize(2)) + { + if (listView21.GetStyle(0, 5).BackColor != Color.Red) + { + listView21.GetStyle(0, 5).BackColor = Color.Red; + } + else + { + listView21.GetStyle(0, 5).BackColor = Color.FromArgb(32, 32, 32); + } + } + else + { + listView21.GetStyle(0, 5).BackColor = Color.FromArgb(32, 32, 32); + } + } + else + { + //모두 동일하게 흑색한다 + //lbSize0.BackColor = Color.FromArgb(32, 32, 32); + //lbSize1.BackColor = Color.FromArgb(32, 32, 32); + //lbSize2.BackColor = Color.FromArgb(32, 32, 32); + + listView21.GetStyle(0, 1).BackColor = Color.FromArgb(32, 32, 32); + listView21.GetStyle(0, 3).BackColor = Color.FromArgb(32, 32, 32); + listView21.GetStyle(0, 5).BackColor = Color.FromArgb(32, 32, 32); + + listView21.GetStyle(0, 1).ForeColor = Color.White; + listView21.GetStyle(0, 3).ForeColor = Color.White; + listView21.GetStyle(0, 5).ForeColor = Color.White; + + } + + + //락정보 + var l0 = DIO.GetIOOutput(eDOName.CART_MAG0); + var l1 = DIO.GetIOOutput(eDOName.CART_MAG1); + var l2 = DIO.GetIOOutput(eDOName.CART_MAG2); + + lbLock0.Text = l0 ? "카트 교환" : "카트 없음"; + lbLock1.Text = l1 ? "카트 교환" : "카트 없음"; + lbLock2.Text = l2 ? "카트 교환" : "카트 없음"; + + var sbVisTitle0 = listView21.GetCell(0, 1); + var sbVisTitle2 = listView21.GetCell(0, 5); + + if (PUB.wsL == null || PUB.wsL.Connected == false) + { + sbVisTitle0.ForeColor = Color.Red; + } + else + { + //데이터수신시간에 따른 색상 + var tswecv = DateTime.Now - VAR.TIME[eVarTime.lastRecvWSL]; + if(tswecv.TotalSeconds > 5) + { + sbVisTitle0.ForeColor = Color.HotPink; + } + else + { + if (PUB.flag.get(eVarBool.FG_RDY_CAMERA_L)) + sbVisTitle0.ForeColor = Color.Lime; + else + sbVisTitle0.ForeColor = Color.Magenta; + } + + } + + // + if (PUB.wsR == null || PUB.wsR.Connected == false) + { + sbVisTitle2.ForeColor = Color.Red; + } + else + { + var tswecv = DateTime.Now - VAR.TIME[eVarTime.lastRecvWSR]; + if (tswecv.TotalSeconds > 5) + { + sbVisTitle2.ForeColor = Color.HotPink; + } + else + { + if (PUB.flag.get(eVarBool.FG_RDY_CAMERA_R)) + sbVisTitle2.ForeColor = Color.Lime; + else + sbVisTitle2.ForeColor = Color.Magenta; + } + + } + + //arLabel18.Text = camliveBusy ? "카메라 (라이브뷰)" : "카메라"; + + btStart.Enabled = PUB.flag.get(eVarBool.FG_MOVE_PICKER) == false; + btStop.Enabled = PUB.flag.get(eVarBool.FG_MOVE_PICKER) == false; + btSetting.Enabled = PUB.flag.get(eVarBool.FG_MOVE_PICKER) == false; + //btPickerMove.Visible = (Pub.mot.IsInit && PUB.mot.HasHomeSetOff == true); //피커의 수동 이동 버튼표시여부 + + + var hwcol = 0; + if (PUB.keyenceF != null) + { + HWState.setTitle(1, hwcol, (PUB.keyenceF.IsConnect ? (PUB.keyenceF.IsTriggerOn ? "TRIG" : "ON") : "OFF")); + + if (PUB.keyenceF.IsConnect) + { + if (PUB.keyenceF.IsTriggerOn) + { + HWState.setValue(1, hwcol, 2); + } + else + { + HWState.setValue(1, hwcol, 1); + } + } + else + { + HWState.setValue(1, hwcol, 3); + } + } + else + { + HWState.setTitle(1, hwcol, "SET"); + HWState.setValue(1, hwcol, 0); + } + hwcol++; + + if (PUB.keyenceR != null) + { + HWState.setTitle(1, hwcol, (PUB.keyenceR.IsConnect ? (PUB.keyenceR.IsTriggerOn ? "TRIG" : "ON") : "OFF")); + + if (PUB.keyenceR.IsConnect) + { + if (PUB.keyenceR.IsTriggerOn) + { + HWState.setValue(1, hwcol, 2); + } + else + { + HWState.setValue(1, hwcol, 1); + } + } + else + { + HWState.setValue(1, hwcol, 3); + } + } + else + { + HWState.setTitle(1, hwcol, "SET"); + HWState.setValue(1, hwcol, 0); + } + hwcol++; + + + if (PUB.wsL != null) + { + HWState.setTitle(1, hwcol, (PUB.wsL.Connected ? "ON" : "OFF")); + HWState.setValue(1, hwcol++, (ushort)(PUB.wsL.Connected ? 1 : 3)); + } + + + if (PUB.wsR != null) + { + HWState.setTitle(1, hwcol, (PUB.wsR.Connected ? "ON" : "OFF")); + HWState.setValue(1, hwcol++, (ushort)(PUB.wsR.Connected ? 1 : 3)); + } + + + HWState.setTitle(1, hwcol, (PUB.BarcodeFix.IsOpen() ? AR.SETTING.Data.Barcode_Port : "OFF")); + HWState.setValue(1, hwcol++, (ushort)(PUB.BarcodeFix.IsOpen() ? 1 : 3)); + + if (PUB.PrinterL != null) + { + HWState.setTitle(1, hwcol, (PUB.PrinterL.IsOpen ? AR.SETTING.Data.PrintL_Port : "OFF")); + HWState.setValue(1, hwcol++, (ushort)(PUB.PrinterL.IsOpen ? 1 : 3)); + } + else HWState.setTitle(1, hwcol++, "SET"); + + if (PUB.PrinterR != null) + { + + HWState.setTitle(1, hwcol, (PUB.PrinterR.IsOpen ? AR.SETTING.Data.PrintR_Port : "OFF")); + HWState.setValue(1, hwcol++, (ushort)(PUB.PrinterR.IsOpen ? 1 : 3)); + } + else HWState.setTitle(1, hwcol++, "SET"); + + if (PUB.plc != null) + { + HWState.setTitle(1, hwcol, (PUB.plc.Init ? AR.SETTING.Data.swplc_name : "OFF")); + HWState.setValue(1, hwcol++, (ushort)(PUB.plc.Init ? 2 : 1)); + } + else HWState.setTitle(1, hwcol++, "SET"); + + HWState.Invalidate(); + + IOState.setTitle(0, 0, $"{PUB.sm.Step}"); //this.sbStep.Text = Pub.sm.Step.ToString(); + IOState.setTitle(0, 9, $"MC({PUB.MCCode}/{AR.SETTING.Data.McName})"); + IOState.setTitle(1, 0, $"{PUB.sm.Loop_ms.ToString("N1")}ms");// / " + intlockcnt.ToString();io + + IOState.setValue(0, 1, (ushort)(DIO.isSaftyDoorF(2, false) ? 0 : 2)); + IOState.setValue(0, 2, (ushort)(DIO.isSaftyDoorF(1, false) ? 0 : 2)); + IOState.setValue(0, 3, (ushort)(DIO.isSaftyDoorF(0, false) ? 0 : 2)); + + IOState.setValue(1, 1, (ushort)(DIO.GetIOOutput(eDOName.BUZZER) ? 2 : 0)); + IOState.setValue(1, 2, (ushort)(DIO.GetIOOutput(eDOName.ROOMLIGHT) ? 1 : 0)); + IOState.setValue(1, 3, (ushort)(DIO.GetIOInput(eDIName.AIR_DETECT) ? 1 : 0)); + + IOState.setValue(0, 4, (ushort)(DIO.GetIOInput(eDIName.PORTL_DET_UP) ? 1 : 0)); + IOState.setValue(0, 5, (ushort)(DIO.GetIOInput(eDIName.PORTC_DET_UP) ? 1 : 0)); + IOState.setValue(0, 6, (ushort)(DIO.GetIOInput(eDIName.PORTR_DET_UP) ? 1 : 0)); + + IOState.setValue(1, 4, (ushort)(DIO.GetIOInput(eDIName.PORTL_LIM_UP) ? 2 : 0)); + IOState.setValue(1, 5, (ushort)(DIO.GetIOInput(eDIName.PORTC_LIM_UP) ? 2 : 0)); + IOState.setValue(1, 6, (ushort)(DIO.GetIOInput(eDIName.PORTR_LIM_UP) ? 2 : 0)); + + IOState.setValue(1, 9, (ushort)(PUB.flag.get(eVarBool.FG_KEYENCE_TRIGGER) ? 2 : 0)); + + IOState.setValue(0, 10, (ushort)(PUB.flag.get(eVarBool.VS_DETECT_REEL_L) ? 2 : 0)); //reel-left detect + IOState.setValue(0, 11, (ushort)(PUB.flag.get(eVarBool.VS_DETECT_REEL_R) ? 2 : 0)); //reel-right detect + + IOState.setValue(1, 10, (ushort)(PUB.flag.get(eVarBool.VS_DETECT_CONV_L) ? 2 : 0)); //conv-left detect + IOState.setValue(1, 11, (ushort)(PUB.flag.get(eVarBool.VS_DETECT_CONV_R) ? 2 : 0)); //conv-right detect + + IOState.Invalidate(); + + if (PUB.Result.isSetvModel) + { + var modelVision = PUB.Result.vModel; + var modelName = modelVision.Title; + var modelNameM = string.Empty; + + if (PUB.Result.isSetmModel) modelNameM = PUB.Result.mModel.Title; + if (modelNameM.ToUpper().StartsWith("CONV")) + { + arLabel1.Text = "CONVEYOR ON"; + arLabel1.ForeColor = Color.Blue; + } + else + { + arLabel1.Text = "CONVEYOR OFF"; + arLabel1.ForeColor = Color.Red; + } + + + + + //시스템바이패스 + if (SETTING.Data.SystemBypass) + { + lbModelName.Text = $"SYSTEM BYPASS"; + lbModelName.ForeColor = Color.White; + lbModelName.BackColor = Color.Blue; + lbModelName.BackColor2 = Color.DeepSkyBlue; + lbModelName.ShadowColor = Color.DimGray; + } + else + { + //바이패스는 색깔을 달리한다. + if (modelName.ToUpper().Contains("BYPASS")) + { + lbModelName.Text = $"{modelName}"; + lbModelName.ForeColor = Color.DarkGreen; + lbModelName.BackColor = Color.Gold; + lbModelName.BackColor2 = Color.Yellow; + lbModelName.ShadowColor = Color.WhiteSmoke; + } + else if (modelName.ToUpper().Contains("CONVERT")) + { + lbModelName.Text = $"{modelName}"; + lbModelName.ForeColor = Color.DarkBlue; + lbModelName.BackColor = Color.Gold; + lbModelName.BackColor2 = Color.Yellow; + lbModelName.ShadowColor = Color.WhiteSmoke; + } + else + { + lbModelName.Text = $"[{VAR.STR[eVarString.JOB_CUSTOMER_CODE]}] {modelName}"; + lbModelName.ForeColor = Color.Black; + lbModelName.BackColor = Color.White; + lbModelName.BackColor2 = Color.WhiteSmoke; + lbModelName.ShadowColor = Color.DimGray; + } + } + + } + else + { + lbModelName.Text = "모델을 선택하세요"; + lbModelName.ForeColor = Color.Blue; + lbModelName.BackColor = Color.Tomato; + lbModelName.BackColor2 = Color.Red; + lbModelName.ShadowColor = Color.DimGray; + } + arLabel1.BackColor = lbModelName.BackColor; + arLabel1.BackColor2 = lbModelName.BackColor2; + + + try + { + //바코드정보표시 + var row = 1; + var col = 1; + Class.VisionData visdata = PUB.Result.ItemDataL.VisionData; + listView21.SetText(row++, col, visdata.RID); + listView21.SetText(row++, col, visdata.SID); + listView21.SetText(row++, col, visdata.QTY); + listView21.SetText(row++, col, visdata.VNAME); + listView21.SetText(row++, col, visdata.VLOT); + listView21.SetText(row++, col, visdata.MFGDATE); + listView21.SetText(row++, col, visdata.PARTNO); + listView21.SetText(row++, col, visdata.ReelSize == eCartSize.None ? "--" : visdata.ReelSize.ToString()); + + + if (PUB.flag.get(eVarBool.FG_ENABLE_LEFT) == false) + { + sbVisTitle0.Text = "DISABLE"; + sbVisTitle0.BackColor = Color.Orange; + sbVisTitle0.BackColor2 = Color.Tomato; + } + else + { + listView21.SetText(0, col, DIO.getCartSize(0) == eCartSize.None ? "?" : DIO.getCartSize(0).ToString()); + } + + if (VAR.BOOL[eVarBool.Use_Conveyor]) listView21.GetStyle(0, 1).ForeColor = Color.White; + else + listView21.GetStyle(0, 1).ForeColor = AR.SETTING.Data.Detect_CartL ? Color.White : Color.Red; + + if (VAR.BOOL[eVarBool.Use_Conveyor]) listView21.GetStyle(0, 5).ForeColor = Color.White; + else + listView21.GetStyle(0, 5).ForeColor = AR.SETTING.Data.Detect_CartR ? Color.White : Color.Red; + //lbSize0.ForeColor = COMM.SETTING.Data.Detect_CartL ? Color.White : Color.Red; + + listView21.SetText(row, col, visdata.RID2); + if (visdata.RID2.isEmpty() == false && visdata.RID.Equals(visdata.RID2) == false) listView21.SetColor(row++, col - 1, 2); + else listView21.SetColor(row++, col, 1); + + listView21.SetText(row, col, visdata.SID2); + if (visdata.SID2.isEmpty() == false && visdata.SID.Equals(visdata.SID2) == false) listView21.SetColor(row++, col - 1, 2); + else listView21.SetColor(row++, col - 1, 1); + + if (visdata.QTY2.Equals("0")) listView21.SetText(row, 1, string.Empty); + else listView21.SetText(row, col, visdata.QTY2); + if (visdata.QTY2.isEmpty() == false && visdata.QTY2.Equals("0") == false && visdata.QTY.Equals(visdata.QTY2) == false) listView21.SetColor(row++, col - 1, 2); + else listView21.SetColor(row++, col - 1, 1); + + + listView21.SetText(row, col, visdata.VNAME2); + if (visdata.VNAME2.isEmpty() == false && visdata.VNAME.Equals(visdata.VNAME2) == false) listView21.SetColor(row++, col - 1, 2); + else listView21.SetColor(row++, col - 1, 1); + + listView21.SetText(row, col, visdata.VLOT2); + if (visdata.VLOT2.isEmpty() == false && visdata.VLOT.Equals(visdata.VLOT2) == false) listView21.SetColor(row++, col - 1, 2); + else listView21.SetColor(row++, col - 1, 1); + + listView21.SetText(row, col, visdata.MFGDATE2); + if (visdata.MFGDATE2.isEmpty() == false && visdata.MFGDATE.Equals(visdata.MFGDATE2) == false) listView21.SetColor(row++, col - 1, 2); + else listView21.SetColor(row++, col - 1, 1); + + listView21.SetText(row, col, visdata.PARTNO2); + if (visdata.PARTNO2.isEmpty() == false && visdata.PARTNO.Equals(visdata.PARTNO2) == false) listView21.SetColor(row++, col - 1, 2); + else listView21.SetColor(row++, col - 1, 1); + + } + catch { } + + try + { + var visdata = PUB.Result.ItemDataC.VisionData; + Color textColor = visdata.Confirm ? Color.Lime : Color.WhiteSmoke; + + var row = 1; + var col = 3; + this.listView21.SetText(row, col, visdata.RID); + if (visdata.RID_Trust) + { + if (visdata.RIDNew) //new reelid mode + { + listView21.SetColor(row++, col - 1, 3); + } + else + { + listView21.SetColor(row++, col - 1, 6); + } + } + else + { + listView21.SetColor(row++, col - 1, 0); + } + + if (visdata.SID0.isEmpty()) + listView21.SetText(row, col, visdata.SID); + else + listView21.SetText(row, col, visdata.SID + "\n<< " + visdata.SID0); + + listView21.SetColor(row++, col - 1, (ushort)(visdata.SID_Trust ? 6 : 0)); + + if (PUB.Result.ItemDataC.VisionData.QTYRQ) + { + listView21.SetText(row, col, "RQ:" + visdata.QTY); + listView21.SetColor(row++, col - 1, 6); + } + else + { + if (visdata.QTY.Equals("0")) listView21.SetText(row, col, string.Empty); + else listView21.SetText(row, col, visdata.QTY); + listView21.SetColor(row++, col - 1, (ushort)(visdata.QTY_Trust ? 6 : 0)); + } + + listView21.SetText(row, col, visdata.VNAME); listView21.SetColor(row++, col - 1, (ushort)(visdata.VNAME_Trust ? 6 : 0)); + listView21.SetText(row, col, visdata.VLOT); listView21.SetColor(row++, col - 1, (ushort)(visdata.VLOT_Trust ? 6 : 0)); + listView21.SetText(row, col, visdata.MFGDATE); listView21.SetColor(row++, col - 1, (ushort)(visdata.MFGDATE_Trust ? 6 : 0)); + listView21.SetText(row, col, visdata.PARTNO); listView21.SetColor(row++, col - 1, (ushort)(visdata.PARTNO_Trust ? 6 : 0)); + + //lbSize1.Text = DIO.getCartSize(1) == eCartSize.None ? "?" : DIO.getCartSize(1).ToString(); + listView21.SetText(0, col, DIO.getCartSize(1) == eCartSize.None ? "?" : DIO.getCartSize(1).ToString()); + listView21.GetStyle(0, col - 1).ForeColor = AR.SETTING.Data.Detect_CartC ? Color.White : Color.Red; + + listView21.SetText(row++, col, visdata.ReelSize == eCartSize.None ? "--" : visdata.ReelSize.ToString()); + + //Degree + row++; //gridView2.setTitle(row++, 1, visdata.PARTNO); + + //QR + row++; //gridView2.setTitle(row++, 1, visdata.PARTNO); + + //바코드수량 + //listView21.SetText(row, col-1, "BACD"); + listView21.SetText(row++, col, $"{visdata.barcodelist.Count}"); + + listView21.SetText(row, col - 1, "REGEX"); + listView21.SetText(row++, col, $"{PUB.Result.BCDPattern.Count}"); + + row++;// + listView21.SetText(row, col - 1, "BATCH"); + listView21.SetText(row++, col, $"{visdata.BATCH}"); + + listView21.SetText(row, col - 1, "MAX"); + listView21.SetText(row++, col, $"{visdata.QTYMAX}"); + + var textcolor = visdata.Confirm ? 7 : 0; + var crow = 1; + listView21.SetColor(crow++, 3, textcolor); + listView21.SetColor(crow++, 3, textcolor); + listView21.SetColor(crow++, 3, textcolor); + listView21.SetColor(crow++, 3, textcolor); + listView21.SetColor(crow++, 3, textcolor); + listView21.SetColor(crow++, 3, textcolor); + listView21.SetColor(crow++, 3, textcolor); + + //arLabel25.ForeColor = textColor; + //listView21.SetColor(2, 1, (visdata.QTYRQ ? 3 : 1)); + } + catch { } + + + try + { + var row = 1; + var col = 5; + Class.VisionData visdata = PUB.Result.ItemDataR.VisionData; + listView21.SetText(row++, col, visdata.RID); + listView21.SetText(row++, col, visdata.SID); + listView21.SetText(row++, col, visdata.QTY); + listView21.SetText(row++, col, visdata.VNAME); + listView21.SetText(row++, col, visdata.VLOT); + listView21.SetText(row++, col, visdata.MFGDATE); + listView21.SetText(row++, col, visdata.PARTNO); + listView21.SetText(row++, col, visdata.ReelSize == eCartSize.None ? "--" : visdata.ReelSize.ToString()); + + + if (PUB.flag.get(eVarBool.FG_ENABLE_RIGHT) == false) + { + sbVisTitle2.Text = "DISABLE"; + sbVisTitle2.BackColor = Color.Orange; + sbVisTitle2.BackColor2 = Color.Tomato; + } + else + { + listView21.SetText(0, col, DIO.getCartSize(2) == eCartSize.None ? "?" : DIO.getCartSize(2).ToString()); + } + + + listView21.GetStyle(0, col).ForeColor = AR.SETTING.Data.Detect_CartR ? Color.White : Color.Red; + //lbSize2.Text = DIO.getCartSize(2) == eCartSize.None ? "?" : DIO.getCartSize(2).ToString(); + //lbSize2.ForeColor = COMM.SETTING.Data.Detect_CartR ? Color.White : Color.Red; + + listView21.SetText(row, col, visdata.RID2); + if (visdata.RID2.isEmpty() == false && visdata.RID.Equals(visdata.RID2) == false) listView21.SetColor(row++, col - 1, 2); + else listView21.SetColor(row++, col - 1, 1); + + listView21.SetText(row, col, visdata.SID2); + if (visdata.SID2.isEmpty() == false && visdata.SID.Equals(visdata.SID2) == false) listView21.SetColor(row++, col - 1, 2); + else listView21.SetColor(row++, col - 1, 1); + + if (visdata.QTY2.Equals("0")) listView21.SetColor(row, col, 0); + else listView21.SetText(row, col, visdata.QTY2); + if (visdata.QTY2.isEmpty() == false && visdata.QTY2.Equals("0") == false && visdata.QTY.Equals(visdata.QTY2) == false) listView21.SetColor(row++, col - 1, 2); + else listView21.SetColor(row++, col - 1, 1); + + + listView21.SetText(row, col, visdata.VNAME2); + if (visdata.VNAME2.isEmpty() == false && visdata.VNAME.Equals(visdata.VNAME2) == false) listView21.SetColor(row++, col - 1, 2); + else listView21.SetColor(row++, col - 1, 1); + + listView21.SetText(row, col, visdata.VLOT2); + if (visdata.VLOT2.isEmpty() == false && visdata.VLOT.Equals(visdata.VLOT2) == false) listView21.SetColor(row++, col - 1, 2); + else listView21.SetColor(row++, col - 1, 1); + + listView21.SetText(row, col, visdata.MFGDATE2); + if (visdata.MFGDATE2.isEmpty() == false && visdata.MFGDATE.Equals(visdata.MFGDATE2) == false) listView21.SetColor(row++, col - 1, 2); + else listView21.SetColor(row++, col - 1, 1); + + listView21.SetText(row, col, visdata.PARTNO2); + if (visdata.PARTNO2.isEmpty() == false && visdata.PARTNO.Equals(visdata.PARTNO2) == false) listView21.SetColor(row++, col - 1, 2); + else listView21.SetColor(row++, col - 1, 1); + } + catch { } + + listView21.Invalidate(); + listView21.Refresh(); + + lbLock0.BackColor = l0 ? Color.FromArgb(0xff, 0x4c, 0x0e) : Color.FromArgb(32, 32, 32); + lbLock0.BackColor2 = l0 ? Color.FromArgb(0xff, 0x4c, 0x0e) : Color.FromArgb(80, 80, 80); + lbLock1.BackColor = l1 ? Color.FromArgb(0xff, 0x4c, 0x0e) : Color.FromArgb(32, 32, 32); + lbLock1.BackColor2 = l1 ? Color.FromArgb(0xff, 0x4c, 0x0e) : Color.FromArgb(80, 80, 80); + lbLock2.BackColor = l2 ? Color.FromArgb(0xff, 0x4c, 0x0e) : Color.FromArgb(32, 32, 32); + lbLock2.BackColor2 = l2 ? Color.FromArgb(0xff, 0x4c, 0x0e) : Color.FromArgb(80, 80, 80); + + //display mesasge + UpdateStatusMessage(); //left + } + } +} \ No newline at end of file diff --git a/Handler/Project/RunCode/Display/_Interval_500ms.cs b/Handler/Project/RunCode/Display/_Interval_500ms.cs new file mode 100644 index 0000000..c188921 --- /dev/null +++ b/Handler/Project/RunCode/Display/_Interval_500ms.cs @@ -0,0 +1,63 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using AR; + +namespace Project +{ + public partial class FMain + { + + + void _Display_Interval_500ms() + { + + //홈진행중에는 모델쪽을 건드릴수 없게 한다 + toolStripButton7.Enabled = !PUB.sm.Step.ToString().StartsWith("HOME"); + //현재시간표시 + if (PUB.sm.Step == eSMStep.INIT) + lbTime.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + else + lbTime.Text = PUB.sm.UpdateTime.ToString("yyyy-MM-dd HH:mm:ss"); + + //키엔스 데이터를 바로 표시한다. + tbBarcodeF.Text = KeyenceBarcodeDataF; + tbBarcodeR.Text = KeyenceBarcodeDataR; + + lbCntLeft.Text = $"{VAR.I32[eVarInt32.LPickOfCount]}"; + lbCntRight.Text = $"{VAR.I32[eVarInt32.RPickOfCount]}"; + lbCntPicker.Text = $"{VAR.I32[eVarInt32.PickOfCount]}"; + //lbCntPrnL.Text = $"{PUB.counter.CountPrintL}"; + //lbCnrPrnR.Text = $"{PUB.counter.CountPrintR}"; + + if (AR.SETTING.Data.Enable_SpeedLimit) + grpProgress.Text = $"작업 수량(속도제한:{AR.SETTING.Data.LimitSpeed})"; + else + grpProgress.Text = $"작업 수량"; + + //display Room Light + btLightRoom.BackColor = DIO.GetIOOutput(eDOName.ROOMLIGHT) ? Color.Gold : SystemColors.Control; + + //상태를 DB에 저장한다. + EEMStatus.UpdateStatusSQL(PUB.sm.Step); + + //컨베이어 가동시간계싼 + if(DIO.GetIOOutput(eDOName.LEFT_CONV) && VAR.TIME[eVarTime.CONVL_START].Year != 1982) + { + var t = (DateTime.Now - VAR.TIME[eVarTime.CONVL_START]).TotalSeconds; + if (t > 999) t = 999; + VAR.DBL[eVarDBL.CONVL_RUNTIME] = t; + } + + if (DIO.GetIOOutput(eDOName.RIGHT_CONV) && VAR.TIME[eVarTime.CONVR_START].Year != 1982) + { + var t = (DateTime.Now - VAR.TIME[eVarTime.CONVR_START]).TotalSeconds; + if (t > 999) t = 999; + VAR.DBL[eVarDBL.CONVR_RUNTIME] = t; + } + } + } +} \ No newline at end of file diff --git a/Handler/Project/RunCode/Display/_Interval_5min.cs b/Handler/Project/RunCode/Display/_Interval_5min.cs new file mode 100644 index 0000000..5b4b2e0 --- /dev/null +++ b/Handler/Project/RunCode/Display/_Interval_5min.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Project +{ + public partial class FMain + { + + void _Display_Interval_5min() + { + //남은디스크확인 + PUB.CheckFreeSpace(); + } + + } +} diff --git a/Handler/Project/RunCode/Display/_TMDisplay.cs b/Handler/Project/RunCode/Display/_TMDisplay.cs new file mode 100644 index 0000000..9663d66 --- /dev/null +++ b/Handler/Project/RunCode/Display/_TMDisplay.cs @@ -0,0 +1,370 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using AR; +namespace Project +{ + public partial class FMain + { + DateTime tm500minute = DateTime.Now.AddDays(-1); + DateTime tm250minute = DateTime.Now.AddDays(-1); + DateTime tm1minute = DateTime.Now.AddDays(-1); + DateTime tm5minute = DateTime.Now; + Boolean displayOn = false; + Boolean needShowSummary = false; + + + private void _DisplayTimer(object sender, EventArgs e) + { + if (displayOn == false) displayOn = true; + else + { + PUB.log.AddAT("Display Timer Overlab");// Console.WriteLine("display overlab"); + return; + } + + //lbOnline.Text = COMM.SETTING.Data.OnlineMode ? "ON-LINE" : "OFF-LINE"; + //lbOnline.ForeColor = COMM.SETTING.Data.OnlineMode ? Color.Black : Color.Red; + //toolStripLabel1.Visible = Pub.Result.DryRun; + //if(Pub.Result.DryRun) + //{ + // if (toolStripLabel1.ForeColor == Color.Red) toolStripLabel1.ForeColor = Color.Black; + // else toolStripLabel1.ForeColor = Color.Red; + //} + try + { + UpdateDisplayTimerData(); + } + catch + { + + } + + + + + //작업수량 업데이트 + UpdateJobCount(); + + #region "250ms time 루틴" + var ts250 = DateTime.Now - tm250minute; + if (ts250.TotalMilliseconds >= 250) + { + _Display_Interval_250ms(); + tm250minute = DateTime.Now; + } + #endregion + + #region "500ms time 루틴" + var ts500 = DateTime.Now - tm500minute; + if (ts500.TotalMilliseconds >= 500) + { + _Display_Interval_500ms(); + tm500minute = DateTime.Now; + } + #endregion + + #region retgion"1분 time 루틴" + var ts = DateTime.Now - tm1minute; + if (ts.TotalMinutes >= 1) + { + //리셋카운트 + _Display_Interval_1min(); + tm1minute = DateTime.Now; + } + #endregion + + #region retgion"5분 time 루틴" + ts = DateTime.Now - tm5minute; + if (ts.TotalMinutes >= 5) + { + //남은디스크확인 + _Display_Interval_5min(); + tm5minute = DateTime.Now; + } + #endregion + + displayOn = false; + } + + + + void UpdateDisplayTimerData() + { + if (PUB.sm.Step > eSMStep.INIT && + panTopMenu.Enabled == false) panTopMenu.Enabled = true; + + //쓰레드로인해서 메인에서 진행하게한다. SPS는 메인쓰레드에서 진행 됨 + //팝을 제거 혹은 표시하는 기능 + if (PUB.popup.needShow) PUB.popup.showMessage(); + else if (PUB.popup.needClose) PUB.popup.Visible = false; // .setVision(false)(); + + + + ////업로드화면을 표시해야하느 ㄴ경우 + if (needShowSummary) + { + ShowSummary(); + needShowSummary = false; + } + + //시스템 정보를 메인 UI에 표시한다 + UpdateLoaderDisplay(); + + + } + void UpdateJobCount() + { + + } + + + + void UpdateLoaderDisplay() + { + hmi1.L_PICK_FW = DIO.GetIOInput(eDIName.L_PICK_FW); //피커의 실린더 전후진 상태 + hmi1.L_PICK_BW = DIO.GetIOInput(eDIName.L_PICK_BW); //피커의 실린더 전후진 상태 + hmi1.R_PICK_FW = DIO.GetIOInput(eDIName.R_PICK_FW); //피커의 실린더 전후진 상태 + hmi1.R_PICK_BW = DIO.GetIOInput(eDIName.R_PICK_BW); //피커의 실린더 전후진 상태 + + hmi1.PrintLPICK = DIO.GetIOInput(eDIName.L_PICK_VAC); + hmi1.PrintRPICK = DIO.GetIOInput(eDIName.R_PICK_VAC); + + hmi1.arJoystickGroup = PUB.Result.JoystickAxisGroup; + hmi1.arJoystickOn = PUB.joystick.IsOpen; + + hmi1.arPortLItemOn = PUB.flag.get(eVarBool.FG_PORTL_ITEMON); + hmi1.arPortRItemOn = PUB.flag.get(eVarBool.FG_PORTR_ITEMON); + + hmi1.arPLItemON = PUB.flag.get(eVarBool.FG_PL_ITEMON); + hmi1.arPRItemON = PUB.flag.get(eVarBool.FG_PR_ITEMON); + + hmi1.arFGVision0RDY = PUB.flag.get(eVarBool.FG_PRC_VISIONL); + hmi1.arFGVision1RDY = false;// PUB.flag.get(eVarBool.RDY_VISION1); + hmi1.arFGVision2RDY = PUB.flag.get(eVarBool.FG_PRC_VISIONR); + + hmi1.arFGVision0END = PUB.flag.get(eVarBool.FG_END_VISIONL); + hmi1.arFGVision1END = false;// PUB.flag.get(eVarBool.END_VISION1); + hmi1.arFGVision2END = PUB.flag.get(eVarBool.FG_END_VISIONR); + + hmi1.arFGPrinter0RDY = PUB.flag.get(eVarBool.FG_RUN_PRINTL); + hmi1.arFGPrinter1RDY = PUB.flag.get(eVarBool.FG_RUN_PRINTR); + + hmi1.arFGPrinter0END = PUB.flag.get(eVarBool.FG_OK_PRINTL); + hmi1.arFGPrinter1END = PUB.flag.get(eVarBool.FG_OK_PRINTR); + + hmi1.arMagnet0 = DIO.GetIOOutput(eDOName.CART_MAG0); + hmi1.arMagnet1 = DIO.GetIOOutput(eDOName.CART_MAG1); + hmi1.arMagnet2 = DIO.GetIOOutput(eDOName.CART_MAG2); + + hmi1.arPickerSafeZone = DIO.GetIOInput(eDIName.PICKER_SAFE); + + hmi1.arMotPosNamePX = MOT.GetPosName(eAxis.PX_PICK); + hmi1.arMotPosNamePZ = MOT.GetPosName(eAxis.PZ_PICK); + hmi1.arMotPosNameLM = MOT.GetPosName(eAxis.PL_MOVE); + hmi1.arMotPosNameLZ = MOT.GetPosName(eAxis.PL_UPDN); + hmi1.arMotPosNameRM = MOT.GetPosName(eAxis.PR_MOVE); + hmi1.arMotPosNameRZ = MOT.GetPosName(eAxis.PR_UPDN); + + hmi1.arMotILockPKX = PUB.iLock[(int)eAxis.PX_PICK].IsEmpty() == false; + hmi1.arMotILockPKZ = PUB.iLock[(int)eAxis.PZ_PICK].IsEmpty() == false; + hmi1.arMotILockPLM = PUB.iLock[(int)eAxis.PL_MOVE].IsEmpty() == false; + hmi1.arMotILockPLZ = PUB.iLock[(int)eAxis.PL_UPDN].IsEmpty() == false; + hmi1.arMotILockPRM = PUB.iLock[(int)eAxis.PR_MOVE].IsEmpty() == false; + hmi1.arMotILockPRZ = PUB.iLock[(int)eAxis.PR_UPDN].IsEmpty() == false; + + hmi1.arMotILockPRL = PUB.iLockPRL.IsEmpty() == false; + hmi1.arMotILockPRR = PUB.iLockPRR.IsEmpty() == false; + hmi1.arMotILockVS0 = PUB.iLockVS0.IsEmpty() == false; + hmi1.arMotILockVS1 = PUB.iLockVS1.IsEmpty() == false; + hmi1.arMotILockVS2 = PUB.iLockVS2.IsEmpty() == false; + hmi1.arMotILockCVL = PUB.iLockCVL.IsEmpty() == false; + hmi1.arMotILockCVR = PUB.iLockCVR.IsEmpty() == false; + + hmi1.arIsRunning = PUB.sm.isRunning; + hmi1.arUnloaderSeq = PUB.Result.UnloaderSeq; + + //연결상태 + hmi1.arConn_MOT = PUB.mot.IsInit; + hmi1.arConn_DIO = PUB.dio.IsInit; + hmi1.arAIRDetect = DIO.GetIOInput(eDIName.AIR_DETECT); + hmi1.arJobEND = PUB.flag.get(eVarBool.FG_JOB_END); + hmi1.arConn_REM = PUB.remocon.IsOpen(); + + hmi1.arDI_Emergency = DIO.GetIOInput(eDIName.BUT_EMGF) == true; + hmi1.arDI_SaftyOk = DIO.isSaftyDoorF(); + + hmi1.arVisionProcessL = PUB.flag.get(eVarBool.FG_PRC_VISIONL); + hmi1.arVisionProcessC = false;// PUB.flag.get(eVarBool.RDY_VISION1); + hmi1.arVisionProcessR = PUB.flag.get(eVarBool.FG_PRC_VISIONR); + + try + { + hmi1.arVision_RID = PUB.Result.ItemDataC.VisionData.RID; //200925 + hmi1.arVision_SID = PUB.Result.ItemDataC.VisionData.SID; //200925 + hmi1.arVar_Picker[0].PortPos = PUB.Result.ItemDataL.PortPos; //200925 + } + catch { } + + + for (int i = 0; i < 3; i++) + { + if (PUB.mot != null && PUB.mot.IsInit) + { + hmi1.arMOT_HSet[i] = PUB.mot.IsHomeSet(i); + hmi1.arMOT_Alm[i] = PUB.mot.IsServAlarm(i); + hmi1.arMOT_LimUp[i] = PUB.mot.IsLimitP(i); + hmi1.arMOT_LimDn[i] = PUB.mot.IsLimitN(i); + hmi1.arMOT_Origin[i] = PUB.mot.IsOrg(i); + hmi1.arMOT_SVOn[i] = PUB.mot.IsServOn(i); + } + else + { + hmi1.arMOT_HSet[i] = false; + hmi1.arMOT_Alm[i] = false; + hmi1.arMOT_LimUp[i] = false; + hmi1.arMOT_LimDn[i] = false; + hmi1.arMOT_Origin[i] = false; + hmi1.arMOT_SVOn[i] = false; + } + } + + //포트 리밋센서 + hmi1.arVar_Port[0].LimitLower = DIO.GetIOInput(eDIName.PORTL_LIM_DN); //front-left + hmi1.arVar_Port[0].LimitUpper = DIO.GetIOInput(eDIName.PORTL_LIM_UP); + hmi1.arVar_Port[0].DetectUp = DIO.GetIOInput(eDIName.PORTL_DET_UP); + hmi1.arVar_Port[0].SaftyErr = !DIO.isSaftyDoorF(0, false); + hmi1.arVar_Port[0].reelCount = PUB.counter.CountP0; + hmi1.arVar_Port[0].CartSize = (int)DIO.getCartSize(0); + + hmi1.arVar_Port[1].LimitLower = DIO.GetIOInput(eDIName.PORTC_LIM_DN); //front-right + hmi1.arVar_Port[1].LimitUpper = DIO.GetIOInput(eDIName.PORTC_LIM_UP); + hmi1.arVar_Port[1].DetectUp = DIO.GetIOInput(eDIName.PORTC_DET_UP); + hmi1.arVar_Port[1].SaftyErr = !DIO.isSaftyDoorF(1, false); + hmi1.arVar_Port[1].reelCount = PUB.counter.CountP1; + hmi1.arVar_Port[1].CartSize = (int)DIO.getCartSize(1); + + hmi1.arVar_Port[2].LimitLower = DIO.GetIOInput(eDIName.PORTR_LIM_DN); //front-left + hmi1.arVar_Port[2].LimitUpper = DIO.GetIOInput(eDIName.PORTR_LIM_UP); + hmi1.arVar_Port[2].DetectUp = DIO.GetIOInput(eDIName.PORTR_DET_UP); + hmi1.arVar_Port[2].SaftyErr = !DIO.isSaftyDoorF(2, false); + hmi1.arVar_Port[2].reelCount = PUB.counter.CountP2; + hmi1.arVar_Port[2].CartSize = (int)DIO.getCartSize(2); + + hmi1.arCountPrint0 = PUB.counter.CountPrintL; + hmi1.arCountPrint1 = PUB.counter.CountPrintR; + + if (VAR.BOOL[eVarBool.Use_Conveyor]) + { + hmi1.arVar_Port[0].reelCount = VAR.I32[eVarInt32.LEFT_ITEM_COUNT]; + hmi1.arVar_Port[2].reelCount = VAR.I32[eVarInt32.RIGT_ITEM_COUNT]; + } + + hmi1.arCountV1 = PUB.counter.CountV1; + hmi1.arCountV0 = PUB.counter.CountV0; + hmi1.arCountV2 = PUB.counter.CountV2; + + //피커 백큠감지 상태(Front) + hmi1.arVar_Picker[0].VacOutput[0] = DIO.GetIOOutput(eDOName.PICK_VAC1); + hmi1.arVar_Picker[0].VacOutput[1] = DIO.GetIOOutput(eDOName.PICK_VAC2); + hmi1.arVar_Picker[0].VacOutput[2] = DIO.GetIOOutput(eDOName.PICK_VAC3); + hmi1.arVar_Picker[0].VacOutput[3] = DIO.GetIOOutput(eDOName.PICK_VAC4); + hmi1.arVar_Picker[0].ItemOn = PUB.flag.get(eVarBool.FG_PK_ITEMON); + } + + + Color StatusBackColor = Color.FromArgb(150, 150, 150); + + + /// + /// 상태표시라벨의 진행값을 변경 합니다 + /// + /// + /// + /// + /// + void SetStatusProgress(double value, string title, double max = 0, Color? textColor = null, Color? shadowColor = null) + { + arCtl.arLabel lbl = lbMsg;//idx == 0 ? lbMsgL : (idx == 1 ? lbMsgC : (idx == 2 ? lbMsgR : lbMsg)); + + if (lbl.ProgressEnable == false) lbl.ProgressEnable = true; + if (lbl.ProgressValue != value) lbl.ProgressValue = (float)value; + if (lbl.Text != title) lbl.Text = title; + + if (max != 0) + { + if (lbl.ProgressMax != max) lbl.ProgressMax = (float)max; + } + if (textColor != null) + { + if (lbl.ProgressForeColor != textColor) lbl.ProgressForeColor = (Color)textColor; + } + if (shadowColor != null) + { + if (lbl.ShadowColor != shadowColor) lbl.ShadowColor = (Color)shadowColor; + } + } + + ///// + ///// 상태표시라벨의 메세지를 변경 합니다 + ///// + ///// + ///// + ///// + ///// + ///// + ///// + ///// + //void SetStatusMessage(string dispmsg, Color bColor, Color bColor2, Color fcolor, Color? shadow = null, Boolean blank = false) + //{ + // arCtl.arLabel lbl = lbMsg;//idx == 0 ? lbMsgL : (idx == 1 ? lbMsgC : (idx == 2 ? lbMsgR : lbMsg)); + // if (shadow == null) shadow = Color.Transparent; + // if (lbl.ProgressValue != 0 || dispmsg != lbl.Text || lbl.ForeColor != fcolor || lbl.ShadowColor != (Color)shadow || (lbl.BackColor != bColor && lbl.BackColor2 != bColor)) + // { + // lbl.ProgressValue = 0; + // lbl.BackColor = bColor; + // lbl.BackColor2 = bColor2; + // lbl.ForeColor = fcolor; + // lbl.ShadowColor = (Color)shadow; + // lbl.Text = dispmsg; + // if (blank) lbl.Tag = "BLINK"; + // else lbl.Tag = null; + // } + //} + + void SetStatusMessage(string dispmsg, Color fcolor, Color backcolor, Color? backColor2 = null, Color? shadow = null, Boolean blank = false) + { + arCtl.arLabel lbl = lbMsg;//idx == 0 ? lbMsgL : (idx == 1 ? lbMsgC : (idx == 2 ? lbMsgR : lbMsg)); + + if (shadow == null) shadow = Color.Transparent; + if (backColor2 == null) backColor2 = backcolor; + + var bg1ok = lbl.BackColor == backcolor && lbl.BackColor2 == backColor2; + var bg2ok = lbl.BackColor2 == backcolor && lbl.BackColor == backColor2; + + + if (lbl.ProgressValue != 0 || dispmsg != lbl.Text || + lbl.ForeColor != fcolor || lbl.ShadowColor != (Color)shadow || (bg1ok == false && bg2ok == false)) + { + lbl.ProgressValue = 0; + lbl.BackColor = backcolor; + lbl.BackColor2 = (Color)backColor2; + + lbl.ForeColor = fcolor; + lbl.ShadowColor = (Color)shadow; + lbl.Text = dispmsg; + if (blank) lbl.Tag = "BLINK"; + else lbl.Tag = null; + } + else if (lbl.ProgressEnable) + { + lbl.ProgressEnable = false; + } + } + + + } +} diff --git a/Handler/Project/RunCode/Display/_UpdateStatusMessage.cs b/Handler/Project/RunCode/Display/_UpdateStatusMessage.cs new file mode 100644 index 0000000..2469c03 --- /dev/null +++ b/Handler/Project/RunCode/Display/_UpdateStatusMessage.cs @@ -0,0 +1,208 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using AR; + +namespace Project +{ + public partial class FMain + { + /// + /// 상태표시라벨의 메세지 자동 변경 + /// + /// + void UpdateStatusMessage() + { + arCtl.arLabel lbl = lbMsg; + + //메세지창이 깜박거려야하는 상황 체크 + if (lbl.Tag != null && lbl.Tag.ToString() == "BLINK") + { + var bg1 = lbl.BackColor; + var bg2 = lbl.BackColor2; + lbl.BackColor = bg2; + lbl.BackColor2 = bg1; + lbl.Invalidate(); + } + + if (PUB.sm.Step == eSMStep.INIT) + { + SetStatusMessage("초기화 작업 중", Color.White, Color.FromArgb(0x38, 0x4d, 0x9d)); + } + else if (PUB.sm.Step == eSMStep.IDLE) + { + //각종 IO확인하여 에러메세지 표시한다 + + var msg = string.Empty; + bool errst = true; + if (PUB.mot.IsInit == false) msg = "모션 카드 준비 안됨"; + else if (PUB.dio.IsInit == false) msg = "I/O 카드 준비 안됨"; + else if (PUB.dio.HasDIOn == false) msg = "전원 확인 필요 (입력포트 감지 안됨)"; + else if (PUB.mot.HasServoAlarm == true) msg = "서보 알람 발생"; + else if (PUB.mot.HasHoming == true) msg = "홈 검색 진행 중"; + else if (PUB.mot.HasServoOff == true) msg = "서보 OFF 발생"; + else if (DIO.GetIOOutput(eDOName.SOL_AIR) == false) msg = "AIR 출력 안됨(전면 청색 AIR버튼을 누르세요)"; + else if (DIO.GetIOInput(eDIName.AIR_DETECT) == false) msg = "AIR 감지 안됨"; + else if (PUB.mot.HasHomeSetOff == true) + { + if (DIO.GetIOInput(eDIName.PICKER_SAFE) == false) + { + msg = "피커(X)축을 중앙으로 옮겨주세요 (기능-관리화면)"; + } + else + { + msg = "홈 검색이 필요 합니다"; + } + + } + else + { + + var limport = new List(); + if (PUB.mot.HasLimitError == true) + { + for (int i = 0; i < PUB.system.MotaxisCount; i++) + { + if (PUB.mot.IsUse(i) == false) continue; + if (PUB.mot.IsLimitN(i)) + { + var useOrgSensor = PUB.system_mot.GetUseOrigin; + if (useOrgSensor[i] == true) limport.Add(i.ToString()); + } + else if (PUB.mot.IsLimitP(i)) + limport.Add(i.ToString()); + else if (PUB.mot.IsLimitSWN(i)) + limport.Add(i.ToString()); + else if (PUB.mot.IsLimitSWP(i)) + limport.Add(i.ToString()); + } + } + if (limport.Any()) + { + msg = "서보 LIMIT 알람 발생(Ax:" + string.Join(",", limport) + ")"; + } + else + { + msg = "작업을 시작 하려면 START를 누르세요"; + errst = false; + } + + + } + + if (errst) + { + SetStatusMessage(msg, Color.White, Color.Red, Color.IndianRed, Color.DimGray, blank: true); + } + else + { + Color fColor = Color.FromArgb(200, 200, 200); + Color bColor1 = Color.DimGray; + Color bColor2 = Color.DarkGray; + + SetStatusMessage(msg, Color.Lime, bColor1, bColor2, Color.Black, true); + } + + } + + else if (PUB.sm.Step == eSMStep.WAITSTART) + { + SetStatusMessage("[시작 대기] ", Color.Gold, Color.FromArgb(50, 50, 50)); + } + else if (PUB.sm.Step == eSMStep.ERROR) + { + var msglis = PUB.Result.ResultMessage.Split(new char[] { '\n' }, StringSplitOptions.RemoveEmptyEntries); + SetStatusMessage($"{msglis[0]}", Color.White, Color.Red); + } + else if (PUB.sm.Step == eSMStep.PAUSE) + { + SetStatusMessage("[일시 정지] ", Color.Gold, Color.FromArgb(50, 50, 50)); + } + else if (PUB.sm.Step == eSMStep.HOME_FULL)// || Pub.sm.Step == eSMStep.QHOME) + { + SetStatusMessage($"전체 모션의 원점을 확인하고 있습니다", Color.White, Color.FromArgb(0x98, 0x79, 0xd0), shadow: Color.DimGray); + } + else if (PUB.sm.Step == eSMStep.HOME_DELAY)// || Pub.sm.Step == eSMStep.QHOME) + { + SetStatusMessage($"잠시만 기다려 주세요(홈 진행 중)", Color.White, Color.FromArgb(0x98, 0x79, 0xd0), shadow: Color.DimGray); + } + else if (PUB.sm.Step == eSMStep.HOME_CONFIRM)// || Pub.sm.Step == eSMStep.QHOME) + { + SetStatusMessage($"홈 작업을 완료 하는 중", Color.White, Color.FromArgb(0x98, 0x79, 0xd0), shadow: Color.DimGray); + } + else if (PUB.sm.Step == eSMStep.RUN) + { + + double cur = PUB.sm.seq.GetTime(PUB.sm.Step).TotalSeconds; + double max = AR.SETTING.Data.Timeout_StepMaxTime; + string msg = $"진행 중"; + Color fColor = Color.Gold; + + if (PUB.flag.get(eVarBool.FG_JOB_END)) + { + msg = "로더가 비어 있습니다. 잠시 후 작업이 완료 됩니다"; + cur = max = 0; + fColor = Color.Lime; + + } + else if (PUB.flag.get(eVarBool.FG_WAIT_LOADERINFO)) + { + msg = "사용자 정보 입력을 기다리고 있습니다"; + cur = 100; + max = 100; + } + else //if (PUB.flag.get(eVarBool.RDY_VISION1) == true && PUB.flag.get(eVarBool.RDY_PORT_PC) == true && idx == 9) + { + msg = "작업 중"; + if (PUB.flag.get(eVarBool.FG_PRC_VISIONL) && PUB.flag.get(eVarBool.FG_END_VISIONL) == false) + msg += "(LEFT-QR검증중)"; + if (PUB.flag.get(eVarBool.FG_PRC_VISIONR) && PUB.flag.get(eVarBool.FG_END_VISIONR) == false) + msg += "(RIGHT-QR검증중)"; + + //컨베이어 사용모드에서 컨베이어 인터락 검사 + if (VAR.BOOL[eVarBool.Use_Conveyor]) + { + if (DIO.GetIOInput(eDIName.R_CONV1) || DIO.GetIOInput(eDIName.R_CONV4)) + { + if (PUB.iLockCVR.IsEmpty() == false) + msg += "(우측컨베이어 인터락 해제 대기)"; + } + if (DIO.GetIOInput(eDIName.L_CONV1) || DIO.GetIOInput(eDIName.L_CONV4)) + { + if (PUB.iLockCVL.IsEmpty() == false) + msg += "(좌측컨베이어 인터락 해제 대기)"; + } + } + + cur = VAR.TIME.RUN((int)eVarTime.LIVEVIEW1).TotalSeconds; + max = AR.SETTING.Data.Timeout_VisionProcessL / 1000.0; + } + //else if (PUB.flag.get(eVarBool.RDY_ZL_PICKON)) + //{ + // var ts = DateTime.Now - Pub.GetVarTime(eVarTime.JOB_END); + // msg = string.Format("UNLOADER PICK ON #{0}", PUB.sm.seq.Get(step)); + // cur = Pub.getRunSteptime(0).TotalSeconds;//ts.TotalSeconds; + // max = 10;//COMM.SETTING.Data.Timeout_JOBEnd; + //} + //else if (PUB.mot.IsMotion((int)eAxis.Y_PICKER]) + //{ + // msg = string.Format("이동 중"); + // cur = 0;// Pub.getRunSteptime(0).TotalSeconds;// ts.TotalSeconds; + // max = 10;//COMM.SETTING.Data.Timeout_JOBEnd; + //} + SetStatusProgress(cur, msg, max, fColor, Color.FromArgb(50, 50, 50)); + } + else if (PUB.flag.get(eVarBool.FG_MOVE_PICKER)) + { + SetStatusMessage("X축을 버튼으로 이동 가능 합니다", Color.Black, Color.White); + } + else + { + SetStatusMessage("[" + PUB.sm.Step.ToString() + "]", Color.Red, Color.White); + } + } + } +} diff --git a/Handler/Project/RunCode/Main/_SM_MAIN_ERROR.cs b/Handler/Project/RunCode/Main/_SM_MAIN_ERROR.cs new file mode 100644 index 0000000..1fa5d4b --- /dev/null +++ b/Handler/Project/RunCode/Main/_SM_MAIN_ERROR.cs @@ -0,0 +1,64 @@ +using AR; +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; + +namespace Project +{ + public partial class FMain + { + private void _SM_MAIN_ERROR(Boolean isFirst, eSMStep Step, TimeSpan StepTime) + { + //모션의 위치를 저장해준다. - 재시작시 변경이 잇다면 오류로 처리한다 + for (int i = 0; i < PUB.mot.DeviceCount; i++) + PUB.Result.PreventMotionPosition[i] = PUB.mot.GetLastCmdPos(i); + + var errorMessage = string.Empty; + + //에러메세지가 있는 경우에만 표시함 + if (PUB.Result.ResultCode != eResult.NOERROR && PUB.Result.ResultMessage != "") + errorMessage += PUB.Result.ResultMessage; + + //에러메세지가 있는 경우에만 표시함 + if (errorMessage != "") + { + //사용자 값 입력창에서는 오류를 표시하지않는다 + if (Step == eSMStep.PAUSE && PUB.flag.get(eVarBool.FG_WAIT_LOADERINFO)) + PUB.log.Add("바코드정보입력창이라 일시중지 메세지를 표시하지 않음"); + else + PUB.popup.setMessage(errorMessage); + } + + + if (Step == eSMStep.EMERGENCY) + { + PUB.log.AddE("Enter Emergency Step"); + } + else if (Step == eSMStep.PAUSE) + { + PUB.log.AddE("Enter Pause Step 1 : " + PUB.Result.ResultMessage); + } + else + { + //홈 검색실패로 인해 멈췄다면 모든 축을 멈춘다 + if (Step == eSMStep.ERROR && PUB.Result.ResultCode == eResult.SAFTY) + PUB.mot.MoveStop("홈검색 실패"); + + PUB.log.AddE(string.Format("Enter Error Step 1 : {0}", PUB.Result.ResultMessage)); + } + + //lbMsgR.ProgressEnable = false; + + DIO.SetBuzzer(true); + DIO.SetPortMotor(0, eMotDir.CW, false, "ERROR"); + DIO.SetPortMotor(1, eMotDir.CW, false, "ERROR"); + DIO.SetPortMotor(2, eMotDir.CW, false, "ERROR"); + + //컨베어멈춤 + DIO.SetOutput(AR.eDOName.LEFT_CONV, false); + DIO.SetOutput(AR.eDOName.RIGHT_CONV, false); + } + } +} diff --git a/Handler/Project/RunCode/RunSequence/0_RUN_STARTCHK_SW.cs b/Handler/Project/RunCode/RunSequence/0_RUN_STARTCHK_SW.cs new file mode 100644 index 0000000..810c206 --- /dev/null +++ b/Handler/Project/RunCode/RunSequence/0_RUN_STARTCHK_SW.cs @@ -0,0 +1,157 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using AR; + +namespace Project +{ + public partial class FMain + { + async public Task _SM_RUN_STARTCHKSW(bool isFirst, TimeSpan stepTime) + { + var mc = PUB.Result.mModel; + var mv = PUB.Result.vModel; + + double free = 0; + var savepath = PUB.getSavePath(out free); + if (free < 3.0) + { + string msg = "FREE SPACE ERROR\n" + + "디스크 공간(3%)이 부족하여 작업을 진행할 수 없습니다\n" + + "저장경로 : {0}\n" + + "데이터를 삭제하거나 설정의 삭제주기를 확인하세요"; + msg = string.Format(msg, AR.SETTING.Data.Path_Data); + PUB.popup.setMessage(msg); + DIO.SetBuzzer(true); + PUB.sm.SetNewStep(eSMStep.IDLE); + return false; + } + + + + if (PUB.Result.isSetmModel == false) + { + string msg = "모션모델이 선택되지 않았습니다\n작업모델의 'MOTION'항목을 확인하세요"; + PUB.popup.setMessage(msg); + DIO.SetBuzzer(true); + PUB.sm.SetNewStep(eSMStep.IDLE); + return false; + } + + + //모션의 모든 위치가 원점이 아니라면 홈 초기화를 요청한다. + var initMsg = ""; + + if (initMsg != "") + { + PUB.popup.setMessage(initMsg); + DIO.SetBuzzer(true); + PUB.sm.SetNewStep(eSMStep.IDLE); + return false; + } + + //모델정보가 설정되어있는지 확인 + if (PUB.Result == null || + PUB.Result.vModel == null || + PUB.Result.vModel.Title.isEmpty()) + { + PUB.Result.SetResultMessage(eResult.SETUP, eECode.NOMODELV, eNextStep.ERROR); + return false; + } + + //모션모델자동선택 230823 + var motionmode = VAR.BOOL[eVarBool.Use_Conveyor] ? "Conveyor" : "Default"; + if (PUB.SelectModelM(motionmode) == false) + { + PUB.Result.SetResultMessage(eResult.SETUP, eECode.NOMODELM, eNextStep.ERROR); + return false; + } + + //모델정보가 설정되어있는지 확인 + if (PUB.Result == null || + PUB.Result.mModel == null || + PUB.Result.mModel.Title.isEmpty()) + { + PUB.Result.SetResultMessage(eResult.SETUP, eECode.NOMODELM, eNextStep.ERROR); + return false; + } + + //ECS데이터확인 230823 + var conv = VAR.BOOL[eVarBool.Use_Conveyor]; + if (conv) + { + var sidinfo = await PUB.UpdateSIDInfoByECS(); + var systembypass = SETTING.Data.SystemBypass; + if (systembypass == false && sidinfo.Item1 == false) + { + PUB.Result.SetResultMessage(eResult.SETUP, eECode.NOECSDATA, eNextStep.ERROR, sidinfo.Item2); + return false; + } + //else if (systembypass == false && sidinfo.Item3 < 1) + //{ + // PUB.Result.SetResultMessage(eResult.SETUP, eECode.NOECSDATAACTIVE, eNextStep.ERROR, sidinfo.Item2); + // return false; + //} + } + + //SID변환정보 필요 230823 + //이값도 테이블에서 실시간으로 조회되므로 미리 불러올 필요 없다 + + //사용자추가정보 필요 230823 + //기존에 사용하던 사용자 추가 정보 + //ECS정보가 수신되면 기존 TABLE 을 삭제하는 구조이므로 병행할수 없음 + //데이터는 테이블에서 실시간으로 조 회됨 + + //사용자스텝실행 + if (PUB.flag.get(eVarBool.FG_USERSTEP)) + { + PUB.flag.set(eVarBool.FG_USERSTEP, false, "STACHKSW"); + PUB.log.AddI("작업 시작으로 인해 H/W검사 무시기능을 해제 함"); + } + + //공용변수초기화 + PUB.log.Add("공용변수(카운트)값 초기화"); + VAR.I32.Clear((int)eVarInt32.LPickOfCount); + VAR.I32.Clear((int)eVarInt32.LPickOnCount); + VAR.I32.Clear((int)eVarInt32.RPickOfCount); + VAR.I32.Clear((int)eVarInt32.RPickOnCount); + VAR.I32.Clear((int)eVarInt32.PickOfCount); + VAR.I32.Clear((int)eVarInt32.PickOnCount); + VAR.I32.Clear((int)eVarInt32.PickOnRetry); //221102 + + PUB.flag.set(eVarBool.FG_RUN_LEFT, false, "POSREST"); + PUB.flag.set(eVarBool.FG_RUN_RIGHT, false, "POSREST"); + + VAR.BOOL[eVarBool.JOB_Empty_SIDConvertInfo] = false; + + + PUB.Result.ItemDataL.Clear("START_CHKSW"); + PUB.Result.ItemDataC.Clear("START_CHKSW"); + PUB.Result.ItemDataR.Clear("START_CHKSW"); + + var modelName = PUB.Result.vModel.Title; + PUB.Result.BCDPattern = PUB.GetPatterns(modelName, false); + PUB.Result.BCDIgnorePattern = PUB.GetPatterns(modelName, true); + PUB.Result.BCDPrintPattern = PUB.GetPrintPatterns(); + PUB.log.Add($"모델패턴로딩:{PUB.Result.BCDPattern.Count}/{PUB.Result.BCDIgnorePattern.Count}"); + + //변환SID SID확인여부데이터 삭제 + PUB.Result.DTSidConvertEmptyList.Clear(); + PUB.Result.DTSidConvertMultiList.Clear(); + + PUB.Result.JobStartTime = DateTime.Now; + warninactivelist.Clear(); + + //작업락기능해제 + LockPK.Set(); + LockUserL.Set(); + LockUserR.Set(); + + + return true; + } + } +} diff --git a/Handler/Project/RunCode/RunSequence/1_RUN_STARTCHK_HW.cs b/Handler/Project/RunCode/RunSequence/1_RUN_STARTCHK_HW.cs new file mode 100644 index 0000000..ad2282e --- /dev/null +++ b/Handler/Project/RunCode/RunSequence/1_RUN_STARTCHK_HW.cs @@ -0,0 +1,177 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using AR; +namespace Project +{ + public partial class FMain + { + + /// + /// 장치의 초기화 여부를 우선 체크 한다. + /// 장치에 문제가 있는 경우에는 ERROR상황으로 뺀다 + /// ERROR 상황은 RESET 시 IDLE로 전환된다. + /// 복구불가능한 오류 상황이다. + /// + /// + /// + /// + /// + public Boolean _SM_RUN_STARTCHKHW(bool isFirst, TimeSpan stepTime) + { + var mc = PUB.Result.mModel; + var mv = PUB.Result.vModel; + + //최초시작이므로 - 셔틀2의 안전위치 이동 플래그를 OFF해준다. + + //장치초기화 확인 + if (PUB.mot.IsInit == false || PUB.dio.IsInit == false) + { + PUB.Result.SetResultMessage(eResult.HARDWARE, eECode.AZJINIT, eNextStep.ERROR); + return false; + } + + //서보 off 상태 확인 + if (PUB.mot.HasServoOff) + { + PUB.Result.SetResultMessage(eResult.MOTION, eECode.MOT_SVOFF, eNextStep.ERROR);//, msg); + return false; + } + + //홈 검색완료 체크1 + if (PUB.mot.HasHomeSetOff) + { + PUB.Result.SetResultMessage(eResult.MOTION, eECode.MOT_HSET, eNextStep.ERROR); + return false; + } + + //air확인 + if (DIO.GetIOOutput(eDOName.SOL_AIR) == false) + { + PUB.Result.SetResultMessage(eResult.SENSOR, eECode.AIRNOOUT, eNextStep.ERROR); + return false; + } + + //카메라초기화체크(초기화가 오래걸려서 쓰레드분리함) - 201229 + if (VAR.BOOL[eVarBool.Opt_DisableCamera] == false && AR.SETTING.Data.Enable_Unloader_QRValidation && PUB.flag.get(eVarBool.FG_RDY_CAMERA_L) == false && AR.SETTING.Data.Disable_Left == false) + { + PUB.Result.SetResultMessage(eResult.HARDWARE, eECode.CAM_LEFT, eNextStep.ERROR); + return false; + } + + if (VAR.BOOL[eVarBool.Opt_DisableCamera] == false && AR.SETTING.Data.Enable_Unloader_QRValidation && PUB.flag.get(eVarBool.FG_RDY_CAMERA_R) == false && AR.SETTING.Data.Disable_Right == false) + { + PUB.Result.SetResultMessage(eResult.HARDWARE, eECode.CAM_RIGHT, eNextStep.ERROR); + return false; + } + + //안전위치 센서가 안들어와잇으면 오류 처리한다 + if (DIO.GetIOInput(eDIName.PICKER_SAFE) == false) + { + PUB.Result.SetResultMessage(eResult.MOTION, eECode.NEED_JOBCANCEL, eNextStep.ERROR, eAxis.PL_MOVE, PUB.mot.ErrorMessage); + return false; + } + + //프린터확인 + if (PUB.flag.get(eVarBool.FG_INIT_PRINTER) == false) + { + PUB.Result.SetResultMessage(eResult.HARDWARE, eECode.PRINTER, eNextStep.ERROR); + return false; + } + + //부착 실린더 위치 확인 + if (AR.SETTING.Data.Enable_PickerCylinder) + { + if (DIO.GetIOInput(eDIName.L_CYLUP) == false) + { + PUB.Result.SetResultMessage(eResult.HARDWARE, eECode.PRINTER_LPRINTER_NOUP, eNextStep.ERROR); + return false; + } + if (DIO.GetIOInput(eDIName.R_CYLUP) == false) + { + PUB.Result.SetResultMessage(eResult.HARDWARE, eECode.PRINTER_RPRINTER_NOUP, eNextStep.ERROR); + return false; + } + } + + //부착 실린더 위치 확인 + if (DIO.GetIOInput(eDIName.L_PICK_BW) == false) + { + PUB.Result.SetResultMessage(eResult.HARDWARE, eECode.PRINTER_LPICKER_NOBW, eNextStep.ERROR); + return false; + } + if (DIO.GetIOInput(eDIName.R_PICK_BW) == false) + { + PUB.Result.SetResultMessage(eResult.HARDWARE, eECode.PRINTER_RPICKER_NOBW, eNextStep.ERROR); + return false; + } + + //컨베이어 모드에서 컨베이어에 릴이 감지되면 시작하지 못한다 + if (VAR.BOOL[eVarBool.Use_Conveyor]) + { + if (DIO.GetIOInput(eDIName.L_CONV1)) + { + //감지되면 안된다 + var ssname = $"X{eDIName.L_CONV1}"; + PUB.Result.SetResultMessage(eResult.OPERATION, eECode.LCONVER_REEL_DECTECT_ALL, eNextStep.ERROR, ssname); + return false; + } + + if (DIO.GetIOInput(eDIName.R_CONV1) || + DIO.GetIOInput(eDIName.R_CONV4)) + { + //감지되면 안된다 + var ssname = $"X{eDIName.R_CONV1}"; + PUB.Result.SetResultMessage(eResult.OPERATION, eECode.RCONVER_REEL_DECTECT_ALL, eNextStep.ERROR, ssname); + return false; + } + } + + ////카메라체크 + //for (int i = 0; i < _isCrevisOpen.Length; i++) + //{ + // if (COMM.SETTING.Data.DisableCamera(i) == true) + // { + // PUB.log.AddAT($"카메라({i})번 비활성 됨(환경설정)"); + // } + // else if (_isCrevisOpen[i] == false) + // { + // if (i == 0 && COMM.SETTING.Data.DisableCamera0 == false && COMM.SETTING.Data.Disable_Left == false) + // { + // PUB.Result.SetResultMessage(eResult.HARDWARE, eECode.VISION_NOCONN, eNextStep.ERROR, i); + // return false; + // } + // if (i == 2 && COMM.SETTING.Data.DisableCamera2 == false && COMM.SETTING.Data.Disable_Right == false) + // { + // PUB.Result.SetResultMessage(eResult.HARDWARE, eECode.VISION_NOCONN, eNextStep.ERROR, i); + // return false; + // } + // } + //} + + //트리거 OFF작업 + WS_Send(eWorkPort.Left, PUB.wsL, "", "OFF", ""); + WS_Send(eWorkPort.Right, PUB.wsR, "", "OFF", ""); + + var systembypassmode = SETTING.Data.SystemBypass; + + //바코드설정업데이트 + if (systembypassmode == false) + { + var k1 = PUB.UpLoadBarcodeConfig(PUB.keyenceF); + var k2 = PUB.UpLoadBarcodeConfig(PUB.keyenceR); + if (k1 == false && k2 == false) //결과확인하도록함 230511 + { + PUB.Result.SetResultMessage(eResult.HARDWARE, eECode.CONFIG_KEYENCE, eNextStep.ERROR); + return false; + } + + } + + + return true; + } + } +} diff --git a/Handler/Project/RunCode/RunSequence/2_RUN_ROOT_SEQUENCE.cs b/Handler/Project/RunCode/RunSequence/2_RUN_ROOT_SEQUENCE.cs new file mode 100644 index 0000000..c2727d4 --- /dev/null +++ b/Handler/Project/RunCode/RunSequence/2_RUN_ROOT_SEQUENCE.cs @@ -0,0 +1,1114 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Runtime.InteropServices.WindowsRuntime; +using System.Security.Cryptography; +using System.Text; +using System.Web.UI.WebControls; +using AR; +using Chilkat; + +namespace Project +{ + public partial class FMain + { + public Boolean _RUN_ROOT_SEQUENCE(eWorkPort target, eSMStep cmdIndex) + { + UInt16 idx = 1; + var mv = PUB.Result.vModel; + var mc = PUB.Result.mModel; + var funcName = System.Reflection.MethodBase.GetCurrentMethod().Name; + var seqTime = PUB.sm.seq.GetTime(cmdIndex); + var msgType = (Class.eStatusMesage)target; + var item = target == eWorkPort.Left ? PUB.Result.ItemDataL : PUB.Result.ItemDataR; + //var Jobtype = VAR.STR[eVarString.JOB_TYPE]; + var CVMode = VAR.BOOL[eVarBool.Use_Conveyor]; + + //option check + var OPT_PrinterOff = PUB.OPT_PRINTEROFF(target); + var OPT_CameraOff = PUB.OPT_CAMERA(target); + var OPT_BYPASS = PUB.OPT_BYPASS(); + + //#################################################### + //### 작업시작 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + PUB.StatusMessage.set(msgType, $"[{target}] 작업을 시작 합니다"); + + //프린터용 백큠이 켜져있다면 오류로 한다. + if (target == eWorkPort.Left) + { + if (DIO.GetIOOutput(eDOName.PRINTL_AIRON)) + { + PUB.Result.SetResultMessage(eResult.OPERATION, eECode.NEED_AIROFF_L, eNextStep.PAUSE); + return false; + } + } + else + { + if (DIO.GetIOOutput(eDOName.PRINTR_AIRON)) + { + PUB.Result.SetResultMessage(eResult.OPERATION, eECode.NEED_AIROFF_R, eNextStep.PAUSE); + return false; + } + } + + //Keyence_Trigger(true); + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 프린터(Y,Z) 안전위치로 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + sPositionData PosY, PosZ; + if (target == eWorkPort.Left) + { + PosY = MOT.GetLMPos(eLMLoc.READY); + PosZ = MOT.GetLZPos(eLZLoc.READY); + } + else + { + PosY = MOT.GetRMPos(eRMLoc.READY); + PosZ = MOT.GetRZPos(eRZLoc.READY); + } + + //Y축이 준비위가 아닌경우에만 이 처리를 한다. + if (MOT.getPositionMatch(PosY) == false) + { + if (MOT.CheckMotionPos(seqTime, PosZ, funcName) == false) return false; + if (MOT.CheckMotionPos(seqTime, PosY, funcName) == false) return false; + } + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 로더에 릴이 감지되어있어야 다음 작업을 진행할 수 있음 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + //Check Port Ready + if (PUB.flag.get(eVarBool.FG_RDY_PORT_PC) == false && DIO.GetIOInput(eDIName.PORTC_DET_UP) == false) return false; + + //Check Reel Detect Sensor + if (DIO.GetIOInput(eDIName.PORTC_DET_UP) == false) return false; + + //check Reel Limit Sensor + if (DIO.GetIOInput(eDIName.PORTC_LIM_UP) == true) return false; + + if (CVMode) + { + if (target == eWorkPort.Left) + { + if (DIO.GetIOInput(eDIName.L_CONV1)) return false; + //혹은 컨베이어 가동시간이 5초전이라면 넘어간다 230926 + if (VAR.I32[eVarInt32.LEFT_ITEM_COUNT] > 0) + { + if (seqTime.TotalSeconds > 5) + { + //if (PUB.flag.get(eVarBool.FG_RDY_CAMERA_L) && PUB.flag.get(eVarBool.VS_DETECT_REEL_L) == false) + //{ + // //비젼에서 없다고 보고 되어있다면 그대로 진행한다.. + // PUB.log.AddAT($"(L)비전에서 자재가 감지되지 않아 강제 진행 합니다"); + // VAR.I32[eVarInt32.LEFT_ITEM_COUNT] = 0; + //} + if (VAR.DBL[eVarDBL.CONVL_RUNTIME] > 15) + { + PUB.log.AddE($"(L) 컨베이어 15초 초과로 버퍼 클리어"); + VAR.I32[eVarInt32.LEFT_ITEM_COUNT] = 0; + } + else return false; + } + else return false; + } + } + else + { + if (DIO.GetIOInput(eDIName.R_CONV1)) return false; + //혹은 컨베이어 가동시간이 5초전이라면 넘어간다 230926 + if (VAR.I32[eVarInt32.RIGT_ITEM_COUNT] > 0) + { + if (seqTime.TotalSeconds > 5) + { + //if (PUB.flag.get(eVarBool.FG_RDY_CAMERA_R) && PUB.flag.get(eVarBool.VS_DETECT_REEL_R) == false) + //{ + // //비젼에서 없다고 보고 되어있다면 그대로 진행한다.. + // PUB.log.AddAT($"(r)비전에서 자재가 감지되지 않아 강제 진행 합니다"); + // VAR.I32[eVarInt32.RIGT_ITEM_COUNT] = 0; + //} + if (VAR.DBL[eVarDBL.CONVR_RUNTIME] > 15) + { + PUB.log.AddE($"(R) 컨베이어 15초 초과로 버퍼 클리어"); + VAR.I32[eVarInt32.RIGT_ITEM_COUNT] = 0; + } + else return false; + } + else return false; + } + } + //PUB.log.Add($"CVMODE에서 컨베이어 비어있음(SEQ)"); + } + + VAR.TIME[(int)eVarTime.JOBEVENT] = DateTime.Now; + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 피커 사용확인 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + PUB.StatusMessage.set(msgType, $"[{target}] 피커(X) 사용 권한 확인"); + + if (LockPK.WaitOne(1) == false) return false; + LockPK.Reset(); + hmi1.AddLockItem((int)target, "PICKER"); + + PUB.mot.ClearPosition((int)eAxis.Z_THETA); + if (target == eWorkPort.Left) + { + //카트가 없으면 동작하지 않게한다. + PUB.flag.set(eVarBool.FG_RUN_RIGHT, false, funcName); + PUB.flag.set(eVarBool.FG_RUN_LEFT, true, funcName); + } + else + { + PUB.flag.set(eVarBool.FG_RUN_LEFT, false, funcName); + PUB.flag.set(eVarBool.FG_RUN_RIGHT, true, funcName); + } + + PUB.sm.seq.Clear(eSMStep.RUN_PICK_RETRY); + PUB.Result.ItemDataC.VisionData.STime = DateTime.Now; + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 피커 리딩위치 이동 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + var PickerRetryCount = AR.VAR.I32[AR.eVarInt32.PickOnRetry]; + //PUB.StatusMessage.set(msgType, $"[{target}] 피커(X) 읽기위치 이동"); + + //비젼이 읽혀지지 않다면 안전위치로 이동시킨다. + //PUB.log.AddAT("비젼이 읽히지 않은 경우에만 리딩위치로 이동시켜준다"); + + //완료되지않았다면 비켜준다 220920 + if (PUB.Result.ItemDataC.VisionData.Confirm == false) + { + + if (PickerRetryCount == 0) //처음작업이다 + { + sPositionData Pos; + if (target == eWorkPort.Left) + { + //우측을 사용하지 않으면 좌측으로 이동한다 + if (PUB.flag.get(eVarBool.FG_ENABLE_RIGHT) == false) Pos = MOT.GetPXPos(ePXLoc.READYR); + else Pos = MOT.GetPXPos(ePXLoc.READYL); + } + else + { + //우측이나 좌측을 사용하지 않으면 좌측으로 이동한다 + if (PUB.flag.get(eVarBool.FG_ENABLE_LEFT) == false) Pos = MOT.GetPXPos(ePXLoc.READYL); + else Pos = MOT.GetPXPos(ePXLoc.READYR); + } + + if (MOT.CheckMotionPos(seqTime, Pos, funcName) == false) return false; + PUB.log.AddAT($"###### 처음 작업 회피 이동 완료({target})"); + } + else + { + //재시도 작업이므로 잡아서 79도 돌리는 작업 한다 + if (PICKER_RETRY(target, eSMStep.RUN_PICK_RETRY) == false) return false; + PUB.sm.seq.Clear(eSMStep.RUN_PICK_RETRY); + } + } + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 픽온작업용 시퀀스값 초기화 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + VAR.BOOL[eVarBool.wait_for_keyence] = true; + if (target == eWorkPort.Left) + { + PUB.sm.seq.Clear(eSMStep.RUN_KEYENCE_READ_L); + PUB.Result.ItemDataL.Clear(funcName); + VAR.BOOL[eVarBool.wait_for_keyenceR] = false; + VAR.BOOL[eVarBool.wait_for_keyenceL] = true; + } + else + { + PUB.sm.seq.Clear(eSMStep.RUN_KEYENCE_READ_R); + PUB.Result.ItemDataR.Clear(funcName); + VAR.BOOL[eVarBool.wait_for_keyenceL] = false; + VAR.BOOL[eVarBool.wait_for_keyenceR] = true; + } + + //키엔스데이터 기다리는중 + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 키엔스바코드 확인 작업 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + EResultKeyence Complete = EResultKeyence.Wait; + if (target == eWorkPort.Left) + Complete = KEYENCE_READ(target, eSMStep.RUN_KEYENCE_READ_L); + else + Complete = KEYENCE_READ(target, eSMStep.RUN_KEYENCE_READ_R); + + if (Complete == EResultKeyence.Wait) + { + //읽을수있도록 좌표를 이동시켜준다 + sPositionData Pos; + if (target == eWorkPort.Left) + { + //우측을 사용하지 않으면 좌측으로 이동한다 + if (PUB.flag.get(eVarBool.FG_ENABLE_RIGHT) == false) Pos = MOT.GetPXPos(ePXLoc.READYR); + else Pos = MOT.GetPXPos(ePXLoc.READYL); + } + else + { + //우측이나 좌측을 사용하지 않으면 좌측으로 이동한다 + if (PUB.flag.get(eVarBool.FG_ENABLE_LEFT) == false) Pos = MOT.GetPXPos(ePXLoc.READYL); + else Pos = MOT.GetPXPos(ePXLoc.READYR); + } + + //sPositionData Pos = target == eWorkPort.Left ? MOT.GetPXPos(ePXLoc.READYL) : MOT.GetPXPos(ePXLoc.READYR); + if (MOT.getPositionMatch(Pos) == false) + { + PUB.log.AddAT($"######비젼데이터없으므로 회피이동II({target})"); + MOT.Move(Pos); + } + return false; + } + else if (Complete == EResultKeyence.TimeOut) + { + //이미 사용자 확인창 + if (PUB.flag.get(eVarBool.FG_WAIT_LOADERINFO)) + { + //아무것도 하지 않는다 + //사용자가 정보를 설정하는 중 + } + else + { + //반복시도횟수가 설정되지 않았거나 최대를 초과하면 사용자 확인창을 띄운다 + bool ShowUserForm = false; + if (AR.SETTING.Data.RetryPickOnMaxCount == 0) + { + PUB.log.Add($"픽온 재시작 횟수가 없어 사용자 확인창을 띄웁니다"); + ShowUserForm = true; + } + else if (AR.VAR.I32[AR.eVarInt32.PickOnRetry] >= AR.SETTING.Data.RetryPickOnMaxCount) + { + PUB.log.Add($"픽온 재시도 횟수가 초과됨 (최대:{AR.SETTING.Data.RetryPickOnMaxCount})"); + ShowUserForm = true; + } + else + { + if (VAR.BOOL[eVarBool.Need_UserConfirm_Data]) + { + PUB.log.Add($"사용자확인창을 띄워야함"); + ShowUserForm = true; + } + else + { + //읽은데이터가 atkstandard라면 바로 팝업을 띄운다 + if (PUB.Result.ItemDataC.VisionData.SID.isEmpty() || PUB.Result.ItemDataC.VisionData.SID_Trust == false) + { + PUB.log.Add($"픽온을 재시도 합니다 ({AR.VAR.I32[AR.eVarInt32.PickOnRetry]}/{AR.SETTING.Data.RetryPickOnMaxCount})"); + ShowUserForm = false; + } + else + { + PUB.log.Add($"SID값이 있으니 재시도하지 않고 사용자확인창을 띄웁니다"); + ShowUserForm = true; + } + } + } + + //데이터가 충족되면 오류처리한다. + if (PUB.Result.ItemDataC.VisionData.SID.isEmpty() == false && PUB.Result.ItemDataC.VisionData.BATCH.isEmpty() == false) + { + + //ecs on 컨베이어때만 사용한다 + bool warndata = false; + if (SETTING.Data.ECSSkip == false && CVMode) + { + //모두 찾은상태에서는 활성화여부를 추가 확인한다. + var sid = PUB.Result.ItemDataC.VisionData.SID;// item.VisionData.SID; + var bat = PUB.Result.ItemDataC.VisionData.BATCH;// item.VisionData.BATCH; + + //현 시점의 활성화 목록을 가져온다 + var activelist = PUB.GetECSActiveSIDList(); + + //해당sid+bat 가 활성화된것인지 확인한다. + bool active = false; + string active_sid = ""; + string active_bat = ""; + var sidorder = 0; + var sidx = 0; + foreach (var actItem in activelist) + { + if (actItem.Item3 != SETTING.Data.McName) continue; + + if (actItem.Item4) + { + if (active_sid.isEmpty()) + { + active_sid = actItem.Item1; + active_bat = actItem.Item2; + PUB.log.Add($"act 목록에서 활성화코드 확인:{active_sid},bat:{active_bat}"); + } + } + + if (actItem.Item1.Equals(sid) && actItem.Item2.Equals(bat)) + { + active = actItem.Item4; + sidorder = sidx; //순서를 저장한다. 0부터 시작하는값이다. + } + + //내 장비에 한해서 순서를 결정한다. + //if (actItem.Item3 == SETTING.Data.McName) + sidx += 1; + } + + //활성화된 sid가 아니다 + if (active == false) + { + if (sidorder > 1) //2번째는 무조건 에러 + { + PUB.log.AddE($"active sid 아니고 {sidorder + 1}번 항목이므로 오류 처리한다."); + warndata = true; + } + else + { + //활성sid의 작업데이터가있으면 ok + var qa = new DataSet1TableAdapters.QueriesTableAdapter(); + var existreadat = qa.GetIBResultCountBySIDBatch(DateTime.Now.AddHours(-6), active_sid, active_bat) > 0; + + //활성sid의 작업데이터가있으면 ok + if (existreadat) + { + PUB.log.AddAT($"active sid 는 아니지만 활성sid({active_sid},batch:{active_bat}) 의 기록이 있어 진행 합니다"); + warndata = false; + } + else + { + PUB.log.AddE($"active sid 아니고 활성sid({active_sid},batch:{active_bat}) 의 기록이 없어 진행 불가"); + warndata = true; + } + //없으면 ng + } + } + + //오류발생조건이나, 이미 발생했다면 처리하지 않는다. + if (warndata) + { + if (warninactivelist.Contains(sid + bat) == false) + { + warninactivelist.Add(sid + bat); + } + else + { + PUB.log.AddAT($"이미 경고한 sid+bqt이므로 넘어갑니다({sid}{bat})"); + warndata = false; + } + } + } + + if (warndata) + { + PUB.Result.SetResultMessage(eResult.OPERATION, eECode.NOECSDATAACTIVE, eNextStep.PAUSE, item.VisionData.SID, item.VisionData.BATCH); + if (ShowUserForm) + { + //오류로 인해 사용자 확인창을 표시하지 않습니다. + ShowUserForm = false; + return false; + } + + } + + } + + + //사용자 확인창을 표시한다 + if (ShowUserForm) + { + this.Invoke(new Action(() => + { + var itemC = PUB.Result.ItemDataC; + PUB.log.Add("사용자 확인창을 호출 합니다"); + var f = new Dialog.fLoaderInfo(itemC.VisionData.bcdMessage); + f.Show(); + })); + } + else + { + //픽온재시도 + PUB.sm.seq.Clear(eSMStep.RUN_PICK_RETRY); + VAR.I32[eVarInt32.PickOnRetry] += 1;//, 1); + VAR.BOOL[eVarBool.JOB_PickON_Retry] = true; + + PUB.log.Add($"픽온재시도 ({VAR.I32[eVarInt32.PickOnRetry]})"); + PUB.sm.seq.Update(cmdIndex, -2); + } + } + return false; + } + + //키엔스대기상태를 설정해준다 + VAR.BOOL[eVarBool.wait_for_keyence] = false; + if (target == eWorkPort.Left) VAR.BOOL[eVarBool.wait_for_keyenceL] = false; + else VAR.BOOL[eVarBool.wait_for_keyenceR] = false; + + PUB.Result.ItemDataC.VisionData.ReelSize = DIO.getCartSize(1); + PUB.log.AddI($"[{target}] 키엔스 확인 완료(크기:{PUB.Result.ItemDataC.VisionData.ReelSize})"); + PUB.log.AddI($"[{target}] Print Position:{PUB.Result.ItemDataC.VisionData.PrintPositionData}"); + + + //픽온작업용 시퀀스값 초기화 + if (target == eWorkPort.Left) + { + //프린트Z축을 픽온위치에둔다. + var PosLM = MOT.GetLZPos(eLZLoc.PICKON); + MOT.Move(PosLM); + PUB.sm.seq.Clear(eSMStep.RUN_PICKER_ON_L); + PUB.sm.seq.Clear(eSMStep.RUN_PRINTER_F); + PUB.sm.seq.Clear(eSMStep.RUN_PRINTER_ON_F); + //PUB.sm.seq.Clear(eSMStep.RUN_PRINTER_OFF_F); + PUB.Result.ItemDataC.CopyTo(ref PUB.Result.ItemDataL); + PUB.log.Add($"[{target}] 비젼데이터 카피 (C->L) ID:{PUB.Result.ItemDataL.VisionData.RID}"); + } + else + { + var PosRM = MOT.GetRZPos(eRZLoc.PICKON); + MOT.Move(PosRM); + PUB.sm.seq.Clear(eSMStep.RUN_PICKER_ON_R); + PUB.sm.seq.Clear(eSMStep.RUN_PRINTER_R); + PUB.sm.seq.Clear(eSMStep.RUN_PRINTER_ON_R); + //PUB.sm.seq.Clear(eSMStep.RUN_PRINTER_OFF_R); + PUB.Result.ItemDataC.CopyTo(ref PUB.Result.ItemDataR); + PUB.log.Add($"[{target}] 비젼데이터 카피 (C->R) ID:{PUB.Result.ItemDataR.VisionData.RID}"); + } + + //트리거 OFF + System.Threading.Tasks.Task.Run(() => + { + if (PUB.keyenceF != null) PUB.keyenceF.Trigger(false); + if (PUB.keyenceR != null) PUB.keyenceR.Trigger(false); + }); + + + PUB.log.Add($"[{target}] Print Pos={item.VisionData.PrintPositionData}"); + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 릴아이디 사용 체크 221107 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + //만약 현재의 바코드가 이전바코드와 동일하다면 오류로 처리한다. + var pre_ridN = VAR.STR[eVarString.PrePick_ReelIDNew].Trim(); + var pre_ridO = VAR.STR[eVarString.PrePick_ReelIDOld].Trim(); + var pre_targ = VAR.STR[eVarString.PrePick_ReelIDTarget].ToUpper().Trim(); + + var cur_ridN = target == eWorkPort.Left ? PUB.Result.ItemDataL.VisionData.RID : PUB.Result.ItemDataR.VisionData.RID.Trim(); + var cur_ridO = target == eWorkPort.Left ? PUB.Result.ItemDataL.VisionData.RID0 : PUB.Result.ItemDataR.VisionData.RID0.Trim(); + + if (OPT_BYPASS) + { + PUB.log.Add($"바이패스이므로 이전 릴아이디 검사 안함"); + } + else + { + if (pre_ridN.isEmpty() == false) //일단 무조건 신규아이디가 있어야한다 + { + + //이전과 동일한 ID를 처리했다 오류, 스카이웍스는 본래의 ID를 사용하므로 이곳에서 걸린다 + if (pre_ridN.Equals(cur_ridN)) + { + if (pre_targ == "LEFT") + PUB.Result.SetResultMessage(eResult.OPERATION, eECode.PRE_USE_REELID_L, eNextStep.ERROR, target, pre_ridN, cur_ridN); + else + PUB.Result.SetResultMessage(eResult.OPERATION, eECode.PRE_USE_REELID_R, eNextStep.ERROR, target, pre_ridN, cur_ridN); + } + else + { + PUB.log.Add($"신규아이디 사용체크 OK PRE={pre_ridN},NEW={cur_ridN}"); + + if (pre_ridO.isEmpty() == false && cur_ridO.isEmpty() == false) //구형아이디는 둘다 값이 있을때 처리한다. + { + if (pre_ridO.Equals(cur_ridO)) + { + if (pre_targ == "LEFT") + PUB.Result.SetResultMessage(eResult.OPERATION, eECode.PRE_USE_REELID_L, eNextStep.ERROR, target, pre_ridO, cur_ridO); + else + PUB.Result.SetResultMessage(eResult.OPERATION, eECode.PRE_USE_REELID_R, eNextStep.ERROR, target, pre_ridO, cur_ridO); + } + else PUB.log.Add($"신규아이디 사용체크(ORG) OK PRE={pre_ridO},NEW={cur_ridO}"); + } + else + { + PUB.log.Add($"신규아이디 사용체크(ORG) SKIP(NODATA) PRE={pre_ridO},NEW={cur_ridO}"); + } + } + } + else + { + PUB.log.Add($"처음작업하므로 이전 릴아이디 검사 안함"); + } + + VAR.STR[eVarString.PrePick_ReelIDNew] = cur_ridN; + VAR.STR[eVarString.PrePick_ReelIDOld] = cur_ridO; + VAR.STR[eVarString.PrePick_ReelIDTarget] = target.ToString(); + + PUB.log.Add($"이전작업릴ID설정 값 N={cur_ridN},O={cur_ridO}"); + } + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### bypass check 230510 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + + + //컨베이어모드에서는 좌측 센서에 릴이 있다면 대기해야한다. 230829 + if (CVMode) + { + if (target == eWorkPort.Left) + { + if (DIO.GetIOInput(eDIName.L_CONV1)) return false; + //혹은 컨베이어 가동시간이 5초전이라면 넘어간다 230926 + if (VAR.I32[eVarInt32.LEFT_ITEM_COUNT] > 0) return false; + //{ + // var cvrun = VAR.DBL[eVarDBL.LEFT_ITEM_PICKOFF]; + // if (cvrun < 6) return false; + //} + } + else + { + if (DIO.GetIOInput(eDIName.R_CONV1)) return false; + //혹은 컨베이어 가동시간이 5초전이라면 넘어간다 230926 + if (VAR.I32[eVarInt32.RIGT_ITEM_COUNT] > 0) return false; + //{ + // var cvrun = VAR.DBL[eVarDBL.RIGT_ITEM_PICKOFF]; + // if (cvrun < 6) return false; + //} + } + PUB.log.Add($"CVMODE에서 컨베이어 비어있음(SEQ)"); + } + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### PICKER ON + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + bool Complete = false; + if (target == eWorkPort.Left) + { + if (PRINTER(target, eSMStep.RUN_PRINTER_F)) + PRINTER_ON(target, eSMStep.RUN_PRINTER_ON_F); + Complete = PICKER_ON(target, eSMStep.RUN_PICKER_ON_L); + } + else + { + if (PRINTER(target, eSMStep.RUN_PRINTER_R)) + PRINTER_ON(target, eSMStep.RUN_PRINTER_ON_R); + Complete = PICKER_ON(target, eSMStep.RUN_PICKER_ON_R); + } + + if (Complete == false) return false; + //PUB.log.Add($"[{target}] 피커 ON 작업 완료"); + VAR.I32.Clear((int)eVarInt32.PickOnRetry); + + //픽온작업용 시퀀스값 초기화 + if (target == eWorkPort.Left) + { + PUB.sm.seq.Clear(eSMStep.RUN_PICKER_OFF_L); + //PUB.Result.ItemData[1].CopyTo(ref PUB.Result.ItemData[0]); + PUB.log.Add($"바코드데이터 복제(LEFT)"); + + PUB.flag.set(eVarBool.FG_BUSY_LEFT, true, funcName); + //프린터용 AIR처리해준다. + DIO.SetPrintLVac(ePrintVac.inhalation); + DIO.SetPrintLAir(true); + //PUB.Result.ItemData[1].UpdateTo(ref PUB.Result.ItemData[0]); + } + else + { + PUB.sm.seq.Clear(eSMStep.RUN_PICKER_OFF_R); + //PUB.Result.ItemData[1].CopyTo(ref PUB.Result.ItemData[0]); + PUB.log.Add($"바코드데이터 복제(RIGHT)"); + + PUB.flag.set(eVarBool.FG_BUSY_RIGHT, true, funcName); + //프린터용 AIR처리해준다. + DIO.SetPrintRVac(ePrintVac.inhalation); + DIO.SetPrintRAir(true); + //PUB.Result.ItemData[1].UpdateTo(ref PUB.Result.ItemData[2]); + } + + PUB.Result.ItemDataC.Clear($"[{target}] 픽온완료"); //전송했으니 지운다 + + KeyenceBarcodeDataF = string.Empty; + KeyenceBarcodeDataR = string.Empty; + //PUB.log.AddAT($"바코드데이터 삭제(CENTER)"); + + //다음데이터를 읽을 수 있도록 트리거를 전송한다 + System.Threading.Tasks.Task.Run(() => + { + if (PUB.keyenceF != null) PUB.keyenceF.Trigger(true); + if (PUB.keyenceR != null) PUB.keyenceR.Trigger(true); + }); + + //Keyence_Trigger(true); + + //SID목록을 저장한다 231005 + + string sid, prn; sid = prn = ""; + if (target == eWorkPort.Left) + { + sid = PUB.Result.ItemDataL.VisionData.SID; + prn = PUB.Result.ItemDataL.VisionData.PrintPositionData; + } + else + { + sid = PUB.Result.ItemDataR.VisionData.SID; + prn = PUB.Result.ItemDataR.VisionData.PrintPositionData; + } + + if (sid.isEmpty() == false) + { + if (PUB.Result.PrintPostionList.ContainsKey(sid) == false) + { + PUB.Result.PrintPostionList.Add(sid, prn); + PUB.log.AddAT($"프린트위치저장 SID:{sid} = {prn}"); + } + else + { + var predata = PUB.Result.PrintPostionList[sid]; + if (predata != prn) + { + PUB.log.AddAT($"프린트위치저장값 변경 SID:{sid} = {predata} -> {prn}"); + PUB.Result.PrintPostionList[sid] = prn; + } + } + } + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### PICKER OFF + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + bool Complete = false; + if (target == eWorkPort.Left) + { + if (PRINTER(target, eSMStep.RUN_PRINTER_F)) + PRINTER_ON(target, eSMStep.RUN_PRINTER_ON_F); + Complete = PICKER_OFF(target, eSMStep.RUN_PICKER_OFF_L); + } + else + { + if (PRINTER(target, eSMStep.RUN_PRINTER_R)) + PRINTER_ON(target, eSMStep.RUN_PRINTER_ON_R); + Complete = PICKER_OFF(target, eSMStep.RUN_PICKER_OFF_R); + } + + if (Complete == false) return false; + + //PUB.log.Add($"[{target}] 피커 OFF 작업 완료"); + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 피커위치로 이동시키고 권한을 넘겨준다 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + + //프린터와 pickoin 작업을 진행한다 + if (target == eWorkPort.Left) + { + if (PRINTER(target, eSMStep.RUN_PRINTER_F)) + PRINTER_ON(target, eSMStep.RUN_PRINTER_ON_F); + } + else + { + if (PRINTER(target, eSMStep.RUN_PRINTER_R)) + PRINTER_ON(target, eSMStep.RUN_PRINTER_ON_R); + } + + //X축 중앙으로 이동 + var Pos = MOT.GetPXPos(ePXLoc.PICKON); + if (target == eWorkPort.Left && PUB.flag.get(eVarBool.FG_ENABLE_RIGHT) == false) + Pos = MOT.GetPXPos(ePXLoc.READYR); //우측이 꺼져잇다면 바코드 읽도록 우측으로 비켜준다 + if (target == eWorkPort.Right && PUB.flag.get(eVarBool.FG_ENABLE_LEFT) == false) + Pos = MOT.GetPXPos(ePXLoc.READYL); //좌측이 꺼져있다면 바코드 읽도록 좌측으로 비켜준다 + + + if (MOT.CheckMotionPos(seqTime, Pos, funcName) == false) return false; + + //X축을 놓아준다 + LockPK.Set(); + hmi1.RemoveLockItem((int)target, "LD-FRONT"); + PUB.logDbg.Add($"[{target}] X축 권한 해제"); + PUB.mot.ClearPosition((int)eAxis.Z_THETA); + + //if (target == eWorkShuttle.Left) + // PUB.sm.seq.Clear(eSMStep.RUN_PRINTER_F); + //else + // PUB.sm.seq.Clear(eSMStep.RUN_PRINTER_R); + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 프린터 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + bool Complete = false; + if (target == eWorkPort.Left) + Complete = PRINTER(target, eSMStep.RUN_PRINTER_F); + else + Complete = PRINTER(target, eSMStep.RUN_PRINTER_R); + if (Complete == false) return false; + + //PUB.log.Add($"[{target}] 프린터 작업 완료"); + + //if (target == eWorkShuttle.Left) + // PUB.sm.seq.Clear(eSMStep.RUN_PRINTER_ON_F); + //else + // PUB.sm.seq.Clear(eSMStep.RUN_PRINTER_ON_R); + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + + //#################################################### + //### 프린터 PICK ON + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + bool Complete = false; + if (target == eWorkPort.Left) + Complete = PRINTER_ON(target, eSMStep.RUN_PRINTER_ON_F); + else + Complete = PRINTER_ON(target, eSMStep.RUN_PRINTER_ON_R); + if (Complete == false) return false; + + //PUB.log.Add($"[{target}] 프린터 ON 작업 완료"); + + if (target == eWorkPort.Left) + { + PUB.sm.seq.Clear(eSMStep.RUN_PRINTER_OFF_F); + DIO.SetPrintLAir(false); + } + else + { + PUB.sm.seq.Clear(eSMStep.RUN_PRINTER_OFF_R); + DIO.SetPrintRAir(false); + } + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + + //#################################################### + //### 프린터 PICK OFF + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + bool Complete = false; + if (target == eWorkPort.Left) + Complete = PRINTER_OFF(target, eSMStep.RUN_PRINTER_OFF_F); + else + Complete = PRINTER_OFF(target, eSMStep.RUN_PRINTER_OFF_R); + if (Complete == false) return false; + + //PUB.log.Add($"[{target}] 프린터 OFF 작업 완료"); + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 프린터(Y,Z) 안전위치로 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + sPositionData PosZ; + if (target == eWorkPort.Left) + { + PosZ = MOT.GetLZPos(eLZLoc.READY); + } + else + { + PosZ = MOT.GetRZPos(eRZLoc.READY); + } + if (MOT.CheckMotionPos(seqTime, PosZ, funcName) == false) return false; + + //카메라를 사용한다면 검증해야하니 컨베이어를 멈춘다 + if (OPT_CameraOff == false) + { + if (target == eWorkPort.Left) + PUB.iLockCVL.set((int)eILockCV.VISION, true, funcName); + else + PUB.iLockCVR.set((int)eILockCV.VISION, true, funcName); + } + + + //Z가 올라갔으니 컨베이어를 돌려도된다 + if (CVMode) + { + //카메라를 사용하지 않는다면 바로 OFF 한다 + if (VAR.BOOL[eVarBool.Opt_DisableCamera] == false) + { + if (target == eWorkPort.Left) + PUB.iLockCVL.set((int)eILockCV.BUSY, false, funcName); + else + PUB.iLockCVR.set((int)eILockCV.BUSY, false, funcName); + } + } + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 실리더 원위치 이동시킨다 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (target == eWorkPort.Left) + { + DIO.SetOutput(eDOName.PRINTL_FWD, false); + } + else + { + DIO.SetOutput(eDOName.PRINTR_FWD, false); + } + PUB.sm.seq.Update(cmdIndex); + return false; + } + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (target == eWorkPort.Left) + { + if (DIO.checkDigitalO(eDIName.L_PICK_BW, seqTime, true) != eNormalResult.True) return false; + } + else + { + if (DIO.checkDigitalO(eDIName.R_PICK_BW, seqTime, true) != eNormalResult.True) return false; + } + PUB.sm.seq.Update(cmdIndex); + return false; + } + + + //#################################################### + //### 프린터(Y,Z) 안전위치로 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + sPositionData PosY, PosZ; + if (target == eWorkPort.Left) + { + PosY = MOT.GetLMPos(eLMLoc.READY); + PosZ = MOT.GetLZPos(eLZLoc.READY); + PUB.sm.seq.Clear(eSMStep.RUN_QRVALID_F); + } + else + { + PosY = MOT.GetRMPos(eRMLoc.READY); + PosZ = MOT.GetRZPos(eRZLoc.READY); + PUB.sm.seq.Clear(eSMStep.RUN_QRVALID_R); + } + if (MOT.CheckMotionPos(seqTime, PosZ, funcName) == false) return false; + if (MOT.CheckMotionPos(seqTime, PosY, funcName) == false) return false; + PUB.sm.seq.Update(cmdIndex); + return false; + } + + + //#################################################### + //### QR코드 검증 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + bool Complete = false; + + if (OPT_CameraOff) //카메라사용하지 않음 + { + PUB.log.Add($"QR Validation SKIP:{target} - Camera Off"); + Complete = true; + item.PrintQRValidResult = "SKIP"; + + + //var sendok = WS_Send(target, WS, item.guid, "TRIG", item.VisionData.PrintQRData); + } + else + { + if (target == eWorkPort.Left) + Complete = QR_VALIDATION(target, eSMStep.RUN_QRVALID_F); + else + Complete = QR_VALIDATION(target, eSMStep.RUN_QRVALID_R); + } + if (Complete == false) return false; + PUB.log.Add($"QR Validation Complete:{target}"); + + //작업이완료되었다 + if (target == eWorkPort.Left) + { + PUB.iLockCVL.set((int)eILockCV.BUSY, false, funcName); + PUB.iLockCVL.set((int)eILockCV.VISION, false, funcName); + WS_Send(eWorkPort.Left, PUB.wsL, "", "OFF", ""); + } + else + { + PUB.iLockCVR.set((int)eILockCV.BUSY, false, funcName); + PUB.iLockCVR.set((int)eILockCV.VISION, false, funcName); + WS_Send(eWorkPort.Right, PUB.wsR, "", "OFF", ""); + } + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + + //#################################################### + //### 결과업데이트(22/07/07) + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + item.JobEnd = DateTime.Now; + + //전송한다 + var reelsize = "0"; + if (item.VisionData.ReelSize == eCartSize.Inch7) reelsize = "7"; + else if (item.VisionData.ReelSize == eCartSize.Inch13) reelsize = "13"; + var reelinfo = new + { + AMKOR_SID = item.VisionData.SID,// tbsid.Text, + AMKOR_BATCH = item.VisionData.BATCH,// tbbatch.Text, + LABEL_ID = item.VisionData.RID,// tbrid.Text, + LABEL_VENDOR_LOT = item.VisionData.VLOT,// tblot.Text, + LABEL_AMKOR_SID = item.VisionData.SID,// tbsid.Text, + LABEL_QTY = item.VisionData.QTY,// tbqty.Text, + LABEL_MANUFACTURER = item.VisionData.VNAME,// tbvname.Text, + LABEL_PRODUCTION_DATE = item.VisionData.MFGDATE,// tbmfg.Text, + LABEL_INCH_INFO = reelsize,// tbinch.Text, + LABEL_PART_NUM = item.VisionData.PARTNO,// tbpart.Text, + EQP_ID = AR.SETTING.Data.McName,// tbeqid.Text, + EQP_NAME = $"Auto Label Attach {SETTING.Data.McName}", + BADGE = string.Empty, + OPER_NAME = string.Empty, + CPN = item.VisionData.MCN, + TARGET = item.VisionData.Target, + }; + + bool rlt = false; + string errmsg = string.Empty; + //var systembypassmode = SETTING PUB.Result.vModel.Title.Equals("BYPASS"); + + if (CVMode == true && SETTING.Data.SystemBypass == false) + { + rlt = Amkor.RestfulService.Inbound_label_attach_reel_info(reelinfo, out errmsg); + PUB.log.AddE("WAS전송" + (rlt ? "성공" : "실패") + $":{errmsg}"); + if (rlt == false) //230927 - 오류발생시 + { + if (errmsg.Contains("LABEL_ID is duplicate") && SETTING.Data.InboundWebService_RID_DupSKIP) + { + PUB.log.AddAT($"환경설정에서 인바운드API 중복 오류가 무시됨"); + } + else + { + PUB.Result.SetResultMessage(eResult.OPERATION, eECode.INBOUNDWEBAPIERROR, eNextStep.PAUSE, target, errmsg); + return false; ; + } + } + } + else if (CVMode == false) + { + //카트모드에서는 처리하지 않는다. + rlt = true; + errmsg = string.Empty; + PUB.log.AddAT($"cart mode 로 인해 inbound 저장 안함"); + } + else + { + errmsg = "bypass"; + rlt = false; + PUB.log.AddAT($"System bytpass 로 인해 inbound 저장 안함"); + } + if (errmsg.Length > 190) errmsg = errmsg.Substring(0, 190); //230810 maxlength error + SaveData_EE(item, (target == eWorkPort.Left ? "L" : "R"), (rlt ? "OK" : errmsg),"root_sequence"); + //RefreshList(); //목록업데이트 + EEMStatus.AddStatusCount(1, $"{item.VisionData.SID}|{item.VisionData.RID}"); //eem 추가 230620 + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 다시`` 처음으로 이동 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + PUB.StatusMessage.set(msgType, $"[{target}] 전체작업완료 초기화"); + UserStepWait(target); + + item.Clear($"{target}:{funcName}"); + if (target == eWorkPort.Left) + { + PUB.flag.set(eVarBool.FG_BUSY_LEFT, false, funcName); + } + else + { + PUB.flag.set(eVarBool.FG_BUSY_RIGHT, false, funcName); + } + + VAR.TIME[(int)eVarTime.JOBEVENT] = DateTime.Now; + PUB.log.AddI($"[{target}] 작업완료"); + PUB.sm.seq.Clear(cmdIndex); + return true; + } + + PUB.sm.seq.Clear(cmdIndex); + return true; + } + } +} \ No newline at end of file diff --git a/Handler/Project/RunCode/RunSequence/3_KEYENCE_READ.cs b/Handler/Project/RunCode/RunSequence/3_KEYENCE_READ.cs new file mode 100644 index 0000000..494eeea --- /dev/null +++ b/Handler/Project/RunCode/RunSequence/3_KEYENCE_READ.cs @@ -0,0 +1,667 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Security.Cryptography; +using System.Text; +using AR; +using Project.Class; + +namespace Project +{ + public partial class FMain + { + public enum EResultKeyence + { + Wait = 0, + Complete, + TimeOut, + } + public EResultKeyence KEYENCE_READ(eWorkPort target, eSMStep cmdIndex) + { + UInt16 idx = 1; + var mv = PUB.Result.vModel; + var mc = PUB.Result.mModel; + var funcName = System.Reflection.MethodBase.GetCurrentMethod().Name; + var seqTime = PUB.sm.seq.GetTime(cmdIndex); + var msgType = (Class.eStatusMesage)target; + var itemC = PUB.Result.ItemDataC; + if (PUB.sm.getNewStep != eSMStep.RUN) return EResultKeyence.Wait; + //var Jobtype = VAR.STR[eVarString.JOB_TYPE]; + + var CVMode = VAR.BOOL[eVarBool.Use_Conveyor]; + var OPT_PrinterOff = PUB.OPT_PRINTEROFF(target); + var OPT_CameraOff = PUB.OPT_CAMERA(target); + var OPT_BYPASS = PUB.OPT_BYPASS(); + + //데이터가 완료되었는지 확인 + if (itemC.VisionData.Confirm) + { + PUB.log.AddAT("비젼 데이터 완료로 인해 바코드 메세지를 제거 합니다"); + itemC.VisionData.bcdMessage.Clear(); + return EResultKeyence.Complete; + } + + //사용자 입력 대기중이면 아에 처리하지 않는다 210203 + if (PUB.flag.get(eVarBool.FG_WAIT_LOADERINFO) == true) + { + PUB.WaitMessage[1] = "Wait for User Confirm Interface"; + return EResultKeyence.Wait; + } + + //#################################################### + //### 작업시작 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (PUB.Result.DryRun) + { + PUB.log.Add($"[{target}] DRY-RUN 으로 인한 완료"); + SetDryrunData(); + } + else + { + PUB.logDbg.Add($"[{target}] 키엔스 읽기 시작"); + if (PUB.keyenceF != null) PUB.keyenceF.Trigger(true); + if (PUB.keyenceR != null) PUB.keyenceR.Trigger(true); + } + + VAR.BOOL[eVarBool.Need_UserConfirm_Data] = false; + VAR.TIME.Update(eVarTime.KEYENCEWAIT); + PUB.sm.seq.Update(cmdIndex); + return EResultKeyence.Wait; + } + + //#################################################### + //### + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + //아무것도안함 + PUB.sm.seq.Update(cmdIndex); + return EResultKeyence.Wait; + } + + //#################################################### + //### 키엔스데이터를 처리해준다. + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + bool vQtyOK = false; + + //동작중이아니라면 처리하지 않음 + if (PUB.sm.getNewStep != eSMStep.RUN) return EResultKeyence.Wait; + + //var k1 = UpLoadBarcodeConfig(PUB.keyenceF); + + //바이패스라면 무조건ok한다. + var systembypassmode = SETTING.Data.SystemBypass; + if (systembypassmode && PUB.flag.get(eVarBool.FG_RDY_PORT_PC)) + { + PUB.Result.ItemDataC.VisionData.SetRID("BP" + DateTime.Now.ToString("yyyyMMddHHmmss"), "bp"); + PUB.Result.ItemDataC.VisionData.SID = ("100000000"); + PUB.Result.ItemDataC.VisionData.VNAME = "BYPASS"; + PUB.Result.ItemDataC.VisionData.MFGDATE = DateTime.Now.ToString("yyyy-MM-dd"); + PUB.Result.ItemDataC.VisionData.VLOT = "BYPASS"; + PUB.Result.ItemDataC.VisionData.CUSTCODE = "0000"; + PUB.Result.ItemDataC.VisionData.CUSTNAME = "BYPASS"; + PUB.Result.ItemDataC.VisionData.QTY = "10000"; + PUB.Result.ItemDataC.VisionData.ConfirmUser = true; + PUB.Result.ItemDataC.VisionData.PrintPositionData = "1"; + PUB.Result.ItemDataC.VisionData.PrintPositionCheck = true; + return EResultKeyence.Complete; + } + + + //로더정보를 사용자가 처리중이면 동작 안함 + if (PUB.flag.get(eVarBool.FG_WAIT_LOADERINFO)) return EResultKeyence.TimeOut; + + //데이터 처리 시간을 넘어서면 사용자 확인 창을 띄운다 220621 + var ts = VAR.TIME.RUN((int)eVarTime.KEYENCEWAIT); + if (PUB.flag.get(eVarBool.FG_RDY_PORT_PC) && ts.TotalMilliseconds > AR.SETTING.Data.Timeout_VisionProcessL) + { + + //화면업데이트를 종료한다 + if (PUB.keyenceF != null) PUB.keyenceF.Trigger(false); + if (PUB.keyenceR != null) PUB.keyenceR.Trigger(false); + + //이미지저장용 작업시작 + var tempfileF = System.IO.Path.Combine(UTIL.CurrentPath, "Temp", "Image", DateTime.Now.ToString("yyyMMddHhmmss_fff" + "F.bmp")); + var tempfileR = System.IO.Path.Combine(UTIL.CurrentPath, "Temp", "Image", DateTime.Now.ToString("yyyMMddHhmmss_fff" + "R.bmp")); + var tempfiF = new System.IO.FileInfo(tempfileF); + var tempfiR = new System.IO.FileInfo(tempfileR); + if (tempfiF.Directory.Exists == false) tempfiF.Directory.Create(); + if (tempfiR.Directory.Exists == false) tempfiR.Directory.Create(); + + //마지막 사진을 추출한다 + var CurImageF = PUB.keyenceF.SaveImage(tempfiF.FullName); + var CurImageR = false; + if (PUB.keyenceR != null) CurImageR = PUB.keyenceR.SaveImage(tempfiR.FullName); + if (CurImageF && CurImageR) + { + itemC.VisionData.SetImage( + new Emgu.CV.Mat(tempfiF.FullName, Emgu.CV.CvEnum.ImreadModes.Grayscale), + new Emgu.CV.Mat(tempfiR.FullName, Emgu.CV.CvEnum.ImreadModes.Grayscale)); + //using (var tempimg = new Emgu.CV.Image(tempfi.FullName)) + //{ + // itemC.VisionData.SetImage(tempimg); + //} + } + else if (CurImageF) + { + itemC.VisionData.SetImage(new Emgu.CV.Mat(tempfiF.FullName, Emgu.CV.CvEnum.ImreadModes.Grayscale)); + //using (var tempimg = new Emgu.CV.Image(tempfi.FullName)) + //{ + // itemC.VisionData.SetImage(tempimg); + //} + } + PUB.keyenceF.Trigger(true); + PUB.keyenceR.Trigger(true); + return EResultKeyence.TimeOut; + } + + //수량임의 입력의 경우 + if (VAR.BOOL[eVarBool.Opt_UserQtyRQ]) + { + if (itemC.VisionData.QTYRQ) vQtyOK = true; ////RQ의 값이 들어있으면 성공 + else vQtyOK = false; //수량임의모드인데 RQ값이 들어있지않으면 자동진행하지 않는다 + } + else + { + //자동에서는 수량값이 들어있으면 바로 넘어가게한다. + vQtyOK = itemC.VisionData.QTY.isEmpty() == false; + } + + //커스터머 이름 확인 + if (OPT_BYPASS == false && (itemC.VisionData.CUSTNAME.isEmpty() && itemC.VisionData.CUSTCODE.isEmpty() == false)) + { + var qta = new DataSet1TableAdapters.QueriesTableAdapter(); + var custname = qta.GetCustName(itemC.VisionData.CUSTCODE); + if (custname.isEmpty() == false) + { + PUB.log.Add($"New CustName => {custname}"); + itemC.VisionData.CUSTNAME = custname; + } + } + + //릴Id 신규부여 + if (OPT_BYPASS == false && VAR.BOOL[eVarBool.Opt_NewReelID]) + { + if (itemC.VisionData.RIDNew == false && itemC.VisionData.CUSTCODE.isEmpty() == false) + { + var newid = Amkor.RestfulService.Allocation_Unique_ReelID_AmkorSTD(itemC.VisionData.CUSTCODE, "4", "A", out string errmsg); + if (newid.isEmpty() == false) + { + //backup origin reel id + itemC.VisionData.RID0 = itemC.VisionData.RID; + + //set new reel id + itemC.VisionData.SetRID(newid, "SPS:CHKDATACOMPLETE");// = newid; + itemC.VisionData.RIDNew = true; //applied new reel id + + //서버의수량업데이트기능이 켜져있다면 해당 값을 제거해준다. (다시 조회되도록 함) + if (VAR.BOOL[eVarBool.Opt_ServerQty]) + { + //이미 수량업데이트된 경우이므로 복원시켜준다 + if (itemC.VisionData.QTY0.isEmpty() == false) + { + PUB.log.AddAT($"릴아이디 변경으로 인해 수량을 복원합니다({itemC.VisionData.QTY}->{itemC.VisionData.QTY0})"); + itemC.VisionData.QTY = itemC.VisionData.QTY0; + itemC.VisionData.QTY0 = string.Empty; + } + } + } + else + { + var logtime = VAR.TIME.RUN((int)eVarTime.LOG_NEWIDERROR); + if (logtime.TotalSeconds >= 3000) + { + PUB.log.AddAT($"Reel_ID 생성실패 : {errmsg}"); + VAR.TIME.Update(eVarTime.LOG_NEWIDERROR); + } + } + } + } + + //기본 벤더이름 + if (OPT_BYPASS == false && PUB.Result.vModel.Def_Vname.isEmpty() == false) + { + if (itemC.VisionData.VNAME.Equals(PUB.Result.vModel.Def_Vname) == false) + { + itemC.VisionData.VNAME = PUB.Result.vModel.Def_Vname; + itemC.VisionData.VNAME_Trust = true; + PUB.log.Add($"Defaul V.Name Set to {PUB.Result.vModel.Def_Vname}"); + } + } + + //기본 MFG + if (OPT_BYPASS == false && PUB.Result.vModel.Def_MFG.isEmpty() == false) + { + if (itemC.VisionData.MFGDATE.Equals(PUB.Result.vModel.Def_MFG) == false) + { + itemC.VisionData.MFGDATE = PUB.Result.vModel.Def_MFG; + itemC.VisionData.MFGDATE_Trust = true; + PUB.log.Add($"Defaul MFGDATE Set to {PUB.Result.vModel.Def_MFG}"); + } + } + + if (itemC.VisionData.Confirm) + { + //이미 완료된 데이터 + if (itemC.VisionData.ConfirmAuto) + PUB.log.AddI($"데이터확정완료(자동)로 인한 진행"); + else if (itemC.VisionData.ConfirmUser) + PUB.log.AddI($"데이터확정완료(수동)로 인한 진행"); + else + PUB.log.AddI($"데이터확정완료(BYPASS)로 인한 진행"); + } + else if (itemC.VisionData.QRInputRaw.isEmpty() == false && itemC.VisionData.BATCH.isEmpty() == false) + { + //ATK STD QR데이터가 입력되었으니 더이상 읽지 않아도 진행하도록 하자 + //데이터가 부족하다면 바로 채우기 작업을 해야한다 + CheckDataComplte(itemC, "STD", true); + return EResultKeyence.Wait; + } + else if (vQtyOK && + (OPT_BYPASS || itemC.VisionData.VNAME.isEmpty() == false) && + itemC.VisionData.VLOT.isEmpty() == false && + itemC.VisionData.SID.Length == 9 && + (OPT_BYPASS || itemC.VisionData.MFGDATE.isEmpty() == false) && + itemC.VisionData.PARTNO.isEmpty() == false && + itemC.VisionData.BATCH.isEmpty() == false && + itemC.VisionData.RID.isEmpty() == false) + { + //모든값이 입력되어 있다면 조건 체크후 진행할 수 있도록 한다 + //2206211400 + CheckDataComplte(itemC, "SINGLE", true); + return EResultKeyence.Wait; + } + else + { + //아직데이터가 완료되지 않았다면 + //대기시간이 지나면 사용자 확인창을 띄운다 + return EResultKeyence.Wait; + } + + PUB.sm.seq.Update(cmdIndex); + return EResultKeyence.Wait; + } + + + //#################################################### + //### + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + PUB.sm.seq.Update(cmdIndex); + return EResultKeyence.Wait; + } + + PUB.sm.seq.Clear(cmdIndex); + return EResultKeyence.Complete; + } + + /// + /// 데이터입력이 완료되었는지 확인 합니다 + /// + /// + /// + /// + void CheckDataComplte(Class.JobData item, string Source, bool mainjob) + { + Boolean NeedConfirm = false; + //var Jobtype = VAR.STR[eVarString.JOB_TYPE]; + var OPT_BYPASS = SETTING.Data.SystemBypass;// Jobtype == "BP"; + var CVMode = VAR.BOOL[eVarBool.Use_Conveyor]; + + if (item.VisionData.Confirm) + { + //사용자에의해 완성된 자료는 완료된 자료이다 + if (item.VisionData.bcdMessage.Count > 0) item.VisionData.bcdMessage.Clear(); + return; + } + + //DB정보에서 데이터를 쓸것이 있다면 기록한다 + + //이전작업내역에서 데이터를 쓸것이 있다면 기록한다 + + //서버의수량업데이트기능 + if (OPT_BYPASS == false && VAR.BOOL[eVarBool.Opt_ServerQty]) + { + //수량원본이 없는 경우 + if (item.VisionData.QTY0.isEmpty()) + { + string msg; + var cnt = (int)(Amkor.RestfulService.get_stock_count(item.VisionData.RID, out msg)); + if (cnt > 0) + { + //새로받은 데이터를 실제 수량에 추가한다 + item.VisionData.QTY0 = item.VisionData.QTY; + item.VisionData.QTY = cnt.ToString(); + if (mainjob) PUB.log.Add($"서버수량업데이트 RID:{item.VisionData.RID} 구:{item.VisionData.QTY},신:{cnt}"); + } + else + { + if (mainjob) PUB.log.AddE($"수량업데이트 실패 rID:{item.VisionData.RID},Message={msg}"); + NeedConfirm = true; + if (mainjob) item.VisionData.bcdMessage.Add("수량 업데이트 실패"); + } + } + } + + //수량입력 210708 + if (OPT_BYPASS == false && VAR.BOOL[eVarBool.Opt_UserQtyRQ]) + { + if (item.VisionData.QTYRQ && item.VisionData.QTY.isEmpty() == false) + { + //RQ값이 이전 값이 오기도 하니 바코드 목록에서 값을 다시 써준다. 210825 + var rqBcd = PUB.Result.ItemDataC.VisionData.barcodelist.Where(t => t.Value.Data.StartsWith("RQ")).FirstOrDefault(); + if (rqBcd.Value != null) + { + var newqty = rqBcd.Value.Data.Substring(2).Trim(); + if (mainjob) PUB.log.Add($"수량업데이트(01) {item.VisionData.QTY}->{newqty}"); + item.VisionData.QTY = newqty; + if (mainjob) PUB.log.AddI("수량수동입력상태이나 RQ값이 확인되어 사용자 확인을 하지 않음"); + } + else + { + if (mainjob) item.VisionData.bcdMessage.Add("RQ값 오류 (자동불가)"); + NeedConfirm = true; + } + } + else + { + if (mainjob) item.VisionData.bcdMessage.Add("수량 수동 입력 필요"); + NeedConfirm = true; + } + } + + //SID 존재여부 확인 + if (OPT_BYPASS == false && item.VisionData.SID_Trust && VAR.BOOL[eVarBool.Opt_CheckSIDExist]) + { + //ECS목록에 데이터가 업다면 오류로 처리한다 + var SID = item.VisionData.SID; + var MCName = VAR.BOOL[eVarBool.Use_Conveyor] ? "IB" : SETTING.Data.McName; + var ta = new DataSet1TableAdapters.QueriesTableAdapter(); + var exist = ta.CheckSIDExist(MCName, SID) > 0; + PUB.log.Add($"SID 존재여부 검사 KEY:{MCName},SID:{item.VisionData.SID},Result={exist}"); + if (exist == false) + { + PUB.Result.SetResultMessage(eResult.OPERATION, eECode.NOSIDINFOFROMDB, eNextStep.PAUSE, SID); + return; + } + } + + //sid변환기능확인 + var SIDOK = false; + if (OPT_BYPASS == false && VAR.BOOL[eVarBool.Opt_SIDConvert]) + { + //변환된 정보가 없다면 변환을 진행한다 + if (item.VisionData.SID0.isEmpty() && item.VisionData.SID_Trust && item.VisionData.SID.isEmpty() == false) + { + //현재SID가 정상 시드라면 변환을 시작한다 + + + //_SM_RUN_VISION_SIDCONV(item); + } + + //시드값이 유효한지 확인한다. + SIDOK = item.VisionData.SID_Trust && item.VisionData.SID0.isEmpty() == false && item.VisionData.SID.isEmpty() == false; + } + else SIDOK = item.VisionData.SID_Trust; //시드변환을 사용하지 않으므로 시드값여부에따라 다르다 + + //사용자확인이 필요한 옵션이라면 사용한다 + if (OPT_BYPASS == false && VAR.BOOL[eVarBool.Opt_UserConfim]) + { + if (NeedConfirm == false) + { + if (mainjob) item.VisionData.bcdMessage.Add("사용자 확인 필요"); + //if (mainjob) PUB.log.Add($"사용자 확인 옵션으로 인해 창을 표시 합니다{Source}"); + NeedConfirm = true; + } + } + + //처음작업이면 반드시 확인을 한다 + if (OPT_BYPASS == false && PUB.Result.JobFirst) + { + //사용자확인이 필요없는 상태라면 활성화해준다 + if (NeedConfirm == false) + { + //프린트를 하지 않는다면 처리하지 않는다. + if (VAR.BOOL[eVarBool.Opt_DisablePrinter] == false) + { + if (mainjob) item.VisionData.bcdMessage.Add("첫번째 릴 확인 필요"); + //if (mainjob) PUB.log.Add($"처음 작업이므로 사용자 확인창을 표시 합니다{Source}"); + NeedConfirm = true; + } + } + } + + //변환작업인데 원본 값이 없다. + //혹은 변환값과 원본이 같다 + if (OPT_BYPASS == false && VAR.BOOL[eVarBool.Opt_SIDConvert] && (item.VisionData.SID0.isEmpty() == true || item.VisionData.SID0 == item.VisionData.SID)) + { + if (NeedConfirm == false) + { + if (mainjob) item.VisionData.bcdMessage.Add("SID변환값 확인 필요"); + NeedConfirm = true; + } + } + + //프린트위치확인 + if (item.VisionData.PrintPositionData.isEmpty() == true || item.VisionData.PrintPositionCheck == false) + { + if (OPT_BYPASS) + { + //바이패스해야하는 경우라면 프린트위치를 임의로 한다 + if (item.VisionData.PrintPositionData.isEmpty()) + { + item.VisionData.PrintPositionData = "1"; + item.VisionData.PrintPositionCheck = true; + PUB.log.AddI($"바이패스SID({item.VisionData.SID})로 인해 인쇄위치 임의지정"); + } + } + else + { + //기록된 현재작업의 인쇄위치 정보에서 찾는다 231005 + if (PUB.Result.PrintPostionList.ContainsKey(item.VisionData.SID)) + { + var preprnpos = PUB.Result.PrintPostionList[item.VisionData.SID]; + item.VisionData.PrintPositionData = preprnpos; + item.VisionData.PrintPositionCheck = true; + PUB.log.AddI($"현 작업정보에서 프린트위치 찾음 SID:{item.VisionData.SID},값={preprnpos}"); + } + else + { + if (NeedConfirm == false) + { + //현작업내에서의 정보를 찾아서 적용한다 231005 + //if (mainjob) PUB.log.AddAT("프린트 위치 결정이 완료되지 않아. 사용자 선택화면을 팝업합니다"); + if (mainjob) item.VisionData.bcdMessage.Add("부착위치 없음"); + NeedConfirm = true; + } + } + + } + } + + //바이패스모드에서 벤더네임이지정(101시드에 벤더네임이 없다) + if (OPT_BYPASS) + { + if (item.VisionData.VNAME_Trust == false) + { + item.VisionData.VNAME = "BYPASS"; + item.VisionData.VNAME_Trust = true; + } + } + + //데이터의 신뢰성을 확인하고 모두 입력되었다면 자동 확정을 진행한다 + if (item.VisionData.MFGDATE_Trust && + item.VisionData.PARTNO_Trust && + item.VisionData.QTY_Trust && + item.VisionData.RID_Trust && + SIDOK && item.VisionData.VLOT_Trust && + item.VisionData.VNAME_Trust) + { + //데이터를 확정짓는다 다만 화면을 표시하지 않아야하는 경우에만 처리해준다 + if (NeedConfirm == false) + { + if (OPT_BYPASS) + { + PUB.log.Add("데이터가 모두 확인되어 자동 확정을 진행 합니다(bypassmode)"); + if (item.VisionData.bcdMessage.Count > 0) item.VisionData.bcdMessage.Clear(); + item.VisionData.ConfirmBypass = true; + } + else if (item.VisionData.ConfirmAuto == false) + { + PUB.log.Add("데이터가 모두 확인되어 자동 확정을 진행 합니다"); + if (item.VisionData.bcdMessage.Count > 0) item.VisionData.bcdMessage.Clear(); + item.VisionData.ConfirmAuto = true; + } + } + } + else if (item.VisionData.QRInputRaw.isEmpty() == false) + { + if (NeedConfirm == false) + { + if (mainjob) + { + NeedConfirm = true; + PUB.log.AddAT($"데이터가 완료되지 않았으나 QR을 읽은 상태이므로 바로 확인창을 띄운다"); + } + } + } + + //확인창을 띄우기 위해 Timeout 오류를 발생시킨다. + VAR.BOOL[eVarBool.Need_UserConfirm_Data] = NeedConfirm; + if (NeedConfirm) + { + if (mainjob) + { + var newtime = DateTime.Now.AddMilliseconds(-AR.SETTING.Data.Timeout_VisionProcessL); + VAR.TIME.Set(eVarTime.KEYENCEWAIT, newtime); + } + } + else + { + ////ecs on 컨베이어때만 사용한다 + //bool warndata = false; + //if (SETTING.Data.ECSSkip == false && CVMode) + //{ + // //모두 찾은상태에서는 활성화여부를 추가 확인한다. + // var sid = item.VisionData.SID; + // var bat = item.VisionData.BATCH; + + // //현 시점의 활성화 목록을 가져온다 + // var activelist = PUB.GetECSActiveSIDList(); + + // //해당sid+bat 가 활성화된것인지 확인한다. + // bool active = false; + // string active_sid = ""; + // string active_bat = ""; + // var sidorder = 0; + // var sidx = 0; + // foreach (var actItem in activelist) + // { + // if (actItem.Item4) + // { + // if(active_sid.isEmpty()) + // { + // active_sid = actItem.Item1; + // active_bat = actItem.Item2; + // } + + // } + + // if (actItem.Item1.Equals(sid) && actItem.Item2.Equals(bat)) + // { + // active = actItem.Item4; + // sidorder = sidx; //순서를 저장한다. 0부터 시작하는값이다. + // } + // if (actItem.Item3 == SETTING.Data.McName) + // sidx += 1; + // } + + // //활성화된 sid가 아니다 + // if (active == false) + // { + // if (sidorder > 1) //2번째는 무조건 에러 + // { + // PUB.log.AddE($"active sid 아니고 {sidorder + 1}번 항목이므로 오류 처리한다."); + // warndata = true; + // } + // else + // { + // //활성sid의 작업데이터가있으면 ok + // var qa = new DataSet1TableAdapters.QueriesTableAdapter(); + // var existreadat = qa.GetIBResultCountBySIDBatch(DateTime.Now.AddHours(-6), active_sid, active_sid) > 0; + + // //활성sid의 작업데이터가있으면 ok + // if (existreadat) + // { + // PUB.log.AddAT($"active sid 는 아니지만 활성sid({active_sid}{active_sid}) 의 기록이 있어 진행 합니다"); + // warndata = false; + // } + // else + // { + // PUB.log.AddE($"active sid 아니고 활성sid({active_sid}{active_sid}) 의 기록이 없어 진행 불가"); + // warndata = true; + // } + // //없으면 ng + // } + // } + + // //오류발생조건이나, 이미 발생했다면 처리하지 않는다. + // if (warndata) + // { + // if (warninactivelist.Contains(sid + bat) == false) + // { + // warninactivelist.Add(sid + bat); + // } + // else + // { + // PUB.log.AddAT($"이미 경고한 sid+bqt이므로 넘어갑니다({sid}{bat})"); + // warndata = false; + // } + // } + //} + + //if (warndata) + //{ + // PUB.Result.SetResultMessage(eResult.OPERATION, eECode.NOECSDATAACTIVE, eNextStep.PAUSE, item.VisionData.SID, item.VisionData.BATCH); + // return; + //} + //else + //{ + if (PUB.Result.ItemDataC.VisionData.ConfirmAuto == false) + { + PUB.logDbg.Add($"비젼 자동 확정 처리 {Source}"); + PUB.Result.ItemDataC.VisionData.ConfirmAuto = true; + } + //} + } + + } + + List warninactivelist = new List(); + private void SetDryrunData() + { + var item = PUB.Result.ItemDataC; + PUB.log.AddAT("드라이런 기본 데이터 입력"); + if (item.VisionData.QTY.isEmpty()) item.VisionData.QTY = DateTime.Now.ToString("HHmm"); + if (item.VisionData.MFGDATE.isEmpty()) item.VisionData.MFGDATE = DateTime.Now.ToString("yy-MM-dd"); + if (item.VisionData.SID.isEmpty()) item.VisionData.SID = "108" + "0" + DateTime.Now.ToString("HH").PadLeft(2, '0') + DateTime.Now.ToString("fff").PadLeft(3, '0'); + if (item.VisionData.VLOT.isEmpty()) item.VisionData.VLOT = "SUPNAME" + DateTime.Now.ToString("fff"); + if (item.VisionData.PARTNO.isEmpty()) item.VisionData.PARTNO = "PARTNO" + DateTime.Now.ToString("yyyyMMddHHmmss.fff"); + if (item.VisionData.RID.isEmpty()) + { + var rid = Amkor.RestfulService.Allocation_Unique_ReelID_AmkorSTD("1234", "4", "A", out string err); + if (rid.isEmpty()) item.VisionData.SetRID("RID" + DateTime.Now.ToString("yyyyMMddHHmmss.fff"), "DRY"); + else item.VisionData.SetRID(rid, "DRY"); + } + if (item.VisionData.PrintPositionData.isEmpty()) item.VisionData.PrintPositionData = "2"; + item.VisionData.PrintPositionCheck = true; + item.VisionData.ConfirmAuto = true; + } + } +} \ No newline at end of file diff --git a/Handler/Project/RunCode/RunSequence/4_PICKER_ON.cs b/Handler/Project/RunCode/RunSequence/4_PICKER_ON.cs new file mode 100644 index 0000000..86f98cb --- /dev/null +++ b/Handler/Project/RunCode/RunSequence/4_PICKER_ON.cs @@ -0,0 +1,278 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using AR; + +namespace Project +{ + public partial class FMain + { + public Boolean PICKER_ON(eWorkPort target, eSMStep cmdIndex) + { + UInt16 idx = 1; + var mv = PUB.Result.vModel; + var mc = PUB.Result.mModel; + var funcName = System.Reflection.MethodBase.GetCurrentMethod().Name; + var seqTime = PUB.sm.seq.GetTime(cmdIndex); + var msgType = (Class.eStatusMesage)target; + var iLockX = PUB.iLock[(int)eAxis.PX_PICK]; + var iLockZ = PUB.iLock[(int)eAxis.PZ_PICK]; + + var CVMode = VAR.BOOL[eVarBool.Use_Conveyor]; + + //option check + var OPT_PrinterOff = PUB.OPT_PRINTEROFF(target); + var OPT_CameraOff = PUB.OPT_CAMERA(target); + var OPT_BYPASS = PUB.OPT_BYPASS(); + + //#################################################### + //### 인터락 확인 + //#################################################### + Boolean MotMoveX = PUB.mot.IsMotion((int)eAxis.PX_PICK); + Boolean MotMoveZ = PUB.mot.IsMotion((int)eAxis.PZ_PICK); + if (iLockX.IsEmpty() == false && MotMoveX) + { + var locklistX = MOT.GetActiveLockList(eAxis.PX_PICK, iLockX); + PUB.mot.MoveStop("ILock(" + string.Join(",", locklistX) + ")", (int)eAxis.PX_PICK); + } + + if (iLockZ.IsEmpty() == false && MotMoveZ) + { + var locklistZ = MOT.GetActiveLockList(eAxis.PZ_PICK, iLockZ); + PUB.mot.MoveStop("ILock(" + string.Join(",", locklistZ) + ")", (int)eAxis.PZ_PICK); + } + + //#################################################### + //### 작업시작 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + PUB.log.Add($"[{target}] 피커 ON 작업시작"); + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### ON 위치로 이동 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (iLockX.IsEmpty() == false) return false; + if (iLockZ.IsEmpty() == false) return false; + var Pos = MOT.GetPXPos(ePXLoc.PICKON); + var PosZ = MOT.GetPZPos(ePZLoc.READY); + if (MOT.CheckMotionPos(seqTime, PosZ, funcName) == false) return false; + if (MOT.CheckMotionPos(seqTime, Pos, funcName) == false) return false; + PUB.log.Add($"[{target}] 피커 ON X,Y 준비위치 확인"); + DIO.SetPickerVac(true); + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### Z축을 내린다. + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + var PortRDY = PUB.flag.get(eVarBool.FG_RDY_PORT_PC); + if (PortRDY == false) return false; + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### Z축을 내린다. + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + // if (iLockX.IsEmpty() == false) return false; + if (iLockZ.IsEmpty() == false) return false; + var Pos = MOT.GetPZPos(ePZLoc.PICKON); + var PosMatch = MOT.getPositionMatch(Pos); + //var PortRDY = PUB.flag.get(eVarBool.RDY_PORT_PC); + //if (PosMatch==false ) return false; + + if (MOT.CheckMotionPos(seqTime, Pos, funcName) == false) return false; + VAR.I32[eVarInt32.PickOnCount] += 1; + PUB.flag.set(eVarBool.FG_PK_ITEMON, true, funcName); + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### Z축을 올린다. + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + //if (iLockX.IsEmpty() == false) return false; + if (iLockZ.IsEmpty() == false) return false; + var Pos = MOT.GetPZPos(ePZLoc.READY); + if (MOT.CheckMotionPos(seqTime, Pos, funcName) == false) return false; + PUB.flag.set(eVarBool.FG_PK_ITEMON, true, funcName); + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 프린트부착위치가 상/하가 아니라면 추가적인 회전이 필요하다 - 210207 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + var vData = target == eWorkPort.Left ? PUB.Result.ItemDataL.VisionData : PUB.Result.ItemDataR.VisionData; + if (vData.PrintPositionData == "4") // 왼쪽찍기 + { + if (vData.ReelSize == eCartSize.Inch7) + { + vData.NeedCylinderForward = false; + double targerPos = 0.0; + if (target == eWorkPort.Left) //left printer + { + vData.PositionAngle = -90; //90도 회전한다 + } + else + { + vData.PositionAngle = -90; + } + } + else + { + //13inch + vData.NeedCylinderForward = true; + if (target == eWorkPort.Left) //left printer + { + vData.PositionAngle = -180; + } + else + { + vData.PositionAngle = 0; + } + } + } + else if (vData.PrintPositionData == "6") //오른쪽찍기 + { + if (vData.ReelSize == eCartSize.Inch7) + { + vData.NeedCylinderForward = false; + if (target == eWorkPort.Left) //left printer + { + vData.PositionAngle = 90; //90도 회전한다 + } + else + { + vData.PositionAngle = 90; //90도 회전한다 + } + } + else + { + //13inch + vData.NeedCylinderForward = true; + double targerPos = 0.0; + if (target == eWorkPort.Left) //left printer + { + vData.PositionAngle = 0; + } + else + { + vData.PositionAngle = 180; + } + } + } + else + { + vData.NeedCylinderForward = false; //상하에 붙이는건 실린더를 원위치해야함 + vData.PositionAngle = 0; + } + PUB.sm.seq.Update(cmdIndex); + return false; + } + + + //#################################################### + //### 바코드에의한 자동 회전 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + //속도값만 취한다 + var thpos = MOT.GetPTPos(ePTLoc.READY); + + // Baseangle 값으로 변경 210126 - qr의 각도가잇다면 그것이 기준이됨 + double baseAngle = 0; + string baseSource = "F"; + var vdata = target == eWorkPort.Left ? PUB.Result.ItemDataL.VisionData : PUB.Result.ItemDataR.VisionData; + if (vdata.BaseAngle(out string msg, out Class.KeyenceBarcodeData bcd)) + { + baseAngle = bcd.Angle; + baseSource = bcd.barcodeSource; //230504 각도 + PUB.log.AddI($"[{target}] 각도산출내용:{msg},바코드:{bcd.Data},ID:{vdata.RID}"); //210602 + } + else if (PUB.Result.DryRun) + { + PUB.log.AddAT($"[{target}] 드라이런으로 인해 각도를 적용하지 않음"); + } + else + { + PUB.log.AddE($"[{target}] base ange error : {msg},ID:{vdata.RID}"); + } + + var addangle = baseSource == "R" ? SETTING.Data.RearBarcodeRotate : SETTING.Data.FrontBarcodeRotate; + var rotAngle = baseAngle + addangle + vdata.PositionAngle; + PUB.log.AddI($"[{target}]-소스:{baseSource} 회전값(Base:{baseAngle}+추가:{addangle}+비젼:{vdata.PositionAngle}={rotAngle})"); + + int dir = -1; + while (true) + { + if (rotAngle > 360.0) + rotAngle = rotAngle - 360.0; //한반퀴 더 도는것은 역 처리한다 + else break; + } + //rotAngle += 90; //비젼이 90도 돌아가잇으니 다시 적용필요함 //상단이위로가도록 함 + if (rotAngle > 180) + { + rotAngle = 360 - rotAngle; + dir = 1; + } + + PUB.log.AddI($"[{target}] 회전(최종) [{rotAngle}도,방향:{dir}],RID:{vdata.RID}"); + + if (target == eWorkPort.Left) + PUB.Result.ItemDataL.VisionData.ApplyAngle = rotAngle; //회전각도를 넣는다 + else + PUB.Result.ItemDataR.VisionData.ApplyAngle = rotAngle; //회전각도를 넣는다 + + var curtheta = PUB.mot.GetActPos((int)eAxis.Z_THETA); + var newPos = curtheta + (dir * rotAngle); + PUB.log.Add($"회전전 모터 위치 : {curtheta}, 대상위치:{newPos},속도:{thpos.Speed},가속:{thpos.Acc}"); + + if (target == eWorkPort.Left) + VAR.DBL[(int)eVarDBL.ThetaPositionL] = newPos; + else + VAR.DBL[(int)eVarDBL.ThetaPositionR] = newPos; + + //if (ByPassMode == false) + //{ + //바이패스에서도 추가 회전을 한다 + MOT.Move(eAxis.Z_THETA, newPos, thpos.Speed, thpos.Acc, false); + //} + //else PUB.log.AddAT($"bypass 로 인해 회전을 하지 않습니다"); + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + return true; + } + + } +} \ No newline at end of file diff --git a/Handler/Project/RunCode/RunSequence/4_PICKER_RETRY.cs b/Handler/Project/RunCode/RunSequence/4_PICKER_RETRY.cs new file mode 100644 index 0000000..dfd2ff5 --- /dev/null +++ b/Handler/Project/RunCode/RunSequence/4_PICKER_RETRY.cs @@ -0,0 +1,244 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using AR; + +namespace Project +{ + public partial class FMain + { + /// + /// 키엔스가 실패했을때 재시도 하는 작업이다 + /// 중앙에서 잡고 79도 틀고, 내려 놓고 피한다 + /// + /// + /// + /// + public Boolean PICKER_RETRY(eWorkPort target, eSMStep cmdIndex) + { + UInt16 idx = 1; + var mv = PUB.Result.vModel; + var mc = PUB.Result.mModel; + var funcName = System.Reflection.MethodBase.GetCurrentMethod().Name; + var seqTime = PUB.sm.seq.GetTime(cmdIndex); + var msgType = (Class.eStatusMesage)target; + var iLockX = PUB.iLock[(int)eAxis.PX_PICK]; + var iLockZ = PUB.iLock[(int)eAxis.PZ_PICK]; + var PickerRetryCount = AR.VAR.I32[(int)eVarInt32.PickOnRetry]; + //#################################################### + //### 인터락 확인 + //#################################################### + Boolean MotMoveX = PUB.mot.IsMotion((int)eAxis.PX_PICK); + Boolean MotMoveZ = PUB.mot.IsMotion((int)eAxis.PZ_PICK); + if (iLockX.IsEmpty() == false && MotMoveX) + { + var locklistX = MOT.GetActiveLockList(eAxis.PX_PICK, iLockX); + PUB.mot.MoveStop("ILock(" + string.Join(",", locklistX) + ")", (int)eAxis.PX_PICK); + } + + if (iLockZ.IsEmpty() == false && MotMoveZ) + { + var locklistZ = MOT.GetActiveLockList(eAxis.PZ_PICK, iLockZ); + PUB.mot.MoveStop("ILock(" + string.Join(",", locklistZ) + ")", (int)eAxis.PZ_PICK); + } + + //#################################################### + //### 작업시작 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + PUB.log.Add($"[{target}] 피커 RETRY 작업시작({PickerRetryCount}/{AR.SETTING.Data.RetryPickOnMaxCount})"); + + //기존자료를 모두 삭제 한다 221102 + if (PUB.Result.ItemDataC != null && PUB.Result.ItemDataC.VisionData != null && PUB.Result.ItemDataC.VisionData.barcodelist != null) + { + lock (PUB.Result.ItemDataC.VisionData.barcodelist) + { + PUB.Result.ItemDataC.VisionData.Clear(funcName, true); + } + } + + AR.VAR.BOOL[eVarBool.JOB_PickON_Retry] = true; + PUB.mot.ClearPosition((int)eAxis.Z_THETA); + PUB.sm.seq.Update(cmdIndex); + DIO.SetPickerVac(false); + return false; + } + + //#################################################### + //### Z를 먼저 Ready 로 이동 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (iLockZ.IsEmpty() == false) return false; + var Pos = MOT.GetPZPos(ePZLoc.READY); + if (MOT.CheckMotionPos(seqTime, Pos, funcName) == false) return false; + DIO.SetPickerVac(true); + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### X를 픽온위치로 이동 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (iLockX.IsEmpty() == false) return false; + var Pos = MOT.GetPXPos(ePXLoc.PICKON); + if (MOT.CheckMotionPos(seqTime, Pos, funcName) == false) return false; + DIO.SetPickerVac(true); + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### Z축 내리기 조건확인 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + var PortRDY = PUB.flag.get(eVarBool.FG_RDY_PORT_PC); + if (PortRDY == false) return false; + DIO.SetPickerVac(true); + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### Z축을 내린다. + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (iLockZ.IsEmpty() == false) return false; + var Pos = MOT.GetPZPos(ePZLoc.PICKON); + if (MOT.CheckMotionPos(seqTime, Pos, funcName) == false) return false; + VAR.I32[eVarInt32.PickOnCount] += 1; + //PUB.flag.set(eVarBool.PK_ITEMON, true, funcName); + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 100ms 대기 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (seqTime.TotalMilliseconds < 100) return false; + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### Z축을 올린다. + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (iLockZ.IsEmpty() == false) return false; + var Pos = MOT.GetPZPos(ePZLoc.READY); + if (MOT.CheckMotionPos(seqTime, Pos, funcName) == false) return false; + //PUB.flag.set(eVarBool.PK_ITEMON, true, funcName); + PUB.sm.seq.Update(cmdIndex); + return false; + } + + + //#################################################### + //### 현재위치에서 79도 회전 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + //속도값만 취한다 + var Pos = MOT.GetPTPos(ePTLoc.READY); + Pos.Position = PUB.mot.GetActPos((int)eAxis.Z_THETA) + AR.SETTING.Data.RetryPickOnAngle; + VAR.DBL[(int)eVarDBL.ThetaPosition] = Pos.Position; + MOT.Move(Pos); + //if (MOT.CheckMotionPos(seqTime, Pos, funcName) == false) return false; + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 현재위치에서 79도 회전 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + //속도값만 취한다 + var Pos = MOT.GetPTPos(ePTLoc.READY); + Pos.Position = VAR.DBL[(int)eVarDBL.ThetaPosition]; + if (MOT.CheckMotionPos(seqTime, Pos, funcName) == false) return false; + PUB.sm.seq.Update(cmdIndex); + return false; + } + + + //#################################################### + //### Z를 pick on 위치로 1/3 지점으로 이동한다 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (iLockZ.IsEmpty() == false) return false; + var PosS = MOT.GetPZPos(ePZLoc.READY); + var PosT = MOT.GetPZPos(ePZLoc.PICKON); + var offset = (int)(Math.Abs(PosT.Position - PosS.Position) * 0.7f); + PosS.Position += offset; //시작위치에서 절반만 이동한다 + if (MOT.CheckMotionPos(seqTime, PosS, funcName) == false) return false; + DIO.SetPickerVac(false); //릴을 내려 놓는다 + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### Z축을 올린다. + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (iLockZ.IsEmpty() == false) return false; + var Pos = MOT.GetPZPos(ePZLoc.READY); + if (MOT.CheckMotionPos(seqTime, Pos, funcName) == false) return false; + DIO.SetPickerVac(false); //백큠을 꺼서 원복한다 + hmi1.arVar_Port[1].AlignReset(); //231013 + PUB.sm.seq.Update(cmdIndex); + return false; + } + + + //#################################################### + //### 키엔스를 읽어야 하므로 피해준다 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (iLockX.IsEmpty() == false) return false; + + sPositionData Pos; + if (target == eWorkPort.Left) Pos = MOT.GetPXPos(ePXLoc.READYL); + else Pos = MOT.GetPXPos(ePXLoc.READYR); + + //theta모터 위치 초기화 + PUB.mot.ClearPosition((int)eAxis.Z_THETA); + + if (MOT.CheckMotionPos(seqTime, Pos, funcName) == false) return false; + PUB.log.AddAT($"###### 재시도 작업 회피 이동 완료({target})"); + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 비젼데이터를 초기화 해준다. + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + PUB.log.Add($"retry 완료로 비젼데이터를 삭제 합니다"); + PUB.Result.ItemDataC.VisionData.Clear(funcName, true); + AR.VAR.BOOL[eVarBool.JOB_PickON_Retry] = false; + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //일련번호 초기화 해준다 + PUB.sm.seq.Clear(cmdIndex); + return true; + } + + } +} \ No newline at end of file diff --git a/Handler/Project/RunCode/RunSequence/5_PICKER_OFF.cs b/Handler/Project/RunCode/RunSequence/5_PICKER_OFF.cs new file mode 100644 index 0000000..4101d88 --- /dev/null +++ b/Handler/Project/RunCode/RunSequence/5_PICKER_OFF.cs @@ -0,0 +1,458 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using AR; +namespace Project +{ + public partial class FMain + { + public Boolean PICKER_OFF(eWorkPort target, eSMStep cmdIndex) + { + UInt16 idx = 1; + var mv = PUB.Result.vModel; + var mc = PUB.Result.mModel; + var funcName = System.Reflection.MethodBase.GetCurrentMethod().Name; + var seqTime = PUB.sm.seq.GetTime(cmdIndex); + var msgType = (Class.eStatusMesage)target; + var item = target == eWorkPort.Left ? PUB.Result.ItemDataL : PUB.Result.ItemDataR; + // var Jobtype = VAR.STR[eVarString.JOB_TYPE]; + //var ByPassMode = Jobtype == "BP"; + var CVMode = VAR.BOOL[eVarBool.Use_Conveyor]; + + //option check + var OPT_PrinterOff = PUB.OPT_PRINTEROFF(target); + var OPT_CameraOff = PUB.OPT_CAMERA(target); + var OPT_BYPASS = PUB.OPT_BYPASS(); + + var iLockX = PUB.iLock[(int)eAxis.PX_PICK]; + var iLockZ = PUB.iLock[(int)eAxis.PZ_PICK]; + + //#################################################### + //### 인터락 확인 + //#################################################### + Boolean MotMoveX = PUB.mot.IsMotion((int)eAxis.PX_PICK); + Boolean MotMoveZ = PUB.mot.IsMotion((int)eAxis.PZ_PICK); + if (iLockX.IsEmpty() == false && MotMoveX) + { + var locklistX = MOT.GetActiveLockList(eAxis.PX_PICK, iLockX); + PUB.mot.MoveStop("ILock(" + string.Join(",", locklistX) + ")", (int)eAxis.PX_PICK); + } + + if (iLockZ.IsEmpty() == false && MotMoveZ) + { + var locklistZ = MOT.GetActiveLockList(eAxis.PZ_PICK, iLockZ); + PUB.mot.MoveStop("ILock(" + string.Join(",", locklistZ) + ")", (int)eAxis.PZ_PICK); + } + + + + + + + + //#################################################### + //### 작업시작 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + //컨베이어모드에서는 센서가 감지되면 내려놓지 않게 한다 + if (CVMode) + { + if (target == eWorkPort.Left) + { + if (DIO.GetIOInput(eDIName.L_CONV1)) return false; + if (VAR.I32[eVarInt32.LEFT_ITEM_COUNT] > 0) return false; + } + else if (target == eWorkPort.Right) + { + if (DIO.GetIOInput(eDIName.R_CONV1)) return false; + if (VAR.I32[eVarInt32.RIGT_ITEM_COUNT] > 0) return false; + } + PUB.log.Add($"CVMODE에서 컨베이어 비어있음"); + } + + PUB.log.Add($"[{target}] 피커 OFF 작업시작"); + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### Y축안전확인 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + //PUB.log.Add($"[{target}] 프린터 Y축 위치 확인"); + var Pos = target == eWorkPort.Left ? MOT.GetLMPos(eLMLoc.READY) : MOT.GetRMPos(eRMLoc.READY); + if (MOT.getPositionMatch(Pos) == false) + { + PUB.Result.SetResultMessage(eResult.OPERATION, eECode.POSITION_ERROR, eNextStep.PAUSE, "프린터 Y축이 준비위치에 있지 않습니다"); + return false; + } + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### OFF 위치로 이동 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (iLockX.IsEmpty() == false) return false; + sPositionData PosX; + if (PUB.flag.get(eVarBool.FG_RUN_LEFT)) + { + PosX = MOT.GetPXPos(ePXLoc.PICKOFFL); + } + else + { + PosX = MOT.GetPXPos(ePXLoc.PICKOFFR); + } + if (MOT.CheckMotionPos(seqTime, PosX, funcName) == false) return false; + + //컨베이어모드라면 컨베이어를 멈추게한다 + if (CVMode) + { + if (target == eWorkPort.Left) + PUB.iLockCVL.set((int)eILockCV.BUSY, true, funcName); + else + PUB.iLockCVR.set((int)eILockCV.BUSY, true, funcName); + } + else + { + if (target == eWorkPort.Left) + PUB.iLockCVL.set((int)eILockCV.BUSY, false, funcName); + else + PUB.iLockCVR.set((int)eILockCV.BUSY, false, funcName); + } + + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + ////#################################################### + ////### 프린트부착위치가 상/하가 아니라면 추가적인 회전이 필요하다 - 210207 + ////#################################################### + //if (PUB.sm.seq.Get(cmdIndex) == idx++) + //{ + // var vData = item.VisionData; + // if (vData.PrintPositionData == "4") // 왼쪽찍기 + // { + // if (vData.ReelSize == eCartSize.Inch7) + // { + // vData.NeedCylinderForward = false; + // double targerPos = 0.0; + // if (target == eWorkShuttle.Left) //left printer + // { + // targerPos = vData.ApplyAngle + 90; //90도 회전한다 + // } + // else + // { + // targerPos = vData.ApplyAngle + 90; + // } + + // //if (vData.ApplyAngle > 180.0) targerPos = vData.ApplyAngle - 180.0; + // //else targerPos = vData.ApplyAngle + 180.0; + + // //추가보정 + // if (targerPos > 360.0) targerPos = targerPos - 360.0; + // if (targerPos < -360.0) targerPos = targerPos + 360.0; + + // //지정값대로 추가 회전을 한다 + // var basePosInfo = MOT.GetPTPos(ePTLoc.READY); + // basePosInfo.Position = targerPos; + // if (MOT.CheckMotionPos(seqTime, basePosInfo, funcName) == false) return false; + // } + // else + // { + // //13inch + // vData.NeedCylinderForward = true; + // double targerPos = 0.0; + // if (target == eWorkShuttle.Left) //left printer + // { + // targerPos = vData.ApplyAngle + 180; //90도 회전한다 + // } + // else + // { + // targerPos = vData.ApplyAngle + 0; + // } + + // //if (vData.ApplyAngle > 180.0) targerPos = vData.ApplyAngle - 180.0; + // //else targerPos = vData.ApplyAngle + 180.0; + + // //추가보정 + // if (targerPos > 360.0) targerPos = targerPos - 360.0; + // if (targerPos < -360.0) targerPos = targerPos + 360.0; + + // //지정값대로 추가 회전을 한다 + // var basePosInfo = MOT.GetPTPos(ePTLoc.READY); + // basePosInfo.Position = targerPos; + // if (MOT.CheckMotionPos(seqTime, basePosInfo, funcName) == false) return false; + // } + + // } + // else if (vData.PrintPositionData == "6") //오른쪽찍기 + // { + // if (vData.ReelSize == eCartSize.Inch7) + // { + // vData.NeedCylinderForward = false; + // double targerPos = 0.0; + // if (target == eWorkShuttle.Left) //left printer + // { + // targerPos = vData.ApplyAngle - 90; //90도 회전한다 + // } + // else + // { + // targerPos = vData.ApplyAngle - 90; + // } + + // //if (vData.ApplyAngle > 180.0) targerPos = vData.ApplyAngle - 180.0; + // //else targerPos = vData.ApplyAngle + 180.0; + + // //추가보정 + // if (targerPos > 360.0) targerPos = targerPos - 360.0; + // if (targerPos < -360.0) targerPos = targerPos + 360.0; + + // //지정값대로 추가 회전을 한다 + // var basePosInfo = MOT.GetPTPos(ePTLoc.READY); + // basePosInfo.Position = targerPos; + // if (MOT.CheckMotionPos(seqTime, basePosInfo, funcName) == false) return false; + // } + // else + // { + // //13inch + // vData.NeedCylinderForward = true; + // double targerPos = 0.0; + // if (target == eWorkShuttle.Left) //left printer + // { + // targerPos = vData.ApplyAngle + 0; //90도 회전한다 + // } + // else + // { + // targerPos = vData.ApplyAngle + 180; + // } + + // //if (vData.ApplyAngle > 180.0) targerPos = vData.ApplyAngle - 180.0; + // //else targerPos = vData.ApplyAngle + 180.0; + + // //추가보정 + // if (targerPos > 360.0) targerPos = targerPos - 360.0; + // if (targerPos < -360.0) targerPos = targerPos + 360.0; + + // //지정값대로 추가 회전을 한다 + // var basePosInfo = MOT.GetPTPos(ePTLoc.READY); + // basePosInfo.Position = targerPos; + // if (MOT.CheckMotionPos(seqTime, basePosInfo, funcName) == false) return false; + // } + // } + // else vData.NeedCylinderForward = false; //상하에 붙이는건 실린더를 원위치해야함 + // PUB.sm.seq.Update(cmdIndex); + // return false; + //} + + //#################################################### + //### 사용자회전적용 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (item.VisionData.ApplyOffset == false) + { + //적용옵셋 + var OffsetAngle = target == eWorkPort.Left ? AR.SETTING.Data.AngleOffsetL : AR.SETTING.Data.AngleOffsetR; + if (OffsetAngle != 0f) + { + if (OPT_BYPASS == true || OPT_PrinterOff) + { + PUB.log.AddAT($"bypass 로 인해 추가 회전을 하지 않습니다"); + } + else + { + //모터회전 + //var thpos = MOT.GetPTPos(ePTLoc.READY); //적용할 속도값용 + //MOT.Move(eAxis.Z_THETA, OffsetAngle, thpos.Speed, thpos.Acc, true); + MOT.Rotation(OffsetAngle, funcName); + + double theta = 0; + if (target == eWorkPort.Left) theta = VAR.DBL[(int)eVarDBL.ThetaPositionL]; + else theta = VAR.DBL[(int)eVarDBL.ThetaPositionR]; + + //값을 누적시켜준다 + item.VisionData.ApplyAngle += OffsetAngle; + + if (target == eWorkPort.Left) VAR.DBL[(int)eVarDBL.ThetaPositionL] = theta + OffsetAngle; + else VAR.DBL[(int)eVarDBL.ThetaPositionR] = theta + OffsetAngle; + + if (AR.SETTING.Data.Log_Debug) + PUB.logDbg.Add($"[{target}] 모션 추가회전 :{OffsetAngle}"); + } + + } + item.VisionData.ApplyOffset = true; + } + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 회전축 완료 확인 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (OPT_BYPASS == false && OPT_PrinterOff == false) + { + var Theta = target == eWorkPort.Left ? VAR.DBL[(int)eVarDBL.ThetaPositionL] : VAR.DBL[(int)eVarDBL.ThetaPositionR]; + var Pos = MOT.GetPTPos(ePTLoc.READY); + Pos.Position = Theta; + if (MOT.CheckMotionPos(seqTime, Pos, funcName, false) == false) return false; + PUB.log.Add($"[{target}] 회전축 확인 완료 위치:{Theta},모터값:{PUB.mot.GetActPos((int)eAxis.Z_THETA)} => 위치초기화함"); + PUB.mot.ClearPosition((int)eAxis.Z_THETA); + } + + + + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 포트상태확인 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + // if (iLockX.IsEmpty() == false) return false; + if (iLockZ.IsEmpty() == false) return false; + var PortRDY = target == eWorkPort.Left ? PUB.flag.get(eVarBool.FG_RDY_PORT_PL) : PUB.flag.get(eVarBool.FG_RDY_PORT_PR); + if (PortRDY == false) return false; + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### Z축을 내린다. + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + // if (iLockX.IsEmpty() == false) return false; + if (iLockZ.IsEmpty() == false) return false; + + //컨베어모드라면 센서에 감지되는 것이 없어야 한다 + if (OPT_BYPASS == false && VAR.BOOL[eVarBool.Use_Conveyor]) + { + if (target == eWorkPort.Left) + { + //컨베이어가 움직이고 있다면 단순 대기한다 + if (DIO.GetIOOutput(eDOName.LEFT_CONV) == false) + { + //놓일위치에서 센서가 감지되었다 + if (DIO.GetIOInput(eDIName.L_CONV1)) + { + var ssname = $"X{eDIName.L_CONV1}"; + PUB.Result.SetResultMessage(eResult.OPERATION, eECode.LCONVER_REEL_DECTECT_IN, eNextStep.PAUSE, ssname); + return false; + } + } + else + { + if (seqTime.TotalSeconds > 10) + { + var ssname = $"Y{eDOName.LEFT_CONV}"; + PUB.Result.SetResultMessage(eResult.OPERATION, eECode.LCONVER_MOVING, eNextStep.PAUSE, ssname); + } + return false; + } + + } + else + { + //컨베이어가 움직이고 있다면 단순 대기한다 + if (DIO.GetIOOutput(eDOName.RIGHT_CONV) == false) + { + //놓일위치에서 센서가 감지되었다 + if (DIO.GetIOInput(eDIName.R_CONV1)) + { + var ssname = $"X{eDIName.R_CONV1}"; + PUB.Result.SetResultMessage(eResult.OPERATION, eECode.RCONVER_REEL_DECTECT_IN, eNextStep.PAUSE, ssname); + return false; + } + } + else + { + if (seqTime.TotalSeconds > 10) + { + var ssname = $"Y{eDOName.RIGHT_CONV}"; + PUB.Result.SetResultMessage(eResult.OPERATION, eECode.RCONVER_MOVING, eNextStep.PAUSE, ssname); + } + return false; + } + + } + } + + + var fg = target == eWorkPort.Left ? eVarBool.FG_RUN_LEFT : eVarBool.FG_RUN_RIGHT; + var Loc = target == eWorkPort.Left ? ePZLoc.PICKOFFL : ePZLoc.PICKOFFR; + var Pos = MOT.GetPZPos(Loc); + if (MOT.CheckMotionPos(seqTime, Pos, funcName) == false) return false; + PUB.sm.seq.Update(cmdIndex); + return false; + } + + + //#################################################### + //### 진공파기 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + DIO.SetPickerVac(false); + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### Z축을 올린다. + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + // if (iLockX.IsEmpty() == false) return false; + if (iLockZ.IsEmpty() == false) return false; + var Pos = MOT.GetPZPos(ePZLoc.READY); + if (MOT.CheckMotionPos(seqTime, Pos, funcName) == false) return false; + PUB.flag.set(eVarBool.FG_PK_ITEMON, false, funcName); + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + IncCount(1, 1); + if (target == eWorkPort.Left) + { + if (AR.SETTING.Data.Disable_PortL == false && AR.SETTING.Data.Disable_Left == false) + { + hmi1.arVar_Port[0].AlignReset(); + } + + } + else + { + if (AR.SETTING.Data.Disable_PortR == false && AR.SETTING.Data.Disable_Right == false) + { + hmi1.arVar_Port[2].AlignReset(); + } + } + VAR.I32[eVarInt32.PickOfCount] += 1; + PUB.sm.seq.Update(cmdIndex); + return false; + } + + return true; + } + } +} \ No newline at end of file diff --git a/Handler/Project/RunCode/RunSequence/6.PRINT.cs b/Handler/Project/RunCode/RunSequence/6.PRINT.cs new file mode 100644 index 0000000..e0d2b16 --- /dev/null +++ b/Handler/Project/RunCode/RunSequence/6.PRINT.cs @@ -0,0 +1,247 @@ +using AR; +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; + +namespace Project +{ + public partial class FMain + { + public Boolean PRINTER(eWorkPort target, eSMStep cmdIndex) + { + UInt16 idx = 1; + var mv = PUB.Result.vModel; + var mc = PUB.Result.mModel; + var funcName = System.Reflection.MethodBase.GetCurrentMethod().Name; + var seqTime = PUB.sm.seq.GetTime(cmdIndex); + var msgType = (Class.eStatusMesage)target; + var item = target == eWorkPort.Left ? PUB.Result.ItemDataL : PUB.Result.ItemDataR; + var Printer = target == eWorkPort.Left ? PUB.PrinterL : PUB.PrinterR; + //var Jobtype = VAR.STR[eVarString.JOB_TYPE]; + var CVMode = VAR.BOOL[eVarBool.Use_Conveyor]; + + //option check + var OPT_PrinterOff = PUB.OPT_PRINTEROFF(target); + var OPT_CameraOff = PUB.OPT_CAMERA(target); + var OPT_BYPASS = PUB.OPT_BYPASS(); + + + + //#################################################### + //### 작업시작 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + PUB.log.Add($"[{target}] 프린트 작업 시작"); + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 프린트 모션 위치 확인 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + sPositionData PosY, PosZ; + if (target == eWorkPort.Left) + { + PosY = MOT.GetLMPos(eLMLoc.READY); + PosZ = MOT.GetLZPos(eLZLoc.PICKON); + } + else + { + PosY = MOT.GetRMPos(eRMLoc.READY); + PosZ = MOT.GetRZPos(eRZLoc.PICKON); + } + + if (MOT.CheckMotionPos(seqTime, PosY, funcName) == false) return false; + if (MOT.CheckMotionPos(seqTime, PosZ, funcName) == false) return false; + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + + //#################################################### + //### 인쇄데이터 확인 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (item.VisionData.RID.isEmpty()) + { + if (target == eWorkPort.Left) + { + PUB.Result.SetResultMessage(eResult.OPERATION, eECode.NOPRINTLDATA, eNextStep.PAUSE); + } + else + { + PUB.Result.SetResultMessage(eResult.OPERATION, eECode.NOPRINTRDATA, eNextStep.PAUSE); + } + return false; + } + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 인쇄데이터전송 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (OPT_PrinterOff == false) + { + string zpl, qrdata; + zpl = Printer.makeZPL_210908(new Class.Reel + { + sid = item.VisionData.SID, + lot = item.VisionData.VLOT, + manu = item.VisionData.VNAME, + qty = item.VisionData.QTY.isEmpty() ? -1 : int.Parse(item.VisionData.QTY), + id = item.VisionData.RID, + mfg = item.VisionData.MFGDATE, + partnum = item.VisionData.PARTNO, + }, AR.SETTING.Data.DrawOutbox, out qrdata); + item.VisionData.ZPL = zpl; + item.VisionData.PrintQRData = qrdata; + + PUB.log.Add("PRINT", $"[{target}] 프린트");//QR=" + item.VisionData.QRData); + + if (target == eWorkPort.Left) + { + var prn = Printer.Print(zpl); + //PUB.PrintSend(true, zpl); //PUB.PrintL.Write(zpl); + if (prn == false) + { + PUB.Result.SetResultMessage(eResult.HARDWARE, eECode.PRINTL, eNextStep.ERROR); + return false; + } + else + { + PUB.counter.CountPrintL += 1; + item.PrintTime = DateTime.Now; + } + } + else + { + var prn = Printer.Print(zpl); + //PUB.PrintSend(false, zpl); //PUB.PrintR.Write(zpl); + + + if (prn == false) + { + PUB.Result.SetResultMessage(eResult.HARDWARE, eECode.PRINTR, eNextStep.ERROR); + return false; + } + else + { + PUB.counter.CountPrintR += 1; + item.PrintTime = DateTime.Now; + } + } + } + else PUB.log.AddAT($"[{target}] 프린터 기능 OFF(bypass or model or setting)"); + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 잠시대기 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + var WaitMS = target == eWorkPort.Left ? AR.SETTING.Data.PrintLWaitMS : AR.SETTING.Data.PrintRWaitMS; + if (OPT_PrinterOff == false && seqTime.TotalMilliseconds < WaitMS) return false; + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 위쪽흡기 ON + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (OPT_PrinterOff == false) + { + if (target == eWorkPort.Left) + { + DIO.SetPrintLVac(ePrintVac.inhalation); + } + else + { + DIO.SetPrintRVac(ePrintVac.inhalation); + } + } + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + + //#################################################### + //### 잠시대기 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (OPT_PrinterOff == false && seqTime.TotalMilliseconds < 100) return false; + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 아래쪽 블로우 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (OPT_PrinterOff == false && SETTING.Data.Disable_BottomAirBlow == false) + { + if (target == eWorkPort.Left) + { + DIO.SetPrintLAir(true); + } + else + { + DIO.SetPrintRAir(true); + } + } + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 잠시대기 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (OPT_PrinterOff == false && seqTime.TotalMilliseconds < 100) return false; + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 장비기술데이터저장 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + PUB.log.Add($"6.PRINT : EE-SAVE"); + SaveData_EE(item, (target == eWorkPort.Left ? "L" : "R"), "","printer"); + //RefreshList(); //목록업데이트 + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### spare + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + PUB.sm.seq.Update(cmdIndex); + return false; + } + + return true; + } + } +} \ No newline at end of file diff --git a/Handler/Project/RunCode/RunSequence/7_PRINTER_ON.cs b/Handler/Project/RunCode/RunSequence/7_PRINTER_ON.cs new file mode 100644 index 0000000..f269b05 --- /dev/null +++ b/Handler/Project/RunCode/RunSequence/7_PRINTER_ON.cs @@ -0,0 +1,224 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using AR; + +namespace Project +{ + public partial class FMain + { + public Boolean PRINTER_ON(eWorkPort target, eSMStep cmdIndex) + { + UInt16 idx = 1; + var mv = PUB.Result.vModel; + var mc = PUB.Result.mModel; + var funcName = System.Reflection.MethodBase.GetCurrentMethod().Name; + var seqTime = PUB.sm.seq.GetTime(cmdIndex); + var msgType = (Class.eStatusMesage)target; + var item = target == eWorkPort.Left ? PUB.Result.ItemDataL : PUB.Result.ItemDataR; + var Printer = target == eWorkPort.Left ? PUB.PrinterL : PUB.PrinterR; + //var Jobtype = VAR.STR[eVarString.JOB_TYPE]; + //var ByPassMode = Jobtype == "BP"; + var CVMode = VAR.BOOL[eVarBool.Use_Conveyor]; + + //option check + var OPT_PrinterOff = PUB.OPT_PRINTEROFF(target); + var OPT_CameraOff = PUB.OPT_CAMERA(target); + var OPT_BYPASS = PUB.OPT_BYPASS(); + //#################################################### + //### 인터락 확인 + //#################################################### + Boolean MotMoveM, MotMoveZ; + AR.CInterLock iLockM, iLockZ; + eAxis axisM = target == eWorkPort.Left ? eAxis.PL_MOVE : eAxis.PR_MOVE; + eAxis axisZ = target == eWorkPort.Left ? eAxis.PL_UPDN : eAxis.PR_UPDN; + if (target == eWorkPort.Left) + { + MotMoveM = PUB.mot.IsMotion((int)eAxis.PL_MOVE); + MotMoveZ = PUB.mot.IsMotion((int)eAxis.PL_UPDN); + iLockM = PUB.iLock[(int)eAxis.PL_MOVE]; + iLockZ = PUB.iLock[(int)eAxis.PL_UPDN]; + } + else + { + MotMoveM = PUB.mot.IsMotion((int)eAxis.PR_MOVE); + MotMoveZ = PUB.mot.IsMotion((int)eAxis.PR_UPDN); + iLockM = PUB.iLock[(int)eAxis.PR_MOVE]; + iLockZ = PUB.iLock[(int)eAxis.PR_UPDN]; + } + + if (iLockM.IsEmpty() == false && MotMoveM) + { + var locklistX = MOT.GetActiveLockList(axisM, iLockM); + PUB.mot.MoveStop("ILock(" + string.Join(",", locklistX) + ")", (int)axisM); + } + + if (iLockZ.IsEmpty() == false && MotMoveZ) + { + var locklistZ = MOT.GetActiveLockList(axisZ, iLockZ); + PUB.mot.MoveStop("ILock(" + string.Join(",", locklistZ) + ")", (int)axisZ); + } + + + + //#################################################### + //### 작업시작 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + PUB.log.Add($"[{target}] 프린트 ON 작업 시작"); + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 종이감지확인 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + var 용지감지센서 = target == eWorkPort.Left ? eDIName.L_PICK_VAC : eDIName.R_PICK_VAC; + var 용지감지기능 = target == eWorkPort.Left ? AR.SETTING.Data.Detect_PrintL : AR.SETTING.Data.Detect_PrintR; + + if (OPT_PrinterOff == false) + { + if (용지감지기능 == false) + { + if (seqTime.TotalMilliseconds < 100) return false; + PUB.log.AddAT($"[{target}] 용지감지기능 OFF(3초후 진행)"); + } + else + { + var ioresult = DIO.checkDigitalO(용지감지센서, seqTime, true, 0, false); + if (ioresult == eNormalResult.Error) + { + var errCode = target == eWorkPort.Left ? eECode.NO_PAPER_DETECT_L : eECode.NO_PAPER_DETECT_R; + PUB.Result.SetResultMessage(eResult.HARDWARE, errCode, eNextStep.PAUSE, 용지감지센서); + return false; + } + else if (ioresult == eNormalResult.False) return false; + } + + } + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### Z올리기(slow) + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (iLockZ.IsEmpty() == false) return false; + if (OPT_BYPASS == false) + { + if (seqTime.TotalMilliseconds < 3000) return false; + sPositionData PosZ; + if (target == eWorkPort.Left) + { + PosZ = MOT.GetLZPos(eLZLoc.PICKON); + } + else + { + PosZ = MOT.GetRZPos(eRZLoc.PICKON); + } + PosZ.Position -= 10; + if (PosZ.Position < 1) PosZ.Position = 1; + PosZ.Speed = 5; + if (MOT.CheckMotionPos(seqTime, PosZ, funcName) == false) return false; + + } + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 종이감지확인 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (OPT_PrinterOff == false) + { + var 용지감지센서 = target == eWorkPort.Left ? eDIName.L_PICK_VAC : eDIName.R_PICK_VAC; + var 용지감지기능 = target == eWorkPort.Left ? AR.SETTING.Data.Detect_PrintL : AR.SETTING.Data.Detect_PrintR; + + if (용지감지기능 == false) + { + if (seqTime.TotalMilliseconds < 100) return false; + PUB.log.AddAT($"[{target}] 용지감지기능 OFF(3초후 진행)"); + } + else + { + var ioresult = DIO.checkDigitalO(용지감지센서, seqTime, true, 0, false); + if (ioresult == eNormalResult.Error) + { + var errCode = target == eWorkPort.Left ? eECode.NO_PAPER_DETECT_L : eECode.NO_PAPER_DETECT_R; + PUB.Result.SetResultMessage(eResult.HARDWARE, errCode, eNextStep.PAUSE, 용지감지센서); + return false; + } + else if (ioresult == eNormalResult.False) return false; + } + } + + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + + //#################################################### + //### Z올리기 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (iLockZ.IsEmpty() == false) return false; + if (OPT_BYPASS == false) + { + sPositionData PosZ; + if (target == eWorkPort.Left) + { + PosZ = MOT.GetLZPos(eLZLoc.READY); + } + else + { + PosZ = MOT.GetRZPos(eRZLoc.READY); + } + if (MOT.CheckMotionPos(seqTime, PosZ, funcName) == false) return false; + } + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + //air off + if (target == eWorkPort.Left) + { + DIO.SetPrintLAir(false); + if (OPT_BYPASS == false) + VAR.I32[eVarInt32.LPickOnCount] += 1; + PUB.flag.set(eVarBool.FG_PL_ITEMON, true, funcName); + } + else + { + DIO.SetPrintRAir(false); + if (OPT_BYPASS == false) + VAR.I32[eVarInt32.RPickOnCount] += 1; + PUB.flag.set(eVarBool.FG_PR_ITEMON, true, funcName); + } + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + return true; + } + } +} \ No newline at end of file diff --git a/Handler/Project/RunCode/RunSequence/8_PRINTER_OFF.cs b/Handler/Project/RunCode/RunSequence/8_PRINTER_OFF.cs new file mode 100644 index 0000000..6a24964 --- /dev/null +++ b/Handler/Project/RunCode/RunSequence/8_PRINTER_OFF.cs @@ -0,0 +1,574 @@ + +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using AR; + +namespace Project +{ + public partial class FMain + { + public Boolean PRINTER_OFF(eWorkPort target, eSMStep cmdIndex) + { + UInt16 idx = 1; + var mv = PUB.Result.vModel; + var mc = PUB.Result.mModel; + var funcName = System.Reflection.MethodBase.GetCurrentMethod().Name; + var seqTime = PUB.sm.seq.GetTime(cmdIndex); + var msgType = (Class.eStatusMesage)target; + var item = target == eWorkPort.Left ? PUB.Result.ItemDataL : PUB.Result.ItemDataR; + var CVMode = VAR.BOOL[eVarBool.Use_Conveyor]; + + //option check + var OPT_PrinterOff = PUB.OPT_PRINTEROFF(target); + var OPT_CameraOff = PUB.OPT_CAMERA(target); + //var OPT_BYPASS = PUB.OPT_BYPASS(target); + + + //#################################################### + //### 인터락 확인 + //#################################################### + Boolean MotMoveM, MotMoveZ; + AR.CInterLock iLockM, iLockZ; + eAxis axisM = target == eWorkPort.Left ? eAxis.PL_MOVE : eAxis.PR_MOVE; + eAxis axisZ = target == eWorkPort.Left ? eAxis.PL_UPDN : eAxis.PR_UPDN; + if (target == eWorkPort.Left) + { + MotMoveM = PUB.mot.IsMotion((int)eAxis.PL_MOVE); + MotMoveZ = PUB.mot.IsMotion((int)eAxis.PL_UPDN); + iLockM = PUB.iLock[(int)eAxis.PL_MOVE]; + iLockZ = PUB.iLock[(int)eAxis.PL_UPDN]; + } + else + { + MotMoveM = PUB.mot.IsMotion((int)eAxis.PR_MOVE); + MotMoveZ = PUB.mot.IsMotion((int)eAxis.PR_UPDN); + iLockM = PUB.iLock[(int)eAxis.PR_MOVE]; + iLockZ = PUB.iLock[(int)eAxis.PR_UPDN]; + } + + if (iLockM.IsEmpty() == false && MotMoveM) + { + var locklistX = MOT.GetActiveLockList(axisM, iLockM); + PUB.mot.MoveStop("ILock(" + string.Join(",", locklistX) + ")", (int)axisM); + } + + if (iLockZ.IsEmpty() == false && MotMoveZ) + { + var locklistZ = MOT.GetActiveLockList(axisZ, iLockZ); + PUB.mot.MoveStop("ILock(" + string.Join(",", locklistZ) + ")", (int)axisZ); + } + + + + //#################################################### + //### 작업시작 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + //PUB.log.Add($"[{target}] 프린트 OFF 작업 시작"); + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 피커Y축 위치 확인 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + var PosX = MOT.GetPXPos(ePXLoc.PICKON); + var OffX = MOT.getPositionOffset(PosX); + if (target == eWorkPort.Left) + { + if (OffX < -1) return false; //충돌조건이므로 Y축을 움직이면 안된다 + } + else + { + if (OffX > 1) return false;//충돌조건이므로 Y축을 움직이면 안된다 + } + + //PUB.log.Add($"[{target}] 프린트 OFF 작업 시작"); + PUB.sm.seq.Update(cmdIndex); + return false; + } + + + //#################################################### + //### 프린터Z축 위치 확인 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (iLockZ.IsEmpty() == false) return false; + sPositionData Pos; + if (target == eWorkPort.Left) + { + Pos = MOT.GetLZPos(eLZLoc.READY); + } + else + { + Pos = MOT.GetRZPos(eRZLoc.READY); + } + if (MOT.CheckMotionPos(seqTime, Pos, funcName) == false) return false; + + //PUB.log.Add($"[{target}] 프린트 OFF 작업 시작"); + PUB.sm.seq.Update(cmdIndex); + return false; + } + + + //#################################################### + //### Y이동 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + sPositionData Pos; + + if (OPT_PrinterOff == false) + { + //릴크기없으면 오류 + var reelSize = item.VisionData.ReelSize; + if (reelSize == eCartSize.None) + { + PUB.Result.SetResultMessage(eResult.OPERATION, eECode.NOREELSIZE, eNextStep.PAUSE, target); + return false; + } + + //부착위치 + var PrintPutPos = item.VisionData.GetPrintPutPosition(); + if (PrintPutPos == ePrintPutPos.None) + { + PUB.Result.SetResultMessage(eResult.OPERATION, eECode.NOPUTPOSITION, eNextStep.PAUSE, target); + return false; + } + + if (target == eWorkPort.Left) + { + //위에 찍을지 아래에 찍을지 위치를 결정한다 + if (reelSize == eCartSize.Inch13) + { + if (PrintPutPos == ePrintPutPos.Middle) Pos = MOT.GetLMPos(eLMLoc.PRINTM13); + else if (PrintPutPos == ePrintPutPos.Bottom) Pos = MOT.GetLMPos(eLMLoc.PRINTL13); + else Pos = MOT.GetLMPos(eLMLoc.PRINTH13); + } + else + { + if (PrintPutPos == ePrintPutPos.Middle) Pos = MOT.GetLMPos(eLMLoc.PRINTM07); + else if (PrintPutPos == ePrintPutPos.Bottom) Pos = MOT.GetLMPos(eLMLoc.PRINTL07); + else Pos = MOT.GetLMPos(eLMLoc.PRINTH07); + } + } + else //Right Move + { + //위에 찍을지 아래에 찍을지 위치를 결정한다 + if (reelSize == eCartSize.Inch13) + { + if (PrintPutPos == ePrintPutPos.Middle) Pos = MOT.GetRMPos(eRMLoc.PRINTM13); + else if (PrintPutPos == ePrintPutPos.Bottom) Pos = MOT.GetRMPos(eRMLoc.PRINTL13); + else Pos = MOT.GetRMPos(eRMLoc.PRINTH13); + } + else + { + if (PrintPutPos == ePrintPutPos.Middle) Pos = MOT.GetRMPos(eRMLoc.PRINTM07); + else if (PrintPutPos == ePrintPutPos.Bottom) Pos = MOT.GetRMPos(eRMLoc.PRINTL07); + else Pos = MOT.GetRMPos(eRMLoc.PRINTH07); + } + } + + if (iLockM.IsEmpty() == false) return false; + //if (iLockZ.IsEmpty() == false) return false; + + //위치오류확인 + if (Pos.isError == false) + { + if (MOT.CheckMotionPos(seqTime, Pos, funcName) == false) return false; + } + else + { + PUB.Result.SetResultMessage(eResult.OPERATION, eECode.POSITION_ERROR, eNextStep.PAUSE, "PRINTPOS"); + return false; + } + } + + + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 실린더 전/후진 상태를 전환한다 -- 210207 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (OPT_PrinterOff == false) + { + var Cylinder = item.VisionData.NeedCylinderForward; + if (Cylinder == true) + { + //전진이 필요하다 + if (target == eWorkPort.Left) + DIO.SetOutput(eDOName.PRINTL_FWD, true); + else + DIO.SetOutput(eDOName.PRINTR_FWD, true); + + } + else + { + //전진이 필요하지 않다. + if (target == eWorkPort.Left) + DIO.SetOutput(eDOName.PRINTL_FWD, false); + else + DIO.SetOutput(eDOName.PRINTR_FWD, false); + } + + } + + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 카트모드에서는 추가 실린더 down 해야한다 230809 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (OPT_PrinterOff == false) + { + if (SETTING.Data.Enable_PickerCylinder) + { + //전진이 필요하다 + if (target == eWorkPort.Left) + DIO.SetOutput(eDOName.L_CYLDN, true); + else + DIO.SetOutput(eDOName.R_CYLDN, true); + } + else + { + if (target == eWorkPort.Left) + DIO.SetOutput(eDOName.L_CYLDN, false); + else + DIO.SetOutput(eDOName.R_CYLDN, false); + } + } + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 카트상태확인 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (OPT_PrinterOff == false) + { + eVarBool fg = target == eWorkPort.Left ? eVarBool.FG_RDY_PORT_PL : eVarBool.FG_RDY_PORT_PR; + if (PUB.flag.get(fg) == false) return false; + } + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 실린더상태확인 -- 210207 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (OPT_PrinterOff == false) + { + var Cylinder = item.VisionData.NeedCylinderForward; + if (Cylinder == true) + { + //전진이 필요하다 + if (target == eWorkPort.Left) + { + if (DIO.checkDigitalO(eDIName.L_PICK_FW, seqTime, true) != eNormalResult.True) + return false; + } + else + { + if (DIO.checkDigitalO(eDIName.R_PICK_FW, seqTime, true) != eNormalResult.True) + return false; + } + } + else + { + //전진이 필요하지 않다. + if (target == eWorkPort.Left) + { + if (DIO.checkDigitalO(eDIName.L_PICK_BW, seqTime, true) != eNormalResult.True) + return false; + } + else + { + if (DIO.checkDigitalO(eDIName.R_PICK_BW, seqTime, true) != eNormalResult.True) + return false; + } + } + } + + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 피커 down 실린더상태확인 -- 230809 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (OPT_PrinterOff == false && SETTING.Data.Enable_PickerCylinder) + { + //전진이 필요하다 + if (target == eWorkPort.Left) + { + if (DIO.checkDigitalO(eDIName.L_CYLDN, seqTime, true, timeoutcode: eECode.PICKER_LCYL_NODOWN) != eNormalResult.True) + return false; + } + else + { + if (DIO.checkDigitalO(eDIName.R_CYLDN, seqTime, true, timeoutcode: eECode.PICKER_RCYL_NODOWN) != eNormalResult.True) + return false; + } + } + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### Z값을 내린다. + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (iLockZ.IsEmpty() == false) return false; + + if (OPT_PrinterOff == false) + { + sPositionData Pos; + if (target == eWorkPort.Left) + Pos = MOT.GetLZPos(eLZLoc.PICKOFF); + else + Pos = MOT.GetRZPos(eRZLoc.PICKOFF); + if (MOT.CheckMotionPos(seqTime, Pos, funcName) == false) return false; + } + + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 진공파기 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (OPT_PrinterOff == false) + { + if (target == eWorkPort.Left) + { + DIO.SetPrintLVac(ePrintVac.exhaust); + } + else + { + DIO.SetPrintRVac(ePrintVac.exhaust); + } + } + + if (target == eWorkPort.Left) + { + VAR.BOOL[eVarBool.LEFT_ITEM_PICKOFF] = true; + VAR.TIME[eVarTime.LEFT_ITEM_PICKOFF] = DateTime.Now; + VAR.DBL[eVarDBL.LEFT_ITEM_PICKOFF] = 0; + VAR.I32[eVarInt32.LEFT_ITEM_COUNT] += 1; + } + else + { + VAR.BOOL[eVarBool.RIGT_ITEM_PICKOFF] = true; + VAR.TIME[eVarTime.RIGT_ITEM_PICKOFF] = DateTime.Now; + VAR.DBL[eVarDBL.RIGT_ITEM_PICKOFF] = 0; + VAR.I32[eVarInt32.RIGT_ITEM_COUNT] += 1; + } + PUB.log.Add($"[{target}] 릴을 내려놓습니다"); + + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 잠시대기 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (OPT_PrinterOff == false) + { + if (seqTime.TotalMilliseconds < AR.SETTING.Data.PrintVacOffPurgeMS) return false; + + } + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 저속으로올린다 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (iLockZ.IsEmpty() == false) return false; + if (OPT_PrinterOff == false) + { + sPositionData Pos; + if (target == eWorkPort.Left) + Pos = MOT.GetLZPos(eLZLoc.PICKOFF); + else + Pos = MOT.GetRZPos(eRZLoc.PICKOFF); + Pos.Position -= 30; + Pos.Speed = 30; + if (MOT.CheckMotionPos(seqTime, Pos, funcName) == false) return false; + } + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 카트모드에서는 추가 실린더 down 해야한다 230809 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + //if (ByPassMode == false) + //{ + // if (CVMode == false) + //{ + //전진이 필요하다 + if (target == eWorkPort.Left) + DIO.SetOutput(eDOName.L_CYLDN, false); + else + DIO.SetOutput(eDOName.R_CYLDN, false); + //} + // } + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### Z값 대기위치로 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (iLockZ.IsEmpty() == false) return false; + if (OPT_PrinterOff == false) + { + sPositionData Pos; + if (target == eWorkPort.Left) + Pos = MOT.GetLZPos(eLZLoc.READY); + else + Pos = MOT.GetRZPos(eRZLoc.READY); + if (MOT.CheckMotionPos(seqTime, Pos, funcName) == false) return false; + } + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### AIR해제 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (target == eWorkPort.Left) + DIO.SetPrintLVac(ePrintVac.off); + else + DIO.SetPrintRVac(ePrintVac.off); + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 실린더 복귀 확인 -- 230809 + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (SETTING.Data.Enable_PickerCylinder) + { + //상승이 필요하다 + if (target == eWorkPort.Left) + { + if (DIO.checkDigitalO(eDIName.L_CYLUP, seqTime, true, timeoutcode: eECode.PICKER_LCYL_NOUP) != eNormalResult.True) + return false; + } + else + { + if (DIO.checkDigitalO(eDIName.R_CYLUP, seqTime, true, timeoutcode: eECode.PICKER_RCYL_NOUP) != eNormalResult.True) + return false; + } + + } + + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + + //#################################################### + //### + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (OPT_PrinterOff == false) + { + if (target == eWorkPort.Left) + { + if (DIO.checkDigitalO(eDIName.L_PICK_VAC, seqTime, false) != eNormalResult.True) return false; + VAR.I32[eVarInt32.LPickOfCount] += 1; + } + else + { + if (DIO.checkDigitalO(eDIName.R_PICK_VAC, seqTime, false) != eNormalResult.True) return false; + VAR.I32[eVarInt32.RPickOfCount] += 1; + } + //PUB.log.AddAT($"용지 떨어짐 확인 필요"); + } + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (target == eWorkPort.Left) + { + PUB.flag.set(eVarBool.FG_PL_ITEMON, false, funcName); + } + else + { + PUB.flag.set(eVarBool.FG_PR_ITEMON, false, funcName); + } + + //프린터 사용여부 확인 + if (OPT_PrinterOff == false) + { + item.PrintAttach = true; + item.Attachtime = DateTime.Now; + } + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + + + return true; + } + } +} \ No newline at end of file diff --git a/Handler/Project/RunCode/RunSequence/90_SaveData.cs b/Handler/Project/RunCode/RunSequence/90_SaveData.cs new file mode 100644 index 0000000..8ef9787 --- /dev/null +++ b/Handler/Project/RunCode/RunSequence/90_SaveData.cs @@ -0,0 +1,146 @@ +using AR; +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; + +namespace Project +{ + public partial class FMain + { + delegate void savedataeehandler(Class.JobData item, string Loc, string inboundok, string reason); + + public void SaveData_EE(Class.JobData item, string Loc, string inboundok, string reason) + { + if (this.InvokeRequired) + { + //이자료를 복사해서 데이터를 넘겨줘야한다. + var a = new Class.JobData(999); + item.CopyTo(ref a); + this.BeginInvoke(new savedataeehandler(SaveData_EE), a, Loc, inboundok, reason); + return; + } + + var retval = false; + if (AR.SETTING.Data.OnlineMode == false) + { + PUB.log.AddAT($"[SAVE-EE] 오프라인으로 저장 하지 않음"); + return; + } + + + DateTime savestart = DateTime.Now; + try + { + var save_month = DateTime.Now.ToString("YY") + DateTime.Now.Month.ToString("X"); + var save_sn = string.Empty; + if (item.VisionData.RID.Length == 15) + { + save_month = item.VisionData.RID.Substring(8, 3); //21A 식으로 년도와 월이 나온다 + save_sn = item.VisionData.RID.Substring(item.VisionData.RID.Length - 4); //뒷에서 4자리 끊는다 + } + //var Jobtype = VAR.STR[eVarString.JOB_TYPE]; + //var ByPassMode = Jobtype == "BP"; + var CVMode = VAR.BOOL[eVarBool.Use_Conveyor]; + //option check + //var OPT_PrinterOff = PUB.OPT_PRINTEROFF(target); + //var OPT_CameraOff = PUB.OPT_CAMERA(target); + var OPT_BYPASS = SETTING.Data.SystemBypass;// PUB.OPT_BYPASS(target); + + + using (var taResult = new DataSet1TableAdapters.Component_Reel_ResultTableAdapter()) + { + //QTY 0값은 없을 수도있다(해당 값은 서버조회여부에다라 다르다) + int? qtyorg = null; + if (int.TryParse(item.VisionData.QTY0, out int vqty0)) + qtyorg = vqty0; + string remark = string.Empty; + if (item.VisionData.ConfirmAuto) remark = "[자동]" + remark; //자동확인문구 + else if (item.VisionData.ConfirmUser) remark = "[확인]" + remark; //사용자 확인데이터 비고에 추가 + if (OPT_BYPASS) remark = "(BYPASS)" + remark; + + DataSet1.Component_Reel_ResultRow newdr = this.dataSet1.Component_Reel_Result.Where(t => t.JGUID.Equals(item.guid)).FirstOrDefault(); + if (newdr == null) newdr = this.dataSet1.Component_Reel_Result.NewComponent_Reel_ResultRow(); + //else newdr = dt.Rows[0] as DataSet1.Component_Reel_ResultRow; + + if (item.JobStart.Year != 1982) newdr.STIME = item.JobStart; + else newdr.STIME = DateTime.Now; + + if (item.JobEnd.Year != 1982) newdr.ETIME = item.JobEnd; + if (item.PrintTime.Year != 1982) newdr.PTIME = item.PrintTime; + + newdr.ATIME = item.Attachtime; + newdr.PDATE = save_month; + newdr.JTYPE = PUB.Result.vModel.Title;// PUB.Result.JobType2; + if (newdr.JTYPE.Length > 10) newdr.JTYPE = newdr.JTYPE.Substring(0, 9); + + newdr.SID = item.VisionData.SID; + newdr.SID0 = item.VisionData.SID0; + newdr.RID = item.VisionData.RID; + newdr.RID0 = item.VisionData.RID0; + newdr.RSN = save_sn; + newdr.QR = item.VisionData.PrintQRData; + newdr.ZPL = item.VisionData.ZPL; + newdr.POS = item.VisionData.PrintPositionData; + newdr.LOC = Loc; + newdr.ANGLE = item.VisionData.ApplyAngle; + if (int.TryParse(item.VisionData.QTY, out int oqty)) + newdr.QTY = oqty; + else + newdr.QTY = 0; + + newdr.MFGDATE = item.VisionData.MFGDATE;//210326 날짜도 추가함 + if (qtyorg != null) newdr.QTY0 = (int)qtyorg; + newdr.VNAME = item.VisionData.VNAME; + newdr.VLOT = item.VisionData.VLOT; ///210326 + newdr.PRNATTACH = item.PrintAttach; + newdr.PRNVALID = item.PrintQRValid; + newdr.REMARK = remark; + if (inboundok.isEmpty() == false) newdr.iNBOUND = inboundok;//230622 + newdr.MC = AR.SETTING.Data.McName; + newdr.PARTNO = item.VisionData.PARTNO; + newdr.CUSTCODE = item.VisionData.CUSTCODE; + newdr.MCN = item.VisionData.MCN; + newdr.target = item.VisionData.Target; + + //220921 - batch qtymax + newdr.BATCH = item.VisionData.BATCH; + if (int.TryParse(item.VisionData.QTYMAX, out int qtymax)) + newdr.qtymax = qtymax; + else newdr.qtymax = -1; + + + + //new mode + if (newdr.RowState == System.Data.DataRowState.Detached) + { + newdr.GUID = PUB.Result.guid; //220921 + newdr.JGUID = item.guid; + newdr.wdate = DateTime.Now; + this.dataSet1.Component_Reel_Result.AddComponent_Reel_ResultRow(newdr); + } + else newdr.EndEdit(); + + var cnt = ta.Update(newdr); + newdr.AcceptChanges(); + if (cnt == 0) PUB.log.AddE("Save Error"); + } + + retval = true; + } + catch (Exception ex) + { + PUB.log.AddE($"[EE-SAVE] {ex.Message}"); + retval = false; + } + + var ts = DateTime.Now - savestart; + PUB.log.AddI($"data save time : {ts.TotalSeconds:N2}"); + + ListFormmatData(); + + + } + } +} \ No newline at end of file diff --git a/Handler/Project/RunCode/RunSequence/9_QRValid.cs b/Handler/Project/RunCode/RunSequence/9_QRValid.cs new file mode 100644 index 0000000..2134c12 --- /dev/null +++ b/Handler/Project/RunCode/RunSequence/9_QRValid.cs @@ -0,0 +1,175 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using AR; + +namespace Project +{ + public partial class FMain + { + public Boolean QR_VALIDATION(eWorkPort target, eSMStep cmdIndex) + { + UInt16 idx = 1; + var mv = PUB.Result.vModel; + var mc = PUB.Result.mModel; + var funcName = System.Reflection.MethodBase.GetCurrentMethod().Name; + var seqTime = PUB.sm.seq.GetTime(cmdIndex); + var msgType = (Class.eStatusMesage)target; + var item = target == eWorkPort.Left ? PUB.Result.ItemDataL : PUB.Result.ItemDataR; + var WS = target == eWorkPort.Left ? PUB.wsL : PUB.wsR; + + //#################################################### + //### 작업시작 + //#################################################### + var CIDX = PUB.sm.seq.Get(cmdIndex); + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + //작업 플래그 설정 + if (target == eWorkPort.Left) + { + VAR.BOOL[eVarBool.VisionL_Retry] = false; + PUB.flag.set(eVarBool.FG_END_VISIONL, false, funcName); + PUB.flag.set(eVarBool.FG_PRC_VISIONL, true, funcName); + //PUB.iLockCVL.set((int)eILockCV.VISION, true, funcName); + } + else + { + VAR.BOOL[eVarBool.VisionR_Retry] = false; + PUB.flag.set(eVarBool.FG_END_VISIONR, false, funcName); + PUB.flag.set(eVarBool.FG_PRC_VISIONR, true, funcName); + //PUB.iLockCVR.set((int)eILockCV.VISION, true, funcName); + } + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + //카메라 트리거 전송 + var sendok = WS_Send(target, WS, item.guid, "TRIG", item.VisionData.PrintQRData); + PUB.log.Add($"바코드트리거전송({target}) = {sendok}"); + if(sendok==false) //230512 전송실패시 오류로 한다 + { + PUB.Result.SetResultMessage(eResult.HARDWARE, eECode.VISION_TRIGERROR, eNextStep.PAUSE); + return false; + } + PUB.sm.seq.Update(cmdIndex); + return false; + } + + //#################################################### + //### 수신된 바코드 값을 기다린다. + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + //타임아웃시간을 넘어서면 오류처리한다 + if (seqTime.TotalMilliseconds >= AR.SETTING.Data.Timeout_VisionProcessU) + { + // + if (target == eWorkPort.Left) + { + if (VAR.BOOL[eVarBool.VisionL_Retry] == false) + { + PUB.log.AddAT("비젼(L) 1회 실패로 재 시도 합니다"); + VAR.BOOL[eVarBool.VisionL_Retry] = true; + PUB.sm.seq.Update(cmdIndex, -1); + return false; + } + + if (item.VisionData.RID2.isEmpty() == false && item.VisionData.MatchValidation == false) + { + PUB.Result.SetResultMessage(eResult.OPERATION, eECode.QRDATAMISSMATCHL, eNextStep.PAUSE, target, item.VisionData.RID, item.VisionData.RID2); + } + else + { + PUB.Result.SetResultMessage(eResult.OPERATION, eECode.VISION_NORECV, eNextStep.PAUSE, target); + } + } + else + { + if (VAR.BOOL[eVarBool.VisionR_Retry] == false) + { + PUB.log.AddAT("비젼(R) 1회 실패로 재 시도 합니다"); + VAR.BOOL[eVarBool.VisionR_Retry] = true; + PUB.sm.seq.Update(cmdIndex, -1); + return false; + } + + + if (item.VisionData.RID2.isEmpty() == false && item.VisionData.MatchValidation == false) + { + PUB.Result.SetResultMessage(eResult.OPERATION, eECode.QRDATAMISSMATCHR, eNextStep.PAUSE, target, item.VisionData.RID, item.VisionData.RID2); + } + else + { + PUB.Result.SetResultMessage(eResult.OPERATION, eECode.VISION_NORECV, eNextStep.PAUSE, target); + } + } + + + PUB.sm.seq.Update(cmdIndex, -1); // 재시작시 트리거 전송할 수 있게 위로 옮김 + return false; + } + else + { + //타임아웃되지 않은 조건 + + if (target == eWorkPort.Left) + { + if (PUB.flag.get(eVarBool.FG_END_VISIONL)) //종료신호가 설정되어있다면 완료된 경우다 + { + PUB.log.AddI($"{target} 비젼 종료 신호로 인해 완료 처리 합니다"); + item.PrintQRValid = true; + } + else if (PUB.flag.get(eVarBool.FG_PRC_VISIONL) == false) //사용자가 취소했다면 넘어간다 + { + PUB.log.AddAT($"{target} 사용자 취소로 QR검증을 넘김"); + item.PrintQRValid = false; + } + else return false; //아직 완료전이므로 리턴한다 + } + else + { + if (PUB.flag.get(eVarBool.FG_END_VISIONR)) + { + PUB.log.AddI($"{target} 비젼 종료 신호로 인해 완료 처리 합니다"); + item.PrintQRValid = true; + } + else if (PUB.flag.get(eVarBool.FG_PRC_VISIONR) == false) //사용자가 취소했다면 넘어간다 + { + PUB.log.AddAT($"{target} 사용자 취소로 QR검증을 넘김"); + item.PrintQRValid = false; + } + else return false; //아직 완료전이므로 리턴한다 + } + } + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + + //#################################################### + //### + //#################################################### + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + PUB.log.Add($"{target} 비젼 검증 완료(결과:{item.PrintQRValid})"); + + if (target == eWorkPort.Left) + PUB.flag.set(eVarBool.FG_PRC_VISIONL, false, funcName); + else + PUB.flag.set(eVarBool.FG_PRC_VISIONR, false, funcName); + + PUB.sm.seq.Update(cmdIndex); + return false; + } + + + return true; + } + } +} \ No newline at end of file diff --git a/Handler/Project/RunCode/RunSequence/_RUN_MOT_PORT.cs b/Handler/Project/RunCode/RunSequence/_RUN_MOT_PORT.cs new file mode 100644 index 0000000..50df880 --- /dev/null +++ b/Handler/Project/RunCode/RunSequence/_RUN_MOT_PORT.cs @@ -0,0 +1,324 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using AR; +namespace Project +{ + public partial class FMain + { + + /// + /// 로더용 포트 조작 + /// + /// + /// + /// + void _SM_RUN_MOT_PORT(int idx, Boolean isFirst, TimeSpan StepTime) + { + //포트 비활성 체크 + eVarBool FG_RDY_PORT; + eDIName DI_LIMUP, DI_DETUP; + eDOName DO_PORTRUN; + Boolean PORT_DISABLE; + + //인덱스에 맞는 플래그와 DI값 설정 + if (idx == 0) + { + PORT_DISABLE = AR.SETTING.Data.Disable_PortL || AR.SETTING.Data.Disable_Left; + FG_RDY_PORT = eVarBool.FG_RDY_PORT_PL; DI_DETUP = eDIName.PORTL_DET_UP; + DI_LIMUP = eDIName.PORTL_LIM_UP; DO_PORTRUN = eDOName.PORTL_MOT_RUN; + } + else if (idx == 1) + { + PORT_DISABLE = AR.SETTING.Data.Disable_PortC; + FG_RDY_PORT = eVarBool.FG_RDY_PORT_PC; DI_DETUP = eDIName.PORTC_DET_UP; + DI_LIMUP = eDIName.PORTC_LIM_UP; DO_PORTRUN = eDOName.PORTC_MOT_RUN; + } + else + { + PORT_DISABLE = AR.SETTING.Data.Disable_PortR || AR.SETTING.Data.Disable_Right; + FG_RDY_PORT = eVarBool.FG_RDY_PORT_PR; DI_DETUP = eDIName.PORTR_DET_UP; + DI_LIMUP = eDIName.PORTR_LIM_UP; DO_PORTRUN = eDOName.PORTR_MOT_RUN; + } + + //포트가 비활성화되어있다면 DETECT ON하고 , LIMIT는 해제한다 -201224 + if (PORT_DISABLE) + { + if (PUB.flag.get(FG_RDY_PORT) == false) + PUB.flag.set(FG_RDY_PORT, true, "DISABLE PORT"); + this.hmi1.arVar_Port[idx].AlignOK = 1; + hmi1.arVar_Port[idx].errorCount = 0; + return; + } + + + //비활성화(좌/우 기능사용여부확인) + //if (idx == 0 && COMM.SETTING.Data.Disable_Left == true) + //{ + // this.hmi1.arVar_Port[idx].AlignOK = 1; + // return; + //} + //else if (idx == 2 && COMM.SETTING.Data.Disable_Right == true) + //{ + // this.hmi1.arVar_Port[idx].AlignOK = 1; + // return; + //} + + + //오류가 일정횟수 발생하면 RDY를 풀어준다(이경우에는 오류처리를 해서 알림을 해야할듯함!) + if (hmi1.arVar_Port[idx].errorCount > 5) + { + if (hmi1.arVar_Port[idx].AlignOK != 1) hmi1.arVar_Port[idx].AlignOK = 1; + if (PUB.flag.get(FG_RDY_PORT) == true) PUB.flag.set(FG_RDY_PORT, false, "RUN_MOT_P"); + return; + } + + //동작중에 X가 pICK 위치에 있다면. Z축이 홈인지 체크한다. + if (PUB.sm.Step == eSMStep.RUN) + { + var PKZ_UNSAFE = MOT.getPositionOffset(eAxis.PZ_PICK, MOT.GetPZPos(ePZLoc.READY).Position) > 2; + //var PKX_POS = MOT.GetPKX_PosName(); + var BSTOP = false; + + //Z축이 Ready 위치보다 낮게 있다면 멈추게한다 + if (idx == 0 && MOT.getPositionMatch(MOT.GetPXPos(ePXLoc.PICKOFFL)) && PKZ_UNSAFE) BSTOP = true; + else if (idx == 1 && MOT.getPositionMatch(MOT.GetPXPos(ePXLoc.PICKON)) && PKZ_UNSAFE) BSTOP = true; + else if (idx == 2 && MOT.getPositionMatch(MOT.GetPXPos(ePXLoc.PICKOFFR)) && PKZ_UNSAFE) BSTOP = true; + if (BSTOP) + { + if (DIO.GetIOOutput(DO_PORTRUN) == true) DIO.SetPortMotor(idx, eMotDir.CCW, false, "Z-NOTREADY"); + return; + } + } + + var PORTALIGN_OK = hmi1.arVar_Port[idx].AlignOK; + if (PORTALIGN_OK != 1) //align이 진행되지 않았다면 align을 잡기위해 처리를 해줘야한다 + { + if (idx != 1) + { + // + } + + //안전센서동작여부 확인 + var BSafty = DIO.isSaftyDoorF(idx, true); + + //안전이 확보된 경우에만 얼라인 ok를한다 - 임시로 해제를 한다? 상단리밋에 걸리것을 처리안하려는 코드인듯! + //if (isPortDetUp(idx) == false && isPortLimUP(idx) == true && BSafty == true) PORTALIGN_OK = 1; + + if (PORTALIGN_OK == 0) //얼라인이 완료되지 않은상태라면 모터 하강 + { + //모터하강시작시간 + PUB.Result.PortAlignTime[idx] = DateTime.Now.Ticks; + + //리밋이 감지된 상태에서 작업하는거면 좀더 오래 내린다 + //if (isPortLimUP(idx)) + //{ + if (idx == 1) PUB.Result.PortAlignWaitSec[idx] = AR.SETTING.Data.PortAlignDownTimeL; + else PUB.Result.PortAlignWaitSec[idx] = AR.SETTING.Data.PortAlignDownTimeU; + + //좌우측음 좀 덜 내려간다 + //} + //else Pub.Result.PortAlignWaitSec[idx] = 1.2f; + //Pub.Result.PortAlignWaitSec[idx] -= 1.0f; //1초제거 210108 + + //모터하강 + if (DIO.GetPortMotorDir(idx) != eMotDir.CCW && DIO.GetPortMotorRun(idx) == true) + { + DIO.SetPortMotor(idx, eMotDir.CCW, false, "하강전멈춤"); + System.Threading.Thread.Sleep(100); + } + + DIO.SetPortMotor(idx, eMotDir.CCW, true, "얼라인(DN)"); + + //하강검사시작 + hmi1.arVar_Port[idx].AlignOK = 2; + //Pub.log.AddAT($"포트({idx}) 얼라인(DOWN) 작업 시작"); + + //포트가 이제 안정화하지 않았으니 안정화를 풀어준다 + PUB.flag.set(FG_RDY_PORT, false, "MOT_PORT_ALIGNSTART"); + } + else if (PORTALIGN_OK == 2) //하강해서 찾는중 + { + //자재감지센서가 감지안되고 일정시간이 지나면 정방향으로 전환한다 + if (isPortDetUp(idx) == false) + { + var waitSec = PUB.Result.PortAlignWaitSec[idx]; + var ts = new TimeSpan(DateTime.Now.Ticks - PUB.Result.PortAlignTime[idx]); + if (ts.TotalSeconds >= waitSec) + { + if (DIO.GetPortMotorDir(idx) != eMotDir.CW && DIO.GetPortMotorRun(idx) == true) + { + DIO.SetPortMotor(idx, eMotDir.CW, false, "상승전멈춤"); + System.Threading.Thread.Sleep(100); + } + + DIO.SetPortMotor(idx, eMotDir.CW, true, "얼라인(UP)"); + hmi1.arVar_Port[idx].AlignOK = 9; //올린다 + //Pub.log.AddAT($"포트({idx}) 얼라인(UP) 작업 시작"); + } + } + else + { + //하강하는데 자재가 감지되고있네? - 하강상태가이면 하강한다 + if (DIO.GetIOOutput(DO_PORTRUN) == false) + { + if (DIO.GetPortMotorDir(idx) != eMotDir.CCW && DIO.GetPortMotorRun(idx) == true) + { + DIO.SetPortMotor(idx, eMotDir.CCW, false, "하강전멈춤"); + System.Threading.Thread.Sleep(100); + } + + DIO.SetPortMotor(idx, eMotDir.CCW, true, "얼라인(DN)"); + PUB.log.Add("PORT", "포트를 강제로 하강 합니다"); + } + + //자재가 감지되면 시간을 다시 초기화해서 충분히 내려가도록 한다 210402 + PUB.Result.PortAlignTime[idx] = DateTime.Now.Ticks; + } + + //하단 리밋에 걸렷다면 반전시켜준다. 200708 + if (isPortLimDN(idx) == true) + { + if (DIO.GetPortMotorDir(idx) != eMotDir.CW && DIO.GetPortMotorRun(idx) == true) + { + DIO.SetPortMotor(idx, eMotDir.CW, false, "리밋전환전멈춤"); + System.Threading.Thread.Sleep(100); + } + + DIO.SetPortMotor(idx, eMotDir.CW, true, "얼라인(LIM)"); + hmi1.arVar_Port[idx].AlignOK = 9; + //Pub.log.AddAT($"포트({idx}) 얼라인(UP-LIM) 작업 시작"); + } + } + else if (PORTALIGN_OK == 9) //상승해서 찾는중 + { + if (isPortDetUp(idx) || isPortLimUP(idx)) + { + hmi1.arVar_Port[idx].AlignOK = 1; //정렬완료로처리 + //Pub.log.AddAT($"포트({idx}) 얼라인 작업 완료"); + } + else if (isPortDetUp(idx) == false || isPortLimUP(idx) == false) + { + //둘다 켜지 않은 상태에서 모터가 멈춰있다면 올려준다 + if (DIO.GetIOOutput(DO_PORTRUN) == false) + { + if (DIO.GetPortMotorDir(idx) != eMotDir.CW && DIO.GetPortMotorRun(idx) == true) + { + DIO.SetPortMotor(idx, eMotDir.CW, false, "강제상승전멈춤"); + System.Threading.Thread.Sleep(100); + } + + DIO.SetPortMotor(idx, eMotDir.CW, true, "MOT_PORT"); + PUB.log.Add("PORT", "강제 상승(9에서 멈춰있음)"); + } + } + } + else if (PORTALIGN_OK == 1) + { + //정렬완료로처리 - 201229 + hmi1.arVar_Port[idx].AlignOK = 1; + } + else + hmi1.arVar_Port[idx].AlignOK = 0; //알수없는 상태이므로 처음부터 시작하게 한다 + } + else + { + //여기코드는 PORT ALIGN 이 완료된상태(=1) 일 때 동작하는 코드이다 + if (PUB.flag.get(FG_RDY_PORT) == false) + { + if(idx != 1) + { + + } + if (hmi1.arVar_Port[idx].errorCount > 5) + { + //5회이상 오류 발생햇으니 처리하지 않음 + } + else if (isPortLimUP(idx) == true) + { + //상단 리밋이 확인됨(자재가 없는 경우임) + if (idx != 1) + { + //언로더 포트는 리밋에 걸리더라도 사용해야한다(놓는것은 가능 함) + //최초 상태에서는 반드시 이 상태가 된다 + PUB.flag.set(FG_RDY_PORT, true, "MOT_PORT_UNLOADER ON"); + } + else + { + if (isPortDetUp(idx)) + { + PUB.flag.set(FG_RDY_PORT, true, "MOT_PORT_UNLOADER ON"); + } + } + } + else if (isPortDetUp(idx) == true) + { + //자재감지가 완료되었다? + PUB.flag.set(FG_RDY_PORT, true, "RUN_MOT_P"); + } + else + { + //모터를 올리는 작업을 진행해서 P-LIMIT를 찾아야 한다 + Boolean runMot = DIO.GetPortMotorDir(idx) == eMotDir.CCW; + if (runMot == false) + { + if (DIO.GetIOOutput(DO_PORTRUN) == false) runMot = true; + } + if (runMot) + { + if (DIO.GetPortMotorDir(idx) != eMotDir.CW && DIO.GetPortMotorRun(idx) == true) + { + DIO.SetPortMotor(idx, eMotDir.CW, false, "얼라인(#1)전멈춤"); + System.Threading.Thread.Sleep(100); + } + + DIO.SetPortMotor(idx, eMotDir.CW, true, "얼라인(#1)"); + } + } + } + else //포트가 준비되면 아무것도 안한다 + { + //LIMIT이 들어와있는데 DETECT 센서도 들어와 있다면 다시 얼라인 잡게한다. + if (DIO.GetIOInput(DI_LIMUP) == true) + { + //언로더포트 0,2번은 Ready 를 풀지 않는다. + //그것은 P-LIM 상태라도 작업이 가능해야 한다 + if (idx == 1) + { + if (isPortDetUp(idx) == false) + PUB.flag.set(FG_RDY_PORT, false, "RUN_MOT_P"); + } + } + + //자재가 감지되지 않았는데. LIMIT 가 아니라면 up을 시켜준다. + if (DIO.GetIOInput(DI_DETUP) == false && DIO.GetIOInput(DI_LIMUP) == false) + { + //RDY를 해제 해준다 + PUB.flag.set(FG_RDY_PORT, false, "RUN_MOT_P"); + + if (DIO.GetIOOutput(DO_PORTRUN) == false) + { + if (DIO.GetPortMotorDir(idx) != eMotDir.CW && DIO.GetPortMotorRun(idx) == true) + { + DIO.SetPortMotor(idx, eMotDir.CW, false, "얼라인(#2)전멈춤"); + System.Threading.Thread.Sleep(100); + } + + DIO.SetPortMotor(idx, eMotDir.CW, true, "얼라인(#2)"); + } + } + } + } + + if (idx == 0) + PUB.sm.seq.UpdateTime(eSMStep.RUN_COM_PT0); + else if (idx == 1) + PUB.sm.seq.UpdateTime(eSMStep.RUN_COM_PT1); + else + PUB.sm.seq.UpdateTime(eSMStep.RUN_COM_PT2); + + } + } +} diff --git a/Handler/Project/RunCode/StateMachine/_Events.cs b/Handler/Project/RunCode/StateMachine/_Events.cs new file mode 100644 index 0000000..cb34b70 --- /dev/null +++ b/Handler/Project/RunCode/StateMachine/_Events.cs @@ -0,0 +1,127 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using arDev; +using AR; + +namespace Project +{ + public partial class FMain + { + + private void SM_StateProgress(object sender, AR.StateMachine.StateProgressEventArgs e) + { + arCtl.arLabel lbl = lbMsg; + + lbl.BeginInvoke(new Action(() => + { + var title = e.Message; + var max = e.MaxProgress; + var value = e.Progress; + + + if (lbl.ProgressEnable == false) lbl.ProgressEnable = true; + if (lbl.ProgressValue != value) lbl.ProgressValue = (float)value; + if (lbl.Text != title) lbl.Text = title; + + if (max != 0) + { + if (lbl.ProgressMax != max) lbl.ProgressMax = (float)max; + } + if (e.ForeColor != null) + { + if (lbl.ProgressForeColor != e.ForeColor) lbl.ProgressForeColor = (Color)e.ForeColor; + } + if (e.ShadowColor != null) + { + if (lbl.ShadowColor != e.ShadowColor) lbl.ShadowColor = (Color)e.ShadowColor; + } + if (e.ProgressBackColor1 != null) + { + if (lbl.ProgressColor1 != e.ProgressBackColor1) lbl.ProgressColor1 = (Color)e.ProgressBackColor1; + } + if (e.ProgressBackColor2 != null) + { + if (lbl.ProgressColor2 != e.ProgressBackColor2) lbl.ProgressColor1 = (Color)e.ProgressBackColor2; + } + + if (e.BackColor1 != null) + { + if (lbl.BackColor != e.BackColor1) lbl.BackColor = (Color)e.BackColor1; + } + if (e.BackColor2 != null) + { + if (lbl.BackColor2 != e.BackColor2) lbl.BackColor2 = (Color)e.BackColor2; + } + })); + } + + private void SM_StepCompleted(object sender, EventArgs e) + { + PUB.log.Add($"스텝완료({PUB.sm.Step})"); + + //초기화가 완료되면 컨트롤 글자를 변경 해준다. + if (PUB.sm.Step == eSMStep.INIT) + SM_InitControl(null, null); + + } + + private void SM_StepStarted(object sender, EventArgs e) + { + switch (PUB.sm.Step) + { + case eSMStep.IDLE: + + //IDLE의 시작작업이 완료되었다면 각 버튼을 사용할 수 있도록 한다 + this.Invoke(new Action(() => + { + btStart.Enabled = true; + btStop.Enabled = true; + btReset.Enabled = true; + })); + + break; + } + + } + + private void SM_InitControl(object sender, EventArgs e) + { + //작업시작전 컨트롤 초기화 코드 + var mc = PUB.Result.mModel; + var mv = PUB.Result.vModel; + + this.Invoke(new Action(() => + { + + //진행 중 표시되는 상태값 초기화 + lbCntRight.ProgressValue = 0; + lbCntRight.Text = "--"; + lbCntLeft.Text = "--"; + })); + + } + + + + void SM_Message(object sender, StateMachine.StateMachineMessageEventArgs e) + { + //상태머신에서 발생한 메세지 + PUB.log.Add(e.Header, e.Message); + } + + + void SM_StepChanged(object sender, StateMachine.StepChangeEventArgs e) + { + var o = (eSMStep)e.Old; + var n = (eSMStep)e.New; + PUB.log.AddI($"스텝전환({o} >> {n})"); + + //230313 + EEMStatus.AddStatusSQL(n); + } + + } +} diff --git a/Handler/Project/RunCode/StateMachine/_Loop.cs b/Handler/Project/RunCode/StateMachine/_Loop.cs new file mode 100644 index 0000000..90d4682 --- /dev/null +++ b/Handler/Project/RunCode/StateMachine/_Loop.cs @@ -0,0 +1,246 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using arDev; +using AR; + +namespace Project +{ + public partial class FMain + { + DateTime lastDeleteTime = DateTime.Now; + DateTime HomeSuccessTime; + DateTime HomeChkTime; + + + void SM_Loop(object sender, StateMachine.RunningEventArgs e) + { + //main loop + var step = (eSMStep)e.Step; + var obj = this.GetType(); + + var stepName = step.ToString(); + var methodName = $"_STEP_{stepName}"; + var methodNameStart = $"_STEP_{stepName}_START"; + var runMethodName = $"_{stepName}"; + + var method = obj.GetMethod(methodName); + var methodS = obj.GetMethod(methodNameStart); + + switch (step) + { + case eSMStep.NOTSET: + PUB.log.Add("S/M Initialize Start"); + PUB.sm.SetNewStep(eSMStep.INIT); + break; + + case eSMStep.WAITSTART: + if (e.isFirst) PUB.log.Add("EVENT WAITSTART"); + break; + + case eSMStep.PAUSE: + case eSMStep.EMERGENCY: + case eSMStep.ERROR: + if (e.isFirst) + _SM_MAIN_ERROR(e.isFirst, (eSMStep)e.Step, e.StepTime); + break; + + default: + + if (e.isFirst) + { + //시작명령은 반드시 구현할 필요가 없다 + if (methodS != null) methodS.Invoke(this, new object[] { step }); + else + { + hmi1.ClearMessage(); + PUB.log.Add($"정의되지 않은 STEP({step}) 시작"); + } + + if (step == eSMStep.HOME_QUICK || step == eSMStep.HOME_FULL || PUB.sm.getOldStep == eSMStep.IDLE || PUB.sm.getOldStep == eSMStep.FINISH) + { + PUB.sm.seq.ClearData(step); + PUB.sm.seq.Clear(step); + } + + PUB.sm.seq.ClearTime(); + PUB.sm.RaiseStepStarted(); + } + + if (PUB.popup.needClose) System.Threading.Thread.Sleep(10); + else + { + //스텝번호값 보정 220313 + if (PUB.sm.seq.Get(step) < 1) PUB.sm.seq.Update(step, 1); + + if (method == null) + { + var runMethod = obj.GetMethod(runMethodName); + if (runMethod == null) + { + PUB.log.AddE($"다음 명령이 구현되지 않았습니다 {methodName}/{runMethodName}"); + PUB.Result.SetResultMessage(eResult.DEVELOP, eECode.NOFUNCTION, eNextStep.ERROR, methodName, runMethodName); + } + else + { + var stepName2 = step.ToString(); + + //실행코드는 있으니 처리한다. + if (PUB.popup.needClose) System.Threading.Thread.Sleep(10); //팝업이 닫힐때까지 기다린다. + else + { + //실행가능여부를 확인 합니다 + if (CheckSystemRunCondition() == true) + { + //동작상태가 아니라면 처리하지 않는다. + if (PUB.sm.Step == step && PUB.sm.getNewStep == step) + { + var param = new object[] { step }; + var rlt = (bool)runMethod.Invoke(this, param); + if (rlt == true) + { + PUB.log.AddI("사용자스텝(자동) 실행완료 대기상태전환"); + PUB.sm.SetNewStep(eSMStep.IDLE, true); + } + } + } + } + } + } + else + { + var param = new object[] { step, e.StepTime, PUB.sm.seq.GetTime(step) }; + var rlt = (StepResult)method.Invoke(this, param); + if (rlt == StepResult.Complete) PUB.sm.RaiseStepCompleted(); + else + { + //사용자 스텝이 설정되어있다면 자동으로 멈춘다 220223 + if (rlt == StepResult.Error) + { + if (PUB.sm.getNewStep != eSMStep.ERROR) + PUB.sm.SetNewStep(eSMStep.ERROR); + } + + if (PUB.flag.get(eVarBool.FG_USERSTEP) == true) + { + if (PUB.sm.Step >= eSMStep.RUN && PUB.sm.getNewStep >= eSMStep.RUN && + PUB.sm.Step < eSMStep.FINISH && PUB.sm.getNewStep < eSMStep.FINISH) + { + //유저스텝에 걸려있지 않다면 자동으로 멈춘다 + if (LockUserL.WaitOne(10) && LockUserR.WaitOne(10)) + { + //Pub.Result.SetResultMessage(eResult.OPERATION, eECode.USER_STOP) + PUB.Result.ResultMessage = string.Empty; + PUB.sm.SetNewStep(eSMStep.PAUSE); + } + } + } + } + } + } + break; + } + } + + void DeleteFile(string path) + { + var basetime = DateTime.Now.AddDays(-1 * AR.SETTING.Data.AutoDeleteDay); + var di = new System.IO.DirectoryInfo(path); + if (di.Exists) + { + var dirYear = di.GetDirectories().OrderBy(t => t.Name).FirstOrDefault(); + if (dirYear != null) + { + var dirMon = dirYear.GetDirectories().OrderBy(t => t.Name).FirstOrDefault(); + if (dirMon != null) + { + var dirDay = dirMon.GetDirectories().OrderBy(t => t.Name).FirstOrDefault(); + if (dirDay != null) + { + var curDay = DateTime.Parse(string.Format("{0}-{1}-{2} 00:00:00", dirYear.ToString(), dirMon.ToString(), dirDay.ToString())); + if (curDay < basetime) + { + var dirLot = dirDay.GetDirectories().OrderBy(t => t.Name).FirstOrDefault(); + if (dirLot != null) + { + var delfile = dirLot.GetFiles().FirstOrDefault(); + if (delfile != null) + { + try + { + PUB.log.AddI("Remove Fle : " + delfile.FullName + ",time=" + delfile.LastWriteTime.ToString()); + delfile.Delete(); + } + catch (Exception ex) + { + PUB.log.AddE("deleete error : " + ex.Message); + } + } + else + { + string delpath = dirLot.FullName; + try + { + dirLot.Delete(true); + } + catch (Exception ex) + { + PUB.log.AddE("remove dir" + ex.Message + "," + delpath); + } + + } + } + else + { + //이 폴더아래에 다른 폴더가 하나도 없다 즉 비어 있따. + string delpath = dirDay.FullName; + try + { + dirDay.Delete(true); + } + catch (Exception ex) + { + PUB.log.AddE("remove dir" + ex.Message + "," + delpath); + } + } + } + + } + else + { + //날짜에 해당하는 폴더가 하나도 없다. 월 폴더를 제거한다. + string delpath = dirMon.FullName; + try + { + dirMon.Delete(true); + } + catch (Exception ex) + { + PUB.log.AddE("remove dir" + ex.Message + "," + delpath); + } + } + } + else + { + //이 달에 해당하는 데이터가 없다. 이 년도를 삭제한다. + string delpath = dirYear.FullName; + try + { + dirYear.Delete(true); + } + catch (Exception ex) + { + PUB.log.AddE("remove dir" + ex.Message + "," + delpath); + } + } + } + //년도별폴더목록을 정리함 + //가장작은 년도를 기준으로 파일을 검색해서 1개씩 삭제함 + } + } + + + } +} diff --git a/Handler/Project/RunCode/StateMachine/_SM_DIO.cs b/Handler/Project/RunCode/StateMachine/_SM_DIO.cs new file mode 100644 index 0000000..3510e4a --- /dev/null +++ b/Handler/Project/RunCode/StateMachine/_SM_DIO.cs @@ -0,0 +1,122 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using AR; +namespace Project +{ + public partial class FMain + { + private void Dio_IOValueChanged(object sender, arDev.DIO.IOValueEventArgs e) + { + if (e.Direction == arDev.DIO.eIOPINDIR.INPUT) + { + var diPin = DIO.Pin.input.Where(t=>t.terminalno == e.ArrIDX).FirstOrDefault(); + if(diPin == null) + { + PUB.log.AddE($"DI INDEX:{e.ArrIDX} 에 해당하는 터미널 대상이 없습니다"); + } + else + { + var pin = (eDIName)diPin.idx; + if (AR.SETTING.Data.Log_DI) + { + PUB.log.Add("DIO", String.Format("DI:IDX={0},DIR={1},VAL={2},NM={3}", e.ArrIDX, e.Direction, e.NewValue, diPin)); + } + var value = DIO.GetIOInput(pin); + _DIO_INPUT_VALUE_CHANGED(pin, value); + } + } + else + { + var doPin = DIO.Pin.output.Where(t => t.terminalno == e.ArrIDX).FirstOrDefault(); + if (doPin == null) + { + PUB.log.AddE($"DO INDEX:{e.ArrIDX} 에 해당하는 터미널 대상이 없습니다"); + } + else + { + var pin = (eDOName)doPin.idx; + + if (AR.SETTING.Data.Log_DO) + { + //타워램프는 제외하낟. + if (e.ArrIDX != (byte)eDOName.TWR_GRNF && + e.ArrIDX != (byte)eDOName.TWR_REDF && + e.ArrIDX != (byte)eDOName.TWR_YELF && + e.ArrIDX != (byte)eDOName.BUT_STARTF && + e.ArrIDX != (byte)eDOName.BUT_STOPF && + e.ArrIDX != (byte)eDOName.BUT_RESETF) + PUB.log.Add("DIO", String.Format("DO:IDX={0},DIR={1},VAL={2}", e.ArrIDX, e.Direction, e.NewValue)); + } + _DIO_OUTPUT_VALUE_CHANGED(pin, e.NewValue); + + } + + } + } + + void _DIO_IOMessage(object sender, arDev.DIO.MessageEventArgs e) + { + if (e.IsError) + { + if (e.Message.ToLower().IndexOf("inposi") != -1 || e.Message.ToLower().IndexOf("동일위치") != -1) + { + PUB.log.AddAT("DIO:" + e.Message); + } + else + { + PUB.log.AddE("DIO:" + e.Message); + } + } + else PUB.log.Add("DIO:" + e.Message); + } + + //void IO_SaftySensor_Changed(eDIName pin, eFlag flag, eVar_Date varDt_On, eVar_Date varDt_Off, bool value) + //{ + // //안전센서는 일정 시간 동작하는것을 체크한다 + // Pub.log.AddAT(string.Format("{0} Sensor : {1}", pin, value)); + // if (value) Pub.Var_dateTime[(int)varDt_On] = DateTime.Now; + // else Pub.Var_dateTime[(int)varDt_Off] = DateTime.Now; + //} + + void IncCount(int seq, int port, int value = 1) + { + if (PUB.counter.DateStr != DateTime.Now.ToShortDateString()) + { + if (port == 0) PUB.counter.CountDP1 = value; + if (port == 1) PUB.counter.CountDP2 = value; + if (port == 2) PUB.counter.CountDP3 = value; + if (port == 3) PUB.counter.CountDP4 = value; + PUB.counter.DateStr = DateTime.Now.ToShortDateString(); + } + else + { + if (port == 0) PUB.counter.CountDP1 += value; + if (port == 1) PUB.counter.CountDP2 += value; + if (port == 2) PUB.counter.CountDP3 += value; + if (port == 3) PUB.counter.CountDP4 += value; + } + + + //각 포트별 수량은 차수별 작업이므로 차수가 변경되면 리셋됨 + //리셋되는 코드 필요함 + if (port == 0) PUB.counter.CountP0 += value; + if (port == 1) PUB.counter.CountP1 += value; + if (port == 2) PUB.counter.CountP2 += value; + if (port == 3) PUB.counter.CountPrintR += value; + else + { + PUB.log.AddAT(string.Format("[{0}] 미지정 포트이므로 수량 증가 불가", seq)); + } + + //Pub.log.AddI("수량정보가 저장 되었습니다"); + PUB.counter.Save(); + } + + + + + } +} diff --git a/Handler/Project/RunCode/StateMachine/_SM_RUN.cs b/Handler/Project/RunCode/StateMachine/_SM_RUN.cs new file mode 100644 index 0000000..b7b51b0 --- /dev/null +++ b/Handler/Project/RunCode/StateMachine/_SM_RUN.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; + +namespace Project +{ + public partial class FMain + { + #region "Common Utility" + + + + + /// + /// 지정된 시간만큼 대기하며 완료되면 true를 반환합니다. + /// + /// + /// + Boolean WaitForSeconds(eWaitType wait, double timems) + { + var idx = (byte)wait; + if (PUB.Result.WaitForVar[idx] == null || PUB.Result.WaitForVar[idx].Year == 1982) + { + PUB.Result.WaitForVar[idx] = PUB.Result.WaitForVar[idx] = DateTime.Now; + //Pub.log.Add(string.Format("Wait for [{0}], Wait Time:{1}ms", wait, timems)); + } + var ts = DateTime.Now - PUB.Result.WaitForVar[idx]; + if (ts.TotalSeconds >= timems) return true; + else return false; + } + + void ResetWaitForSeconds(eWaitType wait) + { + var idx = (byte)wait; + PUB.Result.WaitForVar[idx] = DateTime.Parse("1982-11-23"); + } + + #endregion + + }//cvass +} diff --git a/Handler/Project/RunCode/StateMachine/_SPS.cs b/Handler/Project/RunCode/StateMachine/_SPS.cs new file mode 100644 index 0000000..2e4ff2b --- /dev/null +++ b/Handler/Project/RunCode/StateMachine/_SPS.cs @@ -0,0 +1,330 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text.RegularExpressions; +using AR; + +namespace Project +{ + public partial class FMain + { + void SM_SPS(object sender, EventArgs e) + { + //명령어 가져오기 7:3개의 데이터 확인 + if (PUB.plc != null && PUB.plc.Init) + { + if (PUB.plc.ReadBytes(0, 16, out byte[] plcbuffer)) + { + //내부버퍼에 상태를 기록한다 + Array.Copy(plcbuffer, 0, PUB.swPLCBuffer, 0, plcbuffer.Length); + } + } + + + + + //인터락설정(공용) + Set_InterLock(); + + //230905 + hmi1.CVLeftBusy = PUB.iLockCVL.get((int)eILockCV.BUSY); + hmi1.CVLeftReady = PUB.iLockCVL.get((int)eILockCV.EXTBUSY); + hmi1.CVRightBusy = PUB.iLockCVR.get((int)eILockCV.BUSY); + hmi1.CVRightReady = PUB.iLockCVR.get((int)eILockCV.EXTBUSY); + + + //XMOVE 시에 RESET 키를 이용한 장치 초기화 작업 + if (PUB.sm.Step == eSMStep.IDLE) + if (PUB.mot.HasHomeSetOff == true) + if (DIO.GetIOInput(eDIName.BUT_RESETF) == true) + if (DIO.GetIOInput(eDIName.PICKER_SAFE) == true) + if (PUB.Result.ResetButtonDownTime.Year != 1982) + if ((DateTime.Now - PUB.Result.ResetButtonDownTime).TotalSeconds >= 5) + Func_sw_initialize(); + + //비상정지체크 + if (PUB.dio.IsInit == true) + { + if (DIO.IsEmergencyOn() == true) + { + //모터에 비상정지신호를 바로 전송한다 + //Util_DO.SetMotEmergency(true); + DIO.SetMotPowerOn(false); + DIO.SetMotEmergency(true); + if (PUB.sm.Step > eSMStep.IDLE) + { + string EmgButtonState = string.Empty; + if (DIO.GetIOInput(eDIName.BUT_EMGF)) EmgButtonState = "EMG-FRONT"; + + if (PUB.sm.Step != eSMStep.EMERGENCY && + PUB.sm.getNewStep != eSMStep.EMERGENCY) + { + PUB.mot.MoveStop("EmgBut", true); //모든 축 강제정지 (물리시그널에 의해 미리 정지 된 상태임) + + //비상상태가 아니라면 비상으로 전환해준다. + + PUB.Result.ResultCode = eResult.EMERGENCY; + PUB.Result.ResultMessage = string.Format("EMERGENCY\n" + + "비상정지 버튼({0})이 눌렸습니다\n" + + "모든 모션이 강제 정지 합니다\n" + + "비상 정지 버튼을 확인 한 후 시스템을 초기화 하세요", EmgButtonState); + + PUB.log.AddI("SPS:Reserve Emergency Step"); + PUB.sm.SetNewStep(eSMStep.EMERGENCY); + } + } + } + else + { + //이머전시가 해제되었으므로 파워를 복원한다. + DIO.SetMotPowerOn(true); + DIO.SetMotEmergency(false); + } + } + + //룸조명(자동) + if (PUB.dio.IsInit) + Func_AutoRoomLight(); + + //AIR공급중단체크 - Sensitive 에 작동시간을 직접 입력했다(delay time) + //if (Pub.dio.IsInit) + //Func_CheckAirOffCondition(); + + //부저확인 + if (PUB.dio.IsInit) + Func_BuzzerControl(); + + //충돌검사() + if (PUB.dio.IsInit && PUB.mot.IsInit) + CheckCollision(); + + //포트의 UP/DN 모터 + PortZMotorAutoOff(); + + PortMagnet(); + + //바코드동작처리 - 210103 + //var qrdatas1 = ProcessBarcodeQue(0); + //var qrdatas2 = ProcessBarcodeQue(2); + + ////왼쪽비젼에서 데이터가 있었다 + //if (qrdatas1.Count > 0) + //{ + // if (PUB.flag.get(eVarBool.PRC_VISIONL) == false) + // { + // PUB.log.AddAT("비젼(L) READY가 아니므로 처리하지 않음"); + // } + // else + // { + // //처리가 완료되지 않은경우엠ㄴ 사용한다. + // if (PUB.flag.get(eVarBool.END_VISIONL) == false) + // RecvQRProcess(qrdatas1, eWorkPort.Left); + // else PUB.log.AddAT("비젼(L) 이전작업이 완료되어 처리하지 않음"); + // } + //} + ////오른쪽비젼에서 데이터가 있었다 + //if (qrdatas2.Count > 0) + //{ + // if (PUB.flag.get(eVarBool.PRC_VISIONR) == false) + // { + // PUB.log.AddAT("비젼(R) READY가 아니므로 처리하지 않음"); + // } + // else + // { + // //비젼처리가 완료되지 않은경우에만 사용한다 + // if (PUB.flag.get(eVarBool.END_VISIONR) == false) + // RecvQRProcess(qrdatas2, eWorkPort.Right); + // else PUB.log.AddAT("비젼(R) 이전작업이 완료되어 처리하지 않음"); + // } + + //} + //} + + + //동작중에 데이터가 reset 되는 코드 임시로 모니터링한다. + if (PUB.sm.Step != eSMStep.IDLE && PUB.sm.Step != eSMStep.HOME_FULL && PUB.sm.Step != eSMStep.HOME_QUICK) + { + var currid = PUB.Result.ItemDataC.VisionData.RID; + if (currid.Equals(lastridv1) == false) + { + PUB.AddDebugLog("[SPS] RID값 변경 감지 :" + currid); + lastridv1 = currid; + } + } + + //process barcode + BarcodeProcess(); + } + string lastridv1 = string.Empty; + + + + System.Diagnostics.Stopwatch UnloaderWatch = new System.Diagnostics.Stopwatch(); + + void PortMagnet() + { + if (PUB.flag.get(eVarBool.FG_WAT_MAGNET0) && DIO.GetIOOutput(eDOName.CART_MAG0) == false) + { + var ts = DateTime.Now - VAR.TIME[(int)eVarTime.MAGNET0]; + if (ts.TotalMilliseconds > AR.SETTING.Data.WaitTime_Magnet0) + { + DIO.SetPortMagnet(0, true); //Util_DO.SetOutput(eDOName.CART_MAG0, true); + PUB.flag.set(eVarBool.FG_WAT_MAGNET0, false, "SPS-MAGON"); + } + } + if (PUB.flag.get(eVarBool.FG_WAT_MAGNET0) == true && DIO.GetIOOutput(eDOName.CART_MAG0) == true) + { + PUB.flag.set(eVarBool.FG_WAT_MAGNET0, false, "SPS-MAGOFF"); + } + + if (PUB.flag.get(eVarBool.FG_WAT_MAGNET1) && DIO.GetIOOutput(eDOName.CART_MAG1) == false) + { + var ts = DateTime.Now - VAR.TIME[(int)eVarTime.MAGNET1]; + if (ts.TotalMilliseconds > AR.SETTING.Data.WaitTime_Magnet1) + { + DIO.SetPortMagnet(1, true); // Util_DO.SetOutput(eDOName.CART_MAG1, true); + PUB.flag.set(eVarBool.FG_WAT_MAGNET1, false, "SPS-MAGON"); + } + } + if (PUB.flag.get(eVarBool.FG_WAT_MAGNET1) == true && DIO.GetIOOutput(eDOName.CART_MAG1) == true) + { + PUB.flag.set(eVarBool.FG_WAT_MAGNET1, false, "SPS-MAGOFF"); + } + + + if (PUB.flag.get(eVarBool.FG_WAT_MAGNET2) && DIO.GetIOOutput(eDOName.CART_MAG2) == false) + { + var ts = DateTime.Now - VAR.TIME[(int)eVarTime.MAGNET2]; + if (ts.TotalMilliseconds > AR.SETTING.Data.WaitTime_Magnet2) + { + DIO.SetPortMagnet(2, true); // Util_DO.SetOutput(eDOName.CART_MAG2, true); + PUB.flag.set(eVarBool.FG_WAT_MAGNET2, false, "SPS-MAGON"); + } + } + if (PUB.flag.get(eVarBool.FG_WAT_MAGNET2) == true && DIO.GetIOOutput(eDOName.CART_MAG2) == true) + { + PUB.flag.set(eVarBool.FG_WAT_MAGNET2, false, "SPS-MAGOFF"); + } + } + + int intlockcnt = 0; + + /// + /// 이 기능은 DIO 에서도 처리된다. - 해당 위치가 더 빠를듯 하여 ,그곳에서도 처리되고 이곳에서도 추가 처리를 한다 + /// + private void PortZMotorAutoOff() + { + //dir 이 켜져있다면 Up/ 꺼져있다면 down + var P0DirUp = DIO.GetPortMotorDir(0) == eMotDir.CW; + var P1DirUp = DIO.GetPortMotorDir(1) == eMotDir.CW; + var P2DirUp = DIO.GetPortMotorDir(2) == eMotDir.CW; + + var P0Run = DIO.GetIOOutput(eDOName.PORTL_MOT_RUN); + var P1Run = DIO.GetIOOutput(eDOName.PORTC_MOT_RUN); + var P2Run = DIO.GetIOOutput(eDOName.PORTR_MOT_RUN); + + var P0LimUp = DIO.GetIOInput(eDIName.PORTL_LIM_UP); + var P1LimUp = DIO.GetIOInput(eDIName.PORTC_LIM_UP); + var P2LimUp = DIO.GetIOInput(eDIName.PORTR_LIM_UP); + + var P0DetUp = DIO.GetIOInput(eDIName.PORTL_DET_UP); + var P1DetUp = DIO.GetIOInput(eDIName.PORTC_DET_UP); + var P2DetUp = DIO.GetIOInput(eDIName.PORTR_DET_UP); + + var P0LimDn = DIO.GetIOInput(eDIName.PORTL_LIM_DN); + var P1LimDn = DIO.GetIOInput(eDIName.PORTC_LIM_DN); + var P2LimDn = DIO.GetIOInput(eDIName.PORTR_LIM_DN); + + //현재 출력중이고, 상단이 켜져있는데 상단 센서가 들어와잇다면 OFF 한다 + if (P0Run && P0DirUp && (P0LimUp || P0DetUp)) DIO.SetPortMotor(0, eMotDir.CCW, false, "SPS"); + if (P1Run && P1DirUp && (P1LimUp || P1DetUp)) DIO.SetPortMotor(1, eMotDir.CCW, false, "SPS"); + if (P2Run && P2DirUp && (P2LimUp || P2DetUp)) DIO.SetPortMotor(2, eMotDir.CCW, false, "SPS"); + + //현재 출력중이고, 하단이 켜져있는데. 하단 센서가 들어와 있다면 Off 한다 + if (P0Run && P0DirUp == false && P0LimDn) DIO.SetPortMotor(0, eMotDir.CW, false, "SPS"); + if (P1Run && P1DirUp == false && P1LimDn) DIO.SetPortMotor(1, eMotDir.CW, false, "SPS"); + if (P2Run && P2DirUp == false && P2LimDn) DIO.SetPortMotor(2, eMotDir.CW, false, "SPS"); + + //작업이 종료되어서 포트가 내려가고 있다면 5초뒤에 멈춘다 - 210405 + if (PUB.flag.get(eVarBool.FG_PORT1_ENDDOWN) && AR.SETTING.Data.Port1FisnishDownTime > 0) + { + var runtime = DateTime.Now - VAR.TIME[(int)eVarTime.PORT1]; + if (runtime.TotalMilliseconds >= AR.SETTING.Data.Port1FisnishDownTime) + { + if (P1Run && PUB.sm.isRunning == false && DIO.GetPortMotorDir(1) == eMotDir.CCW) + { + DIO.SetPortMotor(1, eMotDir.CW, false, "SPS"); + } + PUB.flag.set(eVarBool.FG_PORT1_ENDDOWN, false, "SPS"); + VAR.TIME.Update(eVarTime.PORT1); + } + } + } + + DateTime CollCheckTime = DateTime.Now; + private void CheckCollision() + { + //충돌검검사 (홈 이 완료안된 모터에는 처리하지 않는다) + if (PUB.sm.Step != eSMStep.RUN || PUB.sm.getNewStep != eSMStep.RUN) return; + + //초당 20번 검사하게 함 + var ts = DateTime.Now - CollCheckTime; + if (ts.TotalMilliseconds < 50) return; + + + + //현재 시간으로 설정 + CollCheckTime = DateTime.Now; + } + + private void Func_AutoRoomLight() + { + if (AR.SETTING.Data.Enable_AutoLight == false) return; + + } + + + private void Func_BuzzerControl() + { + //if (AR.SETTING.Data.Disable_Buzzer == false) return; + if (PUB.BuzzerTime.Year == 1982) return; //시간설정이없으면 out + if (DIO.GetIOOutput(eDOName.BUZZER) == false) return; //부저가 꺼져있다면 out + if (AR.SETTING.Data.buzz_run_ms != 0) //시간이 설정된 경우에만 작동190509 + { + if (PUB.BuzzerTime.Year == 1982) PUB.BuzzerTime = DateTime.Now; + else + { + var ts = DateTime.Now - PUB.BuzzerTime; + if (ts.TotalMilliseconds >= AR.SETTING.Data.buzz_run_ms) //지정시간이 초과된경우에만 OFF + { + PUB.log.Add("Auto Buzzer Off by SPS"); + DIO.SetBuzzer(false); //지정시간초과로 부저를 OFF 한다. + } + } + } + } + + //void Func_CheckAirOffCondition() + //{ + // if (Pub.sm.Step < eSMStep.IDLE) return; + + // //181226 + // var airSw = Util_DO.GetIOInput(eDIName.BUT_AIRF); + // if (airSw == true && AirOff == true && AirOffStart.Year != 1982) + // { + // //스위치가 눌려져있고, 눌린 시간이 설정되어 있는 경우 + // //스위치 ON 시간을 계산한다 + // var ts = DateTime.Now - AirOffStart; + // if (ts.TotalMilliseconds >= COMM.SETTING.Data.AirOFFTimer) + // { + // Util_DO.SetAIR(false); + // AirOff = false; + // AirOffStart = DateTime.Parse("1982-11-23"); + // Pub.log.AddAT("AIR OFF by User"); + // } + // } + //} + + } +} diff --git a/Handler/Project/RunCode/StateMachine/_SPS_BarcodeProcess.cs b/Handler/Project/RunCode/StateMachine/_SPS_BarcodeProcess.cs new file mode 100644 index 0000000..6688ee2 --- /dev/null +++ b/Handler/Project/RunCode/StateMachine/_SPS_BarcodeProcess.cs @@ -0,0 +1,850 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text.RegularExpressions; +using AR; + +namespace Project +{ + public partial class FMain + { + + Tuple> BarcodeRegExProcess( + List patterns, + List patternsEx, + Class.VisionData vdata, string barcodeSymbol, + string bcd, out bool IgnoreBarcode, out bool findregex) + { + //var patterns = PUB.Result.BCDPattern; + IgnoreBarcode = false; + findregex = false; + + //get : same symbol data + List pats; + if (patterns != null) + { + if (barcodeSymbol.isEmpty() == false) pats = patterns.Where(t => t.IsEnable == true && (string.IsNullOrEmpty(t.Symbol) || t.Symbol == barcodeSymbol)).OrderBy(t => t.Seq).ToList(); + else pats = patterns.Where(t => t.IsEnable == true).OrderBy(t => t.Seq).ToList(); + } + else pats = new List(); + + + List patsEx; + if (patternsEx == null) patsEx = new List(); + else + { + if (barcodeSymbol.isEmpty() == false) patsEx = patternsEx.Where(t => string.IsNullOrEmpty(t.Symbol) || t.Symbol == barcodeSymbol).OrderBy(t => t.Seq).ToList(); + else patsEx = patternsEx.Where(t => t.IsEnable == true).OrderBy(t => t.Seq).ToList(); + } + + + + if (pats.Any() == false) + { + PUB.log.AddAT($"등록된 패턴이 없습니다(SYM={barcodeSymbol})"); + return new Tuple>(0, new List()); + } + + //모델정보의 허용 심볼인지 확인한다 221017 + var vm = PUB.Result.vModel; + if (vm != null) + { + if (vm.BCD_DM == false && barcodeSymbol == "2") + { + PUB.log.AddAT($"모델(DM)에서 비활성:{bcd}"); + IgnoreBarcode = true; + return new Tuple>(0, new List()); + } + else if (vm.BCD_1D == false && (barcodeSymbol == "6" || barcodeSymbol == "11")) + { + PUB.log.AddAT($"모델(1D)에서 비활성:{bcd}"); + IgnoreBarcode = true; + return new Tuple>(0, new List()); + } + else if (vm.BCD_QR == false && (barcodeSymbol == "1")) + { + PUB.log.AddAT($"모델(QR)에서 비활성:{bcd}"); + IgnoreBarcode = true; + return new Tuple>(0, new List()); + } + + } + + + + //이 바코드가 무시바코드에 있는지 먼저 검사한다 220718 + foreach (var pt in patsEx) + { + //skip disable item + if (pt.IsEnable == false) continue; + + //check regex + var regx = new Regex(pt.Pattern, RegexOptions.IgnoreCase, new TimeSpan(0, 0, 10)); + if (regx.IsMatch(bcd)) + { + PUB.log.Add($"무시바코드:{bcd},PAT:{pt.Pattern},SYM:{pt.Symbol}"); + IgnoreBarcode = true; + break; + } + } + if (IgnoreBarcode) + { + return new Tuple>(0, new List()); + } + + + + var ValueApplyCount = 0; + ValueApplyCount = 0; + List list = new List(); + findregex = false; + foreach (var pt in pats) + { + //skip disable item + if (pt.IsEnable == false) continue; + + var regx = new Regex(pt.Pattern, RegexOptions.IgnoreCase, new TimeSpan(0, 0, 10)); + if (regx.IsMatch(bcd)) + { + findregex = true; + //find data + var matchs = regx.Matches(bcd); + foreach (System.Text.RegularExpressions.Match mat in matchs) + { + + if (vdata == null) ValueApplyCount += 1; + else + { + foreach (var matchdata in pt.Groups) + { + if (matchdata.GroupNo <= mat.Groups.Count) + { + var data = mat.Groups[matchdata.GroupNo]; + if (PUB.SetBCDValue(vdata, matchdata.TargetPos, data.Value, pt.IsTrust)) + ValueApplyCount += 1; + + } + } + } + } + + if (vdata != null && pt.IsAmkStd)// && bcdObj.barcodeSymbol == "1") + { + vdata.QRInputRaw = bcd; + } + + if (vdata != null) + PUB.log.AddI($"[{pt.Description}]=>{bcd}"); + + list.Add(pt.Customer + "|" + pt.Description); + } + else + { + //PUB.log.AddAT($"(X)Match ({pt.Pattern}) Data={bcd}"); + } + } + return new Tuple>(ValueApplyCount, list); + } + + + /// + /// barcod eprocess + /// + void BarcodeProcess() + { + //coffee + //get regexpress patterns + var patterns = PUB.Result.BCDPattern; + var itemC = PUB.Result.ItemDataC; + var vdata = itemC.VisionData; + + //No Run - Confirm Data + if (vdata.Confirm) return; + var vm = PUB.Result.vModel; + + lock (vdata.barcodelist) + { + foreach (var item in vdata.barcodelist) + { + //var src = item.Value.barcodeSource; + var bcd = item.Value.Data; + var bcdObj = item.Value; + + //already checked + if (bcdObj.RegExConfirm) continue; + + var ValueApplyCount = BarcodeRegExProcess(PUB.Result.BCDPattern, PUB.Result.BCDIgnorePattern, vdata, bcdObj.barcodeSymbol, bcd, out bool IgnoreBcd, out bool findregex); + bcdObj.Ignore = IgnoreBcd; + + //기타바코드 무시기능 적용 221018 + if (vm != null && vm.IgnoreOtherBarcode == true && findregex == false) + bcdObj.Ignore = true; + + bcdObj.RefExApply = (ValueApplyCount?.Item1 ?? 0) > 0; + bcdObj.RegExConfirm = true; + } + } + + //assign customer code - fixed data + if (vdata.CUSTCODE.isEmpty() && VAR.STR[eVarString.JOB_CUSTOMER_CODE].isEmpty() == false) + { + vdata.CUSTCODE = VAR.STR[eVarString.JOB_CUSTOMER_CODE]; + PUB.log.Add($"Cutomer Code 고정값 사용 : {vdata.CUSTCODE}"); + } + + //SiD CONVERT + if (VAR.BOOL[eVarBool.Opt_SIDConvert]) + { + if (PUB.flag.get(eVarBool.FG_WAIT_LOADERINFO) == false && VAR.BOOL[eVarBool.JOB_Empty_SIDConvertInfo] == false) + { + //원본시드(sid0)가 비어있는데 sid과 확정되었다면 변환작업을 진행한다 + if (vdata.SID0.isEmpty() && vdata.SID.isEmpty() == false && vdata.SID_Trust) + { + //이 sid가 존재여부확인 후 없는 sid라면 더이상 처리하지 않는다 230510 + if (PUB.Result.DTSidConvertEmptyList.Contains(vdata.SID)) + { + //존재하지 않는 SID로 이미 확인되었다 + } + else if (PUB.Result.DTSidConvertMultiList.Contains(vdata.SID)) + { + //다중sid로 인해 처리하지 않는다 + } + else + { + var newsid = PUB.SIDCovert(vdata.SID, "SPS_BarcodeProcess", out bool converr); + if (converr) + { + if (PUB.sm.Step == eSMStep.RUN) + PUB.log.AddE(newsid); + } + else + { + vdata.SID0 = vdata.SID; + vdata.SID = newsid; + } + } + + } + } + } + + //정규식혹은 바코드 룰에 의해 데이터가 바뀌었더라도 모델 기준으로 진행한다 + if (PUB.Result.vModel.Def_Vname.isEmpty() == false) + { + if (itemC.VisionData.VNAME.Equals(PUB.Result.vModel.Def_Vname) == false) + { + itemC.VisionData.VNAME = PUB.Result.vModel.Def_Vname.Trim(); + itemC.VisionData.VNAME_Trust = true; + PUB.log.Add($"Defaul V.Name Set to {PUB.Result.vModel.Def_Vname}"); + } + } + if (PUB.Result.vModel.Def_MFG.isEmpty() == false) + { + if (itemC.VisionData.MFGDATE.Equals(PUB.Result.vModel.Def_MFG) == false) + { + itemC.VisionData.MFGDATE = PUB.Result.vModel.Def_MFG.Trim(); + itemC.VisionData.MFGDATE_Trust = true; + PUB.log.Add($"Defaul MFGDATE Set to {PUB.Result.vModel.Def_MFG}"); + } + } + + + ////New ReelID + /// this process run ( 3_keyence_read.cs ) + //if (VAR.BOOL[eVarBool.Opt_NewReelID) && PUB.sm.isRunning) + //{ + // if (vdata.temp_custcode.Length == 4 && vdata.RID0.isEmpty() && vdata.RIDNew == false) + // { + // //backup old reel id + // vdata.RID0 = vdata.RID; + // vdata.RIDNew = true; + + // var newid = Amkor.RestfulService.Allocation_Unique_ReelID_AmkorSTD(vdata.temp_custcode, "4", "A", out string err); + // if (newid.isEmpty() == false) + // { + // //remain original reel id + // vdata.SetRID( newid,"SPS"); + // PUB.log.AddI($"New REELID:{newid}"); + // } + // } + //} + + //릴ID 신규발행 + if (PUB.sm.Step == eSMStep.RUN && vdata.CUSTCODE.isEmpty() == false && vdata.SID.isEmpty() == false) + { + if (VAR.BOOL[eVarBool.Opt_NewReelID]) + { + if (itemC.VisionData.RIDNew == false && itemC.VisionData.CUSTCODE.isEmpty() == false) + { + var newid = Amkor.RestfulService.Allocation_Unique_ReelID_AmkorSTD(itemC.VisionData.CUSTCODE, "4", "A", out string errmsg); + if (newid.isEmpty() == false) + { + //backup origin reel id + itemC.VisionData.RID0 = itemC.VisionData.RID; + + //set new reel id + itemC.VisionData.SetRID(newid, "SPS:CHKDATACOMPLETE");// = newid; + itemC.VisionData.RIDNew = true; //applied new reel id + + //서버의수량업데이트기능이 켜져있다면 해당 값을 제거해준다. (다시 조회되도록 함) + if (VAR.BOOL[eVarBool.Opt_ServerQty]) + { + //이미 수량업데이트된 경우이므로 복원시켜준다 + if (itemC.VisionData.QTY0.isEmpty() == false) + { + PUB.log.AddAT($"릴아이디 변경으로 인해 수량을 복원합니다({itemC.VisionData.QTY}->{itemC.VisionData.QTY0})"); + itemC.VisionData.QTY = itemC.VisionData.QTY0; + itemC.VisionData.QTY0 = string.Empty; + } + } + } + else + { + var logtime = VAR.TIME.RUN((int)eVarTime.LOG_NEWIDERROR); + if (logtime.TotalSeconds >= 3000) + { + PUB.log.AddAT($"Reel_ID 생성실패 : {errmsg}"); + VAR.TIME.Update(eVarTime.LOG_NEWIDERROR); + } + } + } + } + } + + + //바코드가 변경된 경우이다, 자동채우기 기능이 있다면 사용한다 + bool NewBarcodeUpdated = false; + if (VAR.BOOL[eVarBool.Opt_ApplySIDInfo] && vdata.BarcodeTouched == true) + { + Boolean Apply = true; + + //select columns + List fields = new List(); + if (VAR.BOOL[eVarBool.Opt_SID_Apply_CustCode] && vdata.CUSTCODE.isEmpty()) fields.Add("CustCode"); + if (VAR.BOOL[eVarBool.Opt_SID_Apply_PartNo] && (vdata.PARTNO.isEmpty() || vdata.PARTNO_Trust == false)) fields.Add("PartNo"); + if (VAR.BOOL[eVarBool.Opt_SID_Apply_PrintPos] && vdata.PrintPositionData.isEmpty()) fields.Add("PrintPosition"); + if (VAR.BOOL[eVarBool.Opt_SID_Apply_VenderName] && (vdata.VNAME_Trust == false || vdata.VNAME.isEmpty())) fields.Add("VenderName"); + if (VAR.BOOL[eVarBool.Opt_SID_Apply_SID] && (vdata.SID_Trust == false || vdata.SID.isEmpty())) fields.Add("SID"); + if (VAR.BOOL[eVarBool.Opt_SID_Apply_batch] && (vdata.SID_Trust == false || vdata.BATCH.isEmpty())) fields.Add("batch"); //220921 + if (VAR.BOOL[eVarBool.Opt_SID_Apply_qty] && (vdata.SID_Trust == false || vdata.QTYMAX.isEmpty())) fields.Add("qtymax"); //220921 + fields.Add("attach"); //231026 + + //where coluns + List wheres = new List(); + //wheres.Add($"MC='{COMM.SETTING.Data.McName}"); + if (VAR.BOOL[eVarBool.Opt_SID_Where_CustCode]) + { + if (vdata.CUSTCODE.isEmpty() == false) wheres.Add($"CustCode='{vdata.CUSTCODE}'"); + else Apply = false; + } + if (VAR.BOOL[eVarBool.Opt_SID_Where_PartNo]) + { + if (vdata.PARTNO_Trust && vdata.PARTNO.isEmpty() == false) wheres.Add($"PartNo='{vdata.PARTNO}'"); + else Apply = false; + } + if (VAR.BOOL[eVarBool.Opt_SID_Where_SID]) + { + //if sid convert logic + if (VAR.BOOL[eVarBool.Opt_SIDConvert]) + { + if (vdata.SID_Trust && vdata.SID0.isEmpty() == false && vdata.SID.isEmpty() == false) + wheres.Add($"SID='{vdata.SID}'"); + else Apply = false; + } + else + { + if (vdata.SID_Trust && vdata.SID.isEmpty() == false) wheres.Add($"SID='{vdata.SID}'"); + else Apply = false; + } + } + if (VAR.BOOL[eVarBool.Opt_SID_Where_VLOT]) //221013 + { + if (vdata.VLOT_Trust && vdata.VLOT.isEmpty() == false) + wheres.Add($"(VenderLot like '{vdata.VLOT}' or VenderLot like '%,{vdata.VLOT}' or VenderLot like '{vdata.VLOT},%' or VenderLot like '%,{vdata.VLOT},%')"); + else Apply = false; + } + + if (VAR.BOOL[eVarBool.Opt_SID_Where_MC]) //231006 + { + wheres.Add($"attach='{AR.SETTING.Data.McName}'"); + } + + //if query data . no error + if (Apply && fields.Count > 0 && wheres.Count > 0) + { + + var mcname = SETTING.Data.McName; + if (VAR.BOOL[eVarBool.Use_Conveyor]) mcname = PUB.MCCode; + + var SQL = "select top 1 " + string.Join(",", fields) + + " from Component_Reel_SID_Information WITH(NOLOCK)" + + " where mc='" + mcname + "' and " + string.Join(" and ", wheres) + + " order by wdate desc"; + + var SQLC = "select count(*)" + + " from Component_Reel_SID_Information WITH(NOLOCK)" + + " where mc='" + mcname + "' and " + string.Join(" and ", wheres); + + if (PUB.Result.ItemDataC.VisionData.LastQueryString.Equals(SQL)) + { + //같은 쿼리이므로 처리하지 않는다 + } + else + { + + PUB.log.Add($"DATABAES : SID INFORMATIION QUERY"); + PUB.log.Add(SQL); + var CS = Properties.Settings.Default.CS; + var CN = new System.Data.SqlClient.SqlConnection(CS); + var CMD = new System.Data.SqlClient.SqlCommand(SQL, CN); + if (CN.State == System.Data.ConnectionState.Closed) CN.Open(); + + //데이터가 중복으로 존재하는지 확인한다. 231006 + CMD.CommandText = SQLC; + var cnt = int.Parse(CMD.ExecuteScalar().ToString()); + if (cnt == 1) + { + CMD.CommandText = SQL; + var DAR = CMD.ExecuteReader(); + while (DAR.Read()) + { + //loop select columns + for (int i = 0; i < fields.Count; i++) + { + var colName = fields[i]; + var v = DAR[colName]; + if (v != null) + { + var vStr = v.ToString().RemoveNoneASCII().Trim(); + if (vStr.isEmpty()) continue; + + //O_Trust == false)) fields.Add("PartNo"); + //ields.Add("PrintPosition"); + //ta.VNAME.isEmpty())) fields.Add("VenderName"); + //Empty())) fields.Add("SID"); + + //value is not empty + if (colName == "CustCode") + { + PUB.log.Add($"AUP [{colName}] {vdata.CUSTCODE}=>{vStr}"); + vdata.CUSTCODE = vStr; + NewBarcodeUpdated = true; + } + else if (colName == "PartNo") + { + PUB.log.Add($"AUP [{colName}] {vdata.PARTNO}=>{vStr}"); + vdata.PARTNO = vStr; + vdata.PARTNO_Trust = true; + NewBarcodeUpdated = true; + } + else if (colName == "PrintPosition") + { + PUB.log.Add($"AUP [{colName}] {vdata.PrintPositionData}=>{vStr}"); + vdata.PrintPositionData = vStr; + vdata.PrintPositionCheck = true; + NewBarcodeUpdated = true; + } + else if (colName == "VenderName") + { + PUB.log.Add($"AUP [{colName}] {vdata.VNAME}=>{vStr}"); + vdata.VNAME = vStr; + vdata.VNAME_Trust = true; + NewBarcodeUpdated = true; + } + else if (colName == "VenderLot") + { + PUB.log.Add($"AUP [{colName}] {vdata.VLOT}=>{vStr}"); + vdata.VLOT = vStr; + vdata.VLOT_Trust = true; + NewBarcodeUpdated = true; + } + else if (colName == "SID") + { + PUB.log.Add($"AUP [{colName}] {vdata.SID}=>{vStr}"); + vdata.SID = vStr; + vdata.SID_Trust = vdata.SID.Length == 9; + if (vStr.Length != 9) + { + PUB.log.AddE($"DB SID LEN ERROR:{vStr},LEN={vStr.Length}"); + } + NewBarcodeUpdated = true; + } + else if (colName == "batch") + { + PUB.log.Add($"AUP [{colName}] {vdata.BATCH}=>{vStr}"); + vdata.BATCH = vStr; + NewBarcodeUpdated = true; + } + else if (colName == "qtymax") + { + PUB.log.Add($"AUP [{colName}] {vdata.BATCH}=>{vStr}"); + vdata.QTYMAX = vStr; + NewBarcodeUpdated = true; + } + else if (colName.ToLower() == "attach") + { + PUB.log.Add($"attach [{colName}] {vdata.Target}=>{vStr}"); + vdata.Target = vStr; + NewBarcodeUpdated = true; + } + } + } + } + DAR.Close(); + } + CMD.Dispose(); + if (CN.State == System.Data.ConnectionState.Open) CN.Close(); + CN.Dispose(); + PUB.Result.ItemDataC.VisionData.LastQueryString = SQL; + } + } + } + + + if (VAR.BOOL[eVarBool.Opt_ApplySIDConv] && vdata.BarcodeTouched == true) + { + Boolean Apply = true; + + //select columns + List fields = new List(); + if (VAR.BOOL[eVarBool.Opt_Conv_Apply_CustCode] && vdata.CUSTCODE.isEmpty()) fields.Add("CustCode"); + if (VAR.BOOL[eVarBool.Opt_Conv_Apply_PartNo] && (vdata.PARTNO.isEmpty() || vdata.PARTNO_Trust == false)) fields.Add("PartNo"); + if (VAR.BOOL[eVarBool.Opt_Conv_Apply_PrintPos] && vdata.PrintPositionData.isEmpty()) fields.Add("PrintPosition"); + if (VAR.BOOL[eVarBool.Opt_Conv_Apply_VenderName] && (vdata.VNAME_Trust == false || vdata.VNAME.isEmpty())) fields.Add("VenderName"); + if (VAR.BOOL[eVarBool.Opt_Conv_Apply_SID] && (vdata.SID_Trust == false || vdata.SID.isEmpty())) fields.Add("SID"); + if (VAR.BOOL[eVarBool.Opt_Conv_Apply_Batch] && (vdata.SID_Trust == false || vdata.BATCH.isEmpty())) fields.Add("batch"); //220921 + if (VAR.BOOL[eVarBool.Opt_Conv_Apply_QtyMax] && (vdata.SID_Trust == false || vdata.QTYMAX.isEmpty())) fields.Add("qtymax"); //220921 + + + //where coluns + List wheres = new List(); + //wheres.Add($"MC='{COMM.SETTING.Data.McName}"); + if (VAR.BOOL[eVarBool.Opt_Conv_Where_CustCode]) + { + if (vdata.CUSTCODE.isEmpty() == false) wheres.Add($"CustCode='{vdata.CUSTCODE}'"); + else Apply = false; + } + if (VAR.BOOL[eVarBool.Opt_Conv_Where_PartNo]) + { + if (vdata.PARTNO_Trust && vdata.PARTNO.isEmpty() == false) wheres.Add($"PartNo='{vdata.PARTNO}'"); + else Apply = false; + } + if (VAR.BOOL[eVarBool.Opt_Conv_Where_SID]) + { + //if sid convert logic + if (VAR.BOOL[eVarBool.Opt_SIDConvert]) + { + if (vdata.SID_Trust && vdata.SID0.isEmpty() == false && vdata.SID.isEmpty() == false) + wheres.Add($"SIDTo='{vdata.SID}'"); + else Apply = false; + } + else + { + if (vdata.SID_Trust && vdata.SID.isEmpty() == false) wheres.Add($"SIDTo='{vdata.SID}'"); + else Apply = false; + } + } + if (VAR.BOOL[eVarBool.Opt_Conv_Where_VLOT]) //221013 + { + if (vdata.VLOT_Trust && vdata.VLOT.isEmpty() == false) + wheres.Add($"(VenderLot like '{vdata.VLOT}' or VenderLot like '%,{vdata.VLOT}' or VenderLot like '{vdata.VLOT},%' or VenderLot like '%,{vdata.VLOT},%')"); + else Apply = false; + } + + //if (VAR.BOOL[eVarBool.Opt_Conv_Where_MC]) //231006 + //{ + // wheres.Add($"attach='{AR.SETTING.Data.McName}'"); + //} + + //if query data . no error + if (Apply && fields.Count > 0 && wheres.Count > 0) + { + + var mcname = SETTING.Data.McName; + if (VAR.BOOL[eVarBool.Use_Conveyor]) mcname = PUB.MCCode; + + var SQL = "select top 1 " + string.Join(",", fields) + + " from Component_Reel_SID_Convert WITH(NOLOCK)" + + " where " + string.Join(" and ", wheres) + + " order by wdate desc"; + + var SQLC = "select count(*)" + + " from Component_Reel_SID_Convert WITH(NOLOCK)" + + " where " + string.Join(" and ", wheres); + + if (PUB.Result.ItemDataC.VisionData.LastQueryString.Equals(SQL)) + { + //같은 쿼리이므로 처리하지 않는다 + } + else + { + + PUB.log.Add($"DATABAES : SID(CONV) INFORMATIION QUERY"); + PUB.log.Add(SQL); + var CS = Properties.Settings.Default.CS; + var CN = new System.Data.SqlClient.SqlConnection(CS); + var CMD = new System.Data.SqlClient.SqlCommand(SQL, CN); + if (CN.State == System.Data.ConnectionState.Closed) CN.Open(); + + //데이터가 중복으로 존재하는지 확인한다. 231006 + CMD.CommandText = SQLC; + var cnt = int.Parse(CMD.ExecuteScalar().ToString()); + if (cnt == 1) + { + CMD.CommandText = SQL; + var DAR = CMD.ExecuteReader(); + while (DAR.Read()) + { + //loop select columns + for (int i = 0; i < fields.Count; i++) + { + var colName = fields[i]; + var v = DAR[colName]; + if (v != null) + { + var vStr = v.ToString().RemoveNoneASCII().Trim(); + if (vStr.isEmpty()) continue; + + //O_Trust == false)) fields.Add("PartNo"); + //ields.Add("PrintPosition"); + //ta.VNAME.isEmpty())) fields.Add("VenderName"); + //Empty())) fields.Add("SID"); + + //value is not empty + if (colName == "CustCode") + { + PUB.log.Add($"AUP [{colName}] {vdata.CUSTCODE}=>{vStr}"); + vdata.CUSTCODE = vStr; + NewBarcodeUpdated = true; + } + else if (colName == "PartNo") + { + PUB.log.Add($"AUP [{colName}] {vdata.PARTNO}=>{vStr}"); + vdata.PARTNO = vStr; + vdata.PARTNO_Trust = true; + NewBarcodeUpdated = true; + } + else if (colName == "PrintPosition") + { + PUB.log.Add($"AUP [{colName}] {vdata.PrintPositionData}=>{vStr}"); + vdata.PrintPositionData = vStr; + vdata.PrintPositionCheck = true; + NewBarcodeUpdated = true; + } + else if (colName == "VenderName") + { + PUB.log.Add($"AUP [{colName}] {vdata.VNAME}=>{vStr}"); + vdata.VNAME = vStr; + vdata.VNAME_Trust = true; + NewBarcodeUpdated = true; + } + else if (colName == "VenderLot") + { + PUB.log.Add($"AUP [{colName}] {vdata.VLOT}=>{vStr}"); + vdata.VLOT = vStr; + vdata.VLOT_Trust = true; + NewBarcodeUpdated = true; + } + else if (colName == "SID") + { + PUB.log.Add($"AUP [{colName}] {vdata.SID}=>{vStr}"); + vdata.SID = vStr; + vdata.SID_Trust = vdata.SID.Length == 9; + if (vStr.Length != 9) + { + PUB.log.AddE($"DB SID LEN ERROR:{vStr},LEN={vStr.Length}"); + } + NewBarcodeUpdated = true; + } + else if (colName == "batch") + { + PUB.log.Add($"AUP [{colName}] {vdata.BATCH}=>{vStr}"); + vdata.BATCH = vStr; + NewBarcodeUpdated = true; + } + else if (colName == "qtymax") + { + PUB.log.Add($"AUP [{colName}] {vdata.BATCH}=>{vStr}"); + vdata.QTYMAX = vStr; + NewBarcodeUpdated = true; + } + else if (colName.ToLower() == "attach") + { + PUB.log.Add($"attach [{colName}] {vdata.Target}=>{vStr}"); + vdata.Target = vStr; + NewBarcodeUpdated = true; + } + } + } + } + DAR.Close(); + } + CMD.Dispose(); + if (CN.State == System.Data.ConnectionState.Open) CN.Close(); + CN.Dispose(); + PUB.Result.ItemDataC.VisionData.LastQueryString = SQL; + } + } + } + + //기존 작업에서 데이터를 찾아서 쓴다 + if (VAR.BOOL[eVarBool.Opt_ApplyJobInfo] && vdata.BarcodeTouched == true) + { + Boolean Apply = true; + + //select columns + List fields = new List(); + if (VAR.BOOL[eVarBool.Opt_Job_Apply_CustCode] && vdata.CUSTCODE.isEmpty()) fields.Add("CUSTCODE"); + if (VAR.BOOL[eVarBool.Opt_Job_Apply_PartNo] && (vdata.PARTNO.isEmpty() || vdata.PARTNO_Trust == false)) fields.Add("PARTNO"); + if (VAR.BOOL[eVarBool.Opt_Job_Apply_PrintPos] && vdata.PrintPositionData.isEmpty()) fields.Add("POS"); + if (VAR.BOOL[eVarBool.Opt_Job_Apply_VenderName] && (vdata.VNAME_Trust == false || vdata.VNAME.isEmpty())) fields.Add("VNAME"); + if (VAR.BOOL[eVarBool.Opt_Job_Apply_SID] && (vdata.SID_Trust == false || vdata.SID.isEmpty())) fields.Add("SID"); + + //where coluns + List wheres = new List(); + if (VAR.BOOL[eVarBool.Opt_Job_Where_CustCode]) + { + if (vdata.CUSTCODE.isEmpty() == false) wheres.Add($"CUSTCODE='{vdata.CUSTCODE}'"); + else Apply = false; + } + if (VAR.BOOL[eVarBool.Opt_Job_Where_PartNo]) + { + if (vdata.PARTNO_Trust && vdata.PARTNO.isEmpty() == false) wheres.Add($"PARTNO='{vdata.PARTNO}'"); + else Apply = false; + } + if (VAR.BOOL[eVarBool.Opt_Job_Where_SID]) + { + if (vdata.SID_Trust && vdata.SID.isEmpty() == false) wheres.Add($"SID='{vdata.SID}'"); + else Apply = false; + } + if (VAR.BOOL[eVarBool.Opt_Job_Where_VLOT]) + { + if (vdata.VLOT_Trust && vdata.VLOT.isEmpty() == false) wheres.Add($"VenderLot='{vdata.VLOT}'"); + else Apply = false; + } + + //if query data . no error + if (Apply && fields.Count > 0 && wheres.Count > 0) + { + PUB.log.Add($"DATABAES : RESULT QUERY"); + + var SQL = "select top 1 " + string.Join(",", fields) + + " from Component_Reel_Result WITH(NOLOCK) " + + $" where mc = '{AR.SETTING.Data.McName}'" + + $" and prnattach = 1 and stime >= '{DateTime.Now.AddHours(-3).ToString("yyyy-MM-dd HH:mm:ss")}'" + + $" and " + string.Join(" and ", wheres) + + $" order by wdate desc"; + + // var SQLC = "select count(*) " + + //" from Component_Reel_Result WITH(NOLOCK) " + + //$" where mc = '{AR.SETTING.Data.McName}'" + + //$" and prnattach = 1 and stime >= '{DateTime.Now.AddHours(-3).ToString("yyyy-MM-dd HH:mm:ss")}'" + + //$" and " + string.Join(" and ", wheres) + + //$" order by wdate desc"; + + var CS = Properties.Settings.Default.CS; + var CN = new System.Data.SqlClient.SqlConnection(CS); + var CMD = new System.Data.SqlClient.SqlCommand(SQL, CN); + if (CN.State == System.Data.ConnectionState.Closed) CN.Open(); + + var DAR = CMD.ExecuteReader(); + while (DAR.Read()) + { + //loop select columns + for (int i = 0; i < fields.Count; i++) + { + var colName = fields[i]; + var v = DAR[colName]; + if (v != null) + { + var vStr = v.ToString().RemoveNoneASCII().Trim(); + if (vStr.isEmpty()) continue; + + //O_Trust == false)) fields.Add("PartNo"); + //ields.Add("PrintPosition"); + //ta.VNAME.isEmpty())) fields.Add("VenderName"); + //Empty())) fields.Add("SID"); + + //value is not empty + if (colName == "CUSTCODE") + { + PUB.log.Add($"JUP [{colName}] {vdata.CUSTCODE}=>{vStr}"); + vdata.CUSTCODE = vStr; + NewBarcodeUpdated = true; + } + else if (colName == "PARTNO") + { + PUB.log.Add($"JUP [{colName}] {vdata.PARTNO}=>{vStr}"); + vdata.PARTNO = vStr; + vdata.PARTNO_Trust = true; + NewBarcodeUpdated = true; + } + else if (colName == "POS") + { + PUB.log.Add($"JUP [{colName}] {vdata.PrintPositionData}=>{vStr}"); + vdata.PrintPositionData = vStr; + vdata.PrintPositionCheck = true; + NewBarcodeUpdated = true; + } + else if (colName == "VNAME") + { + PUB.log.Add($"JUP [{colName}] {vdata.VNAME}=>{vStr}"); + vdata.VNAME = vStr; + vdata.VNAME_Trust = true; + NewBarcodeUpdated = true; + } + else if (colName == "VenderLot") + { + PUB.log.Add($"JUP [{colName}] {vdata.VLOT}=>{vStr}"); + vdata.VLOT = vStr; + vdata.VLOT_Trust = true; + NewBarcodeUpdated = true; + } + else if (colName == "SID") + { + PUB.log.Add($"JUP [{colName}] {vdata.SID}=>{vStr}"); + vdata.SID = vStr; + vdata.SID_Trust = true; + NewBarcodeUpdated = true; + } + } + } + } + DAR.Close(); + + CMD.Dispose(); + if (CN.State == System.Data.ConnectionState.Open) CN.Close(); + CN.Dispose(); + } + } + + if (PUB.sm.Step == eSMStep.RUN) + { + var CVMode = VAR.BOOL[eVarBool.Use_Conveyor]; + if (itemC.VisionData.VNAME.isEmpty() == false && + itemC.VisionData.VLOT.isEmpty() == false && + itemC.VisionData.SID.Length == 9 && + itemC.VisionData.MFGDATE.isEmpty() == false && + (itemC.VisionData.PARTNO.isEmpty() == false) && + itemC.VisionData.BATCH.isEmpty() == false && + itemC.VisionData.RID.isEmpty() == false) + { + //모든값이 입력되어 있다면 조건 체크후 진행할 수 있도록 한다 + CheckDataComplte(itemC, "SPS-BARCODEPROCESS", false); //2206211400 + } + //CheckDataComplte(PUB.Result.ItemDataC, "SPS-BARCODEPROCESS"); + } + + //바코드 처리 여부 변경 + if (vdata.BarcodeTouched == true && NewBarcodeUpdated == false) + { + vdata.BarcodeTouched = false; + var a = PUB.Result.ItemDataC.VisionData.BarcodeTouched; + } + + + } + + } +} diff --git a/Handler/Project/RunCode/StateMachine/_SPS_RecvQRProcess.cs b/Handler/Project/RunCode/StateMachine/_SPS_RecvQRProcess.cs new file mode 100644 index 0000000..9a947a5 --- /dev/null +++ b/Handler/Project/RunCode/StateMachine/_SPS_RecvQRProcess.cs @@ -0,0 +1,149 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text.RegularExpressions; + +namespace Project +{ + public partial class FMain + { + bool RecvQRProcess(List qrdatas, eWorkPort vIdx) + { + //데이터가없으면 처리하지 않는다. + if (qrdatas == null || qrdatas.Count < 1) return false; + + bool FindData = false; + var idata = vIdx == eWorkPort.Left ? PUB.Result.ItemDataL : PUB.Result.ItemDataR; + + //표준바코드라면 그 값을 표시해준다 + var patterns = PUB.Result.BCDPattern; + + foreach (var datas in qrdatas) + { + //원본자료를 체크한다 + if (datas.Equals(idata.VisionData.PrintQRData)) + { + //인쇄한 자료와 동일한 자료이다 + FindData = true; + } + + //표준 바코드 형태만 취한다 + var pats = patterns.Where(t => t.IsAmkStd && t.IsEnable).OrderBy(t => t.Seq).ToList(); + if (pats.Any()) + { + //패턴을 확인하여 값을 표시해준다 + //var ValueApplyCount = 0; + foreach (var pt in pats) + { + var regx = new Regex(pt.Pattern, RegexOptions.IgnoreCase, new TimeSpan(0, 0, 10)); + if (regx.IsMatch(datas)) //패턴이 일치하다면 이것만 사용한다 + { + //find data + var matchs = regx.Matches(datas); + foreach (System.Text.RegularExpressions.Match mat in matchs) + { + foreach (var matchdata in pt.Groups) + { + if (matchdata.GroupNo <= mat.Groups.Count) + { + var data = mat.Groups[matchdata.GroupNo]; + switch (matchdata.TargetPos.ToUpper()) + { + case "SID": + idata.VisionData.SID2 = data.Value; + break; + case "RID": + idata.VisionData.RID2 = data.Value; + break; + case "VLOT": + idata.VisionData.VLOT2 = data.Value; + break; + case "VNAME": + idata.VisionData.VNAME2 = data.Value; + break; + case "MFG": + idata.VisionData.MFGDATE2 = data.Value; + break; + case "QTY": + idata.VisionData.QTY2 = data.Value; + break; + case "PART": + idata.VisionData.PARTNO2 = data.Value; + break; + } + } + } + } + break; + } + } + } + + + + + + + + + //var bcdData = new StdLabelPrint.CAmkorSTDBarcode(datas); + //PUB.Result.ItemData[vIdx].VisionData.QTY2 = bcdData.QTY.ToString(); + //PUB.Result.ItemData[vIdx].VisionData.RID2 = bcdData.RID; + //PUB.Result.ItemData[vIdx].VisionData.SID2 = bcdData.SID; + //PUB.Result.ItemData[vIdx].VisionData.VLOT2 = bcdData.VLOT; + //PUB.Result.ItemData[vIdx].VisionData.VNAME2 = bcdData.VENDERNAME; + //PUB.Result.ItemData[vIdx].VisionData.MFGDATE2 = bcdData.MFGDate;//.ToString("yyyyMMdd"); + //PUB.Result.ItemData[vIdx].VisionData.PARTNO2 = bcdData.PARTNO; + //PUB.Result.ItemData[vIdx].VisionData.Ready = true; + ////Pub.Result.ItemData[vIdx].VisionData.ETime = DateTime.Now; + ////Pub.Result.ItemData[vIdx].VisionData.Angle = 5; + //PUB.Result.ItemData[vIdx].VisionData.Complete = true; + //PUB.log.Add("BARCODE", $"{vIdx}바코드 읽기 성공 ID:{bcdData.RID},QTY:{bcdData.QTY}"); + + ////데이터를 읽었으며, 검증기능이 켜져있다면 검증을한다 + //if (FindData) break; + } + + //자료는 있었지만 바코드검증이 실패된 경우이다 + //타임아웃까지 기다리지 않고 바로 오류처리를 한다. + if (FindData == true) + { + //데이터를 찾았다면 완료처리를 해준다 + idata.VisionData.Complete = true; + //PUB.Result.ItemData[vIdx].VisionData.Complete = true; + return true; + + } + + return false; + + //else + //{ + // var item = Pub.Result.ItemData[vIdx]; + // var tsGrab = DateTime.Now - Pub.GetVarTime(VAR_LIVEVIEW); + // var timeoutVision = vIdx == 1 ? COMM.SETTING.Data.Timeout_VisionProcessL : COMM.SETTING.Data.Timeout_VisionProcessU; + // if (tsGrab.TotalMilliseconds >= timeoutVision) + // { + // //다음 바코드가 있다면 추가 진행을 위해서 남겨준다 + // _SM_SAVEIMAGE(vIdx, DateTime.Now, "Images(QRValid)"); + + + // WS_Send((idx == 0 ? 0 : 1), Pub.wsL, Pub.Result.ItemData[idx].guid, "OFF"); + + + // var barcodepos = vIdx == 0 ? "LEFT" : "RIGHT"; + // Pub.log.AddE("(" + barcodepos + ")바코드를 검증했지만 일치하지 않습니다"); + // Pub.Result.SetResultMessage(eResult.OPERATION, eECode.BARCODEVALIDERR, eNextStep.pause, + // vIdx, Pub.Result.ItemData[vIdx].VisionData.RID, Pub.Result.ItemData[vIdx].VisionData.RID2, + // Pub.Result.ItemData[vIdx].VisionData.QTY, Pub.Result.ItemData[vIdx].VisionData.QTY2, + // Pub.Result.ItemData[vIdx].VisionData.SID, Pub.Result.ItemData[vIdx].VisionData.SID2, + // Pub.Result.ItemData[vIdx].VisionData.MFGDATE, Pub.Result.ItemData[vIdx].VisionData.MFGDATE2, + // barcodepos); + // return; + // } + //} + } + + } +} diff --git a/Handler/Project/RunCode/Step/_STEP_FINISH.cs b/Handler/Project/RunCode/Step/_STEP_FINISH.cs new file mode 100644 index 0000000..c444369 --- /dev/null +++ b/Handler/Project/RunCode/Step/_STEP_FINISH.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using AR; + +namespace Project +{ + public partial class FMain + { + + public void _STEP_FINISH_START(eSMStep step) + { + //포트1번을 아래로 이동한다(모든포트를 내린다) + DIO.SetPortMotor(1, eMotDir.CCW, true, "FINISH"); //210326 + + var cvMODE = VAR.BOOL[eVarBool.Use_Conveyor]; + if(cvMODE==false) + { + if (AR.SETTING.Data.Disable_Left == false) DIO.SetPortMotor(0, eMotDir.CCW, true, "FINISH"); //210326 + if (AR.SETTING.Data.Disable_Right == false) DIO.SetPortMotor(2, eMotDir.CCW, true, "FINISH"); //210326 + } + + //picker move to center + if (DIO.GetIOInput(eDIName.PICKER_SAFE) == false) + { + var PosX = MOT.GetPXPos(ePXLoc.PICKON); + MOT.Move(PosX); + } + + PUB.Result.JobEndTime = DateTime.Now; + + //컨베어OFF + DIO.SetOutput(eDOName.LEFT_CONV, false); + DIO.SetOutput(eDOName.RIGHT_CONV, false); + + DIO.SetBuzzer(true, AR.SETTING.Data.Force_JobEndBuzzer); + PUB.log.AddI("작업이 완료되었습니다"); + needShowSummary = true; + } + + public StepResult _STEP_FINISH(eSMStep step, TimeSpan stepTime, TimeSpan seqTime) + { + return StepResult.Wait; + } + + } +} diff --git a/Handler/Project/RunCode/Step/_STEP_HOME_CONFIRM.cs b/Handler/Project/RunCode/Step/_STEP_HOME_CONFIRM.cs new file mode 100644 index 0000000..2efe429 --- /dev/null +++ b/Handler/Project/RunCode/Step/_STEP_HOME_CONFIRM.cs @@ -0,0 +1,150 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using AR; +namespace Project +{ + public partial class FMain + { + public void _STEP_HOME_CONFIRM_START(eSMStep step) + { + PUB.sm.seq.Clear(step); + } + + public StepResult _STEP_HOME_CONFIRM(eSMStep step, TimeSpan stepTime, TimeSpan seqTime) + { + byte idx = 1; + var cmdIndex = step; + if (PUB.sm.seq.Get(cmdIndex) < idx) PUB.sm.seq.Set(cmdIndex, idx); + + //********************* + //** 하드웨어 조건 확인 + //********************* + if (CheckHomeProcess_HW_Available(false) == false) + { + return StepResult.Error; + } + + // 전체 홈 시간을 체크한다. + if (stepTime.TotalSeconds >= AR.SETTING.Data.Timeout_HomeSearch) + { + PUB.Result.SetResultMessage(eResult.TIMEOUT, eECode.HOME_TIMEOUT, eNextStep.NOTHING, AR.SETTING.Data.Timeout_HomeSearch); //, eECode.(eResult.HomeTimeout,msg ,false); + return StepResult.Error; + } + + + //모든축의 완료여부 확인 + if (PUB.sm.seq.Get(step) == idx++) + { + //모든축이 완료되었다면 완료처리를 한다. + if ( + PUB.mot.IsHomeSet((short)eAxis.PX_PICK) && + PUB.mot.IsHomeSet((short)eAxis.PZ_PICK) && + PUB.mot.IsHomeSet((short)eAxis.Z_THETA) && + PUB.mot.IsHomeSet((short)eAxis.PL_MOVE) && + PUB.mot.IsHomeSet((short)eAxis.PR_MOVE) && + PUB.mot.IsHomeSet((short)eAxis.PL_UPDN) && + PUB.mot.IsHomeSet((short)eAxis.PR_UPDN)) + { + //완료처리 + hmi1.Scean = UIControl.HMI.eScean.Nomal; + PUB.sm.seq.Update(cmdIndex); + } + return StepResult.Wait; + } + + + //X축을 안전위치로 보낸다 + if (PUB.sm.seq.Get(step) == idx++) + { + var Pos = MOT.GetPXPos(ePXLoc.PICKON); + Pos.Speed = 200; + if (MOT.CheckMotionPos(seqTime, Pos, "HOME_SEARCH", false) == false) return StepResult.Wait; + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + //자재를 들고 있는가(왼쪽) + if (PUB.sm.seq.Get(step) == idx++) + { + if (DIO.isVacOKL() > 0) + { + //로더에 다시 놓아야 한다 + var Pos = MOT.GetPXPos(ePXLoc.PICKON); + if (MOT.CheckMotionPos(seqTime, Pos, "#6") == false) return 0; + + //피커의Z축은 가져오는 위치에서 +10mm 에서 처리한다 + var PosZ = MOT.GetPZPos(ePZLoc.PICKON); + PosZ.Position -= 60; + + //theta 는 0으로 원복한다 + if (MOT.CheckMotionPos(eAxis.Z_THETA, seqTime, 0, 400, 1000, 1000, "QUICK") == false) return 0; + if (MOT.CheckMotionPos(seqTime, PosZ, "QUICK") == false) return 0; + + //진공끈다(진공이꺼지면 감지 센서도 같이 꺼진다 - 이 프로젝트에는 감지 센서가 없고 , 출력센서를 그대로 감지로 이용한다) + DIO.SetPickerVac(false, true); + + //로더의 얼라인을 해제해준다. + hmi1.arVar_Port[1].AlignReset();// = 0; loader1.arVar_Port[1].errorCount = 0; + } + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + + //피커 Z축 정렬 후 Y축을 준비위치로 옮긴다 + if (PUB.sm.seq.Get(step) == idx++) + { + var PosZ = MOT.GetPZPos(ePZLoc.READY); + if (MOT.CheckMotionPos(seqTime, PosZ, "#7") == false) return StepResult.Wait; + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + //중앙포트(로더)를 아래로 내림 + if (PUB.sm.seq.Get(step) == idx++) + { + //if (DIO.GetIOInput(eDIName.PORTC_LIM_UP) == true) + DIO.SetPortMotor(1, eMotDir.CCW, true, "FINISH", true); //210326 + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + //연관플래그 소거 + if (PUB.sm.seq.Get(step) == idx++) + { + //진공상태를 초기화 해준다. + DIO.SetPrintLVac(ePrintVac.off, true); + DIO.SetPrintRVac(ePrintVac.off, true); + + DIO.SetOutput(eDOName.PRINTL_AIRON, false); + DIO.SetOutput(eDOName.PRINTR_AIRON, false); + + PUB.Result.Clear("home"); + FlagClear(false); + + //트리거 OFF작업 + WS_Send(eWorkPort.Left, PUB.wsL, "", "OFF",""); + WS_Send(eWorkPort.Right, PUB.wsR, "", "OFF",""); + + //컨베어off + DIO.SetOutput(eDOName.LEFT_CONV, false); + DIO.SetOutput(eDOName.RIGHT_CONV, false); + + if (PUB.keyenceF != null && PUB.keyenceF.IsConnect) + PUB.keyenceF.Trigger(false); + if (PUB.keyenceR != null && PUB.keyenceR.IsConnect) + PUB.keyenceR.Trigger(false); + + + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + PUB.sm.SetNewStep(eSMStep.IDLE); + return StepResult.Complete; + } + } +} diff --git a/Handler/Project/RunCode/Step/_STEP_HOME_DELAY.cs b/Handler/Project/RunCode/Step/_STEP_HOME_DELAY.cs new file mode 100644 index 0000000..1345488 --- /dev/null +++ b/Handler/Project/RunCode/Step/_STEP_HOME_DELAY.cs @@ -0,0 +1,55 @@ +using AR; +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; + +namespace Project +{ + public partial class FMain + { + + public void _STEP_HOME_DELAY_START(eSMStep step) + { + //각 파트의 초기 값을 설정해준다. + DIO.SetBuzzer(false); + + //홈이완료되었으므로 3초정도 기다려준다. + PUB.log.AddAT("홈 완료 확정을 위한 타이머 시작"); + HomeSuccessTime = DateTime.Now; + } + + public StepResult _STEP_HOME_DELAY(eSMStep step, TimeSpan stepTime, TimeSpan seqTime) + { + //********************* + //** 하드웨어 조건 확인 + //********************* + if (CheckHomeProcess_HW_Available(false) == false) + { + return StepResult.Error; + } + + var tsHome = DateTime.Now - HomeSuccessTime; + if (tsHome.TotalSeconds >= 3.0) + { + if (PUB.mot.HasMoving == false) + { + //모든축의 위치를 0으로 한다 + //Pub.mot.ClearPosition(); + + //각 파트의 초기 값을 설정해준다. + DIO.SetBuzzer(false); + + PUB.flag.set(eVarBool.FG_USERSTEP, false, "SM_HOME"); + PUB.log.AddI("홈 작업 완료로 인해 홈 검증 코드로 이동함"); + + HomeChkTime = DateTime.Now; + PUB.sm.SetNewStep(eSMStep.HOME_CONFIRM); + } + } + return StepResult.Wait; + } + + } +} diff --git a/Handler/Project/RunCode/Step/_STEP_HOME_FULL.cs b/Handler/Project/RunCode/Step/_STEP_HOME_FULL.cs new file mode 100644 index 0000000..79a8a64 --- /dev/null +++ b/Handler/Project/RunCode/Step/_STEP_HOME_FULL.cs @@ -0,0 +1,564 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using Project.Commands; +using AR; +namespace Project +{ + public partial class FMain + { + public void _STEP_HOME_FULL_START(eSMStep step) + { + //ClearBarcode(); + //Pub.popup.needClose = true; // Pub.popup.CloseAll(); + + //181225 + if (PUB.dio.IsInit) + DIO.SetBuzzer(false); + + if (PUB.mot.IsInit) + { + //알람클리어작업 + if (PUB.mot.HasServoAlarm) + { + PUB.mot.SetAlarmClearOn(); + System.Threading.Thread.Sleep(200); + PUB.mot.SetAlarmClearOff(); + } + } + + HomeSuccessTime = DateTime.Parse("1982-11-23"); + + + //홈모드로 전환 + hmi1.Scean = UIControl.HMI.eScean.MotHome; + hmi1.arHomeProgress[0] = 0; + hmi1.arHomeProgress[1] = 0; + hmi1.arHomeProgress[2] = 0; + hmi1.arHomeProgress[3] = 0; + hmi1.arHomeProgress[4] = 0; + hmi1.arHomeProgress[5] = 0; + hmi1.arHomeProgress[6] = 0; + + //실린더 상태 복귀 + DIO.SetOutput(eDOName.PRINTL_FWD, false); + DIO.SetOutput(eDOName.PRINTR_FWD, false); + DIO.SetOutput(eDOName.L_CYLDN, false); + DIO.SetOutput(eDOName.R_CYLDN, false); + } + public StepResult _STEP_HOME_FULL(eSMStep step, TimeSpan stepTime, TimeSpan seqTime) + { + //전체 홈 시간을 체크한다. + if (stepTime.TotalSeconds >= AR.SETTING.Data.Timeout_HomeSearch) + { + PUB.Result.SetResultMessage(eResult.TIMEOUT, eECode.HOME_TIMEOUT, eNextStep.NOTHING, AR.SETTING.Data.Timeout_HomeSearch); //, eECode.(eResult.HomeTimeout,msg ,false); + return StepResult.Error; + } + + //********************* + //** 하드웨어 조건 확인 + //********************* + if (CheckHomeProcess_HW_Available(false) == false) + { + + return StepResult.Error; + } + + + int idx = 1; + var cmdIndex = step; + + //Check X Safty Area + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + //안전위치 센서가 안들어와잇으면 오류 처리한다 + if (DIO.GetIOInput(eDIName.PICKER_SAFE) == false) + { + PUB.Result.SetResultMessage(eResult.MOTION, + eECode.MOTX_SAFETY, + eNextStep.ERROR, + eAxis.PL_MOVE, PUB.mot.ErrorMessage); + return StepResult.Error; + } + + + //포트 모두내리기(221013 - 박형철) + if (VAR.BOOL[eVarBool.Use_Conveyor] == false && AR.SETTING.Data.Disable_HomePortDown == false) + { + DIO.SetPortMotor(0, eMotDir.CCW, true, "HOME"); + DIO.SetPortMotor(1, eMotDir.CCW, true, "HOME"); + DIO.SetPortMotor(2, eMotDir.CCW, true, "HOME"); + } + + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + + + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + //홈 설정여부플래그 OFF + for (int i = 0; i < PUB.mot.DeviceCount; i++) + { + if (PUB.mot.IsUse(i) == false) continue; + PUB.mot.SetHomeSet(i, false); + } + + //부저 OFF + DIO.SetBuzzer(false); + + //프린터부착헤드 후진 + if (DIO.GetIOInput(eDIName.L_PICK_BW) == false) + DIO.SetOutput(eDOName.PRINTL_FWD, false); + + if (DIO.GetIOInput(eDIName.R_PICK_BW) == false) + DIO.SetOutput(eDOName.PRINTR_FWD, false); + + + if (DIO.GetIOInput(eDIName.L_CYLUP) == false) + DIO.SetOutput(eDOName.L_CYLDN, false); + + if (DIO.GetIOInput(eDIName.R_CYLUP) == false) + DIO.SetOutput(eDOName.R_CYLDN, false); + + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + //피커실린더 상승 + if (PUB.sm.seq.Get(step) == idx++) + { + DIO.SetOutput(eDOName.L_CYLDN, false); + DIO.SetOutput(eDOName.R_CYLDN, false); + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + if (PUB.sm.seq.Get(step) == idx++) + { + if (AR.SETTING.Data.Enable_PickerCylinder) + { + + if (DIO.checkDigitalO(eDIName.L_CYLUP, seqTime, true, timeoutcode: eECode.PICKER_LCYL_NOUP) != eNormalResult.True) return StepResult.Wait; + if (DIO.checkDigitalO(eDIName.R_CYLUP, seqTime, true, timeoutcode: eECode.PICKER_RCYL_NOUP) != eNormalResult.True) return StepResult.Wait; + } + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + //프린터 부착헤드 후진 검사 + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + //프린터부착헤드 후진 + if (DIO.GetIOInput(eDIName.L_PICK_BW) == false) + { + if (stepTime.TotalSeconds > 5) + { + PUB.Result.SetResultMessage(eResult.MOTION, eECode.PRINTER_LPICKER_NOBW, eNextStep.PAUSE); + } + return StepResult.Wait; + } + if (DIO.GetIOInput(eDIName.R_PICK_BW) == false) + { + if (stepTime.TotalSeconds > 5) + { + PUB.Result.SetResultMessage(eResult.MOTION, eECode.PRINTER_RPICKER_NOBW, eNextStep.PAUSE); + } + return StepResult.Wait; + } + + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + //프린터 부착헤드 후진 검사 + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + //프린터부착헤드 후진 + if (AR.SETTING.Data.Enable_PickerCylinder) + { + if (DIO.GetIOInput(eDIName.L_CYLUP) == false) + { + if (stepTime.TotalSeconds > 5) + { + PUB.Result.SetResultMessage(eResult.MOTION, eECode.PRINTER_LPRINTER_NOUP, eNextStep.PAUSE); + } + return StepResult.Wait; + } + if (DIO.GetIOInput(eDIName.R_CYLUP) == false) + { + if (stepTime.TotalSeconds > 5) + { + PUB.Result.SetResultMessage(eResult.MOTION, eECode.PRINTER_RPRINTER_NOUP, eNextStep.PAUSE); + } + return StepResult.Wait; + } + } + else + { + //전진이 들어와 있다면 오류 로한다 + if (DIO.GetIOInput(eDIName.L_CYLDN)) + { + PUB.Result.SetResultMessage(eResult.MOTION, eECode.PRINTER_LPRINTER_NOUP, eNextStep.PAUSE); + return StepResult.Wait; + } + if (DIO.GetIOInput(eDIName.R_CYLDN)) + { + PUB.Result.SetResultMessage(eResult.MOTION, eECode.PRINTER_RPRINTER_NOUP, eNextStep.PAUSE); + return StepResult.Wait; + } + } + + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + + + //피커의 Z축을 우선 진행 + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + var rlt1 = MOT.Home("RUN_SAFTY_HOME", eAxis.PZ_PICK); + if (rlt1 == false) + { + PUB.Result.SetResultMessage(eResult.MOTION, + eECode.MOT_HSEARCH, + eNextStep.ERROR, + eAxis.PL_UPDN, PUB.mot.ErrorMessage); + return StepResult.Error; + } + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + //Z축 안전위치 대기 + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (PUB.mot.IsHomeSet((short)eAxis.PZ_PICK) == false && PUB.mot.IsLimitN((short)eAxis.PZ_PICK) == false && PUB.mot.IsOrg((short)eAxis.PZ_PICK) == false) + { + System.Threading.Thread.Sleep(10); + return StepResult.Wait; + } + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + //프린터의 Z축을 먼저 한다 221013 + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + var rlt1 = MOT.Home("RUN_SAFTY_HOME", eAxis.PL_UPDN); + var rlt2 = MOT.Home("RUN_SAFTY_HOME", eAxis.PR_UPDN); + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + //Z축 안전위치 대기 + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (PUB.mot.IsHomeSet((short)eAxis.PL_UPDN) == false && PUB.mot.IsLimitN((short)eAxis.PL_UPDN) == false && PUB.mot.IsOrg((short)eAxis.PL_UPDN) == false) + { + System.Threading.Thread.Sleep(10); + return StepResult.Wait; + } + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + + //Z축 안전위치 대기 + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (PUB.mot.IsHomeSet((short)eAxis.PR_UPDN) == false && PUB.mot.IsLimitN((short)eAxis.PR_UPDN) == false && PUB.mot.IsOrg((short)eAxis.PR_UPDN) == false) + { + System.Threading.Thread.Sleep(10); + return StepResult.Wait; + } + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + + + //각 프린터의 Y,Z 축의 홈을 진행한다. + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + //유효성 검사를 하지 않는다.. 하게되면 오류남 201208 + var rlt1 = MOT.Home("RUN_SAFTY_HOME", eAxis.PL_MOVE, false); + var rlt2 = MOT.Home("RUN_SAFTY_HOME", eAxis.PR_MOVE, false); + //var rlt3 = MOT.Home("RUN_SAFTY_HOME", eAxis.PL_UPDN, false); + //var rlt4 = MOT.Home("RUN_SAFTY_HOME", eAxis.PR_UPDN, false); + if (rlt1 == false) + { + PUB.Result.SetResultMessage(eResult.MOTION, + eECode.MOT_HSEARCH, + eNextStep.ERROR, + eAxis.PL_MOVE, PUB.mot.ErrorMessage); + return StepResult.Error; + } + if (rlt2 == false) + { + PUB.Result.SetResultMessage(eResult.MOTION, + eECode.MOT_HSEARCH, + eNextStep.ERROR, + eAxis.PR_MOVE, PUB.mot.ErrorMessage); + return StepResult.Error; + } + //if (rlt3 == false) + //{ + // PUB.Result.SetResultMessage(eResult.MOTION, + // eECode.MOT_HSEARCH, + // eNextStep.ERROR, + // eAxis.PL_UPDN, PUB.mot.ErrorMessage); + // return StepResult.Error; + //} + //if (rlt4 == false) + //{ + // PUB.Result.SetResultMessage(eResult.MOTION, + // eECode.MOT_HSEARCH, + // eNextStep.ERROR, + // eAxis.PR_UPDN, PUB.mot.ErrorMessage); + // return StepResult.Error; + //} + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + //프린터축의 Y,Z축이 완료되기를 기다린다. + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + if (PUB.mot.IsHomeSet((short)eAxis.PL_MOVE) && + PUB.mot.IsHomeSet((short)eAxis.PR_MOVE) && + PUB.mot.IsHomeSet((short)eAxis.PL_UPDN) && + PUB.mot.IsHomeSet((short)eAxis.PR_UPDN)) + { + //현재위치를 0으로 설정한다. + PUB.mot.ClearPosition((int)eAxis.PL_MOVE); + PUB.mot.ClearPosition((int)eAxis.PR_MOVE); + + //var p1 = MOT.GetLMPos(eLMLoc.READY); + //MOT.Move(eAxis.PL_MOVE, p1.Position, 200, 500, false, false, false); + + //var p2 = MOT.GetRMPos(eRMLoc.READY); + //p2.Speed = 100; + //MOT.Move(eAxis.PR_MOVE, p2.Position, 200, 500, false, false, false); + + PUB.sm.seq.Update(cmdIndex); + } + return StepResult.Wait; + } + + //실린더를OFF한다 - 210207 + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + DIO.SetOutput(eDOName.PRINTL_FWD, false); + DIO.SetOutput(eDOName.PRINTR_FWD, false); + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + //실린더 OFF 확인 - 210207 + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + //IO가 완료되지 안항ㅆ다면 대기한다 + if (DIO.checkDigitalO(eDIName.L_PICK_BW, seqTime, true) != eNormalResult.True) return StepResult.Wait; + if (DIO.checkDigitalO(eDIName.R_PICK_BW, seqTime, true) != eNormalResult.True) return StepResult.Wait; + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + + + //프린터 move 축 안전지대로이동 + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + var PosLM = MOT.GetLMPos(eLMLoc.READY); + var PosRM = MOT.GetRMPos(eRMLoc.READY); + PosLM.Speed = 200; + PosRM.Speed = 200; + MOT.Move((eAxis)PosLM.Axis, PosLM.Position, PosLM.Speed, PosLM.Acc, false, false, false); + MOT.Move((eAxis)PosRM.Axis, PosRM.Position, PosRM.Speed, PosRM.Acc, false, false, false); + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + //프린터 move 축 안전지대로이동 + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + var PosLM = MOT.GetLMPos(eLMLoc.READY); + var PosRM = MOT.GetRMPos(eRMLoc.READY); + PosLM.Speed = 250; + PosRM.Speed = 250; + if (MOT.CheckMotionPos(seqTime, PosLM, "MOT_HOME", false) == false) return StepResult.Wait; + if (MOT.CheckMotionPos(seqTime, PosRM, "MOT_HOME", false) == false) return StepResult.Wait; + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + //Theta 홈 + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + //회전축은 잡지 않는다 + PUB.mot.SetHomeSet((int)eAxis.Z_THETA, true); + PUB.mot.ClearPosition((int)eAxis.Z_THETA); + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + //피커-X축 홈 + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + var rlt1 = MOT.Home("RUN_SAFTY_HOME", eAxis.PX_PICK, false); + if (rlt1 == false) + { + PUB.Result.SetResultMessage(eResult.MOTION, + eECode.MOT_HSEARCH, + eNextStep.ERROR, + eAxis.PX_PICK, PUB.mot.ErrorMessage); + return StepResult.Error; + } + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + //모든축의 완료여부 확인 + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + //모든축이 완료되었다면 완료처리를 한다. + if (PUB.mot.IsHomeSet((short)eAxis.PX_PICK)) + { + //완료처리 + PUB.mot.ClearPosition((int)eAxis.PX_PICK); + PUB.sm.seq.Update(cmdIndex); + } + return StepResult.Wait; + } + + //X축 값 초기화확인 + if (PUB.sm.seq.Get(cmdIndex) == idx++) + { + //모든축이 완료되었다면 완료처리를 한다. + var ts = PUB.sm.seq.GetTime(cmdIndex); + if (ts.TotalSeconds >= 5) + { + PUB.Result.SetResultMessage(eResult.MOTION, + eECode.MOT_HSEARCH, + eNextStep.ERROR, + eAxis.PX_PICK, PUB.mot.ErrorMessage); + return StepResult.Error; + } + else + { + var XPos = PUB.mot.GetActPos((int)eAxis.PX_PICK); + if (Math.Abs(XPos) <= 0.1 && PUB.mot.IsMotion((int)eAxis.PX_PICK) == false) + { + PUB.sm.seq.Update(cmdIndex); + } + } + return StepResult.Wait; + } + + //완료됨 + if (PUB.sm.seq.Get(step) == idx++) + { + //진공상태를 초기화 해준다. + DIO.SetPrintLVac(ePrintVac.off, true); + DIO.SetPrintRVac(ePrintVac.off, true); + DIO.SetOutput(eDOName.PRINTL_AIRON, false); + DIO.SetOutput(eDOName.PRINTR_AIRON, false); + + FlagClear(true); + PUB.sm.SetNewStep(eSMStep.HOME_DELAY); + return StepResult.Complete; + } + + return StepResult.Complete; + } + + void FlagClear(bool ClearItemOn) + { + PUB.log.AddAT($"플래그초기화({ClearItemOn})"); + //연관플래그 소거 + if (ClearItemOn) + { + PUB.flag.set(eVarBool.FG_PK_ITEMON, false, "POSRESET"); + PUB.flag.set(eVarBool.FG_PL_ITEMON, false, "POSRESET"); + PUB.flag.set(eVarBool.FG_PR_ITEMON, false, "POSRESET"); + PUB.flag.set(eVarBool.FG_PORTL_ITEMON, false, "POSRESET"); + PUB.flag.set(eVarBool.FG_PORTR_ITEMON, false, "POSRESET"); + } + + + PUB.flag.set(eVarBool.FG_OK_PRINTL, false, "POSRESET"); + PUB.flag.set(eVarBool.FG_OK_PRINTR, false, "POSRESET"); + PUB.flag.set(eVarBool.FG_RUN_PRINTL, false, "POSRESET"); + PUB.flag.set(eVarBool.FG_RUN_PRINTR, false, "POSRESET"); + + PUB.flag.set(eVarBool.FG_RDY_PORT_PC, false, "POSRESET"); + PUB.flag.set(eVarBool.FG_RDY_PORT_PL, false, "POSRESET"); + PUB.flag.set(eVarBool.FG_RDY_PORT_PR, false, "POSRESET"); + + PUB.flag.set(eVarBool.FG_RDY_PX_LPICKOF, false, "POSRESET"); + PUB.flag.set(eVarBool.FG_RDY_PX_RPICKOF, false, "POSRESET"); + PUB.flag.set(eVarBool.FG_RDY_PX_PICKONWAITL, false, "POSRESET"); + PUB.flag.set(eVarBool.FG_RDY_PX_PICKONWAITR, false, "POSRESET"); + + PUB.flag.set(eVarBool.FG_SET_DATA_PORT0, false, "POSRESET"); + PUB.flag.set(eVarBool.FG_SET_DATA_PORT2, false, "POSRESET"); + //PUB.flag.set(eVarBool.SCR_JOBFINISH, false, "POSRESET"); + + PUB.flag.set(eVarBool.FG_WAIT_PAPERDETECTL, false, "POSRESET"); + PUB.flag.set(eVarBool.FG_WAIT_PAPERDETECTR, false, "POSRESET"); + + PUB.flag.set(eVarBool.FG_END_VISIONL, false, "POSRESET"); + PUB.flag.set(eVarBool.FG_END_VISIONR, false, "POSRESET"); + PUB.flag.set(eVarBool.FG_PRC_VISIONL, false, "POSRESET"); + PUB.flag.set(eVarBool.FG_PRC_VISIONR, false, "POSRESET"); + + PUB.flag.set(eVarBool.FG_CMD_YP_LPICKON, false, "POSRESET"); + PUB.flag.set(eVarBool.FG_CMD_YP_LPICKOF, false, "POSRESET"); + PUB.flag.set(eVarBool.FG_CMD_YP_RPICKOF, false, "POSRESET"); + PUB.flag.set(eVarBool.FG_CMD_YP_RPICKON, false, "POSRESET"); + PUB.flag.set(eVarBool.FG_RDY_PZ_LPICKOF, false, "POSRESET"); + PUB.flag.set(eVarBool.FG_RDY_PZ_RPICKOF, false, "POSRESET"); + PUB.flag.set(eVarBool.FG_RDY_PZ_PICKON, false, "POSRESET"); + + PUB.flag.set(eVarBool.FG_RUN_PLM_PICKOF, false, "POSRESET"); + PUB.flag.set(eVarBool.FG_RUN_PRM_PICKOF, false, "POSRESET"); + PUB.flag.set(eVarBool.FG_RUN_PLM_PICKON, false, "POSRESET"); + PUB.flag.set(eVarBool.FG_RUN_PRM_PICKON, false, "POSRESET"); + + PUB.flag.set(eVarBool.FG_RUN_PLZ_PICKOF, false, "POSRESET"); + PUB.flag.set(eVarBool.FG_RUN_PRZ_PICKOF, false, "POSRESET"); + PUB.flag.set(eVarBool.FG_RUN_PLZ_PICKON, false, "POSRESET"); + PUB.flag.set(eVarBool.FG_RUN_PRZ_PICKON, false, "POSRESET"); + + PUB.flag.set(eVarBool.FG_RUN_LEFT, false, "POSREST"); + PUB.flag.set(eVarBool.FG_RUN_RIGHT, false, "POSREST"); + //VAR.BOOL[eVarBool.JOB_BYPASS_LEFT] = false; + //VAR.BOOL[eVarBool.JOB_BYPASS_RIGHT] = false; + //VAR.STR[eVarString.JOB_BYPASS_SID] = string.Empty; + //VAR.STR[eVarString.JOB_TYPE] = string.Empty; + + //retry소거 230510 + VAR.BOOL[eVarBool.JOB_PickON_Retry] = false; + VAR.BOOL[eVarBool.VisionL_Retry] = false; + VAR.BOOL[eVarBool.VisionR_Retry] = false; + VAR.BOOL[eVarBool.wait_for_keyence] = false; + VAR.BOOL[eVarBool.wait_for_keyenceL] = false; + VAR.BOOL[eVarBool.wait_for_keyenceR] = false; + VAR.BOOL[eVarBool.JOB_Empty_SIDConvertInfo] = false; + + //busy 플래그 제거 + PUB.iLockCVL.set((int)eILockCV.BUSY, false, "POSREST"); + PUB.iLockCVR.set((int)eILockCV.BUSY, false, "POSREST"); + PUB.iLockCVL.set((int)eILockCV.VISION, false, "POSREST"); + PUB.iLockCVR.set((int)eILockCV.VISION, false, "POSREST"); + + VAR.I32[eVarInt32.RIGT_ITEM_COUNT] = 0; + VAR.I32[eVarInt32.LEFT_ITEM_COUNT] = 0; + } + + } +} diff --git a/Handler/Project/RunCode/Step/_STEP_HOME_QUICK.cs b/Handler/Project/RunCode/Step/_STEP_HOME_QUICK.cs new file mode 100644 index 0000000..406f669 --- /dev/null +++ b/Handler/Project/RunCode/Step/_STEP_HOME_QUICK.cs @@ -0,0 +1,215 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using Project.Commands; +using AR; + +namespace Project +{ + public partial class FMain + {//홈 맞춰 + + public void _STEP_HOME_QUICK_START(eSMStep step) + { + + + //모든 홈이 되어야 가능하다 + if (PUB.mot.IsInit && PUB.mot.HasHomeSetOff == true) + { + PUB.Result.SetResultMessage(eResult.MOTION, eECode.MOT_HSET, eNextStep.ERROR); + return; + } + + if (DIO.IsEmergencyOn() == true) + { + PUB.Result.SetResultMessage(eResult.HARDWARE, eECode.EMERGENCY, eNextStep.ERROR); + return; + } + + if (DIO.isSaftyDoorF() == false || DIO.isSaftyDoorR() == false) + { + PUB.Result.SetResultMessage(eResult.HARDWARE, eECode.DOORSAFTY, eNextStep.ERROR); + return; + } + + + //실린더 상태 복귀 + DIO.SetOutput(eDOName.PRINTL_FWD, false); + DIO.SetOutput(eDOName.PRINTR_FWD, false); + DIO.SetOutput(eDOName.L_CYLDN, false); + DIO.SetOutput(eDOName.R_CYLDN, false); + } + + CommandBuffer cmds = new CommandBuffer(); + + public StepResult _STEP_HOME_QUICK(eSMStep step, TimeSpan stepTime, TimeSpan seqTime) + { + + byte idx = 1; + var cmdIndex = eSMStep.HOME_QUICK; + if (PUB.sm.seq.Get(step) < idx) PUB.sm.seq.Set(cmdIndex, idx); + + //사용자 스텝처리가 아닌경우에만 동작 중지를 검사 한다 + //중단조건 검사는 0번 축에만 동작하게 한다 + if (PUB.flag.get(eVarBool.FG_USERSTEP) == false && CheckPauseCondition(true) == false) + { + //가동불가 조건 확인 + if (PUB.Result.ResultCode == eResult.EMERGENCY) + PUB.sm.SetNewStep(eSMStep.ERROR); + else + PUB.sm.SetNewStep(eSMStep.PAUSE); + return StepResult.Wait; + } + + //동작상태가 아니라면 처리하지 않는다. + var userStep = PUB.flag.get(eVarBool.FG_USERSTEP); + + + //********************* + //** 하드웨어 조건 확인 + //********************* + if (CheckHomeProcess_HW_Available(true) == false) + { + return StepResult.Error; + } + + //시작정보 + if (PUB.sm.seq.Get(step) == idx++) + { + //210415 + if (DIO.GetPortMotorDir(0) == eMotDir.CW) DIO.SetPortMotor(0, eMotDir.CW, false, "POSRESET"); + if (DIO.GetPortMotorDir(1) == eMotDir.CW) DIO.SetPortMotor(1, eMotDir.CW, false, "POSRESET"); + if (DIO.GetPortMotorDir(2) == eMotDir.CW) DIO.SetPortMotor(2, eMotDir.CW, false, "POSRESET"); + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + + //피커 Z축을 0으로 이동한다 + if (PUB.sm.seq.Get(step) == idx++) + { + var Pos = MOT.GetPZPos(ePZLoc.READY); + if (MOT.CheckMotionPos(seqTime, Pos, "#7") == false) return 0; + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + //피커 Y축을 안전지대로 이동한다 + if (PUB.sm.seq.Get(step) == idx++) + { + var Pos = MOT.GetPXPos(ePXLoc.PICKON); + if (MOT.CheckMotionPos(seqTime, Pos, "#7", false) == false) return 0; + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + //PRINT-Z축을 0으로이동한다 + if (PUB.sm.seq.Get(step) == idx++) + { + var spdinfo = MOT.GetLZPos(eLZLoc.READY); + MOT.Move(eAxis.PL_UPDN, spdinfo.Position, spdinfo.Speed, spdinfo.Acc, false, true, false); + + spdinfo = MOT.GetRZPos(eRZLoc.READY); + MOT.Move(eAxis.PR_UPDN, spdinfo.Position, spdinfo.Speed, spdinfo.Acc, false, true, false); + + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + + //PRINT-Z축 완료대기 + if (PUB.sm.seq.Get(step) == idx++) + { + var PosL = MOT.GetLZPos(eLZLoc.READY); + var PosR = MOT.GetRZPos(eRZLoc.READY); + if (MOT.CheckMotionPos(seqTime, PosL, "#7", false) == false) return StepResult.Wait; + if (MOT.CheckMotionPos(seqTime, PosR, "#8", false) == false) return StepResult.Wait; + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + //피커실린더 상승 + if (PUB.sm.seq.Get(step) == idx++) + { + DIO.SetOutput(eDOName.L_CYLDN, false); + DIO.SetOutput(eDOName.R_CYLDN, false); + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + if (PUB.sm.seq.Get(step) == idx++) + { + if (AR.SETTING.Data.Enable_PickerCylinder) + { + if (DIO.checkDigitalO(eDIName.L_CYLUP, seqTime, true) != eNormalResult.True) return StepResult.Wait; + if (DIO.checkDigitalO(eDIName.R_CYLUP, seqTime, true) != eNormalResult.True) return StepResult.Wait; + } + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + + //프린터부착헤드 후진 + if (PUB.sm.seq.Get(step) == idx++) + { + DIO.SetOutput(eDOName.PRINTL_FWD, false); + DIO.SetOutput(eDOName.PRINTR_FWD, false); + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + //프린터헤드후진 확인 + if (PUB.sm.seq.Get(step) == idx++) + { + if (DIO.checkDigitalO(eDIName.L_PICK_BW, seqTime, true) != eNormalResult.True) return StepResult.Wait; + if (DIO.checkDigitalO(eDIName.R_PICK_BW, seqTime, true) != eNormalResult.True) return StepResult.Wait; + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + + //프린터 Y축 이동 + if (PUB.sm.seq.Get(step) == idx++) + { + var spdinfo = MOT.GetLMPos(eLMLoc.READY); + MOT.Move(eAxis.PL_MOVE, spdinfo.Position, spdinfo.Speed, spdinfo.Acc, false, true, false); + + spdinfo = MOT.GetRMPos(eRMLoc.READY); + MOT.Move(eAxis.PR_MOVE, spdinfo.Position, spdinfo.Speed, spdinfo.Acc, false, true, false); + + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + //프린터 Y축 완료대기 + if (PUB.sm.seq.Get(step) == idx++) + { + var PosL = MOT.GetLMPos(eLMLoc.READY); + var PosR = MOT.GetRMPos(eRMLoc.READY); + if (MOT.CheckMotionPos(seqTime, PosL, "#7") == false) return 0; + if (MOT.CheckMotionPos(seqTime, PosR, "#8") == false) return 0; + PUB.sm.seq.Update(cmdIndex); + return StepResult.Wait; + } + + //연관플래그 소거 + if (PUB.sm.seq.Get(step) == idx++) + { + //진공상태를 초기화 해준다. + DIO.SetPrintLVac(ePrintVac.off, true); + DIO.SetPrintRVac(ePrintVac.off, true); + DIO.SetOutput(eDOName.PRINTL_AIRON, false); + DIO.SetOutput(eDOName.PRINTR_AIRON, false); + + FlagClear(true); + PUB.sm.SetNewStep(eSMStep.HOME_CONFIRM); + return StepResult.Wait; + } + + PUB.sm.seq.Clear(step); + PUB.sm.SetNewStep(eSMStep.HOME_CONFIRM); + return StepResult.Complete; + } + } +} diff --git a/Handler/Project/RunCode/Step/_STEP_IDLE.cs b/Handler/Project/RunCode/Step/_STEP_IDLE.cs new file mode 100644 index 0000000..2ec677e --- /dev/null +++ b/Handler/Project/RunCode/Step/_STEP_IDLE.cs @@ -0,0 +1,82 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using AR; +namespace Project +{ + public partial class FMain + { + DateTime IdleStartTime = DateTime.Now; + bool IdleSleep = false; + + public void _STEP_IDLE_START(eSMStep step) + { + PUB.flag.set(eVarBool.FG_USERSTEP, false, "SM_IDLE"); + + //lbMsgR.ProgressEnable = false; + IdleStartTime = DateTime.Now; + + //초기화완료되면 버튼을 활성화한다 + if (PUB.sm.getOldStep == eSMStep.INIT) + { + this.BeginInvoke(new Action(() => + { + panTopMenu.Enabled = true; + btStart.Enabled = true; + btStop.Enabled = true; + btReset.Enabled = true; + })); + + //Pub.sm.setNewStep(eSMStep.XMOVE); //홈을 위해서 바로 이동 모션으로 가게한다 + if (PUB.mot.HasHomeSetOff == true && DIO.GetIOInput(eDIName.PICKER_SAFE) == false) + { + //피커의 이동이 필요한 상황 + this.BeginInvoke(new Action(() => { btManage.PerformClick(); })); + } + else + { + //리셋이 필요한 상황 + if (AR.SETTING.Data.OnlineMode == true) + this.BeginInvoke(new Action(() => { btMReset.PerformClick(); })); + } + } + } + + public StepResult _STEP_IDLE(eSMStep step, TimeSpan stepTime, TimeSpan seqTime) + { + //대기상태에서 조명 자동으로 끄기 + if (IdleSleep == false && IdleStartTime.Year != 1982) + { + var ts = DateTime.Now - IdleStartTime; + if (ts.TotalMinutes > AR.SETTING.Data.AutoOffRoomLightMin) + { + PUB.log.Add("대기상태 전환으로 인해 조명을 끕니다"); + IdleSleep = true; + DIO.SetRoomLight(false); + } + } + + //자동소거기능 + if (AR.SETTING.Data.AutoDeleteDay > 0) + { + if (PUB.flag.get(eVarBool.FG_MINSPACE) == true) + { + var ts = DateTime.Now - lastDeleteTime; + if (ts.TotalSeconds > 1) + { + //파일을 찾아서 소거한다. + var delpath = System.IO.Path.Combine(AR.SETTING.Data.Path_Data, "Images"); + if (delpath != "") DeleteFile(delpath); + + lastDeleteTime = DateTime.Now; + } + } + } + + return StepResult.Wait; + + } + } +} diff --git a/Handler/Project/RunCode/Step/_STEP_INIT.cs b/Handler/Project/RunCode/Step/_STEP_INIT.cs new file mode 100644 index 0000000..c1bfdd9 --- /dev/null +++ b/Handler/Project/RunCode/Step/_STEP_INIT.cs @@ -0,0 +1,200 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Security.Cryptography; +using System.Text; +using AR; +using Microsoft.Owin.Hosting; + +namespace Project +{ + public partial class FMain + { + //Int32[] _hDevice = new Int32[] { 0, 0, 0 }; + //Int32[] _width = new Int32[] { 0, 0, 0 }; + //Int32[] _height = new Int32[] { 0, 0, 0 }; + //Int32[] _stride = new Int32[] { 0, 0, 0 }; + //Int32[] _bufferSize = new Int32[] { 0, 0, 0 }; + //Boolean[] _isCrevisOpen = new bool[] { false, false, false }; + //Boolean[] _isCrevisACQ = new bool[] { false, false, false }; + // IntPtr[] _pImage = new IntPtr[] { IntPtr.Zero, IntPtr.Zero, IntPtr.Zero }; + + public void _STEP_INIT_START(eSMStep step) + { + + int progress = 0; + var ProgressMax = 13; + Color fColor = Color.DarkViolet; + + + PUB.sm.RaiseStateProgress(++progress, "Motion Initialize", ProgressMax, fColor); System.Threading.Thread.Sleep(5); + if (PUB.mot.Init() == false) + { + PUB.log.AddE(string.Format("MOT INIT ERROR : {0}", PUB.mot.ErrorMessage)); + PUB.log.AddE("모션 초기화 오류로 잠시 후 다시 시도합니다"); + System.Threading.Thread.Sleep(1000); + if (PUB.mot.Init() == false) + { + PUB.log.AddE("모션 초기화 재시도 실패" + PUB.mot.ErrorMessage); + } + } + _SM_RUN_INIT_MOTION(); + + + PUB.sm.RaiseStateProgress(++progress, "DIO Initialize", ProgressMax, fColor); System.Threading.Thread.Sleep(5); + if (PUB.dio.Init()) + { + DIO.InitDIOSensitive(); + PUB.log.Add("DIO RUN MONITOR"); + PUB.dio.RunMonitor(); + + + //포트동작을 멈춘다 + DIO.SetPortMotor(0, eMotDir.CW, false, "init"); + DIO.SetPortMotor(1, eMotDir.CW, false, "init"); + DIO.SetPortMotor(2, eMotDir.CW, false, "init"); + } + else PUB.log.AddE(string.Format("DIO INIT ERROR : {0}", PUB.dio.ErrorMessage)); + TowerLamp.Init(PUB.dio, + DIO.Pin[eDOName.TWR_REDF].terminalno, + DIO.Pin[eDOName.TWR_GRNF].terminalno, + DIO.Pin[eDOName.TWR_YELF].terminalno); + + TowerLamp.Enable = !SETTING.Data.Disable_TowerLamp; + + PUB.sm.RaiseStateProgress(++progress, "Set DIO Names", ProgressMax, fColor); System.Threading.Thread.Sleep(5); + _SM_RUN_INIT_SETDIONAME(); + + PUB.log.AddI("모션 초기화 플래그 설정완료"); + PUB.flag.set(eVarBool.FG_INIT_MOTIO, true, "INIT"); + + //230504 + hmi1.SetDIO(PUB.dio); + hmi1.SetMOT(PUB.mot); + + //남은 공간 + PUB.sm.RaiseStateProgress(++progress, "공간 확인", ProgressMax, fColor); System.Threading.Thread.Sleep(5); + CheckFreeSpace(); //181225 + + //모델자동선택 181206 + PUB.sm.RaiseStateProgress(++progress, "이전모델 확인", ProgressMax, fColor); System.Threading.Thread.Sleep(5); + + // + if (PUB.uSetting.LastModelV != "") PUB.SelectModelV(PUB.uSetting.LastModelV, false); + var motionmodel = PUB.uSetting.LastModelM; + if (motionmodel.isEmpty()) motionmodel = PUB.Result.vModel.Motion; + if (motionmodel.ToUpper().StartsWith("CONV")) PUB.flag.set(eVarBool.Use_Conveyor, true, "load"); + else PUB.flag.set(eVarBool.Use_Conveyor, false, "load"); + PUB.SelectModelM(motionmodel, false); + + //프린터설정 + PUB.sm.RaiseStateProgress(++progress, "프린터설정", ProgressMax, fColor); System.Threading.Thread.Sleep(5); + PUB.PrinterL = new Device.SATOPrinterAPI(); + PUB.PrinterL.PortName = AR.SETTING.Data.PrintL_Port; + PUB.PrinterL.BaudRate = AR.SETTING.Data.PrintL_Baud; + + PUB.PrinterR = new Device.SATOPrinterAPI(); + PUB.PrinterR.PortName = AR.SETTING.Data.PrintR_Port; + PUB.PrinterR.BaudRate = AR.SETTING.Data.PrintR_Baud; + + PUB.flag.set(eVarBool.FG_INIT_PRINTER, true, "INIT"); + PUB.sm.RaiseStateProgress(ProgressMax, "초기화 완료", ProgressMax, Color.Gold); System.Threading.Thread.Sleep(5); + PUB.log.Add("init finish"); + + //조명 ON + DIO.SetRoomLight(true); + + + // Start OWIN host + var baseAddress = "http://*:9001"; + WebApp.Start(url: baseAddress); + PUB.log.AddI($"호스팅서비스ON : {baseAddress}"); + + } + + public StepResult _STEP_INIT(eSMStep step, TimeSpan stepTime, TimeSpan seqTime) + { + PUB.sm.SetNewStep(eSMStep.IDLE); + return StepResult.Complete; + } + + public void _SM_RUN_INIT_SETDIONAME() + { + //DIO 이름설정 + Console.WriteLine("## SET DI NAME ##"); + for (int i = 0; i < PUB.dio.GetDICount; i++) + { + var name = Enum.GetName(typeof(eDIName), i); + Console.WriteLine($"[{i}] {name}"); + PUB.dio.SetDIName(i, name); + } + Console.WriteLine("## SET DO NAME ##"); + for (int i = 0; i < PUB.dio.GetDOCount; i++) + { + var name = Enum.GetName(typeof(eDOName), i); + Console.WriteLine($"[{i}] {name}"); + PUB.dio.SetDOName(i, name); + } + + //Console.WriteLine("## SET FLAG NAME ##"); + //for (int i = 0; i < PUB.flag.Length; i++) + //{ + // var name = Enum.GetName(typeof(eFlag), i); + // PUB.flag.Name[i] = name; + // Console.WriteLine($"[{i}] {name}"); + //} + } + + private void _SM_RUN_INIT_MOTION() + { + PUB.mot.SetAlarmClearOn(); + System.Threading.Thread.Sleep(5); + PUB.mot.SetAlarmClearOff(); + + //7개의 축을 사용한다 + for (int i = 0; i < PUB.system.MotaxisCount; i++) + { + //설정파일이 있다면 불러온다 + var file = System.IO.Path.Combine(UTIL.CurrentPath, "Model", "axis" + i.ToString() + ".motaxt"); + if (System.IO.File.Exists(file) == false) + { + PUB.log.AddAT($"모션({i}) 설정파일 없음!!"); + PUB.mot.InitAxis(i, file); + } + else + { + if (PUB.mot.InitAxis((short)i, file) == false) + PUB.log.AddE("모션 설정 실패 축:" + i.ToString()); + else + PUB.log.AddI($"모션({i}) 설정 완료"); + } + } + + //EStop Disable + PUB.mot.SetEStopEnable(0, false); + PUB.mot.SetEStopEnable(1, false); + PUB.mot.SetEStopEnable(2, false); + PUB.mot.SetEStopEnable(3, false); + PUB.mot.SetEStopEnable(4, false); + PUB.mot.SetEStopEnable(5, false); + PUB.mot.SetEStopEnable(6, false); + + //softlimit 적용 - 201214 + UpdateSoftLimit(); + + //PUB.mot.[(short)eAxis.Z_PICKER] = true; + //PUB.mot.useBrake[(short)eAxis.PL_UPDN] = true; + //PUB.mot.useBrake[(short)eAxis.PR_UPDN] = true; + + if (PUB.mot.IsInit) + { + PUB.log.Add("MOT RUN MONITOR"); + PUB.mot.RunMonitor(); + PUB.log.AddAT("ALL SERVO ON"); + PUB.mot.SetServOn(true); + } + + } + } +} diff --git a/Handler/Project/RunCode/Step/_STEP_RUN.cs b/Handler/Project/RunCode/Step/_STEP_RUN.cs new file mode 100644 index 0000000..eacacf6 --- /dev/null +++ b/Handler/Project/RunCode/Step/_STEP_RUN.cs @@ -0,0 +1,328 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using AR; + +namespace Project +{ + public partial class FMain + { + + //System.Threading.ManualResetEvent LockLL = new System.Threading.ManualResetEvent(true); + //System.Threading.ManualResetEvent LockLR = new System.Threading.ManualResetEvent(true); + + System.Threading.ManualResetEvent LockPK = new System.Threading.ManualResetEvent(true); + + System.Threading.ManualResetEvent LockUserL = new System.Threading.ManualResetEvent(true); + System.Threading.ManualResetEvent LockUserR = new System.Threading.ManualResetEvent(true); + + + async public void _STEP_RUN_START(eSMStep step) + { + + //새로시작하면 포트 얼라인을 해제 해준다 + PUB.flag.set(eVarBool.FG_RDY_PORT_PL, false, "SM_RUN"); + PUB.flag.set(eVarBool.FG_RDY_PORT_PC, false, "SM_RUN"); + PUB.flag.set(eVarBool.FG_RDY_PORT_PR, false, "SM_RUN"); + + //작업완료기준시간 초기화 + if (PUB.flag.get(eVarBool.FG_JOB_END) == true) VAR.TIME.Update(eVarTime.JOB_END); + + //라이브뷰시간 초기화 + VAR.TIME.Update(eVarTime.LIVEVIEW0); + VAR.TIME.Update(eVarTime.LIVEVIEW1); + VAR.TIME.Update(eVarTime.LIVEVIEW2); + + //룸조명과, 타워램프 ON 한다 - 210402 + //COMM.SETTING.Data.Disable_RoomLight = false; + //COMM.SETTING.Data.Disable_TowerLamp = false; + + //얼라인상태 초기화 + hmi1.arVar_Port[1].AlignReset(); + hmi1.Scean = UIControl.HMI.eScean.Nomal; + //loader1.arVar_Port.ToList().ForEach(t => t.AlignReset()); + + //daycount 초기화 + if (PUB.counter.DateStr != DateTime.Now.ToString("yyyy-MM-dd")) + { + PUB.counter.ClearDay(); + PUB.counter.DateStr = DateTime.Now.ToString("yyyy-MM-dd"); + PUB.counter.Save(); + } + + + //키엔스 시작시간을 초기화한다. + VAR.TIME.Update(eVarTime.KEYENCEWAIT); + + //조명켜기 - 201228 + DIO.SetRoomLight(true); //조명은 켜는 것으로 한다 221107 + + //각스텝의 시작변수 초기화한다. + PUB.sm.seq.ClearTime();//.ClearRunStepSeqTime(); + + //대기메세지소거 + PUB.WaitMessage = new string[] { "", "", "", "", "", "", "", "", "", "", "" }; + + if (PUB.flag.get(eVarBool.FG_PRC_VISIONL) && PUB.flag.get(eVarBool.FG_END_VISIONL) == false) + { + //작업을 재시작하면 카메라 트리거를 다시 보낸다 + WS_Send(eWorkPort.Left, PUB.wsL, PUB.Result.ItemDataL.guid, "TRIG", PUB.Result.ItemDataL.VisionData.PrintQRData); + } + + if (PUB.flag.get(eVarBool.FG_PRC_VISIONR) && PUB.flag.get(eVarBool.FG_END_VISIONR) == false) + { + //Pub.Result.ItemData[2].Clear("[0] RUN FIRST"); + WS_Send(eWorkPort.Right, PUB.wsR, PUB.Result.ItemDataR.guid, "TRIG", PUB.Result.ItemDataR.VisionData.PrintQRData); + } + + //재시작할때에는 이것이 동작하면 안됨 + if (PUB.sm.getOldStep == eSMStep.IDLE) + { + //인쇄용지감지상태 초기화 + PUB.flag.set(eVarBool.FG_WAIT_PAPERDETECTL, false, ""); + PUB.flag.set(eVarBool.FG_WAIT_PAPERDETECTR, false, ""); + + + PUB.flag.set(eVarBool.FG_PRC_VISIONL, false, ""); + PUB.flag.set(eVarBool.FG_PRC_VISIONR, false, ""); + + PUB.flag.set(eVarBool.FG_END_VISIONL, false, ""); + PUB.flag.set(eVarBool.FG_END_VISIONR, false, ""); + + PUB.flag.set(eVarBool.FG_OK_PRINTL, false, ""); + PUB.flag.set(eVarBool.FG_OK_PRINTR, false, ""); + PUB.flag.set(eVarBool.FG_RUN_PRINTL, false, ""); + PUB.flag.set(eVarBool.FG_RUN_PRINTR, false, ""); + + PUB.flag.set(eVarBool.FG_RDY_PX_PICKON, false, ""); + PUB.flag.set(eVarBool.FG_RDY_PX_LPICKOF, false, ""); + PUB.flag.set(eVarBool.FG_RDY_PX_RPICKOF, false, ""); + PUB.flag.set(eVarBool.FG_SET_DATA_PORT0, false, ""); + PUB.flag.set(eVarBool.FG_SET_DATA_PORT2, false, ""); + PUB.flag.set(eVarBool.FG_RDY_PX_PICKONWAITL, false, ""); + PUB.flag.set(eVarBool.FG_RDY_PX_PICKONWAITR, false, ""); + + PUB.flag.set(eVarBool.FG_PORTL_ITEMON, false, ""); + PUB.flag.set(eVarBool.FG_PORTR_ITEMON, false, ""); + + //PUB.flag.set(eVarBool.INPUT_LEFT, false, "SM_RUN"); + + //step seq 를 모두 소거해준다 + PUB.sm.seq.Clear(eSMStep.RUN_PICK_RETRY); + + //자료를 소거한다. + //PUB.Result.Clear("RUN_START"); + //PUB.Result.JobStartTime = DateTime.Now; //200728 + + //신규실행이므로 작업차수별 수량을 초기화해준다 + PUB.counter.ClearP(); //200711 + + PUB.flag.set(eVarBool.FG_JOB_END, false, "SM_RUN"); + + PUB.sm.seq.Clear(eSMStep.RUN_ROOT_SEQUENCE_L); + PUB.sm.seq.Clear(eSMStep.RUN_ROOT_SEQUENCE_R); + + if (await _SM_RUN_STARTCHKSW(true, new TimeSpan(0)) == false) return; + if (_SM_RUN_STARTCHKHW(true, new TimeSpan(0)) == false) return; + + //plc의 SID 데이터를 갱신하도록 한다 + PUB.Result.ClearAllSID = true; + PUB.log.AddI("*** 신규 작업이 시작 되었습니다 ***"); + //PUB.flag.set(eVarBool.RDY_VISION1, true, "JOB START"); //최초 시작시에는 1번 비젼이 동작하게 한다 + + //새로시작할때에는 이 값을 초기화 해준다. + PUB.Result.LastSIDFrom = string.Empty; + PUB.Result.LastSIDTo = string.Empty; + //Pub.Result.LastSID103_2 = string.Empty; + PUB.Result.LastSIDCnt = -1; + PUB.Result.LastVName = string.Empty; + + + //릴아디이 221107 + VAR.STR[eVarString.PrePick_ReelIDNew] = string.Empty; + VAR.STR[eVarString.PrePick_ReelIDOld] = string.Empty; + VAR.STR[eVarString.PrePick_ReelIDTarget] = string.Empty; + } + else + { + if (VAR.BOOL[eVarBool.wait_for_keyence]) + { + PUB.log.Add($"바코드수신대기중이었으므로 기존 값을 삭제 합니다(CONF={PUB.Result.ItemDataC.VisionData.Confirm},ID:{PUB.Result.ItemDataC.VisionData.RID})"); + PUB.Result.ItemDataC.VisionData.Clear("RESTART", true); + } + PUB.log.AddI("*** 작업이 재시작 되었습니다 ***"); + } + } + + public StepResult _STEP_RUN(eSMStep step, TimeSpan stepTime, TimeSpan seqTime) + { + if (PUB.popup.needClose) + { + System.Threading.Thread.Sleep(10); //팝업이 닫힐때까지 기다린다. + return StepResult.Wait; + } + + //사용자 스텝처리가 아닌경우에만 동작 중지를 검사 한다 + //중단조건 검사는 0번 축에만 동작하게 한다 + //if (PUB.flag.get(eVarBool.UserStepCheck) == false) + //{ + // return false; + //} + + if (CheckSystemRunCondition() == false) + { + return StepResult.Wait; + } + + //동작상태가 아니라면 처리하지 않는다. + if (PUB.sm.Step == eSMStep.RUN && PUB.sm.getNewStep == eSMStep.RUN) + { + var RStepisFirst = runStepisFirst[0]; + + //릴포트 제어 + _SM_RUN_MOT_PORT(0, false, PUB.sm.seq.GetTime(eSMStep.RUN_COM_PT0)); + _SM_RUN_MOT_PORT(1, false, PUB.sm.seq.GetTime(eSMStep.RUN_COM_PT1)); + _SM_RUN_MOT_PORT(2, false, PUB.sm.seq.GetTime(eSMStep.RUN_COM_PT2)); + + //컨베어 상시동작 - 230503 + Boolean cvl = PUB.iLockCVL.IsEmpty(); + Boolean cvr = PUB.iLockCVR.IsEmpty(); + DIO.SetOutput(eDOName.LEFT_CONV, cvl); + DIO.SetOutput(eDOName.RIGHT_CONV, cvr); + + //왼쪽작업 + if (PUB.flag.get(eVarBool.FG_ENABLE_LEFT)) + { + _RUN_ROOT_SEQUENCE(eWorkPort.Left, eSMStep.RUN_ROOT_SEQUENCE_L); + } + + //오른쪽작업 + if (PUB.flag.get(eVarBool.FG_ENABLE_RIGHT)) + { + _RUN_ROOT_SEQUENCE(eWorkPort.Right, eSMStep.RUN_ROOT_SEQUENCE_R); + } + + //작업완료조건확인 + var PLReady = MOT.GetLMPos(eLMLoc.READY); + var PRReady = MOT.GetRMPos(eRMLoc.READY); + + //최종이벤트시간에서 10초이상 기다려준다 230504 + var tsEventTime = VAR.TIME.RUN((int)eVarTime.JOBEVENT); + + //컨베이어모드 + var CVMode = VAR.BOOL[eVarBool.Use_Conveyor]; + + if (tsEventTime.TotalSeconds > 10 && + stepTime.TotalSeconds > 5.0 && + DIO.isSaftyDoorF(false) == true && + PUB.flag.get(eVarBool.FG_PK_ITEMON) == false && + PUB.flag.get(eVarBool.FG_PL_ITEMON) == false && + PUB.flag.get(eVarBool.FG_PR_ITEMON) == false && + + //신규로 추가된 컨베이어 센서이다 + (CVMode == false || DIO.GetIOInput(eDIName.L_CONV1) == false) && + (CVMode == false || DIO.GetIOInput(eDIName.L_CONV3) == false) && + (CVMode == false || DIO.GetIOInput(eDIName.L_CONV4) == false) && + (CVMode == false || DIO.GetIOInput(eDIName.R_CONV1) == false) && + (CVMode == false || DIO.GetIOInput(eDIName.R_CONV3) == false) && + (CVMode == false || DIO.GetIOInput(eDIName.R_CONV4) == false) && + + //작업진행중 확인 + PUB.flag.get(eVarBool.FG_BUSY_LEFT) == false && + PUB.flag.get(eVarBool.FG_BUSY_RIGHT) == false && + + //비전처리중 확인 + //PUB.flag.get(eVarBool.FG_PRC_VISIONL) == false && + //PUB.flag.get(eVarBool.FG_PRC_VISIONR) == false && + + //모든 모터는 멈춰있어야 한다 + PUB.mot.HasMoving == false && //피커는 중앙에 있어야 한다 + + //좌,우측 프린터 Y축이 정위치에 있어야 한다 + MOT.getPositionMatch(PLReady) && + MOT.getPositionMatch(PRReady) && + + isPortDetUp(1) == false && + isPortLimUP(1) && + + //드라이런 중에는 완료하지 않는다 + PUB.Result.DryRun == false) + { + + if (PUB.flag.get(eVarBool.FG_JOB_END) == false) + { + PUB.log.AddAT("작업완료조건실행"); + VAR.TIME.Update(eVarTime.JOB_END); + PUB.flag.set(eVarBool.FG_JOB_END, true, "SM_RUN"); + } + else + { + //10초가 지나면 최조 완료로 한다 + var ts = VAR.TIME.RUN((int)eVarTime.JOB_END); + if (ts.TotalSeconds >= AR.SETTING.Data.Timeout_JOBEnd) + { + PUB.Result.JobEndTime = DateTime.Now; + PUB.log.AddI($"작업완료 상태로 전환합니다(대기시간:{AR.SETTING.Data.Timeout_JOBEnd}초)"); + PUB.sm.SetNewStep(eSMStep.FINISH); + PUB.flag.set(eVarBool.FG_JOB_END, false, "SM_RUN:FINISH"); + } + } + } + else + { + //이조건일때에는 job_End 가 없어야한다 + if (PUB.flag.get(eVarBool.FG_JOB_END) == true) + { + PUB.log.AddI("작업완료조건 해제"); + PUB.flag.set(eVarBool.FG_JOB_END, false, "run"); + + //메인메세지를 제거 해준다. + PUB.StatusMessage.set(Class.eStatusMesage.Main, string.Empty); + } + } + } + return StepResult.Wait; + } + + public Boolean CheckSystemRunCondition() + { + if (PUB.mot.IsInit == false) + { + PUB.Result.SetResultMessage(eResult.HARDWARE, eECode.AZJINIT, eNextStep.ERROR); + return false; + } + + if (PUB.dio.IsInit == false) + { + PUB.Result.SetResultMessage(eResult.HARDWARE, eECode.AZJINIT, eNextStep.ERROR); + return false; + } + + if (PUB.mot.HasHomeSetOff == true) + { + PUB.Result.SetResultMessage(eResult.HARDWARE, eECode.MOT_HSET, eNextStep.ERROR); + return false; + } + + if (PUB.Result.vModel == null || PUB.Result.vModel.Title.isEmpty()) + { + PUB.Result.SetResultMessage(eResult.SETUP, eECode.NOMODELV, eNextStep.ERROR); + return false; + } + if (PUB.Result.mModel == null || PUB.Result.mModel.Title.isEmpty()) + { + PUB.Result.SetResultMessage(eResult.SETUP, eECode.NOMODELM, eNextStep.ERROR); + return false; + } + + if (DIO.isSaftyDoorF() == false || DIO.isSaftyDoorR() == false) + { + PUB.Result.SetResultMessage(eResult.OPERATION, eECode.DOORSAFTY, eNextStep.PAUSE); + return false; + } + return true; + } + } +} diff --git a/Handler/Project/RunCode/_01_Input_Events.cs b/Handler/Project/RunCode/_01_Input_Events.cs new file mode 100644 index 0000000..c815aec --- /dev/null +++ b/Handler/Project/RunCode/_01_Input_Events.cs @@ -0,0 +1,492 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using AR; + +namespace Project +{ + public partial class FMain + { + + + void _DIO_INPUT_VALUE_CHANGED(eDIName pin, Boolean value) + { + //카드사이즈 센서 적용 + if (pin == eDIName.PORT0_SIZE_07 || pin == eDIName.PORT0_SIZE_13) + { + if (value) + { + //둘중하나가 들어오면 시작시간을 설정한다 + if (VAR.BOOL[eVarBool.Use_Conveyor] == false) + { + VAR.TIME.Update(eVarTime.MAGNET0); + PUB.flag.set(eVarBool.FG_WAT_MAGNET0, true, "SENSOR"); + } + + } + else + { + var b1 = DIO.GetIOInput(eDIName.PORT0_SIZE_07); + var b2 = DIO.GetIOInput(eDIName.PORT0_SIZE_13); + if (b1 == false && b2 == false) + { + PUB.flag.set(eVarBool.FG_WAT_MAGNET0, false, "SENSOR"); + DIO.SetPortMagnet(0, false); + //if (Util_DO.GetIOOutput(eDOName.CART_MAG0)) + //Util_DO.SetOutput(eDOName.CART_MAG0, false); + } + } + } + else if (pin == eDIName.PORT1_SIZE_07 || pin == eDIName.PORT1_SIZE_13) + { + if (value) + { + //둘중하나가 들어오면 시작시간을 설정한다 + //if (VAR.BOOL[eVarBool.Use_Conveyor] == false) + { + VAR.TIME.Update(eVarTime.MAGNET1); + PUB.flag.set(eVarBool.FG_WAT_MAGNET1, true, "SENSOR"); + } + } + else + { + var b1 = DIO.GetIOInput(eDIName.PORT1_SIZE_07); + var b2 = DIO.GetIOInput(eDIName.PORT1_SIZE_13); + if (b1 == false && b2 == false) + { + PUB.flag.set(eVarBool.FG_WAT_MAGNET1, false, "SENSOR"); + DIO.SetPortMagnet(1, false); + //if (Util_DO.GetIOOutput(eDOName.CART_MAG1)) + //Util_DO.SetOutput(eDOName.CART_MAG1, false); + } + } + } + else if (pin == eDIName.PORT2_SIZE_07 || pin == eDIName.PORT2_SIZE_13) + { + if (value) + { + //둘중하나가 들어오면 시작시간을 설정한다 + if (VAR.BOOL[eVarBool.Use_Conveyor] == false) + { + VAR.TIME.Update(eVarTime.MAGNET2); + PUB.flag.set(eVarBool.FG_WAT_MAGNET2, true, "SENSOR"); + } + } + else + { + var b1 = DIO.GetIOInput(eDIName.PORT2_SIZE_07); + var b2 = DIO.GetIOInput(eDIName.PORT2_SIZE_13); + if (b1 == false && b2 == false) + { + PUB.flag.set(eVarBool.FG_WAT_MAGNET2, false, "SENSOR"); + DIO.SetPortMagnet(2, false); + //if (Util_DO.GetIOOutput(eDOName.CART_MAG2)) + // Util_DO.SetOutput(eDOName.CART_MAG2, false); + } + } + } + else if (pin == eDIName.DOORF1 || pin == eDIName.DOORF2 || pin == eDIName.DOORF3) + { + int PortIDX = 0; + eVarBool FG_RDY_PORT; + if (pin == eDIName.DOORF1) { PortIDX = 0; FG_RDY_PORT = eVarBool.FG_RDY_PORT_PL; } + else if (pin == eDIName.DOORF2) { PortIDX = 1; FG_RDY_PORT = eVarBool.FG_RDY_PORT_PC; } + else { PortIDX = 2; FG_RDY_PORT = eVarBool.FG_RDY_PORT_PR; } + + //전면도어가 열렸다 + if (DIO.GetIOInput(pin) == true) + { + + + + if (PUB.flag.get(FG_RDY_PORT) == true) + { + PUB.flag.set(FG_RDY_PORT, false, "IOCHANGE"); + if (PUB.sm.Step > eSMStep.IDLE) + PUB.log.AddAT("안전센서 검출로 인해 PORT_READY(L)를 해제 합니다"); + } + + //도어가 열리면 포트를 멈춘다 210329 + if (DIO.GetPortMotorRun(0)) DIO.SetPortMotor(0, DIO.GetPortMotorDir(0), false, "DOOR OPEN"); + if (DIO.GetPortMotorRun(1)) DIO.SetPortMotor(1, DIO.GetPortMotorDir(1), false, "DOOR OPEN"); + if (DIO.GetPortMotorRun(2)) DIO.SetPortMotor(2, DIO.GetPortMotorDir(2), false, "DOOR OPEN"); + + //210331 + if (PUB.sm.Step != eSMStep.RUN) + { + PUB.mot.MoveStop("Dorr oopen"); + } + + if (PUB.sm.isRunning == false && AR.SETTING.Data.PickerAutoMoveForDoor) + { + var motSpeed = 300; + var motAcc = 500; + if (pin == eDIName.DOORF3) //좌측도어가 열렸다 + { + var DoorF2 = DIO.GetIOInput(eDIName.DOORF2); + var DoorF1 = DIO.GetIOInput(eDIName.DOORF1); + if (DoorF2 == false && DoorF1 == false) //중앙도어가 닫혀있다 + { + var PosPZ = MOT.getPositionMatch(MOT.GetPZPos(ePZLoc.READY));//.MOT.GetPKZ_PosName(); + var PosLM = MOT.getPositionMatch(MOT.GetLMPos(eLMLoc.READY));//. MOT.GetPLM_PosName(); + var PosRM = MOT.getPositionMatch(MOT.GetRMPos(eRMLoc.READY));//.MOT.GetPRM_PosName(); + + if (PosLM && PosRM && PosPZ) + { + //x위치가 pickon 보다 작으면 옴겨줘야 한다. + var xpos = MOT.getPositionOffset(MOT.GetPXPos(ePXLoc.PICKON)); + if (xpos < 1) + { + var mPos = MOT.GetPXPos(ePXLoc.PICKON); + MOT.Move(eAxis.PX_PICK, mPos.Position, motSpeed, motAcc, false, false, false); + } + } + } + } + else if (pin == eDIName.DOORF2) //중앙도어가 열렸다 + { + //좌우측 닫혀있고 프린트M 위치가 Ready 여아한다. + var PosPZ = MOT.getPositionMatch(MOT.GetPZPos(ePZLoc.READY));//.MOT.GetPKZ_PosName(); + var PosLM = MOT.getPositionMatch(MOT.GetLMPos(eLMLoc.READY));//. MOT.GetPLM_PosName(); + var PosRM = MOT.getPositionMatch(MOT.GetRMPos(eRMLoc.READY));//.MOT.GetPRM_PosName(); + + if (PosPZ) + { + var xpos = MOT.getPositionOffset(MOT.GetPXPos(ePXLoc.PICKON)); + + if (Math.Abs(xpos) < 100) //중앙근처 10 mm 안에 있다면 + { + var DoorF1 = DIO.GetIOInput(eDIName.DOORF1); + var DoorF3 = DIO.GetIOInput(eDIName.DOORF3); + + if (DoorF1 == false && DoorF3 == false) + { + if (PosLM) + { + var mPos = MOT.GetPXPos(ePXLoc.READYL); + MOT.Move(eAxis.PX_PICK, mPos.Position, motSpeed, motAcc, false, false, false); + } + else if (PosRM) + { + var mPos = MOT.GetPXPos(ePXLoc.READYR); + MOT.Move(eAxis.PX_PICK, mPos.Position, motSpeed, motAcc, false, false, false); + } + //} + } + } + } + + + } + else if (pin == eDIName.DOORF1) //우측도어가 열렸다 + { + var DoorF2 = DIO.GetIOInput(eDIName.DOORF2); + var DoorF3 = DIO.GetIOInput(eDIName.DOORF3); + if (DoorF2 == false && DoorF3 == false) //중앙도어가 닫혀있다 + { + var PosPZ = MOT.getPositionMatch(MOT.GetPZPos(ePZLoc.READY));//.MOT.GetPKZ_PosName(); + var PosLM = MOT.getPositionMatch(MOT.GetLMPos(eLMLoc.READY));//. MOT.GetPLM_PosName(); + var PosRM = MOT.getPositionMatch(MOT.GetRMPos(eRMLoc.READY));//.MOT.GetPRM_PosName(); + + if (PosLM && PosRM && PosPZ) + { + //x위치가 pickon 보다 작으면 옴겨줘야 한다. + var xpos = MOT.getPositionOffset(MOT.GetPXPos(ePXLoc.PICKON)); + if (xpos > 1) + { + var mPos = MOT.GetPXPos(ePXLoc.PICKON); + MOT.Move(eAxis.PX_PICK, mPos.Position, motSpeed, motAcc, false, false, false); + } + } + } + } + } + + //안전센서가 감지되었다면 얼라인을 초기화 해준다 + hmi1.arVar_Port[PortIDX].AlignOK = 0; + hmi1.arVar_Port[PortIDX].errorCount = 0; + + //동작중일경우 추가 작업 + if (PUB.sm.Step > eSMStep.IDLE) + { + //안전센서가 들어와잇다면 이 값을 초기화 해준다 + if (DIO.isSaftyDoorF(PortIDX, true) == false && PUB.flag.get(eVarBool.FG_JOB_END) == true) + VAR.TIME.Update(eVarTime.JOB_END); + } + + //오류 혹은 Wait 상태일때에는 프린터 Z축을 올려준다 + if (PUB.sm.Step == eSMStep.WAITSTART || PUB.sm.Step == eSMStep.PAUSE) + { + if (pin == eDIName.DOORF3) + { + var PosM = MOT.getPositionMatch(MOT.GetLMPos(eLMLoc.READY));//. MOT.GetPLM_PosName(); + var PosZ = MOT.getPositionMatch(MOT.GetLZPos(eLZLoc.PICKON));//.MOT.GetPRM_PosName(); + if (PosM && PosZ) + { + PUB.log.Add("도어열림으로 인해 프린터L Z축을 올립니다"); + var Pos = MOT.GetLZPos(eLZLoc.PICKON); + MOT.Move(Pos); + } + } + else if (pin == eDIName.DOORF1) + { + var PosM = MOT.getPositionMatch(MOT.GetRMPos(eRMLoc.READY));// MOT.GetPRM_PosName(); + var PosZ = MOT.getPositionMatch(MOT.GetRZPos(eRZLoc.PICKON));// GetPRZ_PosName(); + if (PosM && PosZ) + { + PUB.log.Add("도어열림으로 인해 프린터R Z축을 올립니다"); + MOT.Move(eAxis.PR_UPDN, 0, 100, 1000, false, false, false); + } + } + } + } + else + { + //도어를 다시 닫았을때처리해준다. + + //오류 혹은 Wait 상태일때에는 프린터 Z축을 올려준다 + if (PUB.sm.Step == eSMStep.WAITSTART || PUB.sm.Step == eSMStep.PAUSE) + { + if (pin == eDIName.DOORF3) + { + + var PosM = MOT.getPositionMatch(MOT.GetLMPos(eLMLoc.READY));//. MOT.GetPLM_PosName(); + var PosZ = MOT.getPositionMatch(MOT.GetLZPos(eLZLoc.READY));//.MOT.GetPRM_PosName(); + if (PosM && PosZ) + { + var zpos = MOT.GetLZPos(eLZLoc.PICKON); + PUB.log.Add("도어닫힘으로 인해 프린터L Z축을 내립니다"); + MOT.Move(eAxis.PL_UPDN, zpos.Position, 100, 1000, false, false, false); + } + } + else if (pin == eDIName.DOORF1) + { + var PosM = MOT.getPositionMatch(MOT.GetRMPos(eRMLoc.READY));//. MOT.GetPLM_PosName(); + var PosZ = MOT.getPositionMatch(MOT.GetRZPos(eRZLoc.READY));//.MOT.GetPRM_PosName(); + if (PosM && PosZ) + { + var zpos = MOT.GetRZPos(eRZLoc.PICKON); + PUB.log.Add("도어닫힘으로 인해 프린터R Z축을 내립니다"); + MOT.Move(eAxis.PR_UPDN, zpos.Position, 100, 1000, false, false, false); + } + } + } + + + } + } + else if (pin == eDIName.BUT_AIRF) //여기서부터는 스위치 영역 + { + //AIR버튼은 IDLE 이상일떄에 동작 한다 + if (value == true && PUB.sm.Step >= eSMStep.IDLE) + { + var curState = DIO.GetIOOutput(eDOName.SOL_AIR); + if (curState == false) + { + DIO.SetAIR(!curState); + PUB.log.AddI("에어 컴"); + } + else + { + DIO.SetAIR(!curState); + PUB.log.AddAT("에어 끔"); + } + } + //AIR의 LED는 실제 AIR 출력 상태와 동기화 한다 * output event 에서 처리함 + } + else if (pin == eDIName.BUT_EMGF) + { + PUB.log.AddAT(string.Format("Emergency Status : {0} Value= {1}", pin, value)); + if (value == false) + { + //로더컨트롤의 이머전시 상탤르 설정한다 (둘중 하나라도 꺼지면 비상값이다) + + EmergencyTime = DateTime.Now; //한놈이라도 이머전시가 들어오면 강제 멈춘다 + PUB.mot.MoveStop("emg", true); + + //포트 모터 정지 + DIO.SetPortMotor(0, eMotDir.CW, false, "EMG"); System.Threading.Thread.Sleep(1); + DIO.SetPortMotor(1, eMotDir.CW, false, "EMG"); System.Threading.Thread.Sleep(1); + DIO.SetPortMotor(2, eMotDir.CW, false, "EMG"); System.Threading.Thread.Sleep(1); + } + else + { + //둘다 ON 되어잇다면 비상을 해제한다 + if (DIO.IsEmergencyOn() != true) hmi1.arDI_Emergency = false; + } + + //Emg는 B접점이라서 LED상태를 반전시킨다 + if (pin == eDIName.BUT_EMGF) DIO.SetOutput(eDOName.BUT_EMGF, !value); + + } + else if (pin == eDIName.BUT_STARTF) //시작버튼 + { + if (PUB.flag.get(eVarBool.FG_MOVE_PICKER)) + { + if (value) + { + if (VAR.BOOL[eVarBool.Enable_PickerMoveX] && PUB.mot.IsMotion((int)eAxis.PX_PICK) == false) + PUB.mot.JOG((int)eAxis.PX_PICK, arDev.MOT.MOTION_DIRECTION.Negative, AR.SETTING.Data.JOG_Speed, AR.SETTING.Data.JOG_Acc); + } + else + { + PUB.mot.MoveStop("xmove", (int)eAxis.PX_PICK); + } + + } + else + { + if (PUB.flag.get(eVarBool.FG_SCR_JOBSELECT) == false) + { + if (value && PUB.sm.Step >= eSMStep.IDLE) + { + PUB.log.AddI("START BUTTON"); + this._BUTTON_START(); + } + } + } + } + else if (pin == eDIName.BUT_STOPF) //중단버튼 + { + if (PUB.flag.get(eVarBool.FG_MOVE_PICKER)) + { + if (value) + { + if (VAR.BOOL[eVarBool.Enable_PickerMoveX] && PUB.mot.IsMotion((int)eAxis.PX_PICK) == false) + PUB.mot.JOG((int)eAxis.PX_PICK, arDev.MOT.MOTION_DIRECTION.Positive, AR.SETTING.Data.JOG_Speed, AR.SETTING.Data.JOG_Acc); + } + else + { + PUB.mot.MoveStop("xmove", (int)eAxis.PX_PICK); + } + } + else + { + if (PUB.flag.get(eVarBool.FG_SCR_JOBSELECT) == false) + { + if (value && PUB.sm.Step >= eSMStep.IDLE) + { + PUB.log.AddI("STOP BUTTON"); + _BUTTON_STOP(); + } + } + } + + } + else if (pin == eDIName.BUT_RESETF) //리셋버튼 + { + if (PUB.flag.get(eVarBool.FG_SCR_JOBSELECT) == false) + { + if (value && PUB.sm.Step >= eSMStep.IDLE) + { + + if (value) PUB.Result.ResetButtonDownTime = DateTime.Now; + else PUB.Result.ResetButtonDownTime = new DateTime(1982, 11, 23); + + PUB.log.AddI("RESET BUTTON"); + _BUTTON_RESET(); + } + } + + //요약폼이 있었다면 해제 해준다. - 210329 + if (PUB.sm.Step == eSMStep.FINISH) + HideSummary(); + } + else if (pin == eDIName.PORTL_DET_UP || pin == eDIName.PORTC_DET_UP || pin == eDIName.PORTR_DET_UP) + { + var pidx = 0; + eVarBool FG_RDY_PORT = eVarBool.FG_RDY_PORT_PL; + var value1 = DIO.GetIOInput(pin); + + if (pin == eDIName.PORTC_DET_UP) + { + pidx = 1; + FG_RDY_PORT = eVarBool.FG_RDY_PORT_PC; + if (value1 == true) //해당 제품이 검출되어 멈춘다면, 키엔스 데이터를 초기화 해준다. + { + //Pub.Result.ItemData[1].VisionData.Clear("DIO DET1"); + //PUB.flag.set(eVarBool.END_VISION1, false, "DIO DET1"); + //데이터 손실건이 나와서 처리하지 않게한다 210318 + } + } + else if (pin == eDIName.PORTR_DET_UP) { pidx = 2; FG_RDY_PORT = eVarBool.FG_RDY_PORT_PR; } + + if (PUB.sm.Step != eSMStep.RUN && value1 == false) //감지가 꺼지면 ready 를 해제한다 + PUB.flag.set(FG_RDY_PORT, false, "IOCHANGE"); + else if (hmi1.arVar_Port[pidx].AlignOK != 1) + PUB.Result.PortAlignTime[0] = DateTime.Now.Ticks; //시작시간을 초기화 해준다 + + //동작중에 들어오면 바로 멈추게한다. 이것은 SPS에서 적용되어야하지만 더 빠르게 반응하기 위해서 그렇게 한다 - 200813 + if (value1 && DIO.GetPortMotorDir(pidx) == eMotDir.CW) + DIO.SetPortMotor(pidx, eMotDir.CW, false, "_DIO_DETECT"); + } + + + if (pin == eDIName.PORTL_LIM_DN) + { + //좌측포트의 하단부리밋센서가 검출될경우 마그넷이 on 되어있다면 off한다. + if (DIO.GetIOInput(eDIName.PORTL_LIM_DN) == true && DIO.GetIOOutput(eDOName.CART_MAG0) == true) + { + DIO.SetPortMagnet(0, false); + PUB.log.Add("좌측 포트의 마그넷 OFF"); + } + } + else if (pin == eDIName.PORTC_LIM_DN) + { + //좌측포트의 하단부리밋센서가 검출될경우 마그넷이 on 되어있다면 off한다. + if (DIO.GetIOInput(eDIName.PORTC_LIM_DN) == true && DIO.GetIOOutput(eDOName.CART_MAG1) == true) + { + DIO.SetPortMagnet(1, false); + PUB.log.Add("중앙 포트의 마그넷 OFF"); + + if(PUB.sm.Step == eSMStep.FINISH) + { + DIO.SetBuzzer(false); //부저종료 231005 + } + } + } + else if (pin == eDIName.PORTR_LIM_DN) + { + //좌측포트의 하단부리밋센서가 검출될경우 마그넷이 on 되어있다면 off한다. + if (DIO.GetIOInput(eDIName.PORTR_LIM_DN) == true && DIO.GetIOOutput(eDOName.CART_MAG2) == true) + { + DIO.SetPortMagnet(2, false); + PUB.log.Add("우측 포트의 마그넷 OFF"); + } + } + else if (pin == eDIName.L_CONV3) + { + VAR.TIME[(int)eVarTime.JOBEVENT] = DateTime.Now; + if (value) + { + if(VAR.I32[eVarInt32.LEFT_ITEM_COUNT] > 0) + { + VAR.I32[eVarInt32.LEFT_ITEM_COUNT] -= 1;//= false; //해제 + PUB.log.AddAT($"left 버퍼 수량 감소"); + } + + } + } + else if (pin == eDIName.R_CONV3) + { + VAR.TIME[(int)eVarTime.JOBEVENT] = DateTime.Now; + if (value) + { + if (VAR.I32[eVarInt32.RIGT_ITEM_COUNT] > 0) + { + VAR.I32[eVarInt32.RIGT_ITEM_COUNT] -= 1;//= false; //해제 + PUB.log.AddAT($"right 버퍼 수량 감소"); + } + + } + } + else if (pin == eDIName.R_CONV4 || pin == eDIName.L_CONV1 || pin == eDIName.L_CONV4 || pin == eDIName.R_CONV1) + { + VAR.TIME[(int)eVarTime.JOBEVENT] = DateTime.Now; + } + + } + } +} \ No newline at end of file diff --git a/Handler/Project/RunCode/_02_Output_Events.cs b/Handler/Project/RunCode/_02_Output_Events.cs new file mode 100644 index 0000000..8816b54 --- /dev/null +++ b/Handler/Project/RunCode/_02_Output_Events.cs @@ -0,0 +1,98 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using AR; +namespace Project +{ + public partial class FMain + { + void _DIO_OUTPUT_VALUE_CHANGED(eDOName pin, Boolean value) + { + if (pin == eDOName.PORTL_MOT_RUN) + { + VAR.TIME[(int)eVarTime.JOBEVENT] = DateTime.Now; + hmi1.arVar_Port[0].MotorRun = value; + } + else if (pin == eDOName.PORTC_MOT_RUN) + { + //VAR.TIME[(int)eVarTime.JOBEVENT] = DateTime.Now; + hmi1.arVar_Port[1].MotorRun = value; + } + else if (pin == eDOName.PORTR_MOT_RUN) + { + VAR.TIME[(int)eVarTime.JOBEVENT] = DateTime.Now; + hmi1.arVar_Port[2].MotorRun = value; + } + + else if (pin == eDOName.PORTL_MOT_DIR) + { + + hmi1.arVar_Port[0].MotorDir = !value; + } + else if (pin == eDOName.PORTC_MOT_DIR) + hmi1.arVar_Port[1].MotorDir = !value; + else if (pin == eDOName.PORTR_MOT_DIR) + { + + hmi1.arVar_Port[2].MotorDir = !value; + } + + //피커 백큠 동작 상태(front) + //else if (pin == eDOName.PICK_VAC1) loader1.arVar_Picker[0].VacOutput[0] = value; + //else if (pin == eDOName.PICK_VAC2) loader1.arVar_Picker[0].VacOutput[1] = value; + //else if (pin == eDOName.PICK_VAC3) loader1.arVar_Picker[0].VacOutput[2] = value; + //else if (pin == eDOName.PICK_VAC4) loader1.arVar_Picker[0].VacOutput[3] = value; + + //출력상태에 따라서 버튼의 LED를 켠다 + else if (pin == eDOName.SOL_AIR) + { + DIO.SetOutput(eDOName.BUT_AIRF, value); + + if (value == false) + PUB.flag.set(eVarBool.FG_PK_ITEMON, false, "DO"); + hmi1.arDIAir = value; //AIR상태를 표시 + } + else if (pin == eDOName.LEFT_CONV) + { + VAR.TIME[(int)eVarTime.JOBEVENT] = DateTime.Now; + if (value) + { + VAR.TIME[eVarTime.CONVL_START] = DateTime.Now; + } + else + { + VAR.TIME[eVarTime.CONVL_START] = new DateTime(1982, 11, 23); + VAR.DBL[eVarDBL.CONVL_RUNTIME] = 0; + } + + PUB.log.Add($"LEFT_CONV : {value}"); + } + else if (pin == eDOName.RIGHT_CONV) + { + VAR.TIME[(int)eVarTime.JOBEVENT] = DateTime.Now; + PUB.log.Add($"RIGHT_CONV : {value}"); + if (value) + { + VAR.TIME[eVarTime.CONVR_START] = DateTime.Now; + } + else + { + VAR.TIME[eVarTime.CONVR_START] = new DateTime(1982, 11, 23); + VAR.DBL[eVarDBL.CONVR_RUNTIME] = 0; + } + + } + else if (pin == eDOName.BUZZER) + { + if (value) + PUB.BuzzerTime = DateTime.Now; + else + PUB.BuzzerTime = new DateTime(1982, 11, 23); + } + + } + + } +} diff --git a/Handler/Project/RunCode/_03_Interlock_Events.cs b/Handler/Project/RunCode/_03_Interlock_Events.cs new file mode 100644 index 0000000..e414db6 --- /dev/null +++ b/Handler/Project/RunCode/_03_Interlock_Events.cs @@ -0,0 +1,153 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using arDev; +using AR; +using AR; +namespace Project +{ + public partial class FMain + { + void Set_InterLock() + { + if (PUB.sm.Step < eSMStep.IDLE) return; + intlockcnt += 1; + + var CurrentSaftyDoor = DIO.isSaftyDoorF();//도어안전 + var CurrentSaftyArea = true; //안전영역 + var bEmg = DIO.IsEmergencyOn(); //비상정지 + var bHSet = PUB.mot.IsInit && PUB.mot.HasHomeSetOff; //홈 설정이 완료되었는지 확인한다 + + PUB.flag.set(eVarBool.FG_DOORSAFTY, CurrentSaftyDoor, "COMMINTERLOCK"); + PUB.flag.set(eVarBool.FG_AREASAFTY, CurrentSaftyArea, "COMMINTERLOCK"); + + for (int i = 0; i < PUB.iLock.Length; i++) + { + PUB.iLock[i].set((int)eILock.EMG, bEmg, "COMMINTERLOCK"); + PUB.iLock[i].set((int)eILock.DOOR, !CurrentSaftyDoor, "COMMINTERLOCK"); + if (i < 7) + { + PUB.iLock[i].set((int)eILock.HOMESET, bHSet, "COMMINTERLOCK"); + } + } + + //피커의 Z축이 움직이는 동안에는 Y축을 움직이지 못하게 한다 + PUB.iLock[(int)eAxis.PX_PICK].set((int)eILock.ZMOVE, PUB.mot.IsMotion((int)eAxis.PZ_PICK), "COMMINTERLOCK"); + PUB.iLock[(int)eAxis.PL_MOVE].set((int)eILock.ZMOVE, PUB.mot.IsMotion((int)eAxis.PL_UPDN), "COMMINTERLOCK"); + PUB.iLock[(int)eAxis.PR_MOVE].set((int)eILock.ZMOVE, PUB.mot.IsMotion((int)eAxis.PR_UPDN), "COMMINTERLOCK"); + + //피커의 Y축이 움직이는 동안에는 Z축을 움직이지 못하게 한다 + PUB.iLock[(int)eAxis.PZ_PICK].set((int)eILock.XMOVE, PUB.mot.IsMotion((int)eAxis.PX_PICK), "COMMINTERLOCK"); + + //외부컨베어 신호 인터락설정 (출구쪽센서가 인식되지 않았다면 멈추지 않는다) + var cvLBusy = (DIO.GetIOInput(eDIName.L_CONV4) && DIO.GetIOInput(eDIName.L_EXT_READY) == false); + var cvRBusy = (DIO.GetIOInput(eDIName.R_CONV4) && DIO.GetIOInput(eDIName.R_EXT_READY) == false); + PUB.iLockCVL.set((int)eILockCV.EXTBUSY, cvLBusy, "COMMINTERLOCK"); + PUB.iLockCVR.set((int)eILockCV.EXTBUSY, cvRBusy, "COMMINTERLOCK"); + + //축을 사용하지 않는경우 + PUB.iLockCVL.set((int)eILockCV.DISABLE, SETTING.Data.Disable_Left, "COMMINTERLOCK"); + PUB.iLockCVR.set((int)eILockCV.DISABLE, SETTING.Data.Disable_Right, "COMMINTERLOCK"); + + //카트모드에서 + PUB.iLockCVL.set((int)eILockCV.CARTMODE, !VAR.BOOL[eVarBool.Use_Conveyor], "COMMINTERLOCK"); + PUB.iLockCVR.set((int)eILockCV.CARTMODE, !VAR.BOOL[eVarBool.Use_Conveyor], "COMMINTERLOCK"); + + + //포트가동상태에따라서 비젼인터락 + PUB.iLockVS0.set((int)eILockVS0.PORTRDY, !PUB.flag.get(eVarBool.FG_RDY_PORT_PL), "COMMINTERLOCK"); + if (PUB.Result.DryRun == true) + PUB.iLockVS1.set((int)eILockVS1.PORTRDY, false, "COMMINTERLOCK"); + else + PUB.iLockVS1.set((int)eILockVS1.PORTRDY, !PUB.flag.get(eVarBool.FG_RDY_PORT_PC), "COMMINTERLOCK"); + PUB.iLockVS2.set((int)eILockVS2.PORTRDY, !PUB.flag.get(eVarBool.FG_RDY_PORT_PR), "COMMINTERLOCK"); + + //위치관련 인터락은 MODEL이 설정 되어있어야하며, MOTION도 정상이어야 한다 + if (PUB.mot.IsInit && PUB.Result.mModel.isSet) + { + //if (PUB.LockModel.WaitOne(1) == true) + { + //PUB.LockModel.Reset(); + + //피커의 X축에 따라서 비젼의 촬영가능여부가 결정된다 + PUB.iLockVS0.set((int)eILockVS0.PKXPOS, DIO.GetIOInput(eDIName.PICKER_SAFE) == false && MOT.getPositionOffset(MOT.GetPXPos(ePXLoc.PICKON)) < -2, "COMMINTERLOCK"); + if (MOT.getPositionOffset(MOT.GetPXPos(ePXLoc.READYL)) <= 2 || MOT.getPositionOffset(MOT.GetPXPos(ePXLoc.READYR)) >= -2) + PUB.iLockVS1.set((int)eILockVS1.PKXPOS, false, "COMMINTERLOCK"); + else + PUB.iLockVS1.set((int)eILockVS1.PKXPOS, true, "COMMINTERLOCK"); + PUB.iLockVS2.set((int)eILockVS2.PKXPOS, DIO.GetIOInput(eDIName.PICKER_SAFE) == false && MOT.getPositionOffset(MOT.GetPXPos(ePXLoc.PICKON)) > 2, "COMMINTERLOCK"); + + //프린터Y축 위치에 따른 비젼촬영여부(기준위치보다 낮게 있다면 촬영이 안된다) + var PLMCmdPos = MOT.GetLMPos(eLMLoc.READY); + var PRMCmdPos = MOT.GetRMPos(eRMLoc.READY); + PUB.iLockVS0.set((int)eILockVS0.PRNYPOS, (MOT.getPositionOffset(PLMCmdPos) < -5), "COMMINTERLOCK"); + PUB.iLockVS2.set((int)eILockVS2.PRNYPOS, (MOT.getPositionOffset(PRMCmdPos) < -5), "COMMINTERLOCK"); + + //피커의Z축이 안전위치가 아니면 Y축을 움직이지 않는다 + var PKZ_POS_ERR = MOT.getPositionOffset(MOT.GetPZPos(ePZLoc.READY)) > 2; + PUB.iLock[(int)eAxis.PX_PICK].set((int)eILock.Z_POS, PKZ_POS_ERR, "COMMINTERLOCK"); + + PKZ_POS_ERR = (DIO.GetIOInput(eDIName.PICKER_SAFE) == false && MOT.getPositionOffset(MOT.GetPXPos(ePXLoc.PICKON)) <= 2); + PUB.iLock[(int)eAxis.PL_MOVE].set((int)eILock.X_POS, PKZ_POS_ERR, "COMMINTERLOCK"); ; + + PKZ_POS_ERR = (DIO.GetIOInput(eDIName.PICKER_SAFE) == false && MOT.getPositionOffset(MOT.GetPXPos(ePXLoc.PICKON)) >= 2); + PUB.iLock[(int)eAxis.PR_MOVE].set((int)eILock.X_POS, PKZ_POS_ERR, "COMMINTERLOCK"); + + //프린터Z축 안전위치가 아니면 Y축을 멈춘다 + var PLZ_POS_ERR = MOT.getPositionOffset(MOT.GetLZPos(eLZLoc.READY)) > 2.0; + var PRZ_POS_ERR = MOT.getPositionOffset(MOT.GetRZPos(eRZLoc.READY)) > 2.0; + PUB.iLock[(int)eAxis.PL_MOVE].set((int)eILock.PZ_POS, PLZ_POS_ERR, "COMMINTERLOCK"); + PUB.iLock[(int)eAxis.PR_MOVE].set((int)eILock.PZ_POS, PRZ_POS_ERR, "COMMINTERLOCK"); + + //실린더가 전진해 잇다면 이동하지 않아야 한다 - 210207 + var PLZ_CYL_FW = !DIO.GetIOInput(eDIName.L_PICK_BW); + var PRZ_CYL_FW = !DIO.GetIOInput(eDIName.R_PICK_BW); + PUB.iLock[(int)eAxis.PL_MOVE].set((int)eILock.CYL_FORWARD, PLZ_CYL_FW, "COMMINTERLOCK"); + PUB.iLock[(int)eAxis.PR_MOVE].set((int)eILock.CYL_FORWARD, PRZ_CYL_FW, "COMMINTERLOCK"); + + //프린터Y축 안전위치가 아니면 Z축을 멈춘다 + var PLM_YPOS_READY = MOT.getPositionMatch(MOT.GetLMPos(eLMLoc.READY)); //MOT.GetPLM_PosName(); + var PRM_YPOS_READY = MOT.getPositionMatch(MOT.GetRMPos(eRMLoc.READY)); //MOT.GetPRM_PosName(); + + var PLM_YPOS_H07 = MOT.getPositionMatch(MOT.GetLMPos(eLMLoc.PRINTH07)); + var PLM_YPOS_M07 = MOT.getPositionMatch(MOT.GetLMPos(eLMLoc.PRINTM07)); + var PLM_YPOS_L07 = MOT.getPositionMatch(MOT.GetLMPos(eLMLoc.PRINTL07)); + var PLM_YPOS_H13 = MOT.getPositionMatch(MOT.GetLMPos(eLMLoc.PRINTH13)); + var PLM_YPOS_M13 = MOT.getPositionMatch(MOT.GetLMPos(eLMLoc.PRINTM13)); + var PLM_YPOS_L13 = MOT.getPositionMatch(MOT.GetLMPos(eLMLoc.PRINTL13)); + + var PRM_YPOS_H07 = MOT.getPositionMatch(MOT.GetRMPos(eRMLoc.PRINTH07)); + var PRM_YPOS_M07 = MOT.getPositionMatch(MOT.GetRMPos(eRMLoc.PRINTM07)); + var PRM_YPOS_L07 = MOT.getPositionMatch(MOT.GetRMPos(eRMLoc.PRINTL07)); + var PRM_YPOS_H13 = MOT.getPositionMatch(MOT.GetRMPos(eRMLoc.PRINTH13)); + var PRM_YPOS_M13 = MOT.getPositionMatch(MOT.GetRMPos(eRMLoc.PRINTM13)); + var PRM_YPOS_L13 = MOT.getPositionMatch(MOT.GetRMPos(eRMLoc.PRINTL13)); + + + var 좌측대기옵셋 = MOT.getPositionOffset(MOT.GetLMPos(eLMLoc.READY)); + var 우측대기옵셋 = MOT.getPositionOffset(MOT.GetRMPos(eRMLoc.READY)); + var 좌측대기인정 = (좌측대기옵셋 >= (AR.SETTING.Data.MoveYForPaperVaccumeValue - 0.5) && 좌측대기옵셋 <= 0.5); + var 우측대기인정 = (우측대기옵셋 >= (AR.SETTING.Data.MoveYForPaperVaccumeValue - 0.5) && 좌측대기옵셋 <= 0.5); + + var PLM_POS_ERR = !(좌측대기인정 || PLM_YPOS_READY || PLM_YPOS_H07 || PLM_YPOS_M07 || PLM_YPOS_L07 || PLM_YPOS_H13 || PLM_YPOS_M13 || PLM_YPOS_L13); + var PRM_POS_ERR = !(우측대기인정 || PRM_YPOS_READY || PRM_YPOS_H07 || PRM_YPOS_M07 || PRM_YPOS_L07 || PRM_YPOS_H13 || PRM_YPOS_M13 || PRM_YPOS_L13); + + PUB.iLock[(int)eAxis.PL_UPDN].set((int)eILock.PY_POS, PLM_POS_ERR, "COMMINTERLOCK"); + PUB.iLock[(int)eAxis.PR_UPDN].set((int)eILock.PY_POS, PRM_POS_ERR, "COMMINTERLOCK"); + + //PUB.LockModel.Set(); + } + } + else + { + //모션사용불능은 그냥 해제한다 + //Pub.LockPRL.set((int)eILockPRL.PYPOS, false, "COMMINTERLOCK"); + //Pub.LockPRL.set((int)eILockPRR.PYPOS, false, "COMMINTERLOCK"); + } + + } + + } +} diff --git a/Handler/Project/RunCode/_04_Flag_Events.cs b/Handler/Project/RunCode/_04_Flag_Events.cs new file mode 100644 index 0000000..237b11a --- /dev/null +++ b/Handler/Project/RunCode/_04_Flag_Events.cs @@ -0,0 +1,106 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using AR; +using arDev; + +namespace Project +{ + public partial class FMain + { + + void Lock_ValueChanged(object sender, AR.InterfaceValueEventArgs e) + { + + //인터락플래그 변경 이벤트 + var iL = sender as AR.CInterLock; + var tagstr = (iL.Tag == null ? string.Empty : iL.Tag.ToString()); + var fgstr = $"[{e.ArrIDX}]"; + + if (tagstr == "PKX") fgstr = ((eILock)e.ArrIDX).ToString(); + else if (tagstr == "PKZ") fgstr = ((eILock)e.ArrIDX).ToString(); + else if (tagstr == "PKT") fgstr = ((eILock)e.ArrIDX).ToString(); + else if (tagstr == "PLM") fgstr = ((eILock)e.ArrIDX).ToString(); + else if (tagstr == "PLZ") fgstr = ((eILock)e.ArrIDX).ToString(); + else if (tagstr == "PRM") fgstr = ((eILock)e.ArrIDX).ToString(); + else if (tagstr == "PRZ") fgstr = ((eILock)e.ArrIDX).ToString(); + else if (tagstr == "PRL") fgstr = ((eILockPRL)e.ArrIDX).ToString(); + else if (tagstr == "PRR") fgstr = ((eILockPRR)e.ArrIDX).ToString(); + else if (tagstr == "VS0") fgstr = ((eILockVS0)e.ArrIDX).ToString(); + else if (tagstr == "VS1") fgstr = ((eILockVS1)e.ArrIDX).ToString(); + else if (tagstr == "VS2") fgstr = ((eILockVS2)e.ArrIDX).ToString(); + + else if (tagstr == "CVL") fgstr = ((eILockCV)e.ArrIDX).ToString(); + else if (tagstr == "CVR") fgstr = ((eILockCV)e.ArrIDX).ToString(); + + //else fgstr = "?"; + + //최초생성시에는 값을 표시한다 + if (PUB.sm.Step >= eSMStep.IDLE && PUB.sm.Step != eSMStep.HOME_FULL) + { + if (e.NewOn) + { + if (tagstr == "PKX" && PUB.mot.IsMotion(0) == true) + { + Console.WriteLine("ㅠㅠ"); + } + if (AR.SETTING.Data.Log_ILock) + PUB.log.Add(string.Format("[IL-ON:{2}] {0}:{1}", fgstr, e.Reason, tagstr)); + if (AR.SETTING.Data.Enable_Log_ILock) + PUB.logILock.Add("ON", $"{fgstr}:{e.Reason}"); + } + else if (e.NewOff) + { + if (AR.SETTING.Data.Log_ILock) + PUB.log.Add(string.Format("[IL-OF:{2}] {0}:{1}", fgstr, e.Reason, tagstr)); + if (AR.SETTING.Data.Enable_Log_ILock) + PUB.logILock.Add("OF", $"{fgstr}:{e.Reason}"); + } + + var logmsg = "#### ILOCK(" + tagstr + ")변경 : " + fgstr + "(" + e.ArrIDX.ToString() + ") 값:" + e.NewValue.ToString() + ",사유:" + e.Reason; + + //ILOck 로그에 기록 + if (AR.SETTING.Data.Enable_Log_ILock) PUB.logILock.Add(logmsg); + + //메인로그에 기록 + if (AR.SETTING.Data.Log_ILock) PUB.log.Add(logmsg); + } + + } + private void Flag_ValueChanged(object sender, VarData.ValueEventArgs e) + { + var fg = (eVarBool)e.Idx; + + if (fg == eVarBool.FG_PK_ITEMON) + { + // Pub.log.AddAT(string.Format("[FLAG:{0}] : {1}", fg, e.NewValue)); + hmi1.arVar_Picker[0].ItemOn = e.Value; + } + + else if (fg == eVarBool.FG_RDY_PZ_LPICKOF) hmi1.arFG_RDY_YP_FPICKOF = e.Value; + else if (fg == eVarBool.FG_RDY_PZ_RPICKOF) hmi1.arFG_RDY_YP_RPICKOF = e.Value; + else if (fg == eVarBool.FG_CMD_YP_LPICKON) hmi1.arFG_CMD_YP_FPICKON = e.Value; + else if (fg == eVarBool.FG_CMD_YP_RPICKON) hmi1.arFG_CMD_YP_RPICKON = e.Value; + + else if (fg == eVarBool.FG_MINSPACE) hmi1.arFlag_Minspace = e.Value; + + + hmi1.arVar_Port[0].Ready = PUB.flag.get(eVarBool.FG_RDY_PORT_PL); + hmi1.arVar_Port[1].Ready = PUB.flag.get(eVarBool.FG_RDY_PORT_PC); + hmi1.arVar_Port[2].Ready = PUB.flag.get(eVarBool.FG_RDY_PORT_PR); + + if (PUB.sm.Step >= eSMStep.IDLE && PUB.sm.Step != eSMStep.HOME_FULL) + { + var logmsg = string.Format("[{0}] {1} : {2} => {3}", e.Idx, fg, e.Value, e.Message); + //ILOck 로그에 기록 + if (AR.SETTING.Data.Enable_Log_Flag) PUB.logFlag.Add(logmsg); + + //메인로그에 기록 + if (AR.SETTING.Data.Log_flag) PUB.log.Add(logmsg); + } + + } + } +} diff --git a/Handler/Project/RunCode/_97_Utility.cs b/Handler/Project/RunCode/_97_Utility.cs new file mode 100644 index 0000000..4125ce0 --- /dev/null +++ b/Handler/Project/RunCode/_97_Utility.cs @@ -0,0 +1,152 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using AR; +namespace Project +{ + public partial class FMain + { + Dialog.fFinishJob fsum = null; + void HideSummary() + { + if (this.InvokeRequired) + { + this.BeginInvoke(new MethodInvoker(HideSummary), null); + } + else + { + if (fsum != null) + { + if (fsum.IsDisposed == false && fsum.Disposing == false) + { + fsum.Close(); + fsum.Dispose(); + } + fsum = null; + } + } + + } + void ShowSummary() + { + if (fsum == null || fsum.IsDisposed || fsum.Disposing == true) + { + fsum = new Dialog.fFinishJob(); + fsum.FormClosed += (s1, e1) => + { + //해당 폼이 닫힐때 처리한다. + if (PUB.sm.Step == eSMStep.FINISH) + { + //완료상때일때 닫으면 + Run_MotionPositionReset(); + } + }; + fsum.Show(); + } + else + { + fsum.Show(); + fsum.Activate(); + } + } + + void UserStepWait(eWorkPort target) + { + if (PUB.flag.get(eVarBool.FG_USERSTEP)) + { + if (target == eWorkPort.Left) + { + if (LockUserL.WaitOne(1)) + LockUserL.Reset(); + } + else + { + if (LockUserR.WaitOne(1)) + LockUserR.Reset(); + } + + } + } + + /// + /// user step 상황에서 자동으로 멈추게 합니다. + /// + void UserStepRun(eWorkPort target) + { + if (PUB.flag.get(eVarBool.FG_USERSTEP)) + { + if (target == eWorkPort.Right) + { + if (LockUserL.WaitOne(1) == false) + LockUserL.Set(); + } + else + { + if (LockUserR.WaitOne(1) == false) + LockUserR.Set(); + } + + } + } + + + /// + /// 홈작업이 진행 가능한지 하드웨어 상태를 확인한다. + /// + /// + bool CheckHomeProcess_HW_Available(Boolean needHomeSet) + { + //모션이 초기화되지 않았다면 오류로 한다 + if (PUB.mot.IsInit == false) + { + PUB.Result.SetResultMessage(eResult.MOTION, eECode.AZJINIT, eNextStep.NOTHING); + return false; + } + + //모든 홈이 되어야 가능하다 + if (needHomeSet) + { + if (PUB.mot.IsInit && PUB.mot.HasHomeSetOff == true) + { + PUB.Result.SetResultMessage(eResult.MOTION, eECode.MOT_HSET, eNextStep.ERROR); + return false; + } + } + + //안전센서가 작동했다면 중지한다. + if (DIO.isSaftyDoorF(true) == false || DIO.isSaftyDoorR() == false) + { + PUB.Result.SetResultMessage(eResult.SAFTY, eECode.DOORSAFTY, eNextStep.ERROR); + return false; + } + + //모션모델이 반드시 설정되어있어야 한다 + if (PUB.Result.isSetmModel == false) + { + PUB.Result.SetResultMessage(eResult.MOTION, eECode.NOMODELM, eNextStep.ERROR); + return false; + } + + //AIR확인 + if (DIO.GetIOOutput(eDOName.SOL_AIR) == false) + { + PUB.Result.SetResultMessage(eResult.SENSOR, eECode.AIRNOOUT, eNextStep.ERROR); + return false; + } + + // 비상정지 확인 + if (DIO.IsEmergencyOn() == true) + { + PUB.Result.SetResultMessage(eResult.SAFTY, eECode.EMERGENCY, eNextStep.ERROR); + return false; + } + + return true; + } + + + } +} diff --git a/Handler/Project/RunCode/_99_System_Shutdown.cs b/Handler/Project/RunCode/_99_System_Shutdown.cs new file mode 100644 index 0000000..89f4b5e --- /dev/null +++ b/Handler/Project/RunCode/_99_System_Shutdown.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; + +namespace Project +{ + public partial class FMain + { + + } +} diff --git a/Handler/Project/RunCode/_Close.cs b/Handler/Project/RunCode/_Close.cs new file mode 100644 index 0000000..2f83dfa --- /dev/null +++ b/Handler/Project/RunCode/_Close.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; + +namespace Project +{ + public partial class FMain + { + /// + /// 프로그램을 닫을때 1회 실행되는 함수 + /// + private void _Close_Start() + { + //연결체크용 쓰레드 종료 + bRunConnection = false; + this.thConnection.Abort(); + + + //Light off 220714 + DIO.SetRoomLight(false, true); + + //Pub.dio.SetOutput((int)eDOName.ABRUN, false); //stop mgz loader a/c motor + PUB.log.Add("Program Close"); + PUB.LogFlush(); + + //키엔트추가 210114 + + if(PUB.keyenceF != null) + { + PUB.keyenceF.ExecCommand("QUIT"); + PUB.keyenceF.Dispose(); + } + if(PUB.keyenceR != null) + { + PUB.keyenceR.ExecCommand("QUIT"); + PUB.keyenceR.Dispose(); + } + + PUB.dio.StopMonitor(); + PUB.mot.StopMonitor(); + PUB.sm.Stop(); + } + } +} diff --git a/Handler/Project/RunCode/_Motion.cs b/Handler/Project/RunCode/_Motion.cs new file mode 100644 index 0000000..5162acc --- /dev/null +++ b/Handler/Project/RunCode/_Motion.cs @@ -0,0 +1,83 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; + +namespace Project +{ + public partial class FMain + { + public Boolean[] DisableMotion; + private void Mot_PositionChanged(object sender, arDev.MOT.PositionChangeEventArgs e) + { + eAxis mot = (eAxis)e.Axis; + if (mot == eAxis.PX_PICK) + { + + } + + //모터 위치가 변경되면 로더 컨트롤에 입력한다 + hmi1.arMotorPosition[e.Axis] = e.Actual; + } + + void mot_StatusChanged(object sender, arDev.MOT.StatusChangeEventArags e) + { + if (e.Axis >= PUB.system.MotaxisCount) return; + if (e.Status == arDev.MOT.MOTION_STATUS.SERVOALARM) hmi1.arMOT_Alm[e.Axis] = e.Value; + else if (e.Status == arDev.MOT.MOTION_STATUS.LIMITN) hmi1.arMOT_LimDn[e.Axis] = e.Value; + else if (e.Status == arDev.MOT.MOTION_STATUS.LIMITP) hmi1.arMOT_LimUp[e.Axis] = e.Value; + else if (e.Status == arDev.MOT.MOTION_STATUS.ORIGIN) hmi1.arMOT_Origin[e.Axis] = e.Value; + else if (e.Status == arDev.MOT.MOTION_STATUS.SERVROON) hmi1.arMOT_SVOn[e.Axis] = e.Value; + } + + private void Mot_EndStatusChanged(object sender, arDev.MOT.EndStatusChangeEventArgs e) + { + if (AR.SETTING.Data.Enable_Log_MotStopReason == false) return; //210112 + + var bitstatus = Convert.ToString(e.Value, 2).PadLeft(16, '0'); + List lst = new List(); + for (byte i = 0; i < 15; i++) + { + var offset = (ushort)(Math.Pow(2, i)); + if ((e.Value & offset) > 0) lst.Add((FS_END_STATUS)offset); + } + + var reason = string.Join(",", lst); + PUB.log.Add("MOT", $"모터정지사유({e.Axis}):{reason}:bit={bitstatus}"); + } + + + void mot_HomeStatusChanged(object sender, arDev.MOT.HomeStatusChangeEventArgs e) + { + if (PUB.sm.Step == eSMStep.HOME_FULL) + { + hmi1.arHomeProgress[e.Axis] = e.Progress; + if (e.NewStatus == arDev.MOT.HOME_RESULT.HOME_ERR_NOT_DETECT) + { + //홈 검색시 오류가 발생했다 사용자에게 알림을 해야 함 + PUB.Result.SetResultMessage(eResult.MOTION, eECode.MOT_HSET, eNextStep.ERROR, e.Axis); + } + else if (e.NewStatus == arDev.MOT.HOME_RESULT.HOME_SUCCESS) + { + PUB.log.AddI(string.Format("홈 검색이 완료되었습니다 축:{0}", e.Axis)); + } + } + } + + + void mot_Message(object sender, arDev.MOT.MessageEventArgs e) + { + if (e.IsError) + { + if (e.Message.IndexOf("동일위치") != -1 || e.Message.IndexOf("inposition") != -1) + { // Pub.log.AddAT("MOT:" + e.Message); + } + else PUB.log.AddE("MOT:" + e.Message); + } + + else PUB.log.Add("MOT:" + e.Message); + } + + } +} diff --git a/Handler/Project/RunCode/_SM_RUN.cs b/Handler/Project/RunCode/_SM_RUN.cs new file mode 100644 index 0000000..8df35d9 --- /dev/null +++ b/Handler/Project/RunCode/_SM_RUN.cs @@ -0,0 +1,202 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using AR; +namespace Project +{ + public partial class FMain + { + bool[] runStepisFirst = new bool[] { false, false }; + + #region "Is Can Pick On/Off" + + Boolean isCanPLPickOn() + { + //아이템을 가지고 있으면 안된다. + if (PUB.flag.get(eVarBool.FG_PL_ITEMON)) return false; + + //Y축이 집는 위치가 아니면 빠져나감 + var Pos = MOT.getPositionMatch(MOT.GetLMPos(eLMLoc.READY));// MOT.GetPLM_PosName(); + if (Pos) return false; + + return true; + } + + Boolean isCanPRPickOn() + { + //아이템을 가지고 있으면 안된다. + if (PUB.flag.get(eVarBool.FG_PR_ITEMON)) return false; + + //Y축이 집는 위치가 아니면 빠져나감 + var Pos = MOT.getPositionMatch(MOT.GetRMPos(eRMLoc.READY));// MOT.GetPRM_PosName(); + if (Pos) return false; + + return true; + } + + Boolean isCanPLPickOff() + { + //아이템이 없으면 불가 + if (PUB.flag.get(eVarBool.FG_PL_ITEMON) == false) return false; + + //Y축 위치 확인 + var PosH07 = MOT.getPositionMatch(MOT.GetLMPos(eLMLoc.PRINTH07)); + var PosM07 = MOT.getPositionMatch(MOT.GetLMPos(eLMLoc.PRINTM07)); + var PosL07 = MOT.getPositionMatch(MOT.GetLMPos(eLMLoc.PRINTL07)); + + var PosH13 = MOT.getPositionMatch(MOT.GetLMPos(eLMLoc.PRINTH13)); + var PosM13 = MOT.getPositionMatch(MOT.GetLMPos(eLMLoc.PRINTM13)); + var PosL13 = MOT.getPositionMatch(MOT.GetLMPos(eLMLoc.PRINTL13)); + + if (PosH07 && PosM07 && PosL07 && PosH13 && PosM13 && PosL13) return false; + + //포트가 준비되지않았거나, 감지가 안되었다면 진행 불가 + if (PUB.flag.get(eVarBool.FG_RDY_PORT_PL) == false || hmi1.arVar_Port[0].AlignOK != 1) return false; + + return true; + } + + + Boolean isCanPRPickOff() + { + //아이템이 없으면 불가 + if (PUB.flag.get(eVarBool.FG_PR_ITEMON) == false) return false; + + //Y축 위치 확인 + var PosH07 = MOT.getPositionMatch(MOT.GetRMPos(eRMLoc.PRINTH07)); + var PosM07 = MOT.getPositionMatch(MOT.GetRMPos(eRMLoc.PRINTM07)); + var PosL07 = MOT.getPositionMatch(MOT.GetRMPos(eRMLoc.PRINTL07)); + + var PosH13 = MOT.getPositionMatch(MOT.GetRMPos(eRMLoc.PRINTH13)); + var PosM13 = MOT.getPositionMatch(MOT.GetRMPos(eRMLoc.PRINTM13)); + var PosL13 = MOT.getPositionMatch(MOT.GetRMPos(eRMLoc.PRINTL13)); + + if (PosH07 && PosM07 && PosL07 && PosH13 && PosM13 && PosL13) return false; + + //포트가 준비되지않았거나, 감지가 안되었다면 진행 불가 + if (PUB.flag.get(eVarBool.FG_RDY_PORT_PR) == false || hmi1.arVar_Port[2].AlignOK != 1) return false; + + return true; + } + + Boolean isCanPickOffL() + { + //아이템이 없으면 불가 + if (PUB.flag.get(eVarBool.FG_PK_ITEMON) == false) return false; + + //Y축 위치 확인 + if (MOT.getPositionMatch(MOT.GetPXPos(ePXLoc.PICKOFFL)) == false) return false; + + //포트가 준비되지않았거나, 감지가 안되었다면 진행 불가 + if (PUB.flag.get(eVarBool.FG_RDY_PORT_PL) == false || hmi1.arVar_Port[0].AlignOK != 1) return false; + + return true; + } + + Boolean isCanPickOn() + { + //아이템을 가지고 있으면 안된다. + if (PUB.flag.get(eVarBool.FG_PK_ITEMON)) return false; + + //Y축이 집는 위치가 아니면 빠져나감 + if (MOT.getPositionMatch(MOT.GetPXPos(ePXLoc.PICKON)) == false) return false; + + //포트가 준비되어 있지 않다면 가져갈수 없다 + if (PUB.Result.DryRun == false && (PUB.flag.get(eVarBool.FG_RDY_PORT_PC) == false || hmi1.arVar_Port[1].AlignOK != 1)) return false; + + return true; + } + + Boolean isCanPickOffR() + { + //아이템이 없으면 불가 + if (PUB.flag.get(eVarBool.FG_PK_ITEMON) == false) return false; + + //Y축 위치 확인 + if (MOT.getPositionMatch(MOT.GetPXPos(ePXLoc.PICKOFFR)) == false) return false; + + //포트가 준비되지않았거나, 감지가 안되었다면 진행 불가 + if (PUB.flag.get(eVarBool.FG_RDY_PORT_PR) == false || hmi1.arVar_Port[2].AlignOK != 1) return false; + + return true; + } + + #endregion + + bool CheckPauseCondition(Boolean lightCheck) + { + //비상정지체크 + if (DIO.IsEmergencyOn() == true || PUB.mot.HasEmergencyStop) + { + //이것은 SPS에서 추가로 처리된다 + PUB.Result.SetResultMessage(eResult.EMERGENCY, eECode.EMERGENCY, eNextStep.NOTHING);// false); + return false; + } + + //홈이 잡혀잇는지 체크한다 + if (PUB.mot.HasHomeSetOff == true) + { + PUB.Result.SetResultMessage(eResult.MOTION, eECode.MOT_HSET, eNextStep.ERROR); + return false; + } + + if (lightCheck == false) + { + //안전센서체크 + if (DIO.isSaftyDoorF() == false) + { + PUB.Result.SetResultMessage(eResult.EMERGENCY, eECode.DOORSAFTY, eNextStep.PAUSE);// false); + PUB.mot.MoveStop("안전문제", true); + + if (DIO.isSaftyDoorF(0, false) == false) DIO.SetPortMotor(0, eMotDir.CW, false, "안전오류"); + if (DIO.isSaftyDoorF(1, false) == false) DIO.SetPortMotor(1, eMotDir.CW, false, "안전오류"); + if (DIO.isSaftyDoorF(2, false) == false) DIO.SetPortMotor(2, eMotDir.CW, false, "안전오류"); + return false; + } + + //에어공급출력체크 + if (AR.SETTING.Data.DisableSensor_AIRCheck == false && DIO.GetIOOutput(eDOName.SOL_AIR) == false) + { + PUB.Result.SetResultMessage(eResult.HARDWARE, eECode.AIRNOOUT, eNextStep.PAUSE);//false); + return false; + } + + //오버로드체크 + if (hmi1.arVar_Port[0].OverLoad) + { + PUB.Result.SetResultMessage(eResult.SENSOR, eECode.PORTOVERLOAD, eNextStep.PAUSE, new object[] { "FRONT-LEFT" }); + return false; + } + } + + return true; + } + + Boolean isPortLimDN(int idx) + { + if (idx < 0 || idx > 2) throw new Exception("포트번호는(0~2)사이로 입력하세요"); + if (idx == 0) return DIO.GetIOInput(eDIName.PORTL_LIM_DN); + else if (idx == 1) return DIO.GetIOInput(eDIName.PORTC_LIM_DN); + else return DIO.GetIOInput(eDIName.PORTR_LIM_DN); + + } + Boolean isPortLimUP(int idx) + { + if (idx < 0 || idx > 2) throw new Exception("포트번호는(0~2)사이로 입력하세요"); + if (idx == 0) return DIO.GetIOInput(eDIName.PORTL_LIM_UP); + else if (idx == 1) return DIO.GetIOInput(eDIName.PORTC_LIM_UP); + else return DIO.GetIOInput(eDIName.PORTR_LIM_UP); + } + Boolean isPortDetUp(int idx) + { + if (idx < 0 || idx > 2) throw new Exception("포트번호는(0~2)사이로 입력하세요"); + if (idx == 0) return DIO.GetIOInput(eDIName.PORTL_DET_UP); + else if (idx == 1) return DIO.GetIOInput(eDIName.PORTC_DET_UP); + else return DIO.GetIOInput(eDIName.PORTR_DET_UP); + } + + + }//cvass +} diff --git a/Handler/Project/RunCode/_Vision.cs b/Handler/Project/RunCode/_Vision.cs new file mode 100644 index 0000000..855cab6 --- /dev/null +++ b/Handler/Project/RunCode/_Vision.cs @@ -0,0 +1,382 @@ +using Emgu.CV; +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using WatsonWebsocket; +using AR; + +namespace Project +{ + public partial class FMain + { + //DateTime lastRecvWSL = new DateTime(1982, 11, 23); + //DateTime lastRecvWSR = new DateTime(1982, 11, 23); + string lastBarcodeRawL = string.Empty; + string lastBarcodeRawR = string.Empty; + + + void AttachCameraEventL() + { + //크레비스오픈 - 210203 + //PUB.log.Add("카메라 이벤트 생성"); + PUB.wsL.MessageReceived += Ws_DataArrivalL; + PUB.wsL.ServerConnected += Ws_ConnectedL; + PUB.wsL.ServerDisconnected += Ws_DisconnectedL; + } + void DetachCameraEventL() + { + //크레비스오픈 - 210203 + //PUB.log.Add("카메라 이벤트 해제"); + PUB.wsL.MessageReceived -= Ws_DataArrivalL; + PUB.wsL.ServerConnected -= Ws_ConnectedL; + PUB.wsL.ServerDisconnected -= Ws_DisconnectedL; + + } + void AttachCameraEventR() + { + //크레비스오픈 - 210203 + //if (COMM.SETTING.Data.Log_CameraConn) PUB.log.Add("카메라 이벤트 생성"); + PUB.wsR.MessageReceived += Ws_DataArrivalR; + PUB.wsR.ServerConnected += Ws_ConnectedR; + PUB.wsR.ServerDisconnected += Ws_DisconnectedR; + } + void DetachCameraEventR() + { + //크레비스오픈 - 210203 + //if (COMM.SETTING.Data.Log_CameraConn) PUB.log.Add("카메라 이벤트 해제"); + PUB.wsR.MessageReceived -= Ws_DataArrivalR; + PUB.wsR.ServerConnected -= Ws_ConnectedR; + PUB.wsR.ServerDisconnected -= Ws_DisconnectedR; + } + private void Ws_DisconnectedL(object sender, EventArgs e) + { + var ws = sender as WatsonWebsocket.WatsonWsClient; + PUB.log.AddAT("카메라L 접속 종료"); + //_isCrevisOpen[0] = false; + PUB.flag.set(eVarBool.FG_RDY_CAMERA_L, false, "DISC"); + } + + private void Ws_ConnectedL(object sender, EventArgs e) + { + PUB.log.AddAT("카메라L 접속 성공"); + //_isCrevisOpen[0] = true; + } + private void Ws_DisconnectedR(object sender, EventArgs e) + { + var ws = sender as WatsonWebsocket.WatsonWsClient; + PUB.log.AddAT("카메라R 접속 종료"); + //_isCrevisOpen[2] = false; + PUB.flag.set(eVarBool.FG_RDY_CAMERA_R, false, "DISC"); + } + + private void Ws_ConnectedR(object sender, EventArgs e) + { + PUB.log.AddAT("카메라R 접속 성공"); + //_isCrevisOpen[2] = true; + } + + private void Ws_DataArrivalL(object sender, MessageReceivedEventArgs e) + { + Ws_DataArrival(0, sender as WatsonWsClient, e); + } + private void Ws_DataArrivalR(object sender, MessageReceivedEventArgs e) + { + Ws_DataArrival(1, sender as WatsonWsClient, e); + } + + private void Ws_DataArrival(int idx, WatsonWsClient ws, MessageReceivedEventArgs e) + { + //throw new NotImplementedException(); + var data = Encoding.UTF8.GetString(e.Data);// Pub.ws.Get(); + if (idx == 0) VAR.TIME[eVarTime.lastRecvWSL] = DateTime.Now; + else VAR.TIME[eVarTime.lastRecvWSR] = DateTime.Now; + + + + if (data.Contains("\"command\":\"status")) + { + //PUB.logVision.Add($"[{idx}]상태메세지수신"); + //PUB.logVision.Flush(); + try + { + var jsondata = JObject.Parse(data); + var msgdata = new + { + command = jsondata.Value("command"), + camera = jsondata.Value("camera"), + live = jsondata.Value("live"), + stream = jsondata.Value("stream"), + listen = jsondata.Value("listen"), + trig = jsondata.Value("trig"), + license = jsondata.Value("license"), + reel = jsondata.Value("reel"), + conv = jsondata.Value("conv"), + }; + + if (idx == 0) + { + PUB.flag.set(eVarBool.VS_DETECT_REEL_L, (msgdata.reel == "1"), "WS"); + PUB.flag.set(eVarBool.VS_DETECT_CONV_L, (msgdata.conv == "1"), "WS"); + } + else + { + PUB.flag.set(eVarBool.VS_DETECT_REEL_R, (msgdata.reel == "1"), "WS"); + PUB.flag.set(eVarBool.VS_DETECT_CONV_R, (msgdata.conv == "1"), "WS"); + } + + + if (msgdata.license == "1" && msgdata.camera == "1") + { + if (idx == 0) + { + if(PUB.flag.get(eVarBool.FG_RDY_CAMERA_L)==false) + { + PUB.flag.set(eVarBool.FG_RDY_CAMERA_L, true, "WEBSOCKET"); + PUB.log.Add("왼쪽카메라 준비 완료"); + } + } + else + { + if (PUB.flag.get(eVarBool.FG_RDY_CAMERA_R) == false) + { + PUB.flag.set(eVarBool.FG_RDY_CAMERA_R, true, "WEBSOCKET"); + PUB.log.Add("오른쪽카메라 준비 완료"); + } + + } + } + else + { + if (idx == 0) PUB.flag.set(eVarBool.FG_RDY_CAMERA_L, false, "WEBSOCKET"); + else PUB.flag.set(eVarBool.FG_RDY_CAMERA_R, false, "WEBSOCKET"); + } + } + catch (Exception ex) + { + PUB.log.AddE("상태메시지 분석실패: " + ex.Message); + } + } + else + { + //처리가능한 상황에서만 큐에 데이터를 넣는다 + if (idx == 0 && PUB.flag.get(eVarBool.FG_PRC_VISIONL) == false) + { + PUB.log.AddAT("(좌)측 비젼 검증상태가 아니므로 바코드 데이터 삭제\n" + data); + return; + } + if (idx != 0 && PUB.flag.get(eVarBool.FG_PRC_VISIONR) == false) + { + PUB.log.AddAT("(우)측 비젼 검증상태가 아니므로 바코드 데이터 삭제\n" + data); + return; + } + + PUB.log.Add($"QR검증({(idx == 0 ? "L" : "R")})수신: " + data); + var guid = idx == 0 ? PUB.Result.ItemDataL.guid : PUB.Result.ItemDataR.guid; + + //BarcodeParsing(idx, guid, data, "WS"); + var qrDataList = ProcessRecvBarcodeData(idx, data); + if (qrDataList.Count > 0) //바코드데이터가 존재 했다 + { + //처리가 완료되지 않은경우엠ㄴ 사용한다. + if (idx == 0) + { + if (PUB.flag.get(eVarBool.FG_END_VISIONL) == false) + { + var Complete = RecvQRProcess(qrDataList, eWorkPort.Left); + if (Complete) PUB.flag.set(eVarBool.FG_END_VISIONL, true, "DATA_ARRIVAL"); + } + else PUB.log.AddAT("비젼(L) 이전작업이 완료되어 처리하지 않음"); + } + else + { + if (PUB.flag.get(eVarBool.FG_END_VISIONR) == false) + { + var Complete = RecvQRProcess(qrDataList, eWorkPort.Right); + if (Complete) PUB.flag.set(eVarBool.FG_END_VISIONR, true, "DATA_ARRIVAL"); + } + else PUB.log.AddAT("비젼(R) 이전작업이 완료되어 처리하지 않음"); + } + } + + } + + } + + + + + //바코드 원본의 데이터큐 + //ConcurrentQueue BarcodeQueL = new ConcurrentQueue(); + //ConcurrentQueue BarcodeQueR = new ConcurrentQueue(); + + //bool BarcodeParsing(int idx, string guid, string jsonstr, string source, Boolean force = false) + //{ + + // //값이있다면 바코드 큐에 집어 넣는다. + // if (idx == 0) + // { + // lastBarcodeRawL = jsonstr; + // lock (BarcodeQueL) + // BarcodeQueL.Enqueue(jsonstr); + // } + // else + // { + // lastBarcodeRawR = jsonstr; + // lock (BarcodeQueR) + // BarcodeQueR.Enqueue(jsonstr); + // } + + // return true; + //} + + //DateTime WSLLastRecv = DateTime.Now; + //DateTime WSRLastRecv = DateTime.Now; + bool WS_Send(eWorkPort idx, WatsonWebsocket.WatsonWsClient ws, string guid, string cmd,string data) + { + if (ws == null) return false; + + //데이터 생성 + var msg = new + { + guid = guid, + command = cmd, + data = data + }; + + var json = Newtonsoft.Json.JsonConvert.SerializeObject(msg); + Boolean sendok = false; + try + { + //PUB.log.Add($"전송({idx}),ID:{guid},명령:{cmd}"); + ws.SendAsync(json); + sendok = true; + } + catch (Exception ex) + { + PUB.log.AddE($"전송{idx}실패{ex.Message}"); + sendok = false; + } + + if (sendok == false) + { + try + { + if (idx == 0) CameraConTimeL = DateTime.Now; + else CameraConTimeR = DateTime.Now; + + if(ws != null) + { + PUB.log.AddAT($"전송{idx} 실패로 소켓을 닫습니다"); + ws.Stop(); + } + } + catch (Exception ex) + { + PUB.log.AddE($"소켓{idx} 종료 실패:{ex.Message}"); + } + } + return sendok; + } + + //System.Diagnostics.Stopwatch wat = new System.Diagnostics.Stopwatch(); + //System.Diagnostics.Stopwatch wat0 = new System.Diagnostics.Stopwatch(); + //System.Diagnostics.Stopwatch wat1 = new System.Diagnostics.Stopwatch(); + //System.Diagnostics.Stopwatch wat2 = new System.Diagnostics.Stopwatch(); + + + /// + /// 바코드큐에있는 데이터를 분석하고 시작한다. + /// + /// + /// + /// + List ProcessRecvBarcodeData(int vIdx, string JsonStr) + { + //PUB.logVision.Add($"[{vIdx}]ProcessBarcodeQue"); + //PUB.logVision.Flush(); + List retval = new List(); + + if (JsonStr.isEmpty()) + { + PUB.log.AddE("바코드 수신값(JSON) 이 없어 진행할 수 없습니다"); + return retval; + } + + if (vIdx == 0) + lastBarcodeRawL = JsonStr; + else + lastBarcodeRawR = JsonStr; + + try + { + //모델에서 고정값을 입력한게 있다면 그것을 사용한다 + var itemC = PUB.Result.ItemDataC; + if (itemC.VisionData.VNAME.isEmpty() && PUB.Result.vModel.Def_Vname.isEmpty() == false) + { + itemC.VisionData.VNAME = PUB.Result.vModel.Def_Vname; + itemC.VisionData.VNAME_Trust = true; + PUB.log.Add($"Defaul V.Name Set to {PUB.Result.vModel.Def_Vname}"); + } + if (itemC.VisionData.MFGDATE.isEmpty() && PUB.Result.vModel.Def_MFG.isEmpty() == false) + { + itemC.VisionData.MFGDATE = PUB.Result.vModel.Def_MFG; + itemC.VisionData.MFGDATE_Trust = true; + PUB.log.Add($"Defaul MFGDATE Set to {PUB.Result.vModel.Def_MFG}"); + } + + var jsondata = JObject.Parse(JsonStr); + var msgdata = new + { + guid = jsondata.Value("guid"), + command = jsondata.Value("command"), + data = jsondata.Value("data[]"), + time = jsondata.Value("time"), + file = jsondata.Value("file") + }; + + var datas = jsondata.GetValue("data"); + if (datas.Type == JTokenType.String) + { + var bcdstr = datas.ToString(); + + //새로운 바코드라면 추가한다 + if (retval.Contains(bcdstr) == false) + retval.Add(bcdstr); + } + else + { + //데이터가 배열로 들어있는 경우이다 + foreach (var data in datas) + { + var dataarr = new + { + barcode = data.ToString() + }; + if (dataarr.barcode.isEmpty()) continue; + if (retval.Contains(dataarr.barcode) == false) + retval.Add(dataarr.barcode); + } + } + + //입력된 바코드 데이터를 확인한다. + //각 데이터는 아래처럼 변수에 추가를 해줘야ㅏ한ㄷ.ㅏ + //ImageProcessResult[vIdx].Add(item.data); + + + } + catch (Exception ex) + { + PUB.logVision.Add($"카메라(${vIdx}) ProcessBarcodeQue 실패{ex.Message}"); PUB.logVision.Flush(); + } + + return retval; + } + + + } +} diff --git a/Handler/Project/STDLabelAttach(Conv+swPLC).csproj b/Handler/Project/STDLabelAttach(Conv+swPLC).csproj new file mode 100644 index 0000000..0f70036 --- /dev/null +++ b/Handler/Project/STDLabelAttach(Conv+swPLC).csproj @@ -0,0 +1,1115 @@ + + + + + Debug + AnyCPU + {65F3E762-800C-499E-862F-A535642EC59F} + WinExe + Project + Amkor + v4.8 + 512 + false + False + False + OnBuildSuccess + False + False + False + obj\$(Configuration)\ + + + + 게시\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + x64 + true + Full + False + ..\..\..\..\..\Amkor\BulkReelReader\ + DEBUG;TRACE + prompt + 4 + false + + + AnyCPU + pdbonly + true + ..\..\..\ManualMapEditor\ + TRACE + prompt + 4 + false + + + icons8-split-64.ico + + + LocalIntranet + + + false + + + + true + ..\..\..\..\..\..\Amkor\STDLabelAttach%28Conv%29\ + DEBUG;TRACE + full + x64 + prompt + MinimumRecommendedRules.ruleset + false + + + bin\ + TRACE + true + pdbonly + x86 + prompt + MinimumRecommendedRules.ruleset + false + + + Project + False + obj\ + + + 4194304 + False + Auto + + + + + + Properties\app.manifest + + + + ..\DLL\ArLog.Net4.dll + + + False + ..\DLL\ArSetting.Net4.dll + + + ..\packages\chilkat-x64.9.5.0.77\lib\net47\ChilkatDotNet47.dll + + + ..\DLL\Communication.dll + + + C:\Emgu\emgucv-windesktop 3.2.0.2682\bin\Emgu.CV.DebuggerVisualizers.VS2017.dll + + + ..\packages\Emgu.CV.4.5.1.4349\lib\netstandard2.0\Emgu.CV.Platform.NetStandard.dll + + + C:\Emgu\emgucv-windesktop 3.2.0.2682\bin\Emgu.CV.UI.dll + + + ..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll + + + ..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.SqlServer.dll + + + ..\packages\HidSharp.2.1.0\lib\net35\HidSharp.dll + + + False + ..\DLL\libxl\libxl.net.dll + + + ..\packages\Microsoft.Owin.4.2.2\lib\net45\Microsoft.Owin.dll + + + ..\packages\Microsoft.Owin.Cors.4.2.2\lib\net45\Microsoft.Owin.Cors.dll + + + ..\packages\Microsoft.Owin.FileSystems.4.2.2\lib\net45\Microsoft.Owin.FileSystems.dll + + + ..\packages\Microsoft.Owin.Host.HttpListener.4.2.2\lib\net45\Microsoft.Owin.Host.HttpListener.dll + + + ..\packages\Microsoft.Owin.Hosting.4.2.2\lib\net45\Microsoft.Owin.Hosting.dll + + + ..\packages\Microsoft.Owin.StaticFiles.4.2.2\lib\net45\Microsoft.Owin.StaticFiles.dll + + + ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll + + + ..\packages\Owin.1.0\lib\net40\Owin.dll + + + ..\DLL\Sato\x64\SATOPrinterAPI.dll + + + False + .\SoftekBarcodeNet.dll + + + C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.8\System.dll + + + + + + ..\packages\System.Drawing.Common.7.0.0\lib\net462\System.Drawing.Common.dll + + + ..\packages\System.Drawing.Primitives.4.3.0\lib\net45\System.Drawing.Primitives.dll + + + + + + + ..\packages\Microsoft.AspNet.WebApi.Client.5.2.9\lib\net45\System.Net.Http.Formatting.dll + + + + + + + ..\packages\Microsoft.AspNet.Cors.5.2.9\lib\net45\System.Web.Cors.dll + + + ..\packages\Microsoft.AspNet.WebApi.Core.5.2.9\lib\net45\System.Web.Http.dll + + + ..\packages\Microsoft.AspNet.WebApi.Owin.5.2.9\lib\net45\System.Web.Http.Owin.dll + + + ..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.9\lib\net45\System.Web.Http.WebHost.dll + + + + + + + + + + + + ..\DLL\WatsonWebsocket.dll + + + ..\DLL\Winsock Orcas.dll + + + + + Form + + + Form + + + Form + + + Form + + + + + + + + + + + + + + + + + + + + + + + Model1.tt + + + Model1.tt + + + Model1.tt + + + + + + + + + + Form + + + Form + + + fSendInboutData.cs + + + Form + + + fDataBufferSIDRef.cs + + + Form + + + fHistory.cs + + + Form + + + fLoaderInfo.cs + + + Form + + + fManualPrint.cs + + + Form + + + fManualPrint0.cs + + + Form + + + fMessageInput.cs + + + Form + + + fNewReelID.cs + + + Form + + + fNewSID.cs + + + Form + + + fswPLC.cs + + + Form + + + fPickerMove.cs + + + Form + + + fSavePosition.cs + + + Form + + + fSelectCustInfo.cs + + + Form + + + fSelectResult.cs + + + Form + + + fSelectDataList.cs + + + Form + + + fSelectDay.cs + + + Form + + + fSelectJob.cs + + + Form + + + fSelectSID.cs + + + Form + + + fVAR.cs + + + Form + + + fZPLEditor.cs + + + Form + + + Model_Motion.cs + + + Form + + + Model_Motion_Desc.cs + + + Form + + + Model_Operation.cs + + + Form + + + Motion_MoveToGroup.cs + + + Form + + + RegExPrintRule.cs + + + Form + + + RegExRule.cs + + + Form + + + RegExTest.cs + + + Form + + + UserControl + + + UserControl1.cs + + + + + + + + Form + + + fDebug.cs + + + Form + + + fFinishJob.cs + + + Form + + + fSIDQty.cs + + + Form + + + DataSet1.xsd + + + True + True + DataSet1.xsd + + + Form + + + Quick_Control.cs.cs + + + Form + + + DIOMonitor.cs + + + Form + + + fLog.cs + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + fSystem_Setting.cs + + + DSList.xsd + + + True + True + DSList.xsd + + + True + True + DSSetup.xsd + + + Form + + + fMain.cs + + + + True + True + Model1.Context.tt + + + True + True + Model1.tt + + + True + True + Model1.edmx + + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + + Form + + + fSetting.cs + + + + + + + + + + Form + + + fSetting_ErrorMessage.cs + + + Form + + + fSetting_IOMessage.cs + + + Form + + + fSystem_MotParameter.cs + + + + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + + + CtlBase.cs + + + Component + + + CtlContainer.cs + + + Component + + + CtlCylinder.cs + + + Component + + + CtlMotor.cs + + + Component + + + CtlSensor.cs + + + Component + + + CtlTowerLamp.cs + + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + Form + + + + + + Form + + + Model1.tt + + + fSendInboutData.cs + + + fDataBufferSIDRef.cs + + + fHistory.cs + + + fLoaderInfo.cs + + + fManualPrint.cs + + + fManualPrint0.cs + + + fMessageInput.cs + + + fNewReelID.cs + + + fNewSID.cs + + + fswPLC.cs + + + fPickerMove.cs + + + fSavePosition.cs + + + fSelectCustInfo.cs + + + fSelectJob.cs + + + fSelectResult.cs + + + fSelectDataList.cs + + + fSelectDay.cs + + + fDebug.cs + + + fFinishJob.cs + + + fVAR.cs + + + fZPLEditor.cs + + + Model_Motion.cs + + + Model_Motion_Desc.cs + + + Model_Operation.cs + + + Motion_MoveToGroup.cs + + + Quick_Control.cs.cs + + + fSelectSID.cs + + + RegExPrintRule.cs + + + RegExRule.cs + + + RegExTest.cs + + + UserControl1.cs + + + DIOMonitor.cs + + + fLog.cs + + + fSIDQty.cs + + + fSystem_Setting.cs + + + fMain.cs + Designer + + + fSetting.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + fSetting_ErrorMessage.cs + + + fSetting_IOMessage.cs + + + fSystem_MotParameter.cs + + + CtlMotor.cs + + + + DataSet1.xsd + + + Designer + MSDataSetGenerator + DataSet1.Designer.cs + + + DataSet1.xsd + Designer + + + DSList.xsd + + + Designer + MSDataSetGenerator + DSList.Designer.cs + + + DSList.xsd + + + EntityModelCodeGenerator + Model1.Designer.cs + + + DSSetup.xsd + + + Designer + MSDataSetGenerator + DSSetup.Designer.cs + + + DSSetup.xsd + + + Model1.edmx + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + PreserveNewest + + + TextTemplatingFileGenerator + Model1.Context.cs + Model1.edmx + + + TextTemplatingFileGenerator + Model1.edmx + Model1.cs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + False + Microsoft .NET Framework 4%28x86 및 x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 4.5 + true + + + + + {9264cd2e-7cf8-4237-a69f-dcda984e0613} + UIControl + + + {58cfc90c-5068-46a2-a8de-0e92ee9e0990} + AmkorRestfulService + + + {4f457e76-bf83-4b98-8565-ae87d7d16744} + arAzinAxt + + + {f31c242c-1b15-4518-9733-48558499fe4b} + arControl + + + {a16c9667-5241-4313-888e-548375f85d29} + arFrameControl + + + {ed0d4179-fc0d-48d5-8bb3-cbf0f03d170c} + arImageViewer.Emgu + + + {140af52a-5986-4413-bf02-8ea55a61891b} + MemoryMapCore + + + {802df40d-660e-4d72-b982-2fe5e6a7df1a} + arRS232 + + + {14e8c9a5-013e-49ba-b435-efefc77dd623} + CommData + + + {d54444f7-1d85-4d5d-b1d1-10d040141a91} + arCommSM + + + {14e8c9a5-013e-49ba-b435-ffffff7dd623} + arCommUtil + + + {48654765-548d-42ed-9238-d65eb3bc99ad} + Setting + + + {b18d3b96-2fdf-4ed9-9a49-d9b8cee4ed6d} + StdLabelPrint + + + + + + + + \ No newline at end of file diff --git a/Handler/Project/Setting/CounterSetting.cs b/Handler/Project/Setting/CounterSetting.cs new file mode 100644 index 0000000..e0e21cb --- /dev/null +++ b/Handler/Project/Setting/CounterSetting.cs @@ -0,0 +1,81 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel; +using AR; + +namespace Project +{ + public class CounterSetting : arUtil.Setting + { + public int seq { get; set; } + public string DateStr { get; set; } + + + + public void ClearP() + { + CountV0 = CountV1 = CountV2 = CountE = CountP0 = CountP1 = CountP2 = CountPrintL = CountPrintR = 0; + PUB.log.Add("Count(Port) Clear"); + this.Save(); + } + + public void ClearDay() + { + DateStr = string.Empty; + CountDP0 = CountDP1 = CountDP2 = CountDP3 = CountDP4 = 0; + PUB.log.Add("Count(Day) Clear"); + this.Save(); + } + + public int CountD + { + get + { + return CountDP0 + CountDP1 + CountDP2 + CountDP3 + CountDP4; + } + } + public int Count + { + get + { + return CountP0 + CountP1 + CountP2 + CountPrintL + CountPrintR; + } + } + + public int CountDP0 { get; set; } + public int CountDP1 { get; set; } + public int CountDP2 { get; set; } + public int CountDP3 { get; set; } + public int CountDP4 { get; set; } + + + + + //메인카운터 + public int CountP0 { get; set; } + public int CountP1 { get; set; } + public int CountP2 { get; set; } + public int CountPrintL { get; set; } + public int CountPrintR { get; set; } + public int CountE { get; set; } + public int CountV0 { get; set; } + public int CountV1 { get; set; } + public int CountV2 { get; set; } + + + public CounterSetting() + { + this.filename = AR.UTIL.CurrentPath + "counter.xml"; + } + public override void AfterLoad() + { + //if (CountReset == null) CountReset = DateTime.Parse("1982-11-23"); + } + public override void AfterSave() + { + //throw new NotImplementedException(); + } + } +} diff --git a/Handler/Project/Setting/System_MotParameter.cs b/Handler/Project/Setting/System_MotParameter.cs new file mode 100644 index 0000000..19796ce --- /dev/null +++ b/Handler/Project/Setting/System_MotParameter.cs @@ -0,0 +1,263 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel; + + +namespace Project +{ + public class System_MotParameter + { + + string filename; + public DSSetup.MotionParamDataTable dt; + public int MotaxisCount + { + get + { + if (this.dt.Rows.Count < 1) return 0; + var maxid = this.dt.Max(t => t.idx); + return maxid + 1; + } + } + + + double[] _maxspeed; + public double MaxSpeed(int idx) + { + var dr = dt.Where(t => t.idx == idx).FirstOrDefault(); + if (dr == null) return 0; + else return dr.MaxSpeed; + } + public double[] GetMaxSpeed + { + get + { + if (MotaxisCount < 1) return null; + + if (_maxspeed == null || _maxspeed.Length != MotaxisCount) + { + _maxspeed = new double[MotaxisCount]; + for (int i = 0; i < MotaxisCount; i++) + { + _maxspeed[i] = MaxSpeed(i); + } + } + + return _maxspeed; + } + } + + public void ClearCache() + { + _maxspeed = null; + _maxacc = null; + } + + double[] _maxacc; + + public double MaxAcc(int idx) + { + var dr = dt.Where(t => t.idx == idx).FirstOrDefault(); + if (dr == null) return 0; + else return dr.MaxAcc; + } + + public double[] GetMaxAcc + { + get + { + if (MotaxisCount < 1) return null; + + if (_maxacc == null || _maxacc.Length != MotaxisCount) + { + _maxacc = new double[MotaxisCount]; + for (int i = 0; i < MotaxisCount; i++) + { + _maxacc[i] = MaxAcc(i); + } + } + return _maxacc; + } + } + + public double HomeSpeedHigh(int idx) + { + var dr = dt.Where(t => t.idx == idx).FirstOrDefault(); + if (dr == null) return 30; + else return dr.HomeHigh; + } + public double[] GetHomeSpeedHigh + { + get + { + if (MotaxisCount < 1) return null; + var retval = new double[MotaxisCount]; + for (int i = 0; i < MotaxisCount; i++) + { + retval[i] = HomeSpeedHigh(i); + } + return retval; + } + } + public double HomeSpeedLow(int idx) + { + var dr = dt.Where(t => t.idx == idx).FirstOrDefault(); + if (dr == null) return 10; + else return dr.HomeLow; + } + public double[] GetHomeSpeedLow + { + get + { + if (MotaxisCount < 1) return null; + var retval = new double[MotaxisCount]; + for (int i = 0; i < MotaxisCount; i++) + { + retval[i] = HomeSpeedLow(i); + } + return retval; + } + } + public double HomeSpeedAcc(int idx) + { + var dr = dt.Where(t => t.idx == idx).FirstOrDefault(); + if (dr == null) return 50; + else return dr.HomeAcc; + } + public double[] GetHomeSpeedAcc + { + get + { + if (MotaxisCount < 1) return null; + var retval = new double[MotaxisCount]; + for (int i = 0; i < MotaxisCount; i++) + { + retval[i] = HomeSpeedAcc(i); + } + return retval; + } + } + public Boolean UseEStopSignal(int idx) + { + var dr = dt.Where(t => t.idx == idx).FirstOrDefault(); + if (dr == null) return false; + else return dr.UseEStop; + } + + public Boolean UseOriginSignal(int idx) + { + var dr = dt.Where(t => t.idx == idx).FirstOrDefault(); + if (dr == null) return false; + else return dr.UseOrigin; + } + + public Boolean UseAxis(int idx) + { + var dr = dt.Where(t => t.idx == idx).FirstOrDefault(); + if (dr == null) return false; + else return dr.Enable; + } + public double SWLimit(int idx) + { + var dr = dt.Where(t => t.idx == idx).FirstOrDefault(); + if (dr == null) return 0; + else return dr.SWLimitP; + } + + public double HomeSpeedDcc(int idx) + { + var dr = dt.Where(t => t.idx == idx).FirstOrDefault(); + if (dr == null) return 50; + else return dr.HomeDcc; + } + + + public float INPAccurary(int idx) + { + var dr = dt.Where(t => t.idx == idx).FirstOrDefault(); + if (dr == null) return 0.1f; + else return dr.InpositionAccr; + } + + public double[] GetHomeSpeedDcc + { + get + { + if (MotaxisCount < 1) return null; + var retval = new double[MotaxisCount]; + for (int i = 0; i < MotaxisCount; i++) + { + retval[i] = HomeSpeedDcc(i); + } + return retval; + } + } + public Boolean[] GetUseAxis + { + get + { + if (MotaxisCount < 1) return null; + var retval = new bool[MotaxisCount]; + for (int i = 0; i < MotaxisCount; i++) + { + retval[i] = UseAxis(i); + } + return retval; + } + } + public Boolean[] GetUseOrigin + { + get + { + if (MotaxisCount < 1) return null; + var retval = new bool[MotaxisCount]; + for (int i = 0; i < MotaxisCount; i++) + { + retval[i] = UseOriginSignal(i); + } + return retval; + } + } + + public Boolean[] GetUseEStop + { + get + { + if (MotaxisCount < 1) return null; + var retval = new bool[MotaxisCount]; + for (int i = 0; i < MotaxisCount; i++) + { + retval[i] = UseEStopSignal(i); + } + return retval; + } + } + public System_MotParameter(string filename) + { + this.filename = filename; + //if (string.IsNullOrEmpty(filename) + //this.filename = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "system_mot.xml"); + dt = new DSSetup.MotionParamDataTable(); + } + public void Save(DSSetup.MotionParamDataTable dt) + { + this.dt.Clear(); + this.dt.Merge(dt); + this.dt.AcceptChanges(); + if (string.IsNullOrEmpty(this.filename) == false) + this.dt.WriteXml(this.filename); + } + public void Load() + { + if (string.IsNullOrEmpty(this.filename) == false) + { + dt.Clear(); + if (System.IO.File.Exists(this.filename)) + dt.ReadXml(this.filename); + dt.AcceptChanges(); + } + } + } +} diff --git a/Handler/Project/Setting/System_Setting.cs b/Handler/Project/Setting/System_Setting.cs new file mode 100644 index 0000000..df59193 --- /dev/null +++ b/Handler/Project/Setting/System_Setting.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel; +using AR; + +namespace Project +{ + + public class SystemSetting : arUtil.Setting + { + public int SaftySensor_Threshold { get; set; } + + #region "System Setting" + public int MotaxisCount { get; set; } + #endregion + + #region "Signal Reverse" + + + [Category("Signal Reverse")] + public Boolean ReverseSIG_Emgergency { get; set; } + [Category("Signal Reverse")] + public Boolean ReverseSIG_ButtonAir { get; set; } + [Category("Signal Reverse")] + public Boolean ReverseSIG_DoorF { get; set; } + [Category("Signal Reverse")] + public Boolean ReverseSIG_DoorR { get; set; } + [Category("Signal Reverse")] + public Boolean ReverseSIG_AirCheck { get; set; } + [Category("Signal Reverse")] + public Boolean ReverseSIG_PortLimitUp { get; set; } + [Category("Signal Reverse")] + public Boolean ReverseSIG_PortLimitDn { get; set; } + [Category("Signal Reverse")] + public Boolean ReverseSIG_PortDetect0Up { get; set; } + [Category("Signal Reverse")] + public Boolean ReverseSIG_PortDetect1Up { get; set; } + [Category("Signal Reverse")] + public Boolean ReverseSIG_PortDetect2Up { get; set; } + [Category("Signal Reverse")] + public Boolean ReverseSIG_PickerSafe { get; set; } + + [Category("Signal Reverse")] + public Boolean ReverseSIG_ExtConvReady { get; set; } + + #endregion + + + public SystemSetting() + { + this.filename = UTIL.CurrentPath + "system.xml"; + } + public override void AfterLoad() + { + MotaxisCount = 7; + } + public override void AfterSave() + { + //throw new NotImplementedException(); + } + } +} diff --git a/Handler/Project/Setting/UserSetting.cs b/Handler/Project/Setting/UserSetting.cs new file mode 100644 index 0000000..7c861b1 --- /dev/null +++ b/Handler/Project/Setting/UserSetting.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel; + + +namespace Project +{ + public class UserSetting : arUtil.Setting + { + public Boolean Option_QtyUpdate1 { get; set; } + public Boolean Option_PartUpdate { get; set; } + public Boolean Option_printforce1 { get; set; } + public Boolean Option_Confirm1 { get; set; } + public Boolean Option_AutoConfirm { get; set; } + public Boolean Option_vname { get; set; } + public Boolean Option_FixPrint1 { get; set; } + public string Option_PrintPos1 { get; set; } + public Boolean Option_SidConv { get; set; } + + //public Boolean Option_QtyUpdate3 { get; set; } + //public Boolean Option_printforce3 { get; set; } + //public Boolean Option_Confirm3 { get; set; } + //public Boolean Option_FixPrint3 { get; set; } + //public string Option_PrintPos3 { get; set; } + + public string LastJobUnP11 { get; set; } + public string LastJobUnP12 { get; set; } + public string LastJobUnP21 { get; set; } + public string LastJobUnP22 { get; set; } + public string LastJobUnP31 { get; set; } + public string LastJobUnP32 { get; set; } + public string LastJobUnP41 { get; set; } + public string LastJobUnP42 { get; set; } + + + public string LastLot { get; set; } + public string LastAltag { get; set; } + public string LastModelM { get; set; } + public string LastModelV { get; set; } + + public string LastMC { get; set; } + + public int jobtype { get; set; } + public int scantype { get; set; } + public bool useConv { get; set; } + public UserSetting() + { + this.filename = AppDomain.CurrentDomain.BaseDirectory + "UserSet.xml"; + } + + public override void AfterLoad() + { + + if (PUB.uSetting.LastJobUnP11.isEmpty()) PUB.uSetting.LastJobUnP11 = "AUTO"; + if (PUB.uSetting.LastJobUnP12.isEmpty()) PUB.uSetting.LastJobUnP12 = "AUTO"; + if (PUB.uSetting.LastJobUnP21.isEmpty()) PUB.uSetting.LastJobUnP21 = "AUTO"; + if (PUB.uSetting.LastJobUnP22.isEmpty()) PUB.uSetting.LastJobUnP22 = "AUTO"; + if (PUB.uSetting.LastJobUnP31.isEmpty()) PUB.uSetting.LastJobUnP31 = "AUTO"; + if (PUB.uSetting.LastJobUnP32.isEmpty()) PUB.uSetting.LastJobUnP32 = "AUTO"; + if (PUB.uSetting.LastJobUnP41.isEmpty()) PUB.uSetting.LastJobUnP41 = "AUTO"; + if (PUB.uSetting.LastJobUnP42.isEmpty()) PUB.uSetting.LastJobUnP42 = "AUTO"; + + } + public override void AfterSave() + { + //throw new NotImplementedException(); + } + } +} diff --git a/Handler/Project/Setting/fSetting.Designer.cs b/Handler/Project/Setting/fSetting.Designer.cs new file mode 100644 index 0000000..df0129e --- /dev/null +++ b/Handler/Project/Setting/fSetting.Designer.cs @@ -0,0 +1,869 @@ +namespace Project +{ + partial class fSetting + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fSetting)); + this.button1 = new System.Windows.Forms.Button(); + this.panel1 = new System.Windows.Forms.Panel(); + this.propertyGrid1 = new System.Windows.Forms.PropertyGrid(); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPage2 = new System.Windows.Forms.TabPage(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.button7 = new System.Windows.Forms.Button(); + this.button10 = new System.Windows.Forms.Button(); + this.button13 = new System.Windows.Forms.Button(); + this.button14 = new System.Windows.Forms.Button(); + this.button3 = new System.Windows.Forms.Button(); + this.btmag2 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.button6 = new System.Windows.Forms.Button(); + this.btPickerVac = new System.Windows.Forms.Button(); + this.btPort1 = new System.Windows.Forms.Button(); + this.btmag1 = new System.Windows.Forms.Button(); + this.btTWLamp = new System.Windows.Forms.Button(); + this.btBuz = new System.Windows.Forms.Button(); + this.btmag0 = new System.Windows.Forms.Button(); + this.button5 = new System.Windows.Forms.Button(); + this.btPort0 = new System.Windows.Forms.Button(); + this.btPort2 = new System.Windows.Forms.Button(); + this.btLeftVac = new System.Windows.Forms.Button(); + this.btPrintR = new System.Windows.Forms.Button(); + this.btPrintL = new System.Windows.Forms.Button(); + this.btRightVac = new System.Windows.Forms.Button(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.btDetectPrintR = new System.Windows.Forms.Button(); + this.btDetectPrintL = new System.Windows.Forms.Button(); + this.btCartDetR = new System.Windows.Forms.Button(); + this.btCartDetL = new System.Windows.Forms.Button(); + this.btCartDetC = new System.Windows.Forms.Button(); + this.btdoorr3 = new System.Windows.Forms.Button(); + this.btdoorr1 = new System.Windows.Forms.Button(); + this.btdoorf3 = new System.Windows.Forms.Button(); + this.btdoorr2 = new System.Windows.Forms.Button(); + this.btdoorf1 = new System.Windows.Forms.Button(); + this.btdoorf2 = new System.Windows.Forms.Button(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.tabPage3 = new System.Windows.Forms.TabPage(); + this.dataGridView1 = new System.Windows.Forms.DataGridView(); + this.keyDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.valueDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.bsLang = new System.Windows.Forms.BindingSource(this.components); + this.dataSet1 = new Project.DataSet1(); + this.statusStrip2 = new System.Windows.Forms.StatusStrip(); + this.lbFile = new System.Windows.Forms.ToolStripStatusLabel(); + this.toolStrip1 = new System.Windows.Forms.ToolStrip(); + this.toolStripButton1 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton3 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton4 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton2 = new System.Windows.Forms.ToolStripButton(); + this.tabPage4 = new System.Windows.Forms.TabPage(); + this.button12 = new System.Windows.Forms.Button(); + this.button11 = new System.Windows.Forms.Button(); + this.button4 = new System.Windows.Forms.Button(); + this.bsRecipient = new System.Windows.Forms.BindingSource(this.components); + this.bsMailForm = new System.Windows.Forms.BindingSource(this.components); + this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); + this.errorProvider1 = new System.Windows.Forms.ErrorProvider(this.components); + this.btSystemBypass = new System.Windows.Forms.Button(); + this.panel1.SuspendLayout(); + this.tabControl1.SuspendLayout(); + this.tabPage2.SuspendLayout(); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.tabPage1.SuspendLayout(); + this.tabPage3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsLang)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).BeginInit(); + this.statusStrip2.SuspendLayout(); + this.toolStrip1.SuspendLayout(); + this.tabPage4.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.bsRecipient)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsMailForm)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider1)).BeginInit(); + this.SuspendLayout(); + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Fill; + this.button1.Location = new System.Drawing.Point(5, 5); + this.button1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(604, 53); + this.button1.TabIndex = 0; + this.button1.Text = "저장(&S)"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // panel1 + // + this.panel1.Controls.Add(this.button1); + this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel1.Location = new System.Drawing.Point(0, 623); + this.panel1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.panel1.Name = "panel1"; + this.panel1.Padding = new System.Windows.Forms.Padding(5); + this.panel1.Size = new System.Drawing.Size(614, 63); + this.panel1.TabIndex = 1; + // + // propertyGrid1 + // + this.propertyGrid1.Dock = System.Windows.Forms.DockStyle.Fill; + this.propertyGrid1.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.propertyGrid1.LineColor = System.Drawing.SystemColors.ControlDark; + this.propertyGrid1.Location = new System.Drawing.Point(3, 3); + this.propertyGrid1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.propertyGrid1.Name = "propertyGrid1"; + this.propertyGrid1.Size = new System.Drawing.Size(600, 536); + this.propertyGrid1.TabIndex = 1; + // + // tabControl1 + // + this.tabControl1.Controls.Add(this.tabPage2); + this.tabControl1.Controls.Add(this.tabPage1); + this.tabControl1.Controls.Add(this.tabPage3); + this.tabControl1.Controls.Add(this.tabPage4); + this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tabControl1.Location = new System.Drawing.Point(0, 0); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(614, 623); + this.tabControl1.TabIndex = 2; + this.tabControl1.SelectedIndexChanged += new System.EventHandler(this.tabControl1_SelectedIndexChanged); + // + // tabPage2 + // + this.tabPage2.Controls.Add(this.groupBox1); + this.tabPage2.Controls.Add(this.groupBox2); + this.tabPage2.Font = new System.Drawing.Font("맑은 고딕", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tabPage2.Location = new System.Drawing.Point(4, 29); + this.tabPage2.Name = "tabPage2"; + this.tabPage2.Padding = new System.Windows.Forms.Padding(5); + this.tabPage2.Size = new System.Drawing.Size(606, 590); + this.tabPage2.TabIndex = 1; + this.tabPage2.Text = "간편설정"; + this.tabPage2.UseVisualStyleBackColor = true; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.btSystemBypass); + this.groupBox1.Controls.Add(this.button7); + this.groupBox1.Controls.Add(this.button10); + this.groupBox1.Controls.Add(this.button13); + this.groupBox1.Controls.Add(this.button14); + this.groupBox1.Controls.Add(this.button3); + this.groupBox1.Controls.Add(this.btmag2); + this.groupBox1.Controls.Add(this.button2); + this.groupBox1.Controls.Add(this.button6); + this.groupBox1.Controls.Add(this.btPickerVac); + this.groupBox1.Controls.Add(this.btPort1); + this.groupBox1.Controls.Add(this.btmag1); + this.groupBox1.Controls.Add(this.btTWLamp); + this.groupBox1.Controls.Add(this.btBuz); + this.groupBox1.Controls.Add(this.btmag0); + this.groupBox1.Controls.Add(this.button5); + this.groupBox1.Controls.Add(this.btPort0); + this.groupBox1.Controls.Add(this.btPort2); + this.groupBox1.Controls.Add(this.btLeftVac); + this.groupBox1.Controls.Add(this.btPrintR); + this.groupBox1.Controls.Add(this.btPrintL); + this.groupBox1.Controls.Add(this.btRightVac); + this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBox1.Font = new System.Drawing.Font("맑은 고딕", 13F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.groupBox1.Location = new System.Drawing.Point(5, 5); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(596, 403); + this.groupBox1.TabIndex = 1; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "기능 사용"; + // + // button7 + // + this.button7.Location = new System.Drawing.Point(230, 279); + this.button7.Name = "button7"; + this.button7.Size = new System.Drawing.Size(124, 43); + this.button7.TabIndex = 48; + this.button7.Text = "피커-실린더"; + this.button7.UseVisualStyleBackColor = true; + this.button7.Click += new System.EventHandler(this.button7_Click_2); + // + // button10 + // + this.button10.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.button10.Location = new System.Drawing.Point(18, 30); + this.button10.Name = "button10"; + this.button10.Size = new System.Drawing.Size(135, 43); + this.button10.TabIndex = 25; + this.button10.Text = "작업완료 후 부저"; + this.button10.UseVisualStyleBackColor = true; + this.button10.Click += new System.EventHandler(this.button10_Click); + // + // button13 + // + this.button13.Location = new System.Drawing.Point(53, 215); + this.button13.Name = "button13"; + this.button13.Size = new System.Drawing.Size(128, 42); + this.button13.TabIndex = 46; + this.button13.Text = "AIR(하)"; + this.button13.UseVisualStyleBackColor = true; + this.button13.Click += new System.EventHandler(this.button13_Click); + // + // button14 + // + this.button14.Location = new System.Drawing.Point(404, 213); + this.button14.Name = "button14"; + this.button14.Size = new System.Drawing.Size(128, 42); + this.button14.TabIndex = 47; + this.button14.Text = "AIR(하)"; + this.button14.UseVisualStyleBackColor = true; + this.button14.Click += new System.EventHandler(this.button14_Click); + // + // button3 + // + this.button3.Font = new System.Drawing.Font("맑은 고딕", 13F, System.Drawing.FontStyle.Bold); + this.button3.Location = new System.Drawing.Point(230, 89); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(124, 43); + this.button3.TabIndex = 38; + this.button3.Text = "QR검증"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click_1); + // + // btmag2 + // + this.btmag2.Location = new System.Drawing.Point(230, 233); + this.btmag2.Name = "btmag2"; + this.btmag2.Size = new System.Drawing.Size(124, 43); + this.btmag2.TabIndex = 42; + this.btmag2.Text = "피커-자석"; + this.btmag2.UseVisualStyleBackColor = true; + this.btmag2.Click += new System.EventHandler(this.button5_Click_1); + // + // button2 + // + this.button2.Location = new System.Drawing.Point(429, 30); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(135, 43); + this.button2.TabIndex = 28; + this.button2.Text = "내부조명"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click_2); + // + // button6 + // + this.button6.Font = new System.Drawing.Font("맑은 고딕", 18F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button6.Location = new System.Drawing.Point(404, 75); + this.button6.Name = "button6"; + this.button6.Size = new System.Drawing.Size(163, 49); + this.button6.TabIndex = 44; + this.button6.Text = "우측-기능"; + this.button6.UseVisualStyleBackColor = true; + this.button6.Click += new System.EventHandler(this.button6_Click_3); + // + // btPickerVac + // + this.btPickerVac.Location = new System.Drawing.Point(230, 133); + this.btPickerVac.Name = "btPickerVac"; + this.btPickerVac.Size = new System.Drawing.Size(124, 43); + this.btPickerVac.TabIndex = 34; + this.btPickerVac.Text = "피커-진공"; + this.btPickerVac.UseVisualStyleBackColor = true; + this.btPickerVac.Click += new System.EventHandler(this.btPickerVac_Click); + // + // btPort1 + // + this.btPort1.ForeColor = System.Drawing.Color.Black; + this.btPort1.Location = new System.Drawing.Point(230, 187); + this.btPort1.Name = "btPort1"; + this.btPort1.Size = new System.Drawing.Size(124, 43); + this.btPort1.TabIndex = 23; + this.btPort1.Text = "피커-포트"; + this.btPort1.UseVisualStyleBackColor = true; + this.btPort1.Click += new System.EventHandler(this.btPort1_Click); + // + // btmag1 + // + this.btmag1.Location = new System.Drawing.Point(404, 299); + this.btmag1.Name = "btmag1"; + this.btmag1.Size = new System.Drawing.Size(128, 42); + this.btmag1.TabIndex = 41; + this.btmag1.Text = "자석"; + this.btmag1.UseVisualStyleBackColor = true; + this.btmag1.Click += new System.EventHandler(this.button6_Click_2); + // + // btTWLamp + // + this.btTWLamp.Location = new System.Drawing.Point(292, 30); + this.btTWLamp.Name = "btTWLamp"; + this.btTWLamp.Size = new System.Drawing.Size(135, 43); + this.btTWLamp.TabIndex = 21; + this.btTWLamp.Text = "타워램프"; + this.btTWLamp.UseVisualStyleBackColor = true; + this.btTWLamp.Click += new System.EventHandler(this.btTWLamp_Click); + // + // btBuz + // + this.btBuz.Location = new System.Drawing.Point(155, 30); + this.btBuz.Name = "btBuz"; + this.btBuz.Size = new System.Drawing.Size(135, 43); + this.btBuz.TabIndex = 4; + this.btBuz.Text = "부저"; + this.btBuz.UseVisualStyleBackColor = true; + this.btBuz.Click += new System.EventHandler(this.button6_Click); + // + // btmag0 + // + this.btmag0.Location = new System.Drawing.Point(53, 301); + this.btmag0.Name = "btmag0"; + this.btmag0.Size = new System.Drawing.Size(128, 42); + this.btmag0.TabIndex = 40; + this.btmag0.Text = "자석"; + this.btmag0.UseVisualStyleBackColor = true; + this.btmag0.Click += new System.EventHandler(this.button7_Click_1); + // + // button5 + // + this.button5.Font = new System.Drawing.Font("맑은 고딕", 18F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button5.Location = new System.Drawing.Point(18, 77); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(163, 49); + this.button5.TabIndex = 43; + this.button5.Text = "좌측-기능"; + this.button5.UseVisualStyleBackColor = true; + this.button5.Click += new System.EventHandler(this.button5_Click_2); + // + // btPort0 + // + this.btPort0.ForeColor = System.Drawing.Color.Black; + this.btPort0.Location = new System.Drawing.Point(53, 258); + this.btPort0.Name = "btPort0"; + this.btPort0.Size = new System.Drawing.Size(128, 42); + this.btPort0.TabIndex = 22; + this.btPort0.Text = "포트"; + this.btPort0.UseVisualStyleBackColor = true; + this.btPort0.Click += new System.EventHandler(this.btPort0_Click); + // + // btPort2 + // + this.btPort2.ForeColor = System.Drawing.Color.Black; + this.btPort2.Location = new System.Drawing.Point(404, 256); + this.btPort2.Name = "btPort2"; + this.btPort2.Size = new System.Drawing.Size(128, 42); + this.btPort2.TabIndex = 35; + this.btPort2.Text = "포트"; + this.btPort2.UseVisualStyleBackColor = true; + this.btPort2.Click += new System.EventHandler(this.btPort2_Click); + // + // btLeftVac + // + this.btLeftVac.Location = new System.Drawing.Point(53, 172); + this.btLeftVac.Name = "btLeftVac"; + this.btLeftVac.Size = new System.Drawing.Size(128, 42); + this.btLeftVac.TabIndex = 32; + this.btLeftVac.Text = "VAC(상)"; + this.btLeftVac.UseVisualStyleBackColor = true; + this.btLeftVac.Click += new System.EventHandler(this.btLeftVac_Click); + // + // btPrintR + // + this.btPrintR.ForeColor = System.Drawing.Color.Black; + this.btPrintR.Location = new System.Drawing.Point(404, 127); + this.btPrintR.Name = "btPrintR"; + this.btPrintR.Size = new System.Drawing.Size(128, 42); + this.btPrintR.TabIndex = 37; + this.btPrintR.Text = "프린터"; + this.btPrintR.UseVisualStyleBackColor = true; + this.btPrintR.Click += new System.EventHandler(this.button3_Click); + // + // btPrintL + // + this.btPrintL.ForeColor = System.Drawing.Color.Black; + this.btPrintL.Location = new System.Drawing.Point(53, 129); + this.btPrintL.Name = "btPrintL"; + this.btPrintL.Size = new System.Drawing.Size(128, 42); + this.btPrintL.TabIndex = 36; + this.btPrintL.Text = "프린터"; + this.btPrintL.UseVisualStyleBackColor = true; + this.btPrintL.Click += new System.EventHandler(this.button4_Click_2); + // + // btRightVac + // + this.btRightVac.Location = new System.Drawing.Point(404, 170); + this.btRightVac.Name = "btRightVac"; + this.btRightVac.Size = new System.Drawing.Size(128, 42); + this.btRightVac.TabIndex = 33; + this.btRightVac.Text = "VAC(상)"; + this.btRightVac.UseVisualStyleBackColor = true; + this.btRightVac.Click += new System.EventHandler(this.btRightVac_Click); + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.btDetectPrintR); + this.groupBox2.Controls.Add(this.btDetectPrintL); + this.groupBox2.Controls.Add(this.btCartDetR); + this.groupBox2.Controls.Add(this.btCartDetL); + this.groupBox2.Controls.Add(this.btCartDetC); + this.groupBox2.Controls.Add(this.btdoorr3); + this.groupBox2.Controls.Add(this.btdoorr1); + this.groupBox2.Controls.Add(this.btdoorf3); + this.groupBox2.Controls.Add(this.btdoorr2); + this.groupBox2.Controls.Add(this.btdoorf1); + this.groupBox2.Controls.Add(this.btdoorf2); + this.groupBox2.Dock = System.Windows.Forms.DockStyle.Bottom; + this.groupBox2.Font = new System.Drawing.Font("맑은 고딕", 13F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.groupBox2.Location = new System.Drawing.Point(5, 408); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(596, 177); + this.groupBox2.TabIndex = 2; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "센서 사용"; + // + // btDetectPrintR + // + this.btDetectPrintR.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.btDetectPrintR.Location = new System.Drawing.Point(466, 32); + this.btDetectPrintR.Name = "btDetectPrintR"; + this.btDetectPrintR.Size = new System.Drawing.Size(100, 43); + this.btDetectPrintR.TabIndex = 24; + this.btDetectPrintR.Text = "인쇄감지-R"; + this.btDetectPrintR.UseVisualStyleBackColor = true; + this.btDetectPrintR.Click += new System.EventHandler(this.btDetectPrintR_Click); + // + // btDetectPrintL + // + this.btDetectPrintL.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.btDetectPrintL.Location = new System.Drawing.Point(365, 32); + this.btDetectPrintL.Name = "btDetectPrintL"; + this.btDetectPrintL.Size = new System.Drawing.Size(100, 43); + this.btDetectPrintL.TabIndex = 23; + this.btDetectPrintL.Text = "인쇄감지-L"; + this.btDetectPrintL.UseVisualStyleBackColor = true; + this.btDetectPrintL.Click += new System.EventHandler(this.btDetectPrintL_Click); + // + // btCartDetR + // + this.btCartDetR.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.btCartDetR.Location = new System.Drawing.Point(219, 122); + this.btCartDetR.Name = "btCartDetR"; + this.btCartDetR.Size = new System.Drawing.Size(100, 43); + this.btCartDetR.TabIndex = 20; + this.btCartDetR.Text = "카트감지(R)"; + this.btCartDetR.UseVisualStyleBackColor = true; + this.btCartDetR.Click += new System.EventHandler(this.button5_Click); + // + // btCartDetL + // + this.btCartDetL.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.btCartDetL.Location = new System.Drawing.Point(16, 122); + this.btCartDetL.Name = "btCartDetL"; + this.btCartDetL.Size = new System.Drawing.Size(100, 43); + this.btCartDetL.TabIndex = 21; + this.btCartDetL.Text = "카트감지(L)"; + this.btCartDetL.UseVisualStyleBackColor = true; + this.btCartDetL.Click += new System.EventHandler(this.button6_Click_1); + // + // btCartDetC + // + this.btCartDetC.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.btCartDetC.Location = new System.Drawing.Point(118, 122); + this.btCartDetC.Name = "btCartDetC"; + this.btCartDetC.Size = new System.Drawing.Size(100, 43); + this.btCartDetC.TabIndex = 22; + this.btCartDetC.Text = "카트감지(C)"; + this.btCartDetC.UseVisualStyleBackColor = true; + this.btCartDetC.Click += new System.EventHandler(this.button7_Click); + // + // btdoorr3 + // + this.btdoorr3.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.btdoorr3.Location = new System.Drawing.Point(219, 32); + this.btdoorr3.Name = "btdoorr3"; + this.btdoorr3.Size = new System.Drawing.Size(100, 43); + this.btdoorr3.TabIndex = 19; + this.btdoorr3.Text = "DOOR-R3"; + this.btdoorr3.UseVisualStyleBackColor = true; + this.btdoorr3.Click += new System.EventHandler(this.btSafetyP3_Click); + // + // btdoorr1 + // + this.btdoorr1.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.btdoorr1.Location = new System.Drawing.Point(16, 32); + this.btdoorr1.Name = "btdoorr1"; + this.btdoorr1.Size = new System.Drawing.Size(100, 43); + this.btdoorr1.TabIndex = 0; + this.btdoorr1.Text = "DOOR-R1"; + this.btdoorr1.UseVisualStyleBackColor = true; + this.btdoorr1.Click += new System.EventHandler(this.button2_Click_1); + // + // btdoorf3 + // + this.btdoorf3.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.btdoorf3.Location = new System.Drawing.Point(219, 77); + this.btdoorf3.Name = "btdoorf3"; + this.btdoorf3.Size = new System.Drawing.Size(100, 43); + this.btdoorf3.TabIndex = 2; + this.btdoorf3.Text = "DOOR-F3"; + this.btdoorf3.UseVisualStyleBackColor = true; + this.btdoorf3.Click += new System.EventHandler(this.btLoaderDetect_Click); + // + // btdoorr2 + // + this.btdoorr2.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.btdoorr2.Location = new System.Drawing.Point(118, 32); + this.btdoorr2.Name = "btdoorr2"; + this.btdoorr2.Size = new System.Drawing.Size(100, 43); + this.btdoorr2.TabIndex = 2; + this.btdoorr2.Text = "DOOR-R2"; + this.btdoorr2.UseVisualStyleBackColor = true; + this.btdoorr2.Click += new System.EventHandler(this.button4_Click); + // + // btdoorf1 + // + this.btdoorf1.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.btdoorf1.Location = new System.Drawing.Point(16, 77); + this.btdoorf1.Name = "btdoorf1"; + this.btdoorf1.Size = new System.Drawing.Size(100, 43); + this.btdoorf1.TabIndex = 5; + this.btdoorf1.Text = "DOOR-F1"; + this.btdoorf1.UseVisualStyleBackColor = true; + this.btdoorf1.Click += new System.EventHandler(this.btSafetyCvIn_Click); + // + // btdoorf2 + // + this.btdoorf2.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.btdoorf2.Location = new System.Drawing.Point(118, 77); + this.btdoorf2.Name = "btdoorf2"; + this.btdoorf2.Size = new System.Drawing.Size(100, 43); + this.btdoorf2.TabIndex = 8; + this.btdoorf2.Text = "DOOR-F2"; + this.btdoorf2.UseVisualStyleBackColor = true; + this.btdoorf2.Click += new System.EventHandler(this.btSafetyCvOut_Click); + // + // tabPage1 + // + this.tabPage1.Controls.Add(this.propertyGrid1); + this.tabPage1.Location = new System.Drawing.Point(4, 29); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(3); + this.tabPage1.Size = new System.Drawing.Size(606, 542); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "상세설정"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // tabPage3 + // + this.tabPage3.Controls.Add(this.dataGridView1); + this.tabPage3.Controls.Add(this.statusStrip2); + this.tabPage3.Controls.Add(this.toolStrip1); + this.tabPage3.Location = new System.Drawing.Point(4, 29); + this.tabPage3.Name = "tabPage3"; + this.tabPage3.Size = new System.Drawing.Size(606, 542); + this.tabPage3.TabIndex = 2; + this.tabPage3.Text = "언어설정"; + this.tabPage3.UseVisualStyleBackColor = true; + // + // dataGridView1 + // + this.dataGridView1.AllowUserToAddRows = false; + this.dataGridView1.AutoGenerateColumns = false; + this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.keyDataGridViewTextBoxColumn, + this.valueDataGridViewTextBoxColumn}); + this.dataGridView1.DataSource = this.bsLang; + this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.dataGridView1.Location = new System.Drawing.Point(0, 25); + this.dataGridView1.Name = "dataGridView1"; + this.dataGridView1.RowTemplate.Height = 23; + this.dataGridView1.Size = new System.Drawing.Size(606, 495); + this.dataGridView1.TabIndex = 2; + // + // keyDataGridViewTextBoxColumn + // + this.keyDataGridViewTextBoxColumn.DataPropertyName = "Key"; + this.keyDataGridViewTextBoxColumn.HeaderText = "Key"; + this.keyDataGridViewTextBoxColumn.Name = "keyDataGridViewTextBoxColumn"; + // + // valueDataGridViewTextBoxColumn + // + this.valueDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; + this.valueDataGridViewTextBoxColumn.DataPropertyName = "Value"; + this.valueDataGridViewTextBoxColumn.HeaderText = "Value"; + this.valueDataGridViewTextBoxColumn.Name = "valueDataGridViewTextBoxColumn"; + // + // bsLang + // + this.bsLang.DataMember = "language"; + this.bsLang.DataSource = this.dataSet1; + // + // dataSet1 + // + this.dataSet1.DataSetName = "DataSet1"; + this.dataSet1.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + // + // statusStrip2 + // + this.statusStrip2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.lbFile}); + this.statusStrip2.Location = new System.Drawing.Point(0, 520); + this.statusStrip2.Name = "statusStrip2"; + this.statusStrip2.Size = new System.Drawing.Size(606, 22); + this.statusStrip2.TabIndex = 1; + this.statusStrip2.Text = "statusStrip2"; + // + // lbFile + // + this.lbFile.Name = "lbFile"; + this.lbFile.Size = new System.Drawing.Size(17, 17); + this.lbFile.Text = "--"; + // + // toolStrip1 + // + this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripButton1, + this.toolStripButton3, + this.toolStripButton4, + this.toolStripButton2}); + this.toolStrip1.Location = new System.Drawing.Point(0, 0); + this.toolStrip1.Name = "toolStrip1"; + this.toolStrip1.Size = new System.Drawing.Size(606, 25); + this.toolStrip1.TabIndex = 0; + this.toolStrip1.Text = "toolStrip1"; + // + // toolStripButton1 + // + this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image"))); + this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton1.Name = "toolStripButton1"; + this.toolStripButton1.Size = new System.Drawing.Size(75, 22); + this.toolStripButton1.Text = "신규생성"; + this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click); + // + // toolStripButton3 + // + this.toolStripButton3.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton3.Image"))); + this.toolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton3.Name = "toolStripButton3"; + this.toolStripButton3.Size = new System.Drawing.Size(75, 22); + this.toolStripButton3.Text = "새로고침"; + this.toolStripButton3.Click += new System.EventHandler(this.toolStripButton3_Click); + // + // toolStripButton4 + // + this.toolStripButton4.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.toolStripButton4.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton4.Image"))); + this.toolStripButton4.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton4.Name = "toolStripButton4"; + this.toolStripButton4.Size = new System.Drawing.Size(51, 22); + this.toolStripButton4.Text = "적용"; + this.toolStripButton4.Click += new System.EventHandler(this.toolStripButton4_Click); + // + // toolStripButton2 + // + this.toolStripButton2.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.toolStripButton2.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton2.Image"))); + this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton2.Name = "toolStripButton2"; + this.toolStripButton2.Size = new System.Drawing.Size(51, 22); + this.toolStripButton2.Text = "저장"; + this.toolStripButton2.Click += new System.EventHandler(this.toolStripButton2_Click); + // + // tabPage4 + // + this.tabPage4.Controls.Add(this.button12); + this.tabPage4.Controls.Add(this.button11); + this.tabPage4.Controls.Add(this.button4); + this.tabPage4.Location = new System.Drawing.Point(4, 29); + this.tabPage4.Name = "tabPage4"; + this.tabPage4.Size = new System.Drawing.Size(606, 542); + this.tabPage4.TabIndex = 3; + this.tabPage4.Text = "기타"; + this.tabPage4.UseVisualStyleBackColor = true; + // + // button12 + // + this.button12.Location = new System.Drawing.Point(23, 135); + this.button12.Name = "button12"; + this.button12.Size = new System.Drawing.Size(189, 43); + this.button12.TabIndex = 48; + this.button12.Text = "I/O 설명 정의"; + this.button12.UseVisualStyleBackColor = true; + this.button12.Click += new System.EventHandler(this.button12_Click); + // + // button11 + // + this.button11.Location = new System.Drawing.Point(23, 75); + this.button11.Name = "button11"; + this.button11.Size = new System.Drawing.Size(189, 43); + this.button11.TabIndex = 47; + this.button11.Text = "오류 메세지 정의"; + this.button11.UseVisualStyleBackColor = true; + this.button11.Click += new System.EventHandler(this.button11_Click); + // + // button4 + // + this.button4.Location = new System.Drawing.Point(23, 15); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(189, 43); + this.button4.TabIndex = 46; + this.button4.Text = "ZPL 열기"; + this.button4.UseVisualStyleBackColor = true; + this.button4.Click += new System.EventHandler(this.button4_Click_3); + // + // bsRecipient + // + this.bsRecipient.DataMember = "MailRecipient"; + this.bsRecipient.DataSource = this.dataSet1; + // + // bsMailForm + // + this.bsMailForm.DataMember = "MailFormat"; + this.bsMailForm.DataSource = this.dataSet1; + // + // errorProvider1 + // + this.errorProvider1.ContainerControl = this; + // + // btSystemBypass + // + this.btSystemBypass.Location = new System.Drawing.Point(53, 349); + this.btSystemBypass.Name = "btSystemBypass"; + this.btSystemBypass.Size = new System.Drawing.Size(479, 42); + this.btSystemBypass.TabIndex = 49; + this.btSystemBypass.Text = "SYSTEM BYPASS"; + this.btSystemBypass.UseVisualStyleBackColor = true; + this.btSystemBypass.Click += new System.EventHandler(this.button8_Click); + // + // fSetting + // + this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(614, 686); + this.Controls.Add(this.tabControl1); + this.Controls.Add(this.panel1); + this.Font = new System.Drawing.Font("맑은 고딕", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.KeyPreview = true; + this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fSetting"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "프로그램 설정"; + this.Load += new System.EventHandler(this.@__Load); + this.panel1.ResumeLayout(false); + this.tabControl1.ResumeLayout(false); + this.tabPage2.ResumeLayout(false); + this.groupBox1.ResumeLayout(false); + this.groupBox2.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + this.tabPage3.ResumeLayout(false); + this.tabPage3.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsLang)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).EndInit(); + this.statusStrip2.ResumeLayout(false); + this.statusStrip2.PerformLayout(); + this.toolStrip1.ResumeLayout(false); + this.toolStrip1.PerformLayout(); + this.tabPage4.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.bsRecipient)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsMailForm)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider1)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.PropertyGrid propertyGrid1; + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.BindingSource bsLang; + private DataSet1 dataSet1; + private System.Windows.Forms.TabPage tabPage2; + private System.Windows.Forms.ToolTip toolTip1; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Button btdoorr2; + private System.Windows.Forms.Button btdoorr1; + private System.Windows.Forms.Button btdoorf1; + private System.Windows.Forms.Button btBuz; + private System.Windows.Forms.TabPage tabPage3; + private System.Windows.Forms.StatusStrip statusStrip2; + private System.Windows.Forms.ToolStrip toolStrip1; + private System.Windows.Forms.ToolStripButton toolStripButton1; + private System.Windows.Forms.ToolStripButton toolStripButton2; + private System.Windows.Forms.ToolStripStatusLabel lbFile; + private System.Windows.Forms.ToolStripButton toolStripButton3; + private System.Windows.Forms.DataGridView dataGridView1; + private System.Windows.Forms.DataGridViewTextBoxColumn keyDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn valueDataGridViewTextBoxColumn; + private System.Windows.Forms.ToolStripButton toolStripButton4; + private System.Windows.Forms.Button btdoorf2; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.Button btdoorf3; + private System.Windows.Forms.ErrorProvider errorProvider1; + private System.Windows.Forms.Button btdoorr3; + private System.Windows.Forms.Button btTWLamp; + private System.Windows.Forms.BindingSource bsRecipient; + private System.Windows.Forms.BindingSource bsMailForm; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button btPickerVac; + private System.Windows.Forms.Button btRightVac; + private System.Windows.Forms.Button btLeftVac; + private System.Windows.Forms.Button btPort1; + private System.Windows.Forms.Button btPort0; + private System.Windows.Forms.Button btPort2; + private System.Windows.Forms.Button btPrintR; + private System.Windows.Forms.Button btPrintL; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.Button btCartDetR; + private System.Windows.Forms.Button btCartDetL; + private System.Windows.Forms.Button btCartDetC; + private System.Windows.Forms.Button btmag2; + private System.Windows.Forms.Button btmag1; + private System.Windows.Forms.Button btmag0; + private System.Windows.Forms.Button btDetectPrintR; + private System.Windows.Forms.Button btDetectPrintL; + private System.Windows.Forms.Button button6; + private System.Windows.Forms.Button button5; + private System.Windows.Forms.TabPage tabPage4; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.Button button10; + private System.Windows.Forms.Button button12; + private System.Windows.Forms.Button button11; + private System.Windows.Forms.Button button13; + private System.Windows.Forms.Button button14; + private System.Windows.Forms.Button button7; + private System.Windows.Forms.Button btSystemBypass; + } +} \ No newline at end of file diff --git a/Handler/Project/Setting/fSetting.cs b/Handler/Project/Setting/fSetting.cs new file mode 100644 index 0000000..ce89fa2 --- /dev/null +++ b/Handler/Project/Setting/fSetting.cs @@ -0,0 +1,523 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using AR; + +namespace Project +{ + public partial class fSetting : Form + { + CommonSetting dummySetting; //설정을 임시로 저장하고 있다가 완료시에 덮어준다. + + public fSetting() + { + InitializeComponent(); + + //setting + dummySetting = new CommonSetting(); + AR.SETTING.Data.CopyTo(dummySetting); + + this.KeyDown += (s1, e1) => + { + if (e1.KeyCode == Keys.Escape) + this.Close(); + if (DateTime.Now > PUB.LastInputTime) PUB.LastInputTime = DateTime.Now; + }; + this.MouseMove += (s1, e1) => { if (DateTime.Now > PUB.LastInputTime) PUB.LastInputTime = DateTime.Now; }; + this.FormClosed += __Closed; + + bsRecipient.DataSource = PUB.mailList; + bsMailForm.DataSource = PUB.mailForm; + } + + private void __Closed(object sender, FormClosedEventArgs e) + { + + } + + private void __Load(object sender, EventArgs e) + { + this.Show(); + + this.propertyGrid1.SelectedObject = this.dummySetting; + this.propertyGrid1.Refresh(); + + //기능사용 + btdoorr1.BackColor = dummySetting.Disable_safty_R0 ? Color.Tomato : Color.Lime; + btdoorr2.BackColor = dummySetting.Disable_safty_R1 ? Color.Tomato : Color.Lime; + btdoorr3.BackColor = dummySetting.Disable_safty_R2 ? Color.Tomato : Color.Lime; + btdoorf1.BackColor = dummySetting.Disable_safty_F0 ? Color.Tomato : Color.Lime; + btdoorf2.BackColor = dummySetting.Disable_safty_F1 ? Color.Tomato : Color.Lime; + btdoorf3.BackColor = dummySetting.Disable_safty_F2 ? Color.Tomato : Color.Lime; + + btBuz.BackColor = dummySetting.Disable_Buzzer == false ? Color.Lime : Color.Tomato; + this.btTWLamp.BackColor = dummySetting.Disable_TowerLamp ? Color.Tomato : Color.Lime; + this.button2.BackColor = dummySetting.Disable_RoomLight == true ? Color.Tomato : Color.Lime; + + //진공사용여부 + this.btLeftVac.BackColor = dummySetting.Disable_PLVac ? Color.Tomato : Color.Lime; + this.btRightVac.BackColor = dummySetting.Disable_PRVac ? Color.Tomato : Color.Lime; + this.btPickerVac.BackColor = dummySetting.Disable_PKVac ? Color.Tomato : Color.Lime; + + //포트사용여부 + this.btPort0.BackColor = dummySetting.Disable_PortL ? Color.Tomato : Color.Lime; + this.btPort1.BackColor = dummySetting.Disable_PortC ? Color.Tomato : Color.Lime; + this.btPort2.BackColor = dummySetting.Disable_PortR ? Color.Tomato : Color.Lime; + + //프린터사용여부 + this.btPrintL.BackColor = dummySetting.Disable_PrinterL ? Color.Tomato : Color.Lime; + this.btPrintR.BackColor = dummySetting.Disable_PrinterR ? Color.Tomato : Color.Lime; + + //언로더QR검증 + this.button3.BackColor = dummySetting.Enable_Unloader_QRValidation ? Color.Lime : Color.Tomato; + + //카드감지센서 + this.btCartDetL.BackColor = dummySetting.Detect_CartL ? Color.Lime : Color.Tomato; + this.btCartDetC.BackColor = dummySetting.Detect_CartC ? Color.Lime : Color.Tomato; + this.btCartDetR.BackColor = dummySetting.Detect_CartR ? Color.Lime : Color.Tomato; + + //마그넷사용 + this.btmag0.BackColor = dummySetting.Enable_Magnet0 ? Color.Lime : Color.Tomato; + this.btmag1.BackColor = dummySetting.Enable_Magnet1 ? Color.Lime : Color.Tomato; + this.btmag2.BackColor = dummySetting.Enable_Magnet2 ? Color.Lime : Color.Tomato; + + //인쇄용지감지 + this.btDetectPrintL.BackColor = dummySetting.Detect_PrintL ? Color.Lime : Color.Tomato; + this.btDetectPrintR.BackColor = dummySetting.Detect_PrintR ? Color.Lime : Color.Tomato; + + //기능사용 + this.button5.BackColor = dummySetting.Disable_Left == false ? Color.Lime : Color.Tomato; + this.button6.BackColor = dummySetting.Disable_Right == false ? Color.Lime : Color.Tomato; + //this.button9.BackColor = dummySetting.Enable_RQAuto ? Color.Lime : Color.Tomato; + + this.button13.BackColor = dummySetting.Disable_PLAir == false ? Color.Lime : Color.Tomato; + this.button14.BackColor = dummySetting.Disable_PRAir == false ? Color.Lime : Color.Tomato; + this.button10.BackColor = dummySetting.Force_JobEndBuzzer ? Color.Gold : SystemColors.Control; + this.button7.BackColor = dummySetting.Enable_PickerCylinder ? Color.Lime : Color.Tomato; + this.btSystemBypass.BackColor = dummySetting.SystemBypass ? Color.DarkBlue : Color.Transparent; + this.btSystemBypass.ForeColor = dummySetting.SystemBypass ? Color.White : Color.Black; + lbFile.Text = Lang.FileName; + } + + private void button1_Click(object sender, EventArgs e) + { + + if (PUB.PasswordCheck() == false) + { + UTIL.MsgE("Password incorrect"); + return; + } + //check convmode - disable port0/2 + //if (dummySetting.Enable_ConveryorMode) + //{ + // if (dummySetting.Disable_PortL == false) + // { + // UTIL.MsgE("컨베이어 사용시에는 포트(L/R)을 사용할 수 없습니다"); + // return; + // } + // if (dummySetting.Disable_PortR == false) + // { + // UTIL.MsgE("컨베이어 사용시에는 포트(L/R)을 사용할 수 없습니다"); + // return; + // } + //} + + var ChangeL = dummySetting.Disable_Left != AR.SETTING.Data.Disable_Left; + var ChangeR = dummySetting.Disable_Right != AR.SETTING.Data.Disable_Right; + if (ChangeL || ChangeR) + { + UTIL.MsgI("좌/우 사용 옵션은 작업을 다시 시작해야 적용 됩니다"); + } + + this.Invalidate(); + var chTable = PUB.userList.GetChanges(); + if (chTable != null) + { + string fn = AppDomain.CurrentDomain.BaseDirectory + "users.xml"; + PUB.userList.WriteXml(fn, true); + PUB.userList.AcceptChanges(); + } + + bsRecipient.EndEdit(); + this.Validate(); + var recpTable = PUB.mailList.GetChanges(); + if (recpTable != null) + { + string fn = AppDomain.CurrentDomain.BaseDirectory + "mailList.xml"; + + PUB.mailList.WriteXml(fn, true); + PUB.mailList.AcceptChanges(); + } + bsMailForm.EndEdit(); + var formTable = PUB.mailForm.GetChanges(); + if (formTable != null) + { + string fn = AppDomain.CurrentDomain.BaseDirectory + "mailForm.xml"; + PUB.mailForm.WriteXml(fn, true); + PUB.mailForm.AcceptChanges(); + } + + + + + + try + { + dummySetting.CopyTo(SETTING.Data); + SETTING.Save(); + PUB.log.AddI("Setting Save"); + PUB.log.Add(SETTING.Data.ToString()); + } + catch (Exception ex) + { + PUB.log.AddE("Setting Save Error:" + ex.Message); + UTIL.MsgE("Error\n" + ex.Message + "\n\n다시 시도하세요"); + } + + //PUB.flag.set(eVarBool.TestRun, btLoaderDetect.BackColor == Color.Lime); + DialogResult = DialogResult.OK; + } + + + private void button6_Click(object sender, EventArgs e) + { + dummySetting.Disable_Buzzer = !dummySetting.Disable_Buzzer; + btBuz.BackColor = dummySetting.Disable_Buzzer ? Color.Tomato : Color.Lime; + } + + + private void toolStripButton1_Click(object sender, EventArgs e) + { + var langfile = Lang.FileName; + Lang.CreateFile(); + UTIL.MsgI("다음 파일이 생성되었습니다.\n\n" + langfile); + } + + private void toolStripButton3_Click(object sender, EventArgs e) + { + var langfile = Lang.FileName; + if (System.IO.File.Exists(langfile) == false) + { + UTIL.MsgE("언어파일이 없습니다\n" + langfile); + return; + } + var ini = new arUtil.INIHelper(); + ini.Load(langfile); + this.dataSet1.language.Clear(); + foreach (var item in ini.GetItemList("lang").OrderBy(t => t.Key)) + { + this.dataSet1.language.Rows.Add(new string[] { + "lang", + item.Key, + item.Value.Replace("\n","\\n"), + }); + } + this.dataSet1.language.AcceptChanges(); + } + private void toolStripButton2_Click(object sender, EventArgs e) + { + var file = Lang.FileName; + var ini = new arUtil.INIHelper(file); + this.bsLang.EndEdit(); + this.dataSet1.language.AcceptChanges(); + foreach (DataSet1.languageRow dr in dataSet1.language.Rows) + { + if (dr.Key == "") continue; + ini.set_Data("lang", dr.Key, dr.Value); + } + ini.Flush(); + UTIL.MsgE("다음 파일에 저장되었습니다.\n\n" + file); + } + private void toolStripButton4_Click(object sender, EventArgs e) + { + //적용 + var file = new System.IO.FileInfo(Lang.FileName); + var langname = file.Name.Replace(file.Extension, ""); + + Lang.Loading(langname); + } + + private void tabControl1_SelectedIndexChanged(object sender, EventArgs e) + { + if (this.tabControl1.SelectedIndex == 2) + { + if (this.dataSet1.language.Rows.Count < 1) + toolStripButton3.PerformClick(); + } + } + + + private void btTWLamp_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_TowerLamp = !dummySetting.Disable_TowerLamp; + but.BackColor = dummySetting.Disable_TowerLamp ? Color.Tomato : Color.Lime; + } + + + + private void button2_Click_2(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_RoomLight = !dummySetting.Disable_RoomLight; + but.BackColor = dummySetting.Disable_RoomLight == true ? Color.Tomato : Color.Lime; + } + + private void button4_Click_1(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_SidQtyCheck = !dummySetting.Disable_SidQtyCheck; + but.BackColor = dummySetting.Disable_SidQtyCheck == true ? Color.Tomato : Color.Lime; + } + private void button2_Click_1(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_safty_R0 = !dummySetting.Disable_safty_R0; + but.BackColor = dummySetting.Disable_safty_R0 ? Color.Tomato : Color.Lime; + } + + + private void button4_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_safty_R1 = !dummySetting.Disable_safty_R1; + but.BackColor = dummySetting.Disable_safty_R1 ? Color.Tomato : Color.Lime; + } + + private void btSafetyP3_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_safty_R2 = !dummySetting.Disable_safty_R2; + but.BackColor = dummySetting.Disable_safty_R2 ? Color.Tomato : Color.Lime; + } + + private void btSafetyCvIn_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_safty_F0 = !dummySetting.Disable_safty_F0; + but.BackColor = dummySetting.Disable_safty_F0 ? Color.Tomato : Color.Lime; + } + + private void btSafetyCvOut_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_safty_F1 = !dummySetting.Disable_safty_F1; + but.BackColor = dummySetting.Disable_safty_F1 ? Color.Tomato : Color.Lime; + } + + private void btLoaderDetect_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_safty_F2 = !dummySetting.Disable_safty_F2; + but.BackColor = dummySetting.Disable_safty_F2 ? Color.Tomato : Color.Lime; + } + + private void btLeftVac_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_PLVac = !dummySetting.Disable_PLVac; + but.BackColor = dummySetting.Disable_PLVac ? Color.Tomato : Color.Lime; + } + + private void btRightVac_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_PRVac = !dummySetting.Disable_PRVac; + but.BackColor = dummySetting.Disable_PRVac ? Color.Tomato : Color.Lime; + } + + private void btPickerVac_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_PKVac = !dummySetting.Disable_PKVac; + but.BackColor = dummySetting.Disable_PKVac ? Color.Tomato : Color.Lime; + } + + private void btPort0_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_PortL = !dummySetting.Disable_PortL; + but.BackColor = dummySetting.Disable_PortL ? Color.Tomato : Color.Lime; + } + + private void btPort1_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_PortC = !dummySetting.Disable_PortC; + but.BackColor = dummySetting.Disable_PortC ? Color.Tomato : Color.Lime; + } + + private void btPort2_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_PortR = !dummySetting.Disable_PortR; + but.BackColor = dummySetting.Disable_PortR ? Color.Tomato : Color.Lime; + } + + private void button4_Click_2(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_PrinterL = !dummySetting.Disable_PrinterL; + but.BackColor = dummySetting.Disable_PrinterL ? Color.Tomato : Color.Lime; + } + + private void button3_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_PrinterR = !dummySetting.Disable_PrinterR; + but.BackColor = dummySetting.Disable_PrinterR ? Color.Tomato : Color.Lime; + } + + private void button3_Click_1(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Enable_Unloader_QRValidation = !dummySetting.Enable_Unloader_QRValidation; + but.BackColor = dummySetting.Enable_Unloader_QRValidation == false ? Color.Tomato : Color.Lime; + } + + private void button6_Click_1(object sender, EventArgs e) + { + //카트감지l + var but = sender as Button; + dummySetting.Detect_CartL = !dummySetting.Detect_CartL; + but.BackColor = dummySetting.Detect_CartL == false ? Color.Tomato : Color.Lime; + } + + private void button7_Click(object sender, EventArgs e) + { + //카드감지c + var but = sender as Button; + dummySetting.Detect_CartC = !dummySetting.Detect_CartC; + but.BackColor = dummySetting.Detect_CartC == false ? Color.Tomato : Color.Lime; + } + + private void button5_Click(object sender, EventArgs e) + { + //카트감지r + var but = sender as Button; + dummySetting.Detect_CartR = !dummySetting.Detect_CartR; + but.BackColor = dummySetting.Detect_CartR == false ? Color.Tomato : Color.Lime; + } + + private void button7_Click_1(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Enable_Magnet0 = !dummySetting.Enable_Magnet0; + but.BackColor = dummySetting.Enable_Magnet0 == false ? Color.Tomato : Color.Lime; + } + + private void button6_Click_2(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Enable_Magnet1 = !dummySetting.Enable_Magnet1; + but.BackColor = dummySetting.Enable_Magnet1 == false ? Color.Tomato : Color.Lime; + } + + private void button5_Click_1(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Enable_Magnet2 = !dummySetting.Enable_Magnet2; + but.BackColor = dummySetting.Enable_Magnet2 == false ? Color.Tomato : Color.Lime; + } + + private void btDetectPrintL_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Detect_PrintL = !dummySetting.Detect_PrintL; + but.BackColor = dummySetting.Detect_PrintL == false ? Color.Tomato : Color.Lime; + } + + private void btDetectPrintR_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Detect_PrintR = !dummySetting.Detect_PrintR; + but.BackColor = dummySetting.Detect_PrintR == false ? Color.Tomato : Color.Lime; + } + + private void button5_Click_2(object sender, EventArgs e) + { + //기능-좌 + var but = sender as Button; + dummySetting.Disable_Left = !dummySetting.Disable_Left; + but.BackColor = dummySetting.Disable_Left == true ? Color.Tomato : Color.Lime; + } + + private void button6_Click_3(object sender, EventArgs e) + { + //기능-우 + var but = sender as Button; + dummySetting.Disable_Right = !dummySetting.Disable_Right; + but.BackColor = dummySetting.Disable_Right == true ? Color.Tomato : Color.Lime; + } + + + + private void button4_Click_3(object sender, EventArgs e) + { + var fi = new System.IO.FileInfo(AR.SETTING.Data.baseZPLFile); + if (fi.Exists == false) + { + System.IO.File.WriteAllText(fi.FullName, Properties.Settings.Default.ZPL7, System.Text.Encoding.Default); + UTIL.MsgI("ZPL파일을 신규 생성 했습니다\n" + fi.FullName); + } + var f = new Dialog.fZPLEditor(fi.FullName); + f.ShowDialog(); + //Util.RunExplorer(fi.FullName); + } + + + private void button11_Click(object sender, EventArgs e) + { + using (var f = new fSetting_ErrorMessage()) + f.ShowDialog(); + } + + private void button12_Click(object sender, EventArgs e) + { + using (var f = new fSetting_IOMessage()) + f.ShowDialog(); + } + + private void button13_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_PLAir = !dummySetting.Disable_PLAir; + but.BackColor = dummySetting.Disable_PLAir ? Color.Tomato : Color.Lime; + } + + private void button14_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_PRAir = !dummySetting.Disable_PRAir; + but.BackColor = dummySetting.Disable_PRAir ? Color.Tomato : Color.Lime; + } + + private void button10_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Force_JobEndBuzzer = !dummySetting.Force_JobEndBuzzer; + but.BackColor = dummySetting.Force_JobEndBuzzer ? Color.Gold : SystemColors.Control; + } + + private void button7_Click_2(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Enable_PickerCylinder = !dummySetting.Enable_PickerCylinder; + but.BackColor = dummySetting.Enable_PickerCylinder == false ? Color.Tomato : Color.Lime; + } + + private void button8_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.SystemBypass = !dummySetting.SystemBypass; + but.BackColor = dummySetting.SystemBypass ? Color.DarkBlue : Color.Transparent; + but.ForeColor = dummySetting.SystemBypass ? Color.White : Color.Black; + } + } +} + diff --git a/Handler/Project/Setting/fSetting.resx b/Handler/Project/Setting/fSetting.resx new file mode 100644 index 0000000..f312482 --- /dev/null +++ b/Handler/Project/Setting/fSetting.resx @@ -0,0 +1,1985 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 117, 17 + + + 17, 17 + + + 411, 17 + + + 305, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + 660, 17 + + + 776, 17 + + + 208, 17 + + + 528, 17 + + + 60 + + + + AAABAAYAAAAAAAEAIAASGgAAZgAAAICAAAABACAAKAgBAHgaAABAQAAAAQAgAChCAACgIgEAMDAAAAEA + IACoJQAAyGQBACAgAAABACAAqBAAAHCKAQAQEAAAAQAgAGgEAAAYmwEAiVBORw0KGgoAAAANSUhEUgAA + AQAAAAEACAYAAABccqhmAAAZ2UlEQVR42u3da4xu11kf8P+z1r68l5l3Zs7xuXh87OBgk8ZBWEGBGEs0 + caXKBiOiVHI+kMQNbYh6+YIqhBFVq1MqkIxQhVS1KCIo1MT94KhYIBAOaXGDRC7UAoIUm8RxjBOfm89l + 5szMO++7916Xfhh/IlnPPsnMmTMz6/+Tzqe99Mze+333f87WemYtAR1ZH/v4EwMAtTZmOt6OPWWapz/0 + X5tbfS10c5hbfQJEdOswAIgyxgAgyhgDgChjDACijDEAiDLGACDKmNzqE6Dv7MO/9QsVgCJ13FhTlFXx + gFbDGnNaRE5oY6JEtQ8gRlwJHhe1MV3bfTF475Qh7vf+9W+0+3f36EYVuy9BN0kNYKgcHwJ4v1pBcB8E + 9+hDen8HvAzEF3vGfBXATDk+A8AAOID4CkCUMQYAUcYYAEQZYwAQZYwBQJQxBgBRxhgARBljI9BN8OHf + /sVVAAup49aYY6U1/06rUZbFGWPM8dRxY8TcceL4Ga1GXRa2Kgq7m2tpnfNN57w25tzlq6+HEEPqeAjh + ate517UanQ//xYdwTRmy9Xs/9+vnd3Mt9O3YCHRzCADtwSugBMSbFgFMlB9hjIi62o8RI9bs7j95Rowx + Ij3fE5kA6QDAThNQ3/UWPfeMv6xuAr4CEGWMAUCUMQYAUcYYAEQZYwAQZYwBQJQxTq38A49/4heXAVSp + 49aYcWHt/VqNqrC3GyOLqePGmIVRXat/y19Ye8wYk5w6ExFZWRwv6DWMFHZXbQBw3sP5oC4asrY53Yox + vbBICGHLea/N8WO7aZ4NIWyla8TN1vkLPef6ZR/CVBnSPvXRX1/f1Q05YtgH8O1OQ51/x50AfkErYIw5 + VVgzTh0vrLUnVibHtRp1WWK3D+9eKKxFYa36i+L248uL2nHn/aTp3Ko25sKVa7c775MNRw5hCvhLPaf7 + GwC+pRzfALC+LzfukOArAFHGGABEGWMAEGWMAUCUMQYAUcYYAEQZYwAQZexINQI9/ttPvBs7f0f/HVkj + byms+YBWYzwcHLPWJP/OviqLwW2TyV1ajbKw1hiTvLcigDVGn+SXG9iy45CIAKBvQAQfgteGhBBi57y6 + MMmVjY1vtp2bJ3+GD810NlcbkpwPz/gQX1OGbD71c09+af/u3s111BqBBgDGyvFlAOoqOhAsiUiyE1BE + irKw6kIcZWFhdrkQx1EiwE7qKQqrdz2FIEDP91VEbhOR9BZlghbAqOd0lwFcUY53N/l27St+S4kyxgAg + yhgDgChjDACijDEAiDLGACDK2L5MNT/2zGO9P2th++47oEzzGDETgblDqzEoy/tFJLlIRmHNalUU/1Sr + UdfVyBpTpGtYuzQeaVONsNbAyFGZxT8YQozwPqhjrk+3p9qaAj4E1zTttlajdf5PXQjJhUdijFvztv2y + ViMinAsxbChD3Fv+fnSu55Lj2bNn9/o2fpv96gMQ9P9v4wEoTTwA3g5AXUWnrsrlwqYf3kFVFSeWJz2r + 6FgIH94Dx4jA9GxydNvSohrMMUY4749pYy5f3/jAvO2Sc/3OBzdv2+s9p/ssgJeU45sAfv8GLjvewJhd + 4SsAUcYYAEQZYwAQZYwBQJQxBgBRxhgARBljABBlrHfC+2Mf/5hBT1D4wbGHAZSp40bM2wTyoFZjaTy6 + yxhJzuHXZbU4GQ9PazXKorBGWUdDRKSwVr0W9gAcbbFnYRLnQ1B3OYoxds6pC5NsTGcXm67dTNYI0V2f + bn9TPU/Ez4cYvqoM6V55dfBcz+WG/3v2rHrBN9oI1PdUHIeynRZ2dtP5Qa2AEVk2kl4lp7C2HFSVuhBH + YQ0fYFL1fT/KQv8FEWOE1ikKANvz9kTnzHL6JIKHvvsUsLPD0VXleIv+51LQ00zEVwCijDEAiDLGACDK + GAOAKGMMAKKMMQCIMiYf+eRZPQT89HQEVrUhRVH8M0i6D2BQVvcOqvJHtRqLo+GCEUmeS12WxcJoqE4D + WmP6lp8n2pUYAR/0hUm2tmdN03XJ/QlCjGFjOtvSajRd+5fzrn05fSLoOhf/V8/pnjd2eEkbUECfv0eE + vBfAh7UxAvlxxHRPwXhQ2ztOHFPnTuuy5Bw+HXgiO/0mmuXFcQ0g+csqxojlhbG2+A3OX7n2aNN2WsOR + Mybc33O6n8LO4iRJfAUgyhgDgChjDACijDEAiDLGACDKGAOAKGMMAKKMFdj5u2LNn0Hf5AAB8UEoC4JM + m+a+1y5deY9WY1BXJwwkuR7AoCrLpYXRUKtRclMPuslijOi8uh4Irm9tz7TNRQKinzftZa1G03WfC4gv + KkM6AH/Rc7oX0fN878nT8s9/94kHoSwuYsU+YEQe02qMB/WdIukVgRYGdXVieaI2T1RlyS256KYKMUJ5 + tgEAl9c3NrfmTfLBizG66bz5Vs/P+bSP/ovKEPc/PvLk53d7PXwFIMoYA4AoYwwAoowxAIgyxgAgyhgD + gChjN7ovQJ+tnlqX0NNLEGNsoPQS+BgnTded0WugEmVREbOzMYjVaoi2swgdahFADH0bg3gflI1BYoyh + dZ06t+5jPBdj3FBqdAC+0XO6l7DzXCVPdS/uyYH5rj/+O0+8C8Agdbyw5oeskQ9qNQZldZcRSdYY1lV5 + 6tjyklajrkpYw/8YHUU+BDStPod/6dr69ZkyKMQ4n3etuquPD/Fp58PfKkPmT/3LJ1+41fcD4CsAUdYY + AEQZYwAQZYwBQJQxBgBRxhgARBljABBlbK8agfbCKwC0Jp0LAP5OK+BDeGuQdC/BvOtWL1xbf0SrUVp7 + 2ogkFx4prLXLC+MFtUZphb0Ee8uHgK7zahfP+tZ0y/n0ah0hxlnn/UWtRtt1z7ngz6eOx4g5+pt4XgNw + Xbuc/btzugPTCLQXPvLJJ+4BkHx4rTH3GmM+qtWobHGPEUkuPFKXZXn78ZVjWo1BXUqhNxzSd8l5j3nT + qQFw4eratabrtCaezda7r2s1Qgif8CG8rAyZ/e7PPqnWOEz4a4ooYwwAoowxAIgyxgAgyhgDgChjDACi + jB2kPoC90EHpJYjRzGKwa1qBEMs2iknO03qxpuugTkcZExCCMsUqQNHTJyCCI7PJSYwRUV+HAy4EaHfV + +RD77rt3hfdOkp9djKGNMaqff4yYAUFb8ENfUOCQORrfsBv0vn//R0sA3qGNqYbu50Xw9tRxW7b1eOWN + O7UaZT0vjXXJICqs4PTxkXqu40GNujoa+dy0DtN5o465eHUbTunzCb7wXTNQH77p2slv+a5K/qAY8VI7 + K36z53S/8ge/+lPXkQm+AhBljAFAlDEGAFHGGABEGWMAEGWMAUCUMQYAUcYOUB9AVM/lfb/02SVjw1u0 + MUVpH4JgOXm8KEbD4WhVqzGZDH/UFuZ46rixwdbDVl0QBDI3EKdcjwPsBb2EmQJIz52LCCZjvU+grgqU + xe7WJeicR9Pqm9BsTB2i2ulTI4ax/oP87VD70mIREQdBK9HMqq3glSYuF65ubMz+Uqsxm22fd85tp88D + 667zz/fcttee/dVH1nEIHKZOkzGA7+sZ85MA7kgdFJHKWrus/pDx0tJgUCe3KDPGoKoq9SR8aBBj+qEJ + scH6XO81ad0WXJgnjxsRlGWt1jBWdh8A3mPWs5vO2kaDoARAYSpUhd74tDx4K4ykr0ekEGtq9WLasl0K + IZ0R83mzOJ22K1oNEVkHoHUCngPwas9tuwxgHYcAXwGIMsYAIMoYA4AoYwwAoowxAIgyxgAgytieTAM+ + 9tgz6vHwAxMLI+rP8v5zA8R0X0JR2kURo04m28KUIpKcKrLWGmut2m9gjOx6IQ4BtEsBIBD9dsBIBSPp + 6UYRIEY9v0MAfOhZiaNHCNL7c0RK9TeJkar3enfumrqGyg3RPjtjBH2fv7XWxBiVRWViiSh6U4Ng8th/ + +t9TZUQMzusLJITozNc21A1EPv3pD9zgXUnbqz6AvsnmHwDwY9qAsnb/FkByjraqqmrcsyPP6VOnFqqy + TJ6LMQZlVeJmM6bu+a/VCCeK96gjQmgQlF6CGB2ubag9Lbi6dg0uXN3VtRRmGaW9XR1zeuFH1AfcSAFj + 9J6FvdDXn1HXdTmZTI5rY9quO671ErRtd8+lS5feqdWYbk232rbVegnWAPy3nsv5AoCv9YzZ9Q5DfAUg + yhgDgChjDACijDEAiDLGACDKGAOAKGMMAKKMyXvPPq+GwIrvTovyN/YAYK38Yyg9BfVgcHJQD+7Waiws + jH5MjBmmf4Y1Va1P9I5Ho8qadKOHiMDYw5F5MXpEKOtfxICZ0xcV8WGKEGf6z+k5DysjWKP/Lf+wuB2Q + 9H0VGCj9WQeKD0Fd3CR4H6fb29ocP9qmbb33yQ8vhjDb2tr+glZj3sxfbebzN5Qhzvv451qNCJxbs+VF + bUyB/v8FnAJwvzpC8C8ADFKHjZFBVVdq99Sx48cXiyL9dBpjYO3h+BLtBREL0fqrBBhX36fWiNEhRr1X + JPa02Al6mziPFNuzZRuslaqq1K4m732tNRM55xfbzv0TrUbbNVMI5sqQOYC+HYwcAC1E+ApAlDMGAFHG + GABEGWMAEGWMAUCUMQYAUcYYAEQZK07gshoC3k4KQNQGHIE1UMJEYER6ltkROVDbFB0JIsUNrMRDN4O6 + HtTO4kc9v3zFCNSmBAPrep7L2Pt8838ARBljABBljAFAlDEGAFHGGABEGWMAEGWMAUCUsQL9mwtcAPDX + PWM+AWVBkBDDSte16u4S165efY+IJFeeMNYWZVkOtRrj8biyNr2mgIhktaYAffe89+qCIN77sDWdqrv6 + uK6bB++Tu7qEGLe7rv2cViPGeAE7G4gkfwz6n8sL6Hm+96X35v3/8Y/PAHi7Nsaa8pcBJHdtKctyOBwO + jmk1VldXJ1VVJYPIGIO6vvk71NDh1TQN9J2BWnfu/AV1IY75bLbWdZ22FNNVH7pf6zmVl579lUdfv9nX + y1cAoowxAIgyxgAgyhgDgChjDACijDEAiDLGACDK2H6tFnEewKWeMV+E0pfQOndbu7n1Nq3A9tdf+Vci + ktzFyBgzLMtyVatx6tSphcFgoPYSjEZqPxLdItvbM3UOfz6fu0uXLm1pNbrOXQghJOfwY4znOu9+Sz2R + iK8KcEUdAXXTD6C/QW9P7EsAPPsrjwZA2+cKANBpB9/3H56rAKgfntmpkezAMsZ4Y4y6G1bcoY3Yj1tG + 35OodvHFGKP3Xv0AnXM+hOCUIZ1zXv0eAtj4g//8yMatvhs3gq8ARBljABBljAFAlDEGAFHGGABEGWMA + EGXsMO0aMQdwsWfMZwGsKMfHIcS71B8y2/4R59rkugRGTDGfzZa1GvVgIEVRJHsaRARVpe7pkJ22bdUp + POdcbOZzdQqv67r1ENNTeK5zV0OI/6/nVL4JYFs5vob+72HfHP+BkdVmPD/9y3+yAOCt2pjFhfLnRbTF + S2RkpLhPq3Hs+G12OBol760xBsvLS7f6dhwo6+vX1Sae2fZ2vHb1itocE6J7EYjJhzdGvLS51f1mz6l8 + 4w9/7Sf65vmPDL4CEGWMAUCUMQYAUcYYAEQZYwAQZYwBQJQxBgBRxo5UH8DTz/31uwEsJi9WcLeY+DNa + jbqqzxhj0jsUGVPWdX2bVuOV89uytpVe3sD5iAtr6uYyGI0XUNXphUdEBCsry2oNkb35ePX1EYC1tXV1 + TNvMsD3Vp9ZvX6lR2PT5riyU+P7VkXoiTdNcCSEkb3wIYbtpG3WzjRjkf8aIV5Uhmx985J1f2sXtPFAO + UyfgjRgAGKcOimBijZzUCgxrOyysLVPHrTHFcFiqT1ZVAEZZ/0QQ0LWteiGudrBFuu9lrx7uvdC3nZZz + rvd6BQWM8h/SqgAmI/2+z8QXXmkmct4PndM/fx8xiTH9HULPwjWHDV8BiDLGACDKGAOAKGMMAKKMMQCI + MsYAIMrYvkwDPvPMM0BPz4GbfP8d2vkYaybGpDf9AIBhXd8vgoXUcWvNalmYiVpjUA2tMcrGIGKrUr9t + p46NMKyTM4lwPqAsrFqj8RZd1JanF2xtXFdr2LJEUfR8xD3bHDjv4Dp95qsUB0i60HhscftkUa2xenyI + wqZ/H03GJYa1fi3W1FUIMXljfQi2LKy+qIgL93kfkovKxIitZ/7P34y0GiHEc8EHbV8A97Uv/vA56OLZ + szd/qne/+gAE/f/beABKEw+AtwN4v1agrovlwqYf3kFdFidWFha0GkVhYXY5x74y0XcO8iFifUtvBPrK + q+t4/Y1p8ngIEX9/7rJaY7SwiOFYvdzeAJhtb2G6tamOufvUGMak79mZk2O84251+h3LCzWs2e0XfqjN + 3yPECOf8MW3M5bWtD8ybdOI5H9ysafTkBZ4F8JJyfBPA79/ABd30XWj4CkCUMQYAUcYYAEQZYwAQZYwB + QJQxBgBRxhgARBnrnXj9+AsvGPQExdI1+zCAZOeLiLxNBA9qNVaWRndpDTiDulxcXBie1mpUhbWi/KG8 + MSKFNeq17Mff2UcA3gd1zLz1aLv0mBjR20vw+pUZLlzTx/Q5fazGnbfpfQ3LCzW021aVBoNKb3yy1uzL + 6jR9i5s4H0JQBsUQY+u8ukHJ5tbs4rzpks0TPgS3dn37m/p54vMxxq8qQ7pT5fpzPZcbHnroIfWCb7QR + qO+zOQ5A2+vqTgA/qBUwRpaNkeS3pLCmHNZlrV6MNQdqoYwUefNcNQtDAyjPXYxApa+PgfVpi8LoQdNn + cWhxcmXQc64VDsFtB9Af8GXPBxNjhFWazQBgNmtOGCPLyRoQD0DtSAXwLQBXleMt+p9LQU8zEV8BiDLG + ACDKGAOAKGMMAKKMMQCIMsYAIMpY8cnnn1dDoLiG04iyqlYx+EdQ+gDqujgzqEp1Mnk0qEtjJHkuVVXY + /im+QzIXtRdkZ+5cMxmVOLkyvMGC6Rp9Pyen2w5I71RiVRU2KtNvIUTTLnj1g2lad6ZpupkypLvQTu7X + TzWe/+Tzz1/ShhTQ5+8hAe8F8GF1jMiPQ+kpWBgN7JnTK+rc6aAqDsUc/kEhAEY9K+Tce2YJ955ZutWn + eqSI9PdwrEzGNYBkz0qMEcuTkbpE0rlLa4+2rdMajlyE6AEQ8SnsLE6SxFcAoowxAIgyxgAgyhgDgChj + DACijDEAiDLGACDKWIGdvyvW/Bn0TQ4QYnwQSiPQdNbc99r5q+/Ragzr8oSR9HoAdV2WS4tDtXmiKix7 + CeimijFCn54Hrm/OZo2yuUiI0c+aVt3VZd64z4UYX1SGdAD+oud0L6Ln+S5+9qGH+laMuPjmv6SnP/NX + QyiNQPOmq9rOvVOr4X1YMiLJGhGQxbG+MEVEZk1ptO8idnZl0sybzk23Gy0A3HTWaFuHIYT4dR/iXylD + 3Acf/uG/2e318BWAKGMMAKKMMQCIMsYAIMoYA4AoYwwAoozd6L4AfbZ6al1CTy9BjLGJSi+BD2HStN2Z + nhqVkfSiIiIiZWHVHSrECKcSj6gIIPZM4XXO+6hsDBJiDG3n1Ll1H8K5GGNymi/G2AH4Rs/pXsLOc5Xi + 9uKeHJjv+lN/8sK7ACQn+svC/JA15oNajWFd3WVEkjWGg6o8fWKirpAxqEv0bB5Eh5QPAfP09DwA4OLl + jeuzeavN4c9nTavu6uNDeLpz4W+VIfPHf+JdL9zq+wHwFYAoawwAoowxAIgyxgAgyhgDgChjDACijDEA + iDK2V41Ae+EVAFqTzgUAf6cVcM6/VZQ+AMzb1QtvXH9Eq1GW5rSIJBceKQtrlyfjBa1GVVphL8He8iGg + 7bzaxbO+Md3qnE+u1hFjnHVdUNe2mDfdc53z55Uac/Q38bwG4Lp2Oft353QHphFoL3zqj1+4B0Dy4S1K + e6+15qNajaq09xgjyV1b6qosV08uH9NqDOtSikJtOKTvknMes6ZTA+D8G+vXmlZZiSfEzbbzX9dqeB8+ + 4Tr/sjJk9qFH36XWOEz4a4ooYwwAoowxAIgyxgAgyhgDgChjDACijB2kPoC90EHvJZiiZ48DACMAyWnA + iFg7HyqtQOt8FWJU7q3AWqPOExrBkdnkJMaInnU44H3wO0t2fGfOB+d8UBfiiDFeBNAoQzbR//lPoW+m + 0eEIORrfsD301Ge+dBpKL0Fli9XCFP9Gq2GMeYeInEwdLwpr7zi5fJtWYzyqZVAVR+LzmbcuTrcbNQLO + vbF+xelNPG8EH76i1XDB/fc2uPPKkNnjD7+7LwCywlcAoowxAIgyxgAgyhgDgChjDACijDEAiDLGACDK + 2FFrBNoLG9hpBkmZAfgdrUAEVmNMNxOFEMfrG1N1YZLN6fwuYyTZKyAisrQwWNRq1FVpqtLuqpeg7Xxs + 2i5oY65vzTfV3XRCvOK9VzfTCCE+F6Jy3yM2AWhz/MDOojLaZ3dgFuI4KBgA/8DjD797u2dIbzfZU5/5 + 8hKAOnW8NG65bdo7tRpiTaWtTGSMmKowY62GNUZ2GwDO+Tibt2oAXF7b3A4hJsfEGC/GviaeiD/sgqwr + Q5rHH75fW2WHvgd8BSDKGAOAKGMMAKKMMQCIMsYAIMoYA4AoY5wGvDkitNUtgACgb7pxCzs9CSkmxjjR + CoQQKu/Drj7jEIKLMbY9wzbevCbtWvquN/Tcs54lReh7cSQWnDiKnvrMlxehLExiBcNK4i9pNcTKfWLk + nt2cRwzx5eDDi9qYLsqTPspMGTJ7/OH7N/fjvtF3h68ARBljABBljAFAlDEGAFHGGABEGWMAEGWMAUCU + MTYCHVwN9AUs5gCe7anxBQAntAHaQh5vuoL+3XTWADjluAMdSGwEOsKe+ewLAygLkwBA27m+AGg+9JMP + NKAjia8ARBljABBljAFAlDEGAFHGGABEGWMAEGWMAUCUsf8PzNlsT7yleHcAAAAASUVORK5CYIIoAAAA + gAAAAAABAAABACAAAAAAAAAAAQBhCgAAYQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMu6oEzLuqD8y7qg/Mu6oPzLuqD8i2pA7ItqQO + yLakDsi2pA7ItqQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAMy7qgTMu6oPzLuqD8y7qg/Mu6oPyLakDsi2pA7ItqQOyLakDsi2pAQAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLuqBMy7qg/Mu6oPzLuqD8y7qg/ItqQO + yLakDsi2pA7ItqQOyLakBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADMu6oEzLuqD8y7qg/Mu6oPzLuqD8i2pA7ItqQOyLakDsi2pA7ItqQEAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADRuaIN0bmiENG5ohDRuaIQ0LuqQ9C7q2/Qu6tv0Lurb9G9rH/SwK2s0sCtrNLArazSwK2s + 0sCtrNLArazSwK2s0sCtrNC9q37Pu6puz7uqbs+7qm7Pu6lC0bmiENG5ohDRuaIQ0bmiDQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANG5ohLRuaIW0bmiFtG5ohbQu6pb + 0Lurl9C7q5fQu6uX0b2srNLAreXSwK3l0sCt5dLAreXSwK3l0sCt5dLAreXSwK3l0L2rq8+7qpbPu6qW + z7uqls+7qVrRuaIW0bmiFtG5ohbRuaISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA0bmiEtG5ohbRuaIW0bmiFtC7qlvQu6uX0Lurl9C7q5fRvays0sCt5dLAreXSwK3l + 0sCt5dLAreXSwK3l0sCt5dLAreXQvaurz7uqls+7qpbPu6qWz7upWtG5ohbRuaIW0bmiFtG5ohIAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIS0bmiFtG5ohbRuaIW + 0LuqW9C7q5fQu6uX0Lurl9G9rKzSwK3l0sCt5dLAreXSwK3l0sCt5dLAreXSwK3l0sCt5dC9q6vPu6qW + z7uqls+7qpbPu6la0bmiFtG5ohbRuaIW0bmiEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANG5ogPRuaIK0bmiCtG5ogrRuqUO + 0LyrRNC8q0TQvKtE0LyrRNK/rGzTv6x207+sdtO/rHbYx7eg28y9xdvMvcXbzL3F3c7A0eHVxvHh1cbx + 4dXG8eHVxvHh1cbx4dXG8eHVxvHh1cbx3c7A0dvMvcXbzL3F28y9xdjHt6DTv6x207+sdtO/rHbSv6xs + 0LyrRNC8q0TQvKtE0LyrRNG6pQ7RuaIK0bmiCtG5ogrRuaIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA0bmiB9G5ohbRuaIW0bmiFtG6pR7QvKuR0LyrkdC8q5HQvKuR07+t09PArePTwK3j + 08Ct49zNve/j18r649fK+uPXyvrn3ND78erg//Hq4P/x6uD/8erg//Hq4P/x6uD/8erg//Hq4P/n3ND7 + 49fK+uPXyvrj18r63M2979PArePTwK3j08Ct49O/rdPQvKuR0LyrkdC8q5HQvKuR0bqlHtG5ohbRuaIW + 0bmiFtG5ogcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIH0bmiFtG5ohbRuaIW + 0bqlHtC8q5HQvKuR0LyrkdC8q5HTv63T08Ct49PArePTwK3j3M297+PXyvrj18r649fK+ufc0Pvx6uD/ + 8erg//Hq4P/x6uD/8erg//Hq4P/x6uD/8erg/+fc0Pvj18r649fK+uPXyvrczb3v08Ct49PArePTwK3j + 07+t09C8q5HQvKuR0LyrkdC8q5HRuqUe0bmiFtG5ohbRuaIW0bmiBwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAANG5ogfRuaIW0bmiFtG5ohbRuqUe0LyrkdC8q5HQvKuR0LyrkdO/rdPTwK3j + 08Ct49PArePczb3v49fK+uPXyvrj18r659zQ+/Hq4P/x6uD/8erg//Hq4P/x6uD/8erg//Hq4P/x6uD/ + 59zQ++PXyvrj18r649fK+tzNve/TwK3j08Ct49PArePTv63T0LyrkdC8q5HQvKuR0LyrkdG6pR7RuaIW + 0bmiFtG5ohbRuaIHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAMm5ogbJuaIHybmiB8m5ogfQvasW0b6sIdG+rCHRvqwh0r6sK9O/q0DTv6tA + 07+rQNTArUbXxban18W2p9fFtqfXxban2cm429rJuOnaybjp2sm46eHTxfLm28/75tvP++bbz/vp39P8 + 8erg//Hq4P/x6uD/8erg//Hq4P/x6uD/8erg//Hq4P/p39P85tvP++bbz/vm28/74dPF8trJuOnaybjp + 2sm46dnJuNvXxban18W2p9fFtqfXxban1MCtRtO/q0DTv6tA07+rQNK+rCvRvawh0b2sIdG9rCHQvasW + ybmiB8m5ogfJuaIHybmiBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAybmiHcm5oiHJuaIh + ybmiIdC9q3DRvqyl0b6spdG+rKXSv6271MGv5tTBr+bUwa/m1cOx6Ofbzv3n287959vO/efbzv3w6N3/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+fbzv3n287959vO/efbzv3Vw7Ho + 1MGv5tTBr+bUwa/m0r+tu9G9rKXRvayl0b2spdC9q3DJuaIhybmiIcm5oiHJuaIdAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAADJuaIdybmiIcm5oiHJuaIh0L2rcNG+rKXRvqyl0b6spdK/rbvUwa/m + 1MGv5tTBr+bVw7Ho59vO/efbzv3n287959vO/fDo3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6N3/59vO/efbzv3n287959vO/dXDsejUwa/m1MGv5tTBr+bSv6270b2spdG9rKXRvayl + 0L2rcMm5oiHJuaIhybmiIcm5oh0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMm5oh3JuaIh + ybmiIcm5oiHQvatw0b6spdG+rKXRvqyl0r+tu9TBr+bUwa/m1MGv5tXDsejn287959vO/efbzv3n2879 + 8Ojd//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Do3f/n287959vO/efbzv3n2879 + 1cOx6NTBr+bUwa/m1MGv5tK/rbvRvayl0b2spdG9rKXQvatwybmiIcm5oiHJuaIhybmiHQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAybmiHcm5oiHJuaIhybmiIdC9q3DRvqyl0b6spdG+rKXSv627 + 1MGv5tTBr+bUwa/m1cOx6Ofbzv3n287959vO/efbzv3w6N3/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8Ojd/+fbzv3n287959vO/efbzv3Vw7Ho1MGv5tTBr+bUwa/m0r+tu9G9rKXRvayl + 0b2spdC9q3DJuaIhybmiIcm5oiHJuaIdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAADMtaQRzLWkKsy1pCrMtaQqzrinO9G9q6rRvauq0b2rqtG9q6rUw7LT + 1cSz2tXEs9rVxLPa4tXH7One0vjp3tL46d7S+Ovi1vrw6N798Oje/fDo3v3w6d798erg//Hq4P/x6uD/ + 8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8erg//Hq4P/x6uD/ + 8erg//Dp3v3w6N798Oje/fDo3v3r4tb66d7S+One0vjp3tL44tXH7NXEs9rVxLPa1cSz2tTDstPRvauq + 0b2rqtG9q6rRvauqzrinO8y1pCrMtaQqzLWkKsy1pBEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy1pBLMtaQt + zLWkLcy1pC3OuKc/0b2rttG9q7bRvau20b2rttXDsuDVxLPn1cSz59XEs+fi1cj16uDU/urg1P7q4NT+ + 7eTY/vLr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+3k2P7q4NT+ + 6uDU/urg1P7i1cj11cSz59XEs+fVxLPn1cOy4NG9q7bRvau20b2rttG9q7bOuKc/zLWkLcy1pC3MtaQt + zLWkEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLWkEsy1pC3MtaQtzLWkLc64pz/Rvau20b2rttG9q7bRvau2 + 1cOy4NXEs+fVxLPn1cSz5+LVyPXq4NT+6uDU/urg1P7t5Nj+8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7eTY/urg1P7q4NT+6uDU/uLVyPXVxLPn1cSz59XEs+fVw7Lg + 0b2rttG9q7bRvau20b2rts64pz/MtaQtzLWkLcy1pC3MtaQSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMtaQS + zLWkLcy1pC3MtaQtzrinP9G9q7bRvau20b2rttG9q7bVw7Lg1cSz59XEs+fVxLPn4tXI9erg1P7q4NT+ + 6uDU/u3k2P7y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/t5Nj+ + 6uDU/urg1P7q4NT+4tXI9dXEs+fVxLPn1cSz59XDsuDRvau20b2rttG9q7bRvau2zrinP8y1pC3MtaQt + zLWkLcy1pBIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6Il + zLeiKMy3oijMt6Ioz7ypZdC9qoPQvaqD0L2qg9PArpPWxLSs1sS0rNbEtKzYx7e05NjL5+TYy+fk2Mvn + 5NjL5+je0vXp39P36d/T9+nf0/ft5Nn87+fd/+/n3f/v593/8One//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Dp3v/v593/7+fd/+/n3f/t5Nn86d/T9+nf0/fp39P3 + 6N7S9eTYy+fk2Mvn5NjL5+TYy+fYx7e01sS0rNbEtKzWxLSs08Cuk9C9qoPQvaqD0L2qg8+8qWXMt6Io + zLeiKMy3oijMt6IlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy3ojjMt6I8zLeiPMy3ojzPvKmX0L2qxdC9qsXQvarF + 08Gv1NfFtevXxbXr18W169rJuu7r4tb/6+LW/+vi1v/r4tb/8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/x6uD/6+LW/+vi1v/r4tb/6+LW/9rJuu7XxbXr + 18W169fFtevTwa/U0L2qxdC9qsXQvarFz7ypl8y3ojzMt6I8zLeiPMy3ojgAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + zLeiOMy3ojzMt6I8zLeiPM+8qZfQvarF0L2qxdC9qsXTwa/U18W169fFtevXxbXr2sm67uvi1v/r4tb/ + 6+LW/+vi1v/x6uD/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Hq4P/r4tb/6+LW/+vi1v/r4tb/2sm67tfFtevXxbXr18W169PBr9TQvarF0L2qxdC9qsXPvKmX + zLeiPMy3ojzMt6I8zLeiOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6I4zLeiPMy3ojzMt6I8z7ypl9C9qsXQvarF + 0L2qxdPBr9TXxbXr18W169fFtevaybru6+LW/+vi1v/r4tb/6+LW//Hq4P/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8erg/+vi1v/r4tb/6+LW/+vi1v/aybru + 18W169fFtevXxbXr08Gv1NC9qsXQvarF0L2qxc+8qZfMt6I8zLeiPMy3ojzMt6I4AAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM65pQzOuaUZzrmlGc65pRnPu6gk0b6rUdG+q1HRvqtR + 0b6rUdXDsn/Vw7KC1cOygtXDsoLczLy+3c+/3N3Pv9zdz7/c4NLD5eLVx/Pi1cfz4tXH8+TXyvXu5tr/ + 7uba/+7m2v/u5tr/8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/x6uD/7uba/+7m2v/u5tr/7uba/+TXyvXi1cfz4tXH8+LVx/Pg0sPl3c+/3N3Pv9zdz7/c + 3My8vtXDsoLVw7KC1cOygtXDsn/RvqtR0b6rUdG+q1HRvqtRz7uoJM65pRnOuaUZzrmlGc65pQwAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + zrmlHc65pT7OuaU+zrmlPs+7qFrRvqvL0b6ry9G+q8vRvqvL2ce36tnIuOzZyLjs2ci47Ofbzvnt5Nj/ + 7eTY/+3k2P/v59z/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh/+/n3P/t5Nj/7eTY/+3k2P/n28752ci47NnIuOzZyLjs2ce36tG+q8vRvqvL + 0b6ry9G+q8vPu6hazrmlPs65pT7OuaU+zrmlHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOuaUdzrmlPs65pT7OuaU+z7uoWtG+q8vRvqvL + 0b6ry9G+q8vZx7fq2ci47NnIuOzZyLjs59vO+e3k2P/t5Nj/7eTY/+/n3P/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7+fc/+3k2P/t5Nj/ + 7eTY/+fbzvnZyLjs2ci47NnIuOzZx7fq0b6ry9G+q8vRvqvL0b6ry8+7qFrOuaU+zrmlPs65pT7OuaUd + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAM65pR3OuaU+zrmlPs65pT7Pu6ha0b6ry9G+q8vRvqvL0b6ry9nHt+rZyLjs2ci47NnIuOzn2875 + 7eTY/+3k2P/t5Nj/7+fc//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/v59z/7eTY/+3k2P/t5Nj/59vO+dnIuOzZyLjs2ci47NnHt+rRvqvL + 0b6ry9G+q8vRvqvLz7uoWs65pT7OuaU+zrmlPs65pR0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAL+/nwG/v58Bv7+fAb+/nwHNuKQSzbikGM24pBjNuKQYzrqmNs+6p1fPuqdXz7qnV9G+q2/WxLLS + 1sSy0tbEstLWxLLS3My97d3Nvu/dzb7v3c2+7+jd0Pru5dn/7uXZ/+7l2f/v59z/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3P/u5dn/ + 7uXZ/+7l2f/o3dD63c2+793Nvu/dzb7v3My97dXEstLVxLLS1cSy0tXEstLRvqtvz7qnV8+6p1fPuqdX + z7qmNc65pRjOuaUYzrmlGM65pRK/v58Bv7+fAb+/nwG/v58Bv7+fCL+/nwi/v58Iv7+fCM24pIjNuKS3 + zbikt824pLfPuqfV0Lyp+NC8qfjQvKn41sSz+e3k2P/t5Nj/7eTY/+3k2P/y6+D/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/ + 7OPX/+zj1//s49f/7OPX/9bEs/nQvKr40Lyq+NC8qvjPu6jUzrmltc65pbXOuaW1zrmlh7+/nwi/v58I + v7+fCL+/nwi/v58Iv7+fCL+/nwi/v58IzbikiM24pLfNuKS3zbikt8+6p9XQvKn40Lyp+NC8qfjWxLP5 + 7eTY/+3k2P/t5Nj/7eTY//Lr4P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lq4P/s49f/7OPX/+zj1//s49f/1sSz+dC8qvjQvKr4 + 0Lyq+M+7qNTOuaW1zrmltc65pbXOuaWHv7+fCL+/nwi/v58Iv7+fCL+/nwi/v58Iv7+fCL+/nwjNuKSI + zbikt824pLfNuKS3z7qn1dC8qfjQvKn40Lyp+NbEs/nt5Nj/7eTY/+3k2P/t5Nj/8uvg//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8urg/+zj1//s49f/7OPX/+zj1//WxLP50Lyq+NC8qvjQvKr4z7uo1M65pbXOuaW1zrmltc65pYe/v58I + v7+fCL+/nwi/v58Iv7+fCL+/nwi/v58Iv7+fCM24pIjNuKS3zbikt824pLfPuqfV0Lyp+NC8qfjQvKn4 + 1sSz+e3k2P/t5Nj/7eTY/+3k2P/y6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/7OPX/+zj1//s49f/7OPX/9bEs/nQvKr4 + 0Lyq+NC8qvjPu6jUzrmltc65pbXOuaW1zrmlh7+/nwi/v58Iv7+fCL+/nwi/v58Bv7+fAb+/nwG/v58B + zbuiFc27oh3Nu6IdzbuiHc+7p0fPu6h4z7uoeM+7qHjRvauN1MKx4tTCseLUwrHi1MKx4t/Sw/Hg08Xy + 4NPF8uDTxfLq4dX77+jd/+/o3f/v6N3/8One//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7+bb/+3i1v/t4tb/7eLW/+fWxf/WtJj/1rSY/9a0mP/WtJj/ + 1rSY/9a0mP/WtJj/1rSY/+fWxf/t4tb/7eLW/+3i1v/v5tv/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/w6d7/7+jd/+/o3f/v6N3/6uHV++DTxfLg08Xy + 4NPF8t/Sw/HUwrHi1MKx4tTCseLUwrHi0b2rjc+7qXjPu6l4z7upeM+6qEfMuqgczLqoHMy6qBzMuqgV + v7+fAb+/nwG/v58Bv7+fAQAAAAAAAAAAAAAAAAAAAADMzJkEzMyZBczMmQXMzJkFz7unMc+6qGTPuqhk + z7qoZM+7qXzQvKrd0Lyq3dC8qt3QvKrd3M6/793PwPDdz8Dw3c/A8Onf0/rv59z/7+fc/+/n3P/w6d7/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/v5tr/ + 7OHU/+zh1P/s4dT/5dPB/9Ksjf/SrI3/0qyN/9Ksjf/SrI3/0qyN/9Ksjf/SrI3/5dPB/+zh1P/s4dT/ + 7OHU/+/m2v/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Dp3v/v59z/7+fc/+/n3P/p39P63c/A8N3PwPDdz8Dw3M6/79C8qt3QvKrd0Lyq3dC8qt3Pu6l8 + z7qoZM+6qGTPuqhkzrqpMb+/vwS/v78Ev7+/BL+/vwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAMzMmQTMzJkFzMyZBczMmQXPu6cxz7qoZM+6qGTPuqhkz7upfNC8qt3QvKrd0Lyq3dC8qt3czr/v + 3c/A8N3PwPDdz8Dw6d/T+u/n3P/v59z/7+fc//Dp3v/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/m2v/s4dT/7OHU/+zh1P/l08H/0qyN/9Ksjf/SrI3/ + 0qyN/9Ksjf/SrI3/0qyN/9Ksjf/l08H/7OHU/+zh1P/s4dT/7+ba//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8One/+/n3P/v59z/7+fc/+nf0/rdz8Dw + 3c/A8N3PwPDczr/v0Lyq3dC8qt3QvKrd0Lyq3c+7qXzPuqhkz7qoZM+6qGTOuqkxv7+/BL+/vwS/v78E + v7+/AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMyZBMzMmQXMzJkFzMyZBc+7pzHPuqhk + z7qoZM+6qGTPu6l80Lyq3dC8qt3QvKrd0Lyq3dzOv+/dz8Dw3c/A8N3PwPDp39P67+fc/+/n3P/v59z/ + 8One//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 7+ba/+zh1P/s4dT/7OHU/+XTwf/SrI3/0qyN/9Ksjf/SrI3/0qyN/9Ksjf/SrI3/0qyN/+XTwf/s4dT/ + 7OHU/+zh1P/v5tr/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6d7/7+fc/+/n3P/v59z/6d/T+t3PwPDdz8Dw3c/A8NzOv+/QvKrd0Lyq3dC8qt3QvKrd + z7upfM+6qGTPuqhkz7qoZM66qTG/v78Ev7+/BL+/vwS/v78DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADMzJkBzMyZAszMmQLMzJkCz7unFM+6qCjPuqgoz7qoKM+7qTLPvKpaz7yqWs+8qlrPvKpa + 18a2ltfGtprXxraa18a2mtzNvc/ez8Dp3s/A6d7PwOnh1MXu5trN9ebazfXm2s3159zP9/Do3f/w6N3/ + 8Ojd//Do3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/ + 7ePW/+3j1v/t49b/7ePW/+DItP/dwqv/3cKr/93Cq//Yt53/06+R/9Ovkf/Tr5H/1a2N/9ingP/Yp4D/ + 2KeA/9ingP/Yp4D/2KeA/9ingP/Yp4D/1ayM/9Ovkf/Tr5H/06+R/9i3nf/dwqv/3cKr/93Cq//gyLT/ + 7ePW/+3j1v/t49b/7ePW//Lq4P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6N3/8Ojd//Do3f/w6N3/59zP9ubazfXm2s315trN9eHUxe7ez8Dp3s/A6d7PwOnczb3P + 18a2mtfGtprXxraa18a2ltG7qVrRu6la0bupWtG7qVrQuqkyz7qoKM+6qCjPuqgozrqpFL+/vwK/v78C + v7+/Ar+/vwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAqqqqAaqqqgOqqqoDqqqqA6qqqgPNuKZbzbimYc24pmHNuKZhz7ypstC9qtvQvarb + 0L2q29XEsuPdzr7v3c6+793Ovu/f0cLx7ubb/+7m2//u5tv/7ubb//Hq4P/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hq4P/q3c7/6t3O/+rdzv/q3c7/1LGV/8+mh//Ppof/ + z6aH/8mZdf/DjWX/w41l/8ONZf/Kk2r/3KR4/9ykeP/cpHj/3KR4/9yjeP/co3j/3KN4/9yjeP/Kk2n/ + w41k/8ONZP/DjWT/yZl0/8+mh//Ppof/z6aH/9Sxlf/q3c7/6t3O/+rdzv/q3c7/8erg//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8erg/+7m2//u5tv/7ubb/+7m2//f0cLw + 3c6+7t3Ovu7dzr7u1cSy49C9qtvQvarb0L2q28+8qbLNuKZhzbimYc24pmHNuKZb/4CAAv+AgAL/gIAC + /4CAAv+AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqqqoBqqqqA6qqqgOqqqoD + qqqqA824plvNuKZhzbimYc24pmHPvKmy0L2q29C9qtvQvarb1cSy493Ovu/dzr7v3c6+79/RwvHu5tv/ + 7ubb/+7m2//u5tv/8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8erg/+rdzv/q3c7/6t3O/+rdzv/UsZX/z6aH/8+mh//Ppof/yZl1/8ONZf/DjWX/w41l/8qTav/cpHj/ + 3KR4/9ykeP/cpHj/3KN4/9yjeP/co3j/3KN4/8qTaf/DjWT/w41k/8ONZP/JmXT/z6aH/8+mh//Ppof/ + 1LGV/+rdzv/q3c7/6t3O/+rdzv/x6uD/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/x6uD/7ubb/+7m2//u5tv/7ubb/9/RwvDdzr7u3c6+7t3Ovu7VxLLj0L2q29C9qtvQvarb + z7ypss24pmHNuKZhzbimYc24plv/gIAC/4CAAv+AgAL/gIAC/4CAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAKqqqgGqqqoDqqqqA6qqqgOqqqoDzbimW824pmHNuKZhzbimYc+8qbLQvarb + 0L2q29C9qtvVxLLj3c6+793Ovu/dzr7v39HC8e7m2//u5tv/7ubb/+7m2//x6uD/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/x6uD/6t3O/+rdzv/q3c7/6t3O/9Sxlf/Ppof/ + z6aH/8+mh//JmXX/w41l/8ONZf/DjWX/ypNq/9ykeP/cpHj/3KR4/9ykeP/co3j/3KN4/9yjeP/co3j/ + ypNp/8ONZP/DjWT/w41k/8mZdP/Ppof/z6aH/8+mh//UsZX/6t3O/+rdzv/q3c7/6t3O//Hq4P/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hq4P/u5tv/7ubb/+7m2//u5tv/ + 39HC8N3Ovu7dzr7u3c6+7tXEsuPQvarb0L2q29C9qtvPvKmyzbimYc24pmHNuKZhzbimW/+AgAL/gIAC + /4CAAv+AgAL/gIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqqqqAKqqqgKqqqoC + qqqqAqqqqgLNuKY8zbimQc24pkHNuKZBz7ypd9C9qpLQvaqS0L2qktXDsqLby7q628u6utvLurrdzb3B + 5drN8eXazfHl2s3x5drN8erg1Pfr4dX46+HV+Ovh1fjt49f87uTY/+7k2P/u5Nj/69/R/+bUw//m1MP/ + 5tTD/+bTwf/dwqr/3cKq/93Cqv/dwqr/1aqJ/9Okgf/TpIH/06SB/9Kfef/Sm3H/0ptx/9Kbcf/Wn3X/ + 46p+/+Oqfv/jqn7/46p+/+Oqfv/jqn7/46p+/+Oqfv/Wn3T/0ptx/9Kbcf/Sm3H/0p94/9Okgf/TpIH/ + 06SB/9Wqif/dwqr/3cKq/93Cqv/dwqr/5tPB/+bUw//m1MP/5tTD/+vf0f/u5Nj/7uTY/+7k2P/t49f8 + 6+HV+Ovh1fjr4dX46uDU9+XazfHl2s3x5drN8eXazfHdzb3A28u6udvLurnby7q51cOyotC9qpLQvaqS + 0L2qks+8qXfNuKZBzbimQc24pkHNuKY8/4CAAf+AgAH/gIAB/4CAAf+AgAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAz7ilIM+4pU/PuKVPz7ilT8+5pmHPvarVz72q1c+9qtXPvarV2sm559vLu+rby7vq + 28u76uHSwvfl1sf/5dbH/+XWx//exrL/z6aH/8+mh//Ppof/zqSF/8OMY//DjGP/w4xj/8OMY//WnXH/ + 26F1/9uhdf/boXX/5qyA/++2iv/vtor/77aK/++2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/++2iv/vtor/77aK/++2iv/mrID/26F1/9uhdf/boXX/1p1x/8OMY//DjGP/w4xj/8OMY//OpIX/ + z6aH/8+mh//Ppof/3say/+XWx//l1sf/5dbH/+HSwvfby7vq28u76tvLu+raybnnz72q1c+9qtXPvarV + z72q1c+5pmHPuKVPz7ilT8+4pU/PuKUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPuKUgz7ilT8+4pU/PuKVP + z7mmYc+9qtXPvarVz72q1c+9qtXaybnn28u76tvLu+rby7vq4dLC9+XWx//l1sf/5dbH/97Gsv/Ppof/ + z6aH/8+mh//OpIX/w4xj/8OMY//DjGP/w4xj/9adcf/boXX/26F1/9uhdf/mrID/77aK/++2iv/vtor/ + 77aK//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/77aK/++2iv/vtor/77aK/+asgP/boXX/ + 26F1/9uhdf/WnXH/w4xj/8OMY//DjGP/w4xj/86khf/Ppof/z6aH/8+mh//exrL/5dbH/+XWx//l1sf/ + 4dLC99vLu+rby7vq28u76trJuefPvarVz72q1c+9qtXPvarVz7mmYc+4pU/PuKVPz7ilT8+4pSAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAM+4pSDPuKVPz7ilT8+4pU/PuaZhz72q1c+9qtXPvarVz72q1drJuefby7vq + 28u76tvLu+rh0sL35dbH/+XWx//l1sf/3say/8+mh//Ppof/z6aH/86khf/DjGP/w4xj/8OMY//DjGP/ + 1p1x/9uhdf/boXX/26F1/+asgP/vtor/77aK/++2iv/vtor/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//vtor/77aK/++2iv/vtor/5qyA/9uhdf/boXX/26F1/9adcf/DjGP/w4xj/8OMY//DjGP/ + zqSF/8+mh//Ppof/z6aH/97Gsv/l1sf/5dbH/+XWx//h0sL328u76tvLu+rby7vq2sm558+9qtXPvarV + z72q1c+9qtXPuaZhz7ilT8+4pU/PuKVPz7ilIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz7ilHc+4pUrPuKVK + z7ilSs+5plvPvKnKz7ypys+8qcrPvKnK2Ma05NnHtujZx7bo2ce26N/NvPbj0cD/49HA/+PRwP/cw63/ + 0KaG/9Cmhv/Qpob/z6SE/8aPZv/Gj2b/xo9m/8aPZv/Yn3P/3KJ2/9yidv/conb/5q2B/++2iv/vtor/ + 77aK/++2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/++2iv/vtor/77aK/++2iv/mrYH/ + 3KJ2/9yidv/conb/2J9z/8aPZv/Gj2b/xo9m/8aPZv/PpIT/0KaG/9Cmhv/Qpob/3MOt/+PRwP/j0cD/ + 49HA/9/NvPbZx7bo2ce26NnHtujYxrTkz7ypys+8qcrPvKnKz7ypys+5plvPuKVKz7ilSs+4pUrPuKUd + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAt3pOBrd6Ti63ek4ut3pOLrd6Ti68h1yz + vIdcx7yHXMe8h1zHv4hd5sGIXvvBiF77wYhe+8uSZ/zfpXn/36V5/9+lef/gpnr/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/+Cmev/fpXn/36V5/9+lef/Lkmf8wYhe+8GIXvvBiF77v4hd5ryHXMe8h1zHvIdcx7yHXLO3ek4u + t3pOLrd6Ti63ek4ut3pOBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAC3ek4Gt3pOLrd6Ti63ek4ut3pOLryHXLO8h1zHvIdcx7yHXMe/iF3mwYhe+8GIXvvBiF77 + y5Jn/N+lef/fpXn/36V5/+Cmev/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/4KZ6/9+lef/fpXn/36V5/8uSZ/zBiF77 + wYhe+8GIXvu/iF3mvIdcx7yHXMe8h1zHvIdcs7d6Ti63ek4ut3pOLrd6Ti63ek4GAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALd6Tga3ek4ut3pOLrd6Ti63ek4u + vIdcs7yHXMe8h1zHvIdcx7+IXebBiF77wYhe+8GIXvvLkmf836V5/9+lef/fpXn/4KZ6//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//gpnr/36V5/9+lef/fpXn/y5Jn/MGIXvvBiF77wYhe+7+IXea8h1zHvIdcx7yHXMe8h1yz + t3pOLrd6Ti63ek4ut3pOLrd6TgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAt3pOBrd6Ti63ek4ut3pOLrd6Ti68h1yzvIdcx7yHXMe8h1zHv4hd5sGIXvvBiF77 + wYhe+8uSZ/zfpXn/36V5/9+lef/gpnr/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+Cmev/fpXn/36V5/9+lef/Lkmf8 + wYhe+8GIXvvBiF77v4hd5ryHXMe8h1zHvIdcx7yHXLO3ek4ut3pOLrd6Ti63ek4ut3pOBgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAuH1PIbh9TzG4fU8xuH1PMbqAU127gVWgu4FVoLuBVaC8glalwohcyMKIXMjCiFzI + wohcyNqhde7dpHj03aR49N2kePTjqn76566C/ueugv7nroL+6bCE/u2zh//ts4f/7bOH/+20iP/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7bSI/+2zh//ts4f/7bOH/+mwhP7nroL+566C/ueugv7jqn763aR49N2kePTdpHj0 + 2qF17sKIXMjCiFzIwohcyMKIXMi9glamvIFVobyBVaG8gVWhu4BTXrh9TzG4fU8xuH1PMbh9TyEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4fU8puH1PPbh9Tz24fU89 + uoBTdbuBVci7gVXIu4FVyLyCVs3DiV3uw4ld7sOJXe7DiV3u4KZ6/eSqfv/kqn7/5Kp+/+uyhv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+uyhv/kqn7/5Kp+/+Sqfv/gpnr9w4ld7sOJXe7DiV3uw4ld7r2CVs68gVXJ + vIFVybyBVcm7gFN1uH1PPbh9Tz24fU89uH1PKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALh9Tym4fU89uH1PPbh9Tz26gFN1u4FVyLuBVci7gVXIvIJWzcOJXe7DiV3u + w4ld7sOJXe7gpnr95Kp+/+Sqfv/kqn7/67KG//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/67KG/+Sqfv/kqn7/ + 5Kp+/+Cmev3DiV3uw4ld7sOJXe7DiV3uvYJWzryBVcm8gVXJvIFVybuAU3W4fU89uH1PPbh9Tz24fU8p + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuH1PKbh9Tz24fU89 + uH1PPbqAU3W7gVXIu4FVyLuBVci8glbNw4ld7sOJXe7DiV3uw4ld7uCmev3kqn7/5Kp+/+Sqfv/rsob/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//rsob/5Kp+/+Sqfv/kqn7/4KZ6/cOJXe7DiV3uw4ld7sOJXe69glbO + vIFVybyBVcm8gVXJu4BTdbh9Tz24fU89uH1PPbh9TykAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1flEHtX5RJbV+USW1flEl + tX5RJbqAVGu6gFRwuoBUcLqAVHDCiFyNxItfm8SLX5vEi1+bzZNnudWccOXVnHDl1Zxw5dadcejconb3 + 3KJ299yidvfconb36a+D/uqxhf/qsYX/6rGF/+61if/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61if/qsYX/ + 6rGF/+qxhf/pr4P+3KJ299yidvfconb33KJ299adcejVnHDm1Zxw5tWccObNk2e5xYtemsWLXprFi16a + wohbjLqAVHC6gFRwuoBUcLqAVGu1flEltX5RJbV+USW1flEltX5RBwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALV+UQ61flFFtX5RRbV+UUW1flFFuoBUybqAVNK6gFTSuoBU0sOKXuTHjmLt + x45i7ceOYu3Um2/0566C/+eugv/nroL/6K+D//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 6K+D/+eugv/nroL/566C/9Wbb/TIjmHsyI5h7MiOYezEil3juoBU0rqAVNK6gFTSuoBUybV+UUW1flFF + tX5RRbV+UUW1flEOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtX5RDrV+UUW1flFF + tX5RRbV+UUW6gFTJuoBU0rqAVNK6gFTSw4pe5MeOYu3HjmLtx45i7dSbb/TnroL/566C/+eugv/or4P/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//or4P/566C/+eugv/nroL/1Ztv9MiOYezIjmHs + yI5h7MSKXeO6gFTSuoBU0rqAVNK6gFTJtX5RRbV+UUW1flFFtX5RRbV+UQ4AAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAC1flEOtX5RRbV+UUW1flFFtX5RRbqAVMm6gFTSuoBU0rqAVNLDil7k + x45i7ceOYu3HjmLt1Jtv9Oeugv/nroL/566C/+ivg//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/+ivg//nroL/566C/+eugv/Vm2/0yI5h7MiOYezIjmHsxIpd47qAVNK6gFTSuoBU0rqAVMm1flFF + tX5RRbV+UUW1flFFtX5RDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAKqAVQKqgFUCqoBVAqqAVQK5gFIVuYBSHLmAUhy5gFIcvIFVK72BVju9gVY7vYFWO8CFWUfFjGBz + xYxgc8WMYHPFjGBzyY9j18mPZN7Jj2TeyY9k3tCWauvTmm7y05pu8tOabvLco3f36bCE/+mwhP/psIT/ + 6rGF//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/6rGF/+mwhP/psIT/6bCE/9yjd/fTmm3x + 05pt8dOabfHQlmrryY9k3smPZN7Jj2TeyY9j18WMX3PFjF9zxYxfc8WMX3PAhVlHvYFWO72BVju9gVY7 + vIFVK7mAUhy5gFIcuYBSHLmAUhWqgFUCqoBVAqqAVQKqgFUCqoBVBqqAVQaqgFUGqoBVBrmAUk+5gFJq + uYBSarmAUmq8gVWhvYFW372BVt+9gVbfwYZa49KXa/HSl2vx0pdr8dKXa/HpsIX+67KH/+uyh//rsof/ + 7rWK//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61iv/rsof/67KH/+uyh//psIX+ + 0Zdq8tGXavLRl2ry0Zdq8sGGWuO9gVbfvYFW372BVt+8gVWhuYBSarmAUmq5gFJquYBST6qAVQaqgFUG + qoBVBqqAVQaqgFUGqoBVBqqAVQaqgFUGuYBST7mAUmq5gFJquYBSaryBVaG9gVbfvYFW372BVt/Bhlrj + 0pdr8dKXa/HSl2vx0pdr8emwhf7rsof/67KH/+uyh//utYr/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7rWK/+uyh//rsof/67KH/+mwhf7Rl2ry0Zdq8tGXavLRl2rywYZa472BVt+9gVbf + vYFW37yBVaG5gFJquYBSarmAUmq5gFJPqoBVBqqAVQaqgFUGqoBVBqqAVQaqgFUGqoBVBqqAVQa5gFJP + uYBSarmAUmq5gFJqvIFVob2BVt+9gVbfvYFW38GGWuPSl2vx0pdr8dKXa/HSl2vx6bCF/uuyh//rsof/ + 67KH/+61iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utYr/67KH/+uyh//rsof/ + 6bCF/tGXavLRl2ry0Zdq8tGXavLBhlrjvYFW372BVt+9gVbfvIFVobmAUmq5gFJquYBSarmAUk+qgFUG + qoBVBqqAVQaqgFUGqoBVBqqAVQaqgFUGqoBVBrmAUk+5gFJquYBSarmAUmq8gVWhvYFW372BVt+9gVbf + wYZa49KXa/HSl2vx0pdr8dKXa/HpsIX+67KH/+uyh//rsof/7rWK//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+61iv/rsof/67KH/+uyh//psIX+0Zdq8tGXavLRl2ry0Zdq8sGGWuO9gVbf + vYFW372BVt+8gVWhuYBSarmAUmq5gFJquYBST6qAVQaqgFUGqoBVBqqAVQa/gEAEv4BABL+AQAS/gEAE + un1SSrp9UmS6fVJkun1SZLuAVJy7gVXdu4FV3buBVd3AhVnh0ZZq8NGWavDRlmrw0ZZq8OmwhP7rsob/ + 67KG/+uyhv/utYn/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+62iv/ptYn/6bWJ/+m1if/ptYn/ + 6baI/+m2iP/ptoj/6baI/+63iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/7rWJ/+uyhv/rsob/ + 67KG/+mwhP7Rlmrw0ZZq8NGWavDRlmrwwIVZ4buBVd27gVXdu4FV3buAVJy6fVJkun1SZLp9UmS6fVJK + v4BABL+AQAS/gEAEv4BABL+AQAS/gEAEv4BABL+AQAS6fVJKun1SZLp9UmS6fVJku4BUnLuBVd27gVXd + u4FV3cCFWeHRlmrw0ZZq8NGWavDRlmrw6bCE/uuyhv/rsob/67KG/+61if/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7raK/+m1if/ptYn/6bWJ/+m1if/ptoj/6baI/+m2iP/ptoj/7reK//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//utYn/67KG/+uyhv/rsob/6bCE/tGWavDRlmrw0ZZq8NGWavDAhVnh + u4FV3buBVd27gVXdu4BUnLp9UmS6fVJkun1SZLp9Ukq/gEAEv4BABL+AQAS/gEAEv4BABL+AQAS/gEAE + v4BABLp9Ukq6fVJkun1SZLp9UmS7gFScu4FV3buBVd27gVXdwIVZ4dGWavDRlmrw0ZZq8NGWavDpsIT+ + 67KG/+uyhv/rsob/7rWJ//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utor/6bWJ/+m1if/ptYn/ + 6bWJ/+m2iP/ptoj/6baI/+m2iP/ut4r/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61if/rsob/ + 67KG/+uyhv/psIT+0ZZq8NGWavDRlmrw0ZZq8MCFWeG7gVXdu4FV3buBVd27gFScun1SZLp9UmS6fVJk + un1SSr+AQAS/gEAEv4BABL+AQAS/gEAEv4BABL+AQAS/gEAEun1SSrp9UmS6fVJkun1SZLuAVJy7gVXd + u4FV3buBVd3AhVnh0ZZq8NGWavDRlmrw0ZZq8OmwhP7rsob/67KG/+uyhv/utYn/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+62iv/ptYn/6bWJ/+m1if/ptYn/6baI/+m2iP/ptoj/6baI/+63iv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/7rWJ/+uyhv/rsob/67KG/+mwhP7Rlmrw0ZZq8NGWavDRlmrw + wIVZ4buBVd27gVXdu4FV3buAVJy6fVJkun1SZLp9UmS6fVJKv4BABL+AQAS/gEAEv4BABL+AQAG/gEAB + v4BAAb+AQAG6fVIUun1SG7p9Uhu6fVIbun9UK7p/VT26f1U9un9VPb6DWEzEiV6IxIleiMSJXojEiV6I + yo9j4MqPY+fKj2Pnyo9j59OZbPDXnXD0151w9NedcPTfpXn467GG/+uxhv/rsYb/7LKH//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+q1if/otYj/6LWI/+i1iP/RsYH/va16/72tev+9rXr/tqx4/6Opc/+jqXP/ + o6lz/6Opc/+jqnP/o6pz/6Oqc/+jqnP/t6x4/76tev++rXr/vq16/9Kxgf/otYj/6LWI/+i1iP/qtYn/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/7LOG/+uyhf/rsoX/67KF/9+mefjXnXD0151w9NedcPTTmWzw + yo9j58qPY+fKj2Pnyo9j4MSJXojEiV6IxIleiMSJXoi+g1hMun9VPbp/VT26f1U9un9UK7p9Uhu6fVIb + un1SG7p9UhS/gEABv4BAAb+AQAG/gEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUB + qlVVA6pVVQOqVVUDt3lTFrl9U2K5fVNiuX1TYrl9U2K8gVXWvIFV3ryBVd68gVXeyI1h6s2TZvDNk2bw + zZNm8Nmfcvbpr4T/6a+E/+mvhP/qsIX/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/57WI/+W0h//ltIf/ + 5bSH/8avff+rqnT/q6p0/6uqdP+iqXL/iaVr/4mla/+JpWv/iaVr/4mla/+JpWv/iaVr/4mla/+jqXL/ + rKp0/6yqdP+sqnT/x699/+W0h//ltIf/5bSH/+e1iP/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//qsYT/ + 6bCD/+mwg//psIP/2Z9y9s2TZvDNk2bwzZNm8MiNYeq8gVXevIFV3ryBVd68gVXWuX1TYrl9U2K5fVNi + uX1TYrd5UxaqVVUDqlVVA6pVVQOqVVUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKpVVQGqVVUDqlVVA6pVVQO3eVMWuX1TYrl9U2K5fVNi + uX1TYryBVda8gVXevIFV3ryBVd7IjWHqzZNm8M2TZvDNk2bw2Z9y9umvhP/pr4T/6a+E/+qwhf/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//ntYj/5bSH/+W0h//ltIf/xq99/6uqdP+rqnT/q6p0/6Kpcv+JpWv/ + iaVr/4mla/+JpWv/iaVr/4mla/+JpWv/iaVr/6Opcv+sqnT/rKp0/6yqdP/Hr33/5bSH/+W0h//ltIf/ + 57WI//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+qxhP/psIP/6bCD/+mwg//Zn3L2zZNm8M2TZvDNk2bw + yI1h6ryBVd68gVXevIFV3ryBVda5fVNiuX1TYrl9U2K5fVNit3lTFqpVVQOqVVUDqlVVA6pVVQEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + qlVVAapVVQOqVVUDqlVVA7d5Uxa5fVNiuX1TYrl9U2K5fVNivIFV1ryBVd68gVXevIFV3siNYerNk2bw + zZNm8M2TZvDZn3L26a+E/+mvhP/pr4T/6rCF//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+e1iP/ltIf/ + 5bSH/+W0h//Gr33/q6p0/6uqdP+rqnT/oqly/4mla/+JpWv/iaVr/4mla/+JpWv/iaVr/4mla/+JpWv/ + o6ly/6yqdP+sqnT/rKp0/8evff/ltIf/5bSH/+W0h//ntYj/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 6rGE/+mwg//psIP/6bCD/9mfcvbNk2bwzZNm8M2TZvDIjWHqvIFV3ryBVd68gVXevIFV1rl9U2K5fVNi + uX1TYrl9U2K3eVMWqlVVA6pVVQOqVVUDqlVVAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUBqlVVAqpVVQKqVVUCt3lTDLl9UzS5fVM0 + uX1TNLl9UzS8gFVyvIBVd7yAVXe8gFV3xYpelsiOYaXIjmGlyI5hpc+UacHWnHDr1pxw69accOvXnXLt + 4KZ69uCmevbgpnr24KZ69uuyhv7ss4f/7LOH/+yzh//vtor/8LeL//C3i//wt4v/7reK/+u2if/rton/ + 67aJ/+m1if/RsYH/0bGB/9Gxgf/RsYH/v657/7qtev+6rXr/uq16/6yve/+fsXv/n7F7/5+xe/+csnz/ + kraA/5K2gP+StoD/kraA/5K2gP+StoD/kraA/5K2gP+csnz/n7F7/5+xe/+fsXv/rK97/7qtev+6rXr/ + uq16/7+ue//RsYH/0bGB/9Gxgf/RsYH/6bWJ/+u2if/rton/67aJ/+63iv/wt4v/8LeL//C3i//vtor/ + 7LOH/+yzh//ss4f/67KG/uCmevbgpnr24KZ69uCmevbXnnHt1pxw69accOvWnHDrz5VowciOYaXIjmGl + yI5hpcWKXpW8gVV2vIFVdryBVXa8gVVyuX1TNLl9UzS5fVM0uX1TNLd5UwyqVVUCqlVVAqpVVQKqVVUB + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAH/AAAB/wAAAf8AAAG4elA1 + uHtRT7h7UU+4e1FPun9UhbuBVdW7gVXVu4FV1b2DV9jMkWXrzJFl68yRZevMkWXr5at//Oivg//or4P/ + 6K+D/+20iP/wt4v/8LeL//C3i//stor/5bSH/+W0h//ltIf/4bOG/62rdf+tq3X/rat1/62rdf+Qpm3/ + iaVr/4mla/+JpWv/jbB4/5G5g/+RuYP/kbmD/5S9if+dyZj/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/ + ncmY/5S9if+RuYP/kbmD/5G5g/+NsHj/iaVr/4mla/+JpWv/kKZt/62rdf+tq3X/rat1/62rdf/hs4b/ + 5bSH/+W0h//ltIf/7LaK//C3i//wt4v/8LeL/+20iP/or4P/6K+D/+ivg//lq3/8zJFl68yRZevMkWXr + zJFl672DV9i7gVXVu4FV1buBVdW6f1SFuHtRT7h7UU+4e1FPuHtRNQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA/wAAAf8AAAH/AAAB/wAAAbh6UDW4e1FPuHtRT7h7UU+6f1SFu4FV1buBVdW7gVXV + vYNX2MyRZevMkWXrzJFl68yRZevlq3/86K+D/+ivg//or4P/7bSI//C3i//wt4v/8LeL/+y2iv/ltIf/ + 5bSH/+W0h//hs4b/rat1/62rdf+tq3X/rat1/5Cmbf+JpWv/iaVr/4mla/+NsHj/kbmD/5G5g/+RuYP/ + lL2J/53JmP+dyZj/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/lL2J/5G5g/+RuYP/kbmD/42weP+JpWv/ + iaVr/4mla/+Qpm3/rat1/62rdf+tq3X/rat1/+Gzhv/ltIf/5bSH/+W0h//stor/8LeL//C3i//wt4v/ + 7bSI/+ivg//or4P/6K+D/+Wrf/zMkWXrzJFl68yRZevMkWXrvYNX2LuBVdW7gVXVu4FV1bp/VIW4e1FP + uHtRT7h7UU+4e1E1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAB/wAAAf8AAAH/AAAB + uHpQNbh7UU+4e1FPuHtRT7p/VIW7gVXVu4FV1buBVdW9g1fYzJFl68yRZevMkWXrzJFl6+Wrf/zor4P/ + 6K+D/+ivg//ttIj/8LeL//C3i//wt4v/7LaK/+W0h//ltIf/5bSH/+Gzhv+tq3X/rat1/62rdf+tq3X/ + kKZt/4mla/+JpWv/iaVr/42weP+RuYP/kbmD/5G5g/+UvYn/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/ + ncmY/53JmP+UvYn/kbmD/5G5g/+RuYP/jbB4/4mla/+JpWv/iaVr/5Cmbf+tq3X/rat1/62rdf+tq3X/ + 4bOG/+W0h//ltIf/5bSH/+y2iv/wt4v/8LeL//C3i//ttIj/6K+D/+ivg//or4P/5at//MyRZevMkWXr + zJFl68yRZeu9g1fYu4FV1buBVdW7gVXVun9Uhbh7UU+4e1FPuHtRT7h7UTUAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAP8AAAH/AAAB/wAAAf8AAAG4elAquHtRP7h7UT+4e1E/un9UaruBVaq7gVWq + u4FVqr2DV67LkGTIy5BkyMuQZMjLkGTI3KV58N6oe/beqHv23qh79t6ugPvesoP93rKD/d6yg/3asYP+ + 0rGB/9Kxgf/SsYH/0LGB/6iuef+ornn/qK55/6iuef+TrXX/jax0/42sdP+NrHT/kbV+/5S8h/+UvIf/ + lLyH/5bAjP+dyZj/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/ncmY/5bAjP+UvIf/lLyH/5S8h/+RtX7/ + jax0/42sdP+NrHT/k611/6iuef+ornn/qK55/6iuef/QsYH/0rGB/9Kxgf/SsYH/2rGD/t6yg/3esoP9 + 3rKD/d6ugPveqHv23qh79t6oe/bcpXnwy5BkyMuQZMjLkGTIy5BkyL2DV667gVWqu4FVqruBVaq6f1Rq + uHtRP7h7UT+4e1E/uHtRKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtHtPCLR7Tzq0e086tHtPOrR7TzqwhVa/ + sIVW07CFVtOwhVbTnpNf6ZSbZPeUm2T3lJtk95CeZvqIpWv/iKVr/4ila/+Jpm3/k7uH/5O7h/+Tu4f/ + k7uH/5zGlf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cxpX/k7uH/5O7h/+Tu4f/ + k7uH/4mmbf+IpWv/iKVr/4ila/+Qnmb6lJtk95SbZPeUm2T3npNf6bCFVtOwhVbTsIVW07CFVr+0e086 + tHtPOrR7Tzq0e086tHtPCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAC0e08ItHtPOrR7Tzq0e086tHtPOrCFVr+whVbTsIVW07CFVtOek1/plJtk95SbZPeUm2T3 + kJ5m+oila/+IpWv/iKVr/4mmbf+Tu4f/k7uH/5O7h/+Tu4f/nMaV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5zGlf+Tu4f/k7uH/5O7h/+Tu4f/iaZt/4ila/+IpWv/iKVr/5CeZvqUm2T3 + lJtk95SbZPeek1/psIVW07CFVtOwhVbTsIVWv7R7Tzq0e086tHtPOrR7Tzq0e08IAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALR7Twi0e086tHtPOrR7Tzq0e086 + sIVWv7CFVtOwhVbTsIVW056TX+mUm2T3lJtk95SbZPeQnmb6iKVr/4ila/+IpWv/iaZt/5O7h/+Tu4f/ + k7uH/5O7h/+cxpX/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMaV/5O7h/+Tu4f/ + k7uH/5O7h/+Jpm3/iKVr/4ila/+IpWv/kJ5m+pSbZPeUm2T3lJtk956TX+mwhVbTsIVW07CFVtOwhVa/ + tHtPOrR7Tzq0e086tHtPOrR7TwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAtHtPCLR7Tzq0e086tHtPOrR7TzqwhVa/sIVW07CFVtOwhVbTnpNf6ZSbZPeUm2T3 + lJtk95CeZvqIpWv/iKVr/4ila/+Jpm3/k7uH/5O7h/+Tu4f/k7uH/5zGlf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cxpX/k7uH/5O7h/+Tu4f/k7uH/4mmbf+IpWv/iKVr/4ila/+Qnmb6 + lJtk95SbZPeUm2T3npNf6bCFVtOwhVbTsIVW07CFVr+0e086tHtPOrR7Tzq0e086tHtPCAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHefYBF3n2Aqd59gKnefYCp5oGI8fKJlrnyiZa58omWu + fKJlroKla96DpWzmg6Vs5oOlbOaPtH/0lr2K/pa9iv6WvYr+mMCO/p3Hlv+dx5b/nceW/53Hlv+dyJj/ + nciY/53ImP+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/ + nciY/53ImP+dyJj/nceW/53Hlv+dx5b/nceW/5jAjv6WvYr+lr2K/pa9iv6PtH/0g6Vs5oOlbOaDpWzm + gqVr3nyiZa58omWufKJlrnyiZa55oGI8d59gKnefYCp3n2Aqd59gEQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + d59gEnefYC13n2Atd59gLXmhYj97o2W2e6NltnujZbZ7o2W2f6ds4ICnbeeAp23ngKdt5462gfWWv43+ + lr+N/pa/jf6ZwpH+nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + mcKR/pa/jf6Wv43+lr+N/o62gfWAp23ngKdt54Cnbed/p2zge6NltnujZbZ7o2W2e6NltnmhYj93n2At + d59gLXefYC13n2ASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3n2ASd59gLXefYC13n2AteaFiP3ujZbZ7o2W2 + e6NltnujZbZ/p2zggKdt54CnbeeAp23njraB9Za/jf6Wv43+lr+N/pnCkf6eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+ZwpH+lr+N/pa/jf6Wv43+jraB9YCnbeeAp23n + gKdt53+nbOB7o2W2e6NltnujZbZ7o2W2eaFiP3efYC13n2Atd59gLXefYBIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHefYBJ3n2Atd59gLXefYC15oWI/e6NltnujZbZ7o2W2e6Nltn+nbOCAp23ngKdt54CnbeeOtoH1 + lr+N/pa/jf6Wv43+mcKR/p7Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5nCkf6Wv43+lr+N/pa/jf6OtoH1gKdt54CnbeeAp23nf6ds4HujZbZ7o2W2e6NltnujZbZ5oWI/ + d59gLXefYC13n2Atd59gEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHedXiV3nV4od51eKHedXih6oWRleqJlg3qiZYN6omWDfaRpk4CnbqyAp26sgKdurIOqcrSQuYTn + kLmE55C5hOeQuYTnlL6K9ZW+i/eVvov3lb6L95nDkfybxpX/m8aV/5vGlf+cx5b/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMeW/5vGlf+bxpX/m8aV/5nDkfyVvov3 + lb6L95W+i/eUvor1kLmE55C5hOeQuYTnkLmE54OqcrSAp26sgKdurICnbqx9pGmTeqJlg3qiZYN6omWD + eqFkZXedXih3nV4od51eKHedXiUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd51eOHedXjx3nV48d51ePHqhZJd6omXF + eqJlxXqiZcV9pWnUgahv64Gob+uBqG/rhKx07pfBj/+XwY//l8GP/5fBj/+dyJj/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+XwY//l8GP/5fBj/+XwY// + hKx07oGob+uBqG/rgahv632ladR6omXFeqJlxXqiZcV6oWSXd51ePHedXjx3nV48d51eOAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3nV44d51ePHedXjx3nV48eqFkl3qiZcV6omXFeqJlxX2ladSBqG/rgahv64Gob+uErHTu + l8GP/5fBj/+XwY//l8GP/53ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nciY/5fBj/+XwY//l8GP/5fBj/+ErHTugahv64Gob+uBqG/rfaVp1HqiZcV6omXF + eqJlxXqhZJd3nV48d51ePHedXjx3nV44AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHedXjh3nV48d51ePHedXjx6oWSX + eqJlxXqiZcV6omXFfaVp1IGob+uBqG/rgahv64SsdO6XwY//l8GP/5fBj/+XwY//nciY/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/l8GP/5fBj/+XwY// + l8GP/4SsdO6BqG/rgahv64Gob+t9pWnUeqJlxXqiZcV6omXFeqFkl3edXjx3nV48d51ePHedXjgAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd6BfDHegXxl3oF8Zd6BfGXmhYSR7omRR + e6JkUXuiZFF7omRRf6drf4Cna4KAp2uCgKdrgoavdr6IsXnciLF53IixedyKs3zljbaB8422gfONtoHz + j7iD9ZrEk/+axJP/msST/5rEk/+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/53ImP+axJP/msST/5rEk/+axJP/j7iD9Y22gfONtoHzjbaB84qzfOWIsXnc + iLF53IixedyGr3a+gKdrgoCna4KAp2uCf6drf3uiZFF7omRRe6JkUXuiZFF5oWEkd6BfGXegXxl3oF8Z + d6BfDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3oF8dd6BfPnegXz53oF8+eaFhWnuiZMt7omTLe6Jky3uiZMuDqm/qg6tw7IOrcOyDq3Ds + kbuH+ZjDkf+Yw5H/mMOR/5rFlP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/msWU/5jDkf+Yw5H/mMOR/5G7h/mDq3Dsg6tw7IOrcOyDqm/q + e6Jky3uiZMt7omTLe6Jky3mhYVp3oF8+d6BfPnegXz53oF8dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHegXx13oF8+d6BfPnegXz55oWFa + e6Jky3uiZMt7omTLe6Jky4Oqb+qDq3Dsg6tw7IOrcOyRu4f5mMOR/5jDkf+Yw5H/msWU/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+axZT/ + mMOR/5jDkf+Yw5H/kbuH+YOrcOyDq3Dsg6tw7IOqb+p7omTLe6Jky3uiZMt7omTLeaFhWnegXz53oF8+ + d6BfPnegXx0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAd6BfHXegXz53oF8+d6BfPnmhYVp7omTLe6Jky3uiZMt7omTLg6pv6oOrcOyDq3Ds + g6tw7JG7h/mYw5H/mMOR/5jDkf+axZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5rFlP+Yw5H/mMOR/5jDkf+Ru4f5g6tw7IOrcOyDq3Ds + g6pv6nuiZMt7omTLe6Jky3uiZMt5oWFad6BfPnegXz53oF8+d6BfHQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAgJ9gAYCfYAGAn2ABgJ9gAXacXxJ2nF8YdpxfGHacXxh4n2A2eKBhV3igYVd4oGFX + e6Nlb4Cna9KAp2vSgKdr0oCna9KGr3Xth69274evdu+Hr3bvk72J+pnEkv+ZxJL/mcSS/5vGlf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + m8aV/5nEkv+ZxJL/mcSS/5O9ifqHr3bvh69274evdu+Gr3XtgKdr0oCna9KAp2vSgKdr0nujZW94oGFX + eKBhV3igYVd3oGE1dp5gGHaeYBh2nmAYdp5gEoCfYAGAn2ABgJ9gAYCfYAGAn2AIgJ9gCICfYAiAn2AI + dpxfiHacX7d2nF+3dpxft3ieYtV6oGT4eqBk+HqgZPiAp235mMOR/5jDkf+Yw5H/mMOR/57JmP+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57JmP+YwpD/mMKQ/5jCkP+YwpD/f6dt+XmgZPh5oGT4eaBk+HifYtR2nmC1dp5gtXaeYLV2nmCH + gJ9gCICfYAiAn2AIgJ9gCICfYAiAn2AIgJ9gCICfYAh2nF+Idpxft3acX7d2nF+3eJ5i1XqgZPh6oGT4 + eqBk+ICnbfmYw5H/mMOR/5jDkf+Yw5H/nsmY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmY/5jCkP+YwpD/mMKQ/5jCkP9/p235 + eaBk+HmgZPh5oGT4eJ9i1HaeYLV2nmC1dp5gtXaeYIeAn2AIgJ9gCICfYAiAn2AIgJ9gCICfYAiAn2AI + gJ9gCHacX4h2nF+3dpxft3acX7d4nmLVeqBk+HqgZPh6oGT4gKdt+ZjDkf+Yw5H/mMOR/5jDkf+eyZj/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZj/mMKQ/5jCkP+YwpD/mMKQ/3+nbfl5oGT4eaBk+HmgZPh4n2LUdp5gtXaeYLV2nmC1 + dp5gh4CfYAiAn2AIgJ9gCICfYAiAn2AIgJ9gCICfYAiAn2AIdpxfiHacX7d2nF+3dpxft3ieYtV6oGT4 + eqBk+HqgZPiAp235mMOR/5jDkf+Yw5H/mMOR/57JmP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57JmP+YwpD/mMKQ/5jCkP+YwpD/ + f6dt+XmgZPh5oGT4eaBk+HifYtR2nmC1dp5gtXaeYLV2nmCHgJ9gCICfYAiAn2AIgJ9gCICfYAGAn2AB + gJ9gAYCfYAF0nGAVdJxgHXScYB10nGAdd6BjR3mhY3h5oWN4eaFjeHujZo1/p2zif6ds4n+nbOJ/p2zi + irN88Yu0ffKLtH3yi7R98pbAjfubxpX/m8aV/5vGlf+cx5b/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHlv+bxpX/m8aV/5vGlf+WwI37 + i7R98ou0ffKLtH3yirN88X+nbOJ/p2zif6ds4n+nbOJ7o2aNeKFjeHihY3h4oWN4eJ9iR3eaXBx3mlwc + d5pcHHeaXBWAn2ABgJ9gAYCfYAGAn2ABAAAAAAAAAAAAAAAAAAAAAGaZZgRmmWYFZplmBWaZZgV3oWMx + eKFjZHihY2R4oWNkeaFkfHuiZt17ombde6Jm3XuiZt2Hr3jviLB58IiwefCIsHnwlb6L+pvFlP+bxZT/ + m8WU/5zHlv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nMeW/5vFlP+bxZT/m8WU/5W+i/qIsHnwiLB58IiwefCHr3jve6Jm3XuiZt17ombd + e6Jm3XmhZHx4oWNkeKFjZHihY2R4oGExgIBABICAQASAgEAEgIBAAwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAZplmBGaZZgVmmWYFZplmBXehYzF4oWNkeKFjZHihY2R5oWR8e6Jm3XuiZt17ombd + e6Jm3YeveO+IsHnwiLB58IiwefCVvov6m8WU/5vFlP+bxZT/nMeW/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cx5b/m8WU/5vFlP+bxZT/ + lb6L+oiwefCIsHnwiLB58IeveO97ombde6Jm3XuiZt17ombdeaFkfHihY2R4oWNkeKFjZHigYTGAgEAE + gIBABICAQASAgEADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmmWYEZplmBWaZZgVmmWYF + d6FjMXihY2R4oWNkeKFjZHmhZHx7ombde6Jm3XuiZt17ombdh69474iwefCIsHnwiLB58JW+i/qbxZT/ + m8WU/5vFlP+cx5b/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5zHlv+bxZT/m8WU/5vFlP+Vvov6iLB58IiwefCIsHnwh69473uiZt17ombd + e6Jm3XuiZt15oWR8eKFjZHihY2R4oWNkeKBhMYCAQASAgEAEgIBABICAQAMAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAGaZZgFmmWYCZplmAmaZZgJ3oWMUeKFjKHihYyh4oWMoeaFkMnqiZlp6omZa + eqJmWnqiZlqBqnCWgapwmoGqcJqBqnCah693z4ixeemIsXnpiLF56Yy0fu6QuoX1kLqF9ZC6hfWSvIf3 + nMeW/5zHlv+cx5b/nMeW/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5zHlv+cx5b/nMeW/5zHlv+SvIf2kbqF9ZG6hfWRuoX1jLV+7oixeemIsXnp + iLF56Yevd8+BqnCagapwmoGqcJqBqnCWe6JmWnuiZlp7omZae6JmWnmhZDJ4oWMoeKFjKHihYyh4oGEU + gIBAAoCAQAKAgEACgIBAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAABVqlUBVapVA1WqVQNVqlUDVapVA3agYVt2oGFhdqBhYXagYWF5oWOy + eqFk23qhZNt6oWTbf6ds44avd++Gr3fvhq9374mye/GaxZT/msWU/5rFlP+axZT/nciY/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/msWU/5rFlP+axZT/ + msWU/4qze/CHsHfuh7B37oewd+5/p2zjeqFk23qhZNt6oWTbeaFjsnagYWF2oGFhdqBhYXagYVuAgIAC + gICAAoCAgAKAgIACgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFWqVQFVqlUD + VapVA1WqVQNVqlUDdqBhW3agYWF2oGFhdqBhYXmhY7J6oWTbeqFk23qhZNt/p2zjhq9374avd++Gr3fv + ibJ78ZrFlP+axZT/msWU/5rFlP+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/53ImP+axZT/msWU/5rFlP+axZT/irN78Iewd+6HsHfuh7B37n+nbON6oWTb + eqFk23qhZNt5oWOydqBhYXagYWF2oGFhdqBhW4CAgAKAgIACgICAAoCAgAKAgIAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVapVAVWqVQNVqlUDVapVA1WqVQN2oGFbdqBhYXagYWF2oGFh + eaFjsnqhZNt6oWTbeqFk23+nbOOGr3fvhq9374avd++JsnvxmsWU/5rFlP+axZT/msWU/53ImP+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciY/5rFlP+axZT/ + msWU/5rFlP+Ks3vwh7B37oewd+6HsHfuf6ds43qhZNt6oWTbeqFk23mhY7J2oGFhdqBhYXagYWF2oGFb + gICAAoCAgAKAgIACgICAAoCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVqlUA + VapVAlWqVQJVqlUCVapVAnagYTx2oGFBdqBhQXagYUF5oWN3eqFkknqhZJJ6oWSSf6ZrooSsc7qErHO6 + hKxzuoaud8GRuobxkbqG8ZG6hvGRuobxlb+M95bAjfiWwI34lsCN+JrEk/ycx5f/nMeX/5zHl/+dyJf/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciX/5zHl/+cx5f/ + nMeX/5rEk/yWwI34lsCN+JbAjfiVv4z3kbqG8ZG6hvGRuobxkbqG8Yevd8CFrXO5ha1zuYWtc7l/p2ui + eqFkknqhZJJ6oWSSeaFjd3agYUF2oGFBdqBhQXagYTyAgIABgICAAYCAgAGAgIABgICAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB3m14gd5teT3ebXk93m15PeJxgYXqgZdV6oGXVeqBl1XqgZdWEq3Ln + ha106oWtdOqFrXTqkbuH95nDkv+Zw5L/mcOS/5vFlP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+bxZT/mcOS/5nDkv+Zw5L/kbuH94WtdOqFrXTqha106oSrcud6oGXV + eqBl1XqgZdV6oGXVeJxgYXebXk93m15Pd5teT3ebXiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHebXiB3m15P + d5teT3ebXk94nGBheqBl1XqgZdV6oGXVeqBl1YSrcueFrXTqha106oWtdOqRu4f3mcOS/5nDkv+Zw5L/ + m8WU/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5vFlP+Zw5L/ + mcOS/5nDkv+Ru4f3ha106oWtdOqFrXTqhKty53qgZdV6oGXVeqBl1XqgZdV4nGBhd5teT3ebXk93m15P + d5teIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5teIHebXk93m15Pd5teT3icYGF6oGXVeqBl1XqgZdV6oGXV + hKty54WtdOqFrXTqha106pG7h/eZw5L/mcOS/5nDkv+bxZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/m8WU/5nDkv+Zw5L/mcOS/5G7h/eFrXTqha106oWtdOqEq3Ln + eqBl1XqgZdV6oGXVeqBl1XicYGF3m15Pd5teT3ebXk93m14gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3m14d + d5teSnebXkp3m15KeJxgWnqgZcd6oGXHeqBlx3qgZceDq3Lbha103oWtdN6FrXTekLqF8JfBkPuXwZD7 + l8GQ+5nDkvycx5f+nMeX/pzHl/6cx5f+nciY/53ImP+dyJj/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsiY/57ImP+eyJj/nsiY/5zHl/6cx5f+nMeX/pzHl/6Zw5L8 + l8GQ+5fBkPuXwZD7kLqF8IWtdN6FrXTeha103oOrctt6oGXHeqBlx3qgZcd6oGXHeJxgWnebXkp3m15K + d5teSnebXh0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHacXi92nF42dpxeNnacXjZ6oGSNe6Flx3uhZcd7oWXHfqRp0oKqcemCqnHpgqpx6YOsc+qWwY7/ + lsGO/5bBjv+WwY7/nMeX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Hl/+XwY7/ + l8GO/5fBjv+XwY7/hKxz6oKqcemCqnHpgqpx6X6kadJ7oWXHe6Flx3uhZcd6oGSNdpxeNnacXjZ2nF42 + dpxeLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdpxeL3acXjZ2nF42dpxeNnqgZI17oWXH + e6Flx3uhZcd+pGnSgqpx6YKqcemCqnHpg6xz6pbBjv+WwY7/lsGO/5bBjv+cx5f/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nceX/5fBjv+XwY7/l8GO/5fBjv+ErHPqgqpx6YKqcemCqnHp + fqRp0nuhZcd7oWXHe6Flx3qgZI12nF42dpxeNnacXjZ2nF4vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB2nF4vdpxeNnacXjZ2nF42eqBkjXuhZcd7oWXHe6Flx36kadKCqnHpgqpx6YKqcemDrHPq + lsGO/5bBjv+WwY7/lsGO/5zHl/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dx5f/ + l8GO/5fBjv+XwY7/l8GO/4Ssc+qCqnHpgqpx6YKqcel+pGnSe6Flx3uhZcd7oWXHeqBkjXacXjZ2nF42 + dpxeNnacXi8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHacXi92nF42dpxeNnacXjZ6oGSN + e6Flx3uhZcd7oWXHfqRp0oKqcemCqnHpgqpx6YOsc+qWwY7/lsGO/5bBjv+WwY7/nMeX/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Hl/+XwY7/l8GO/5fBjv+XwY7/hKxz6oKqcemCqnHp + gqpx6X6kadJ7oWXHe6Flx3uhZcd6oGSNdpxeNnacXjZ2nF42dpxeLwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAdpxeCXacXgt2nF4LdpxeC3qgZBx7oWUoe6FlKHuhZSh8omc1faRpT32kaU99pGlP + fqVqV4GpcMWBqXDFgalwxYGpcMWGrXXkhq527IauduyGrnbsj7mD9pfBjv6XwY7+l8GO/pnDkf6eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5nDkf6XwY7+l8GO/pfBjv6PuYP2hq527IauduyGrnbs + hq115IKpcMWCqXDFgqlwxYKpcMV+pWpXfaRpT32kaU99pGlPfKJnNXuhZSh7oWUoe6FlKHqgZBx2nF4L + dpxeC3acXgt2nF4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAHabXQ52m10pdptdKXabXSl3nF8yeqBltnqgZbZ6oGW2eqBltn+ma92Ap2zn + gKds54CnbOeMtH3zlb+L/pW/i/6Vv4v+l8KP/p7Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + l8KP/pW/i/6Vv4v+lb+L/oy0ffOAp2zngKds54CnbOd/pmvdeqBltnqgZbZ6oGW2eqBltnecXzJ2m10p + dptdKXabXSl2m10OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdptdDnabXSl2m10p + dptdKXecXzJ6oGW2eqBltnqgZbZ6oGW2f6Zr3YCnbOeAp2zngKds54y0ffOVv4v+lb+L/pW/i/6Xwo/+ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+Xwo/+lb+L/pW/i/6Vv4v+jLR984CnbOeAp2zn + gKds53+ma916oGW2eqBltnqgZbZ6oGW2d5xfMnabXSl2m10pdptdKXabXQ4AAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB2m10OdptdKXabXSl2m10pd5xfMnqgZbZ6oGW2eqBltnqgZbZ/pmvd + gKds54CnbOeAp2znjLR985W/i/6Vv4v+lb+L/pfCj/6eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5fCj/6Vv4v+lb+L/pW/i/6MtH3zgKds54CnbOeAp2znf6Zr3XqgZbZ6oGW2eqBltnqgZbZ3nF8y + dptdKXabXSl2m10pdptdDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHabXQZ2m10T + dptdE3abXRN3nF8YeqBlVXqgZVV6oGVVeqBlVX6lanF/pWt4f6VreH+la3iGrnWiirJ7x4qye8eKsnvH + i7R90o22gPGNtoDxjbaA8Y22gPGNtoDxjbaA8Y22gPGNtoDxjLR90ouze8eLs3vHi7N7x4eudqJ/pWt4 + f6VreH+la3h+pWpxeqBlVXqgZVV6oGVVeqBlVXecXxh2m10TdptdE3abXRN2m10GAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + dJddEnSXXRZ0l10WdJddFnmfY1t6oGSXeqBkl3qgZJd7oWWsfaRo5X2kaOV9pGjlfaRo5X2kaOV9pGjl + faRo5X2kaOV8oWWrfKBklnygZJZ8oGSWe59jWnSXXRZ0l10WdJddFnSXXRIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0l10SdJddFnSXXRZ0l10WeZ9jW3qgZJd6oGSX + eqBkl3uhZax9pGjlfaRo5X2kaOV9pGjlfaRo5X2kaOV9pGjlfaRo5XyhZat8oGSWfKBklnygZJZ7n2Na + dJddFnSXXRZ0l10WdJddEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHSXXRJ0l10WdJddFnSXXRZ5n2NbeqBkl3qgZJd6oGSXe6FlrH2kaOV9pGjlfaRo5X2kaOV9pGjl + faRo5X2kaOV9pGjlfKFlq3ygZJZ8oGSWfKBklnufY1p0l10WdJddFnSXXRZ0l10SAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddDXSXXRB0l10QdJddEHmfY0N6oGRv + eqBkb3qgZG97oWV/faRorH2kaKx9pGisfaRorH2kaKx9pGisfaRorH2kaKx8oWV+fKBkbnygZG58oGRu + e59jQnSXXRB0l10QdJddEHSXXQ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHeZZgR3mWYPd5lmD3eZZg93mWYP + baRbDm2kWw5tpFsObaRbDm2kWwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAd5lmBHeZZg93mWYPd5lmD3eZZg9tpFsObaRbDm2kWw5tpFsObaRbBAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3mWYEd5lmD3eZZg93mWYP + d5lmD22kWw5tpFsObaRbDm2kWw5tpFsEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAHeZZgR3mWYPd5lmD3eZZg93mWYPbaRbDm2kWw5tpFsObaRbDm2kWwQAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/////////g + B///////////////////4Af//////////////////+AH///////////////////gB/////////////// + ///gAAAH////////////////4AAAB////////////////+AAAAf////////////////gAAAH//////// + ///////AAAAAAAP/////////////wAAAAAAD/////////////8AAAAAAA//////////////AAAAAAAP/ + ///////////AAAAAAAAAA///////////wAAAAAAAAAP//////////8AAAAAAAAAD///////////AAAAA + AAAAA///////////wAAAAAAAAAP/////////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAH///////+A + AAAAAAAAAAAB////////gAAAAAAAAAAAAf//////gAAAAAAAAAAAAAAB/////4AAAAAAAAAAAAAAAf// + //+AAAAAAAAAAAAAAAH/////gAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAA + AAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP + 8AAAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAA + AAAP///wAAAAAAAAAAAAAAAAD/////+AAAAAAAAAAAAB////////gAAAAAAAAAAAAf///////4AAAAAA + AAAAAAH///////+AAAAAAAAAAAAB////////+AAAAAAAAAAAH/////////gAAAAAAAAAAB/////////4 + AAAAAAAAAAAf////////+AAAAAAAAAAAH///////+AAAAAAAAAAAAAAf//////gAAAAAAAAAAAAAH/// + ///4AAAAAAAAAAAAAB//////+AAAAAAAAAAAAAAf////8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAA + AAAP///wAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAA + AAAA//8AAAAAAAAAAAAAAAAAAP///4AAAAAAAAAAAAAAH/////+AAAAAAAAAAAAAAB//////gAAAAAAA + AAAAAAAf/////4AAAAAAAAAAAAAAH///////+AAAAAAAAAAAH/////////gAAAAAAAAAAB/////////4 + AAAAAAAAAAAf////////+AAAAAAAAAAAH////////4AAAAAAAAAAAAH///////+AAAAAAAAAAAAB//// + ////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAH//////4AAAAAAAAAAAAAAAf////+AAAAAAAAAAAAA + AAH/////gAAAAAAAAAAAAAAB/////4AAAAAAAAAAAAAAAf///wAAAAAAAAAAAAAAAAAA//8AAAAAAAAA + AAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAA + AAAAD/AAAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAP///wAAAAAAAA + AAAAAAAAD///8AAAAAAAAAAAAAAAAA//////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAH///////+A + AAAAAAAAAAAB////////gAAAAAAAAAAAAf/////////AAAAAAAAAA///////////wAAAAAAAAAP///// + /////8AAAAAAAAAD///////////AAAAAAAAAA///////////wAAAAAAAAAP////////////AAAAAAAP/ + ////////////wAAAAAAD/////////////8AAAAAAA//////////////AAAAAAAP//////////////+AA + AAf////////////////gAAAH////////////////4AAAB////////////////+AAAAf///////////// + ////4Af//////////////////+AH///////////////////gB///////////////////4Af///////// + KAAAAEAAAACAAAAAAQAgAAAAAAAAQAAAYQoAAGEKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLuqAsy7qg/Mu6oPyLakDsi2pA7ItqQC + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy7qgLMu6oP + zLuqD8i2pA7ItqQOyLakAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANG5ogjRuaIT + 0LqoMdC7q4PQvKuM0sCtyNLArcjSwK3I0sCtyNC8q4vPu6qC0LqoMdG5ohPRuaIIAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADRuaIJ0bmiFtC6qDjQu6uX0LyrodLAreXSwK3l0sCt5dLAreXQvKuhz7uqltC6qDjRuaIW + 0bmiCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADRuaIL0bmiENC8qkDQvKtq0r6shdPArazXxrS64NLE4OHUx+Pp4NP46eDT+Ong0/jp4NP4 + 4dTG49/SxN/XxrS608CtrNK+rIXQvKtq0LyqQNG5ohDRuaILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0bmiD9G5ohbQvKpY0LyrkdK+rLLTwK3j2Me16ePXyvrl2s37 + 8erg//Hq4P/x6uD/8erg/+Xazfvj18r62Me16dPArePSvqyy0LyrkdC8qljRuaIW0bmiDwAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAybmiEsm5ohTRvqxT0b6sY9PAroPUwa6T3My8tOHSxNLj1sjf + 5tvO9Ojd0Pbs49j97eTZ/fLr4f/y6+H/8uvh//Lr4f/t5Nn97OPY/ejd0Pbm287049bI3+HSxNLczLy0 + 1MGuk9PAroPRvaxj0b2sU8m5ohTJuaISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMm5oh/JuaIh0b6si9G+rKXTwK7Q + 1MGv5t/PwPLn28796+HW/vLr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh/+vh1v7n287938/A8tTBr+bTwK7Q0b2spdG9rIvJuaIhybmiHwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLWkBMy1pBXNt6YZ0b2rVdG9q1XTwrB7 + 08Kxfd7Qwb7f0sPP4tTG5uPWyPLo3dD47OLX/u7m2/7y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/u5tv+7OLX/ujd0Pjj1sjy4tTG5t/Rw8/ez8G+08KxfdPCsHvRvatV + 0b2rVc23phnMtaQVzLWkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy1pAnMtaQt + zbemNtG9q7bRvau21cSz5NXEs+fm28756uDU/u/n3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3f/q4NT+ + 5tvO+dXEs+fVxLPk0b2rttG9q7bNt6Y2zLWkLcy1pAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy3ognMt6IU + zrunI9C9qkLRvqxK1MGwbNXCsnPczL3O3My9zt/Sw+3f0sPv6uDU++3k2P7w6d7/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6d7/7eTY/urg1Pvf0sPv39LD7dzMvc7czL3O1cKyc9TBsGzRvqxK0L2qQs67pyPMt6IU + zLeiCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADMt6IczLeiPM67p2rQvarF0r+tzdfFtevYx7fs6+LW/+vi1v/y6uD/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lq4P/r4tb/6+LW/9jHt+zXxbXr + 0r+tzdC9qsXOu6dqzLeiPMy3ohwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADOuaUJzrmlDNC9qh3Rvqsp0r+sQtK/rV/Vw7GF18e10djIt9fdzb7v3s/A8Ozk2P/s5Nj/ + 8uvg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+D/ + 7OTY/+zk2P/ez8Dw3c2+79jIt9fXx7XR1cOxhdK/rV/Sv6xC0b6rKdC9qh3OuaUMzrmlCQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzrmlLc65pT7QvaqT0b6ry9XDstrZyLjs4NLD8u3k2P/u5dr/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/u5dr/7eTY/+DSw/LZyLjs1cOy2tG+q8vQvaqT + zrmlPs65pS0AAAAAAAAAAAAAAAAAAAAAv7+fAb+/nwHNuKQLzbikDM66pjrOuqZK0sCtmtPBr87XxrXd + 28u77eHUxfPt5Nn/7uba//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7uba/+3k2f/h1MXz + 28u77dfGtd3Twa/O0sCtms66pkrOuqY6zrmlDM65pQu/v58Bv7+fAb+/nwi/v58IzbikoM24pLfPu6jn + 0Lyp+OLUxvzt5Nj/7+fc//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/v59z/7OPX/+HUxfzQvKr40Lup5s65pbXOuaWev7+fCL+/nwi/v58I + v7+fCM24pKDNuKS3z7uo59C8qfji1Mb87eTY/+/n3P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7+fc/+zj1//h1MX80Lyq+NC7qebOuaW1 + zrmlnr+/nwi/v58Iv7+fAb+/nwHNvqEPzb6hEc+6qFXPuqhu0b6sstK/rt/YyLjo3tHC8eTZy/bv59z/ + 8Ojd//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8ene/+zi1f/p28z/1LCT/9Swk//UsJP/1LCT/+nbzP/s4tX/8ene//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+/n3P/k2cv23tHC8djIuOjSv63f + 0b6sss+6qG7PuqhVyrqrEMq6qw6/v58Bv7+fAQAAAAAAAAAAzMyZBMzMmQXPuqhLz7qoZNC8qq3QvKrd + 1sW15t3PwPDj18r17+fc//Do3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Do3v/s4dT/6drL/9Ksjf/SrI3/0qyN/9Ksjf/p2sv/7OHU//Do3v/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Do3f/v59z/ + 49fK9d3PwPDWxbXm0Lyq3dC8qq3Puqhkz7qoSr+/vwS/v78DAAAAAAAAAAAAAAAAAAAAAMzMmQHMzJkB + z7qoD8+6qBTOu6okzruqL9K/rlPTwbB+1cOyn9fGteLZybnl4dTF8uLVx/Pv59z/7+fc//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh/+/l2f/s4NL/4867/9a0mf/TrpH/y557/82fe//apnz/2qZ8/9qlfP/apXz/ + zZ97/8ueev/TrpH/1rSZ/+POu//s4NL/7+XZ//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3P/v59z/ + 4tXH8uHUxfHZybnl18a14tXDsp/TwbB+07+uU9K6qS7Ruqgjz7qoFM+6qA+/v78Bv7+/AQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqqqqAqqqqgPMuKYvzbimYc+7qIrQvarb08Gu393Ovu/e0MDw + 7ubb/+7m2//y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/u5Nf/6t3O/9/Hsv/Ppof/zJ9+/8ONZf/GkGj/ + 3KR4/9ykeP/co3j/3KN4/8aQZ//DjWT/zJ9+/8+mh//fx7L/6t3O/+7k1//y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/u5tv/7ubb/97QwO/dzr7u08Gu39C9qtvPu6iKzbimYc63pS7/gIAC/4CAAQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKqqqgGqqqoBzLimEM24piDPu6gu + 0L2qSdLArVXXxbSE2Ma1i9vMvOPbzLzj49bI8OPWyPHo3M786d3Q/+DIs//bvaX/1bGV/9Cnh//TpYL/ + 16N7/9mkfP/gqH7/4ql//+mxhf/psYX/6bCF/+mwhf/iqX7/4Kh9/9mkfP/Xo3v/06WC/9Cnh//VsZX/ + 272l/+DIs//p3dD/6NzO/OPWyPHj1sjw28y849vMvOPYxrWK18W0hNLArVXQvapJz7uoLs24piDOt6UP + /4CAAf+AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAADPuKUQz7ilT8+5pljPvarVz72q1drKuunby7vq49TF++XWx//Wtpz/ + z6aH/8mYdP/DjGP/zZRq/9uhdf/gp3v/77aK/++2iv/wt4v/8LeL//C3i//wt4v/77aK/++2iv/gp3v/ + 26F1/82Uav/DjGP/yZh0/8+mh//Wtpz/5dbH/+PUxfvby7vq2sq66c+9qtXPvarVz7mmWM+4pU/PuKUQ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz7ilB8+4pSXOtqIryrCYfMqwmHzMqo3R + zKmM19Gsj/XSrY/91qiF/tilgP/ZpHz/26N4/9+nfP/mrYH/6a+D//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/6a+D/+atgf/fp3z/26N4/9mkfP/YpYD/1qiF/tKtj/3RrI/1zKmM18yqjdHKsJh8 + yrCYfM62oivPuKUlz7ilBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + t3pOA7d6Ti63ek4uvIdcvbyHXMfAiF7xwYhe+9WbcP7fpXn/6K+D//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//or4P/36V5/9WbcP7BiF77 + wIhe8byHXMe8h1y9t3pOLrd6Ti63ek4DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + uH1PCLh9Txi5f1Iku4FVULyBVVPAhlp7wIZae86Wa9fOl2zd05pv9tSbcP3gpnv+5qyA/+uyhv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 67KG/+asgP/gpnv+1Jtw/dOab/bOl2zdzpZr18CGWnvAhlp7vIFVU7yBVVC6f1IkuH1PGLh9TwgAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALh9TxS4fU89uX9SWbuBVci8glbLw4ld7sOJXe7iqHz+5Kp+/+60iP/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utIj/5Kp+/+KofP7DiV3uw4ld7r2CVsu8gVXJ + un9SWbh9Tz24fU8UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALV+UQu1flESuX9TJLqAVDi9g1dJwYdabMOKXYHJj2PXyZBk2dCWavPQlmrz + 5qyA/uetgf/utYn/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/7rWJ/+etgf/mrID+ + 0JZq89CWavPKkGTZyo9j18SKXYHBh1psvoNXSbqAVDi5f1MktX5RErV+UQsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1flEptX5RRbl/U4e6gFTSv4VZ28eOYu3OlWnx + 566C/+ivg//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/6K+D/+eugv/PlWjwyI5h7L+FWdu6gFTSuX9Th7V+UUW1flEp + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqoBVAaqAVQG5gFIMuYBSDryBVRq9gVYev4ZZQ7+HWlzBh1uW + wohc2MaMYODNlGjv05pu8+ivg//psIT/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+mwhP/or4P/05pt8s6UZ+/GjGDg + wohc2MGIW5a/h1pcvoZZQ72BVh68gVUauYBSDrmAUgyqgFUBqoBVAaqAVQaqgFUGuYBSXbmAUmq8gVXA + vYFW38qPY+rSl2vx3qR4+Ouyh//ttIj/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7bSI/+uyh//dpHj40Zdq8smPYuq9gVbfvIFVwLmAUmq5gFJdqoBVBqqAVQaqgFUG + qoBVBrmAUl25gFJqvIFVwL2BVt/Kj2Pq0pdr8d6kePjrsof/7bSI//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+20iP/rsof/3aR4+NGXavLJj2LqvYFW37yBVcC5gFJq + uYBSXaqAVQaqgFUGv4BABL+AQAS6fVJXun1SZLuAVb27gVXdyY5i6NGWavDeo3f367KG/+20iP/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//vt4v/6bWJ/+m1if/ptoj/6baI/++3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//ttIj/67KG/96jd/fRlmrw + yY5i6LuBVd27gFW9un1SZLp9Ule/gEAEv4BABL+AQAS/gEAEun1SV7p9UmS7gFW9u4FV3cmOYujRlmrw + 3qN39+uyhv/ttIj/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/77eL/+m1if/ptYn/6baI/+m2iP/vt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 7bSI/+uyhv/eo3f30ZZq8MmOYui7gVXdu4BVvbp9UmS6fVJXv4BABL+AQAS/gEABv4BAAbp9Ugy6fVIN + un1VG7p9VSC/g1lTwIRZdcKHW6jDiFziyI5i6NKYa/LXnXH16rCF/+qxhf/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/7LaK/+a0iP/ZsoP/tKx3/7Crdv+Wp2//lqdv/5anb/+Wp2// + sat2/7Wsd//ZsoP/5rSI/+y2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 6rGF/+qxhP/XnXD10phr8siOYujDiFziwodbqMCEWXW/g1lTun1VILp9VRu6fVINun1SDL+AQAG/gEAB + AAAAAAAAAAAAAAAAAAAAAKpVVQKqVVUDuXxTPLl9U2K7gFScvIFV3sKHW+TNk2bw05ls8+mvhP/psIT/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+y2if/ltIf/1rGC/6uqdP+mqXP/ + iaVr/4mla/+JpWv/iaVr/6epc/+sqnT/1rGC/+W0h//ston/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+mwhP/psIP/05ls882TZvDCh1vkvIFV3ruAVJy5fVNiuXxTPKpVVQOqVVUC + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUBqlVVAbl8UxC5fVMavH9UKr1/VDzAhFhR + w4hcesWKXo7Jj2PgypBk4daccPDWnHDw6bCE/uqxhf/vtor/8LeL/+u2if/otYj/0rGB/7+ue/+zrHj/ + oqly/5+sdv+YtX//mLaB/5i/jP+Yv4z/mL+M/5i/jP+YtoH/mLV//5+sdv+iqXL/s6x4/7+ue//SsYH/ + 6LWI/+u2if/wt4v/77aK/+qxhf/psIT+1pxw8NaccPDKkGThyY9j4MWKXo7DiFx6wIRZULyBVTu7gFQq + uX1TGrl8UxCqVVUBqlVVAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAP8AAAD/AAABunhPG7h7UU+5fVNqu4FV1byCVtbMkWXrzJFl6+atgf7or4P/7rWJ//C3i//ptYj/ + 5bSH/8evff+tq3X/n6lx/4mla/+LqnH/kbmD/5O7hv+dyZj/ncmY/53JmP+dyZj/k7uG/5G5g/+LqnH/ + iaVr/5+pcf+tq3X/x699/+W0h//ptYj/8LeL/+61if/or4P/5q2B/syRZevMkWXrvIJW1ruBVdW5fVNq + uHtRT7h7URoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAALp4Twu4e1EguX1TKruBVVW8glZYxotfgcaLX4HJl2re + yZhq5bykcva6pnT6sal1/a2rdv+lsHv/nbWA/5q3g/+Wu4f/lr2J/5nDkP+Zw5H/nsmZ/57Jmf+eyZn/ + nsmZ/5nDkf+Zw5D/lr2J/5a7h/+at4P/nbWA/6Wwe/+tq3b/sal1/bqmdPq8pHL2yZhq5cmXat7Gi1+B + xotfgbyCVli7gVVVuX1TKrh7USC4e1ELAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tHtPBLR7Tzq0e086sIVWybCFVtOZl2LwlJtk94yiafyIpWv/jrF6/5O7h/+XwY7/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/l8GO/5O7h/+OsXr/iKVr/4yiafyUm2T3 + mZdi8LCFVtOwhVbJtHtPOrR7Tzq0e08EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3n2AEd59gFXydYBuKmF90iphfdJiWYdWZlmHclqhz9JWsd/qTs339kraA/5W8iP+Ywo// + msWT/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5rFk/+Ywo// + lbyI/5K2gP+Ts339lax3+paoc/SZlmHcmJZh1YqYX3SKmF90fJ1gG3efYBV3n2AEAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd59gCXefYC14oGE2e6NltnujZbaAp23kgKdt55K7h/mWv43+ + m8aV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/m8aV/5a/jf6Su4f5gKdt54CnbeR7o2W2e6NltnigYTZ3n2At + d59gCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd51eCXedXhR5oGIjeqJlQnujZ0p+pmtsf6dsc4evds6Hr3bO + irN87Yuzfe+Wv437mcKR/pzHlv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHlv+ZwpH+lr+N+4uzfe+Ks3zt + h692zoevds5/p2xzfqZrbHujZ0p6omVCeaBiI3edXhR3nV4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHedXhx3nV48eaBianqiZcV8o2fN + gahv64OqceyXwY//l8GP/57ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsiY/5fBj/+XwY//g6px7IGob+t8o2fNeqJlxXmgYmp3nV48d51eHAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHegXwl3oF8MeqJjHXuiZCl8o2ZC + faRnX3+nbIWBqnDRg6ty14eveO+IsHrwmMOR/5jDkf+eyZj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57JmP+Yw5H/mMOR/4iwevCHr3jvg6ty14GqcNF/p2yF + faRnX3yjZkJ7omQpeqJjHXegXwx3oF8JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3oF8t + d6BfPnqiY5N7omTLf6dq2oOrcOyKs3zymMOR/5nEk/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5nEk/+Yw5H/irN88oOrcOx/p2rae6Jky3qiY5N3oF8+d6BfLQAAAAAAAAAAAAAAAAAAAACAn2AB + gJ9gAXacXwt2nF8MeKBgOnigYEp8pGaafaVozoGpbd2FrXPtjLV+85jDkv+axZP/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+axZP/mMOS/4y1fvOFrXPtgalt3X2laM58pGaad6BgSnegYDp2nmAM + dp5gC4CfYAGAn2ABgJ9gCICfYAh2nF+gdpxft3mfY+d6oGT4jLV//JjDkf+bxpX/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5vFlP+YwpD/ + jLV//HmgZPh4oGPmdp5gtXaeYJ6An2AIgJ9gCICfYAiAn2AIdpxfoHacX7d5n2PneqBk+Iy1f/yYw5H/ + m8aV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+bxZT/mMKQ/4y1f/x5oGT4eKBj5naeYLV2nmCegJ9gCICfYAiAn2ABgJ9gAXKbYQ9ym2ER + eKFjVXihY258pGiyfaVp34OrcuiKsnvxkLmE9pvFlP+cxpX/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+cxpX/m8WU/5C5hPaKsnvxg6ty6H2kad98pGiyeKFjbnigY1V4l1gQeJdYDoCfYAGAn2AB + AAAAAAAAAABmmWYEZplmBXihY0t4oWNkeqJlrXuiZt2BqW/miLB58I+3gvWbxZT/nMaV/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMaV/5vFlP+Pt4L1iLB58IGpb+Z7ombdeqJlrXihY2R4oWJK + gIBABICAQAMAAAAAAAAAAAAAAAAAAAAAZplmAWaZZgF4oWMPeKFjFHmiZSR5omUvfKVpU32man5/qGyf + galv4oOscuWLtH7yjLaA85vGlf+bxpX/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/m8aV/5vGlf+NtoDyjLV+8YSscuWBqW/if6hsn32man58pWlT + e6FnLnqhZiN4oWMUeKFiD4CAQAGAgEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVqlUC + VapVA3WgYS92oGFheKFjinqhZNt9pGjfhq9374exefCaxZT/msWU/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5rFlP+axZT/iLF574ewd+59pGjf + eqFk23ihY4p2oGFhdp9iLoCAgAKAgIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAVapVAVWqVQF1oGEQdqBhIHihYy56oWRJfKNnVYCnbYSBqG6Lhq5344aud+ONtoDw + jreB8ZjCkfybxZT/nciX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciX/5vFlP+YwpH8jreB8Y22gPCGrnfj + hq5344GoboqBqG2EfKNnVXqhZEl4oWMudqBhIHafYg+AgIABgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHebXhB3m15P + d5xfWHqgZdV6oGXVhKxz6YWtdOqVv4z7mcOS/5zHl/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHl/+Zw5L/ + lb+M+4WtdOqErHPpeqBl1XqgZdV3nF9Yd5teT3ebXhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3m14Hd5teJXecXyl6oGVjeqBlY4Gpb4eCqW+KirJ70IuzfeGOt4LtkLmF85W/jfqaxZP/ + m8aV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zGlf+axZP/ + lb+N+pC5hfOOt4Lti7N94Yqye9CCqW+Kgalvh3qgZWN6oGVjd5xfKXebXiV3m14HAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2nF4ydpxeNnuhZap7oWXH + gKdt3oKqcemNt4H1lsGO/5nEkv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+axJL/l8GO/463gfWCqnHpgKdt3nuhZcd7oWWqdpxeNnacXjIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + dpxeHnacXiB7oWVme6Fld3+mbJCBqG+ciLF6wY22geKPuYTqk7yI9ZW/i/iaxZP/m8aU/57Jmf+eyZn/ + nsmZ/57Jmf+bxpT/msWT/5W/i/iTvIj1kLmE6o62geKJsXrBgahvnH+mbJB7oWV3e6FlZnacXiB2nF4e + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2m10bdptdKXmfZHR6oGW2faNoyoCnbOeGrnXt + lb+L/pbAjf6eyZn/nsmZ/57Jmf+eyZn/lsCN/pW/i/6GrnXtgKds532jaMp6oGW2eZ9kdHabXSl2m10b + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdptdFHabXR55n2RV + eqBlhX2jaJaApmuvha1zvZC5hOORuoXllsCN+JbAjfiWwI34lsCN+JG6heWRuoTiha1zvYCma699o2iW + eqBlhXmfZFV2m10edptdFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB0l10JdJddFnidYjh6oGSXe6FloX2kaOV9pGjlfaRo5X2kaOV8oWWh + fKBklnqdYjh0l10WdJddCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddCHSXXRN4nWIxeqBkg3uhZYx9pGjI + faRoyH2kaMh9pGjIfKFli3ygZIJ6nWIxdJddE3SXXQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3mWYCd5lmD3eZZg9tpFsObaRbDm2kWwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5lmAneZZg93mWYPbaRbDm2kWw5tpFsCAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////4H/////////gf//// + ////gAH///////+AAf//////+AAAH//////4AAAf/////4AAAAH/////gAAAAf////AAAAAAD///8AAA + AAAP//8AAAAAAAD//wAAAAAAAP/wAAAAAAAAD/AAAAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADAAAAAAAAAA8AAAAAAAAAD/AAAAAAAAD/8AAAAAAAAP//wAAAAAA////AAAAAAD////AAA + AAA////AAAAAAAP//8AAAAAAA//8AAAAAAAAP/wAAAAAAAA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAA/wAAAAAAAAD/8AAAAAAAP//wAAAAAAA////AAA + AAA////wAAAAAA////AAAAAAD///AAAAAAAA//8AAAAAAAD/8AAAAAAAAA/wAAAAAAAADwAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAPAAAAAAAAAA/wAAAAAAAA//AAAAAAAAD//8AAA + AAAP///wAAAAAA////+AAAAB/////4AAAAH/////+AAAH//////4AAAf//////+AAf///////4AB//// + ////+B/////////4H////ygAAAAwAAAAYAAAAAEAIAAAAAAAACQAAGEKAABhCgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLuqCcy7qg/ItqQOyLakCAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0bmiB9C6qBPQu6s80b6sVdHArWXRv6xk0b6sVM+7qjzQuqcT + 0bmiBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0bmiEtC6qDDQu6uX0b6sxtLAreXSwK3l + 0b6sxc+7qpbQuqcw0bmiEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIB0bmiEdC7qTnQvKt007+trNbEs8Ph08bm + 593Q8uvi1/rr4tf6593Q8uDTxubWxLPD07+trNC8q3TQu6k50bmiEdG5ogEAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJuaIBybmiB9C9qxbRvqwi07+rPtbDsmnXxban + 2cm429zNvezm28/77eTZ/fHq4P/x6uD/7eTZ/ebbz/vczb3s2cm429fFtqfWw7Jp07+rPtG9rCLQvasW + ybmiB8m5ogEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJuaIHybmiIdC9q3DRvqyo + 1MGv49zMvO/n28798Ojd//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+fbzv3czLzv + 1MGv49G9rKjQvatwybmiIcm5ogcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMtaQLzLWkG9G9q13Sv612 + 1MOymN7QwcDj1sjc59vO9Orf0/nu5dn+8erf//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8erf/+7l2f7q39P559vO9OPWyNze0MHA1MOymNK/rXbRvatdzLWkG8y1pAsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6ICzLijA9C9qgjOuaga + zrinNdK/rZ/Twa/C1sa16OPWyfXr4dX+8uvg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvg/+vh1f7j1sn11sa16NPBr8LSv62fzrinNc65qBrQvaoI + zLijA8y3ogIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6Ij + zLijP9C9qrfTwa/M18W14+fcz/fs49f88erf/vHq4P/y6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4P/x6uD/8erf/uzj1/zn3M/3 + 18W149PBr8zQvaq3zLijP8y3oiMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOuaUU + z7uoJNG+q1HUwrBv1sSzht3Pv9jg0sPl4tXH8+zi1/3v59z/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh/+/n3P/s4tf94tXH8+DSw+Xdz7/Y1sSzhtTCsG/RvqtRz7uoJM65pRQAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADOuaUyz7uoWtG+q8vWxLPf2sm57ezj1/7v59z/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3P/s49f+2sm57dbEs9/RvqvLz7uoWs65pTIAAAAA + AAAAAAAAAAC/v58GzLikPs24pJLPu6jG1cOy2uje0fXr4tb57eXa+/Hp3//x6uD/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hq4P/x6d//7eXa++vh1vno3dD1 + 1cOy2tC7qcbOuaWRzbmlPr+/nwa/v58GzLmkP824pJPPu6jM1cOy4Ojd0Pjs4tb67ubb/PHq4P/y6+D/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4P/x6d7/7uPW/+ze0P/s3tD/ + 7uPW//Hp3v/y6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4P/x6uD/ + 7ubb/Ovi1vrn3M/41cOy4NC7qczOuaWSzbmlPr+/nwYAAAAAzMyZAszMmQXPuqhRz7upfNC8qt3YyLjo + 3tDB8e7m2/7w6d7/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hp3v/s4dT/ + 3MGp/9Ksjf/SrI3/3MGp/+zh1P/x6d7/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Dp3v/u5tv+3tDB8djIuOjQvKrdz7upfM+6qFG/v78Ev7+/AgAAAAAAAAAAzMyZAczMmQLPuqgg + z7upMs+8qlrVw7OB18e3nt3PwObh1MXu5trN9e7l2v3w6d7/8uvh//Lr4f/y6+H/8uvh//Do3P/t49b/ + 4Mi0/9u+pv/Tr5H/1qqH/9ingP/Yp4D/1qqH/9Ovkf/bvqb/4Mi0/+3j1v/w6Nz/8uvh//Lr4f/y6+H/ + 8uvh//Dp3v/u5dr95trN9eHUxe7dz8Dm18e3ntXDs4DRu6la0LqpMs+6qCC/v78Cv7+/AQAAAAAAAAAA + AAAAAAAAAAAAAAAAqqqqAaqqqgPMuKY5zbimYtC9qs3VxLLb3c6+6Org1Pnu5tv98erg/vHq4P/x6uD/ + 8ejd/+3i1f/o2sr/1LCU/82hgP/Fj2f/05xx/92lef/dpHn/05tx/8WPZv/NoYD/1LCU/+jayv/t4tX/ + 8ejd//Hq4P/x6uD/8erg/u7m2/3q4NT53c6+59XEstrQvarNzbimYs63pTn/gIAC/4CAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqqqqAKqqqgDMuKYCzbimBNC9qgnRu6go0buoVtG/rL3TwrDb + 3My96+LTxPfl1cb/0auN/8yfff/Fj2f/1p5z/96lef/ttIj/7rWK/++2iv/vtor/7rWJ/+20iP/epXn/ + 1p5z/8WPZ//Mn33/0auN/+XVxv/i08T33My969PCsNvRv6y90buoVtG7qCjQvaoJzbimBM63pQL/gIAA + /4CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPuKUT + z7ilL8y1n37NtJ2h0LKZ3NS1nPDXtpz91aaD/9WifP/VnXP/4ad8/+asgP/vtor/8LeL//C3i//wt4v/ + 8LeL/++2iv/mrID/4ad8/9Wdc//Vonz/1aaD/9e2nP3UtZzw0LKZ3M20naHMtZ9+z7ilL8+4pRMAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALd6TiW6gVVNvIdcx7+IXebCiV/73qR4/+asgP/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//mrID/3qR4/8KJX/u/iF3mvIdcx7qBVU23ek4l + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAuH1PArh9Ty+6gFNdu4FVoMGHW8DJj2PQ3aR49OOqfvrnroL+7LOH/+61if/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utYn/7LOH/+eugv7jqn76 + 3aR49MmPY9DBh1vAvIFVobuAU164fU8vuH1PAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAtX5RA7V+UQ65gFMfuoBULL+FWF7DiV2Oxoxg08uRZevSmGz05q2B/+yzh//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//ss4f/5q2B/9KYbPTLkWXrxoxg1MSJXY7AhVheu4BULLmAUx+1flEOtX5RAwAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtX5RDrV+UUW5gFOau4FV08eNYezUm2/0566C/+61if/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utYn/566C/9Wbb/THjWHru4FV07mAU5q1flFF + tX5RDgAAAAAAAAAAAAAAAAAAAACqgFUEuIBSHLmAUkC9gVZ4wYVajc2TZ6zWnHDT2qF17eCne/flrID7 + 7LOH/++2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//vtor/7LOH/+WsgPrgp3v3 + 2qF17dWccNPNk2atwYVajr2BVni5gFJAuIBSHKqAVQSqgFUGuIBSLrmAUmq9gVbIwYZa49KXa/HhqHz5 + 67KH//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/67KH/+GofPrRl2rywYZa472BVsi5gFJquIBSLqqAVQa/gEAEun1RKrp9UmS7gVXF + wIVZ4dGWavDhp3v567KG//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7LaK/+m1if/ptoj/7LaJ//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/67KG/+Gne/nRlmrwwIVZ4buBVcW6fVJkun1RKr+AQAS/gEAC + un1RGbp9Ujy7gFV3v4VZkMyRZbfVm2/a2qB08uKpfPnnrYH77bSI/++2iv/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7LaK/+e1iP/UsoL/yrB//8Ovff/Dr3z/yrB//9Wygv/ntYj/7LaK//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//vtor/7bSI/+eugfviqXz52qB08tWbb9rMkWW3v4VZkLuAVXe6fVI8 + un1RGb+AQAIAAAAAAAAAAAAAAACqVVUCt3lTFrl9U2K7gFWsvYJW38ySZe/Zn3L26a+E/++1iv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/57WI/9myg/+rqnT/l6dv/4mla/+JpWv/l6dv/6yqdP/asoP/ + 57WI//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//vton/6bCD/9mfcvbMkmXvvYJW37uAVay5fVNi + t3lTFqpVVQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUAt3lTBLl9UxS8flMjvn9UMMGFWmzEiV2b + xoxg3dGXa+vYnnLy6rGF/+20iP/wt4v/6LWI/9Wygv+6rXn/oqly/5qrdP+WtoD/mL2J/5nCj/+Zwo// + mL2J/5a2gP+aq3T/oqly/7qtef/VsoL/6LWI//C3i//ttIj/6rGF/9iecvLRl2vrxoxg3cSJXZvBhVps + vIFVL7uAVSK5fVMUt3lTBKpVVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA + yF8/A7h7UT26f1Rqu4FVqsiNYcLPlWnR3qh79t6ugPvesoP907GB/8Gwfv+ornn/k611/46veP+UvIf/ + mcSR/53JmP+dyZj/mcSR/5S8h/+Or3j/k611/6iuef/BsH7/07GB/96yg/3eroD73qh79s+VadHIjWHC + u4FVqrp/VGq4e1E9uHtRAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALR7Ty6ygFJZsIVW056TX+mTm2T3iKVr/4yudv+Tu4f/ + nMaV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMaV/5O7h/+Mrnb/iKVr/5ObZPeek1/p + sIVW07KAUlm0e08uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3n2ALd59gG4ScYW+Jm2KXkppk35SodPCVsX37 + lbqG/5e+i/+aw5L/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciY/5rDkv+Xvov/ + lbqG/5WxffuUqHTwkppk34mbYpeEnGFvd59gG3efYAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3nV4Cd55fA3qiZQh5oWMaeaFjNXykZ59+pmnC + galv6I63gvWXwI7+nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5fAjv6Ot4L1galv6H6macJ8pGefeaFjNXmhYxp6omUId55fA3edXgIAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3nV4jd55fP3qiZbd9pWnM + gahv45K8iPeYwpD8nciX/p3ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/nciX/pjCkPySvIj3gahv432lacx6omW3 + d55fP3edXiMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3oF8UeaFhJHuiZFF+pmlv + gKhshoixediKs3zljbaB85fBj/2bxZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5vFlP+XwY/9 + jbaB84qzfOWIsXnYgKhshn6maW97omRReaFhJHegXxQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3oF8y + eaFhWnuiZMuAqGzfhKxx7ZfCkP6axZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5rFlP+XwpD+hKxx7YCobN97omTLeaFhWnegXzIAAAAAAAAAAAAAAACAn2AG + d5xfPnacX5J5n2PGgKds2pO+ivWXwY75mcSS+53Il/+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+dyJf/mcSS+5fBjvmTvYn1f6Zs2nigY8Z2nmCR + d55gPoCfYAaAn2AGd5xfP3acX5N5n2PMf6ds4JO9ifiXwY/6msST/J3ImP+eyZj/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57JmP+dyJj/msST/JfBj/qTvIn4 + f6Zs4HmgY8x2nmCSd55gPoCfYAYAAAAAZplmAmaZZgV4oWNReaFkfHuiZt2Dq3LoibF68ZrEk/6cx5b/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHlv+axJP+ + ibF68YOrcuh7ombdeaFkfHihY1GAgEAEgIBAAgAAAAAAAAAAZplmAWaZZgJ4oWMgeaFkMnqiZlp/qG2B + gqpwnoixeeaMtH7ukLqF9ZnEk/2cx5f/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHl/+ZxJP9 + kbqF9Yy1fu6IsXnmgqpwnn+obYB7omZaeaFkMnihYyCAgEACgIBAAQAAAAAAAAAAAAAAAAAAAAAAAAAA + VapVAVWqVQN1oGE5dqBhYnqhZM1/p2zbhq936JXAjfmaxZP9nciY/p3ImP+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/ + nciY/prFk/2WwI35h7B353+nbNp6oWTNdqBhYnagYTmAgIACgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAVapVAFWqVQB1oGECdqBhBHqhZAl5nmEoeZ1hVnuhZ71+pWrbhq5265K7h/eZw5P/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5nDk/+Su4f3hq52636latt7oWe9eZ1hVnmeYSh6oWQJdqBhBHagYQKAgIAAgICAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3m14Td5teL3qgZHB8o2iH + g6txoouzfcyPuIPpk72K9pbBjvqbxpX/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nciY/5vGlf+XwY76k72K9o+4g+mLs33Mg6txonyjaId6oGRwd5teL3ebXhMAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB2nF4LdpxeNnqgZI17oWbIgqpx6Iq0ffKWwY7/nMeX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nceX/5fBjv+LtH3ygqpx6HuhZsh6oGSNdpxeNnacXgsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB2nF4CdpxeC3qgZBx7oWUpfaRpToCnbX6BqXDFhq115Iqye++XwY7+ + m8aV/57Jmf+eyZn/m8aV/5fBjv6Ksnvvhq115IKpcMWAp21+faRpTnuhZSl6oGQcdpxeC3acXgIAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2m10BdptdH3mfY056oGWS + f6ZrtISrcsaSu4bplb+M85jCkPqYwpD6lr+M85K7humEq3LGf6ZrtHqgZZJ5n2NOdptdH3abXQEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAdJddEnidYTB6oGSXfKNnxn2kaOV9pGjlfaNnxXygZJZ5nWEwdJddEgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddB3idYRN6oGQ8fKJnVXyjaGV8pGdkfKNmVHygZDx5nWET + dJddBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5lmCXeZZg9tpFsO + baRbCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///w///8AAP//4Af//wAA///gB///AAD//gAA + f/8AAP/wAAAP/wAA//AAAA//AAD/gAAAAf8AAPwAAAAAPwAA/AAAAAA/AADgAAAAAAcAAOAAAAAABwAA + AAAAAAAAAAAAAAAAAAAAAIAAAAAAAQAAgAAAAAABAADwAAAAAA8AAPAAAAAADwAA/4AAAAH/AAD/4AAA + B/8AAP4AAAAAfwAA8AAAAAAPAADwAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 4AAAAAAHAADgAAAAAAcAAPwAAAAAfwAA/+AAAAf/AAD/gAAAAf8AAPwAAAAAPwAA/AAAAAA/AADgAAAA + AAcAAOAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAQAAgAAAAAABAADwAAAAAA8AAPAAAAAADwAA + /4AAAAH/AAD/8AAAD/8AAP/wAAAP/wAA//4AAH//AAD//+AH//8AAP//4Af//wAA///8P///AAAoAAAA + IAAAAEAAAAABACAAAAAAAAAQAABhCgAAYQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMu6oBzLuqD8i2pA7ItqQBAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIE0LqnJdC7q5LSwK3X0sCt18+7qpHQuqYk + 0bmiBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIG0LuoL9G9rIzVw7HN4tbJ7u3l2vzt5dr8 + 4tbJ7tXDsc3RvayM0LuoL9G5ogYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJuaIMz72qRdK/rZfZyLfI5trN6+3k2Prv593+ + 8uvh//Lr4f/v593+7eTY+ubazevZyLfI0r+tl8+8qkXJuaIMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMtaQU0LyqV9PAr5rczr7H59zP7Ozi1/rw6N3/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+zi1/rn3M/s3M6+x9PAr5rQvKpXzLWkFAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6Idz7ypZdTBsJzf0MLL5tvP7uzi1/rw6d7/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Dp3v/s4tf65tvP7t/QwsvUwbCc + z7ypZcy3oh0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOuaUg0b6radbEs5rg0sPS5trN8ezi1/vx6d// + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/x6d// + 7OLX++bazfHg0sPS1sSzmtG+q2nOuaUgAAAAAAAAAAC/v58EzbikW8+7qJnf0cHZ5drM8u3k2Pzx6t// + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8erf/+3k2Pzl2czy3tDB2dC7qZnOuaVav7+fBL+/nwTNuKRe0LuoqN7PwOPm2872 + 7ubb/fHq4P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/7uXZ/+POuv/jzrr/7uXZ//Lq4P/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/x6uD/7ubb/ebbzvbdz7/j0LupqM65pVy/v58EAAAAAMzMmQPPuqg0 + 0Lyqd9jHt6rh1Mbd593Q9e3l2vzx6uD/8uvh//Lr4f/x6t//7eHU/+PNuv/bvqX/1qmF/9aohf/bvqX/ + 4826/+3h1P/x6t//8uvh//Lr4f/x6uD/7eXa/Ofd0PXh1Mbd2Me3qtC7qnfPuqg0v7+/AgAAAAAAAAAA + AAAAAAAAAACqqqoCzbimMM+8qXfXxrWq4dTF1+jd0fTs4tb769/R/+TPvP/bvKL/06N//9Occv/jqn7/ + 46p+/9Occv/To3//27yi/+TPvP/r39H/7OLW++jd0fTh1MXX18a1qc+8qXfNuKYw/4CAAQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM+4pSPOuKR10bqkw9e+p+zZuJ7+0qJ+/9ObcP/jqX3/ + 77aK//C3i//wt4v/77aK/+Opff/Tm3D/0qJ+/9m4nv7Xvqfs0bqkw864pHXPuKUjAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4fU8IuoBUHb2CVkDDi2CPyJBm49OZbv3mrID/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//mrID/05lu/ciQZuPDi2CPvYJWQLuAVB24fU8I + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1flEHuYBUF72DVkLBh1uexoxg4dedcffqsIT/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/6rCE/9edcffHjGDh + wodbn72DVUK5gFQXtX5RBwAAAAAAAAAAAAAAAKqAVQC5gFIHvYFWDruDVkO+hFiyxo1h5tyjd/jss4f/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/+yzh//do3f4x41g5b6EWLK7g1ZDvYFWDrmAUgeqgFUAqoBVBrmAUmO9gVbPzpNn7eWrgPvutYr/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//utYr/5KuA/M2TZu69gVbPuYBSY6qAVQa/gEAEun1SXruBVc3Nkmbs + 5Kt/++61if/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//ptYn/6baI//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61if/kq3/7zZJm7LuBVc26fVJev4BABL+AQAC6fVIG + uHpVELyAVlm/hFjBypBk69+levnttIj/8LeL//C3i//wt4v/8LeL/+62iv/fs4X/rat1/4+mbf+Ppm3/ + rqt1/9+zhf/utor/8LeL//C3i//wt4v/8LeL/+20iP/fpnn5ypBk67+EWMG8gFZZuHpVELp9Uga/gEAA + AAAAAAAAAACqVVUAuX1TC719Uxq/gldNwYdbq8qQZOXdo3f27LOH/+22iv/asoP/r6t2/5Wpcf+VuIL/ + msSS/5rEkv+VuIL/lalx/6+rdv/asoP/7baK/+yzh//do3f2ypBk5cGHW6u+gldNvIBVGbl9UwuqVVUA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAALh6UAu6gFQgv4VZRr6MXpizlmXno6Nu+5qsdv+Zuob/ + msKQ/5zGlf+eyZn/nsmZ/5zGlf+awpD/mbqG/5qsdv+jo277s5Zl576MXpi/hVlGuoBUILh7UQsAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHefYBR/n2Jfh59luZCoc+yWuYb9 + mcGP/5zGlf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cxpX/mcGP/5a5hv2QqHPsh59luX+fYl93n2AU + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHedXh16oWRlfqVrnIqye8uSvIfu + l8GP+pzHlv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMeW/5fBj/qSvIfu + irJ7y36la5x6oWRld51eHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHegXyB7omRpgKhrmou0fdKRu4bx + l8KQ+53Hl/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/53Hl/+XwpD7kbuG8Yu0fdKAqGuae6JkaXegXyAAAAAAAAAAAICfYAR2nF9beaBjmYmyetmQuoXy + mMOR/J3ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/mMOR/JC6hPKJsnrZeKBjmXaeYFqAn2AEgJ9gBHacX155oGOo + ibJ645K7h/aaxJP9nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+axJP9kruH9omxeuN5oGOodp1fXICfYAQAAAAA + ZplmA3ihYzR6omZ3gqpxqoy1ft2TvIj1mcSS/J3ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+ZxJL8k7yI9Yy1ft2CqnGqe6Jmd3ihYzSAgEAC + AAAAAAAAAAAAAAAAAAAAAFWqVQJ2oGEweaFjd4CobqqLtH/Xk72K9JnDkfudyJf/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Il/+Zw5H7k72K9Iy1f9eBqW6peaFjd3agYTCAgIAB + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5teI3mfY25/pmyqi7N80JS9ivOYw5H7 + nMeX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Hl/+Yw5H7lL2K84uzfNB/pmyqeZ9jbnebXiMAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHacXhR6oGNa + faRpq4evd8+TvYrymcOR+5zHlv+eyZn/nsmZ/5zHlv+Zw5H7lL2K8oevd899pGmreqBjWnacXhQAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB2m10MeJ5iRHuiZ6eDqnDQk72J8ZrFk/yaxZP8k72J8YOqcNB7omeneJ5iRHabXQwAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddBHecYSV6oGSSfaRo132kaNd8oGSReJxhJHSXXQQAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHeZZgF3mWYPbaRbDm2kWwEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/8P///8A// + /8AD//8AAP/8AAA/8AAAD8AAAAMAAAAAAAAAAIAAAAHgAAAH/AAAP/gAAB/gAAAHAAAAAAAAAAAAAAAA + AAAAAMAAAAPwAAAf/AAAP/AAAA/AAAADAAAAAAAAAACAAAAB4AAAB/wAAD//AAD//8AD///wD////D// + KAAAABAAAAAgAAAAAQAgAAAAAAAABAAAYQoAAGEKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAANG6pgrRvqxe0b6sXtC6pgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + zrypFNXDsWXg0sTQ7OPY+uzj2Prg0sTQ1cOxZc68qRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPu6ch + 2Ma2dOLVx9Lt5dn58erg//Lr4f/y6+H/8erg/+3l2fni1cfS2Ma2dM+7pyEAAAAAAAAAAMy4pBjWxbN/ + 49fJ1u3l2fvy6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvg/+3l2fvj18nW1sWzf825pRjMuaMZ + 1cOyjuTZy97u5tv88uvh//Lr4P/t4dT/4cav/+HGr//t4dT/8uvg//Lr4f/u5tv85NnL3tXDso7NuqYZ + AAAAAKqqqgDPu6gq2Mi3huDPvujewqr/2amE/+Wtgf/lrYH/2amE/97Cqv/gz77o2Mi3hs+7qCr/gIAA + AAAAAAAAAAC1flECvIJVGMOJXHfVnHHa5q2B/vC3i//wt4v/8LeL//C3i//mrYH+1Zxx2sOJXHe8glUY + tX5RAgAAAAC4gFIcxIleg9ifc+TqsYX98LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//qsYX9 + 2J9z5MSJXYS4gFIcun1RGsOIXYnZn3Pq67KG/vC3i//wt4v/67aJ/8Wvff/Gr33/67aJ//C3i//wt4v/ + 67KG/tmfc+rDiF2Jun1RGgAAAAC4e1MDvoBVHMWKXn3RoHPdwa58/p60f/+aw5D/msOQ/560f//Brnz+ + 0aBz3cWKXn29gVYcuHtTAwAAAAAAAAAAAAAAAHmgYyGDqXB2kbJ945rCkf6dyJj/nsmZ/57Jmf+dyJj/ + msKR/pGyfeODqXB2eaBjIQAAAAAAAAAAdpxfGICobX+OuILWmcOS+57JmP+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZj/mcOS+464gtaAqG1/dp5gGHacXxmAp22OkLmE3prEk/yeyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5rEk/yQuYTef6dtjnedXxkAAAAAVapVAHihYyqDqnKFj7iD2prEk/ueyZj/ + nsmZ/57Jmf+eyZj/msST+4+4g9qDq3KEeKFjKoCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAHmfYhuBqG5y + jLV/2ZrFk/uaxZP7jbV/2YGobnJ5n2IbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHebYAp8omdefKNmXnibYAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8PwAA8A8AAMADAAAAAAAA + AAAAAIABAACAAQAAAAAAAAAAAACAAQAAwAMAAAAAAAAAAAAAgAEAAPAPAAD8PwAA + + + \ No newline at end of file diff --git a/Handler/Project/Setting/fSetting_ErrorMessage.Designer.cs b/Handler/Project/Setting/fSetting_ErrorMessage.Designer.cs new file mode 100644 index 0000000..a5c30dd --- /dev/null +++ b/Handler/Project/Setting/fSetting_ErrorMessage.Designer.cs @@ -0,0 +1,276 @@ +namespace Project +{ + partial class fSetting_ErrorMessage + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = 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(); + this.bsError = new System.Windows.Forms.BindingSource(this.components); + this.dataSet1 = new Project.DataSet1(); + this.toolStrip1 = new System.Windows.Forms.ToolStrip(); + this.toolStripButton1 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton2 = new System.Windows.Forms.ToolStripButton(); + this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripButton3 = new System.Windows.Forms.ToolStripButton(); + this.bsI = new System.Windows.Forms.BindingSource(this.components); + this.bsO = new System.Windows.Forms.BindingSource(this.components); + this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); + this.errorProvider1 = new System.Windows.Forms.ErrorProvider(this.components); + this.dv1 = new arCtl.arDatagridView(); + this.idxDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.titleDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Shorts = new System.Windows.Forms.DataGridViewButtonColumn(); + this.descriptionDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewButtonColumn(); + this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); + this.exportCSVToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + ((System.ComponentModel.ISupportInitialize)(this.bsError)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).BeginInit(); + this.toolStrip1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.bsI)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsO)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dv1)).BeginInit(); + this.contextMenuStrip1.SuspendLayout(); + this.SuspendLayout(); + // + // bsError + // + this.bsError.DataMember = "ErrorDescription"; + this.bsError.DataSource = this.dataSet1; + // + // dataSet1 + // + this.dataSet1.DataSetName = "DataSet1"; + this.dataSet1.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + // + // toolStrip1 + // + this.toolStrip1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.toolStrip1.ImageScalingSize = new System.Drawing.Size(32, 32); + this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripButton1, + this.toolStripButton2, + this.toolStripSeparator1, + this.toolStripButton3}); + this.toolStrip1.Location = new System.Drawing.Point(0, 822); + this.toolStrip1.Name = "toolStrip1"; + this.toolStrip1.Size = new System.Drawing.Size(1084, 39); + this.toolStrip1.TabIndex = 1; + this.toolStrip1.Text = "toolStrip1"; + // + // toolStripButton1 + // + this.toolStripButton1.Image = global::Project.Properties.Resources.icons8_repeat_40; + this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton1.Name = "toolStripButton1"; + this.toolStripButton1.Size = new System.Drawing.Size(119, 36); + this.toolStripButton1.Text = "다시 생성하기"; + this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click); + // + // toolStripButton2 + // + this.toolStripButton2.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.toolStripButton2.Image = global::Project.Properties.Resources.icons8_save_close_40; + this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton2.Name = "toolStripButton2"; + this.toolStripButton2.Size = new System.Drawing.Size(82, 36); + this.toolStripButton2.Text = "저장(&S)"; + this.toolStripButton2.Click += new System.EventHandler(this.toolStripButton2_Click_1); + // + // toolStripSeparator1 + // + this.toolStripSeparator1.Name = "toolStripSeparator1"; + this.toolStripSeparator1.Size = new System.Drawing.Size(6, 39); + // + // toolStripButton3 + // + this.toolStripButton3.Image = global::Project.Properties.Resources.icons8_resize_horizontal_40; + this.toolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton3.Name = "toolStripButton3"; + this.toolStripButton3.Size = new System.Drawing.Size(103, 36); + this.toolStripButton3.Text = "열너비조정"; + this.toolStripButton3.Click += new System.EventHandler(this.toolStripButton3_Click); + // + // bsI + // + this.bsI.DataMember = "InputDescription"; + this.bsI.DataSource = this.dataSet1; + // + // bsO + // + this.bsO.DataMember = "OutputDescription"; + this.bsO.DataSource = this.dataSet1; + // + // errorProvider1 + // + this.errorProvider1.ContainerControl = this; + // + // dv1 + // + this.dv1.A_DelCurrentCell = true; + this.dv1.A_EnterToTab = true; + this.dv1.A_KoreanField = null; + this.dv1.A_UpperField = null; + this.dv1.A_ViewRownumOnHeader = false; + this.dv1.AllowUserToAddRows = false; + this.dv1.AutoGenerateColumns = false; + this.dv1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dv1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.idxDataGridViewTextBoxColumn, + this.titleDataGridViewTextBoxColumn, + this.Shorts, + this.descriptionDataGridViewTextBoxColumn}); + this.dv1.ContextMenuStrip = this.contextMenuStrip1; + this.dv1.DataSource = this.bsError; + dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle4.Font = new System.Drawing.Font("맑은 고딕", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dv1.DefaultCellStyle = dataGridViewCellStyle4; + this.dv1.Dock = System.Windows.Forms.DockStyle.Fill; + this.dv1.Location = new System.Drawing.Point(0, 0); + this.dv1.Name = "dv1"; + this.dv1.RowTemplate.Height = 23; + this.dv1.Size = new System.Drawing.Size(1084, 822); + this.dv1.TabIndex = 0; + this.dv1.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.arDatagridView1_CellContentClick); + // + // idxDataGridViewTextBoxColumn + // + this.idxDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.idxDataGridViewTextBoxColumn.DataPropertyName = "Idx"; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(224)))), ((int)(((byte)(192))))); + this.idxDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle1; + this.idxDataGridViewTextBoxColumn.HeaderText = "Code"; + this.idxDataGridViewTextBoxColumn.Name = "idxDataGridViewTextBoxColumn"; + this.idxDataGridViewTextBoxColumn.ReadOnly = true; + this.idxDataGridViewTextBoxColumn.Width = 70; + // + // titleDataGridViewTextBoxColumn + // + this.titleDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.titleDataGridViewTextBoxColumn.DataPropertyName = "Title"; + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(224)))), ((int)(((byte)(192))))); + this.titleDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle2; + this.titleDataGridViewTextBoxColumn.HeaderText = "CodeName"; + this.titleDataGridViewTextBoxColumn.Name = "titleDataGridViewTextBoxColumn"; + this.titleDataGridViewTextBoxColumn.ReadOnly = true; + this.titleDataGridViewTextBoxColumn.Width = 110; + // + // Shorts + // + this.Shorts.DataPropertyName = "Shorts"; + this.Shorts.HeaderText = "오류설명"; + this.Shorts.Name = "Shorts"; + this.Shorts.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.Shorts.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.Shorts.Visible = false; + this.Shorts.Width = 94; + // + // descriptionDataGridViewTextBoxColumn + // + this.descriptionDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; + this.descriptionDataGridViewTextBoxColumn.DataPropertyName = "Description"; + dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.descriptionDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle3; + this.descriptionDataGridViewTextBoxColumn.HeaderText = "확인/조치사항"; + this.descriptionDataGridViewTextBoxColumn.Name = "descriptionDataGridViewTextBoxColumn"; + this.descriptionDataGridViewTextBoxColumn.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.descriptionDataGridViewTextBoxColumn.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + // + // contextMenuStrip1 + // + this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.exportCSVToolStripMenuItem}); + this.contextMenuStrip1.Name = "contextMenuStrip1"; + this.contextMenuStrip1.Size = new System.Drawing.Size(136, 26); + // + // exportCSVToolStripMenuItem + // + this.exportCSVToolStripMenuItem.Name = "exportCSVToolStripMenuItem"; + this.exportCSVToolStripMenuItem.Size = new System.Drawing.Size(135, 22); + this.exportCSVToolStripMenuItem.Text = "Export CSV"; + this.exportCSVToolStripMenuItem.Click += new System.EventHandler(this.exportCSVToolStripMenuItem_Click); + // + // fSetting_ErrorMessage + // + this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1084, 861); + this.Controls.Add(this.dv1); + this.Controls.Add(this.toolStrip1); + this.Font = new System.Drawing.Font("맑은 고딕", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.KeyPreview = true; + this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.Name = "fSetting_ErrorMessage"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "오류메세지 정의"; + this.Load += new System.EventHandler(this.@__Load); + ((System.ComponentModel.ISupportInitialize)(this.bsError)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).EndInit(); + this.toolStrip1.ResumeLayout(false); + this.toolStrip1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.bsI)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsO)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dv1)).EndInit(); + this.contextMenuStrip1.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private DataSet1 dataSet1; + private System.Windows.Forms.ToolTip toolTip1; + private System.Windows.Forms.ErrorProvider errorProvider1; + private arCtl.arDatagridView dv1; + private System.Windows.Forms.BindingSource bsError; + private System.Windows.Forms.ToolStrip toolStrip1; + private System.Windows.Forms.ToolStripButton toolStripButton1; + private System.Windows.Forms.BindingSource bsI; + private System.Windows.Forms.BindingSource bsO; + private System.Windows.Forms.ToolStripButton toolStripButton2; + private System.Windows.Forms.DataGridViewTextBoxColumn idxDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn titleDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewButtonColumn Shorts; + private System.Windows.Forms.DataGridViewButtonColumn descriptionDataGridViewTextBoxColumn; + private System.Windows.Forms.ToolStripButton toolStripButton3; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; + private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; + private System.Windows.Forms.ToolStripMenuItem exportCSVToolStripMenuItem; + } +} \ No newline at end of file diff --git a/Handler/Project/Setting/fSetting_ErrorMessage.cs b/Handler/Project/Setting/fSetting_ErrorMessage.cs new file mode 100644 index 0000000..e671c8b --- /dev/null +++ b/Handler/Project/Setting/fSetting_ErrorMessage.cs @@ -0,0 +1,222 @@ +using AR; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Project +{ + public partial class fSetting_ErrorMessage : Form + { + + public fSetting_ErrorMessage() + { + InitializeComponent(); + + + this.KeyDown += (s1, e1) => + { + if (e1.KeyCode == Keys.Escape) + this.Close(); + if (DateTime.Now > PUB.LastInputTime) PUB.LastInputTime = DateTime.Now; + }; + this.MouseMove += (s1, e1) => { if (DateTime.Now > PUB.LastInputTime) PUB.LastInputTime = DateTime.Now; }; + this.FormClosing += FSetting_ErrorMessage_FormClosing; + } + + private void FSetting_ErrorMessage_FormClosing(object sender, FormClosingEventArgs e) + { + this.bsError.EndEdit(); + this.Validate(); + var chgs = this.dataSet1.ErrorDescription.GetChanges(); + if (chgs != null && chgs.Rows.Count > 0) + { + if (UTIL.MsgQ("변경된 사항이 있습니다. 지금 닫으면 해당 내용이 손실됩니다. 화면을 닫을까요?") != DialogResult.Yes) + { + e.Cancel = true; + return; + } + } + } + + private void __Load(object sender, EventArgs e) + { + this.dv1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; + this.dv1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells; + + RefreshError(); + } + + void RefreshError() + { + this.dataSet1.ErrorDescription.Clear(); + this.dataSet1.ErrorDescription.Merge(PUB.mdm.dataSet.ErrorDescription); + this.dataSet1.AcceptChanges(); + + //자료를 업데이트해준다. + var ecodelist = Enum.GetValues(typeof(eECode)); + for (short valueI = 0; valueI < 255; valueI++) + { + eECode valu = (eECode)valueI; + //short valueI = (short)valu; + + var dr = this.dataSet1.ErrorDescription.Where(t => t.Idx == valueI).FirstOrDefault(); + if (dr == null) + { + //이 값이 없는경우에는 추가하지 않는다 + if (valu.ToString() == valueI.ToString()) + { + //두 이름이 같다면 존재하는 코드 값이다 + } + else + { + var newdr = dataSet1.ErrorDescription.NewErrorDescriptionRow(); + newdr.Idx = valueI; + newdr.Title = valu.ToString(); + newdr.EndEdit(); + this.dataSet1.ErrorDescription.AddErrorDescriptionRow(newdr); + } + } + else + { + if (valu.ToString() == valueI.ToString()) + { + //해당 값이 업어졌다 + dr.Title = "n/a"; + dr.EndEdit(); + } + else + { + if (dr.Title.Equals(valu.ToString()) == false) + { + dr.Title = valu.ToString(); + dr.EndEdit(); + } + } + + } + } + this.dataSet1.AcceptChanges(); + + } + + + private void toolStripButton1_Click(object sender, EventArgs e) + { + //다시생성한다. + this.dataSet1.ErrorDescription.Clear(); + this.dataSet1.ErrorDescription.AcceptChanges(); + + var db = PUB.mdm.dataSet.ErrorDescription; + + //자료를 업데이트해준다. + var ecodelist = Enum.GetValues(typeof(eECode)); + for (short valueI = 0; valueI < 255; valueI++) + { + eECode valu = (eECode)valueI; + + //변환된 이름과 숫자이름이 같다면 enum 에 정의되지 않은 데이터이다. + if(valu.ToString().Equals(valueI.ToString())) + { + continue; + } + + //같은 이름으로 데이터를 검색 + var drT = db.Where(t => t.Title == valu.ToString()).FirstOrDefault(); + if(drT != null) + { + var newdr = dataSet1.ErrorDescription.NewErrorDescriptionRow(); + newdr.Idx = valueI; + newdr.Title = valu.ToString(); + newdr.Description = drT.Description; + this.dataSet1.ErrorDescription.AddErrorDescriptionRow(newdr); + } + else + { + //같은버호로 찾는다 + var drN = this.dataSet1.ErrorDescription.Where(t => t.Idx == valueI).FirstOrDefault(); + if(drN != null) + { + var newdr = dataSet1.ErrorDescription.NewErrorDescriptionRow(); + newdr.Idx = valueI; + newdr.Title = valu.ToString(); + newdr.Description = drN.Description; + this.dataSet1.ErrorDescription.AddErrorDescriptionRow(newdr); + } + else + { + //번호도 타이틀도 없다 + var newdr = dataSet1.ErrorDescription.NewErrorDescriptionRow(); + newdr.Idx = valueI; + newdr.Title = valu.ToString(); + newdr.EndEdit(); + this.dataSet1.ErrorDescription.AddErrorDescriptionRow(newdr); + } + } + } + this.dataSet1.AcceptChanges(); + + } + + + private void arDatagridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) + { + if (e.RowIndex < 0) return; + if (e.ColumnIndex == 2 || e.ColumnIndex == 3) + { + var dv = sender as DataGridView; + var str = string.Empty; + var cell = dv.Rows[e.RowIndex].Cells[e.ColumnIndex]; + if (cell != null && cell.Value != null) str = cell.Value.ToString(); + var f = new Dialog.fMessageInput(str); + if (f.ShowDialog() == DialogResult.OK) + { + cell.Value = f.value; + } + } + } + + private void toolStripButton2_Click_1(object sender, EventArgs e) + { + this.bsError.EndEdit(); + this.Validate(); + + this.dataSet1.AcceptChanges(); + + PUB.mdm.dataSet.ErrorDescription.Clear(); + PUB.mdm.dataSet.Merge(this.dataSet1.ErrorDescription); + PUB.mdm.dataSet.AcceptChanges(); + PUB.mdm.SaveModelE(); + + UTIL.MsgI("저장 완료"); + + //DialogResult = DialogResult.OK; + } + + private void toolStripButton3_Click(object sender, EventArgs e) + { + dv1.AutoResizeColumns(); + } + + private void exportCSVToolStripMenuItem_Click(object sender, EventArgs e) + { + var sd = new SaveFileDialog(); + sd.Filter = "탭으로 분리된 텍스트 파일(*.txt)|*.txt"; + if (sd.ShowDialog() != DialogResult.OK) return; + + var sb = new System.Text.StringBuilder(); + foreach (var dr in dataSet1.ErrorDescription.Select("","idx")) + { + var desc = dr["Description"].ToString(); + desc = desc.Replace("\r", "").Replace("\n", ""); + sb.AppendLine($"{dr["Idx"].ToString()}\t{dr["Title"].ToString()}\t{desc}"); + } + System.IO.File.WriteAllText(sd.FileName, sb.ToString(), System.Text.Encoding.Default); + } + } +} + diff --git a/Handler/Project/Setting/fSetting_ErrorMessage.resx b/Handler/Project/Setting/fSetting_ErrorMessage.resx new file mode 100644 index 0000000..b1e4f68 --- /dev/null +++ b/Handler/Project/Setting/fSetting_ErrorMessage.resx @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 346, 17 + + + 17, 17 + + + 437, 17 + + + 543, 17 + + + 611, 17 + + + 117, 17 + + + 214, 17 + + + True + + + 685, 17 + + \ No newline at end of file diff --git a/Handler/Project/Setting/fSetting_IOMessage.Designer.cs b/Handler/Project/Setting/fSetting_IOMessage.Designer.cs new file mode 100644 index 0000000..16b9bb7 --- /dev/null +++ b/Handler/Project/Setting/fSetting_IOMessage.Designer.cs @@ -0,0 +1,653 @@ +namespace Project +{ + partial class fSetting_IOMessage + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fSetting_IOMessage)); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = 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 dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); + this.bsError = new System.Windows.Forms.BindingSource(this.components); + this.dataSet1 = new Project.DataSet1(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.panel2 = new System.Windows.Forms.Panel(); + this.inputDescriptionDataGridView = new arCtl.arDatagridView(); + this.bsI = new System.Windows.Forms.BindingSource(this.components); + this.bindingNavigator1 = new System.Windows.Forms.BindingNavigator(this.components); + this.bindingNavigatorAddNewItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorCountItem = new System.Windows.Forms.ToolStripLabel(); + this.bindingNavigatorDeleteItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMoveFirstItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMovePreviousItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorPositionItem = new System.Windows.Forms.ToolStripTextBox(); + this.bindingNavigatorSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorMoveNextItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMoveLastItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.panel3 = new System.Windows.Forms.Panel(); + this.outputDescriptionDataGridView = new arCtl.arDatagridView(); + this.bsO = new System.Windows.Forms.BindingSource(this.components); + this.bindingNavigator2 = new System.Windows.Forms.BindingNavigator(this.components); + this.bindingNavigatorAddNewItem1 = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorCountItem1 = new System.Windows.Forms.ToolStripLabel(); + this.bindingNavigatorDeleteItem1 = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMoveFirstItem1 = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMovePreviousItem1 = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator3 = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorPositionItem1 = new System.Windows.Forms.ToolStripTextBox(); + this.bindingNavigatorSeparator4 = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorMoveNextItem1 = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMoveLastItem1 = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator5 = new System.Windows.Forms.ToolStripSeparator(); + this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); + this.errorProvider1 = new System.Windows.Forms.ErrorProvider(this.components); + this.toolStrip1 = new System.Windows.Forms.ToolStrip(); + this.toolStripButton1 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton3 = new System.Windows.Forms.ToolStripButton(); + this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.TerminalNo = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Invert = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.dataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewButtonColumn(); + this.dataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn5 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn6 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewCheckBoxColumn1 = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.dataGridViewButtonColumn1 = new System.Windows.Forms.DataGridViewButtonColumn(); + ((System.ComponentModel.ISupportInitialize)(this.bsError)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).BeginInit(); + this.tableLayoutPanel1.SuspendLayout(); + this.panel2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.inputDescriptionDataGridView)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsI)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bindingNavigator1)).BeginInit(); + this.bindingNavigator1.SuspendLayout(); + this.panel3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.outputDescriptionDataGridView)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsO)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bindingNavigator2)).BeginInit(); + this.bindingNavigator2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider1)).BeginInit(); + this.toolStrip1.SuspendLayout(); + this.SuspendLayout(); + // + // bsError + // + this.bsError.DataMember = "ErrorDescription"; + this.bsError.DataSource = this.dataSet1; + // + // dataSet1 + // + this.dataSet1.DataSetName = "DataSet1"; + this.dataSet1.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 1; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.Controls.Add(this.panel2, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.panel3, 0, 1); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 2; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(1084, 822); + this.tableLayoutPanel1.TabIndex = 0; + // + // panel2 + // + this.panel2.AutoScroll = true; + this.panel2.Controls.Add(this.inputDescriptionDataGridView); + this.panel2.Controls.Add(this.bindingNavigator1); + this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel2.Location = new System.Drawing.Point(3, 3); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(1078, 405); + this.panel2.TabIndex = 0; + // + // inputDescriptionDataGridView + // + this.inputDescriptionDataGridView.A_DelCurrentCell = true; + this.inputDescriptionDataGridView.A_EnterToTab = true; + this.inputDescriptionDataGridView.A_KoreanField = null; + this.inputDescriptionDataGridView.A_UpperField = null; + this.inputDescriptionDataGridView.A_ViewRownumOnHeader = false; + this.inputDescriptionDataGridView.AllowUserToAddRows = false; + this.inputDescriptionDataGridView.AutoGenerateColumns = false; + this.inputDescriptionDataGridView.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; + this.inputDescriptionDataGridView.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.inputDescriptionDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.inputDescriptionDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dataGridViewTextBoxColumn1, + this.dataGridViewTextBoxColumn2, + this.TerminalNo, + this.Invert, + this.dataGridViewTextBoxColumn3}); + this.inputDescriptionDataGridView.DataSource = this.bsI; + this.inputDescriptionDataGridView.Dock = System.Windows.Forms.DockStyle.Fill; + this.inputDescriptionDataGridView.Location = new System.Drawing.Point(0, 0); + this.inputDescriptionDataGridView.Name = "inputDescriptionDataGridView"; + this.inputDescriptionDataGridView.RowTemplate.Height = 23; + this.inputDescriptionDataGridView.Size = new System.Drawing.Size(1078, 380); + this.inputDescriptionDataGridView.TabIndex = 0; + this.inputDescriptionDataGridView.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.inputDescriptionDataGridView_CellContentClick); + // + // bsI + // + this.bsI.DataMember = "InputDescription"; + this.bsI.DataSource = this.dataSet1; + // + // bindingNavigator1 + // + this.bindingNavigator1.AddNewItem = this.bindingNavigatorAddNewItem; + this.bindingNavigator1.BindingSource = this.bsI; + this.bindingNavigator1.CountItem = this.bindingNavigatorCountItem; + this.bindingNavigator1.DeleteItem = this.bindingNavigatorDeleteItem; + this.bindingNavigator1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.bindingNavigator1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.bindingNavigatorMoveFirstItem, + this.bindingNavigatorMovePreviousItem, + this.bindingNavigatorSeparator, + this.bindingNavigatorPositionItem, + this.bindingNavigatorCountItem, + this.bindingNavigatorSeparator1, + this.bindingNavigatorMoveNextItem, + this.bindingNavigatorMoveLastItem, + this.bindingNavigatorSeparator2, + this.bindingNavigatorAddNewItem, + this.bindingNavigatorDeleteItem}); + this.bindingNavigator1.Location = new System.Drawing.Point(0, 380); + this.bindingNavigator1.MoveFirstItem = this.bindingNavigatorMoveFirstItem; + this.bindingNavigator1.MoveLastItem = this.bindingNavigatorMoveLastItem; + this.bindingNavigator1.MoveNextItem = this.bindingNavigatorMoveNextItem; + this.bindingNavigator1.MovePreviousItem = this.bindingNavigatorMovePreviousItem; + this.bindingNavigator1.Name = "bindingNavigator1"; + this.bindingNavigator1.PositionItem = this.bindingNavigatorPositionItem; + this.bindingNavigator1.Size = new System.Drawing.Size(1078, 25); + this.bindingNavigator1.TabIndex = 1; + this.bindingNavigator1.Text = "bindingNavigator1"; + // + // bindingNavigatorAddNewItem + // + this.bindingNavigatorAddNewItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorAddNewItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorAddNewItem.Image"))); + this.bindingNavigatorAddNewItem.Name = "bindingNavigatorAddNewItem"; + this.bindingNavigatorAddNewItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorAddNewItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorAddNewItem.Text = "새로 추가"; + // + // bindingNavigatorCountItem + // + this.bindingNavigatorCountItem.Name = "bindingNavigatorCountItem"; + this.bindingNavigatorCountItem.Size = new System.Drawing.Size(27, 22); + this.bindingNavigatorCountItem.Text = "/{0}"; + this.bindingNavigatorCountItem.ToolTipText = "전체 항목 수"; + // + // bindingNavigatorDeleteItem + // + this.bindingNavigatorDeleteItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorDeleteItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorDeleteItem.Image"))); + this.bindingNavigatorDeleteItem.Name = "bindingNavigatorDeleteItem"; + this.bindingNavigatorDeleteItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorDeleteItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorDeleteItem.Text = "삭제"; + // + // bindingNavigatorMoveFirstItem + // + this.bindingNavigatorMoveFirstItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveFirstItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveFirstItem.Image"))); + this.bindingNavigatorMoveFirstItem.Name = "bindingNavigatorMoveFirstItem"; + this.bindingNavigatorMoveFirstItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveFirstItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveFirstItem.Text = "처음으로 이동"; + // + // bindingNavigatorMovePreviousItem + // + this.bindingNavigatorMovePreviousItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMovePreviousItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMovePreviousItem.Image"))); + this.bindingNavigatorMovePreviousItem.Name = "bindingNavigatorMovePreviousItem"; + this.bindingNavigatorMovePreviousItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMovePreviousItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMovePreviousItem.Text = "이전으로 이동"; + // + // bindingNavigatorSeparator + // + this.bindingNavigatorSeparator.Name = "bindingNavigatorSeparator"; + this.bindingNavigatorSeparator.Size = new System.Drawing.Size(6, 25); + // + // bindingNavigatorPositionItem + // + this.bindingNavigatorPositionItem.AccessibleName = "위치"; + this.bindingNavigatorPositionItem.AutoSize = false; + this.bindingNavigatorPositionItem.Font = new System.Drawing.Font("맑은 고딕", 9F); + this.bindingNavigatorPositionItem.Name = "bindingNavigatorPositionItem"; + this.bindingNavigatorPositionItem.Size = new System.Drawing.Size(50, 23); + this.bindingNavigatorPositionItem.Text = "0"; + this.bindingNavigatorPositionItem.ToolTipText = "현재 위치"; + // + // bindingNavigatorSeparator1 + // + this.bindingNavigatorSeparator1.Name = "bindingNavigatorSeparator1"; + this.bindingNavigatorSeparator1.Size = new System.Drawing.Size(6, 25); + // + // bindingNavigatorMoveNextItem + // + this.bindingNavigatorMoveNextItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveNextItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveNextItem.Image"))); + this.bindingNavigatorMoveNextItem.Name = "bindingNavigatorMoveNextItem"; + this.bindingNavigatorMoveNextItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveNextItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveNextItem.Text = "다음으로 이동"; + // + // bindingNavigatorMoveLastItem + // + this.bindingNavigatorMoveLastItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveLastItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveLastItem.Image"))); + this.bindingNavigatorMoveLastItem.Name = "bindingNavigatorMoveLastItem"; + this.bindingNavigatorMoveLastItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveLastItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveLastItem.Text = "마지막으로 이동"; + // + // bindingNavigatorSeparator2 + // + this.bindingNavigatorSeparator2.Name = "bindingNavigatorSeparator2"; + this.bindingNavigatorSeparator2.Size = new System.Drawing.Size(6, 25); + // + // panel3 + // + this.panel3.AutoScroll = true; + this.panel3.Controls.Add(this.outputDescriptionDataGridView); + this.panel3.Controls.Add(this.bindingNavigator2); + this.panel3.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel3.Location = new System.Drawing.Point(3, 414); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(1078, 405); + this.panel3.TabIndex = 0; + // + // outputDescriptionDataGridView + // + this.outputDescriptionDataGridView.A_DelCurrentCell = true; + this.outputDescriptionDataGridView.A_EnterToTab = true; + this.outputDescriptionDataGridView.A_KoreanField = null; + this.outputDescriptionDataGridView.A_UpperField = null; + this.outputDescriptionDataGridView.A_ViewRownumOnHeader = false; + this.outputDescriptionDataGridView.AllowUserToAddRows = false; + this.outputDescriptionDataGridView.AutoGenerateColumns = false; + this.outputDescriptionDataGridView.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; + this.outputDescriptionDataGridView.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(128))))); + this.outputDescriptionDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.outputDescriptionDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dataGridViewTextBoxColumn4, + this.dataGridViewTextBoxColumn5, + this.dataGridViewTextBoxColumn6, + this.dataGridViewCheckBoxColumn1, + this.dataGridViewButtonColumn1}); + this.outputDescriptionDataGridView.DataSource = this.bsO; + this.outputDescriptionDataGridView.Dock = System.Windows.Forms.DockStyle.Fill; + this.outputDescriptionDataGridView.Location = new System.Drawing.Point(0, 0); + this.outputDescriptionDataGridView.Name = "outputDescriptionDataGridView"; + this.outputDescriptionDataGridView.RowTemplate.Height = 23; + this.outputDescriptionDataGridView.Size = new System.Drawing.Size(1078, 380); + this.outputDescriptionDataGridView.TabIndex = 0; + this.outputDescriptionDataGridView.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.inputDescriptionDataGridView_CellContentClick); + // + // bsO + // + this.bsO.DataMember = "OutputDescription"; + this.bsO.DataSource = this.dataSet1; + // + // bindingNavigator2 + // + this.bindingNavigator2.AddNewItem = this.bindingNavigatorAddNewItem1; + this.bindingNavigator2.BindingSource = this.bsO; + this.bindingNavigator2.CountItem = this.bindingNavigatorCountItem1; + this.bindingNavigator2.DeleteItem = this.bindingNavigatorDeleteItem1; + this.bindingNavigator2.Dock = System.Windows.Forms.DockStyle.Bottom; + this.bindingNavigator2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.bindingNavigatorMoveFirstItem1, + this.bindingNavigatorMovePreviousItem1, + this.bindingNavigatorSeparator3, + this.bindingNavigatorPositionItem1, + this.bindingNavigatorCountItem1, + this.bindingNavigatorSeparator4, + this.bindingNavigatorMoveNextItem1, + this.bindingNavigatorMoveLastItem1, + this.bindingNavigatorSeparator5, + this.bindingNavigatorAddNewItem1, + this.bindingNavigatorDeleteItem1}); + this.bindingNavigator2.Location = new System.Drawing.Point(0, 380); + this.bindingNavigator2.MoveFirstItem = this.bindingNavigatorMoveFirstItem1; + this.bindingNavigator2.MoveLastItem = this.bindingNavigatorMoveLastItem1; + this.bindingNavigator2.MoveNextItem = this.bindingNavigatorMoveNextItem1; + this.bindingNavigator2.MovePreviousItem = this.bindingNavigatorMovePreviousItem1; + this.bindingNavigator2.Name = "bindingNavigator2"; + this.bindingNavigator2.PositionItem = this.bindingNavigatorPositionItem1; + this.bindingNavigator2.Size = new System.Drawing.Size(1078, 25); + this.bindingNavigator2.TabIndex = 1; + this.bindingNavigator2.Text = "bindingNavigator2"; + // + // bindingNavigatorAddNewItem1 + // + this.bindingNavigatorAddNewItem1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorAddNewItem1.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorAddNewItem1.Image"))); + this.bindingNavigatorAddNewItem1.Name = "bindingNavigatorAddNewItem1"; + this.bindingNavigatorAddNewItem1.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorAddNewItem1.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorAddNewItem1.Text = "새로 추가"; + // + // bindingNavigatorCountItem1 + // + this.bindingNavigatorCountItem1.Name = "bindingNavigatorCountItem1"; + this.bindingNavigatorCountItem1.Size = new System.Drawing.Size(27, 22); + this.bindingNavigatorCountItem1.Text = "/{0}"; + this.bindingNavigatorCountItem1.ToolTipText = "전체 항목 수"; + // + // bindingNavigatorDeleteItem1 + // + this.bindingNavigatorDeleteItem1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorDeleteItem1.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorDeleteItem1.Image"))); + this.bindingNavigatorDeleteItem1.Name = "bindingNavigatorDeleteItem1"; + this.bindingNavigatorDeleteItem1.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorDeleteItem1.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorDeleteItem1.Text = "삭제"; + // + // bindingNavigatorMoveFirstItem1 + // + this.bindingNavigatorMoveFirstItem1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveFirstItem1.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveFirstItem1.Image"))); + this.bindingNavigatorMoveFirstItem1.Name = "bindingNavigatorMoveFirstItem1"; + this.bindingNavigatorMoveFirstItem1.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveFirstItem1.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveFirstItem1.Text = "처음으로 이동"; + // + // bindingNavigatorMovePreviousItem1 + // + this.bindingNavigatorMovePreviousItem1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMovePreviousItem1.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMovePreviousItem1.Image"))); + this.bindingNavigatorMovePreviousItem1.Name = "bindingNavigatorMovePreviousItem1"; + this.bindingNavigatorMovePreviousItem1.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMovePreviousItem1.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMovePreviousItem1.Text = "이전으로 이동"; + // + // bindingNavigatorSeparator3 + // + this.bindingNavigatorSeparator3.Name = "bindingNavigatorSeparator3"; + this.bindingNavigatorSeparator3.Size = new System.Drawing.Size(6, 25); + // + // bindingNavigatorPositionItem1 + // + this.bindingNavigatorPositionItem1.AccessibleName = "위치"; + this.bindingNavigatorPositionItem1.AutoSize = false; + this.bindingNavigatorPositionItem1.Font = new System.Drawing.Font("맑은 고딕", 9F); + this.bindingNavigatorPositionItem1.Name = "bindingNavigatorPositionItem1"; + this.bindingNavigatorPositionItem1.Size = new System.Drawing.Size(50, 23); + this.bindingNavigatorPositionItem1.Text = "0"; + this.bindingNavigatorPositionItem1.ToolTipText = "현재 위치"; + // + // bindingNavigatorSeparator4 + // + this.bindingNavigatorSeparator4.Name = "bindingNavigatorSeparator4"; + this.bindingNavigatorSeparator4.Size = new System.Drawing.Size(6, 25); + // + // bindingNavigatorMoveNextItem1 + // + this.bindingNavigatorMoveNextItem1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveNextItem1.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveNextItem1.Image"))); + this.bindingNavigatorMoveNextItem1.Name = "bindingNavigatorMoveNextItem1"; + this.bindingNavigatorMoveNextItem1.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveNextItem1.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveNextItem1.Text = "다음으로 이동"; + // + // bindingNavigatorMoveLastItem1 + // + this.bindingNavigatorMoveLastItem1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveLastItem1.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveLastItem1.Image"))); + this.bindingNavigatorMoveLastItem1.Name = "bindingNavigatorMoveLastItem1"; + this.bindingNavigatorMoveLastItem1.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveLastItem1.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveLastItem1.Text = "마지막으로 이동"; + // + // bindingNavigatorSeparator5 + // + this.bindingNavigatorSeparator5.Name = "bindingNavigatorSeparator5"; + this.bindingNavigatorSeparator5.Size = new System.Drawing.Size(6, 25); + // + // errorProvider1 + // + this.errorProvider1.ContainerControl = this; + // + // toolStrip1 + // + this.toolStrip1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.toolStrip1.ImageScalingSize = new System.Drawing.Size(32, 32); + this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripButton1, + this.toolStripButton3}); + this.toolStrip1.Location = new System.Drawing.Point(0, 822); + this.toolStrip1.Name = "toolStrip1"; + this.toolStrip1.Size = new System.Drawing.Size(1084, 39); + this.toolStrip1.TabIndex = 3; + this.toolStrip1.Text = "toolStrip1"; + // + // toolStripButton1 + // + this.toolStripButton1.Image = global::Project.Properties.Resources.icons8_repeat_40; + this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton1.Name = "toolStripButton1"; + this.toolStripButton1.Size = new System.Drawing.Size(119, 36); + this.toolStripButton1.Text = "다시 불러오기"; + this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click_1); + // + // toolStripButton3 + // + this.toolStripButton3.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.toolStripButton3.Image = global::Project.Properties.Resources.icons8_save_close_40; + this.toolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton3.Name = "toolStripButton3"; + this.toolStripButton3.Size = new System.Drawing.Size(82, 36); + this.toolStripButton3.Text = "저장(&S)"; + this.toolStripButton3.Click += new System.EventHandler(this.toolStripButton3_Click_1); + // + // dataGridViewTextBoxColumn1 + // + this.dataGridViewTextBoxColumn1.DataPropertyName = "Idx"; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + this.dataGridViewTextBoxColumn1.DefaultCellStyle = dataGridViewCellStyle1; + this.dataGridViewTextBoxColumn1.HeaderText = "No"; + this.dataGridViewTextBoxColumn1.Name = "dataGridViewTextBoxColumn1"; + this.dataGridViewTextBoxColumn1.Width = 54; + // + // dataGridViewTextBoxColumn2 + // + this.dataGridViewTextBoxColumn2.DataPropertyName = "Title"; + this.dataGridViewTextBoxColumn2.HeaderText = "핀 이름"; + this.dataGridViewTextBoxColumn2.Name = "dataGridViewTextBoxColumn2"; + this.dataGridViewTextBoxColumn2.Width = 84; + // + // TerminalNo + // + this.TerminalNo.DataPropertyName = "TerminalNo"; + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + this.TerminalNo.DefaultCellStyle = dataGridViewCellStyle2; + this.TerminalNo.HeaderText = "터미널번호"; + this.TerminalNo.Name = "TerminalNo"; + this.TerminalNo.Width = 109; + // + // Invert + // + this.Invert.DataPropertyName = "Invert"; + this.Invert.HeaderText = "Invert"; + this.Invert.Name = "Invert"; + this.Invert.Width = 53; + // + // dataGridViewTextBoxColumn3 + // + this.dataGridViewTextBoxColumn3.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; + this.dataGridViewTextBoxColumn3.DataPropertyName = "Description"; + this.dataGridViewTextBoxColumn3.HeaderText = "핀 설명"; + this.dataGridViewTextBoxColumn3.Name = "dataGridViewTextBoxColumn3"; + this.dataGridViewTextBoxColumn3.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.dataGridViewTextBoxColumn3.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + // + // dataGridViewTextBoxColumn4 + // + this.dataGridViewTextBoxColumn4.DataPropertyName = "Idx"; + dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + this.dataGridViewTextBoxColumn4.DefaultCellStyle = dataGridViewCellStyle3; + this.dataGridViewTextBoxColumn4.HeaderText = "No"; + this.dataGridViewTextBoxColumn4.Name = "dataGridViewTextBoxColumn4"; + this.dataGridViewTextBoxColumn4.Width = 54; + // + // dataGridViewTextBoxColumn5 + // + this.dataGridViewTextBoxColumn5.DataPropertyName = "Title"; + this.dataGridViewTextBoxColumn5.HeaderText = "핀 이름"; + this.dataGridViewTextBoxColumn5.Name = "dataGridViewTextBoxColumn5"; + this.dataGridViewTextBoxColumn5.Width = 84; + // + // dataGridViewTextBoxColumn6 + // + this.dataGridViewTextBoxColumn6.DataPropertyName = "TerminalNo"; + dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + this.dataGridViewTextBoxColumn6.DefaultCellStyle = dataGridViewCellStyle4; + this.dataGridViewTextBoxColumn6.HeaderText = "터미널번호"; + this.dataGridViewTextBoxColumn6.Name = "dataGridViewTextBoxColumn6"; + this.dataGridViewTextBoxColumn6.Width = 109; + // + // dataGridViewCheckBoxColumn1 + // + this.dataGridViewCheckBoxColumn1.DataPropertyName = "Invert"; + this.dataGridViewCheckBoxColumn1.HeaderText = "Invert"; + this.dataGridViewCheckBoxColumn1.Name = "dataGridViewCheckBoxColumn1"; + this.dataGridViewCheckBoxColumn1.Width = 53; + // + // dataGridViewButtonColumn1 + // + this.dataGridViewButtonColumn1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; + this.dataGridViewButtonColumn1.DataPropertyName = "Description"; + this.dataGridViewButtonColumn1.HeaderText = "핀 설명"; + this.dataGridViewButtonColumn1.Name = "dataGridViewButtonColumn1"; + this.dataGridViewButtonColumn1.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.dataGridViewButtonColumn1.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + // + // fSetting_IOMessage + // + this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1084, 861); + this.Controls.Add(this.tableLayoutPanel1); + this.Controls.Add(this.toolStrip1); + this.Font = new System.Drawing.Font("맑은 고딕", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.KeyPreview = true; + this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.Name = "fSetting_IOMessage"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "I/O 설명 정의"; + this.Load += new System.EventHandler(this.@__Load); + ((System.ComponentModel.ISupportInitialize)(this.bsError)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).EndInit(); + this.tableLayoutPanel1.ResumeLayout(false); + this.panel2.ResumeLayout(false); + this.panel2.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.inputDescriptionDataGridView)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsI)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bindingNavigator1)).EndInit(); + this.bindingNavigator1.ResumeLayout(false); + this.bindingNavigator1.PerformLayout(); + this.panel3.ResumeLayout(false); + this.panel3.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.outputDescriptionDataGridView)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsO)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bindingNavigator2)).EndInit(); + this.bindingNavigator2.ResumeLayout(false); + this.bindingNavigator2.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider1)).EndInit(); + this.toolStrip1.ResumeLayout(false); + this.toolStrip1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private DataSet1 dataSet1; + private System.Windows.Forms.ToolTip toolTip1; + private System.Windows.Forms.ErrorProvider errorProvider1; + private System.Windows.Forms.BindingSource bsError; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.BindingSource bsI; + private System.Windows.Forms.BindingSource bsO; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.Panel panel3; + private arCtl.arDatagridView inputDescriptionDataGridView; + private System.Windows.Forms.BindingNavigator bindingNavigator1; + private System.Windows.Forms.ToolStripButton bindingNavigatorAddNewItem; + private System.Windows.Forms.ToolStripLabel bindingNavigatorCountItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorDeleteItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveFirstItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMovePreviousItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator; + private System.Windows.Forms.ToolStripTextBox bindingNavigatorPositionItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator1; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveNextItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveLastItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator2; + private arCtl.arDatagridView outputDescriptionDataGridView; + private System.Windows.Forms.BindingNavigator bindingNavigator2; + private System.Windows.Forms.ToolStripButton bindingNavigatorAddNewItem1; + private System.Windows.Forms.ToolStripLabel bindingNavigatorCountItem1; + private System.Windows.Forms.ToolStripButton bindingNavigatorDeleteItem1; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveFirstItem1; + private System.Windows.Forms.ToolStripButton bindingNavigatorMovePreviousItem1; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator3; + private System.Windows.Forms.ToolStripTextBox bindingNavigatorPositionItem1; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator4; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveNextItem1; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveLastItem1; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator5; + private System.Windows.Forms.ToolStrip toolStrip1; + private System.Windows.Forms.ToolStripButton toolStripButton1; + private System.Windows.Forms.ToolStripButton toolStripButton3; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2; + private System.Windows.Forms.DataGridViewTextBoxColumn TerminalNo; + private System.Windows.Forms.DataGridViewCheckBoxColumn Invert; + private System.Windows.Forms.DataGridViewButtonColumn dataGridViewTextBoxColumn3; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn4; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn5; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn6; + private System.Windows.Forms.DataGridViewCheckBoxColumn dataGridViewCheckBoxColumn1; + private System.Windows.Forms.DataGridViewButtonColumn dataGridViewButtonColumn1; + } +} \ No newline at end of file diff --git a/Handler/Project/Setting/fSetting_IOMessage.cs b/Handler/Project/Setting/fSetting_IOMessage.cs new file mode 100644 index 0000000..94886f9 --- /dev/null +++ b/Handler/Project/Setting/fSetting_IOMessage.cs @@ -0,0 +1,187 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using AR; + +namespace Project +{ + public partial class fSetting_IOMessage : Form + { + AR.CommonSetting dummySetting; //설정을 임시로 저장하고 있다가 완료시에 덮어준다. + + public fSetting_IOMessage() + { + InitializeComponent(); + + //setting + dummySetting = new AR.CommonSetting(); + AR.SETTING.Data.CopyTo(dummySetting); + //COMM.SETTING.Data.CopyTo(dummySetting); + + this.KeyDown += (s1, e1) => + { + if (e1.KeyCode == Keys.Escape) + this.Close(); + if (DateTime.Now > PUB.LastInputTime) PUB.LastInputTime = DateTime.Now; + }; + this.MouseMove += (s1, e1) => { if (DateTime.Now > PUB.LastInputTime) PUB.LastInputTime = DateTime.Now; }; + this.FormClosing += FSetting_IOMessage_FormClosing; + this.bsI.Sort = "idx"; + this.bsO.Sort = "idx"; + } + + private void FSetting_IOMessage_FormClosing(object sender, FormClosingEventArgs e) + { + this.bsI.EndEdit(); + this.bsO.EndEdit(); + this.Validate(); + + var chgs1 = this.dataSet1.InputDescription.GetChanges(); + var chgs2 = this.dataSet1.ErrorDescription.GetChanges(); + if ((chgs1 != null && chgs1.Rows.Count > 0) || chgs2 != null && chgs2.Rows.Count > 0) + { + if (UTIL.MsgQ("변경된 사항이 있습니다. 지금 닫으면 해당 내용이 손실됩니다. 화면을 닫을까요?") != DialogResult.Yes) + { + e.Cancel = true; + return; + } + } + } + + private void __Load(object sender, EventArgs e) + { + RefreshIn(); + RefreshOut(); + } + + void RefreshIn() + { + this.dataSet1.InputDescription.Clear(); + this.dataSet1.InputDescription.Merge(PUB.mdm.dataSet.InputDescription); + this.dataSet1.InputDescription.AcceptChanges(); + + //자료를 업데이트해준다. + var ecodelist = Enum.GetValues(typeof(eDIPin)); + foreach (var item in ecodelist) + { + var pin = (eDIPin)item; + var idx = (int)pin; + var name = ((eDIName)idx).ToString(); + if (Enum.IsDefined(typeof(eDIName), (byte)idx) == false) + name = string.Empty; + + var title = $"[X{idx:X2}] {name}"; + var dr = this.dataSet1.InputDescription.Where(t => t.Idx == idx).FirstOrDefault(); + if (dr == null) + { + var newdr = dataSet1.InputDescription.NewInputDescriptionRow(); + newdr.Name = pin.ToString(); + newdr.Idx = (short)idx; + newdr.Title = title; + newdr.EndEdit(); + this.dataSet1.InputDescription.AddInputDescriptionRow(newdr); + } + else + { + if (dr.Title.Equals(title) == false) + { + dr.Title = title; + dr.EndEdit(); + } + } + } + this.dataSet1.InputDescription.AcceptChanges(); + } + + void RefreshOut() + { + this.dataSet1.OutputDescription.Clear(); + this.dataSet1.OutputDescription.Merge(PUB.mdm.dataSet.OutputDescription); + this.dataSet1.OutputDescription.AcceptChanges(); + + //자료를 업데이트해준다. + var ecodelist = Enum.GetValues(typeof(eDOPin)); + foreach (var item in ecodelist) + { + var pin = (eDOPin)item; + var idx = (int)pin; + var name = ((eDOName)idx).ToString(); + if (Enum.IsDefined(typeof(eDOName), (byte)idx) == false) + name = string.Empty; + + var title = $"[Y{idx:X2}] {name}"; + + var dr = this.dataSet1.OutputDescription.Where(t => t.Idx == idx).FirstOrDefault(); + if (dr == null) + { + var newdr = dataSet1.OutputDescription.NewOutputDescriptionRow(); + newdr.Name = pin.ToString(); + newdr.Idx = (short)idx; + newdr.Title = title; + newdr.EndEdit(); + this.dataSet1.OutputDescription.AddOutputDescriptionRow(newdr); + } + else + { + if (dr.Title.Equals(title) == false) + { + dr.Title = title; + dr.EndEdit(); + } + } + } + this.dataSet1.OutputDescription.AcceptChanges(); + } + + private void toolStripButton3_Click_1(object sender, EventArgs e) + { + this.bsI.EndEdit(); + this.bsO.EndEdit(); + this.Validate(); + + this.dataSet1.AcceptChanges(); + + PUB.mdm.dataSet.InputDescription.Clear(); + PUB.mdm.dataSet.Merge(this.dataSet1.InputDescription); + PUB.mdm.dataSet.InputDescription.AcceptChanges(); + PUB.mdm.SaveModelI(); + + PUB.mdm.dataSet.OutputDescription.Clear(); + PUB.mdm.dataSet.Merge(this.dataSet1.OutputDescription); + PUB.mdm.dataSet.OutputDescription.AcceptChanges(); + PUB.mdm.SaveModelO(); + + //핀설정적용 230831 + DIO.Pin.SetOutputData(PUB.mdm.dataSet.OutputDescription); + DIO.Pin.SetInputData(PUB.mdm.dataSet.InputDescription); + } + + private void toolStripButton1_Click_1(object sender, EventArgs e) + { + RefreshIn(); + RefreshOut(); + } + + private void inputDescriptionDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e) + { + if (e.ColumnIndex ==4 ) + { + var dv = sender as DataGridView; + var str = string.Empty; + var cell = dv.Rows[e.RowIndex].Cells[e.ColumnIndex]; + if (cell != null && cell.Value != null) str = cell.Value.ToString(); + var f = new Dialog.fMessageInput(str); + if (f.ShowDialog() == DialogResult.OK) + { + cell.Value = f.value; + } + } + } + } +} + diff --git a/Handler/Project/Setting/fSetting_IOMessage.resx b/Handler/Project/Setting/fSetting_IOMessage.resx new file mode 100644 index 0000000..9bc3bab --- /dev/null +++ b/Handler/Project/Setting/fSetting_IOMessage.resx @@ -0,0 +1,288 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 346, 17 + + + 17, 17 + + + True + + + True + + + 543, 17 + + + 1000, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC + pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++ + Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ + /5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA + zpX/v6RC8f/fWzFAjeH/p+Zp/J+QpfW/O0P3f3uq/v/mREPCYTIb6E+Qc//dCPjfk6FDWAM6APnz3w1/ + IPb735qsT7oB3em6YP+CcH2cEekGtCQZ/G+IN/xfE2v8vzLahHQD6AQYGAAkI9iedfyIaQAAAABJRU5E + rkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC + DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC + rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV + i9OIytR3EMNWcJ/BWH8A6j8/bOGFxwXNxYEvGbMQ9XnQ1/K78KfY3/VXzkMY0qFGG2H4RoLGQshJQNbG + 86CNhdrsX9a/uQZTPhQl4rMY4OLofbl3aX7I8uwPC7y/g1YdjyVJuEvT8e1tfwUYteHUxCCfHChDeHmG + QQvokjlOU+PbWA0x3pZnILVVI3uvQyHsbiLnqnGmRCF1NYD8pDhpRxOH7HQoAKZGkFKjceszQbpSrumX + bO+G80MFwKUTxgfgcO/b8D9IpXoFiiMDHIQm0skAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 + wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0 + v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg + UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA + Iu/O/9T+11gVGSSd+C+b9vW/bvA83AYYZt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPu + lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w + 5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f + Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+ + 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 + n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI + N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f + oAc0QjgAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// + h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B + twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA + kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG + WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9 + 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== + + + + True + + + True + + + 767, 17 + + + 17, 56 + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC + pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++ + Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ + /5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA + zpX/v6RC8f/fWzFAjeH/p+Zp/J+QpfW/O0P3f3uq/v/mREPCYTIb6E+Qc//dCPjfk6FDWAM6APnz3w1/ + IPb735qsT7oB3em6YP+CcH2cEekGtCQZ/G+IN/xfE2v8vzLahHQD6AQYGAAkI9iedfyIaQAAAABJRU5E + rkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC + DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC + rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV + i9OIytR3EMNWcJ/BWH8A6j8/bOGFxwXNxYEvGbMQ9XnQ1/K78KfY3/VXzkMY0qFGG2H4RoLGQshJQNbG + 86CNhdrsX9a/uQZTPhQl4rMY4OLofbl3aX7I8uwPC7y/g1YdjyVJuEvT8e1tfwUYteHUxCCfHChDeHmG + QQvokjlOU+PbWA0x3pZnILVVI3uvQyHsbiLnqnGmRCF1NYD8pDhpRxOH7HQoAKZGkFKjceszQbpSrumX + bO+G80MFwKUTxgfgcO/b8D9IpXoFiiMDHIQm0skAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 + wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0 + v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg + UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA + Iu/O/9T+11gVGSSd+C+b9vW/bvA83AYYZt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPu + lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w + 5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f + Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+ + 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 + n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI + N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f + oAc0QjgAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// + h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B + twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA + kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG + WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9 + 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== + + + + 117, 17 + + + 214, 17 + + + 173, 56 + + \ No newline at end of file diff --git a/Handler/Project/Setting/fSystem_MotParameter.Designer.cs b/Handler/Project/Setting/fSystem_MotParameter.Designer.cs new file mode 100644 index 0000000..14c5e9a --- /dev/null +++ b/Handler/Project/Setting/fSystem_MotParameter.Designer.cs @@ -0,0 +1,431 @@ +namespace Project.Dialog +{ + partial class fSystem_MotParameter + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fSystem_MotParameter)); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = 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 dataGridViewCellStyle4 = 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 dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle(); + this.motionParamDataGridView = new System.Windows.Forms.DataGridView(); + this.bs = new System.Windows.Forms.BindingSource(this.components); + this.dataSet1 = new DSSetup(); + this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); + this.bindingNavigator1 = new System.Windows.Forms.BindingNavigator(this.components); + this.bindingNavigatorAddNewItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorCountItem = new System.Windows.Forms.ToolStripLabel(); + this.bindingNavigatorDeleteItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMoveFirstItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMovePreviousItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorPositionItem = new System.Windows.Forms.ToolStripTextBox(); + this.bindingNavigatorSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorMoveNextItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMoveLastItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripButton1 = new System.Windows.Forms.ToolStripButton(); + this.dvc_idx = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dvc_title = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.enableDataGridViewCheckBoxColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.useOriginDataGridViewCheckBoxColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.useEStopDataGridViewCheckBoxColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.homeHighDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.homeLowDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.homeAccDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.homeDccDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.MaxSpeed = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.MaxAcc = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.sWLimitPDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.InpositionAccr = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.btSet = new System.Windows.Forms.DataGridViewButtonColumn(); + ((System.ComponentModel.ISupportInitialize)(this.motionParamDataGridView)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bs)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bindingNavigator1)).BeginInit(); + this.bindingNavigator1.SuspendLayout(); + this.SuspendLayout(); + // + // motionParamDataGridView + // + this.motionParamDataGridView.AutoGenerateColumns = false; + this.motionParamDataGridView.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; + this.motionParamDataGridView.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.motionParamDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.motionParamDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dvc_idx, + this.dvc_title, + this.enableDataGridViewCheckBoxColumn, + this.useOriginDataGridViewCheckBoxColumn, + this.useEStopDataGridViewCheckBoxColumn, + this.homeHighDataGridViewTextBoxColumn, + this.homeLowDataGridViewTextBoxColumn, + this.homeAccDataGridViewTextBoxColumn, + this.homeDccDataGridViewTextBoxColumn, + this.MaxSpeed, + this.MaxAcc, + this.sWLimitPDataGridViewTextBoxColumn, + this.InpositionAccr, + this.btSet}); + this.motionParamDataGridView.DataSource = this.bs; + dataGridViewCellStyle8.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle8.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle8.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + dataGridViewCellStyle8.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle8.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle8.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.motionParamDataGridView.DefaultCellStyle = dataGridViewCellStyle8; + this.motionParamDataGridView.Dock = System.Windows.Forms.DockStyle.Fill; + this.motionParamDataGridView.Location = new System.Drawing.Point(0, 0); + this.motionParamDataGridView.Name = "motionParamDataGridView"; + this.motionParamDataGridView.RowTemplate.Height = 23; + this.motionParamDataGridView.Size = new System.Drawing.Size(1007, 584); + this.motionParamDataGridView.TabIndex = 2; + this.motionParamDataGridView.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.motionParamDataGridView_CellContentClick); + this.motionParamDataGridView.DataError += new System.Windows.Forms.DataGridViewDataErrorEventHandler(this.motionParamDataGridView_DataError); + // + // bs + // + this.bs.DataMember = "MotionParam"; + this.bs.DataSource = this.dataSet1; + // + // dataSet1 + // + this.dataSet1.DataSetName = "DataSet1"; + this.dataSet1.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + // + // contextMenuStrip1 + // + this.contextMenuStrip1.Name = "contextMenuStrip1"; + this.contextMenuStrip1.Size = new System.Drawing.Size(61, 4); + // + // bindingNavigator1 + // + this.bindingNavigator1.AddNewItem = this.bindingNavigatorAddNewItem; + this.bindingNavigator1.BindingSource = this.bs; + this.bindingNavigator1.CountItem = this.bindingNavigatorCountItem; + this.bindingNavigator1.DeleteItem = this.bindingNavigatorDeleteItem; + this.bindingNavigator1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.bindingNavigator1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.bindingNavigatorMoveFirstItem, + this.bindingNavigatorMovePreviousItem, + this.bindingNavigatorSeparator, + this.bindingNavigatorPositionItem, + this.bindingNavigatorCountItem, + this.bindingNavigatorSeparator1, + this.bindingNavigatorMoveNextItem, + this.bindingNavigatorMoveLastItem, + this.bindingNavigatorSeparator2, + this.bindingNavigatorAddNewItem, + this.bindingNavigatorDeleteItem, + this.toolStripButton1}); + this.bindingNavigator1.Location = new System.Drawing.Point(0, 559); + this.bindingNavigator1.MoveFirstItem = this.bindingNavigatorMoveFirstItem; + this.bindingNavigator1.MoveLastItem = this.bindingNavigatorMoveLastItem; + this.bindingNavigator1.MoveNextItem = this.bindingNavigatorMoveNextItem; + this.bindingNavigator1.MovePreviousItem = this.bindingNavigatorMovePreviousItem; + this.bindingNavigator1.Name = "bindingNavigator1"; + this.bindingNavigator1.PositionItem = this.bindingNavigatorPositionItem; + this.bindingNavigator1.Size = new System.Drawing.Size(1007, 25); + this.bindingNavigator1.TabIndex = 4; + this.bindingNavigator1.Text = "bindingNavigator1"; + // + // bindingNavigatorAddNewItem + // + this.bindingNavigatorAddNewItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorAddNewItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorAddNewItem.Image"))); + this.bindingNavigatorAddNewItem.Name = "bindingNavigatorAddNewItem"; + this.bindingNavigatorAddNewItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorAddNewItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorAddNewItem.Text = "새로 추가"; + // + // bindingNavigatorCountItem + // + this.bindingNavigatorCountItem.Name = "bindingNavigatorCountItem"; + this.bindingNavigatorCountItem.Size = new System.Drawing.Size(27, 22); + this.bindingNavigatorCountItem.Text = "/{0}"; + this.bindingNavigatorCountItem.ToolTipText = "전체 항목 수"; + // + // bindingNavigatorDeleteItem + // + this.bindingNavigatorDeleteItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorDeleteItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorDeleteItem.Image"))); + this.bindingNavigatorDeleteItem.Name = "bindingNavigatorDeleteItem"; + this.bindingNavigatorDeleteItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorDeleteItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorDeleteItem.Text = "삭제"; + // + // bindingNavigatorMoveFirstItem + // + this.bindingNavigatorMoveFirstItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveFirstItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveFirstItem.Image"))); + this.bindingNavigatorMoveFirstItem.Name = "bindingNavigatorMoveFirstItem"; + this.bindingNavigatorMoveFirstItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveFirstItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveFirstItem.Text = "처음으로 이동"; + // + // bindingNavigatorMovePreviousItem + // + this.bindingNavigatorMovePreviousItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMovePreviousItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMovePreviousItem.Image"))); + this.bindingNavigatorMovePreviousItem.Name = "bindingNavigatorMovePreviousItem"; + this.bindingNavigatorMovePreviousItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMovePreviousItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMovePreviousItem.Text = "이전으로 이동"; + // + // bindingNavigatorSeparator + // + this.bindingNavigatorSeparator.Name = "bindingNavigatorSeparator"; + this.bindingNavigatorSeparator.Size = new System.Drawing.Size(6, 25); + // + // bindingNavigatorPositionItem + // + this.bindingNavigatorPositionItem.AccessibleName = "위치"; + this.bindingNavigatorPositionItem.AutoSize = false; + this.bindingNavigatorPositionItem.Font = new System.Drawing.Font("맑은 고딕", 9F); + this.bindingNavigatorPositionItem.Name = "bindingNavigatorPositionItem"; + this.bindingNavigatorPositionItem.Size = new System.Drawing.Size(50, 23); + this.bindingNavigatorPositionItem.Text = "0"; + this.bindingNavigatorPositionItem.ToolTipText = "현재 위치"; + // + // bindingNavigatorSeparator1 + // + this.bindingNavigatorSeparator1.Name = "bindingNavigatorSeparator1"; + this.bindingNavigatorSeparator1.Size = new System.Drawing.Size(6, 25); + // + // bindingNavigatorMoveNextItem + // + this.bindingNavigatorMoveNextItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveNextItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveNextItem.Image"))); + this.bindingNavigatorMoveNextItem.Name = "bindingNavigatorMoveNextItem"; + this.bindingNavigatorMoveNextItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveNextItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveNextItem.Text = "다음으로 이동"; + // + // bindingNavigatorMoveLastItem + // + this.bindingNavigatorMoveLastItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveLastItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveLastItem.Image"))); + this.bindingNavigatorMoveLastItem.Name = "bindingNavigatorMoveLastItem"; + this.bindingNavigatorMoveLastItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveLastItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveLastItem.Text = "마지막으로 이동"; + // + // bindingNavigatorSeparator2 + // + this.bindingNavigatorSeparator2.Name = "bindingNavigatorSeparator2"; + this.bindingNavigatorSeparator2.Size = new System.Drawing.Size(6, 25); + // + // toolStripButton1 + // + this.toolStripButton1.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image"))); + this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton1.Name = "toolStripButton1"; + this.toolStripButton1.Size = new System.Drawing.Size(52, 22); + this.toolStripButton1.Text = "Save"; + this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click); + // + // dvc_idx + // + this.dvc_idx.DataPropertyName = "idx"; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.dvc_idx.DefaultCellStyle = dataGridViewCellStyle1; + this.dvc_idx.HeaderText = "축"; + this.dvc_idx.Name = "dvc_idx"; + this.dvc_idx.Width = 42; + // + // dvc_title + // + this.dvc_title.DataPropertyName = "Title"; + this.dvc_title.HeaderText = "이름"; + this.dvc_title.Name = "dvc_title"; + this.dvc_title.Width = 54; + // + // enableDataGridViewCheckBoxColumn + // + this.enableDataGridViewCheckBoxColumn.DataPropertyName = "Enable"; + this.enableDataGridViewCheckBoxColumn.HeaderText = "사용여부"; + this.enableDataGridViewCheckBoxColumn.Name = "enableDataGridViewCheckBoxColumn"; + this.enableDataGridViewCheckBoxColumn.Width = 59; + // + // useOriginDataGridViewCheckBoxColumn + // + this.useOriginDataGridViewCheckBoxColumn.DataPropertyName = "UseOrigin"; + this.useOriginDataGridViewCheckBoxColumn.HeaderText = "원점센서"; + this.useOriginDataGridViewCheckBoxColumn.Name = "useOriginDataGridViewCheckBoxColumn"; + this.useOriginDataGridViewCheckBoxColumn.Width = 59; + // + // useEStopDataGridViewCheckBoxColumn + // + this.useEStopDataGridViewCheckBoxColumn.DataPropertyName = "UseEStop"; + this.useEStopDataGridViewCheckBoxColumn.HeaderText = "비상정지입력"; + this.useEStopDataGridViewCheckBoxColumn.Name = "useEStopDataGridViewCheckBoxColumn"; + this.useEStopDataGridViewCheckBoxColumn.Width = 53; + // + // homeHighDataGridViewTextBoxColumn + // + this.homeHighDataGridViewTextBoxColumn.DataPropertyName = "HomeHigh"; + dataGridViewCellStyle2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(192)))), ((int)(((byte)(255))))); + this.homeHighDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle2; + this.homeHighDataGridViewTextBoxColumn.HeaderText = "홈(고속)"; + this.homeHighDataGridViewTextBoxColumn.Name = "homeHighDataGridViewTextBoxColumn"; + this.homeHighDataGridViewTextBoxColumn.Width = 70; + // + // homeLowDataGridViewTextBoxColumn + // + this.homeLowDataGridViewTextBoxColumn.DataPropertyName = "HomeLow"; + dataGridViewCellStyle3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(192)))), ((int)(((byte)(255))))); + this.homeLowDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle3; + this.homeLowDataGridViewTextBoxColumn.HeaderText = "홈(저속)"; + this.homeLowDataGridViewTextBoxColumn.Name = "homeLowDataGridViewTextBoxColumn"; + this.homeLowDataGridViewTextBoxColumn.Width = 70; + // + // homeAccDataGridViewTextBoxColumn + // + this.homeAccDataGridViewTextBoxColumn.DataPropertyName = "HomeAcc"; + dataGridViewCellStyle4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(192)))), ((int)(((byte)(255))))); + this.homeAccDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle4; + this.homeAccDataGridViewTextBoxColumn.HeaderText = "홈(가속도)"; + this.homeAccDataGridViewTextBoxColumn.Name = "homeAccDataGridViewTextBoxColumn"; + this.homeAccDataGridViewTextBoxColumn.Width = 66; + // + // homeDccDataGridViewTextBoxColumn + // + this.homeDccDataGridViewTextBoxColumn.DataPropertyName = "HomeDcc"; + dataGridViewCellStyle5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(192)))), ((int)(((byte)(255))))); + this.homeDccDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle5; + this.homeDccDataGridViewTextBoxColumn.HeaderText = "홈(감속도)"; + this.homeDccDataGridViewTextBoxColumn.Name = "homeDccDataGridViewTextBoxColumn"; + this.homeDccDataGridViewTextBoxColumn.Width = 66; + // + // MaxSpeed + // + this.MaxSpeed.DataPropertyName = "MaxSpeed"; + dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); + this.MaxSpeed.DefaultCellStyle = dataGridViewCellStyle6; + this.MaxSpeed.HeaderText = "최대(속도)"; + this.MaxSpeed.Name = "MaxSpeed"; + this.MaxSpeed.Width = 66; + // + // MaxAcc + // + this.MaxAcc.DataPropertyName = "MaxAcc"; + dataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192))))); + this.MaxAcc.DefaultCellStyle = dataGridViewCellStyle7; + this.MaxAcc.HeaderText = "최대(가속도)"; + this.MaxAcc.Name = "MaxAcc"; + this.MaxAcc.Width = 77; + // + // sWLimitPDataGridViewTextBoxColumn + // + this.sWLimitPDataGridViewTextBoxColumn.DataPropertyName = "SWLimitP"; + this.sWLimitPDataGridViewTextBoxColumn.HeaderText = "S/W 위치 제한"; + this.sWLimitPDataGridViewTextBoxColumn.Name = "sWLimitPDataGridViewTextBoxColumn"; + this.sWLimitPDataGridViewTextBoxColumn.Width = 79; + // + // InpositionAccr + // + this.InpositionAccr.DataPropertyName = "InpositionAccr"; + this.InpositionAccr.HeaderText = "위치결정오차"; + this.InpositionAccr.Name = "InpositionAccr"; + this.InpositionAccr.Width = 72; + // + // btSet + // + this.btSet.HeaderText = "설정"; + this.btSet.Name = "btSet"; + this.btSet.Width = 32; + // + // SystemParameter + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1007, 584); + this.Controls.Add(this.bindingNavigator1); + this.Controls.Add(this.motionParamDataGridView); + this.KeyPreview = true; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "SystemParameter"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Motion Parameter"; + this.Load += new System.EventHandler(this.SystemParameter_Load); + ((System.ComponentModel.ISupportInitialize)(this.motionParamDataGridView)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bs)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bindingNavigator1)).EndInit(); + this.bindingNavigator1.ResumeLayout(false); + this.bindingNavigator1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private DSSetup dataSet1; + private System.Windows.Forms.BindingSource bs; + private System.Windows.Forms.DataGridView motionParamDataGridView; + private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; + private System.Windows.Forms.BindingNavigator bindingNavigator1; + private System.Windows.Forms.ToolStripButton bindingNavigatorAddNewItem; + private System.Windows.Forms.ToolStripLabel bindingNavigatorCountItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorDeleteItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveFirstItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMovePreviousItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator; + private System.Windows.Forms.ToolStripTextBox bindingNavigatorPositionItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator1; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveNextItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveLastItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator2; + private System.Windows.Forms.ToolStripButton toolStripButton1; + private System.Windows.Forms.DataGridViewTextBoxColumn dvc_idx; + private System.Windows.Forms.DataGridViewTextBoxColumn dvc_title; + private System.Windows.Forms.DataGridViewCheckBoxColumn enableDataGridViewCheckBoxColumn; + private System.Windows.Forms.DataGridViewCheckBoxColumn useOriginDataGridViewCheckBoxColumn; + private System.Windows.Forms.DataGridViewCheckBoxColumn useEStopDataGridViewCheckBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn homeHighDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn homeLowDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn homeAccDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn homeDccDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn MaxSpeed; + private System.Windows.Forms.DataGridViewTextBoxColumn MaxAcc; + private System.Windows.Forms.DataGridViewTextBoxColumn sWLimitPDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn InpositionAccr; + private System.Windows.Forms.DataGridViewButtonColumn btSet; + } +} \ No newline at end of file diff --git a/Handler/Project/Setting/fSystem_MotParameter.cs b/Handler/Project/Setting/fSystem_MotParameter.cs new file mode 100644 index 0000000..82c37cf --- /dev/null +++ b/Handler/Project/Setting/fSystem_MotParameter.cs @@ -0,0 +1,120 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fSystem_MotParameter : Form + { + public class cmdevents : EventArgs + { + public string cmd { get; set; } + public string data { get; set; } + public cmdevents(string cmd,string data) + { + this.cmd = cmd; + this.data = data; + } + } + public EventHandler Commands; + public fSystem_MotParameter() + { + InitializeComponent(); + this.KeyDown += SystemParameter_KeyDown; + this.dataSet1.MotionParam.Clear(); + this.dataSet1.MotionParam.Merge(PUB.system_mot.dt); + this.dataSet1.MotionParam.AcceptChanges(); + this.dataSet1.MotionParam.TableNewRow += MotionParam_TableNewRow; + } + + private void MotionParam_TableNewRow(object sender, DataTableNewRowEventArgs e) + { + e.Row["Enable"] = false; + if (this.dataSet1.MotionParam.Rows.Count < 1) e.Row["idx"] = 0; + else e.Row["idx"] = this.dataSet1.MotionParam.Rows.Count; + e.Row["UseOrigin"] = true; + e.Row["UseEStop"] = true; + e.Row["HomeAcc"] = 100; + e.Row["HomeDcc"] = 100; + e.Row["HomeHigh"] = 50; + e.Row["HomeLow"] = 30; + e.Row["SWLimitP"] = 0; + e.Row["InpositionAccr"] = 0.1f; + } + + void SystemParameter_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Escape) this.Close(); + } + + private void SystemParameter_Load(object sender, EventArgs e) + { + + } + + private void toolStripButton1_Click(object sender, EventArgs e) + { + this.Validate(); + this.bs.EndEdit(); + + PUB.system_mot.Save(this.dataSet1.MotionParam); + + //소스파일을 변경 해준다. + //var sourcePath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Don't change it"); + //var di = new System.IO.DirectoryInfo(sourcePath); + //if (di.Exists) + //{ + // var fiEnum = new System.IO.FileInfo(di.FullName + "\\Class\\EnumData.cs"); + // if (fiEnum.Exists) + // { + // var buffer = System.IO.File.ReadAllText(fiEnum.FullName, System.Text.Encoding.UTF8); + // var axis_start_tag = "public enum eaxis"; + // var axis_sta = buffer.ToLower().IndexOf(axis_start_tag); + // var axis_end = buffer.IndexOf("}", axis_sta); + + // var buffer_axis = buffer.Substring(axis_sta, axis_end - axis_sta); + + // //값을 생성해준다. + // var sb_axis = new System.Text.StringBuilder(); + // sb_axis.AppendLine("public enum eAxis : byte {"); + // foreach (DSSetup.MotionParamRow dr in this.dataSet1.MotionParam) + // { + // if (dr.Enable == false) continue; + // if (string.IsNullOrEmpty(dr.Title)) continue; + // sb_axis.AppendLine($"\t\t{dr.Title} = {dr.idx},"); + // } + // sb_axis.AppendLine("\t}"); + // var buffer_head = buffer.Substring(0, axis_sta); + // var buffer_tail = buffer.Substring(axis_end + 1); + // var newbuffer = buffer_head + sb_axis.ToString() + buffer_tail; + // System.IO.File.WriteAllText(fiEnum.FullName, newbuffer, System.Text.Encoding.UTF8); + // } + //} + + DialogResult = System.Windows.Forms.DialogResult.OK; + this.Close(); + } + + private void motionParamDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e) + { + var idx = this.motionParamDataGridView.Rows[e.RowIndex].Cells["dvc_idx"].Value; + if (idx == null) return; + + if (e.ColumnIndex != 13) return; + + var val = int.Parse(idx.ToString()); + + PUB.mot.ShowParameter(val); + } + + private void motionParamDataGridView_DataError(object sender, DataGridViewDataErrorEventArgs e) + { + + } + } +} diff --git a/Handler/Project/Setting/fSystem_MotParameter.resx b/Handler/Project/Setting/fSystem_MotParameter.resx new file mode 100644 index 0000000..d33a6e1 --- /dev/null +++ b/Handler/Project/Setting/fSystem_MotParameter.resx @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + True + + + True + + + True + + + True + + + 117, 17 + + + 17, 17 + + + 181, 17 + + + 339, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC + pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++ + Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ + /5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA + zpX/v6RC8f/fWzFAjeH/p+Zp/J+QpfW/O0P3f3uq/v/mREPCYTIb6E+Qc//dCPjfk6FDWAM6APnz3w1/ + IPb735qsT7oB3em6YP+CcH2cEekGtCQZ/G+IN/xfE2v8vzLahHQD6AQYGAAkI9iedfyIaQAAAABJRU5E + rkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC + DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC + rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV + i9OIytR3EMNWcJ/BWH8A6j8/bOGFxwXNxYEvGbMQ9XnQ1/K78KfY3/VXzkMY0qFGG2H4RoLGQshJQNbG + 86CNhdrsX9a/uQZTPhQl4rMY4OLofbl3aX7I8uwPC7y/g1YdjyVJuEvT8e1tfwUYteHUxCCfHChDeHmG + QQvokjlOU+PbWA0x3pZnILVVI3uvQyHsbiLnqnGmRCF1NYD8pDhpRxOH7HQoAKZGkFKjceszQbpSrumX + bO+G80MFwKUTxgfgcO/b8D9IpXoFiiMDHIQm0skAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 + wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0 + v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg + UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA + Iu/O/9T+11gVGSSd+C+b9vW/bvA83AYYZt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPu + lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w + 5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f + Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+ + 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 + n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI + N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f + oAc0QjgAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// + h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B + twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA + kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG + WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9 + 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAE1SURBVDhPY/hPIQAbcOn57//T915BwW1rjoFx/oJz//N6 + VqHgsNxeMA03YN3lp/9vv4YYhAtsuQ6h55/9A8aBidVgPtiADZcegzWDFN1/9///qy8IDOKDcPfu1/9/ + /vn/v3rt/f9TD38BuwJuwIrT9wka0L79BdiAkuW3MA0A+fnog///V12GKAZ5BxcGGQByDYoXYAbA/Aey + AYRBCkE2N256AnY6SDMoUEF8FANAoQ0zAFkzCCNrhhkAor3CczENwGYzuu1JM8+BaQwDQAGITzOyASDs + 4huPMAAkATIA3c/YNIdNPAHGKAaAUhUoBghphhng0rTnv71bGKoBoADE5mR0zVgNACUK9BgAGYbudJBG + GNY0dEYYAMsgMAyKYxAGhTQIg/wLwiBbQRikGSUdkA/+/wcAgXJEf04PwQkAAAAASUVORK5CYII= + + + \ No newline at end of file diff --git a/Handler/Project/Setting/fSystem_Setting.Designer.cs b/Handler/Project/Setting/fSystem_Setting.Designer.cs new file mode 100644 index 0000000..5f335a1 --- /dev/null +++ b/Handler/Project/Setting/fSystem_Setting.Designer.cs @@ -0,0 +1,77 @@ +namespace Project.Dialog +{ + partial class fSystem_Setting + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.button1 = new System.Windows.Forms.Button(); + this.propertyGrid1 = new System.Windows.Forms.PropertyGrid(); + this.SuspendLayout(); + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.button1.Location = new System.Drawing.Point(0, 564); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(527, 51); + this.button1.TabIndex = 0; + this.button1.Text = "Save"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // propertyGrid1 + // + this.propertyGrid1.Dock = System.Windows.Forms.DockStyle.Fill; + this.propertyGrid1.Location = new System.Drawing.Point(0, 0); + this.propertyGrid1.Name = "propertyGrid1"; + this.propertyGrid1.Size = new System.Drawing.Size(527, 564); + this.propertyGrid1.TabIndex = 1; + // + // fSystem_Setting + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(527, 615); + this.Controls.Add(this.propertyGrid1); + this.Controls.Add(this.button1); + this.KeyPreview = true; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fSystem_Setting"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "SystemParameter"; + this.Load += new System.EventHandler(this.SystemParameter_Load); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button button1; + private System.Windows.Forms.PropertyGrid propertyGrid1; + } +} \ No newline at end of file diff --git a/Handler/Project/Setting/fSystem_Setting.cs b/Handler/Project/Setting/fSystem_Setting.cs new file mode 100644 index 0000000..f392e4c --- /dev/null +++ b/Handler/Project/Setting/fSystem_Setting.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fSystem_Setting : Form + { + public fSystem_Setting() + { + InitializeComponent(); + this.KeyDown += SystemParameter_KeyDown; + } + + void SystemParameter_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Escape) this.Close(); + } + + private void button1_Click(object sender, EventArgs e) + { + this.Invalidate(); + PUB.system.Save(); + DialogResult = System.Windows.Forms.DialogResult.OK; + } + + private void SystemParameter_Load(object sender, EventArgs e) + { + this.propertyGrid1.SelectedObject = PUB.system; + this.propertyGrid1.Invalidate(); + } + + private void button2_Click(object sender, EventArgs e) + { + } + + private void button2_Click_1(object sender, EventArgs e) + { + var but = sender as Button; + var idx = int.Parse(but.Tag.ToString()); + PUB.mot.ShowParameter(idx); + } + } +} diff --git a/Handler/Project/Setting/fSystem_Setting.resx b/Handler/Project/Setting/fSystem_Setting.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/Project/Setting/fSystem_Setting.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/Project/StartupAPI.cs b/Handler/Project/StartupAPI.cs new file mode 100644 index 0000000..c84d991 --- /dev/null +++ b/Handler/Project/StartupAPI.cs @@ -0,0 +1,73 @@ +using Microsoft.Owin.Cors; +using Owin; +using System.Web.Http.Routing; +using System.Web.Http; +using Microsoft.Owin.StaticFiles; +using Microsoft.Owin.FileSystems; + +namespace Project.OWIN +{ + public class Startup + { + public void Configuration(IAppBuilder appBuilder) + { + //var di = new System.IO.DirectoryInfo(@".\View"); + //di = new System.IO.DirectoryInfo(@"D:\Source\WebDev\SVELT\svelte-start-app\public"); + + //if (di.Exists == false) di.Create(); + //// Serve static files + //var options = new FileServerOptions + //{ + // EnableDefaultFiles = true, + // FileSystem = new PhysicalFileSystem(di.FullName) + //}; + //appBuilder.UseFileServer(options); + + // Configure Web API for self-host + //HttpConfiguration config = new HttpConfiguration(); + //config.Routes.MapHttpRoute( + // name: "DefaultApi", + // routeTemplate: "api/{controller}/{id}", + // defaults: new { id = RouteParameter.Optional } + //); + + //config.Routes.MapHttpRoute( + // name: "ControlApi", + // routeTemplate: "api/{controller}/{action}/{id}", + // defaults: new { id = RouteParameter.Optional } + // ); + + // Configure Web API for Self-Host + HttpConfiguration config = new HttpConfiguration(); + config.MapHttpAttributeRoutes(); + + + ////메인파일 처리 방법 + IHttpRoute userrouter = + config.Routes.CreateRoute("ctrl/{controller}/{action}/{id}", + new { id = RouteParameter.Optional }, + null); + + //메인파일 처리 방법 + IHttpRoute defaultRoute = + config.Routes.CreateRoute("api/{controller}/{id}", + new { id = RouteParameter.Optional }, + null); + + + config.Routes.Add("defaultRoute", defaultRoute); + config.Routes.Add("userrouter", userrouter); + appBuilder.UseWebApi(config); + + + config.Formatters.JsonFormatter.SupportedMediaTypes.Add( + new System.Net.Http.Headers.MediaTypeHeaderValue("application/json") + ); + // Remove the XML formatter + config.Formatters.Remove(config.Formatters.XmlFormatter); + appBuilder.UseCors(CorsOptions.AllowAll); + // appBuilder.UseWebApi(config); + } + } +} + diff --git a/Handler/Project/UIControl/CtlBase.Designer.cs b/Handler/Project/UIControl/CtlBase.Designer.cs new file mode 100644 index 0000000..9007d06 --- /dev/null +++ b/Handler/Project/UIControl/CtlBase.Designer.cs @@ -0,0 +1,36 @@ +namespace UIControl +{ + partial class CtlBase + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 구성 요소 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + } + + #endregion + } +} diff --git a/Handler/Project/UIControl/CtlBase.cs b/Handler/Project/UIControl/CtlBase.cs new file mode 100644 index 0000000..709273a --- /dev/null +++ b/Handler/Project/UIControl/CtlBase.cs @@ -0,0 +1,109 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace UIControl +{ + [TypeConverterAttribute(typeof(ExpandableObjectConverter))] + public class PinInfo + { + public int PinIndex { get; set; } + public Boolean PinLevel { get; set; } + public Boolean Output { get; set; } + public eValueDirection ValueDirection { get; set; } + public Boolean Value + { + get + { + if (PinLevel == false) return !Raw; + else return Raw; + } + } + + private Boolean _raw = false; + public Boolean Raw + { + get { return _raw; } + set + { + Boolean changed = _raw != value; + _raw = value; + if (changed && ValueChanged != null) + { + ValueChanged(this, new EventArgs()); + } + } + } + public PinInfo(Boolean isOutput = false) + { + _raw = false; + PinIndex = -1; + PinLevel = true; + Output = isOutput; + ValueDirection = eValueDirection.input; + } + + public event EventHandler ValueChanged; + } + + + public enum eValueDirection + { + input = 0, + output, + } + public abstract partial class CtlBase : Control + { + Boolean bRemakeRect ; + + + public List PinList; + public CtlBase() + { + InitializeComponent(); + + // Set Optimized Double Buffer to reduce flickering + this.SetStyle(ControlStyles.UserPaint, true); + this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); + this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); + this.SetStyle(ControlStyles.SupportsTransparentBackColor, true); + this.SetStyle(ControlStyles.ContainerControl, false); + this.SetStyle(ControlStyles.Selectable, true); + PinList = new List(); + bRemakeRect = true; + this.Resize += Loader_Resize; + } + + public abstract void MakeRect(); + public abstract void UpdateValue(); + protected void SetPinCount(int iCnt) + { + this.PinList = new List(iCnt); + + for (int i = 0; i < iCnt; i++) + PinList.Add(new PinInfo()); + + } + + void Loader_Resize(object sender, EventArgs e) + { + bRemakeRect = true; + } + + protected override void OnPaint(PaintEventArgs pe) + { + if (bRemakeRect) + { + MakeRect(); + bRemakeRect = false; + } + + base.OnPaint(pe); + } + } +} diff --git a/Handler/Project/UIControl/CtlContainer.Designer.cs b/Handler/Project/UIControl/CtlContainer.Designer.cs new file mode 100644 index 0000000..6c7070e --- /dev/null +++ b/Handler/Project/UIControl/CtlContainer.Designer.cs @@ -0,0 +1,36 @@ +namespace UIControl +{ + partial class CtlContainer + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 구성 요소 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + } + + #endregion + } +} diff --git a/Handler/Project/UIControl/CtlContainer.cs b/Handler/Project/UIControl/CtlContainer.cs new file mode 100644 index 0000000..cc8f50c --- /dev/null +++ b/Handler/Project/UIControl/CtlContainer.cs @@ -0,0 +1,86 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace UIControl +{ + public partial class CtlContainer : GroupBox + { + arDev.AjinEXTEK.Emulator.CEmuleDIO devIO; + arDev.AjinEXTEK.Emulator.CEmulMOT devMOT; + + public CtlContainer() + { + InitializeComponent(); + } + public void updateControl() + { + updateControl(this.Controls); + } + + public void setDevice(arDev.AjinEXTEK.Emulator.CEmuleDIO dio, arDev.AjinEXTEK.Emulator.CEmulMOT mot) + { + this.devIO = dio; + this.devMOT = mot; + } + + public void updateControl(System.Windows.Forms.Control.ControlCollection ctl) + { + if (devIO == null && devMOT == null) throw new Exception("디바이스(IO/MOT)가 설정되지 않았습니다"); + foreach (Control c in ctl) + { + if (c.HasChildren) + { + updateControl(c.Controls); + } + else if (c is UIControl.CtlBase) + { + var cc = c as UIControl.CtlBase; + foreach (var pin in cc.PinList) + { + if (pin.PinIndex != -1) + { + if (pin.ValueDirection == UIControl.eValueDirection.input) + { + //io의 값을 컨트롤에 적용해줘야한다 + if (pin.Output) + { + pin.Raw = devIO.Output[pin.PinIndex]; + } + else + { + pin.Raw = devIO.Input[pin.PinIndex]; + } + } + else + { + //컨트롤의 값을 io에 적용해줘야 한다 + if (pin.Output) + { + //devIO.Output[pin.PinIndex] = pin.Value; + devIO.SetOutput(pin.PinIndex, pin.Value); + } + else + { + // devIO.Input[pin.PinIndex] = pin.Value; + devIO.SetInput(pin.PinIndex, pin.Value); + } + } + + } + } + cc.UpdateValue(); + cc.Invalidate(); + } + } + + } + + } +} diff --git a/Handler/Project/UIControl/CtlCylinder.Designer.cs b/Handler/Project/UIControl/CtlCylinder.Designer.cs new file mode 100644 index 0000000..f766802 --- /dev/null +++ b/Handler/Project/UIControl/CtlCylinder.Designer.cs @@ -0,0 +1,36 @@ +namespace UIControl +{ + partial class CtlCylinder + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 구성 요소 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + } + + #endregion + } +} diff --git a/Handler/Project/UIControl/CtlCylinder.cs b/Handler/Project/UIControl/CtlCylinder.cs new file mode 100644 index 0000000..d9e0a98 --- /dev/null +++ b/Handler/Project/UIControl/CtlCylinder.cs @@ -0,0 +1,261 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace UIControl +{ + public partial class CtlCylinder : CtlBase + { + // string text_; + Font font_ = new Font("맑은 고딕", 10); + public enum eSensorType + { + 단동 = 0, + 복동, + } + private eSensorType _arsensortype = eSensorType.단동; + public eSensorType arSensorType + { + get + { + return _arsensortype; + } + set + { + _arsensortype = value; + this.Invalidate(); + } + } + [Browsable(true)] + public new Font Font { get { return font_; } set { font_ = value; this.Invalidate(); } } + + public CtlCylinder() + { + InitializeComponent(); + + SetPinCount(4); //입력2개 출력2개 + + arOutputMax.ValueDirection = eValueDirection.output; + arOutputMin.ValueDirection = eValueDirection.output; + + if (arVel == 0) arVel = 50; + + //실린더 가동핀은 변경되면 시작시간을 업데이트해줘야 한다 + PinList[0].ValueChanged += (s1, e1) => { RunStartTimeMax = DateTime.Now; }; + PinList[1].ValueChanged += (s1, e1) => { RunStartTimeMin = DateTime.Now; }; + } + public override void MakeRect() + { + + } + + public int arLength = 100; + public int arVel { get; set; } + public DateTime RunStartTimeMin = DateTime.Now; + public DateTime RunStartTimeMax = DateTime.Now; + // public TimeSpan arRunSec = new TimeSpan(0); + private double arRunLen = 0; + public double arProgress + { + get + { + var val = (arRunLen / (arLength * 1.0) * 100.0); + if (val > 100.0) val = 100; + return val; + } + } + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] + public PinInfo arOutputMax { get { return PinList[2]; } set { PinList[2] = value; } } + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] + public PinInfo arOutputMin { get { return PinList[3]; } set { PinList[3] = value; } } + + //Boolean aron1_ = false; + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] + public PinInfo arInput1 + { + get + { + return PinList[0]; + } + set + { + //if (value != aron1_) RunStartTimeMax = DateTime.Now; + PinList[0] = value; + } + } + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] + public PinInfo arInput2 + { + get + { + return PinList[1]; + } + set + { + // if (value != aron2_) RunStartTimeMin = DateTime.Now; + PinList[1] = value; + this.Invalidate(); + } + } + + + public Rectangle arRectProgress { get; set; } + + public override void UpdateValue() + { + //둘다 켜져잇거나 거져잇다면 작동하지 않는다 + if (arInput1 != arInput2) + { + if (arSensorType == eSensorType.단동) + { + var ts = DateTime.Now - RunStartTimeMax; + //단동은 1번 센서의 on/off 로 처리한다 + if (arInput1.Value) + { + //경과시간만큼 MAX로 이동한다 + arRunLen += ts.TotalSeconds * arVel; + } + else + { + //경과시간만큼 MIN으로 이동한다 + arRunLen -= ts.TotalSeconds * arVel; + } + RunStartTimeMax = DateTime.Now; + } + else + { + //복동은 1번센서는 Max로 2번센서는 Min으로 이동시킨다 + if (arInput1.Value) + { + var ts = DateTime.Now - RunStartTimeMax; + arRunLen += ts.TotalSeconds * arVel; + RunStartTimeMax = DateTime.Now; + } + else if (arInput2.Value) + { + var ts = DateTime.Now - RunStartTimeMin; + arRunLen -= ts.TotalSeconds * arVel; + RunStartTimeMin = DateTime.Now; + } + } + } + + if (arRunLen > arLength) arRunLen = arLength; + if (arRunLen < 1) arRunLen = 0; + + arOutputMax.Raw = arProgress >= 99.9; + arOutputMin.Raw = arProgress <= 0.1; + + // public Boolean arMax { get { return arProgress >= 99.9; } } + //public Boolean arMin { get { return arProgress <= 0.1; } } + } + + protected override void OnPaint(PaintEventArgs pe) + { // base.OnPaint(pe); + + + + pe.Graphics.DrawRectangle(Pens.Gray, DisplayRectangle.Left, DisplayRectangle.Top, DisplayRectangle.Width - 1, DisplayRectangle.Height - 1); + + var baseRect = new Rectangle(DisplayRectangle.Left + Padding.Left, + DisplayRectangle.Top + Padding.Top, + DisplayRectangle.Width - Padding.Left - Padding.Right, + DisplayRectangle.Height - Padding.Top - Padding.Bottom); + + + //pe.Graphics.DrawRect(baseRect, Color.Blue, 1); + + + //사각형안에 사각형이 움직이는 걸로 하며 . 기본 H 배치한다 + var rectH = (int)(baseRect.Height * 0.6); + var rectOut = new Rectangle(baseRect.Left, + (int)(baseRect.Top + (baseRect.Height - rectH) / 2.0), + (int)(baseRect.Width), rectH); + + var InOffset = (int)(baseRect.Height * 0.15); + //var rectIn = new Rectangle(rectOut.Right, rectOut.Top + InOffset, + // DisplayRectangle.Width - rectOut.Width - 2, rectOut.Height - (InOffset * 2)); + + + + //진행율(%) + var progress = (arProgress / 100.0) * rectOut.Width; + var PWid = 10; + var rectP = new Rectangle((int)(progress - PWid + baseRect.Left), baseRect.Top, PWid, baseRect.Height); + + pe.Graphics.FillRectangle(Brushes.Gray, rectOut); + pe.Graphics.DrawRect(rectOut, Color.Black, 2); + + //pe.Graphics.DrawRect(rectIn, Color.Black, 2); + + if (this.arOutputMax.Value) + pe.Graphics.FillRectangle(Brushes.Red, rectP); + else if (this.arOutputMin.Value) + pe.Graphics.FillRectangle(Brushes.Blue, rectP); + else + pe.Graphics.FillRectangle(Brushes.Gold, rectP); + + pe.Graphics.DrawRect(rectP, Color.Black, 2); + + + //가동상태를 상단에 표시한다 + var StSize = 10;// baseRect.Height * 0.15f; + var rectp1 = new RectangleF( + this.DisplayRectangle.Right - StSize - 3, + DisplayRectangle.Top + 3, + StSize, StSize + ); + + if (arInput1.Value) + pe.Graphics.FillRectangle(Brushes.Red, rectp1); + else + pe.Graphics.FillRectangle(Brushes.Gray, rectp1); + pe.Graphics.DrawRect(rectp1, Color.White); + + if (arSensorType == eSensorType.복동) + { + var rectp2 = new RectangleF( + this.DisplayRectangle.Right - StSize - 3, + DisplayRectangle.Bottom - StSize - 3, + StSize, StSize + ); + if (arInput2.Value) + pe.Graphics.FillRectangle(Brushes.Red, rectp2); + else + pe.Graphics.FillRectangle(Brushes.Gray, rectp2); + pe.Graphics.DrawRect(rectp2, Color.White); + } + + // if (arMin) + // { + // pe.Graphics.DrawString("MIN", this.Font, Brushes.Black, rectOut, + // new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + // } + // else if(arMax) + // { + // pe.Graphics.DrawString("MAX", this.Font, Brushes.Black, rectOut, + //new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + // } + // else + // { + // pe.Graphics.DrawString(arProgress.ToString("N0")+"%", this.Font, Brushes.Black, rectOut, + //new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + // } + + + if (string.IsNullOrEmpty(Text) == false) + { + pe.Graphics.DrawString(Text + "\n" + progress.ToString(), + this.Font, + Brushes.Black, + rectOut, + new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + } + } + } +} diff --git a/Handler/Project/UIControl/CtlMotor.Designer.cs b/Handler/Project/UIControl/CtlMotor.Designer.cs new file mode 100644 index 0000000..a95d2b6 --- /dev/null +++ b/Handler/Project/UIControl/CtlMotor.Designer.cs @@ -0,0 +1,41 @@ +namespace UIControl +{ + partial class CtlMotor + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 구성 요소 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + this.SuspendLayout(); + // + // CtlMotor + // + this.ResumeLayout(false); + + } + + #endregion + } +} diff --git a/Handler/Project/UIControl/CtlMotor.cs b/Handler/Project/UIControl/CtlMotor.cs new file mode 100644 index 0000000..8e1a0a7 --- /dev/null +++ b/Handler/Project/UIControl/CtlMotor.cs @@ -0,0 +1,181 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace UIControl +{ + public partial class CtlMotor : CtlBase + { + public int Length { get; set; } + //public Boolean Pin_Run { get; set; } + //public Boolean Pin_DirCW { get; set; } + //public Boolean Pin_Max { get; set; } + //public Boolean Pin_Min { get; set; } + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] + public PinInfo Pin_Run { get { return PinList[0]; } set { this.PinList[0] = value; } } + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] + public PinInfo Pin_DirCW { get { return PinList[1]; } set { this.PinList[1] = value; } } + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] + public PinInfo Pin_Max { get { return PinList[2]; } set { this.PinList[2] = value; } } + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] + public PinInfo Pin_Min { get { return PinList[3]; } set { this.PinList[3] = value; } } + + + public Boolean speed { get; set; } + + Font font_ = new Font("맑은 고딕", 10); + + + + [Browsable(true)] + public new Font Font { get { return font_; } set { font_ = value; this.Invalidate(); } } + + public CtlMotor() + { + InitializeComponent(); + + SetPinCount(4); + + Length = 100; + this.Size = new Size(80, 80); + this.MaximumSize = new Size(80, 80); + this.MinimumSize = new Size(40, 40); + if (this.Font == null) this.Font = new Font("맑은 고딕", 10); + if (this.Text == null) this.Text = string.Empty; + } + + + public override void MakeRect() + { + + } + + public override void UpdateValue() + { + + } + + int anim = 0; + protected override void OnPaint(PaintEventArgs pe) + { + + pe.Graphics.DrawRectangle(Pens.Gray, DisplayRectangle.Left, DisplayRectangle.Top, DisplayRectangle.Width - 1, DisplayRectangle.Height - 1); + + var rect = new Rectangle(DisplayRectangle.Left + 2, DisplayRectangle.Top + 2, 10, 10); + var rect2 = new Rectangle(DisplayRectangle.Right - 2 - 10, DisplayRectangle.Top + 2, 10, 10); + + + //모터영역을 그린다. + var rectO = new RectangleF( + DisplayRectangle.Left + Padding.Left, + DisplayRectangle.Top + Padding.Top, + DisplayRectangle.Width * 0.6f, + DisplayRectangle.Height - Padding.Top - Padding.Bottom); + + var rectiH = rectO.Height * 0.6f; + var rectI = new RectangleF( + rectO.Left, + rectO.Top + (rectO.Height - rectiH) / 2.0f, + DisplayRectangle.Width - Padding.Left- Padding.Right, + rectiH + ); + + + + if (this.Pin_Run.Value) + { + if (this.Pin_DirCW.Value) + { + if (anim % 2 == 0) + pe.Graphics.FillRectangle(Brushes.Lime, rectI); + else + pe.Graphics.FillRectangle(Brushes.Yellow, rectI); + pe.Graphics.DrawRectangle(Pens.Black, rectI); + } + else + { + if (anim % 2 == 0) + pe.Graphics.FillRectangle(Brushes.Lime, rectI); + else + pe.Graphics.FillRectangle(Brushes.Blue, rectI); + pe.Graphics.DrawRectangle(Pens.Black, rectI); + } + + } + else + { + pe.Graphics.FillRectangle(Brushes.Red, rectI); + pe.Graphics.DrawRectangle(Pens.Black, rectI); + } + pe.Graphics.DrawRect(rectI, Color.Black, 2); + pe.Graphics.FillRectangle(Brushes.Gray, rectO); + pe.Graphics.DrawRect(rectO, Color.Black, 2); + + + + //기어를 그린다. + Point SPT = new Point(30, 10); + int GearSize = 20; + List pts = new List(); + pts.Add(new PointF(SPT.X, SPT.Y)); + pts.Add(new PointF(SPT.X + GearSize, SPT.Y)); + pts.Add(new PointF(SPT.X + GearSize, SPT.Y + GearSize)); + pts.Add(new PointF(SPT.X, SPT.Y + GearSize)); + pts.Add(pts[0]); + + var CenterPT = new PointF((pts[1].X - pts[0].X) / 2.0f + pts[0].X, (pts[2].Y - pts[0].Y) / 2.0f + pts[0].Y); + + + var anglepts = GetAnglePonit(pts.ToArray(), PointF.Empty, 1); + + var degree = 4; + var rad = degree * (Math.PI / 180); + + // pe.Graphics.DrawPolygon(Pens.Blue, anglepts.ToArray()); + + + //pe.Graphics.DrawLine(Pens.Red, CenterPT.X - 10, CenterPT.Y, CenterPT.X + 10, CenterPT.Y); + //pe.Graphics.DrawLine(Pens.Red, CenterPT.X, CenterPT.Y - 10, CenterPT.X, CenterPT.Y + 10); + + if (string.IsNullOrEmpty(Text) == false) + { + pe.Graphics.DrawString(Text , + this.Font, + Brushes.Black, + rectO, + new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + } + anim += 1; + } + + List GetAnglePonit(PointF[] array, PointF cpt, double degree) + { + if (degree > 360) + { + var mok = (int)(degree / 360.0); + degree = degree - (360 * mok); + if (degree > 180) degree *= -1; + } + var rad = degree * (Math.PI / 180); + var retval = new List(); + + var x = array[0].X;// (Math.Cos(rad) * (CPT.X - array[0].X)) + (-Math.Sin(rad) * (CPT.Y - array[0].Y)); + var y = array[0].Y;// (Math.Sin(rad) * (CPT.X - array[0].X)) + (Math.Cos(rad) * (CPT.Y - array[0].Y)); + + + foreach (var p in array) + { + //변환해서 넣어줘야함 + var x1 = (p.X - cpt.X) * Math.Cos(rad) - (p.Y - cpt.Y) * Math.Sign(rad) + cpt.X; + var y1 = (p.X - cpt.X) * Math.Sign(rad) + (p.Y - cpt.Y) * Math.Cos(rad) + cpt.Y; + retval.Add(new PointF((float)(x1), (float)(y1))); + } + return retval; + } + } +} diff --git a/Handler/Project/UIControl/CtlMotor.resx b/Handler/Project/UIControl/CtlMotor.resx new file mode 100644 index 0000000..e5858cc --- /dev/null +++ b/Handler/Project/UIControl/CtlMotor.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + False + + \ No newline at end of file diff --git a/Handler/Project/UIControl/CtlSensor.Designer.cs b/Handler/Project/UIControl/CtlSensor.Designer.cs new file mode 100644 index 0000000..1842104 --- /dev/null +++ b/Handler/Project/UIControl/CtlSensor.Designer.cs @@ -0,0 +1,36 @@ +namespace UIControl +{ + partial class CtlSensor + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 구성 요소 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + } + + #endregion + } +} diff --git a/Handler/Project/UIControl/CtlSensor.cs b/Handler/Project/UIControl/CtlSensor.cs new file mode 100644 index 0000000..6c9f7fa --- /dev/null +++ b/Handler/Project/UIControl/CtlSensor.cs @@ -0,0 +1,88 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace UIControl +{ + public partial class CtlSensor : CtlBase + { + + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] + public PinInfo arPin { get { return PinList[0]; } set { PinList[0] = value; } } + + Font font_ = new Font("맑은 고딕", 10); + + [Browsable(true)] + public new Font Font { get { return font_; } set { font_ = value; this.Invalidate(); } } + + public Boolean RectShape { get; set; } + public Color ColorOn { get; set; } + public Color ColorOff { get; set; } + + public CtlSensor() + { + InitializeComponent(); + + SetPinCount(1); + + //this.MaximumSize = new Size(80, 80); + this.MinimumSize = new Size(4, 4); + this.ColorOn = Color.Lime; + this.ColorOff = Color.DimGray; + //if (this.Font == null) this.Font = new Font("맑은 고딕", 10); + //if (this.Text == null) this.Text = string.Empty; + + } + + public override void MakeRect() + { + + } + public override void UpdateValue() + { + + } + protected override void OnPaint(PaintEventArgs pe) + { + base.OnPaint(pe); + pe.Graphics.DrawRectangle(Pens.Gray, DisplayRectangle.Left, DisplayRectangle.Top, DisplayRectangle.Width - 1, DisplayRectangle.Height - 1); + + + var baseRect = new Rectangle(DisplayRectangle.Left + Padding.Left, + DisplayRectangle.Top + Padding.Top, + DisplayRectangle.Width - Padding.Left - Padding.Right, + DisplayRectangle.Height - Padding.Top - Padding.Bottom); + + + var rect = new Rectangle(baseRect.Left + 1, baseRect.Top + 1, baseRect.Width - 2, baseRect.Height - 2); + + if (RectShape) + { + if (arPin.Value) pe.Graphics.FillRectangle(new SolidBrush(ColorOn), rect); + else pe.Graphics.FillRectangle(new SolidBrush(ColorOff), rect); + pe.Graphics.DrawRectangle(Pens.Black, rect); + } + else + { + if (arPin.Value) pe.Graphics.FillEllipse(new SolidBrush(ColorOn), rect); + else pe.Graphics.FillEllipse(new SolidBrush(ColorOff), rect); + pe.Graphics.DrawEllipse(Pens.Black, rect); + } + + + if (string.IsNullOrEmpty(Text) == false) + { + pe.Graphics.DrawString(Text, + this.Font, + Brushes.Black, + baseRect, + new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + } + } + } +} diff --git a/Handler/Project/UIControl/CtlTowerLamp.Designer.cs b/Handler/Project/UIControl/CtlTowerLamp.Designer.cs new file mode 100644 index 0000000..fd66bf9 --- /dev/null +++ b/Handler/Project/UIControl/CtlTowerLamp.Designer.cs @@ -0,0 +1,36 @@ +namespace UIControl +{ + partial class CtlTowerLamp + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 구성 요소 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + } + + #endregion + } +} diff --git a/Handler/Project/UIControl/CtlTowerLamp.cs b/Handler/Project/UIControl/CtlTowerLamp.cs new file mode 100644 index 0000000..5743cb3 --- /dev/null +++ b/Handler/Project/UIControl/CtlTowerLamp.cs @@ -0,0 +1,125 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace UIControl +{ + public partial class CtlTowerLamp : CtlBase + { + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] + public PinInfo arPinRed { get { return PinList[0]; } set { PinList[0] = value; } } + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] + public PinInfo arPinYel { get { return PinList[1]; } set { PinList[1] = value; } } + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] + public PinInfo arPinGrn { get { return PinList[2]; } set { PinList[2] = value; } } + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] + public PinInfo arPinBuz { get { return PinList[3]; } set { PinList[3] = value; } } + + + + public CtlTowerLamp() + { + InitializeComponent(); + + SetPinCount(4); + this.MinimumSize = new Size(4, 4); + } + + public override void MakeRect() + { + + } + public override void UpdateValue() + { + + } + protected override void OnPaint(PaintEventArgs pe) + { + base.OnPaint(pe); + pe.Graphics.DrawRectangle(Pens.Gray, DisplayRectangle.Left, DisplayRectangle.Top, DisplayRectangle.Width - 1, DisplayRectangle.Height - 1); + + var baseRect = new Rectangle(DisplayRectangle.Left + Padding.Left, + DisplayRectangle.Top + Padding.Top, + DisplayRectangle.Width - Padding.Left - Padding.Right, + DisplayRectangle.Height - Padding.Top - Padding.Bottom); + + + //상위 80% 영역을 표시영역으로 사용한ㄷ + var term = 3; + var DispRect = new Rectangle(baseRect.Left, baseRect.Top, baseRect.Width, (int)(baseRect.Height * 0.8f)); + var LampHeight = arPinBuz.PinIndex == -1 ? (DispRect.Height - 3 * term) / 3.0f : (DispRect.Height - 4 * term) / 4.0f; + + var rectR = new RectangleF(DispRect.Left, DispRect.Top + term, DispRect.Width, LampHeight); + var rectY = new RectangleF(DispRect.Left, rectR.Bottom + term, DispRect.Width, LampHeight); + var rectG = new RectangleF(DispRect.Left, rectY.Bottom + term, DispRect.Width, LampHeight); + var rectB = RectangleF.Empty; + if (arPinBuz.PinIndex != -1) + { + rectB = new RectangleF(DispRect.Left, rectG.Bottom + term, DispRect.Width, LampHeight); + } + + var rectCT = new RectangleF(DispRect.Left + (DispRect.Width - 20) / 2.0f, DispRect.Top, 20, baseRect.Height); + pe.Graphics.FillRectangle(Brushes.DimGray, rectCT); + pe.Graphics.DrawRectangle(Pens.Black, rectCT); + + if(this.PinList[0].Value) + pe.Graphics.FillRectangle(Brushes.Red, rectR); + else + pe.Graphics.FillRectangle(Brushes.Gray, rectR); + + if (this.PinList[1].Value) + pe.Graphics.FillRectangle(Brushes.Gold, rectY); + else + pe.Graphics.FillRectangle(Brushes.Gray, rectY); + + if (this.PinList[2].Value) + pe.Graphics.FillRectangle(Brushes.Green, rectG); + else + pe.Graphics.FillRectangle(Brushes.Gray, rectG); + + pe.Graphics.DrawRectangle(Pens.Black, rectR); + pe.Graphics.DrawRectangle(Pens.Black, rectY); + pe.Graphics.DrawRectangle(Pens.Black, rectG); + + pe.Graphics.DrawString("RED", + this.Font, + Brushes.Black, + rectR, + new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + + pe.Graphics.DrawString("YEL", + this.Font, + Brushes.Black, + rectY, + new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + + pe.Graphics.DrawString("GRN", + this.Font, + Brushes.Black, + rectG, + new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + + if (rectB.IsEmpty == false) + { + if (this.PinList[3].Value) + pe.Graphics.FillRectangle(Brushes.Magenta, rectB); + else + pe.Graphics.FillRectangle(Brushes.Gray, rectB); + + pe.Graphics.DrawRectangle(Pens.Black, rectB); + + pe.Graphics.DrawString("BUZ", + this.Font, + Brushes.Black, + rectB, + new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + } + + } + } +} diff --git a/Handler/Project/Util/Util.cs b/Handler/Project/Util/Util.cs new file mode 100644 index 0000000..b536de8 --- /dev/null +++ b/Handler/Project/Util/Util.cs @@ -0,0 +1,191 @@ +//using System; +//using System.Collections.Generic; +//using System.Data; +//using System.Diagnostics; +//using System.Drawing; +//using System.IO; +//using System.Linq; +//using System.Management; +//using System.Net; +//using System.Net.NetworkInformation; +//using System.Runtime.Serialization.Formatters.Binary; +//using System.Text; +//using System.Windows.Forms; + +//namespace Project +//{ + +// public static partial class UTIL +// { + + + + + + +// //public static Boolean SendMail(string title, string body, string from, string[] tolist, string file = "") +// //{ +// // //메일을 전송하고 나간다 +// // Chilkat.MailMan mailman = new Chilkat.MailMan(); +// // bool success = mailman.UnlockComponent("BLUPRT.CBX012020_rzDFf7pQAsCS"); +// // if (success != true) +// // { +// // UTIL.MsgE("메일 전송이 실패되었습니다\n잠시 후 다시 시도하세요", true); +// // return false; +// // } +// // else +// // { +// // mailman.SmtpHost = "10.101.10.6"; +// // mailman.SmtpPort = 25; +// // Chilkat.Email email = new Chilkat.Email(); +// // email.Subject = title; +// // //email.Body = this.textBox1.Text; +// // email.SetHtmlBody(body.Replace("\r", "").Replace("\n", "
")); +// // email.From = from; + +// // foreach (var to in tolist) +// // email.AddTo(to.Substring(0, to.IndexOf('@')), to); + +// // if (System.IO.File.Exists(file)) +// // email.AddFileAttachment(file); + +// // success = mailman.SendEmail(email); +// // if (success != true) +// // { +// // UTIL.MsgE("발송 실패", true); +// // return false; +// // } + +// // success = mailman.CloseSmtpConnection(); +// // if (success != true) +// // { +// // UTIL.MsgE("Connection to SMTP server not closed cleanly.", true); +// // return false; +// // } +// // } + +// // return true; +// //} + + +// //public static string JobListToFile(Class.CHistoryJOB data, string jobdate, string jobseq, out int cnt) +// //{ +// // cnt = 0; +// // if (string.IsNullOrEmpty(jobdate)) return string.Empty; +// // //이미저장된 목록을 가져오고 중복된것은 피한다 +// // var preSavedFile = System.IO.Path.Combine(COMM.SETTING.Data.Path_Data, "JobData", jobdate.Substring(0, 6), jobdate + "-" + jobseq + ".txt"); +// // List preList = new List(); +// // if (System.IO.File.Exists(preSavedFile)) preList.AddRange(System.IO.File.ReadAllLines(preSavedFile, System.Text.Encoding.UTF8)); + +// // //Temp +// // var fiName = System.IO.Path.Combine(COMM.SETTING.Data.Path_Data, "UploadTemp", jobdate + "_" + jobseq + ".tab"); +// // var fi = new System.IO.FileInfo(fiName); +// // if (fi.Directory.Exists == false) fi.Directory.Create(); +// // var sb = new System.Text.StringBuilder(); + +// // sb.AppendLine("#Time\tSID\tRID\tRAW"); +// // var oklist = data.Items.Where(t => t.VisionData.RID.isEmpty() == false).ToArray(); +// // foreach (var item in oklist) +// // { +// // //기존에 전송한 목록에 없어야 한다 +// // if (item.error == Class.JobData.ErrorCode.None && item.VisionData.RID.isEmpty() == false) +// // { +// // sb.AppendLine(string.Format("{0}\t{1}\t{2}\t{3}", +// // item.JobStart.ToString("yyyy-MM-dd HH:mm:sss"), item.VisionData.SID, item.VisionData.RID, item.VisionData.QROutRaw)); +// // cnt += 1; +// // } +// // } +// // try +// // { +// // System.IO.File.WriteAllText(fi.FullName, sb.ToString(), System.Text.Encoding.UTF8); +// // return fi.FullName; +// // } +// // catch (Exception ex) +// // { +// // PUB.log.AddE("JobListToFile:" + ex.Message); +// // return string.Empty; +// // } +// //} + +// //public static bool SendMail(string seqdate, string seqno) +// //{ +// // Chilkat.MailMan mailman = new Chilkat.MailMan(); +// // bool success = mailman.UnlockComponent("BLUPRT.CBX012020_rzDFf7pQAsCS"); +// // if (success != true) +// // { +// // Debug.WriteLine(mailman.LastErrorText); +// // return false; +// // } + +// // mailman.SmtpHost = "10.101.10.6"; + +// // mailman.SmtpPort = 25; + +// // // Create a new email object +// // Chilkat.Email email = new Chilkat.Email(); + +// // var mailform = PUB.mailForm.FirstOrDefault(); +// // if (mailform == null) +// // return false; + + + +// // var subject = mailform.subject.Trim(); +// // subject = subject.Replace("{seqdate}", seqdate); +// // subject = subject.Replace("{seqno}", seqno); + + +// // var buffer = System.IO.File.ReadAllText(UTIL.CurrentPath + "\\Mailform.html"); + +// // //시드별집계데이터생성 +// // System.Text.StringBuilder sbFileSID = new StringBuilder(); +// // System.Text.StringBuilder sbFileREEL = new StringBuilder(); +// // sbFileSID.AppendLine(string.Format("NO,SID,작업수량,예정수량,UNIT")); +// // sbFileREEL.AppendLine(string.Format("NO,SID,REEL,QTY,TIME")); + +// // // int cntrid = 1; + +// // System.IO.File.WriteAllText(UTIL.CurrentPath + "\\result_sidsummary.csv", sbFileSID.ToString(), System.Text.Encoding.Default); +// // System.IO.File.WriteAllText(UTIL.CurrentPath + "\\result_reelist.csv", sbFileREEL.ToString(), System.Text.Encoding.Default); + +// // //메일본문의 내용 치환 +// // var contents = buffer.Trim(); +// // contents = contents.Replace("{seqdate}", seqdate); +// // contents = contents.Replace("{seqno}", seqno); + +// // email.Subject = subject; +// // email.SetHtmlBody(contents); +// // email.From = "ReelSorter"; +// // email.AddFileAttachment(UTIL.CurrentPath + "\\result_sidsummary.csv"); +// // email.AddFileAttachment(UTIL.CurrentPath + "\\result_reelist.csv"); + + +// // System.Text.StringBuilder maillist = new StringBuilder(); +// // foreach (DataSet1.MailRecipientRow r in PUB.mailList.Rows) +// // { +// // success = email.AddTo(r.Name, r.Address); +// // maillist.Append(string.Format("{0}({1})", r.Name, r.Address)); +// // } + + +// // success = mailman.SendEmail(email); +// // if (success != true) +// // { +// // Debug.WriteLine(mailman.LastErrorText); +// // return false; +// // } + +// // success = mailman.CloseSmtpConnection(); +// // if (success != true) +// // { +// // Debug.WriteLine("Connection to SMTP server not closed cleanly."); +// // PUB.log.AddE("메일 발송 실패(" + maillist.ToString() + ")"); +// // } + +// // PUB.log.AddI("메일 발송 완료(" + maillist.ToString() + ")"); +// // return true; +// //} + + +// } +//} diff --git a/Handler/Project/Util/Util_DO.cs b/Handler/Project/Util/Util_DO.cs new file mode 100644 index 0000000..28f5b6c --- /dev/null +++ b/Handler/Project/Util/Util_DO.cs @@ -0,0 +1,964 @@ +using System; +using System.Collections; +using System.Data; +using System.Linq; +using AR; +using Emgu.CV; +using Emgu.CV.Cuda; +using Emgu.CV.Face; +using Emgu.CV.Flann; + +namespace Project +{ + public class PindefineI + { + public int idx { get; set; } + public string description { get; set; } + public int terminalno { get; set; } + public string Title { get; set; } + public bool Invert { get; set; } + public PindefineI(eDIName pin) + { + idx = (int)pin; + Title = pin.ToString(); + terminalno = (int)pin; + Invert = false; + } + public string name { get { return $"X{idx:X2}"; } } + } + public class PindefineO + { + public int idx { get; set; } + public string description { get; set; } + public int terminalno { get; set; } + public string Title { get; set; } + public PindefineO(eDOName pin) + { + idx = (int)pin; + Title = pin.ToString(); + terminalno = (int)pin; + } + public string name { get { return $"Y{idx:X2}"; } } + } + public class PinList + { + public PindefineI[] input { get; set; } + public PindefineO[] output { get; set; } + + /// + /// 입력포트 목록을 반환합니다. + /// 실제 터미널 번호에 매칭되는 이름으로 반환합니다. + /// + public string[] GetDIName + { + get + { + return input.OrderBy(t => t.terminalno).ToList().Select(t => t.Title).ToArray(); + } + } + + public string[] GetDIPinName + { + get + { + return input.OrderBy(t => t.idx).ToList().Select(t => t.name).ToArray(); + } + } + + /// + /// 입력포트 목록을 반환합니다. + /// 실제 터미널 번호에 매칭되는 이름으로 반환합니다. + /// + public string[] GetDOName + { + get + { + return output.OrderBy(t => t.terminalno).ToList().Select(t => t.Title).ToArray(); + } + } + public string[] GetDOPinName + { + get + { + return output.OrderBy(t => t.idx).ToList().Select(t => t.name).ToArray(); + } + } + public PindefineI this[eDIName pin] + { + get + { + return input[(int)pin]; + } + } + public PindefineO this[eDOName pin] + { + get + { + return output[(int)pin]; + } + } + public Boolean SetInputData(DataSet1.InputDescriptionDataTable dt) + { + bool retval = true; + var names = Enum.GetNames(typeof(eDIPin)); + if (this.input == null) //초기데이터생성 + { + this.input = new PindefineI[names.Length]; + for (int i = 0; i < input.Length; i++) + input[i] = new PindefineI((eDIName)i); + } + + if (dt.Any()) + { + foreach (DataSet1.InputDescriptionRow dr in dt) + { + if (dr.RowState == DataRowState.Detached || dr.RowState == DataRowState.Detached) continue; + var item = this.input[dr.Idx]; + if (dr.IsDescriptionNull() == false) item.description = dr.Description; + if (dr.IsTerminalNoNull() == false && dr.TerminalNo >= 0) item.terminalno = dr.TerminalNo; + } + } + return retval; + + } + + public Boolean SetOutputData(DataSet1.OutputDescriptionDataTable dt) + { + bool retval = true; + var names = Enum.GetNames(typeof(eDOPin)); + if (this.output == null) //초기데이터새엇ㅇ + { + this.output = new PindefineO[names.Length]; + for (int i = 0; i < output.Length; i++) + output[i] = new PindefineO((eDOName)i); + } + if (dt.Any()) + { + foreach (DataSet1.OutputDescriptionRow dr in dt) + { + if (dr.RowState == DataRowState.Detached || dr.RowState == DataRowState.Detached) continue; + var item = this.output[dr.Idx]; + if (dr.IsDescriptionNull() == false) item.description = dr.Description; + if (dr.IsTerminalNoNull() == false && dr.TerminalNo >= 0) item.terminalno = dr.TerminalNo; + } + } + return retval; + } + + public bool CheckData() + { + return false; + } + } + + + public static partial class DIO + { + public static PinList Pin { get; set; } + static int GetPinTerminal(eDIName pin) + { + var pindef = Pin[pin]; + return pindef.terminalno; + } + static int GetPinTerminal(eDOName pin) + { + var pindef = Pin[pin]; + return pindef.terminalno; + } + + public static void InitDIOSensitive() + { + //인식 딜레이를 건다 + PUB.dio.SetInputSensitivity(0, 0); + PUB.dio.SetInputSensitivity(GetPinTerminal(eDIName.PORTL_DET_UP), AR.SETTING.Data.PortDetectFall, AR.SETTING.Data.PortDetectRise); + PUB.dio.SetInputSensitivity(GetPinTerminal(eDIName.PORTC_DET_UP), AR.SETTING.Data.PortDetectFall, AR.SETTING.Data.PortDetectRise); + PUB.dio.SetInputSensitivity(GetPinTerminal(eDIName.PORTR_DET_UP), AR.SETTING.Data.PortDetectFall, AR.SETTING.Data.PortDetectRise); + + PUB.dio.SetInputSensitivity(GetPinTerminal(eDIName.BUT_AIRF), AR.SETTING.Data.AirChange, AR.SETTING.Data.AirChange); + + PUB.dio.SetInputSensitivity(GetPinTerminal(eDIName.DOORF1), AR.SETTING.Data.SaftyDetectFall, AR.SETTING.Data.SaftyDetectRise); + PUB.dio.SetInputSensitivity(GetPinTerminal(eDIName.DOORF2), AR.SETTING.Data.SaftyDetectFall, AR.SETTING.Data.SaftyDetectRise); + PUB.dio.SetInputSensitivity(GetPinTerminal(eDIName.DOORF3), AR.SETTING.Data.SaftyDetectFall, AR.SETTING.Data.SaftyDetectRise); + PUB.dio.SetInputSensitivity(GetPinTerminal(eDIName.DOORR1), AR.SETTING.Data.SaftyDetectFall, AR.SETTING.Data.SaftyDetectRise); + PUB.dio.SetInputSensitivity(GetPinTerminal(eDIName.DOORR2), AR.SETTING.Data.SaftyDetectFall, AR.SETTING.Data.SaftyDetectRise); + PUB.dio.SetInputSensitivity(GetPinTerminal(eDIName.DOORR3), AR.SETTING.Data.SaftyDetectFall, AR.SETTING.Data.SaftyDetectRise); + + PUB.log.AddAT("DIO 센서 감도 설정"); + } + + + + /// + /// 지정한 출력핀의 상태를 변경하고 최대 10초간 상태를 모니터링 합니다. + /// + /// + /// + /// + /// + /// + /// + /// + public static eNormalResult checkDigitalO(eDOName doPin, TimeSpan stepTime, Boolean checkValue, int sendIntervalMs = 1000, int timeoutSec = 0, bool raiseerror = true) + { + + //eIOCheckResult result = eIOCheckResult.Complete; + eNormalResult retval = eNormalResult.False; + if (timeoutSec == 0) timeoutSec = AR.SETTING.Data.Timeout_DIOCommand; + + + //지정한 출력핀이 조건에 맞지 않을 경우ㅍ + var curValue = DIO.GetIOOutput(doPin); + if (curValue != checkValue) + { + //Offt신호는 1초에 1번씩 전송하게 한다. + var ts = DateTime.Now - PUB.Result.doCheckTime[(int)doPin]; + if (ts.TotalMilliseconds >= sendIntervalMs) + { + SetOutput(doPin, checkValue); + PUB.Result.doCheckTime[(int)doPin] = DateTime.Now; + } + + //전체 시간이 10초를 넘어가면 오류로 처리함 + if (stepTime.TotalSeconds >= timeoutSec) + { + if (raiseerror) + PUB.Result.SetResultTimeOutMessage(doPin, checkValue, eNextStep.PAUSE); + + retval = eNormalResult.Error; + } + } + else retval = eNormalResult.True; + return retval; + } + + public static eNormalResult checkDigitalO(eDIName doPin, TimeSpan stepTime, Boolean checkValue, int timeoutSec = 0, bool raiseerror = true, eECode timeoutcode = eECode.NOTSET + ) + { + //eIOCheckResult result = eIOCheckResult.Complete; + var retval = eNormalResult.False; + if (timeoutSec == 0) timeoutSec = (int)AR.SETTING.Data.Timeout_DIOCommand; + + //지정한 출력핀이 조건에 맞지 않을 경우ㅍ + var curValue = DIO.GetIOInput(doPin); + if (curValue != checkValue) + { + //전체 시간이 10초를 넘어가면 오류로 처리함 + //var diRunTime = DateTime.Now - Pub.Result.diCheckTime[shutIdx, (int)doPin]; + if (stepTime.TotalSeconds >= timeoutSec) + { + if (raiseerror) + { + if (timeoutcode == eECode.NOTSET) + PUB.Result.SetResultTimeOutMessage(doPin, checkValue, eNextStep.PAUSE); + else + PUB.Result.SetResultMessage(eResult.SENSOR, timeoutcode, eNextStep.PAUSE, doPin); + } + retval = eNormalResult.Error; + } + } + else retval = eNormalResult.True; + return retval; + } + + + public static Boolean IsEmergencyOn() + { + //둘중 하나라도 켜져있드면 비상 상태이다 + var b1 = GetIOInput(eDIName.BUT_EMGF); + return b1; + //BitArray ba1 = new BitArray(8); + //ba1.Set(0, GetIOInput(eDIName.BUT_EMG1)); + //ba1.Set(1, GetIOInput(eDIName.BUT_EMG2)); + //ba1.Set(2, GetIOInput(eDIName.BUT_EMG3)); + //ba1.Set(3, GetIOInput(eDIName.BUT_EMG4)); + //return ba1.ValueI(); + } + + /// + /// 감지센서확인 + /// + /// + public static int isVacOKL() + { + var cnt = 0; + if (GetIOOutput(eDOName.PICK_VAC1)) cnt += 1; + if (GetIOOutput(eDOName.PICK_VAC2)) cnt += 1; + if (GetIOOutput(eDOName.PICK_VAC3)) cnt += 1; + if (GetIOOutput(eDOName.PICK_VAC4)) cnt += 1; + return cnt; + } + + /// + /// 포트에 장작된 카트의 크기를 반환합니다. 없는경우 0, 7,13 입니다. + /// + /// Port Index(left=0, Center=1, Right=2) + /// + public static eCartSize getCartSize(int idx) + { + var s07 = false; + var s13 = false; + + + //컨베어모드에서는 무조건 중앙크기와 동일하게 한다 (오류나지않게) + if (VAR.BOOL[eVarBool.Use_Conveyor]) + { + s07 = DIO.GetIOInput(eDIName.PORT1_SIZE_07); + s13 = DIO.GetIOInput(eDIName.PORT1_SIZE_13); + } + else + { + if (idx == 0) + { + + s07 = DIO.GetIOInput(eDIName.PORT0_SIZE_07); + s13 = DIO.GetIOInput(eDIName.PORT0_SIZE_13); + } + else if (idx == 1) + { + s07 = DIO.GetIOInput(eDIName.PORT1_SIZE_07); + s13 = DIO.GetIOInput(eDIName.PORT1_SIZE_13); + } + else + { + s07 = DIO.GetIOInput(eDIName.PORT2_SIZE_07); + s13 = DIO.GetIOInput(eDIName.PORT2_SIZE_13); + } + } + + + if (s07 == false && s13 == false) return eCartSize.None; + else if (s13 == true) return eCartSize.Inch13; + else return eCartSize.Inch7; + } + + + /// + /// * 입력값을 확인합니다 + /// + /// + /// + public static Boolean GetIOInput(eDIName pin) + { + var pindef = Pin[pin]; + var curValue = PUB.dio.GetDIValue(pindef.terminalno); + + //B접점으로 쓸 것들만 반전 시킨다. + if (pindef.Invert) + { + curValue = !curValue; + } + else if (pin == eDIName.BUT_EMGF) + { + if (PUB.system.ReverseSIG_Emgergency) curValue = !curValue; + } + else if (pin == eDIName.PICKER_SAFE) + { + if (PUB.system.ReverseSIG_PickerSafe) curValue = !curValue; + } + else if (pin == eDIName.BUT_AIRF) + { + if (PUB.system.ReverseSIG_ButtonAir) curValue = !curValue; + } + else if (pin == eDIName.DOORF1 || pin == eDIName.DOORF2 || pin == eDIName.DOORF3) + { + if (PUB.system.ReverseSIG_DoorF) curValue = !curValue; + } + else if (pin == eDIName.DOORR1 || pin == eDIName.DOORR2 || pin == eDIName.DOORR3) + { + if (PUB.system.ReverseSIG_DoorR) curValue = !curValue; + } + else if (pin == eDIName.AIR_DETECT) + { + if (PUB.system.ReverseSIG_AirCheck) curValue = !curValue; + } + else if (pin == eDIName.PORTL_LIM_UP || pin == eDIName.PORTC_LIM_UP || pin == eDIName.PORTR_LIM_UP) + { + if (PUB.system.ReverseSIG_PortLimitUp) curValue = !curValue; + } + else if (pin == eDIName.PORTL_LIM_DN || pin == eDIName.PORTC_LIM_DN || pin == eDIName.PORTR_LIM_DN) + { + if (PUB.system.ReverseSIG_PortLimitDn) curValue = !curValue; + } + else if (pin == eDIName.PORTL_DET_UP) + { + if (PUB.system.ReverseSIG_PortDetect0Up) curValue = !curValue; + } + else if (pin == eDIName.PORTC_DET_UP) + { + if (PUB.system.ReverseSIG_PortDetect1Up) curValue = !curValue; + } + else if (pin == eDIName.PORTR_DET_UP) + { + if (PUB.system.ReverseSIG_PortDetect2Up) curValue = !curValue; + } + //else if(pin == eDIName.L_CYLUP) //임시코드 + //{ + // curValue = !curValue; + //} + //else if(pin == eDIName.R_CYLUP) //임시코드 + //{ + // curValue = !curValue; + //} + //else if (pin == eDIName.L_EXT_READY) + //{ + // if (PUB.system.ReverseSIG_ExtConvReady) curValue = !curValue; + //} + //else if (pin == eDIName.R_EXT_READY) + //{ + // if (PUB.system.ReverseSIG_ExtConvReady) curValue = !curValue; + //} + else if (pin == eDIName.L_CONV1 || pin == eDIName.L_CONV4 || pin == eDIName.L_CONV3) + curValue = !curValue; + else if (pin == eDIName.R_CONV1 || pin == eDIName.R_CONV4 || pin == eDIName.R_CONV3) + curValue = !curValue; + return curValue; + } + + /// + /// * 출력값을 확인합니다. + /// + /// + /// + public static Boolean GetIOOutput(eDOName pin) + { + var pindef = Pin[pin]; + return PUB.dio.GetDOValue(pindef.terminalno); + } + + ///// + ///// A/D Link Digital input Pin number + ///// + ///// + ///// + //public static int GetDINum(eDIName pin) + //{ + // return (int)pin + 1; + // //return COMM.SETTING.Data.DI[(byte)pin]; + //} + + ///// + ///// adlink digital output in number + ///// + ///// + ///// + //public static int Pin[eDOName pin) + //{ + // return (int)pin + 1; + // //return COMM.SETTING.Data.DO[(byte)pin]; + + //} + + + /// + /// 포트내의 안전센서 여부 + /// + /// + public static Boolean isSaftyDoorF(Boolean RealSensor = false) + { + //모든 포트가 안전해야 전체가 안전한것이다 + return isSaftyDoorF(0, RealSensor) && isSaftyDoorF(1, RealSensor) && isSaftyDoorF(2, RealSensor); + } + public static Boolean isSaftyDoorR(Boolean RealSensor = false) + { + //모든 포트가 안전해야 전체가 안전한것이다 + return isSaftyDoorR(0, RealSensor) && isSaftyDoorR(1, RealSensor) && isSaftyDoorR(2, RealSensor); + } + + + public static Boolean isSaftyDoorF(int idx, Boolean RealSensor) + { + //비활성화한경우 참 반환 + if (RealSensor) + { + if (idx == 0) return DIO.GetIOInput(eDIName.DOORF1) == false; + else if (idx == 1) return DIO.GetIOInput(eDIName.DOORF2) == false; + else if (idx == 2) return DIO.GetIOInput(eDIName.DOORF3) == false; + } + else + { + if (idx == 0) + { + if (AR.SETTING.Data.Disable_safty_F0) return true; + else return DIO.GetIOInput(eDIName.DOORF1) == false; + } + else if (idx == 1) + { + if (AR.SETTING.Data.Disable_safty_F1) return true; + else return DIO.GetIOInput(eDIName.DOORF2) == false; + } + else if (idx == 2) + { + if (AR.SETTING.Data.Disable_safty_F2) return true; + else return DIO.GetIOInput(eDIName.DOORF3) == false; + } + } + return false; + } + + public static Boolean isSaftyDoorR(int idx, Boolean RealSensor) + { + if (RealSensor == false && idx == 0 && AR.SETTING.Data.Disable_safty_R0 == true) return true; + else if (RealSensor == false && idx == 1 && AR.SETTING.Data.Disable_safty_R1 == true) return true; + else if (RealSensor == false && idx == 2 && AR.SETTING.Data.Disable_safty_R2 == true) return true; + else if (idx == 0 && DIO.GetIOInput(eDIName.DOORR1) == false) return true; + else if (idx == 1 && DIO.GetIOInput(eDIName.DOORR2) == false) return true; + else if (idx == 2 && DIO.GetIOInput(eDIName.DOORR3) == false) return true; + else return false; + } + + private static DateTime RoomLightControlTime = DateTime.Now; + public static Boolean SetRoomLight(Boolean on, bool force = false) + { + if (on == true && AR.SETTING.Data.Disable_RoomLight == true && force == false) + { + PUB.log.Add("Disabled:ROOM Light"); + SetOutput(eDOName.ROOMLIGHT, false);// PUB.dio.SetOutput(Pin[eDOName.ROOMLIGHT].terminalno, false); + return true; //200708 + } + + //형광등은 너무 빠른 제어는 하지 않는다 + var ts = DateTime.Now - RoomLightControlTime; + if (ts.TotalMilliseconds < 500) return false; + RoomLightControlTime = DateTime.Now; + return SetOutput(eDOName.ROOMLIGHT, on);// PUB.dio.SetOutput(Pin[eDOName.ROOMLIGHT].terminalno, on); + } + public static Boolean SetAIR(Boolean ON) + { + if (PUB.dio == null || !PUB.dio.IsInit) return false; + return SetOutput(eDOName.SOL_AIR, ON);//return PUB.dio.SetOutput(Pin[eDOName.SOL_AIR].terminalno, ON); + + } + + /// + /// * 출력을 변경 합니다 + /// + /// + /// + /// + public static Boolean SetOutput(eDOName pin, Boolean value) + { + if (PUB.dio == null || !PUB.dio.IsInit) return false; + var pindef = Pin[pin]; + return PUB.dio.SetOutput(pindef.terminalno, value); + } + + public static bool GetPortMotorRun(int index) + { + if (PUB.dio == null || !PUB.dio.IsInit) return false; + if (index < 0 || index > 3) throw new Exception("포트번호는 (0~2) 사이로 입력되어야 함"); + + Boolean b1 = false; + + eDOName Pin_Dir = eDOName.PORTL_MOT_RUN; + if (index == 1) Pin_Dir = eDOName.PORTC_MOT_RUN; + else if (index == 2) Pin_Dir = eDOName.PORTR_MOT_RUN; + + //direction을 먼저 전송한다 + b1 = DIO.GetIOOutput(Pin_Dir); + return b1; + } + + public static eMotDir GetPortMotorDir(int index) + { + if (PUB.dio == null || !PUB.dio.IsInit) return eMotDir.CW; + if (index < 0 || index > 3) throw new Exception("포트번호는 (0~2) 사이로 입력되어야 함"); + + Boolean b1 = false; + + eDOName Pin_Dir = eDOName.PORTL_MOT_DIR; + if (index == 1) Pin_Dir = eDOName.PORTC_MOT_DIR; + else if (index == 2) Pin_Dir = eDOName.PORTR_MOT_DIR; + + //direction을 먼저 전송한다 + b1 = DIO.GetIOOutput(Pin_Dir); + if (b1 == false) return eMotDir.CW; + else return eMotDir.CCW; + } + + public static Boolean SetPortMagnet(int index, Boolean on) + { + if (PUB.dio == null || !PUB.dio.IsInit) return false; + + //기능적용 2100129 + if (on == true) + { + if (index == 0 && AR.SETTING.Data.Enable_Magnet0 == false) return true; + if (index == 1 && AR.SETTING.Data.Enable_Magnet1 == false) return true; + if (index == 2 && AR.SETTING.Data.Enable_Magnet2 == false) return true; + } + + if (index == 0) return DIO.SetOutput(eDOName.CART_MAG0, on); + else if (index == 1) return DIO.SetOutput(eDOName.CART_MAG1, on); + else return DIO.SetOutput(eDOName.CART_MAG2, on); + } + /// + /// CW = Up, CCW = Dn + /// + /// + /// + /// + /// + public static Boolean SetPortMotor(int index, eMotDir Dir, Boolean run, string remark, Boolean smalldown = false) + { + if (PUB.dio == null || !PUB.dio.IsInit) return false; + + //Pub.log.AddI($"포트모터({index}) {(Dir == eMotDir.CW ? "(정)" : "(역)")}방향 : {(run ? "O" : "X")} => {remark}"); + + + Boolean b1, b2; b1 = b2 = false; + + eDOName Pin_Dir, Pin_Run; + eDIName pin_limp, pin_limn; + + if (index == 0) Pin_Dir = eDOName.PORTL_MOT_DIR; + else if (index == 1) Pin_Dir = eDOName.PORTC_MOT_DIR; + else Pin_Dir = eDOName.PORTR_MOT_DIR; + + if (index == 0) Pin_Run = eDOName.PORTL_MOT_RUN; + else if (index == 1) Pin_Run = eDOName.PORTC_MOT_RUN; + else Pin_Run = eDOName.PORTR_MOT_RUN; + + if (index == 0) pin_limp = eDIName.PORTL_LIM_UP; + else if (index == 1) pin_limp = eDIName.PORTC_LIM_UP; + else pin_limp = eDIName.PORTR_LIM_UP; + + if (index == 0) pin_limn = eDIName.PORTL_LIM_DN; + else if (index == 1) pin_limn = eDIName.PORTC_LIM_DN; + else pin_limn = eDIName.PORTR_LIM_DN; + + //direction을 먼저 전송한다 + if (run) + { + + //b2 = Pub.dio.SetOutput(Pin_Dir, Dir != eMotDir.CW); + //System.Threading.Thread.Sleep(5); + + //켜야하는 상황인데.. 리밋이 걸렸다면 처리하지 않는다 + if (Dir == eMotDir.CW && DIO.GetIOInput(pin_limp) == true) + { + PUB.log.AddI(string.Format("포트({0})번의 출력을 무시합니다(LIMIT_UP) 방향:{1}", index, Dir)); + b1 = true; + } + else if (Dir == eMotDir.CCW && DIO.GetIOInput(pin_limn) == true) + { + PUB.log.AddI(string.Format("포트({0})번의 출력을 무시합니다(LIMIT_DN) 방향:{1}", index, Dir)); + b1 = true; + } + else + { + if (smalldown) + { + if (index == 0) + { + PUB.flag.set(eVarBool.FG_PORT0_ENDDOWN, true, remark + ":SETPORT"); + VAR.TIME.Update(eVarTime.PORT0); //내린시간 + } + if (index == 1) + { + PUB.flag.set(eVarBool.FG_PORT1_ENDDOWN, true, remark + ":SETPORT"); + VAR.TIME.Update(eVarTime.PORT1); //내린시간 + } + if (index == 2) + { + PUB.flag.set(eVarBool.FG_PORT2_ENDDOWN, true, remark + ":SETPORT"); + VAR.TIME.Update(eVarTime.PORT2); //내린시간 + } + PUB.log.AddAT(string.Format("P{0} Small Down Active Dir={1}", index, Dir)); + } + else + { + //다른곳에서 이동을 설정해버리면 sdmall down 기능을 없앤다 -- 210405 + if (index == 0 && PUB.flag.get(eVarBool.FG_PORT0_ENDDOWN) == true) + { + PUB.flag.set(eVarBool.FG_PORT0_ENDDOWN, false, remark + ":SETPORT"); + PUB.log.AddAT("P0 Small Down Ignore"); + } + if (index == 1 && PUB.flag.get(eVarBool.FG_PORT1_ENDDOWN) == true) + { + PUB.flag.set(eVarBool.FG_PORT1_ENDDOWN, false, remark + ":SETPORT"); + PUB.log.AddAT("P1 Small Down Ignore"); + } + if (index == 2 && PUB.flag.get(eVarBool.FG_PORT2_ENDDOWN) == true) + { + PUB.flag.set(eVarBool.FG_PORT2_ENDDOWN, false, remark + ":SETPORT"); + PUB.log.AddAT("P2 Small Down Ignore"); + } + } + + //방향전환을 해야한다면 우선 정지 후 500ms 대기한다 + if (DIO.GetPortMotorDir(index) != Dir) + { + //일단 멈춤고 + b1 = SetOutput(Pin_Run, false);// PUB.dio.SetOutput(Pin_Run, false); + System.Threading.Thread.Sleep(20); + + //방향전환 ON + b2 = SetOutput(Pin_Dir, Dir != eMotDir.CW); + System.Threading.Thread.Sleep(20); + + //모터 가동 + b1 = SetOutput(Pin_Run, run); + System.Threading.Thread.Sleep(20); + } + else + { + //방향전환을 하지 않는 경우 + + //모터 가동 + b2 = true; + b1 = SetOutput(Pin_Run, run); + System.Threading.Thread.Sleep(20); + } + + //b1 = Pub.dio.SetOutput(Pin_Run, run); + } + } + else + { + //동작을 먼저 끈다 + b1 = SetOutput(Pin_Run, run); + System.Threading.Thread.Sleep(20); + + //방향핀을 끈다 + b2 = SetOutput(Pin_Dir, false); + System.Threading.Thread.Sleep(20); + } + + + //System.Threading.Thread.Sleep(5); + return b1 && b2; + } + + public static Boolean SetPrintLAir(bool run, bool force = false) + { + if (PUB.dio == null || !PUB.dio.IsInit) return false; + if (force == false && AR.SETTING.Data.Disable_PLAir == true) run = false; + return SetOutput(eDOName.PRINTL_AIRON, run); + } + public static Boolean SetPrintRAir(bool run, bool force = false) + { + if (PUB.dio == null || !PUB.dio.IsInit) return false; + if (force == false && AR.SETTING.Data.Disable_PRAir == true) run = false; + return SetOutput(eDOName.PRINTR_AIRON, run); + } + + + public static Boolean SetPrintLVac(ePrintVac run, bool force = false) + { + if (PUB.dio == null || !PUB.dio.IsInit) return false; + if (force == false && AR.SETTING.Data.Disable_PLVac == true) run = ePrintVac.off; + bool b1, b2; + if (run == ePrintVac.inhalation) + { + //흡기 + b1 = DIO.SetOutput(eDOName.PRINTL_VACO, false); + b2 = DIO.SetOutput(eDOName.PRINTL_VACI, true); + } + else if (run == ePrintVac.exhaust) + { + //배기 + b1 = DIO.SetOutput(eDOName.PRINTL_VACI, false); + b2 = DIO.SetOutput(eDOName.PRINTL_VACO, true); + } + else + { + //끄기 + b1 = DIO.SetOutput(eDOName.PRINTL_VACO, false); + b2 = DIO.SetOutput(eDOName.PRINTL_VACI, false); + } + return b1 && b2; + } + public static Boolean SetPrintRVac(ePrintVac run, bool force = false) + { + if (PUB.dio == null || !PUB.dio.IsInit) return false; + if (force == false && AR.SETTING.Data.Disable_PRVac == true) run = ePrintVac.off; + bool b1, b2; + if (run == ePrintVac.inhalation) + { + //흡기 + b1 = DIO.SetOutput(eDOName.PRINTR_VACO, false); + b2 = DIO.SetOutput(eDOName.PRINTR_VACI, true); + } + else if (run == ePrintVac.exhaust) + { + //배기 + b1 = DIO.SetOutput(eDOName.PRINTR_VACI, false); + b2 = DIO.SetOutput(eDOName.PRINTR_VACO, true); + } + else + { + //끄기 + b1 = DIO.SetOutput(eDOName.PRINTR_VACO, false); + b2 = DIO.SetOutput(eDOName.PRINTR_VACI, false); + } + return b1 && b2; + } + public static Boolean SetPickerVac(Boolean run, Boolean force = false) + { + if (PUB.dio == null || !PUB.dio.IsInit) return false; + // Pub.log.Add("[F] 진공 : " + run.ToString()); + bool b1, b2, b3, b4; + //if (COMM.SETTING.Data.Disable_vacum) run = false; + if (run) + { + if (force == true || AR.SETTING.Data.Disable_PKVac == false) + { + b1 = SetOutput(eDOName.PICK_VAC1, true); + b2 = SetOutput(eDOName.PICK_VAC2, true); + b3 = SetOutput(eDOName.PICK_VAC3, true); + b4 = SetOutput(eDOName.PICK_VAC4, true); + } + else + { + b1 = b2 = b3 = b4 = true; + } + } + else + { + b1 = SetOutput(eDOName.PICK_VAC1, false); + b2 = SetOutput(eDOName.PICK_VAC2, false); + b3 = SetOutput(eDOName.PICK_VAC3, false); + b4 = SetOutput(eDOName.PICK_VAC4, false); + if (PUB.flag.get(eVarBool.FG_PK_ITEMON) == true) + { + PUB.flag.set(eVarBool.FG_PK_ITEMON, false, "VACOFF"); + PUB.logDbg.AddI("피커 아이템플래그 제거"); + } + + + + } + return b1 & b2 & b3 & b4; + } + + + #region "Tower Lamp" + + /// + /// 타워램프버튼 작업 + /// + /// + /// + /// + public static void SetTWLamp(Boolean bFront, Boolean r, Boolean g, Boolean y) + { + if (PUB.dio == null || !PUB.dio.IsInit) return; + + if (DIO.GetIOOutput(eDOName.TWR_GRNF) != g) SetOutput(eDOName.TWR_GRNF, g); + if (DIO.GetIOOutput(eDOName.TWR_REDF) != r) SetOutput(eDOName.TWR_REDF, r); + if (DIO.GetIOOutput(eDOName.TWR_YELF) != y) SetOutput(eDOName.TWR_YELF, y); + + if (PUB.flag.get(eVarBool.FG_MOVE_PICKER) == true) + { + g = true; + r = true; + if (DIO.GetIOOutput(eDOName.BUT_STARTF) != g) SetOutput(eDOName.BUT_STARTF, g); + if (DIO.GetIOOutput(eDOName.BUT_STOPF) != r) SetOutput(eDOName.BUT_STOPF, r); + } + else + { + if (DIO.GetIOOutput(eDOName.BUT_STARTF) != g) SetOutput(eDOName.BUT_STARTF, g); + if (DIO.GetIOOutput(eDOName.BUT_STOPF) != r) SetOutput(eDOName.BUT_STOPF, r); + } + if (DIO.GetIOOutput(eDOName.BUT_RESETF) != y) SetOutput(eDOName.BUT_RESETF, y); + } + + public static Boolean SetTwRed(Boolean ON) + { + if (PUB.dio == null || !PUB.dio.IsInit) return false; + SetOutput(eDOName.BUT_STOPF, ON); + return SetOutput(eDOName.TWR_REDF, ON); + + } + public static Boolean SetTwYel(Boolean ON) + { + if (PUB.dio == null || !PUB.dio.IsInit) return false; + SetOutput(eDOName.BUT_RESETF, ON); + return SetOutput(eDOName.TWR_YELF, ON); + + } + public static Boolean SetTwGrn(Boolean ON) + { + if (PUB.dio == null || !PUB.dio.IsInit) return false; + SetOutput(eDOName.BUT_STARTF, ON); + return SetOutput(eDOName.TWR_GRNF, ON); + } + + #endregion + + public static Boolean SetBuzzer(Boolean ON, bool force = false) + { + if (PUB.dio == null || !PUB.dio.IsInit) return false; + if (ON) + { + + if (SETTING.Data.Disable_Buzzer == true && force == false) return true; //부저기능OFF시 사용 안함 + } + + if (ON && SETTING.Data.Disable_Buzzer == true && force == false) + { + PUB.log.AddAT("buzzer Disabled"); + ON = false; + } + + return SetOutput(eDOName.BUZZER, ON); + } + public static Boolean SetMotPowerOn(Boolean ON) + { + if (PUB.dio == null || !PUB.dio.IsInit) return false; + + var c0 = !DIO.GetIOOutput(eDOName.SVR_PWR_0); + var c1 = !DIO.GetIOOutput(eDOName.SVR_PWR_1); + var c2 = !DIO.GetIOOutput(eDOName.SVR_PWR_2); + var c3 = !DIO.GetIOOutput(eDOName.SVR_PWR_3); + var c4 = !DIO.GetIOOutput(eDOName.SVR_PWR_4); + var c5 = !DIO.GetIOOutput(eDOName.SVR_PWR_5); + var c6 = !DIO.GetIOOutput(eDOName.SVR_PWR_6); + + //꺼져잇는 신호가 하나도 없다면 이번에 끄니깐 메세지를 추가하자 + //if (c0 == false && c0 == c1 && c0 == c2 && c0 == c3 && c0 == c4 && c0 == c5 && c0 == c6) + // Console.WriteLine("mot power off"); + + + bool b0, b1, b2, b3, b4, b5, b6; + b0 = b1 = b2 = b3 = b4 = b5 = b6 = true; + + if (c0 != ON) b0 = SetOutput(eDOName.SVR_PWR_0, !ON); + if (c1 != ON) b1 = SetOutput(eDOName.SVR_PWR_1, !ON); + if (c2 != ON) b2 = SetOutput(eDOName.SVR_PWR_2, !ON); + if (c3 != ON) b3 = SetOutput(eDOName.SVR_PWR_3, !ON); + if (c4 != ON) b4 = SetOutput(eDOName.SVR_PWR_4, !ON); + if (c5 != ON) b5 = SetOutput(eDOName.SVR_PWR_5, !ON); + if (c6 != ON) b6 = SetOutput(eDOName.SVR_PWR_6, !ON); + + return b0 && b1 && b2 && b3 && b4 && b5 && b6; + } + public static Boolean SetMotEmergency(Boolean ON) + { + //if (ON == true) Console.WriteLine("mot emg on"); + if (PUB.dio == null || !PUB.dio.IsInit) return false; + return true; + + //var c0 = DIO.GetIOOutput(eDOName.SVR_EMG_0); + //var c1 = DIO.GetIOOutput(eDOName.SVR_EMG_1); + //var c2 = DIO.GetIOOutput(eDOName.SVR_EMG_2); + //var c3 = DIO.GetIOOutput(eDOName.SVR_EMG_3); + //var c4 = DIO.GetIOOutput(eDOName.SVR_EMG_4); + //var c5 = DIO.GetIOOutput(eDOName.SVR_EMG_5); + //var c6 = DIO.GetIOOutput(eDOName.SVR_EMG_6); + + //bool b0, b1, b2, b3, b4, b5, b6; + //b0 = b1 = b2 = b3 = b4 = b5 = b6 = ON; + + //if (c0 != ON) b0 = PUB.dio.SetOutput(Pin[eDOName.SVR_EMG_0) - 1, ON); + //if (c1 != ON) b1 = PUB.dio.SetOutput(Pin[eDOName.SVR_EMG_1) - 1, ON); + //if (c2 != ON) b2 = PUB.dio.SetOutput(Pin[eDOName.SVR_EMG_2) - 1, ON); + //if (c3 != ON) b3 = PUB.dio.SetOutput(Pin[eDOName.SVR_EMG_3) - 1, ON); + //if (c4 != ON) b4 = PUB.dio.SetOutput(Pin[eDOName.SVR_EMG_4) - 1, ON); + //if (c5 != ON) b5 = PUB.dio.SetOutput(Pin[eDOName.SVR_EMG_5) - 1, ON); + //if (c6 != ON) b6 = PUB.dio.SetOutput(Pin[eDOName.SVR_EMG_6) - 1, ON); + //return b0 && b1 && b2 && b3 && b4 && b5 && b6; + } + + } +} diff --git a/Handler/Project/Util/Util_Mot.cs b/Handler/Project/Util/Util_Mot.cs new file mode 100644 index 0000000..1e2140b --- /dev/null +++ b/Handler/Project/Util/Util_Mot.cs @@ -0,0 +1,627 @@ +#pragma warning disable IDE1006 // 명명 스타일 +using arDev.MOT; +using AR; +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Project +{ + public static partial class MOT + { + + /// + /// 상대위치로 모터를 이동합니다 + /// + /// + /// + public static void Rotation(double value,string src) + { + //모터회전 + var thpos = MOT.GetPTPos(ePTLoc.READY); //적용할 속도값용 + MOT.Move(eAxis.Z_THETA, value, thpos.Speed, thpos.Acc, true); + PUB.log.AddI($"Theta Rorate:{value},Reason:{src}"); + } + + public static Boolean CheckMotionLimitError() + { + for (int i = 0; i < PUB.mot.DeviceCount; i++) + { + if (PUB.mot.IsUse(i) == false) continue; //미사용축은 제외한다. + //if (PUB.system.UseAxis(i) == false) continue; + //if (PUB.system.UseOriginSignal(i) == false) continue; + if (PUB.mot.IsLimit(i)) return true; + } + return false; + + } + + #region "Check Motion Position" + + public static Boolean CheckMotionPos(TimeSpan stepTime, sPositionData posdata, string source, Boolean useInterLocak = true, int timeoutSec = 0) + { + if (posdata.Axis < 0) throw new Exception("CheckMotionPos:Motion 번호가 없습니다"); + //return CheckMotionPos((eAxis)posdata.Axis, stepTime, posdata.Position, posdata.Speed, posdata.Acc, posdata.Dcc, source, useInterLocak, timeoutSec, posdata.inpositionrange); + return CheckMotionPos((eAxis)posdata.Axis, stepTime, posdata.Position, posdata.Speed, posdata.Acc, posdata.Dcc, source, useInterLocak, timeoutSec, posdata.inpositionrange); + } + + + public static Boolean CheckMotionPos(eAxis Motaxis, TimeSpan stepTime, double pos, double speed, double acc, double dcc, string source, Boolean useInterLocak = true, int timeoutSec = 0, float inpaccr = 0f) + { + var axis = (int)Motaxis; + + //타임아웃 적용 191213 + if (timeoutSec == 0) timeoutSec = AR.SETTING.Data.Timeout_MotionCommand; + + //accr 범위가 지정되잇다며 ㄴ그것을 사용한다 + if (inpaccr == 0f) + inpaccr = 0.1f;// PUB.system.INPAccurary(axis); + + + //X축을 그립위치까지 이동함 + if (PUB.mot.IsInp(axis) && PUB.mot.IsMotion(axis) == false) + { + var offset = Math.Abs(PUB.mot.GetCmdPos(axis) - pos); + var offsetReal = Math.Abs(PUB.mot.GetCmdPos(axis) - PUB.mot.GetActPos(axis)); + + //커맨드위치는 오차가 없어야 한다 + if (offset > 0.001 || offsetReal > inpaccr) //220214 0.01) + { + //모션을 옴겨야하는 상황인데 최대시간을 초과했다면 오류로 처리한다 + if (timeoutSec != -1 && stepTime.TotalSeconds >= timeoutSec) + { + PUB.Result.SetResultTimeOutMessage(Motaxis, eECode.MOT_CMD, eNextStep.PAUSE, source, pos, PUB.mot.ErrorMessage); + return false; + } + + if (MOT.Move(Motaxis, pos, speed, acc, false, true, useInterLocak) == false) + { + Console.WriteLine("move error {0},pos={1} => {2}", Motaxis, pos, PUB.mot.ErrorMessage); + return false; + } + + //모션을 이동시켰으니 False 처리한다 + //return false; + } + } + + //축이 이동중이면 처리하지 않는다. + if (PUB.mot.IsInp(axis) == false || PUB.mot.IsMotion(axis) == true) + { + return false; + } + + //X축실위치값 확인 + if (MOT.getPositionMatch(axis, pos, inpaccr) == false) + { + return false; + } + + + return true; + } + + + #endregion + + + #region "Get Axis Position" + + public static sPositionData GetPXPos(ePXLoc pos) { return GetAxPos(eAxis.PX_PICK, (int)pos); } + public static sPositionData GetPZPos(ePZLoc pos) { return GetAxPos(eAxis.PZ_PICK, (int)pos); } + public static sPositionData GetLMPos(eLMLoc pos) { return GetAxPos(eAxis.PL_MOVE, (int)pos); } + public static sPositionData GetLZPos(eLZLoc pos) { return GetAxPos(eAxis.PL_UPDN, (int)pos); } + public static sPositionData GetRMPos(eRMLoc pos) { return GetAxPos(eAxis.PR_MOVE, (int)pos); } + public static sPositionData GetRZPos(eRZLoc pos) { return GetAxPos(eAxis.PR_UPDN, (int)pos); } + public static sPositionData GetPTPos(ePTLoc pos) { return GetAxPos(eAxis.Z_THETA, (int)pos); } + + + #endregion + + + + /// + /// 지정된 축의 위치값에 속한 이름을 반환합니다. + /// 특정 구간에 속하지 않은 경우 UNKNOWN 을 반환 합니다 + /// + /// + /// + /// + public static String GetPosName(eAxis axis, double Pos = -1, double CheckOffset = 0.1) + { + //홈을 잡지 않았다면 오류로 처리함\ + //eYPPosition retval = eYPPosition.Unknown; + + var motIndex = (int)axis; + + if (PUB.mot.IsInit == false) return "ERROR";// (T)ePickYPosition.ERROR; //200213 + if (PUB.mot.IsHomeSet(motIndex) == false) return "ERROR";//ePickYPosition.ERROR; + if (PUB.Result == null || PUB.Result.isSetmModel == false) return "ERROR";//return ePickYPosition.ERROR; + + if (PUB.mot.IsUse(motIndex) == false) return "DISABLE"; + else if (PUB.mot.IsServAlarm(motIndex)) return "SVALM"; + else if (PUB.mot.IsServOn(motIndex) == false) return "SVOFF"; + else if (PUB.mot.IsLimitN(motIndex)) return "LIMITN"; + else if (PUB.mot.IsLimitP(motIndex)) return "LIMITP"; + else if (PUB.mot.IsLimitSWN(motIndex)) return "LIMITN(SW)"; + else if (PUB.mot.IsLimitSWP(motIndex)) return "LIMITP(SW)"; + else if (PUB.mot.IsOrg(motIndex)) return "HOME"; + else + { + //특정위치에있는지 확인한다. match 명령사용 + if (Pos == -1) Pos = PUB.mot.GetActPos(motIndex); + var PosT = 0.0; + + //해당 모션이 속한 좌표를 모두 가져온다 + var pts = PUB.Result.mModel.Position[motIndex].OrderBy(t => t.value).ToList(); + + //각위치별값을 확인한다. + for (int i = 0; i < pts.Count; i++) + { + var pValue = pts[i]; + if (Math.Abs(pValue.value - Pos) <= CheckOffset) + { + //해당위치에 있다i + if (axis == eAxis.PX_PICK) return ((ePXLoc)i).ToString(); + else if (axis == eAxis.PZ_PICK) return ((ePZLoc)i).ToString(); + else if (axis == eAxis.Z_THETA) return ((ePTLoc)i).ToString(); + + else if (axis == eAxis.PL_MOVE) return ((eLMLoc)i).ToString(); + else if (axis == eAxis.PL_UPDN) return ((eLZLoc)i).ToString(); + + else if (axis == eAxis.PR_MOVE) return ((eRMLoc)i).ToString(); + else if (axis == eAxis.PR_UPDN) return ((eRZLoc)i).ToString(); + + else return $"P#{i}"; + } + } + + //위치를 찾지 못했다 + if (Math.Abs(Pos) <= CheckOffset) return "ZERO"; + else return "UNKNOWN"; + } + } + + + /// + /// Z-L축이 안전위치에있는가?(Ready 보다 위에있으면 안전위치이다) + /// + /// + public static Boolean isAxisSaftyZone(eAxis axis, int allowoffset = 2) + { + //홈을 잡지 않았다면 오류로 처리함 + var motIndex = (int)axis; + if (PUB.mot.IsInit == false) return false; + if (PUB.mot.IsHomeSet(motIndex) == false) return false; + if (PUB.Result == null || PUB.Result.isSetmModel == false) return false; + + sPositionData readypos; + if (axis == eAxis.PX_PICK) + { + //피커는 안전위이가 2개 있다 + readypos = GetPXPos(ePXLoc.PICKON); + //var readypos1 = GetAxPXPos(eAxisPXPos.ReadyR); + //var offset1 = getPositionOffset(axis, readypos.position); + //var offset2 = getPositionOffset(axis, readypos1.position); + //if (offset1 < allowoffset || offset2 < allowoffset ) return true; //오차가 2미만이라면 안전하다 + //return false; + } + else if (axis == eAxis.PZ_PICK) readypos = GetPZPos(ePZLoc.READY); + else if (axis == eAxis.Z_THETA) readypos = GetPTPos(ePTLoc.READY); + else if (axis == eAxis.PL_MOVE) readypos = GetLMPos(eLMLoc.READY); + else if (axis == eAxis.PR_MOVE) readypos = GetRMPos(eRMLoc.READY); + else if (axis == eAxis.PR_UPDN) readypos = GetRZPos(eRZLoc.READY); + else if (axis == eAxis.PL_UPDN) readypos = GetLZPos(eLZLoc.READY); + else return false; + + var offset = getPositionOffset(axis, readypos.Position); + if (offset < allowoffset) return true; //오차가 2미만이라면 안전하다 + return false; + } + + private static Boolean Home_Validation(eAxis axis, out string errorMessage) + { + Boolean retval = true; + // int axis = (int)axis_; + + var CW = false; //홈검색은 항상 뒤로 움직인다. + if (!Move_Validation(axis, CW, out errorMessage)) retval = false; //이동이 불가한 경우 체크 + else if (axis == eAxis.PX_PICK) + { + //Z축 홈이 필요하다 + var zFHome = PUB.mot.IsHomeSet((int)eAxis.PZ_PICK); + var zRHome = PUB.mot.IsHomeSet((int)eAxis.Z_THETA); + if (zFHome == false || zRHome == false) + { + //errorMessage = "Z-PICKER,Z-THETA 축 홈이 필요 합니다"; + //retval = false; + } + } + else if (axis == eAxis.PL_MOVE) //Z축의 경우 Y축이 홈으로 된 상태여야 한다. + { + if (PUB.mot.IsHomeSet((int)eAxis.PL_UPDN) == false) + { + errorMessage = "PRINT-L Z 축 홈이 필요 합니다"; + retval = false; + } + } + else if (axis == eAxis.PR_MOVE) //Z축의 경우 Y축이 홈으로 된 상태여야 한다. + { + if (PUB.mot.IsHomeSet((int)eAxis.PR_UPDN) == false) + { + errorMessage = "PRINT-R Z 축 홈이 필요 합니다"; + retval = false; + } + } + return retval; + } + + //private static Boolean Move_Validation(eAxis axis, out string errorMessage) + //{ + // errorMessage = string.Empty; + + // if (DIO.IsEmergencyOn() == true) + // { + // errorMessage = ("비상정지 상태일때에는 움직일 수 없습니다."); + // return false; + // } + + // return true; + //} + private static Boolean Move_Validation(eAxis axis, Boolean MoveCW, out string errorMessage) + { + errorMessage = string.Empty; + + if (DIO.IsEmergencyOn() == true) + { + errorMessage = ("비상정지 상태일때에는 움직일 수 없습니다."); + return false; + } + + //홈이 잡힌상태일때 + if (PUB.mot.IsHomeSet((int)axis)) + { + if (axis == eAxis.PX_PICK) + { + var Pos = MOT.GetPXPos(ePXLoc.PICKON); + var PosOffset = MOT.getPositionOffset(Pos); + + if(AR.SETTING.Data.Log_Debug) + PUB.logDbg.Add($"X축 조그 중앙옵셋:{PosOffset:N3}"); + + if (MoveCW==false && PosOffset < -1) //좌측위치로 이동하는 경우 + { + if(PUB.mot.IsHomeSet((int)eAxis.PL_MOVE)) + { + var PosY = MOT.GetLMPos(eLMLoc.READY); + var PosYOffse = MOT.getPositionOffset(PosY); + if(PosYOffse < -1) + { + //프린터 Y축이 더 안쪽으로 들어와있으니 충돌할 수 있다. + errorMessage = "프린트(L) 축과 충돌 가능성 있음"; + return false; + } + } + } + else if(MoveCW && PosOffset > 1) //우측으로 이동하는 경우 + { + if (PUB.mot.IsHomeSet((int)eAxis.PR_MOVE)) + { + var PosY = MOT.GetRMPos(eRMLoc.READY); + var PosYOffse = MOT.getPositionOffset(PosY); + if (PosYOffse < -1) + { + //프린터 Y축이 더 안쪽으로 들어와있으니 충돌할 수 있다. + errorMessage = "프린트(R) 축과 충돌 가능성 있음"; + return false; + } + } + } + } + } + + return true; + } + + #region "Common Util" + + /// + /// 지정한 축의 모델정보에서 해당 위치값을 찾아 반환 합니다 + /// + /// + /// + /// + private static sPositionData GetAxPos(eAxis axis, int pos) + { + return GetAxpos((int)axis, pos); + } + private static sPositionData GetAxpos(int axis, int pos) + { + var retval = new sPositionData(); + retval.Clear(); + if (PUB.Result.mModel == null || PUB.Result.mModel.isSet == false) + { + retval.Message = "모션 모델이 설정되어 있지 않습니다"; + return retval; + } + + if(axis >= PUB.Result.mModel.Position.Count) + { + retval.Message = $"모션 모델 (축)정보가 없습니다 ({axis}/{PUB.Result.mModel.Position.Count})"; + return retval; + } + + if (pos >= PUB.Result.mModel.Position[axis].Length) + { + retval.Message = $"모션 모델 (위치)정보가 없습니다 ({pos}/{PUB.Result.mModel.Position[axis].Length})"; + return retval; + } + + var data = PUB.Result.mModel.Position[axis][pos]; + if (data.index == -1) + { + retval.Message = string.Format("축:{0})의 위치:{1} 의 값이 존재하지 않습니다", axis, pos);// "모션 모델이 설정되어 있지 않습니다"; + return retval; + } + retval.Axis = axis; //220301 + retval.Position = data.value; + retval.Speed = data.speed; + retval.Acc = data.acc; + + + //환경설정에서 저속모드로 설정했다면 지정된 속도로만 처리한다 + if (AR.SETTING.Data.Enable_SpeedLimit == true) + retval.Speed = Math.Min(retval.Speed, AR.SETTING.Data.LimitSpeed); + + ////시스템설정의 속도 체크 220524 + //var maxspeed = PUB.system.GetMaxSpeed; + //var motidx = (int)axis; + //if (motidx >= 0 && motidx < maxspeed.Length && maxspeed[motidx] > 0) + //{ + // retval.Speed = Math.Min(retval.Speed, maxspeed[motidx]); + //} + + ////시스템설정의 가속도체크 + //var maxAcc = PUB.system.GetMaxAcc; + //if (motidx >= 0 && motidx < maxAcc.Length && maxAcc[motidx] > 0) + //{ + // retval.Acc = Math.Min(retval.Acc, maxAcc[motidx]); + //} + + if (data.dcc < 1) retval.Dcc = retval.Acc; + else retval.Dcc = data.dcc; + + //retval.isError = false; + retval.Message = string.Empty; + return retval; + } + + /// + /// 지정축의 모션을 중지 합니다. + /// + /// + /// + /// + public static void Stop(eAxis axis, string reason, Boolean estop = false) + { + if (PUB.mot.IsInit == false) return; + if (PUB.mot.IsServAlarm((int)axis)) return; + PUB.mot.MoveStop(reason, (int)axis, estop); + + } + + //지정한 옵셋범위에 들어있는지 체크합니다. + static Boolean MatchPosition(double cpos, double tpos, double diff = 0.1) + { + var offset = Math.Abs(tpos - cpos); + return offset <= diff; + } + public static double getPositionOffset(eAxis axis, double cmdPos) + { + return getPositionOffset((int)axis, cmdPos); + } + + /// + /// 현재위치에서 지정된 위치를 뺀 값입니다. +가 반환되면 현재 위치가 지정위치보다 멀리 있다는 뜻입니다. + /// + /// + /// + public static double getPositionOffset(sPositionData Pos) + { + return getPositionOffset(Pos.Axis, Pos.Position); + } + /// + /// 현재위치에서 지정된 위치를 뺀 값입니다. +가 반환되면 현재 위치가 지정위치보다 멀리 있다는 뜻입니다. + /// + /// + /// + /// + public static double getPositionOffset(int axis, double cmdPos) + { + var coffset = (PUB.mot.GetActPos((int)axis) - cmdPos); + return coffset;// return coffset < offset; + } + + public static bool getPositionMatch(eAxis axis, double cmdPos, double offset = 0.1) + { + return getPositionMatch((int)axis, cmdPos, offset); + } + + public static bool getPositionMatch(sPositionData pos, double offset = 0.1) + { + return getPositionMatch(pos.Axis, pos.Position, offset); + } + + + public static bool getPositionMatch(int axis, double cmdPos, double offset = 0.1) + { + var actpos = PUB.mot.GetActPos(axis); + var coffset = Math.Abs(actpos - cmdPos); + return coffset <= offset; + } + + public static List GetActiveLockList(eAxis axis, CInterLock Lck) + { + var locklist = new List(); + + if (Lck.IsEmpty() == false) + { + for (int i = 0; i < Lck.Length; i++) + { + if (Lck.get(i)) + { + var vStr = $"[{i}]"; + vStr = ((eILock)i).ToString(); + locklist.Add(vStr); + } + } + } + return locklist; + } + + public static Boolean Home(string reason, eAxis axis_, Boolean useValidcheck = true) + { + string Message; + int axis = (int)axis_; + if (useValidcheck == true && !Home_Validation(axis_, out Message)) + { + PUB.mot.RaiseMessage(string.Format("[{0}-Axis] Move Error : {1}", axis, Message), true); + return false; + } + + var HomespdH = PUB.system_mot.GetHomeSpeedHigh; + var HomespdL = PUB.system_mot.GetHomeSpeedLow; + var homespdA = PUB.system_mot.GetHomeSpeedAcc; + var useOrgSensor = PUB.system_mot.GetUseOrigin; + + //Pub.mot.Home(1, arDev.AzinAxt.eMotionDirection.Negative, arDev.AzinAxt.eSoftLimitStopMode.SStop, COMM.SETTING.Data.HZSpeed, COMM.SETTING.Data.HZAcc); + //Boolean useOrgSensor = !disable_org[axis]; // (axis_ != eAxis.Marking); //A센서는 ORG가 없으므로 NE센서만으로 처리해야 함 + return PUB.mot.Home(reason, (short)axis, MOTION_DIRECTION.Negative, + STOPTYPE.EStop, + HomespdH[axis], + HomespdL[axis], + homespdA[axis], + useOrgSensor[axis]); + } + + + private static DateTime[] MotCmdtime = new DateTime[] { DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now }; + private static double[] MotCmdPos = new double[] { 0, 0, 0, 0, 0, 0, 0, 0 }; + + public static Boolean Move(eAxis axis, sPositionData posdata) + { + return Move(axis, posdata.Position, posdata.Speed, posdata.Acc); + } + + public static Boolean Move(sPositionData posdata) + { + return Move((eAxis)posdata.Axis, posdata); + } + + public static Boolean Move(eAxis axis, double pos_mm, double speed, double acc = 1000, Boolean relative = false, Boolean validchk = true, Boolean UserInterLock = true) + { + + //너무빠른시간 동작하지 못하게 한다 + if (MotCmdPos[(int)axis] == pos_mm) + { + var ts = DateTime.Now - MotCmdtime[(int)axis]; + if (ts.TotalMilliseconds < 1000) + { + //너무 빠르게 재시도하지 않게 한다 210115 + Console.WriteLine("mot command skip : " + axis.ToString() + "pos:" + pos_mm.ToString() + " too short"); + MotCmdtime[(int)axis] = DateTime.Now.AddMilliseconds(-1500); + return true; + } + else + { + MotCmdtime[(int)axis] = DateTime.Now; + MotCmdPos[(int)axis] = pos_mm; + } + } + else + { + MotCmdtime[(int)axis] = DateTime.Now; + MotCmdPos[(int)axis] = pos_mm; + } + + //이동유효성검사 + string Message; + if (validchk == true) + { + //현재위치보다 작으면 ccw + var isCW = pos_mm >= PUB.mot.GetActPos((int)axis); + if (!Move_Validation(axis, isCW, out Message)) + { + PUB.log.AddE(string.Format("[{0}-Axis] Move Error : {1}", axis, Message)); + //Pub.mot.RaiseMessage(, true); + return false; + } + } + + //해당 축 ILOCK체크 + if (UserInterLock) + { + //lock이 걸린경우 lock 걸린 항목을 모두 확인하면 좋다 + var ilock = PUB.iLock[(int)axis]; + if (ilock.IsEmpty() == false) + { + var locklist = MOT.GetActiveLockList(axis, ilock); + PUB.mot.ErrorMessage = $"{ilock.Tag} Interlock(" + string.Join(",", locklist) + ")"; + //PUB.Result.SetResultMessage(eResult.MOTION, eECode.INTERLOCK, eNextStep.PAUSE, PUB.mot.ErrorMessage); + return false; + } + } + + var pos_pulse = pos_mm;// *10; + var result = PUB.mot.Move((short)axis, pos_pulse, speed, acc, acc, relative, false, validchk); + if (!result) PUB.mot.RaiseMessage("Move(X) Error : " + PUB.mot.ErrorMessage, true); + return result; + } + + + public static Boolean JOG(int _Axis, MOTION_DIRECTION Dir, double _Vel, double _Acc, double _Dec, Boolean sCurve = false, Boolean EnableValidCheck = true, Boolean UserInterLock = true) + { + eAxis axis = (eAxis)_Axis; + + //웨이퍼가 감지되는 상태일때 OPEN 되어있다면 이동하지 못하게 한다 + if (EnableValidCheck == true) + { + var curpost = PUB.mot.GetActPos(_Axis); + var IsMoveCW = false; + + IsMoveCW = Dir == MOTION_DIRECTION.Positive; + + if (!Move_Validation(axis, IsMoveCW, out string Message)) + { + PUB.log.AddE(string.Format("[{0}-Axis] JOG Error : {1}", axis, Message)); + return false; + } + } + else PUB.log.AddAT($"조그이동시 유효성검사 해제(축:{axis})"); + + //해당 축 ILOCK체크 + if (UserInterLock) + { + //lock이 걸린경우 lock 걸린 항목을 모두 확인하면 좋다 + if (PUB.iLock[_Axis].IsEmpty() == false) + { + var locklist = MOT.GetActiveLockList(axis, PUB.iLock[_Axis]); + PUB.mot.ErrorMessage = $"{axis} Interlock(" + string.Join(",", locklist) + ")"; + return false; + } + } + else PUB.log.AddAT($"조그이동시 인터락검사 해제(축:{axis})"); + + + return PUB.mot.JOG(_Axis, Dir, _Vel, _Acc, sCurve, EnableValidCheck); + } + + + + + #endregion + } +} diff --git a/Handler/Project/Util/Util_Vision.cs b/Handler/Project/Util/Util_Vision.cs new file mode 100644 index 0000000..995b7c0 --- /dev/null +++ b/Handler/Project/Util/Util_Vision.cs @@ -0,0 +1,486 @@ +//using Emgu.CV; +//using Emgu.CV.CvEnum; +//using Emgu.CV.Structure; +//using Euresys.Open_eVision_2_11; +//using System; +//using System.Collections.Generic; +//using System.Drawing; +//using System.Linq; +//using System.Text; +//using System.Threading.Tasks; + +//namespace Project +//{ +// public static class Util_Vision +// { +// //private static object imageLockObj = new object(); + +// //public struct SCodeData +// //{ +// // public Point[] corner; +// // public string data; +// // public string model; +// // public string version; +// // public string level; +// // public string sid; +// //} + + +// //public static void DisplayQRData(List DataArr, Rectangle roi, arCtl.ImageBox iv) +// //{ +// // iv.ClearShape(); +// // foreach (var item in DataArr) +// // { +// // var p = new PointF[4]; +// // p[0] = new PointF(item.corner[0].X + roi.Left, item.corner[0].Y + roi.Top); +// // p[1] = new PointF(item.corner[1].X + roi.Left, item.corner[1].Y + roi.Top); +// // p[2] = new PointF(item.corner[2].X + roi.Left, item.corner[2].Y + roi.Top); +// // p[3] = new PointF(item.corner[3].X + roi.Left, item.corner[3].Y + roi.Top); + +// // iv.AddShapeLine(p[0], p[1], Color.Gold, false, 5); +// // iv.AddShapeLine(p[1], p[2], Color.Gold, false, 5); +// // iv.AddShapeLine(p[2], p[3], Color.Gold, false, 5); +// // iv.AddShapeLine(p[3], p[0], Color.Gold, false, 5); + +// // if (item.data.isEmpty() == false) +// // { +// // iv.AddShapeText(item.corner[1], item.data, Color.Black, 200); +// // } +// // } +// //} + +// /// +// /// 마스킹이적용된 이미지가 반환됩니다. 마스킹 +// /// +// /// +// /// +// /// +// /// +// /// +// //public static EImageBW8 FindReelOutline(EImageBW8 orgEImage, out string Message, out PointF CenterPX, out float Diameter, arCtl.ImageBox iv = null, eCartSize reelsize = eCartSize.Inch7) +// //{ + +// // EImageBW8 retval = null;// new EImageBW8(orgEImage.Width, orgEImage.Height); //마스킹이적용된 이미지 + +// // Message = string.Empty; +// // CenterPX = PointF.Empty; +// // Diameter = 0; + +// // //EWorldShape EWorldShape1 = new EWorldShape(); // EWorldShape instance +// // ECircleGauge ECircleGauge1 = new ECircleGauge(); // ECircleGauge instance +// // ECircle Circle1 = new ECircle(); // ECircle instance +// // ECircle measuredCircle = null; // ECircle instance +// // iv.ClearShape("OUTLINE"); + +// // try +// // { +// // // EBW8Image1.Load("C:\\temp\\b.bmp"); +// // //ECircleGauge1.Attach(EWorldShape1); +// // ECircleGauge1.Dragable = true; +// // ECircleGauge1.Resizable = true; +// // ECircleGauge1.Rotatable = true; +// // // EWorldShape1.SetSensorSize(3289, 2406); +// // // EWorldShape1.Process(EBW8Image1, true); +// // ECircleGauge1.Thickness = 20; +// // ECircleGauge1.TransitionChoice = ETransitionChoice.NthFromEnd; +// // ECircleGauge1.FilteringThreshold = 3.00f; +// // ECircleGauge1.SetCenterXY(2000f, 1400f); +// // ECircleGauge1.Amplitude = 360f; +// // ECircleGauge1.Tolerance = 500; +// // ECircleGauge1.Diameter = 2200f; +// // ECircleGauge1.Threshold = 20; +// // ECircleGauge1.FilteringThreshold = 3.0f; +// // ECircleGauge1.Measure(orgEImage); +// // measuredCircle = ECircleGauge1.MeasuredCircle; +// // if (measuredCircle.CenterX < 1 && measuredCircle.CenterY < 1) +// // { +// // Message = "outline not found"; +// // if (reelsize != eCartSize.None) +// // { +// // //마스크파일이 존재하면 해당 마스크를 사용한다 +// // var maskfilname = "Mask" + reelsize.ToString() + ".bmp"; +// // var filename = System.IO.Path.Combine(Util.CurrentPath, "Data", maskfilname); +// // if (System.IO.File.Exists(filename)) +// // { +// // var maskimg = new EImageBW8(); // Image(filename); +// // maskimg.Load(filename); +// // retval = new EImageBW8(orgEImage.Width, orgEImage.Height); +// // EasyImage.Oper(EArithmeticLogicOperation.BitwiseAnd, orgEImage, maskimg, retval); +// // } +// // else Pub.log.AddE("마스크파일:" + maskfilname + "이존재하지 않아 사용하지 않습니다"); +// // } +// // } +// // else +// // { +// // retval = new EImageBW8(orgEImage.Width, orgEImage.Height); +// // Diameter = measuredCircle.Diameter; +// // CenterPX = new PointF(measuredCircle.CenterX, measuredCircle.CenterY); + +// // var rect = new RectangleF(CenterPX.X - Diameter / 2.0f, CenterPX.Y - Diameter / 2.0f, Diameter, Diameter); +// // var sh = iv.AddShapePoint(CenterPX.X, CenterPX.Y, 50, Color.Gold); +// // sh.Tag = "OUTLINE"; +// // var shc = iv.AddShapeCircle(rect, Color.Lime, 50); +// // shc.Tag = "OUTLINE"; + +// // //찾은 영역을 제외하고 마스크를 만든다. +// // var dt = DateTime.Now; +// // var maskimg = new Image(orgEImage.Width, orgEImage.Height); +// // maskimg.SetZero(); +// // CvInvoke.Circle(maskimg, new Point((int)measuredCircle.CenterX, (int)measuredCircle.CenterY), (int)(Diameter / 2.0f), new Gray(255).MCvScalar, -1); + +// // //maskimg.Save(@"c:\temp\mask_" + dt.ToString("HHmmss") + ".bmp"); + +// // //마스크와 결합 +// // var orgImage = new Image(orgEImage.Width, orgEImage.Height, orgEImage.RowPitch, orgEImage.GetImagePtr()); +// // { +// // var retimg = new Image(retval.Width, retval.Height, retval.RowPitch, retval.GetImagePtr()); +// // { +// // CvInvoke.BitwiseAnd(orgImage, maskimg, retimg); +// // } +// // } +// // //orgImage.Save(@"c:\temp\type1_src1_" + dt.ToString("HHmmss") + ".bmp"); +// // //maskimg.Save(@"c:\temp\type1_src2_" + dt.ToString("HHmmss") + ".bmp"); +// // //maskedimg.Save(@"c:\temp\type1_dest_" + dt.ToString("HHmmss") + ".bmp"); +// // //iv.AddShapeBox(rect, Color.Tomato).Tag = "OUTLINE"; +// // } +// // } +// // catch (EException ex) +// // { +// // // Insert exception handling code herem +// // Message = ex.Message; +// // } +// // if (iv != null) iv.Invalidate(); +// // return retval; +// //} + + +// //public static PointF GetGainOffset(int idx) +// //{ +// // if (idx == 0) return new PointF(1.0f, 0.0f); +// // else if (idx == 1) return new PointF(1.3f, 0.0f); +// // else if (idx == 2) return new PointF(0.7f, 0.0f); + +// // else if (idx == 3) return new PointF(1.0f, 50.0f); +// // else if (idx == 4) return new PointF(1.0f, -50.0f); + +// // else if (idx == 5) return new PointF(3.0f, 50.0f); //아주어두운이미지용 +// // else if (idx == 6) return new PointF(0.5f, -20.0f); //아주밝은이미지용 + +// // //else if (idx == 7) return new PointF(1.0f, -150.0f); //밝은이미지용 +// // //else if (idx == 8) return new PointF(1.0f, -170.0f); //밝은이미지용 +// // //else if (idx == 9) return new PointF(1.0f, -190.0f); //밝은이미지용 + +// // else return new PointF(1f, 0f); +// //} + +// //private static List GetGainOffsetList(string gainstr) +// //{ +// // var retval = new List(); +// // var list = gainstr.Split(';'); +// // foreach (var item in list) +// // { +// // var ptitem = item.Split(','); +// // if (ptitem.Length == 2) +// // { +// // retval.Add(new System.Drawing.PointF(float.Parse(ptitem[0]), float.Parse(ptitem[1]))); +// // } +// // } +// // return retval; +// //} + +// //public static System.Collections.Generic.List DetectQR_eVision( +// // EImageBW8 EBW8Image4, +// // arCtl.ImageBox iv1, int idx, +// // out string Message, +// // string erodevaluestr = "3,1", +// // string gainoffsetlist = "2,1", +// // uint blob_area_min = 5000, +// // uint blob_area_max = 50000, +// // float blob_sigmaxy = 500f, +// // float blob_sigmayy = 500f, +// // float blob_sigmaxx = 5000f, +// // string maskfile = "", +// // Image DispImage = null +// // ) +// //{ +// // Message = string.Empty; +// // var pts = new System.Collections.Generic.List(); +// // System.Diagnostics.Stopwatch wat = new System.Diagnostics.Stopwatch(); +// // wat.Restart(); + +// // //바코드리더 +// // EQRCodeReader EQRCode1 = new EQRCodeReader(); // EQRCodeReader instance +// // EQRCode1.DetectionMethod = 15; //모든방법으로 데이터를 찾는다 +// // EQRCode1.TimeOut = 1000 * 1000; //timeout (1초) + +// // //Blob 으로 바코드영역을 찾는다 +// // ECodedImage2 codedImage4 = new ECodedImage2(); // ECodedImage2 instance +// // EImageEncoder codedImage4Encoder = new EImageEncoder(); // EImageEncoder instance +// // EObjectSelection codedImage4ObjectSelection = new EObjectSelection(); // +// // codedImage4ObjectSelection.FeretAngle = 0.00f; +// // using (var psegment = codedImage4Encoder.GrayscaleSingleThresholdSegmenter) //.BlackLayerEncoded = true; +// // { +// // psegment.BlackLayerEncoded = true; +// // psegment.WhiteLayerEncoded = false; +// // psegment.Mode = EGrayscaleSingleThreshold.MaxEntropy; +// // } + +// // //침식해서 바코드영역이 뭉치도록 한다. (바코드는 검은색 영역이 된다) +// // List erodevalues = new List(); +// // var erodebuffer = erodevaluestr.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); +// // foreach (var erbuf in erodebuffer) erodevalues.Add(uint.Parse(erbuf)); + +// // //마스크적용 - 210209 +// // if (maskfile.isEmpty() == false && System.IO.File.Exists(maskfile)) +// // { +// // using (var maskmig = new EImageBW8()) +// // { +// // maskmig.Load(maskfile);//이미지불러오지 +// // EasyImage.Oper(EArithmeticLogicOperation.BitwiseAnd, EBW8Image4, maskmig, EBW8Image4); +// // } +// // } + + +// // var GainOffsetList = GetGainOffsetList(gainoffsetlist); +// // uint objectCountT = 0; + +// // for (int maxtype = 0; maxtype < 2; maxtype++) +// // { +// // //침식데이터도 여러개를 사용한다. +// // foreach (var erodevalue in erodevalues) +// // { +// // //인코딩된 이미지가 들어간다 +// // var ErodeImageBW8 = new EImageBW8(EBW8Image4.Width, EBW8Image4.Height); +// // EasyImage.ErodeBox(EBW8Image4, ErodeImageBW8, erodevalue); + + +// // using (var psegment = codedImage4Encoder.GrayscaleSingleThresholdSegmenter) +// // { +// // if (maxtype == 0) +// // psegment.Mode = EGrayscaleSingleThreshold.MinResidue; +// // else if (maxtype == 1) +// // psegment.Mode = EGrayscaleSingleThreshold.MaxEntropy; +// // else if (maxtype == 2) +// // psegment.Mode = EGrayscaleSingleThreshold.IsoData; +// // } + + +// // codedImage4Encoder.Encode(ErodeImageBW8, codedImage4); +// // codedImage4ObjectSelection.Clear(); +// // codedImage4ObjectSelection.AddObjects(codedImage4); +// // codedImage4ObjectSelection.AttachedImage = ErodeImageBW8; + + +// // //너무큰 개체를 제거한다. +// // codedImage4ObjectSelection.RemoveUsingUnsignedIntegerFeature(EFeature.Area, blob_area_min, ESingleThresholdMode.LessEqual); +// // codedImage4ObjectSelection.RemoveUsingUnsignedIntegerFeature(EFeature.Area, blob_area_max, ESingleThresholdMode.GreaterEqual); + +// // //개체제거 +// // codedImage4ObjectSelection.RemoveUsingFloatFeature(EFeature.SigmaXY, blob_sigmaxy, ESingleThresholdMode.GreaterEqual); +// // codedImage4ObjectSelection.RemoveUsingFloatFeature(EFeature.SigmaYY, blob_sigmayy, ESingleThresholdMode.LessEqual); +// // codedImage4ObjectSelection.RemoveUsingFloatFeature(EFeature.SigmaXX, blob_sigmaxx, ESingleThresholdMode.GreaterEqual); + +// // //찾은데이터수량 +// // var objectCount = codedImage4ObjectSelection.ElementCount; +// // objectCountT += objectCount; + +// // //데이터표시 +// // //찾은영역을 표시한다. +// // for (uint i = 0; i < objectCount; i++) +// // { +// // //각 요소를 가져와서 처리한다. +// // var CElement = codedImage4ObjectSelection.GetElement(i); +// // var sigXY = CElement.SigmaXY; +// // var sigYY = CElement.SigmaYY; +// // var rCnt = CElement.RunCount; +// // var rArea = CElement.Area; + +// // var boxW = CElement.BoundingBoxWidth * COMM.SETTING.Data.RosRectScale; +// // var boxH = CElement.BoundingBoxHeight * COMM.SETTING.Data.RosRectScale; //좀더크게간다 210209 +// // var boxCX = CElement.BoundingBoxCenterX; +// // var boxCY = CElement.BoundingBoxCenterY; + +// // var boxRate = (boxW * 1.0) / boxH; + +// // var rect = new RectangleF(boxCX - boxW / 2.0f, boxCY - boxH / 2.0f, boxW, boxH); + +// // //외각상자를 표시한다 +// // iv1.AddShapeBox(rect, Color.Tomato, 10); +// // if (DispImage != null) +// // CvInvoke.Rectangle(DispImage, +// // new Rectangle((int)rect.X, (int)rect.Y, (int)rect.Width, (int)rect.Height), +// // new Bgr(Color.Tomato).MCvScalar, 2); + +// // //해당영역을 ROI로 잡고 이미지를 검색한다 +// // var RoiImage = new EROIBW8(); +// // RoiImage.Attach(EBW8Image4); + +// // //ROI로 사용할 영역의 오류를 체크해야한다 +// // var rLeft = (int)rect.Left; +// // var rTop = (int)rect.Top; +// // var rWid = (int)rect.Width; +// // var rHei = (int)rect.Height; + +// // //roi 오류수정 210621 +// // if (rLeft < 2) rLeft = 1; +// // if (rTop < 2) rTop = 1; +// // if (rWid < 10) rWid = 10; +// // if (rHei < 10) rHei = 10; +// // if (rLeft + rWid > EBW8Image4.Width) rWid = EBW8Image4.Width - rLeft - 1; +// // if (rTop + rHei > EBW8Image4.Height) rHei = EBW8Image4.Height - rTop - 1; + +// // var rourect = new Rectangle(rLeft, rTop, rWid, rHei); +// // RoiImage.SetPlacement(rourect.Left, rourect.Top, rourect.Width, rourect.Height); //ROI적용 + +// // var TargetImage = new EImageBW8(RoiImage.Width, RoiImage.Height); + +// // //밝기를 변경해서 처리해야한다 +// // //int processCount = 9; + +// // foreach (var param in GainOffsetList) //원본, gain +-, offset +- 5가지 색상처리함 +// // { + +// // EasyImage.ScaleRotate(RoiImage, 0, 0, 0, 0, 1.0f, 1.0f, 0f, TargetImage); +// // //EasyImage.Copy(RoiImage, TargetImage); + +// // //밝기를 변경해서 사용할 것이므로 해당 변경된 밝기를 저장할 이미지를 생성한다. 210128 +// // //var roiimg = new EImageBW8(TargetImage); +// // //var param = Util_Vision.GetGainOffset(bright); +// // if (param.X != 1.0f || param.Y != 0.0f) EasyImage.GainOffset(TargetImage, TargetImage, param.X, param.Y); +// // //else RoiImage.CopyTo(TargetImage); ;// TargetImage.CopyTo(roiimg); //변경하지 않고 그대로 사용한다 + +// // //적용파일을 모두 저장해준다. +// // //var roifilename = @"c:\temp\roi_" + i.ToString() + "_g" + param.X.ToString() + "_o" + param.Y.ToString() + ".bmp"; +// // //TargetImage.Save(roifilename); + +// // EQRCode1.SearchField = TargetImage; +// // var EQRCode2Result = EQRCode1.Read(); +// // for (int j = 0; j < EQRCode2Result.Length; j++) +// // { +// // var QrData = EQRCode2Result[j]; +// // if (QrData.IsDecodingReliable) +// // { +// // var geo = QrData.Geometry; +// // var pos = geo.Position; +// // var cornous = pos.Corners; + +// // var resultData = new Util_Vision.SCodeData(); + +// // //테두리좌표 읽기 +// // var resultcorns = new List(); +// // for (int k = 0; k < cornous.Length; k++) +// // { +// // var con = cornous[k]; +// // resultcorns.Add(new Point((int)(con.X + rect.X), (int)(con.Y + rect.Y))); +// // con.Dispose(); +// // } +// // resultData.corner = resultcorns.ToArray(); + +// // //데이터읽기 +// // resultData.model = QrData.Model.ToString(); +// // resultData.version = QrData.Version.ToString(); +// // resultData.level = QrData.Level.ToString(); +// // resultData.sid = string.Empty; + +// // //바코드데이터확인 +// // var decodestr = QrData.DecodedStream; +// // resultData.data = string.Empty; +// // foreach (var item in decodestr.DecodedStreamParts) +// // { +// // resultData.data += System.Text.Encoding.Default.GetString(item.DecodedData); +// // item.Dispose(); +// // } + +// // var c = new StdLabelPrint.CAmkorSTDBarcode(resultData.data); +// // if (c.isValid) resultData.sid = c.SID; +// // else resultData.sid = string.Empty; +// // //if (c.isValid) break; +// // //else resultData.data = string.Empty; + +// // //결과데이터 추가 +// // if (resultData.data.isEmpty() == false) +// // { +// // if (pts.Where(t => t.data == resultData.data).Any() == false) +// // { +// // pts.Add(resultData); + +// // //자료가잇다면 표시한다. +// // var dispvalue = resultData.data; +// // if (c.isValid == false) dispvalue += "\n" + c.Message; +// // else if (c.DateError) dispvalue += "\n** Date Error **"; +// // iv1.AddShapeText(resultcorns[1].X, resultcorns[1].Y, dispvalue, (c.isValid ? Color.Yellow : Color.Red), 50); + +// // if (DispImage != null) +// // CvInvoke.PutText(DispImage, +// // dispvalue, +// // new Point(resultcorns[1].X, resultcorns[1].Y), FontFace.HersheyDuplex, 2, +// // new Bgr(Color.Tomato).MCvScalar, 2); + +// // //찾은테두리를 화면에 표시한다. +// // foreach (var pt in resultcorns) +// // { +// // iv1.AddShapePoint(pt, 20f, Color.Lime); +// // if (DispImage != null) +// // { +// // CvInvoke.Line(DispImage, +// // new Point(pt.X - 10, pt.Y - 10), +// // new Point(pt.X + 10, pt.Y + 10), +// // new Bgr(Color.Lime).MCvScalar, 2); + +// // CvInvoke.Line(DispImage, +// // new Point(pt.X + 10, pt.Y - 10), +// // new Point(pt.X - 10, pt.Y + 10), +// // new Bgr(Color.Lime).MCvScalar, 2); +// // } +// // } +// // } +// // } + +// // decodestr.Dispose(); +// // decodestr = null; + +// // cornous = null; +// // pos.Dispose(); +// // geo.Dispose(); +// // } +// // QrData.Dispose(); +// // } + +// // } +// // TargetImage.Dispose(); +// // TargetImage = null; +// // CElement.Dispose(); +// // } + +// // ErodeImageBW8.Dispose(); //침식된 이미지 +// // } + +// // } + + +// // EQRCode1.Dispose(); +// // codedImage4ObjectSelection.Dispose(); //엔코더결과값소거 +// // codedImage4Encoder.Dispose(); //엔코더소거 +// // codedImage4.Dispose(); //코딩된이미지 + +// // wat.Stop(); +// // //iv1.AddShapeText(50, 50, wat.ElapsedMilliseconds.ToString() + "ms", Color.Lime, 50f); +// // var mm = "[" + objectCountT.ToString() + "] " + wat.ElapsedMilliseconds.ToString() + "ms"; +// // var mmpt = new Point(20, 30 + (idx * 140)); +// // iv1.AddShapeText(mmpt.X, mmpt.Y, mm, Color.Lime, 100f); +// // if (DispImage != null) +// // { +// // mmpt.Offset(0, 150); +// // CvInvoke.PutText(DispImage, mm, mmpt, FontFace.HersheyDuplex, 6, new Bgr(Color.Lime).MCvScalar, 4); +// // mmpt.Offset(1100, 0); +// // CvInvoke.PutText(DispImage, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), mmpt, FontFace.HersheyDuplex, 6, new Bgr(Color.Gold).MCvScalar, 4); +// // } + +// // iv1.Invalidate(); +// // return pts; +// //} + + + +// } +//} diff --git a/Handler/Project/Validation/Mot_Move.cs b/Handler/Project/Validation/Mot_Move.cs new file mode 100644 index 0000000..c3a4583 --- /dev/null +++ b/Handler/Project/Validation/Mot_Move.cs @@ -0,0 +1,78 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; + +namespace Project +{ + public partial class FMain + { + + + /// + /// 모션 이동명령(MOVE,HOME,JOG)이 시작전에 축 이동여부를 확인하는 이벤트 임 + /// 이동을 하면 안되는 경우 e.valid 를 false 로 설정하면 모션이 이동하지 않습니다 + /// + /// + /// + void mot_AxisMoveValidateCheck(object sender, arDev.MOT.MoveValidationEventArgs e) + { + //DIO가 움직이지 않으면 체크할 필요는 없다 (DIO가 작동안해도 모터는 움직여야 하므로 플래그는 TRUE로 둔다) + if (PUB.dio.IsInit == false || PUB.mot.IsInit == false) return; + + //모든모션의 홈설정이완료된 상태에만 체크한다 + if (PUB.mot.HasHomeSetOff == true) return; + + //모션모델이 설정된 상태에만 체크한다 + if (PUB.Result.isSetmModel == false) return; + + //홈 검색모드에서는 처리하지 않음 + if (PUB.sm.Step == eSMStep.HOME_FULL) return; + + //일반대기상태에서는 처리하지 않는다 + if (PUB.sm.Step <= eSMStep.IDLE) return; + + //이동하려는 위치와 현재 위치가 동일하면 처리하지 않는다 + if (e.CurrentPosition == e.TargetPosition) return; + + //각 축별 파일에서 처리한다 + var axis = (eAxis)e.m_nAxis; + if (axis == eAxis.PX_PICK) + { + e.invalidMessage = Validation_MotYP(e); + e.isValid = e.invalidMessage.isEmpty(); + } + else if (axis == eAxis.PZ_PICK) + { + e.invalidMessage = Validation_MotYZ(e); + e.isValid = e.invalidMessage.isEmpty(); + } + else if (axis == eAxis.Z_THETA) + { + e.invalidMessage = Validation_MotYT(e); + e.isValid = e.invalidMessage.isEmpty(); + } + else if (axis == eAxis.PL_MOVE) + { + e.invalidMessage = Validation_MotPLM(e); + e.isValid = e.invalidMessage.isEmpty(); + } + else if (axis == eAxis.PR_MOVE) + { + e.invalidMessage = Validation_MotPRM(e); + e.isValid = e.invalidMessage.isEmpty(); + } + else if (axis == eAxis.PL_UPDN) + { + e.invalidMessage = Validation_MotPLZ(e); + e.isValid = e.invalidMessage.isEmpty(); + } + else if (axis == eAxis.PR_UPDN) + { + e.invalidMessage = Validation_MotPRZ(e); + e.isValid = e.invalidMessage.isEmpty(); + } + } + } +} diff --git a/Handler/Project/Validation/Mot_ZL.cs b/Handler/Project/Validation/Mot_ZL.cs new file mode 100644 index 0000000..460b42c --- /dev/null +++ b/Handler/Project/Validation/Mot_ZL.cs @@ -0,0 +1,117 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; + +namespace Project +{ + public partial class FMain + { + string Validation_MotYP(arDev.MOT.MoveValidationEventArgs e) + { + //Z가 내려오는 경우만 체크한다 + //if (e.direction == arDev.AzinAxt.eMotionDirection.Positive && Pub.sm.Step == eSMStep.RUN) + //{ + // var valPickOn = Util_Mot.getPositionMatch(eAxisPYPos.PickOn, 2.0); + // var valPickOfL = Util_Mot.getPositionMatch(eAxisPYPos.PickOffL, 2.0); + // var valPickOfR = Util_Mot.getPositionMatch(eAxisPYPos.PickOffR, 2.0); + + // if(valPickOn || valPickOfL || valPickOfR) + // { + // //해다 위치에 있을때에는 움직이는것이 가능하다 + // } + // else + // { + // return "Z-LEFT 이동 불가(Y축의 위치가 PICK-ON/OFF 위치가 아닙니다:" + e.CurrentPosition.ToString() + "/" + e.TargetPosition.ToString() + ")"; + // } + //} + + return string.Empty; + } + string Validation_MotYZ(arDev.MOT.MoveValidationEventArgs e) + { + //if (e.direction == arDev.AzinAxt.eMotionDirection.Positive && Pub.sm.Step == eSMStep.RUN) + //{ + // var valPickOn = Util_Mot.getPositionMatch(eAxisPYPos.PickOn, 2.0); + // // var valPickOf = Util_Mot.getPositionMatch(eAxisYPPos.PickOff, 2.0); + // if (valPickOn == false) + // { + // return "Z-RIGHT 이동 불가(Y축의 위치가 PICK-ON/OFF 위치가 아닙니다:" + e.CurrentPosition.ToString() + "/" + e.TargetPosition.ToString() + ")"; + // } + //} + return string.Empty; + } + + string Validation_MotYT(arDev.MOT.MoveValidationEventArgs e) + { + //if (e.direction == arDev.AzinAxt.eMotionDirection.Positive && Pub.sm.Step == eSMStep.RUN) + //{ + // var valPickOn = Util_Mot.getPositionMatch(eAxisPYPos.PickOn, 2.0); + // // var valPickOf = Util_Mot.getPositionMatch(eAxisYPPos.PickOff, 2.0); + // if (valPickOn == false) + // { + // return "Z-RIGHT 이동 불가(Y축의 위치가 PICK-ON/OFF 위치가 아닙니다:" + e.CurrentPosition.ToString() + "/" + e.TargetPosition.ToString() + ")"; + // } + //} + return string.Empty; + } + + string Validation_MotPLM(arDev.MOT.MoveValidationEventArgs e) + { + //if (e.direction == arDev.AzinAxt.eMotionDirection.Positive && Pub.sm.Step == eSMStep.RUN) + //{ + // var valPickOn = Util_Mot.getPositionMatch(eAxisPYPos.PickOn, 2.0); + // // var valPickOf = Util_Mot.getPositionMatch(eAxisYPPos.PickOff, 2.0); + // if (valPickOn == false) + // { + // return "Z-RIGHT 이동 불가(Y축의 위치가 PICK-ON/OFF 위치가 아닙니다:" + e.CurrentPosition.ToString() + "/" + e.TargetPosition.ToString() + ")"; + // } + //} + return string.Empty; + } + + string Validation_MotPRM(arDev.MOT.MoveValidationEventArgs e) + { + //if (e.direction == arDev.AzinAxt.eMotionDirection.Positive && Pub.sm.Step == eSMStep.RUN) + //{ + // var valPickOn = Util_Mot.getPositionMatch(eAxisPYPos.PickOn, 2.0); + // // var valPickOf = Util_Mot.getPositionMatch(eAxisYPPos.PickOff, 2.0); + // if (valPickOn == false) + // { + // return "Z-RIGHT 이동 불가(Y축의 위치가 PICK-ON/OFF 위치가 아닙니다:" + e.CurrentPosition.ToString() + "/" + e.TargetPosition.ToString() + ")"; + // } + //} + return string.Empty; + } + + string Validation_MotPLZ(arDev.MOT.MoveValidationEventArgs e) + { + //if (e.direction == arDev.AzinAxt.eMotionDirection.Positive && Pub.sm.Step == eSMStep.RUN) + //{ + // var valPickOn = Util_Mot.getPositionMatch(eAxisPYPos.PickOn, 2.0); + // // var valPickOf = Util_Mot.getPositionMatch(eAxisYPPos.PickOff, 2.0); + // if (valPickOn == false) + // { + // return "Z-RIGHT 이동 불가(Y축의 위치가 PICK-ON/OFF 위치가 아닙니다:" + e.CurrentPosition.ToString() + "/" + e.TargetPosition.ToString() + ")"; + // } + //} + return string.Empty; + } + + string Validation_MotPRZ(arDev.MOT.MoveValidationEventArgs e) + { + //if (e.direction == arDev.AzinAxt.eMotionDirection.Positive && Pub.sm.Step == eSMStep.RUN) + //{ + // var valPickOn = Util_Mot.getPositionMatch(eAxisPYPos.PickOn, 2.0); + // // var valPickOf = Util_Mot.getPositionMatch(eAxisYPPos.PickOff, 2.0); + // if (valPickOn == false) + // { + // return "Z-RIGHT 이동 불가(Y축의 위치가 PICK-ON/OFF 위치가 아닙니다:" + e.CurrentPosition.ToString() + "/" + e.TargetPosition.ToString() + ")"; + // } + //} + return string.Empty; + } + + } +} diff --git a/Handler/Project/app.config b/Handler/Project/app.config new file mode 100644 index 0000000..80ae4c7 --- /dev/null +++ b/Handler/Project/app.config @@ -0,0 +1,163 @@ + + + + +
+ + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + http://k1xip00.amkor.co.kr:50000/XISOAPAdapter/MessageServlet?senderParty=&senderService=eCIM_ATK&receiverParty=&receiverService=&interface=ZK_RFID_TRANS_SEQ&interfaceNamespace=urn%3Asap-com%3Adocument%3Asap%3Arfc%3Afunctions + + + + + + + K9OE1zaaQEPD8jE33YK1vDdDS4JBz1DB + + + 101410653;AG64B3W;SAMSUNG;20000;AG64B3W0031;19000101; + + + Amkor Technology/windows-242f240302c3e50d6cb1686ba2q4k0o9 + + + ^XA~TA000~JSN^LT0^MNW^MTT^PON^PMN^LH0,0^JMA^PR6,6~SD15^JUS^LRN^CI0^XZ +^XA +^MMT +^PW519 +^LL0200 +^LS25 +^FO205,5^GB305,186,4^FS +^FT25,170^BQN,2,4 +^FDLA, +{qrData} +^FS +^FO205,9^GB0,183,4^FS +^FO250,9^GB0,183,4^FS +^FO209,34^GB299,0,4^FS +^FO209,65^GB299,0,4^FS +^FO207,95^GB300,0,4^FS +^FO207,126^GB303,0,4^FS +^FT211,30^A0N,23,24^FDSID^FS +^FT210,59^A0N,23,24^FDLOT^FS +^FT215,91^A0N,23,24^FDPN^FS +^FT212,153^A0N,23,24^FDRID^FS +^FT210,120^A0N,23,24^FDQ'ty^FS +^FT260,31^A0N,23,24^FD +{sid} +^FS +^FT260,60^A0N,23,24^FD +{lot} +^FS +^FT258,93^A0N,27,16^FD +{partnum} +^FS +^FT256,150^A0N,21,19^FD +{rid} +^FS +^FT259,121^A0N,23,24^FD +{qty} +^FS +^FO207,157^GB303,0,4^FS +^FT212,182^A0N,20,19^FDDate^FS +^FT260,183^A0N,23,24^FD +{mfg} +^FS +^PQ1,0,1,Y^XZ + + + ^XA +^MMT +^PW519 +^LL0200 +^LS0 +^FO207,5^GB303,186,4^FS +^FT10,190^BQN,2,4 +^FH\^FDLA,{qrData}^FS +^FO250,8^GB0,183,4^FS +^FO209,29^GB299,0,4^FS +^FO209,56^GB299,0,4^FS +^FO207,81^GB300,0,4^FS +^FO207,108^GB303,0,4^FS +^FT212,27^A0N,20,19^FH\^FDSID^FS +^FT212,52^A0N,20,19^FH\^FDLOT^FS +^FT211,132^A0N,20,19^FH\^FDRID^FS +^FT212,104^A0N,20,19^FH\^FDQ'ty^FS +^FT256,27^A0N,20,19^FH\^FD{sid}^FS +^FT257,53^A0N,20,19^FH\^FD{lot}^FS +^FT257,184^A0N,17,16^FH\^FD{partnum}^FS +^FT258,131^A0N,20,19^FH\^FD{rid}^FS +^FT257,104^A0N,20,19^FH\^FD{qty}^FS +^FO207,162^GB303,0,4^FS +^FO207,135^GB303,0,4^FS +^FT211,158^A0N,20,19^FH\^FDDate^FS +^FT258,158^A0N,20,19^FH\^FD{mfg}^FS +^FT212,183^A0N,17,16^FH\^FDPN#^FS +^FT212,79^A0N,20,19^FH\^FDSPY^FS +^FT256,79^A0N,20,19^FH\^FD{supply}^FS +^PQ1,0,1,Y^XZ + + + + + + + + + + + + + + + diff --git a/Handler/Project/fMain.Designer.cs b/Handler/Project/fMain.Designer.cs new file mode 100644 index 0000000..b996ac8 --- /dev/null +++ b/Handler/Project/fMain.Designer.cs @@ -0,0 +1,5381 @@ +namespace Project +{ + partial class FMain + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle24 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle13 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle14 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle15 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle16 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle17 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle18 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle19 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle20 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle21 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle22 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle23 = new System.Windows.Forms.DataGridViewCellStyle(); + arFrame.Control.ColorListItem colorListItem13 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem14 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem15 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem16 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem17 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem18 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem19 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem20 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem21 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem22 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem23 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem24 = new arFrame.Control.ColorListItem(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FMain)); + arCtl.sLogMessageColor sLogMessageColor5 = new arCtl.sLogMessageColor(); + arCtl.sLogMessageColor sLogMessageColor6 = new arCtl.sLogMessageColor(); + arCtl.sLogMessageColor sLogMessageColor7 = new arCtl.sLogMessageColor(); + arCtl.sLogMessageColor sLogMessageColor8 = new arCtl.sLogMessageColor(); + UIControl.CPicker cPicker3 = new UIControl.CPicker(); + UIControl.CPicker cPicker4 = new UIControl.CPicker(); + UIControl.CPort cPort4 = new UIControl.CPort(); + UIControl.CPort cPort5 = new UIControl.CPort(); + UIControl.CPort cPort6 = new UIControl.CPort(); + arCtl.ListView2.ColorData colorData9 = new arCtl.ListView2.ColorData(); + arCtl.ListView2.ColorData colorData10 = new arCtl.ListView2.ColorData(); + arCtl.ListView2.ColorData colorData11 = new arCtl.ListView2.ColorData(); + arCtl.ListView2.ColorData colorData12 = new arCtl.ListView2.ColorData(); + arCtl.ListView2.ColorData colorData13 = new arCtl.ListView2.ColorData(); + arCtl.ListView2.ColorData colorData14 = new arCtl.ListView2.ColorData(); + arCtl.ListView2.ColorData colorData15 = new arCtl.ListView2.ColorData(); + arCtl.ListView2.ColorData colorData16 = new arCtl.ListView2.ColorData(); + arCtl.ListView2.Column column8 = new arCtl.ListView2.Column(); + arCtl.ListView2.Column column9 = new arCtl.ListView2.Column(); + arCtl.ListView2.Column column10 = new arCtl.ListView2.Column(); + arCtl.ListView2.Column column11 = new arCtl.ListView2.Column(); + arCtl.ListView2.Column column12 = new arCtl.ListView2.Column(); + arCtl.ListView2.Column column13 = new arCtl.ListView2.Column(); + arCtl.ListView2.ItemStyle itemStyle3 = new arCtl.ListView2.ItemStyle(); + arCtl.ListView2.Row row17 = new arCtl.ListView2.Row(); + arCtl.ListView2.Cell cell97 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell98 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell99 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell100 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell101 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell102 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Row row18 = new arCtl.ListView2.Row(); + arCtl.ListView2.Cell cell103 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell104 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell105 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell106 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell107 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell108 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Row row19 = new arCtl.ListView2.Row(); + arCtl.ListView2.Cell cell109 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell110 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell111 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell112 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell113 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell114 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Row row20 = new arCtl.ListView2.Row(); + arCtl.ListView2.Cell cell115 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell116 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell117 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell118 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell119 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell120 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Row row21 = new arCtl.ListView2.Row(); + arCtl.ListView2.Cell cell121 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell122 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell123 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell124 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell125 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell126 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Row row22 = new arCtl.ListView2.Row(); + arCtl.ListView2.Cell cell127 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell128 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell129 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell130 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell131 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell132 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Row row23 = new arCtl.ListView2.Row(); + arCtl.ListView2.Cell cell133 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell134 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell135 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell136 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell137 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell138 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Row row24 = new arCtl.ListView2.Row(); + arCtl.ListView2.Cell cell139 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell140 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell141 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell142 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell143 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell144 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Row row25 = new arCtl.ListView2.Row(); + arCtl.ListView2.Cell cell145 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell146 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell147 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell148 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell149 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell150 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Row row26 = new arCtl.ListView2.Row(); + arCtl.ListView2.Cell cell151 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell152 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell153 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell154 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell155 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell156 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Row row27 = new arCtl.ListView2.Row(); + arCtl.ListView2.Cell cell157 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell158 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell159 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell160 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell161 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell162 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Row row28 = new arCtl.ListView2.Row(); + arCtl.ListView2.Cell cell163 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell164 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell165 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell166 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell167 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell168 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Row row29 = new arCtl.ListView2.Row(); + arCtl.ListView2.Cell cell169 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell170 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell171 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell172 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell173 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell174 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Row row30 = new arCtl.ListView2.Row(); + arCtl.ListView2.Cell cell175 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell176 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell177 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell178 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell179 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell180 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Row row31 = new arCtl.ListView2.Row(); + arCtl.ListView2.Cell cell181 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell182 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell183 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell184 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell185 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell186 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Row row32 = new arCtl.ListView2.Row(); + arCtl.ListView2.Cell cell187 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell188 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell189 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell190 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell191 = new arCtl.ListView2.Cell(); + arCtl.ListView2.Cell cell192 = new arCtl.ListView2.Cell(); + arCtl.ListView2.ItemStyle itemStyle4 = new arCtl.ListView2.ItemStyle(); + this.tmDisplay = new System.Windows.Forms.Timer(this.components); + this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); + this.arLabel76 = new arCtl.arLabel(); + this.arLabel74 = new arCtl.arLabel(); + this.arLabel75 = new arCtl.arLabel(); + this.arLabel73 = new arCtl.arLabel(); + this.arLabel11 = new arCtl.arLabel(); + this.arLabel6 = new arCtl.arLabel(); + this.lbMsg = new arCtl.arLabel(); + this.lbTime = new arCtl.arLabel(); + this.btStart = new arCtl.arLabel(); + this.btReset = new arCtl.arLabel(); + this.btStop = new arCtl.arLabel(); + this.systemParameterToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem9 = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem4 = new System.Windows.Forms.ToolStripSeparator(); + this.demoRunToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); + this.panBottom = new System.Windows.Forms.Panel(); + this.arDatagridView1 = new arCtl.arDatagridView(); + this.target = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.JTYPE = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.sTIMEDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.PTIME = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.sIDDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.rIDDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.VNAME = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dvc_loc = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.qTYDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.qtymax = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.MFGDATE = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.VLOT = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.PNO = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.MCN = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.PRNATTACH = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.PRNVALID = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.LOC = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.SID0 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.RID0 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.QTY0 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.ETIME = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.JGUID = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.GUID = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); + this.새로고침ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.bs = new System.Windows.Forms.BindingSource(this.components); + this.dataSet1 = new Project.DataSet1(); + this.cmCam = new System.Windows.Forms.ContextMenuStrip(this.components); + this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem(); + this.liveViewProcessOnOffToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.zoomFitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.readBarcodeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.livetaskToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator(); + this.keyenceTrigOnToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.keyenceTrigOffToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.keyenceSaveImageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem5 = new System.Windows.Forms.ToolStripSeparator(); + this.panel37 = new System.Windows.Forms.Panel(); + this.lbLock2 = new arCtl.arLabel(); + this.panel10 = new System.Windows.Forms.Panel(); + this.lbLock1 = new arCtl.arLabel(); + this.panel15 = new System.Windows.Forms.Panel(); + this.lbLock0 = new arCtl.arLabel(); + this.cmBarcode = new System.Windows.Forms.ContextMenuStrip(this.components); + this.toolStripMenuItem22 = new System.Windows.Forms.ToolStripMenuItem(); + this.cmDebug = new System.Windows.Forms.ContextMenuStrip(this.components); + this.inboundToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.postDataToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.manualPrintToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.apiCheckToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.apiCheck2activeLiToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.barcodeTestToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.testToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.countToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.motionEmulatorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.customerRuleToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.sMResetToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.systemParameterMotorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.regExTestToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.debugModeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.sendMailToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem8 = new System.Windows.Forms.ToolStripSeparator(); + this.dIOMonitorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.refreshControklToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.작업선택화면ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.historyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.testToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.detectCountToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.menusToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.sampleToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.clearToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.screenToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.jOBStartToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.jObEndToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.motionParameterToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.axis0ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.axis1ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.axis2ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.axis3ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.axis4ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.processListToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem7 = new System.Windows.Forms.ToolStripSeparator(); + this.visionProcess0ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.visionProcess1ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.speedLimitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem10 = new System.Windows.Forms.ToolStripSeparator(); + this.bcdRegProcessClearToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.displayVARToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem16 = new System.Windows.Forms.ToolStripSeparator(); + this.getImageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.idxDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.stripIdDataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.oKDataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.nGDataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.mISSDataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.fileMapDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataPathDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.mapOriginDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.mapArrayDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.testmenuToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.panStatusBar = new System.Windows.Forms.Panel(); + this.panel3 = new System.Windows.Forms.Panel(); + this.IOState = new arFrame.Control.GridView(); + this.HWState = new arFrame.Control.GridView(); + this.panTopMenu = new System.Windows.Forms.ToolStrip(); + this.toolStripLabel2 = new System.Windows.Forms.ToolStripLabel(); + this.toolStripButton7 = new System.Windows.Forms.ToolStripDropDownButton(); + this.모델선택ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.btModelMot = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem12 = new System.Windows.Forms.ToolStripSeparator(); + this.바코드룰ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.프린트룰ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.sID정보ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.프로그램열기ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.인바운드데이터업데이트ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripButton23 = new System.Windows.Forms.ToolStripButton(); + this.toolStripSeparator8 = new System.Windows.Forms.ToolStripSeparator(); + this.btSetting = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton8 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton9 = new System.Windows.Forms.ToolStripButton(); + this.btMReset = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton16 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton11 = new System.Windows.Forms.ToolStripDropDownButton(); + this.toolStripMenuItem11 = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem13 = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem14 = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem15 = new System.Windows.Forms.ToolStripMenuItem(); + this.btLogViewer = new System.Windows.Forms.ToolStripButton(); + this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripButton6 = new System.Windows.Forms.ToolStripSplitButton(); + this.sWPLCToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripButton10 = new System.Windows.Forms.ToolStripDropDownButton(); + this.btManage = new System.Windows.Forms.ToolStripMenuItem(); + this.빠른실행ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.btLightRoom = new System.Windows.Forms.ToolStripButton(); + this.toolStripSeparator9 = new System.Windows.Forms.ToolStripSeparator(); + this.btJobCancle = new System.Windows.Forms.ToolStripButton(); + this.btDebug = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton15 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton3 = new System.Windows.Forms.ToolStripDropDownButton(); + this.바코드LToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.연결ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem26 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripMenuItem21 = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem24 = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem6 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripMenuItem28 = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem30 = new System.Windows.Forms.ToolStripMenuItem(); + this.바코드키엔스ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem17 = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem18 = new System.Windows.Forms.ToolStripSeparator(); + this.triggerOnToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.triggerOffToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem19 = new System.Windows.Forms.ToolStripSeparator(); + this.connectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.disConnectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem20 = new System.Windows.Forms.ToolStripSeparator(); + this.resetToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.webManagerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripButton12 = new System.Windows.Forms.ToolStripButton(); + this.panel24 = new System.Windows.Forms.Panel(); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.groupBox5 = new System.Windows.Forms.GroupBox(); + this.RtLog = new arCtl.LogTextBox(); + this.panel25 = new System.Windows.Forms.Panel(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); + this.panel26 = new System.Windows.Forms.Panel(); + this.grpProgress = new System.Windows.Forms.GroupBox(); + this.tableLayoutPanel5 = new System.Windows.Forms.TableLayoutPanel(); + this.label1 = new System.Windows.Forms.Label(); + this.lbCntLeft = new arCtl.arLabel(); + this.lbCntRight = new arCtl.arLabel(); + this.lbTitleNG = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.lbCntPicker = new arCtl.arLabel(); + this.panel27 = new System.Windows.Forms.Panel(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); + this.tbVisionL = new arCtl.arLabel(); + this.label5 = new System.Windows.Forms.Label(); + this.tbBarcodeR = new arCtl.arLabel(); + this.label6 = new System.Windows.Forms.Label(); + this.tbVisionR = new arCtl.arLabel(); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.tbBarcodeF = new arCtl.arLabel(); + this.panel28 = new System.Windows.Forms.Panel(); + this.groupBox4 = new System.Windows.Forms.GroupBox(); + this.keyenceviewR = new System.Windows.Forms.PictureBox(); + this.keyenceviewF = new System.Windows.Forms.PictureBox(); + this.groupBox3 = new System.Windows.Forms.GroupBox(); + this.lbModelName = new arCtl.arLabel(); + this.arLabel1 = new arCtl.arLabel(); + this.panel9 = new System.Windows.Forms.Panel(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.panel1 = new System.Windows.Forms.Panel(); + this.hmi1 = new UIControl.HMI(); + this.listView21 = new arCtl.ListView2(); + this.ta = new Project.DataSet1TableAdapters.Component_Reel_ResultTableAdapter(); + this.toolStripButton1 = new System.Windows.Forms.ToolStripButton(); + this.panBottom.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.arDatagridView1)).BeginInit(); + this.contextMenuStrip1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.bs)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).BeginInit(); + this.cmCam.SuspendLayout(); + this.panel37.SuspendLayout(); + this.panel10.SuspendLayout(); + this.panel15.SuspendLayout(); + this.cmBarcode.SuspendLayout(); + this.cmDebug.SuspendLayout(); + this.panStatusBar.SuspendLayout(); + this.panel3.SuspendLayout(); + this.panTopMenu.SuspendLayout(); + this.panel24.SuspendLayout(); + this.tabControl1.SuspendLayout(); + this.tabPage1.SuspendLayout(); + this.groupBox5.SuspendLayout(); + this.groupBox1.SuspendLayout(); + this.tableLayoutPanel3.SuspendLayout(); + this.grpProgress.SuspendLayout(); + this.tableLayoutPanel5.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.tableLayoutPanel4.SuspendLayout(); + this.groupBox4.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.keyenceviewR)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.keyenceviewF)).BeginInit(); + this.groupBox3.SuspendLayout(); + this.panel9.SuspendLayout(); + this.tableLayoutPanel1.SuspendLayout(); + this.panel1.SuspendLayout(); + this.SuspendLayout(); + // + // tmDisplay + // + this.tmDisplay.Interval = 150; + this.tmDisplay.Tick += new System.EventHandler(this._DisplayTimer); + // + // arLabel76 + // + this.arLabel76.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel76.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel76.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel76.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.arLabel76.BorderColorOver = System.Drawing.Color.DarkBlue; + this.arLabel76.BorderSize = new System.Windows.Forms.Padding(0); + this.arLabel76.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel76.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel76.Dock = System.Windows.Forms.DockStyle.Right; + this.arLabel76.Font = new System.Drawing.Font("Consolas", 35.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel76.ForeColor = System.Drawing.Color.Red; + this.arLabel76.GradientEnable = true; + this.arLabel76.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arLabel76.GradientRepeatBG = false; + this.arLabel76.isButton = true; + this.arLabel76.Location = new System.Drawing.Point(206, 1); + this.arLabel76.Margin = new System.Windows.Forms.Padding(0); + this.arLabel76.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel76.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel76.msg = null; + this.arLabel76.Name = "arLabel76"; + this.arLabel76.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel76.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel76.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel76.ProgressEnable = false; + this.arLabel76.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel76.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel76.ProgressMax = 100F; + this.arLabel76.ProgressMin = 0F; + this.arLabel76.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel76.ProgressValue = 0F; + this.arLabel76.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel76.Sign = ""; + this.arLabel76.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel76.SignColor = System.Drawing.Color.Yellow; + this.arLabel76.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel76.Size = new System.Drawing.Size(100, 54); + this.arLabel76.TabIndex = 18; + this.arLabel76.Tag = "2"; + this.arLabel76.Text = "▲"; + this.arLabel76.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel76.TextShadow = true; + this.arLabel76.TextVisible = true; + this.toolTip1.SetToolTip(this.arLabel76, "포트 올림"); + this.arLabel76.Click += new System.EventHandler(this.arLabel11_Click_1); + // + // arLabel74 + // + this.arLabel74.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel74.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel74.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel74.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.arLabel74.BorderColorOver = System.Drawing.Color.DarkBlue; + this.arLabel74.BorderSize = new System.Windows.Forms.Padding(0); + this.arLabel74.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel74.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel74.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel74.Font = new System.Drawing.Font("Consolas", 35.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel74.ForeColor = System.Drawing.Color.Blue; + this.arLabel74.GradientEnable = true; + this.arLabel74.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arLabel74.GradientRepeatBG = false; + this.arLabel74.isButton = true; + this.arLabel74.Location = new System.Drawing.Point(1, 1); + this.arLabel74.Margin = new System.Windows.Forms.Padding(0); + this.arLabel74.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel74.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel74.msg = null; + this.arLabel74.Name = "arLabel74"; + this.arLabel74.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel74.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel74.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel74.ProgressEnable = false; + this.arLabel74.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel74.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel74.ProgressMax = 100F; + this.arLabel74.ProgressMin = 0F; + this.arLabel74.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel74.ProgressValue = 0F; + this.arLabel74.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel74.Sign = ""; + this.arLabel74.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel74.SignColor = System.Drawing.Color.Yellow; + this.arLabel74.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel74.Size = new System.Drawing.Size(100, 54); + this.arLabel74.TabIndex = 17; + this.arLabel74.Tag = "2"; + this.arLabel74.Text = "▼"; + this.arLabel74.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel74.TextShadow = true; + this.arLabel74.TextVisible = true; + this.toolTip1.SetToolTip(this.arLabel74, "포트 내림"); + this.arLabel74.Click += new System.EventHandler(this.arLabel6_Click); + // + // arLabel75 + // + this.arLabel75.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel75.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel75.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel75.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.arLabel75.BorderColorOver = System.Drawing.Color.DarkBlue; + this.arLabel75.BorderSize = new System.Windows.Forms.Padding(0); + this.arLabel75.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel75.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel75.Dock = System.Windows.Forms.DockStyle.Right; + this.arLabel75.Font = new System.Drawing.Font("Consolas", 35.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel75.ForeColor = System.Drawing.Color.Red; + this.arLabel75.GradientEnable = true; + this.arLabel75.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arLabel75.GradientRepeatBG = false; + this.arLabel75.isButton = true; + this.arLabel75.Location = new System.Drawing.Point(204, 1); + this.arLabel75.Margin = new System.Windows.Forms.Padding(0); + this.arLabel75.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel75.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel75.msg = null; + this.arLabel75.Name = "arLabel75"; + this.arLabel75.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel75.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel75.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel75.ProgressEnable = false; + this.arLabel75.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel75.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel75.ProgressMax = 100F; + this.arLabel75.ProgressMin = 0F; + this.arLabel75.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel75.ProgressValue = 0F; + this.arLabel75.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel75.Sign = ""; + this.arLabel75.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel75.SignColor = System.Drawing.Color.Yellow; + this.arLabel75.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel75.Size = new System.Drawing.Size(100, 54); + this.arLabel75.TabIndex = 18; + this.arLabel75.Tag = "1"; + this.arLabel75.Text = "▲"; + this.arLabel75.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel75.TextShadow = true; + this.arLabel75.TextVisible = true; + this.toolTip1.SetToolTip(this.arLabel75, "포트 올림"); + this.arLabel75.Click += new System.EventHandler(this.arLabel11_Click_1); + // + // arLabel73 + // + this.arLabel73.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel73.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel73.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel73.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.arLabel73.BorderColorOver = System.Drawing.Color.DarkBlue; + this.arLabel73.BorderSize = new System.Windows.Forms.Padding(0); + this.arLabel73.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel73.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel73.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel73.Font = new System.Drawing.Font("Consolas", 35.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel73.ForeColor = System.Drawing.Color.Blue; + this.arLabel73.GradientEnable = true; + this.arLabel73.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arLabel73.GradientRepeatBG = false; + this.arLabel73.isButton = true; + this.arLabel73.Location = new System.Drawing.Point(1, 1); + this.arLabel73.Margin = new System.Windows.Forms.Padding(0); + this.arLabel73.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel73.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel73.msg = null; + this.arLabel73.Name = "arLabel73"; + this.arLabel73.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel73.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel73.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel73.ProgressEnable = false; + this.arLabel73.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel73.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel73.ProgressMax = 100F; + this.arLabel73.ProgressMin = 0F; + this.arLabel73.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel73.ProgressValue = 0F; + this.arLabel73.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel73.Sign = ""; + this.arLabel73.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel73.SignColor = System.Drawing.Color.Yellow; + this.arLabel73.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel73.Size = new System.Drawing.Size(100, 54); + this.arLabel73.TabIndex = 17; + this.arLabel73.Tag = "1"; + this.arLabel73.Text = "▼"; + this.arLabel73.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel73.TextShadow = true; + this.arLabel73.TextVisible = true; + this.toolTip1.SetToolTip(this.arLabel73, "포트 내림"); + this.arLabel73.Click += new System.EventHandler(this.arLabel6_Click); + // + // arLabel11 + // + this.arLabel11.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel11.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel11.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel11.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.arLabel11.BorderColorOver = System.Drawing.Color.DarkBlue; + this.arLabel11.BorderSize = new System.Windows.Forms.Padding(0); + this.arLabel11.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel11.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel11.Dock = System.Windows.Forms.DockStyle.Right; + this.arLabel11.Font = new System.Drawing.Font("Consolas", 35.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel11.ForeColor = System.Drawing.Color.Red; + this.arLabel11.GradientEnable = true; + this.arLabel11.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arLabel11.GradientRepeatBG = false; + this.arLabel11.isButton = true; + this.arLabel11.Location = new System.Drawing.Point(204, 1); + this.arLabel11.Margin = new System.Windows.Forms.Padding(0); + this.arLabel11.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel11.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel11.msg = null; + this.arLabel11.Name = "arLabel11"; + this.arLabel11.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel11.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel11.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel11.ProgressEnable = false; + this.arLabel11.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel11.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel11.ProgressMax = 100F; + this.arLabel11.ProgressMin = 0F; + this.arLabel11.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel11.ProgressValue = 0F; + this.arLabel11.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel11.Sign = ""; + this.arLabel11.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel11.SignColor = System.Drawing.Color.Yellow; + this.arLabel11.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel11.Size = new System.Drawing.Size(100, 54); + this.arLabel11.TabIndex = 17; + this.arLabel11.Tag = "0"; + this.arLabel11.Text = "▲"; + this.arLabel11.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel11.TextShadow = true; + this.arLabel11.TextVisible = true; + this.toolTip1.SetToolTip(this.arLabel11, "포트 올림"); + this.arLabel11.Click += new System.EventHandler(this.arLabel11_Click_1); + // + // arLabel6 + // + this.arLabel6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel6.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel6.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel6.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.arLabel6.BorderColorOver = System.Drawing.Color.DarkBlue; + this.arLabel6.BorderSize = new System.Windows.Forms.Padding(0); + this.arLabel6.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel6.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel6.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel6.Font = new System.Drawing.Font("Consolas", 35.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel6.ForeColor = System.Drawing.Color.Blue; + this.arLabel6.GradientEnable = true; + this.arLabel6.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arLabel6.GradientRepeatBG = false; + this.arLabel6.isButton = true; + this.arLabel6.Location = new System.Drawing.Point(1, 1); + this.arLabel6.Margin = new System.Windows.Forms.Padding(0); + this.arLabel6.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel6.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel6.msg = null; + this.arLabel6.Name = "arLabel6"; + this.arLabel6.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel6.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel6.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel6.ProgressEnable = false; + this.arLabel6.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel6.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel6.ProgressMax = 100F; + this.arLabel6.ProgressMin = 0F; + this.arLabel6.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel6.ProgressValue = 0F; + this.arLabel6.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel6.Sign = ""; + this.arLabel6.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel6.SignColor = System.Drawing.Color.Yellow; + this.arLabel6.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel6.Size = new System.Drawing.Size(100, 54); + this.arLabel6.TabIndex = 16; + this.arLabel6.Tag = "0"; + this.arLabel6.Text = "▼"; + this.arLabel6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel6.TextShadow = true; + this.arLabel6.TextVisible = true; + this.toolTip1.SetToolTip(this.arLabel6, "포트 내림"); + this.arLabel6.Click += new System.EventHandler(this.arLabel6_Click); + // + // lbMsg + // + this.lbMsg.BackColor = System.Drawing.Color.Tomato; + this.lbMsg.BackColor2 = System.Drawing.Color.Tomato; + this.lbMsg.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbMsg.BorderColor = System.Drawing.Color.Black; + this.lbMsg.BorderColorOver = System.Drawing.Color.DarkBlue; + this.lbMsg.BorderSize = new System.Windows.Forms.Padding(0); + this.lbMsg.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbMsg.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbMsg.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbMsg.Font = new System.Drawing.Font("맑은 고딕", 20F); + this.lbMsg.ForeColor = System.Drawing.Color.White; + this.lbMsg.GradientEnable = true; + this.lbMsg.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbMsg.GradientRepeatBG = false; + this.lbMsg.isButton = false; + this.lbMsg.Location = new System.Drawing.Point(0, 0); + this.lbMsg.MouseDownColor = System.Drawing.Color.Yellow; + this.lbMsg.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbMsg.msg = null; + this.lbMsg.Name = "lbMsg"; + this.lbMsg.ProgressBorderColor = System.Drawing.Color.Transparent; + this.lbMsg.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbMsg.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbMsg.ProgressEnable = false; + this.lbMsg.ProgressFont = new System.Drawing.Font("맑은 고딕", 20F); + this.lbMsg.ProgressForeColor = System.Drawing.Color.White; + this.lbMsg.ProgressMax = 100F; + this.lbMsg.ProgressMin = 0F; + this.lbMsg.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbMsg.ProgressValue = 0F; + this.lbMsg.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lbMsg.Sign = ""; + this.lbMsg.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbMsg.SignColor = System.Drawing.Color.Yellow; + this.lbMsg.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbMsg.Size = new System.Drawing.Size(917, 42); + this.lbMsg.TabIndex = 1; + this.lbMsg.Text = "--"; + this.lbMsg.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbMsg.TextShadow = true; + this.lbMsg.TextVisible = true; + this.toolTip1.SetToolTip(this.lbMsg, "작업메세지"); + this.lbMsg.Click += new System.EventHandler(this.lbMsg_Click); + // + // lbTime + // + this.lbTime.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); + this.lbTime.BackColor2 = System.Drawing.Color.Empty; + this.lbTime.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbTime.BorderColor = System.Drawing.Color.Red; + this.lbTime.BorderColorOver = System.Drawing.Color.Red; + this.lbTime.BorderSize = new System.Windows.Forms.Padding(0); + this.lbTime.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.tableLayoutPanel3.SetColumnSpan(this.lbTime, 3); + this.lbTime.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbTime.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbTime.Font = new System.Drawing.Font("Cambria", 13F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbTime.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); + this.lbTime.GradientEnable = true; + this.lbTime.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lbTime.GradientRepeatBG = false; + this.lbTime.isButton = false; + this.lbTime.Location = new System.Drawing.Point(0, 73); + this.lbTime.Margin = new System.Windows.Forms.Padding(0); + this.lbTime.MouseDownColor = System.Drawing.Color.Yellow; + this.lbTime.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbTime.msg = null; + this.lbTime.Name = "lbTime"; + this.lbTime.ProgressBorderColor = System.Drawing.Color.Black; + this.lbTime.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbTime.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbTime.ProgressEnable = false; + this.lbTime.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbTime.ProgressForeColor = System.Drawing.Color.Black; + this.lbTime.ProgressMax = 100F; + this.lbTime.ProgressMin = 0F; + this.lbTime.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbTime.ProgressValue = 0F; + this.lbTime.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.lbTime.Sign = ""; + this.lbTime.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbTime.SignColor = System.Drawing.Color.Yellow; + this.lbTime.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbTime.Size = new System.Drawing.Size(305, 25); + this.lbTime.TabIndex = 5; + this.lbTime.Text = "1982-11-23 00:00:00"; + this.lbTime.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbTime.TextShadow = false; + this.lbTime.TextVisible = true; + this.toolTip1.SetToolTip(this.lbTime, "현재 시간"); + // + // btStart + // + this.btStart.BackColor = System.Drawing.Color.Lime; + this.btStart.BackColor2 = System.Drawing.Color.Green; + this.btStart.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btStart.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btStart.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.btStart.BorderSize = new System.Windows.Forms.Padding(10); + this.btStart.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btStart.Cursor = System.Windows.Forms.Cursors.Hand; + this.btStart.Dock = System.Windows.Forms.DockStyle.Fill; + this.btStart.Enabled = false; + this.btStart.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btStart.ForeColor = System.Drawing.Color.WhiteSmoke; + this.btStart.GradientEnable = true; + this.btStart.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btStart.GradientRepeatBG = false; + this.btStart.isButton = true; + this.btStart.Location = new System.Drawing.Point(2, 2); + this.btStart.Margin = new System.Windows.Forms.Padding(2); + this.btStart.MouseDownColor = System.Drawing.Color.Yellow; + this.btStart.MouseOverColor = System.Drawing.Color.Lime; + this.btStart.msg = null; + this.btStart.Name = "btStart"; + this.btStart.ProgressBorderColor = System.Drawing.Color.Black; + this.btStart.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btStart.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btStart.ProgressEnable = false; + this.btStart.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btStart.ProgressForeColor = System.Drawing.Color.Black; + this.btStart.ProgressMax = 100F; + this.btStart.ProgressMin = 0F; + this.btStart.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btStart.ProgressValue = 0F; + this.btStart.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btStart.Sign = ""; + this.btStart.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btStart.SignColor = System.Drawing.Color.Yellow; + this.btStart.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btStart.Size = new System.Drawing.Size(97, 69); + this.btStart.TabIndex = 4; + this.btStart.Text = "시작"; + this.btStart.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btStart.TextShadow = true; + this.btStart.TextVisible = true; + this.toolTip1.SetToolTip(this.btStart, "장비를 시작 합니다. \r\n전면 하단의 \"START\" 버튼과 동일 합니다."); + this.btStart.Click += new System.EventHandler(this.arLabel2_Click_1); + // + // btReset + // + this.btReset.BackColor = System.Drawing.Color.Gold; + this.btReset.BackColor2 = System.Drawing.Color.Goldenrod; + this.btReset.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btReset.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btReset.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.btReset.BorderSize = new System.Windows.Forms.Padding(10); + this.btReset.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btReset.Cursor = System.Windows.Forms.Cursors.Hand; + this.btReset.Dock = System.Windows.Forms.DockStyle.Fill; + this.btReset.Enabled = false; + this.btReset.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btReset.ForeColor = System.Drawing.Color.WhiteSmoke; + this.btReset.GradientEnable = true; + this.btReset.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btReset.GradientRepeatBG = false; + this.btReset.isButton = true; + this.btReset.Location = new System.Drawing.Point(204, 2); + this.btReset.Margin = new System.Windows.Forms.Padding(2); + this.btReset.MouseDownColor = System.Drawing.Color.Yellow; + this.btReset.MouseOverColor = System.Drawing.Color.Gold; + this.btReset.msg = null; + this.btReset.Name = "btReset"; + this.btReset.ProgressBorderColor = System.Drawing.Color.Black; + this.btReset.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btReset.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btReset.ProgressEnable = false; + this.btReset.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btReset.ProgressForeColor = System.Drawing.Color.Black; + this.btReset.ProgressMax = 100F; + this.btReset.ProgressMin = 0F; + this.btReset.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btReset.ProgressValue = 0F; + this.btReset.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btReset.Sign = ""; + this.btReset.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btReset.SignColor = System.Drawing.Color.Yellow; + this.btReset.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btReset.Size = new System.Drawing.Size(99, 69); + this.btReset.TabIndex = 4; + this.btReset.Text = "리셋"; + this.btReset.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btReset.TextShadow = true; + this.btReset.TextVisible = true; + this.toolTip1.SetToolTip(this.btReset, "발생된 오류 상태를 초기화 합니다.\r\n전면 하단의 \"RESET\" 버튼과 동일 합니다.\r\n부저OFF기능도 담당합니다."); + this.btReset.Click += new System.EventHandler(this.btReset_Click); + // + // btStop + // + this.btStop.BackColor = System.Drawing.Color.Tomato; + this.btStop.BackColor2 = System.Drawing.Color.Red; + this.btStop.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btStop.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btStop.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.btStop.BorderSize = new System.Windows.Forms.Padding(10); + this.btStop.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btStop.Cursor = System.Windows.Forms.Cursors.Hand; + this.btStop.Dock = System.Windows.Forms.DockStyle.Fill; + this.btStop.Enabled = false; + this.btStop.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btStop.ForeColor = System.Drawing.Color.WhiteSmoke; + this.btStop.GradientEnable = true; + this.btStop.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btStop.GradientRepeatBG = false; + this.btStop.isButton = true; + this.btStop.Location = new System.Drawing.Point(103, 2); + this.btStop.Margin = new System.Windows.Forms.Padding(2); + this.btStop.MouseDownColor = System.Drawing.Color.Yellow; + this.btStop.MouseOverColor = System.Drawing.Color.Tomato; + this.btStop.msg = null; + this.btStop.Name = "btStop"; + this.btStop.ProgressBorderColor = System.Drawing.Color.Black; + this.btStop.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btStop.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btStop.ProgressEnable = false; + this.btStop.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btStop.ProgressForeColor = System.Drawing.Color.Black; + this.btStop.ProgressMax = 100F; + this.btStop.ProgressMin = 0F; + this.btStop.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btStop.ProgressValue = 0F; + this.btStop.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btStop.Sign = ""; + this.btStop.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btStop.SignColor = System.Drawing.Color.Yellow; + this.btStop.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btStop.Size = new System.Drawing.Size(97, 69); + this.btStop.TabIndex = 4; + this.btStop.Text = "중지"; + this.btStop.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btStop.TextShadow = true; + this.btStop.TextVisible = true; + this.toolTip1.SetToolTip(this.btStop, "장비의 동작을 중지 합니다. \r\n전면 하단의 \"STOP\" 버튼과 동일 합니다.\r\n모션이 이동중에 추가로 누르면 모션도 정지 합니다.\r\n(단 모션" + + " 정지시에는 재시작할 수 없으며 원점 및 초기화후에 다시 작업을 시작 하세요)"); + this.btStop.Click += new System.EventHandler(this.arLabel4_Click_1); + // + // systemParameterToolStripMenuItem + // + this.systemParameterToolStripMenuItem.Font = new System.Drawing.Font("Cambria", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.systemParameterToolStripMenuItem.Name = "systemParameterToolStripMenuItem"; + this.systemParameterToolStripMenuItem.Size = new System.Drawing.Size(253, 22); + this.systemParameterToolStripMenuItem.Text = "System Parameter"; + this.systemParameterToolStripMenuItem.Click += new System.EventHandler(this.systemParameterToolStripMenuItem_Click); + // + // toolStripMenuItem9 + // + this.toolStripMenuItem9.Font = new System.Drawing.Font("Cambria", 10F, System.Drawing.FontStyle.Bold); + this.toolStripMenuItem9.Name = "toolStripMenuItem9"; + this.toolStripMenuItem9.Size = new System.Drawing.Size(253, 22); + this.toolStripMenuItem9.Text = "Show Log"; + this.toolStripMenuItem9.Click += new System.EventHandler(this.toolStripMenuItem9_Click); + // + // toolStripMenuItem4 + // + this.toolStripMenuItem4.Name = "toolStripMenuItem4"; + this.toolStripMenuItem4.Size = new System.Drawing.Size(250, 6); + // + // demoRunToolStripMenuItem + // + this.demoRunToolStripMenuItem.Font = new System.Drawing.Font("Cambria", 10F, System.Drawing.FontStyle.Bold); + this.demoRunToolStripMenuItem.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(0))))); + this.demoRunToolStripMenuItem.Name = "demoRunToolStripMenuItem"; + this.demoRunToolStripMenuItem.Size = new System.Drawing.Size(253, 22); + this.demoRunToolStripMenuItem.Text = "save data test"; + this.demoRunToolStripMenuItem.Click += new System.EventHandler(this.demoRunToolStripMenuItem_Click); + // + // toolStripMenuItem1 + // + this.toolStripMenuItem1.Name = "toolStripMenuItem1"; + this.toolStripMenuItem1.Size = new System.Drawing.Size(250, 6); + // + // panBottom + // + this.panBottom.Controls.Add(this.arDatagridView1); + this.panBottom.Dock = System.Windows.Forms.DockStyle.Fill; + this.panBottom.Location = new System.Drawing.Point(1, 549); + this.panBottom.Name = "panBottom"; + this.panBottom.Size = new System.Drawing.Size(917, 389); + this.panBottom.TabIndex = 3; + // + // arDatagridView1 + // + this.arDatagridView1.A_DelCurrentCell = true; + this.arDatagridView1.A_EnterToTab = true; + this.arDatagridView1.A_KoreanField = null; + this.arDatagridView1.A_UpperField = null; + this.arDatagridView1.A_ViewRownumOnHeader = true; + this.arDatagridView1.AllowUserToAddRows = false; + this.arDatagridView1.AllowUserToDeleteRows = false; + this.arDatagridView1.AutoGenerateColumns = false; + this.arDatagridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; + this.arDatagridView1.BackgroundColor = System.Drawing.SystemColors.Control; + this.arDatagridView1.ColumnHeadersHeight = 30; + this.arDatagridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing; + this.arDatagridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.target, + this.JTYPE, + this.sTIMEDataGridViewTextBoxColumn, + this.PTIME, + this.sIDDataGridViewTextBoxColumn, + this.rIDDataGridViewTextBoxColumn, + this.VNAME, + this.dvc_loc, + this.qTYDataGridViewTextBoxColumn, + this.qtymax, + this.MFGDATE, + this.VLOT, + this.PNO, + this.MCN, + this.Column1, + this.PRNATTACH, + this.PRNVALID, + this.LOC, + this.SID0, + this.RID0, + this.QTY0, + this.ETIME, + this.JGUID, + this.GUID}); + this.arDatagridView1.ContextMenuStrip = this.contextMenuStrip1; + this.arDatagridView1.DataSource = this.bs; + dataGridViewCellStyle24.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle24.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle24.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle24.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle24.Padding = new System.Windows.Forms.Padding(2); + dataGridViewCellStyle24.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle24.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle24.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.arDatagridView1.DefaultCellStyle = dataGridViewCellStyle24; + this.arDatagridView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.arDatagridView1.Location = new System.Drawing.Point(0, 0); + this.arDatagridView1.Name = "arDatagridView1"; + this.arDatagridView1.ReadOnly = true; + this.arDatagridView1.RowTemplate.Height = 23; + this.arDatagridView1.Size = new System.Drawing.Size(917, 389); + this.arDatagridView1.TabIndex = 6; + this.arDatagridView1.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.arDatagridView1_CellContentClick); + this.arDatagridView1.DataError += new System.Windows.Forms.DataGridViewDataErrorEventHandler(this.arDatagridView1_DataError); + // + // target + // + this.target.DataPropertyName = "target"; + this.target.HeaderText = "R"; + this.target.Name = "target"; + this.target.ReadOnly = true; + this.target.Width = 45; + // + // JTYPE + // + this.JTYPE.DataPropertyName = "JTYPE"; + this.JTYPE.HeaderText = "MODEL"; + this.JTYPE.Name = "JTYPE"; + this.JTYPE.ReadOnly = true; + this.JTYPE.Width = 81; + // + // sTIMEDataGridViewTextBoxColumn + // + this.sTIMEDataGridViewTextBoxColumn.DataPropertyName = "STIME"; + dataGridViewCellStyle13.Format = "HH:mm:ss"; + this.sTIMEDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle13; + this.sTIMEDataGridViewTextBoxColumn.HeaderText = "START"; + this.sTIMEDataGridViewTextBoxColumn.Name = "sTIMEDataGridViewTextBoxColumn"; + this.sTIMEDataGridViewTextBoxColumn.ReadOnly = true; + this.sTIMEDataGridViewTextBoxColumn.Width = 74; + // + // PTIME + // + this.PTIME.DataPropertyName = "BATCH"; + dataGridViewCellStyle14.Format = "HH:mm:ss"; + this.PTIME.DefaultCellStyle = dataGridViewCellStyle14; + this.PTIME.HeaderText = "BATCH"; + this.PTIME.Name = "PTIME"; + this.PTIME.ReadOnly = true; + this.PTIME.Width = 77; + // + // sIDDataGridViewTextBoxColumn + // + this.sIDDataGridViewTextBoxColumn.DataPropertyName = "SID"; + dataGridViewCellStyle15.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.sIDDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle15; + this.sIDDataGridViewTextBoxColumn.HeaderText = "SID"; + this.sIDDataGridViewTextBoxColumn.Name = "sIDDataGridViewTextBoxColumn"; + this.sIDDataGridViewTextBoxColumn.ReadOnly = true; + this.sIDDataGridViewTextBoxColumn.Width = 57; + // + // rIDDataGridViewTextBoxColumn + // + this.rIDDataGridViewTextBoxColumn.DataPropertyName = "RID"; + dataGridViewCellStyle16.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle16.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.rIDDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle16; + this.rIDDataGridViewTextBoxColumn.HeaderText = "RID"; + this.rIDDataGridViewTextBoxColumn.Name = "rIDDataGridViewTextBoxColumn"; + this.rIDDataGridViewTextBoxColumn.ReadOnly = true; + this.rIDDataGridViewTextBoxColumn.Width = 58; + // + // VNAME + // + this.VNAME.DataPropertyName = "VNAME"; + dataGridViewCellStyle17.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + this.VNAME.DefaultCellStyle = dataGridViewCellStyle17; + this.VNAME.HeaderText = "VENDER"; + this.VNAME.Name = "VNAME"; + this.VNAME.ReadOnly = true; + this.VNAME.Width = 87; + // + // dvc_loc + // + this.dvc_loc.DataPropertyName = "LOC"; + this.dvc_loc.HeaderText = "LOC"; + this.dvc_loc.Name = "dvc_loc"; + this.dvc_loc.ReadOnly = true; + this.dvc_loc.Visible = false; + this.dvc_loc.Width = 55; + // + // qTYDataGridViewTextBoxColumn + // + this.qTYDataGridViewTextBoxColumn.DataPropertyName = "QTY"; + this.qTYDataGridViewTextBoxColumn.HeaderText = "QTY"; + this.qTYDataGridViewTextBoxColumn.Name = "qTYDataGridViewTextBoxColumn"; + this.qTYDataGridViewTextBoxColumn.ReadOnly = true; + this.qTYDataGridViewTextBoxColumn.Width = 61; + // + // qtymax + // + this.qtymax.DataPropertyName = "qtymax"; + this.qtymax.HeaderText = "(MAX)"; + this.qtymax.Name = "qtymax"; + this.qtymax.ReadOnly = true; + this.qtymax.Width = 76; + // + // MFGDATE + // + this.MFGDATE.DataPropertyName = "MFGDATE"; + dataGridViewCellStyle18.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + this.MFGDATE.DefaultCellStyle = dataGridViewCellStyle18; + this.MFGDATE.HeaderText = "MFGDATE"; + this.MFGDATE.Name = "MFGDATE"; + this.MFGDATE.ReadOnly = true; + this.MFGDATE.Width = 96; + // + // VLOT + // + this.VLOT.DataPropertyName = "VLOT"; + this.VLOT.HeaderText = "VENDER LOT"; + this.VLOT.Name = "VLOT"; + this.VLOT.ReadOnly = true; + this.VLOT.Width = 113; + // + // PNO + // + this.PNO.DataPropertyName = "PARTNO"; + this.PNO.HeaderText = "PARTNO"; + this.PNO.Name = "PNO"; + this.PNO.ReadOnly = true; + this.PNO.Width = 88; + // + // MCN + // + this.MCN.DataPropertyName = "MCN"; + this.MCN.HeaderText = "CPN"; + this.MCN.Name = "MCN"; + this.MCN.ReadOnly = true; + this.MCN.Width = 63; + // + // Column1 + // + this.Column1.DataPropertyName = "REMARK"; + dataGridViewCellStyle19.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + this.Column1.DefaultCellStyle = dataGridViewCellStyle19; + this.Column1.HeaderText = "비고"; + this.Column1.Name = "Column1"; + this.Column1.ReadOnly = true; + this.Column1.Width = 59; + // + // PRNATTACH + // + this.PRNATTACH.DataPropertyName = "PRNATTACH"; + this.PRNATTACH.HeaderText = "부착"; + this.PRNATTACH.Name = "PRNATTACH"; + this.PRNATTACH.ReadOnly = true; + this.PRNATTACH.Width = 40; + // + // PRNVALID + // + this.PRNVALID.DataPropertyName = "PRNVALID"; + this.PRNVALID.HeaderText = "검증"; + this.PRNVALID.Name = "PRNVALID"; + this.PRNVALID.ReadOnly = true; + this.PRNVALID.Width = 40; + // + // LOC + // + this.LOC.DataPropertyName = "LOC"; + this.LOC.HeaderText = "L/R"; + this.LOC.Name = "LOC"; + this.LOC.ReadOnly = true; + this.LOC.Width = 57; + // + // SID0 + // + this.SID0.DataPropertyName = "SID0"; + dataGridViewCellStyle20.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(221)))), ((int)(((byte)(242))))); + this.SID0.DefaultCellStyle = dataGridViewCellStyle20; + this.SID0.HeaderText = "SID(ORG)"; + this.SID0.Name = "SID0"; + this.SID0.ReadOnly = true; + this.SID0.Width = 94; + // + // RID0 + // + this.RID0.DataPropertyName = "RID0"; + dataGridViewCellStyle21.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(221)))), ((int)(((byte)(242))))); + this.RID0.DefaultCellStyle = dataGridViewCellStyle21; + this.RID0.HeaderText = "RID(ORG)"; + this.RID0.Name = "RID0"; + this.RID0.ReadOnly = true; + this.RID0.Width = 95; + // + // QTY0 + // + this.QTY0.DataPropertyName = "QTY0"; + dataGridViewCellStyle22.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle22.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(121)))), ((int)(((byte)(221)))), ((int)(((byte)(242))))); + this.QTY0.DefaultCellStyle = dataGridViewCellStyle22; + this.QTY0.FillWeight = 55F; + this.QTY0.HeaderText = "QTY(ORG)"; + this.QTY0.Name = "QTY0"; + this.QTY0.ReadOnly = true; + this.QTY0.Width = 98; + // + // ETIME + // + this.ETIME.DataPropertyName = "ETIME"; + dataGridViewCellStyle23.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle23.Format = "mm:ss.fff"; + this.ETIME.DefaultCellStyle = dataGridViewCellStyle23; + this.ETIME.HeaderText = "END"; + this.ETIME.Name = "ETIME"; + this.ETIME.ReadOnly = true; + this.ETIME.Width = 63; + // + // JGUID + // + this.JGUID.DataPropertyName = "JGUID"; + this.JGUID.HeaderText = "JGUID"; + this.JGUID.Name = "JGUID"; + this.JGUID.ReadOnly = true; + this.JGUID.Width = 73; + // + // GUID + // + this.GUID.DataPropertyName = "GUID"; + this.GUID.HeaderText = "GUID"; + this.GUID.Name = "GUID"; + this.GUID.ReadOnly = true; + this.GUID.Width = 68; + // + // contextMenuStrip1 + // + this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.새로고침ToolStripMenuItem}); + this.contextMenuStrip1.Name = "contextMenuStrip1"; + this.contextMenuStrip1.Size = new System.Drawing.Size(123, 26); + // + // 새로고침ToolStripMenuItem + // + this.새로고침ToolStripMenuItem.Name = "새로고침ToolStripMenuItem"; + this.새로고침ToolStripMenuItem.Size = new System.Drawing.Size(122, 22); + this.새로고침ToolStripMenuItem.Text = "새로고침"; + this.새로고침ToolStripMenuItem.Click += new System.EventHandler(this.새로고침ToolStripMenuItem_Click_1); + // + // bs + // + this.bs.DataMember = "Component_Reel_Result"; + this.bs.DataSource = this.dataSet1; + this.bs.Sort = "STIME desc"; + // + // dataSet1 + // + this.dataSet1.DataSetName = "DataSet1"; + this.dataSet1.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + // + // cmCam + // + this.cmCam.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripMenuItem2, + this.liveViewProcessOnOffToolStripMenuItem, + this.zoomFitToolStripMenuItem, + this.readBarcodeToolStripMenuItem, + this.livetaskToolStripMenuItem, + this.toolStripMenuItem3, + this.keyenceTrigOnToolStripMenuItem, + this.keyenceTrigOffToolStripMenuItem, + this.keyenceSaveImageToolStripMenuItem, + this.toolStripMenuItem5}); + this.cmCam.Name = "cmLot1"; + this.cmCam.Size = new System.Drawing.Size(212, 192); + this.cmCam.Opening += new System.ComponentModel.CancelEventHandler(this.cmCam_Opening); + // + // toolStripMenuItem2 + // + this.toolStripMenuItem2.Name = "toolStripMenuItem2"; + this.toolStripMenuItem2.Size = new System.Drawing.Size(211, 22); + this.toolStripMenuItem2.Text = "Save Image"; + this.toolStripMenuItem2.Click += new System.EventHandler(this.toolStripMenuItem2_Click); + // + // liveViewProcessOnOffToolStripMenuItem + // + this.liveViewProcessOnOffToolStripMenuItem.Name = "liveViewProcessOnOffToolStripMenuItem"; + this.liveViewProcessOnOffToolStripMenuItem.Size = new System.Drawing.Size(211, 22); + this.liveViewProcessOnOffToolStripMenuItem.Text = "Live View Process On/Off"; + this.liveViewProcessOnOffToolStripMenuItem.Click += new System.EventHandler(this.liveViewProcessOnOffToolStripMenuItem_Click); + // + // zoomFitToolStripMenuItem + // + this.zoomFitToolStripMenuItem.Name = "zoomFitToolStripMenuItem"; + this.zoomFitToolStripMenuItem.Size = new System.Drawing.Size(211, 22); + this.zoomFitToolStripMenuItem.Text = "Zoom Fit"; + this.zoomFitToolStripMenuItem.Click += new System.EventHandler(this.zoomFitToolStripMenuItem_Click); + // + // readBarcodeToolStripMenuItem + // + this.readBarcodeToolStripMenuItem.Name = "readBarcodeToolStripMenuItem"; + this.readBarcodeToolStripMenuItem.Size = new System.Drawing.Size(211, 22); + this.readBarcodeToolStripMenuItem.Text = "Read Barcode"; + // + // livetaskToolStripMenuItem + // + this.livetaskToolStripMenuItem.Name = "livetaskToolStripMenuItem"; + this.livetaskToolStripMenuItem.Size = new System.Drawing.Size(211, 22); + this.livetaskToolStripMenuItem.Text = "live-task"; + // + // toolStripMenuItem3 + // + this.toolStripMenuItem3.Name = "toolStripMenuItem3"; + this.toolStripMenuItem3.Size = new System.Drawing.Size(208, 6); + // + // keyenceTrigOnToolStripMenuItem + // + this.keyenceTrigOnToolStripMenuItem.Name = "keyenceTrigOnToolStripMenuItem"; + this.keyenceTrigOnToolStripMenuItem.Size = new System.Drawing.Size(211, 22); + this.keyenceTrigOnToolStripMenuItem.Text = "keyence Trig On"; + this.keyenceTrigOnToolStripMenuItem.Click += new System.EventHandler(this.keyenceTrigOnToolStripMenuItem_Click); + // + // keyenceTrigOffToolStripMenuItem + // + this.keyenceTrigOffToolStripMenuItem.Name = "keyenceTrigOffToolStripMenuItem"; + this.keyenceTrigOffToolStripMenuItem.Size = new System.Drawing.Size(211, 22); + this.keyenceTrigOffToolStripMenuItem.Text = "Keyence Trig Off"; + this.keyenceTrigOffToolStripMenuItem.Click += new System.EventHandler(this.keyenceTrigOffToolStripMenuItem_Click); + // + // keyenceSaveImageToolStripMenuItem + // + this.keyenceSaveImageToolStripMenuItem.Name = "keyenceSaveImageToolStripMenuItem"; + this.keyenceSaveImageToolStripMenuItem.Size = new System.Drawing.Size(211, 22); + this.keyenceSaveImageToolStripMenuItem.Text = "Keyence Save Image"; + this.keyenceSaveImageToolStripMenuItem.Click += new System.EventHandler(this.keyenceSaveImageToolStripMenuItem_Click); + // + // toolStripMenuItem5 + // + this.toolStripMenuItem5.Name = "toolStripMenuItem5"; + this.toolStripMenuItem5.Size = new System.Drawing.Size(208, 6); + // + // panel37 + // + this.panel37.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.panel37.Controls.Add(this.lbLock2); + this.panel37.Controls.Add(this.arLabel76); + this.panel37.Controls.Add(this.arLabel74); + this.panel37.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel37.Location = new System.Drawing.Point(610, 0); + this.panel37.Margin = new System.Windows.Forms.Padding(0); + this.panel37.Name = "panel37"; + this.panel37.Padding = new System.Windows.Forms.Padding(1); + this.panel37.Size = new System.Drawing.Size(307, 56); + this.panel37.TabIndex = 155; + // + // lbLock2 + // + this.lbLock2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(76)))), ((int)(((byte)(14))))); + this.lbLock2.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(76)))), ((int)(((byte)(14))))); + this.lbLock2.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbLock2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbLock2.BorderColorOver = System.Drawing.Color.DarkBlue; + this.lbLock2.BorderSize = new System.Windows.Forms.Padding(0); + this.lbLock2.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbLock2.Cursor = System.Windows.Forms.Cursors.Hand; + this.lbLock2.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbLock2.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbLock2.ForeColor = System.Drawing.Color.SkyBlue; + this.lbLock2.GradientEnable = true; + this.lbLock2.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbLock2.GradientRepeatBG = false; + this.lbLock2.isButton = true; + this.lbLock2.Location = new System.Drawing.Point(101, 1); + this.lbLock2.Margin = new System.Windows.Forms.Padding(0); + this.lbLock2.MouseDownColor = System.Drawing.Color.Yellow; + this.lbLock2.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbLock2.msg = null; + this.lbLock2.Name = "lbLock2"; + this.lbLock2.ProgressBorderColor = System.Drawing.Color.Black; + this.lbLock2.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbLock2.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbLock2.ProgressEnable = false; + this.lbLock2.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbLock2.ProgressForeColor = System.Drawing.Color.Black; + this.lbLock2.ProgressMax = 100F; + this.lbLock2.ProgressMin = 0F; + this.lbLock2.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbLock2.ProgressValue = 0F; + this.lbLock2.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lbLock2.Sign = ""; + this.lbLock2.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbLock2.SignColor = System.Drawing.Color.Yellow; + this.lbLock2.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbLock2.Size = new System.Drawing.Size(105, 54); + this.lbLock2.TabIndex = 15; + this.lbLock2.Tag = "2"; + this.lbLock2.Text = "포트잠금"; + this.lbLock2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbLock2.TextShadow = true; + this.lbLock2.TextVisible = true; + this.lbLock2.Click += new System.EventHandler(this.lbLock2_Click); + // + // panel10 + // + this.panel10.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.panel10.Controls.Add(this.lbLock1); + this.panel10.Controls.Add(this.arLabel75); + this.panel10.Controls.Add(this.arLabel73); + this.panel10.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel10.Location = new System.Drawing.Point(305, 0); + this.panel10.Margin = new System.Windows.Forms.Padding(0); + this.panel10.Name = "panel10"; + this.panel10.Padding = new System.Windows.Forms.Padding(1); + this.panel10.Size = new System.Drawing.Size(305, 56); + this.panel10.TabIndex = 154; + // + // lbLock1 + // + this.lbLock1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(76)))), ((int)(((byte)(14))))); + this.lbLock1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(76)))), ((int)(((byte)(14))))); + this.lbLock1.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbLock1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbLock1.BorderColorOver = System.Drawing.Color.DarkBlue; + this.lbLock1.BorderSize = new System.Windows.Forms.Padding(0); + this.lbLock1.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbLock1.Cursor = System.Windows.Forms.Cursors.Hand; + this.lbLock1.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbLock1.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbLock1.ForeColor = System.Drawing.Color.SkyBlue; + this.lbLock1.GradientEnable = true; + this.lbLock1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbLock1.GradientRepeatBG = false; + this.lbLock1.isButton = true; + this.lbLock1.Location = new System.Drawing.Point(101, 1); + this.lbLock1.Margin = new System.Windows.Forms.Padding(0); + this.lbLock1.MouseDownColor = System.Drawing.Color.Yellow; + this.lbLock1.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbLock1.msg = null; + this.lbLock1.Name = "lbLock1"; + this.lbLock1.ProgressBorderColor = System.Drawing.Color.Black; + this.lbLock1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbLock1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbLock1.ProgressEnable = false; + this.lbLock1.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbLock1.ProgressForeColor = System.Drawing.Color.Black; + this.lbLock1.ProgressMax = 100F; + this.lbLock1.ProgressMin = 0F; + this.lbLock1.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbLock1.ProgressValue = 0F; + this.lbLock1.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lbLock1.Sign = ""; + this.lbLock1.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbLock1.SignColor = System.Drawing.Color.Yellow; + this.lbLock1.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbLock1.Size = new System.Drawing.Size(103, 54); + this.lbLock1.TabIndex = 15; + this.lbLock1.Tag = "1"; + this.lbLock1.Text = "포트잠금"; + this.lbLock1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbLock1.TextShadow = true; + this.lbLock1.TextVisible = true; + this.lbLock1.Click += new System.EventHandler(this.lbLock2_Click); + // + // panel15 + // + this.panel15.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.panel15.Controls.Add(this.lbLock0); + this.panel15.Controls.Add(this.arLabel11); + this.panel15.Controls.Add(this.arLabel6); + this.panel15.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel15.Location = new System.Drawing.Point(0, 0); + this.panel15.Margin = new System.Windows.Forms.Padding(0); + this.panel15.Name = "panel15"; + this.panel15.Padding = new System.Windows.Forms.Padding(1); + this.panel15.Size = new System.Drawing.Size(305, 56); + this.panel15.TabIndex = 155; + // + // lbLock0 + // + this.lbLock0.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(76)))), ((int)(((byte)(14))))); + this.lbLock0.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(76)))), ((int)(((byte)(14))))); + this.lbLock0.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbLock0.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbLock0.BorderColorOver = System.Drawing.Color.DarkBlue; + this.lbLock0.BorderSize = new System.Windows.Forms.Padding(0); + this.lbLock0.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbLock0.Cursor = System.Windows.Forms.Cursors.Hand; + this.lbLock0.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbLock0.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbLock0.ForeColor = System.Drawing.Color.SkyBlue; + this.lbLock0.GradientEnable = true; + this.lbLock0.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbLock0.GradientRepeatBG = false; + this.lbLock0.isButton = true; + this.lbLock0.Location = new System.Drawing.Point(101, 1); + this.lbLock0.Margin = new System.Windows.Forms.Padding(0); + this.lbLock0.MouseDownColor = System.Drawing.Color.Yellow; + this.lbLock0.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbLock0.msg = null; + this.lbLock0.Name = "lbLock0"; + this.lbLock0.ProgressBorderColor = System.Drawing.Color.Black; + this.lbLock0.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbLock0.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbLock0.ProgressEnable = false; + this.lbLock0.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbLock0.ProgressForeColor = System.Drawing.Color.Black; + this.lbLock0.ProgressMax = 100F; + this.lbLock0.ProgressMin = 0F; + this.lbLock0.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbLock0.ProgressValue = 0F; + this.lbLock0.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lbLock0.Sign = ""; + this.lbLock0.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbLock0.SignColor = System.Drawing.Color.Yellow; + this.lbLock0.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbLock0.Size = new System.Drawing.Size(103, 54); + this.lbLock0.TabIndex = 15; + this.lbLock0.Tag = "0"; + this.lbLock0.Text = "포트잠금"; + this.lbLock0.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbLock0.TextShadow = true; + this.lbLock0.TextVisible = true; + this.lbLock0.Click += new System.EventHandler(this.lbLock2_Click); + // + // cmBarcode + // + this.cmBarcode.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripMenuItem22}); + this.cmBarcode.Name = "cmLot1"; + this.cmBarcode.Size = new System.Drawing.Size(99, 26); + // + // toolStripMenuItem22 + // + this.toolStripMenuItem22.Name = "toolStripMenuItem22"; + this.toolStripMenuItem22.Size = new System.Drawing.Size(98, 22); + this.toolStripMenuItem22.Text = "삭제"; + // + // cmDebug + // + this.cmDebug.Font = new System.Drawing.Font("Cambria", 10F, System.Drawing.FontStyle.Bold); + this.cmDebug.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.inboundToolStripMenuItem, + this.countToolStripMenuItem, + this.motionEmulatorToolStripMenuItem, + this.customerRuleToolStripMenuItem, + this.sMResetToolStripMenuItem, + this.systemParameterToolStripMenuItem, + this.systemParameterMotorToolStripMenuItem, + this.toolStripMenuItem9, + this.toolStripMenuItem4, + this.regExTestToolStripMenuItem, + this.debugModeToolStripMenuItem, + this.demoRunToolStripMenuItem, + this.toolStripMenuItem1, + this.sendMailToolStripMenuItem, + this.toolStripMenuItem8, + this.dIOMonitorToolStripMenuItem, + this.refreshControklToolStripMenuItem, + this.작업선택화면ToolStripMenuItem, + this.historyToolStripMenuItem, + this.menusToolStripMenuItem, + this.screenToolStripMenuItem, + this.motionParameterToolStripMenuItem, + this.processListToolStripMenuItem, + this.toolStripMenuItem7, + this.visionProcess0ToolStripMenuItem, + this.visionProcess1ToolStripMenuItem, + this.speedLimitToolStripMenuItem, + this.toolStripMenuItem10, + this.bcdRegProcessClearToolStripMenuItem, + this.displayVARToolStripMenuItem, + this.toolStripMenuItem16, + this.getImageToolStripMenuItem}); + this.cmDebug.Name = "cmVision"; + this.cmDebug.Size = new System.Drawing.Size(254, 612); + // + // inboundToolStripMenuItem + // + this.inboundToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.postDataToolStripMenuItem, + this.manualPrintToolStripMenuItem, + this.apiCheckToolStripMenuItem, + this.apiCheck2activeLiToolStripMenuItem, + this.barcodeTestToolStripMenuItem, + this.testToolStripMenuItem1}); + this.inboundToolStripMenuItem.Name = "inboundToolStripMenuItem"; + this.inboundToolStripMenuItem.Size = new System.Drawing.Size(253, 22); + this.inboundToolStripMenuItem.Text = "Inbound"; + // + // postDataToolStripMenuItem + // + this.postDataToolStripMenuItem.Name = "postDataToolStripMenuItem"; + this.postDataToolStripMenuItem.Size = new System.Drawing.Size(201, 22); + this.postDataToolStripMenuItem.Text = "Post Data"; + this.postDataToolStripMenuItem.Click += new System.EventHandler(this.postDataToolStripMenuItem_Click); + // + // manualPrintToolStripMenuItem + // + this.manualPrintToolStripMenuItem.Name = "manualPrintToolStripMenuItem"; + this.manualPrintToolStripMenuItem.Size = new System.Drawing.Size(201, 22); + this.manualPrintToolStripMenuItem.Text = "Manual Print"; + this.manualPrintToolStripMenuItem.Click += new System.EventHandler(this.manualPrintToolStripMenuItem_Click); + // + // apiCheckToolStripMenuItem + // + this.apiCheckToolStripMenuItem.Name = "apiCheckToolStripMenuItem"; + this.apiCheckToolStripMenuItem.Size = new System.Drawing.Size(201, 22); + this.apiCheckToolStripMenuItem.Text = "api check"; + this.apiCheckToolStripMenuItem.Click += new System.EventHandler(this.apiCheckToolStripMenuItem_Click); + // + // apiCheck2activeLiToolStripMenuItem + // + this.apiCheck2activeLiToolStripMenuItem.Name = "apiCheck2activeLiToolStripMenuItem"; + this.apiCheck2activeLiToolStripMenuItem.Size = new System.Drawing.Size(201, 22); + this.apiCheck2activeLiToolStripMenuItem.Text = "api check 2(active li"; + this.apiCheck2activeLiToolStripMenuItem.Click += new System.EventHandler(this.apiCheck2activeLiToolStripMenuItem_Click); + // + // barcodeTestToolStripMenuItem + // + this.barcodeTestToolStripMenuItem.Name = "barcodeTestToolStripMenuItem"; + this.barcodeTestToolStripMenuItem.Size = new System.Drawing.Size(201, 22); + this.barcodeTestToolStripMenuItem.Text = "Barcode Test"; + this.barcodeTestToolStripMenuItem.Click += new System.EventHandler(this.barcodeTestToolStripMenuItem_Click); + // + // testToolStripMenuItem1 + // + this.testToolStripMenuItem1.Name = "testToolStripMenuItem1"; + this.testToolStripMenuItem1.Size = new System.Drawing.Size(201, 22); + this.testToolStripMenuItem1.Text = "test"; + this.testToolStripMenuItem1.Click += new System.EventHandler(this.testToolStripMenuItem1_Click); + // + // countToolStripMenuItem + // + this.countToolStripMenuItem.Name = "countToolStripMenuItem"; + this.countToolStripMenuItem.Size = new System.Drawing.Size(253, 22); + this.countToolStripMenuItem.Text = "Debug Window"; + this.countToolStripMenuItem.Click += new System.EventHandler(this.countToolStripMenuItem_Click); + // + // motionEmulatorToolStripMenuItem + // + this.motionEmulatorToolStripMenuItem.Name = "motionEmulatorToolStripMenuItem"; + this.motionEmulatorToolStripMenuItem.Size = new System.Drawing.Size(253, 22); + this.motionEmulatorToolStripMenuItem.Text = "Finish Window"; + this.motionEmulatorToolStripMenuItem.Click += new System.EventHandler(this.motionEmulatorToolStripMenuItem_Click); + // + // customerRuleToolStripMenuItem + // + this.customerRuleToolStripMenuItem.Name = "customerRuleToolStripMenuItem"; + this.customerRuleToolStripMenuItem.Size = new System.Drawing.Size(253, 22); + this.customerRuleToolStripMenuItem.Text = "Customer Rule"; + this.customerRuleToolStripMenuItem.Click += new System.EventHandler(this.customerRuleToolStripMenuItem_Click); + // + // sMResetToolStripMenuItem + // + this.sMResetToolStripMenuItem.Name = "sMResetToolStripMenuItem"; + this.sMResetToolStripMenuItem.Size = new System.Drawing.Size(253, 22); + this.sMResetToolStripMenuItem.Text = "S/M Reset"; + this.sMResetToolStripMenuItem.Click += new System.EventHandler(this.sMResetToolStripMenuItem_Click); + // + // systemParameterMotorToolStripMenuItem + // + this.systemParameterMotorToolStripMenuItem.Name = "systemParameterMotorToolStripMenuItem"; + this.systemParameterMotorToolStripMenuItem.Size = new System.Drawing.Size(253, 22); + this.systemParameterMotorToolStripMenuItem.Text = "System Parameter(Motion))"; + this.systemParameterMotorToolStripMenuItem.Click += new System.EventHandler(this.systemParameterMotorToolStripMenuItem_Click); + // + // regExTestToolStripMenuItem + // + this.regExTestToolStripMenuItem.Name = "regExTestToolStripMenuItem"; + this.regExTestToolStripMenuItem.Size = new System.Drawing.Size(253, 22); + this.regExTestToolStripMenuItem.Text = "RegEx Test"; + this.regExTestToolStripMenuItem.Click += new System.EventHandler(this.regExTestToolStripMenuItem_Click); + // + // debugModeToolStripMenuItem + // + this.debugModeToolStripMenuItem.Name = "debugModeToolStripMenuItem"; + this.debugModeToolStripMenuItem.Size = new System.Drawing.Size(253, 22); + this.debugModeToolStripMenuItem.Text = "Debug Mode"; + this.debugModeToolStripMenuItem.Click += new System.EventHandler(this.debugModeToolStripMenuItem_Click); + // + // sendMailToolStripMenuItem + // + this.sendMailToolStripMenuItem.Name = "sendMailToolStripMenuItem"; + this.sendMailToolStripMenuItem.Size = new System.Drawing.Size(253, 22); + this.sendMailToolStripMenuItem.Text = "Send Mail"; + this.sendMailToolStripMenuItem.Click += new System.EventHandler(this.sendMailToolStripMenuItem_Click); + // + // toolStripMenuItem8 + // + this.toolStripMenuItem8.Name = "toolStripMenuItem8"; + this.toolStripMenuItem8.Size = new System.Drawing.Size(250, 6); + // + // dIOMonitorToolStripMenuItem + // + this.dIOMonitorToolStripMenuItem.Name = "dIOMonitorToolStripMenuItem"; + this.dIOMonitorToolStripMenuItem.Size = new System.Drawing.Size(253, 22); + this.dIOMonitorToolStripMenuItem.Text = "new barcode"; + this.dIOMonitorToolStripMenuItem.Click += new System.EventHandler(this.dIOMonitorToolStripMenuItem_Click); + // + // refreshControklToolStripMenuItem + // + this.refreshControklToolStripMenuItem.Name = "refreshControklToolStripMenuItem"; + this.refreshControklToolStripMenuItem.Size = new System.Drawing.Size(253, 22); + this.refreshControklToolStripMenuItem.Text = "Refresh Controkl"; + this.refreshControklToolStripMenuItem.Click += new System.EventHandler(this.refreshControklToolStripMenuItem_Click); + // + // 작업선택화면ToolStripMenuItem + // + this.작업선택화면ToolStripMenuItem.Name = "작업선택화면ToolStripMenuItem"; + this.작업선택화면ToolStripMenuItem.Size = new System.Drawing.Size(253, 22); + this.작업선택화면ToolStripMenuItem.Text = "Data Buffer (SID Ref)"; + this.작업선택화면ToolStripMenuItem.Click += new System.EventHandler(this.작업선택화면ToolStripMenuItem_Click); + // + // historyToolStripMenuItem + // + this.historyToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.testToolStripMenuItem, + this.detectCountToolStripMenuItem}); + this.historyToolStripMenuItem.Name = "historyToolStripMenuItem"; + this.historyToolStripMenuItem.Size = new System.Drawing.Size(253, 22); + this.historyToolStripMenuItem.Text = "History"; + // + // testToolStripMenuItem + // + this.testToolStripMenuItem.Name = "testToolStripMenuItem"; + this.testToolStripMenuItem.Size = new System.Drawing.Size(158, 22); + this.testToolStripMenuItem.Text = "test"; + // + // detectCountToolStripMenuItem + // + this.detectCountToolStripMenuItem.Name = "detectCountToolStripMenuItem"; + this.detectCountToolStripMenuItem.Size = new System.Drawing.Size(158, 22); + this.detectCountToolStripMenuItem.Text = "Detect Count"; + // + // menusToolStripMenuItem + // + this.menusToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.sampleToolStripMenuItem, + this.clearToolStripMenuItem1}); + this.menusToolStripMenuItem.Name = "menusToolStripMenuItem"; + this.menusToolStripMenuItem.Size = new System.Drawing.Size(253, 22); + this.menusToolStripMenuItem.Text = "Menus"; + // + // sampleToolStripMenuItem + // + this.sampleToolStripMenuItem.Name = "sampleToolStripMenuItem"; + this.sampleToolStripMenuItem.Size = new System.Drawing.Size(109, 22); + this.sampleToolStripMenuItem.Text = "Add"; + this.sampleToolStripMenuItem.Click += new System.EventHandler(this.sampleToolStripMenuItem_Click); + // + // clearToolStripMenuItem1 + // + this.clearToolStripMenuItem1.Name = "clearToolStripMenuItem1"; + this.clearToolStripMenuItem1.Size = new System.Drawing.Size(109, 22); + this.clearToolStripMenuItem1.Text = "Clear"; + this.clearToolStripMenuItem1.Click += new System.EventHandler(this.clearToolStripMenuItem1_Click); + // + // screenToolStripMenuItem + // + this.screenToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.jOBStartToolStripMenuItem, + this.jObEndToolStripMenuItem}); + this.screenToolStripMenuItem.Name = "screenToolStripMenuItem"; + this.screenToolStripMenuItem.Size = new System.Drawing.Size(253, 22); + this.screenToolStripMenuItem.Text = "Screen"; + // + // jOBStartToolStripMenuItem + // + this.jOBStartToolStripMenuItem.Name = "jOBStartToolStripMenuItem"; + this.jOBStartToolStripMenuItem.Size = new System.Drawing.Size(134, 22); + this.jOBStartToolStripMenuItem.Text = "JOB Start"; + this.jOBStartToolStripMenuItem.Click += new System.EventHandler(this.jOBStartToolStripMenuItem_Click); + // + // jObEndToolStripMenuItem + // + this.jObEndToolStripMenuItem.Name = "jObEndToolStripMenuItem"; + this.jObEndToolStripMenuItem.Size = new System.Drawing.Size(134, 22); + this.jObEndToolStripMenuItem.Text = "JOb End"; + this.jObEndToolStripMenuItem.Click += new System.EventHandler(this.jObEndToolStripMenuItem_Click); + // + // motionParameterToolStripMenuItem + // + this.motionParameterToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.axis0ToolStripMenuItem, + this.axis1ToolStripMenuItem, + this.axis2ToolStripMenuItem, + this.axis3ToolStripMenuItem, + this.axis4ToolStripMenuItem}); + this.motionParameterToolStripMenuItem.Name = "motionParameterToolStripMenuItem"; + this.motionParameterToolStripMenuItem.Size = new System.Drawing.Size(253, 22); + this.motionParameterToolStripMenuItem.Text = "Motion Parameter"; + // + // axis0ToolStripMenuItem + // + this.axis0ToolStripMenuItem.Name = "axis0ToolStripMenuItem"; + this.axis0ToolStripMenuItem.Size = new System.Drawing.Size(114, 22); + this.axis0ToolStripMenuItem.Text = "Axis 0"; + this.axis0ToolStripMenuItem.Click += new System.EventHandler(this.axis0ToolStripMenuItem_Click); + // + // axis1ToolStripMenuItem + // + this.axis1ToolStripMenuItem.Name = "axis1ToolStripMenuItem"; + this.axis1ToolStripMenuItem.Size = new System.Drawing.Size(114, 22); + this.axis1ToolStripMenuItem.Text = "Axis 1"; + this.axis1ToolStripMenuItem.Click += new System.EventHandler(this.axis1ToolStripMenuItem_Click); + // + // axis2ToolStripMenuItem + // + this.axis2ToolStripMenuItem.Name = "axis2ToolStripMenuItem"; + this.axis2ToolStripMenuItem.Size = new System.Drawing.Size(114, 22); + this.axis2ToolStripMenuItem.Text = "Axis 2"; + this.axis2ToolStripMenuItem.Click += new System.EventHandler(this.axis2ToolStripMenuItem_Click); + // + // axis3ToolStripMenuItem + // + this.axis3ToolStripMenuItem.Name = "axis3ToolStripMenuItem"; + this.axis3ToolStripMenuItem.Size = new System.Drawing.Size(114, 22); + this.axis3ToolStripMenuItem.Text = "Axis 3"; + this.axis3ToolStripMenuItem.Click += new System.EventHandler(this.axis3ToolStripMenuItem_Click); + // + // axis4ToolStripMenuItem + // + this.axis4ToolStripMenuItem.Name = "axis4ToolStripMenuItem"; + this.axis4ToolStripMenuItem.Size = new System.Drawing.Size(114, 22); + this.axis4ToolStripMenuItem.Text = "Axis 4"; + this.axis4ToolStripMenuItem.Click += new System.EventHandler(this.axis4ToolStripMenuItem_Click); + // + // processListToolStripMenuItem + // + this.processListToolStripMenuItem.Name = "processListToolStripMenuItem"; + this.processListToolStripMenuItem.Size = new System.Drawing.Size(253, 22); + this.processListToolStripMenuItem.Text = "Process List"; + this.processListToolStripMenuItem.Click += new System.EventHandler(this.processListToolStripMenuItem_Click); + // + // toolStripMenuItem7 + // + this.toolStripMenuItem7.Name = "toolStripMenuItem7"; + this.toolStripMenuItem7.Size = new System.Drawing.Size(250, 6); + // + // visionProcess0ToolStripMenuItem + // + this.visionProcess0ToolStripMenuItem.Name = "visionProcess0ToolStripMenuItem"; + this.visionProcess0ToolStripMenuItem.Size = new System.Drawing.Size(253, 22); + this.visionProcess0ToolStripMenuItem.Text = "Vision Status(0)"; + this.visionProcess0ToolStripMenuItem.Click += new System.EventHandler(this.visionProcess0ToolStripMenuItem_Click); + // + // visionProcess1ToolStripMenuItem + // + this.visionProcess1ToolStripMenuItem.Name = "visionProcess1ToolStripMenuItem"; + this.visionProcess1ToolStripMenuItem.Size = new System.Drawing.Size(253, 22); + this.visionProcess1ToolStripMenuItem.Text = "Vision Status(1)"; + this.visionProcess1ToolStripMenuItem.Click += new System.EventHandler(this.visionProcess1ToolStripMenuItem_Click); + // + // speedLimitToolStripMenuItem + // + this.speedLimitToolStripMenuItem.Name = "speedLimitToolStripMenuItem"; + this.speedLimitToolStripMenuItem.Size = new System.Drawing.Size(253, 22); + this.speedLimitToolStripMenuItem.Text = "Speed Limit"; + this.speedLimitToolStripMenuItem.Click += new System.EventHandler(this.speedLimitToolStripMenuItem_Click); + // + // toolStripMenuItem10 + // + this.toolStripMenuItem10.Name = "toolStripMenuItem10"; + this.toolStripMenuItem10.Size = new System.Drawing.Size(250, 6); + // + // bcdRegProcessClearToolStripMenuItem + // + this.bcdRegProcessClearToolStripMenuItem.Name = "bcdRegProcessClearToolStripMenuItem"; + this.bcdRegProcessClearToolStripMenuItem.Size = new System.Drawing.Size(253, 22); + this.bcdRegProcessClearToolStripMenuItem.Text = "Bcd RegProcess Clear"; + this.bcdRegProcessClearToolStripMenuItem.Click += new System.EventHandler(this.bcdRegProcessClearToolStripMenuItem_Click); + // + // displayVARToolStripMenuItem + // + this.displayVARToolStripMenuItem.Name = "displayVARToolStripMenuItem"; + this.displayVARToolStripMenuItem.Size = new System.Drawing.Size(253, 22); + this.displayVARToolStripMenuItem.Text = "Display VAR"; + this.displayVARToolStripMenuItem.Click += new System.EventHandler(this.displayVARToolStripMenuItem_Click); + // + // toolStripMenuItem16 + // + this.toolStripMenuItem16.Name = "toolStripMenuItem16"; + this.toolStripMenuItem16.Size = new System.Drawing.Size(250, 6); + // + // getImageToolStripMenuItem + // + this.getImageToolStripMenuItem.Name = "getImageToolStripMenuItem"; + this.getImageToolStripMenuItem.Size = new System.Drawing.Size(253, 22); + this.getImageToolStripMenuItem.Text = "Get Image"; + // + // idxDataGridViewTextBoxColumn + // + this.idxDataGridViewTextBoxColumn.DataPropertyName = "idx"; + this.idxDataGridViewTextBoxColumn.HeaderText = "idx"; + this.idxDataGridViewTextBoxColumn.Name = "idxDataGridViewTextBoxColumn"; + this.idxDataGridViewTextBoxColumn.Width = 5; + // + // stripIdDataGridViewTextBoxColumn2 + // + this.stripIdDataGridViewTextBoxColumn2.DataPropertyName = "StripId"; + this.stripIdDataGridViewTextBoxColumn2.HeaderText = "StripId"; + this.stripIdDataGridViewTextBoxColumn2.Name = "stripIdDataGridViewTextBoxColumn2"; + this.stripIdDataGridViewTextBoxColumn2.Width = 5; + // + // oKDataGridViewTextBoxColumn2 + // + this.oKDataGridViewTextBoxColumn2.DataPropertyName = "OK"; + this.oKDataGridViewTextBoxColumn2.HeaderText = "OK"; + this.oKDataGridViewTextBoxColumn2.Name = "oKDataGridViewTextBoxColumn2"; + this.oKDataGridViewTextBoxColumn2.Width = 5; + // + // nGDataGridViewTextBoxColumn2 + // + this.nGDataGridViewTextBoxColumn2.DataPropertyName = "NG"; + this.nGDataGridViewTextBoxColumn2.HeaderText = "NG"; + this.nGDataGridViewTextBoxColumn2.Name = "nGDataGridViewTextBoxColumn2"; + this.nGDataGridViewTextBoxColumn2.Width = 5; + // + // mISSDataGridViewTextBoxColumn2 + // + this.mISSDataGridViewTextBoxColumn2.DataPropertyName = "MISS"; + this.mISSDataGridViewTextBoxColumn2.HeaderText = "MISS"; + this.mISSDataGridViewTextBoxColumn2.Name = "mISSDataGridViewTextBoxColumn2"; + this.mISSDataGridViewTextBoxColumn2.Width = 5; + // + // fileMapDataGridViewTextBoxColumn + // + this.fileMapDataGridViewTextBoxColumn.DataPropertyName = "FileMap"; + this.fileMapDataGridViewTextBoxColumn.HeaderText = "FileMap"; + this.fileMapDataGridViewTextBoxColumn.Name = "fileMapDataGridViewTextBoxColumn"; + this.fileMapDataGridViewTextBoxColumn.Width = 5; + // + // dataPathDataGridViewTextBoxColumn + // + this.dataPathDataGridViewTextBoxColumn.DataPropertyName = "DataPath"; + this.dataPathDataGridViewTextBoxColumn.HeaderText = "DataPath"; + this.dataPathDataGridViewTextBoxColumn.Name = "dataPathDataGridViewTextBoxColumn"; + this.dataPathDataGridViewTextBoxColumn.Width = 5; + // + // mapOriginDataGridViewTextBoxColumn + // + this.mapOriginDataGridViewTextBoxColumn.DataPropertyName = "MapOrigin"; + this.mapOriginDataGridViewTextBoxColumn.HeaderText = "MapOrigin"; + this.mapOriginDataGridViewTextBoxColumn.Name = "mapOriginDataGridViewTextBoxColumn"; + this.mapOriginDataGridViewTextBoxColumn.Width = 5; + // + // mapArrayDataGridViewTextBoxColumn + // + this.mapArrayDataGridViewTextBoxColumn.DataPropertyName = "MapArray"; + this.mapArrayDataGridViewTextBoxColumn.HeaderText = "MapArray"; + this.mapArrayDataGridViewTextBoxColumn.Name = "mapArrayDataGridViewTextBoxColumn"; + this.mapArrayDataGridViewTextBoxColumn.Width = 5; + // + // testmenuToolStripMenuItem + // + this.testmenuToolStripMenuItem.Name = "testmenuToolStripMenuItem"; + this.testmenuToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.testmenuToolStripMenuItem.Text = "testmenu"; + // + // panStatusBar + // + this.panStatusBar.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.panStatusBar.Controls.Add(this.panel3); + this.panStatusBar.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panStatusBar.Location = new System.Drawing.Point(1, 938); + this.panStatusBar.Margin = new System.Windows.Forms.Padding(0); + this.panStatusBar.Name = "panStatusBar"; + this.panStatusBar.Size = new System.Drawing.Size(1262, 46); + this.panStatusBar.TabIndex = 136; + // + // panel3 + // + this.panel3.Controls.Add(this.IOState); + this.panel3.Controls.Add(this.HWState); + this.panel3.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel3.Location = new System.Drawing.Point(0, 0); + this.panel3.Margin = new System.Windows.Forms.Padding(0); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(1258, 42); + this.panel3.TabIndex = 4; + // + // IOState + // + this.IOState.arVeriticalDraw = false; + this.IOState.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.IOState.BorderSize = 0; + colorListItem13.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + colorListItem13.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem13.Remark = ""; + colorListItem14.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(182)))), ((int)(((byte)(122))))); + colorListItem14.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(182)))), ((int)(((byte)(122))))); + colorListItem14.Remark = ""; + colorListItem15.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(249)))), ((int)(((byte)(76)))), ((int)(((byte)(102))))); + colorListItem15.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(249)))), ((int)(((byte)(76)))), ((int)(((byte)(102))))); + colorListItem15.Remark = ""; + colorListItem16.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(189)))), ((int)(((byte)(66)))), ((int)(((byte)(145))))); + colorListItem16.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(189)))), ((int)(((byte)(66)))), ((int)(((byte)(145))))); + colorListItem16.Remark = ""; + colorListItem17.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(158)))), ((int)(((byte)(180)))), ((int)(((byte)(236))))); + colorListItem17.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(158)))), ((int)(((byte)(180)))), ((int)(((byte)(236))))); + colorListItem17.Remark = ""; + colorListItem18.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(210)))), ((int)(((byte)(76))))); + colorListItem18.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(210)))), ((int)(((byte)(76))))); + colorListItem18.Remark = ""; + colorListItem19.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(183)))), ((int)(((byte)(43))))); + colorListItem19.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(183)))), ((int)(((byte)(43))))); + colorListItem19.Remark = ""; + this.IOState.ColorList = new arFrame.Control.ColorListItem[] { + colorListItem13, + colorListItem14, + colorListItem15, + colorListItem16, + colorListItem17, + colorListItem18, + colorListItem19}; + this.IOState.Dock = System.Windows.Forms.DockStyle.Fill; + this.IOState.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.IOState.FontPin = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.IOState.ForeColor = System.Drawing.Color.White; + this.IOState.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.IOState.Location = new System.Drawing.Point(318, 0); + this.IOState.MatrixSize = new System.Drawing.Point(12, 2); + this.IOState.MenuBorderSize = 1; + this.IOState.MenuGap = 5; + this.IOState.MinimumSize = new System.Drawing.Size(100, 0); + this.IOState.Name = "IOState"; + this.IOState.Names = new string[] { + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + ""}; + this.IOState.ShadowColor = System.Drawing.Color.Transparent; + this.IOState.showDebugInfo = false; + this.IOState.ShowIndexString = false; + this.IOState.Size = new System.Drawing.Size(940, 42); + this.IOState.TabIndex = 6; + this.IOState.Tags = null; + this.IOState.Text = "gridView2"; + this.IOState.TextAttachToImage = true; + this.IOState.Titles = new string[] { + "{step}|L-DOOR|C-DOOR|R-DOOR|L-DET|C-DET|R-DET|EMG|PRINT-L|--|REEL|REEL|", + "{ms}|BUZZ|ROOM|AIR|L-MAX|C-MAX|R-MAX|POWER|PRINT-R|TRIG|CONV|CONV|"}; + this.IOState.Values = new ushort[] { + ((ushort)(0)), + ((ushort)(1)), + ((ushort)(2)), + ((ushort)(3)), + ((ushort)(4)), + ((ushort)(5)), + ((ushort)(6)), + ((ushort)(7)), + ((ushort)(8)), + ((ushort)(9)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0))}; + // + // HWState + // + this.HWState.arVeriticalDraw = false; + this.HWState.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.HWState.BorderSize = 0; + colorListItem20.BackColor1 = System.Drawing.Color.Gray; + colorListItem20.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + colorListItem20.Remark = "타이틀바(상)"; + colorListItem21.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + colorListItem21.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + colorListItem21.Remark = "상태표시(하)"; + colorListItem22.BackColor1 = System.Drawing.Color.Green; + colorListItem22.BackColor2 = System.Drawing.Color.ForestGreen; + colorListItem22.Remark = "정상"; + colorListItem23.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + colorListItem23.BackColor2 = System.Drawing.Color.Red; + colorListItem23.Remark = "오류"; + colorListItem24.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + colorListItem24.BackColor2 = System.Drawing.Color.Yellow; + colorListItem24.Remark = "오류(깜박)"; + this.HWState.ColorList = new arFrame.Control.ColorListItem[] { + colorListItem20, + colorListItem21, + colorListItem22, + colorListItem23, + colorListItem24}; + this.HWState.Dock = System.Windows.Forms.DockStyle.Left; + this.HWState.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.HWState.FontPin = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.HWState.ForeColor = System.Drawing.Color.Moccasin; + this.HWState.ForeColorPin = System.Drawing.Color.Moccasin; + this.HWState.Location = new System.Drawing.Point(0, 0); + this.HWState.Margin = new System.Windows.Forms.Padding(0); + this.HWState.MatrixSize = new System.Drawing.Point(8, 2); + this.HWState.MenuBorderSize = 1; + this.HWState.MenuGap = 5; + this.HWState.MinimumSize = new System.Drawing.Size(100, 0); + this.HWState.Name = "HWState"; + this.HWState.Names = new string[] { + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + ""}; + this.HWState.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.HWState.showDebugInfo = false; + this.HWState.ShowIndexString = false; + this.HWState.Size = new System.Drawing.Size(318, 42); + this.HWState.TabIndex = 8; + this.HWState.Tags = null; + this.HWState.Text = "gridView3"; + this.HWState.TextAttachToImage = true; + this.HWState.Titles = new string[] { + "BCD|BCD|LEFT|RIGHT|FIX|PL|PR|PLC", + "--|--|--|--|--|--|--|--|--"}; + this.HWState.Values = new ushort[] { + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(2)), + ((ushort)(3)), + ((ushort)(4)), + ((ushort)(5)), + ((ushort)(6)), + ((ushort)(6)), + ((ushort)(8)), + ((ushort)(7)), + ((ushort)(6))}; + // + // panTopMenu + // + this.panTopMenu.BackColor = System.Drawing.SystemColors.Control; + this.panTopMenu.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden; + this.panTopMenu.ImageScalingSize = new System.Drawing.Size(40, 40); + this.panTopMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripLabel2, + this.toolStripButton7, + this.toolStripSeparator5, + this.toolStripButton23, + this.toolStripSeparator8, + this.btSetting, + this.toolStripButton8, + this.toolStripButton9, + this.btMReset, + this.toolStripButton16, + this.toolStripButton11, + this.btLogViewer, + this.toolStripSeparator6, + this.toolStripButton6, + this.toolStripButton10, + this.btLightRoom, + this.toolStripButton1, + this.toolStripSeparator9, + this.btJobCancle, + this.btDebug, + this.toolStripButton15, + this.toolStripButton3, + this.toolStripSeparator7, + this.toolStripButton12}); + this.panTopMenu.Location = new System.Drawing.Point(1, 1); + this.panTopMenu.Name = "panTopMenu"; + this.panTopMenu.Padding = new System.Windows.Forms.Padding(0); + this.panTopMenu.Size = new System.Drawing.Size(1262, 47); + this.panTopMenu.TabIndex = 137; + this.panTopMenu.Text = "toolStrip1"; + // + // toolStripLabel2 + // + this.toolStripLabel2.Name = "toolStripLabel2"; + this.toolStripLabel2.Size = new System.Drawing.Size(11, 44); + this.toolStripLabel2.Text = " "; + this.toolStripLabel2.Click += new System.EventHandler(this.pictureBox1_Click); + // + // toolStripButton7 + // + this.toolStripButton7.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.모델선택ToolStripMenuItem, + this.btModelMot, + this.toolStripMenuItem12, + this.바코드룰ToolStripMenuItem, + this.프린트룰ToolStripMenuItem, + this.sID정보ToolStripMenuItem}); + this.toolStripButton7.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton7.Image"))); + this.toolStripButton7.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton7.Name = "toolStripButton7"; + this.toolStripButton7.Size = new System.Drawing.Size(84, 44); + this.toolStripButton7.Text = "모델"; + this.toolStripButton7.Click += new System.EventHandler(this.button5_Click); + // + // 모델선택ToolStripMenuItem + // + this.모델선택ToolStripMenuItem.Image = global::Project.Properties.Resources.icons8_object_40; + this.모델선택ToolStripMenuItem.Name = "모델선택ToolStripMenuItem"; + this.모델선택ToolStripMenuItem.Size = new System.Drawing.Size(150, 46); + this.모델선택ToolStripMenuItem.Text = "작업 모델"; + this.모델선택ToolStripMenuItem.Click += new System.EventHandler(this.모델선택ToolStripMenuItem_Click); + // + // btModelMot + // + this.btModelMot.Image = global::Project.Properties.Resources.Motor; + this.btModelMot.Name = "btModelMot"; + this.btModelMot.Size = new System.Drawing.Size(150, 46); + this.btModelMot.Text = "모션 모델"; + this.btModelMot.Click += new System.EventHandler(this.toolStripMenuItem23_Click); + // + // toolStripMenuItem12 + // + this.toolStripMenuItem12.Name = "toolStripMenuItem12"; + this.toolStripMenuItem12.Size = new System.Drawing.Size(147, 6); + // + // 바코드룰ToolStripMenuItem + // + this.바코드룰ToolStripMenuItem.Image = global::Project.Properties.Resources.icons8_add_40; + this.바코드룰ToolStripMenuItem.Name = "바코드룰ToolStripMenuItem"; + this.바코드룰ToolStripMenuItem.Size = new System.Drawing.Size(150, 46); + this.바코드룰ToolStripMenuItem.Text = "바코드 룰"; + this.바코드룰ToolStripMenuItem.Click += new System.EventHandler(this.바코드룰ToolStripMenuItem_Click); + // + // 프린트룰ToolStripMenuItem + // + this.프린트룰ToolStripMenuItem.Image = global::Project.Properties.Resources.icons8_printer_48; + this.프린트룰ToolStripMenuItem.Name = "프린트룰ToolStripMenuItem"; + this.프린트룰ToolStripMenuItem.Size = new System.Drawing.Size(150, 46); + this.프린트룰ToolStripMenuItem.Text = "프린트 룰"; + this.프린트룰ToolStripMenuItem.Click += new System.EventHandler(this.프린트룰ToolStripMenuItem_Click); + // + // sID정보ToolStripMenuItem + // + this.sID정보ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.프로그램열기ToolStripMenuItem, + this.인바운드데이터업데이트ToolStripMenuItem}); + this.sID정보ToolStripMenuItem.Image = global::Project.Properties.Resources.icons8_save_to_grid_40; + this.sID정보ToolStripMenuItem.Name = "sID정보ToolStripMenuItem"; + this.sID정보ToolStripMenuItem.Size = new System.Drawing.Size(150, 46); + this.sID정보ToolStripMenuItem.Text = "SID 정보"; + this.sID정보ToolStripMenuItem.Click += new System.EventHandler(this.sID정보ToolStripMenuItem_Click); + // + // 프로그램열기ToolStripMenuItem + // + this.프로그램열기ToolStripMenuItem.Image = global::Project.Properties.Resources.Arrow_Right; + this.프로그램열기ToolStripMenuItem.Name = "프로그램열기ToolStripMenuItem"; + this.프로그램열기ToolStripMenuItem.Size = new System.Drawing.Size(246, 46); + this.프로그램열기ToolStripMenuItem.Text = "프로그램 열기"; + this.프로그램열기ToolStripMenuItem.Click += new System.EventHandler(this.프로그램열기ToolStripMenuItem_Click); + // + // 인바운드데이터업데이트ToolStripMenuItem + // + this.인바운드데이터업데이트ToolStripMenuItem.Image = global::Project.Properties.Resources.Arrow_Right; + this.인바운드데이터업데이트ToolStripMenuItem.Name = "인바운드데이터업데이트ToolStripMenuItem"; + this.인바운드데이터업데이트ToolStripMenuItem.Size = new System.Drawing.Size(246, 46); + this.인바운드데이터업데이트ToolStripMenuItem.Text = "인바운드 데이터 업데이트"; + this.인바운드데이터업데이트ToolStripMenuItem.Click += new System.EventHandler(this.인바운드데이터업데이트ToolStripMenuItem_Click); + // + // toolStripSeparator5 + // + this.toolStripSeparator5.Name = "toolStripSeparator5"; + this.toolStripSeparator5.Size = new System.Drawing.Size(6, 47); + // + // toolStripButton23 + // + this.toolStripButton23.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.toolStripButton23.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.toolStripButton23.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton23.Image"))); + this.toolStripButton23.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton23.Name = "toolStripButton23"; + this.toolStripButton23.Size = new System.Drawing.Size(44, 44); + this.toolStripButton23.Text = "종료"; + this.toolStripButton23.ToolTipText = "프로그램 종료"; + this.toolStripButton23.Click += new System.EventHandler(this.arLabel10_Click_1); + // + // toolStripSeparator8 + // + this.toolStripSeparator8.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.toolStripSeparator8.Name = "toolStripSeparator8"; + this.toolStripSeparator8.Size = new System.Drawing.Size(6, 47); + // + // btSetting + // + this.btSetting.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.btSetting.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.btSetting.Image = ((System.Drawing.Image)(resources.GetObject("btSetting.Image"))); + this.btSetting.ImageTransparentColor = System.Drawing.Color.Magenta; + this.btSetting.Name = "btSetting"; + this.btSetting.Size = new System.Drawing.Size(44, 44); + this.btSetting.Text = "설정"; + this.btSetting.ToolTipText = "환경 설정"; + this.btSetting.Click += new System.EventHandler(this.arLabel11_Click); + // + // toolStripButton8 + // + this.toolStripButton8.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.toolStripButton8.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.toolStripButton8.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton8.Image"))); + this.toolStripButton8.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton8.Name = "toolStripButton8"; + this.toolStripButton8.Size = new System.Drawing.Size(44, 44); + this.toolStripButton8.Text = "설명서"; + this.toolStripButton8.ToolTipText = "프로그램 설명서 표시"; + this.toolStripButton8.Click += new System.EventHandler(this.arLabel12_Click); + // + // toolStripButton9 + // + this.toolStripButton9.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.toolStripButton9.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.toolStripButton9.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton9.Image"))); + this.toolStripButton9.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton9.Name = "toolStripButton9"; + this.toolStripButton9.Size = new System.Drawing.Size(44, 44); + this.toolStripButton9.Text = "캡처"; + this.toolStripButton9.ToolTipText = "현재 화면 캡처"; + this.toolStripButton9.Click += new System.EventHandler(this.arLabel13_Click); + // + // btMReset + // + this.btMReset.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.btMReset.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.btMReset.Image = ((System.Drawing.Image)(resources.GetObject("btMReset.Image"))); + this.btMReset.ImageTransparentColor = System.Drawing.Color.Magenta; + this.btMReset.Name = "btMReset"; + this.btMReset.Size = new System.Drawing.Size(44, 44); + this.btMReset.Text = "초기화"; + this.btMReset.ToolTipText = "장치 초기화 (최소 1번 실행 필요)"; + this.btMReset.Click += new System.EventHandler(this.arLabel14_Click); + // + // toolStripButton16 + // + this.toolStripButton16.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.toolStripButton16.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.toolStripButton16.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton16.Image"))); + this.toolStripButton16.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton16.Name = "toolStripButton16"; + this.toolStripButton16.Size = new System.Drawing.Size(44, 44); + this.toolStripButton16.Text = "toolStripButton16"; + this.toolStripButton16.ToolTipText = "개발자 메일 전송"; + this.toolStripButton16.Click += new System.EventHandler(this.toolStripButton16_Click); + // + // toolStripButton11 + // + this.toolStripButton11.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.toolStripButton11.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.toolStripButton11.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripMenuItem11, + this.toolStripMenuItem13, + this.toolStripMenuItem14, + this.toolStripMenuItem15}); + this.toolStripButton11.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton11.Image"))); + this.toolStripButton11.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton11.Name = "toolStripButton11"; + this.toolStripButton11.Size = new System.Drawing.Size(53, 44); + this.toolStripButton11.Text = "폴더열기"; + this.toolStripButton11.ToolTipText = "프로그램 폴더 열기(윈도우 탐색기)"; + this.toolStripButton11.Click += new System.EventHandler(this.arLabel16_Click); + // + // toolStripMenuItem11 + // + this.toolStripMenuItem11.Image = ((System.Drawing.Image)(resources.GetObject("toolStripMenuItem11.Image"))); + this.toolStripMenuItem11.Name = "toolStripMenuItem11"; + this.toolStripMenuItem11.Size = new System.Drawing.Size(158, 46); + this.toolStripMenuItem11.Text = "프로그램"; + this.toolStripMenuItem11.Click += new System.EventHandler(this.toolStripMenuItem11_Click); + // + // toolStripMenuItem13 + // + this.toolStripMenuItem13.Image = ((System.Drawing.Image)(resources.GetObject("toolStripMenuItem13.Image"))); + this.toolStripMenuItem13.Name = "toolStripMenuItem13"; + this.toolStripMenuItem13.Size = new System.Drawing.Size(158, 46); + this.toolStripMenuItem13.Text = "로그"; + this.toolStripMenuItem13.Click += new System.EventHandler(this.toolStripMenuItem13_Click); + // + // toolStripMenuItem14 + // + this.toolStripMenuItem14.Image = ((System.Drawing.Image)(resources.GetObject("toolStripMenuItem14.Image"))); + this.toolStripMenuItem14.Name = "toolStripMenuItem14"; + this.toolStripMenuItem14.Size = new System.Drawing.Size(158, 46); + this.toolStripMenuItem14.Text = "캡처"; + this.toolStripMenuItem14.Click += new System.EventHandler(this.toolStripMenuItem14_Click); + // + // toolStripMenuItem15 + // + this.toolStripMenuItem15.Image = ((System.Drawing.Image)(resources.GetObject("toolStripMenuItem15.Image"))); + this.toolStripMenuItem15.Name = "toolStripMenuItem15"; + this.toolStripMenuItem15.Size = new System.Drawing.Size(158, 46); + this.toolStripMenuItem15.Text = "저장데이터"; + this.toolStripMenuItem15.Click += new System.EventHandler(this.toolStripMenuItem15_Click); + // + // btLogViewer + // + this.btLogViewer.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.btLogViewer.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.btLogViewer.Image = global::Project.Properties.Resources.icons8_log_40; + this.btLogViewer.ImageTransparentColor = System.Drawing.Color.Magenta; + this.btLogViewer.Name = "btLogViewer"; + this.btLogViewer.Size = new System.Drawing.Size(44, 44); + this.btLogViewer.Text = "로그뷰어"; + this.btLogViewer.Click += new System.EventHandler(this.btLogViewer_Click); + // + // toolStripSeparator6 + // + this.toolStripSeparator6.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.toolStripSeparator6.Name = "toolStripSeparator6"; + this.toolStripSeparator6.Size = new System.Drawing.Size(6, 47); + // + // toolStripButton6 + // + this.toolStripButton6.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.sWPLCToolStripMenuItem}); + this.toolStripButton6.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton6.Image"))); + this.toolStripButton6.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton6.Name = "toolStripButton6"; + this.toolStripButton6.Size = new System.Drawing.Size(99, 44); + this.toolStripButton6.Text = "입출력"; + this.toolStripButton6.ToolTipText = "입/출력 시그널 확인"; + this.toolStripButton6.ButtonClick += new System.EventHandler(this.toolStripButton6_ButtonClick); + this.toolStripButton6.Click += new System.EventHandler(this.button6_Click); + // + // sWPLCToolStripMenuItem + // + this.sWPLCToolStripMenuItem.Name = "sWPLCToolStripMenuItem"; + this.sWPLCToolStripMenuItem.Size = new System.Drawing.Size(122, 22); + this.sWPLCToolStripMenuItem.Text = "S/W PLC"; + this.sWPLCToolStripMenuItem.Click += new System.EventHandler(this.sWPLCToolStripMenuItem_Click); + // + // toolStripButton10 + // + this.toolStripButton10.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.btManage, + this.빠른실행ToolStripMenuItem}); + this.toolStripButton10.Image = global::Project.Properties.Resources.icons8_object_40; + this.toolStripButton10.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton10.Name = "toolStripButton10"; + this.toolStripButton10.Size = new System.Drawing.Size(84, 44); + this.toolStripButton10.Text = "기능"; + this.toolStripButton10.Click += new System.EventHandler(this.button3_Click_2); + // + // btManage + // + this.btManage.Image = global::Project.Properties.Resources.icons8_control_panel_40; + this.btManage.Name = "btManage"; + this.btManage.Size = new System.Drawing.Size(146, 46); + this.btManage.Text = "관리"; + this.btManage.Click += new System.EventHandler(this.관리ToolStripMenuItem_Click_1); + // + // 빠른실행ToolStripMenuItem + // + this.빠른실행ToolStripMenuItem.Image = global::Project.Properties.Resources.icons8_object_40; + this.빠른실행ToolStripMenuItem.Name = "빠른실행ToolStripMenuItem"; + this.빠른실행ToolStripMenuItem.Size = new System.Drawing.Size(146, 46); + this.빠른실행ToolStripMenuItem.Text = "빠른실행"; + this.빠른실행ToolStripMenuItem.Click += new System.EventHandler(this.빠른실행ToolStripMenuItem_Click); + // + // btLightRoom + // + this.btLightRoom.Image = ((System.Drawing.Image)(resources.GetObject("btLightRoom.Image"))); + this.btLightRoom.ImageTransparentColor = System.Drawing.Color.Magenta; + this.btLightRoom.Name = "btLightRoom"; + this.btLightRoom.Size = new System.Drawing.Size(75, 44); + this.btLightRoom.Text = "조명"; + this.btLightRoom.ToolTipText = "내부 조명 On/Off"; + this.btLightRoom.Click += new System.EventHandler(this.button7_Click); + // + // toolStripSeparator9 + // + this.toolStripSeparator9.Name = "toolStripSeparator9"; + this.toolStripSeparator9.Size = new System.Drawing.Size(6, 47); + // + // btJobCancle + // + this.btJobCancle.Image = ((System.Drawing.Image)(resources.GetObject("btJobCancle.Image"))); + this.btJobCancle.ImageTransparentColor = System.Drawing.Color.Magenta; + this.btJobCancle.Name = "btJobCancle"; + this.btJobCancle.Size = new System.Drawing.Size(99, 44); + this.btJobCancle.Text = "작업취소"; + this.btJobCancle.ToolTipText = "현재 작업을 취소 합니다"; + this.btJobCancle.Click += new System.EventHandler(this.toolStripButton13_Click); + // + // btDebug + // + this.btDebug.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.btDebug.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.btDebug.ForeColor = System.Drawing.Color.DarkMagenta; + this.btDebug.Image = ((System.Drawing.Image)(resources.GetObject("btDebug.Image"))); + this.btDebug.ImageTransparentColor = System.Drawing.Color.Magenta; + this.btDebug.Name = "btDebug"; + this.btDebug.Size = new System.Drawing.Size(44, 44); + this.btDebug.Tag = "0"; + this.btDebug.Text = "개발자"; + this.btDebug.ToolTipText = "개발자 메뉴(사용하지 마세요)"; + this.btDebug.Click += new System.EventHandler(this.btDebug_Click); + // + // toolStripButton15 + // + this.toolStripButton15.Image = global::Project.Properties.Resources.Barcode; + this.toolStripButton15.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton15.Name = "toolStripButton15"; + this.toolStripButton15.Size = new System.Drawing.Size(111, 44); + this.toolStripButton15.Text = "바코드확인"; + this.toolStripButton15.Click += new System.EventHandler(this.toolStripButton15_Click); + // + // toolStripButton3 + // + this.toolStripButton3.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.바코드LToolStripMenuItem, + this.바코드키엔스ToolStripMenuItem}); + this.toolStripButton3.Image = global::Project.Properties.Resources.icons8_camera_40; + this.toolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton3.Name = "toolStripButton3"; + this.toolStripButton3.Size = new System.Drawing.Size(96, 44); + this.toolStripButton3.Text = "카메라"; + // + // 바코드LToolStripMenuItem + // + this.바코드LToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.연결ToolStripMenuItem, + this.toolStripMenuItem26, + this.toolStripMenuItem21, + this.toolStripMenuItem24, + this.toolStripMenuItem6, + this.toolStripMenuItem28, + this.toolStripMenuItem30}); + this.바코드LToolStripMenuItem.Image = global::Project.Properties.Resources.Arrow_Left; + this.바코드LToolStripMenuItem.Name = "바코드LToolStripMenuItem"; + this.바코드LToolStripMenuItem.Size = new System.Drawing.Size(178, 46); + this.바코드LToolStripMenuItem.Text = "바코드"; + this.바코드LToolStripMenuItem.Click += new System.EventHandler(this.button1_Click_1); + // + // 연결ToolStripMenuItem + // + this.연결ToolStripMenuItem.Name = "연결ToolStripMenuItem"; + this.연결ToolStripMenuItem.Size = new System.Drawing.Size(156, 46); + this.연결ToolStripMenuItem.Text = "연결"; + this.연결ToolStripMenuItem.Click += new System.EventHandler(this.연결ToolStripMenuItem_Click); + // + // toolStripMenuItem26 + // + this.toolStripMenuItem26.Name = "toolStripMenuItem26"; + this.toolStripMenuItem26.Size = new System.Drawing.Size(153, 6); + // + // toolStripMenuItem21 + // + this.toolStripMenuItem21.Image = global::Project.Properties.Resources.icons8_green_circle_40; + this.toolStripMenuItem21.Name = "toolStripMenuItem21"; + this.toolStripMenuItem21.Size = new System.Drawing.Size(156, 46); + this.toolStripMenuItem21.Text = "Trigger On"; + this.toolStripMenuItem21.Click += new System.EventHandler(this.toolStripMenuItem21_Click); + // + // toolStripMenuItem24 + // + this.toolStripMenuItem24.Image = global::Project.Properties.Resources.icons8_black_circle_40; + this.toolStripMenuItem24.Name = "toolStripMenuItem24"; + this.toolStripMenuItem24.Size = new System.Drawing.Size(156, 46); + this.toolStripMenuItem24.Text = "Trigger Off"; + this.toolStripMenuItem24.Click += new System.EventHandler(this.toolStripMenuItem24_Click); + // + // toolStripMenuItem6 + // + this.toolStripMenuItem6.Name = "toolStripMenuItem6"; + this.toolStripMenuItem6.Size = new System.Drawing.Size(153, 6); + // + // toolStripMenuItem28 + // + this.toolStripMenuItem28.Image = global::Project.Properties.Resources.icons8_green_circle_40; + this.toolStripMenuItem28.Name = "toolStripMenuItem28"; + this.toolStripMenuItem28.Size = new System.Drawing.Size(156, 46); + this.toolStripMenuItem28.Text = "Trigger On"; + this.toolStripMenuItem28.Click += new System.EventHandler(this.toolStripMenuItem28_Click); + // + // toolStripMenuItem30 + // + this.toolStripMenuItem30.Image = global::Project.Properties.Resources.icons8_black_circle_40; + this.toolStripMenuItem30.Name = "toolStripMenuItem30"; + this.toolStripMenuItem30.Size = new System.Drawing.Size(156, 46); + this.toolStripMenuItem30.Text = "Trigger Off"; + this.toolStripMenuItem30.Click += new System.EventHandler(this.toolStripMenuItem30_Click); + // + // 바코드키엔스ToolStripMenuItem + // + this.바코드키엔스ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripMenuItem17, + this.toolStripMenuItem18, + this.triggerOnToolStripMenuItem1, + this.triggerOffToolStripMenuItem1, + this.toolStripMenuItem19, + this.connectToolStripMenuItem, + this.disConnectToolStripMenuItem, + this.toolStripMenuItem20, + this.resetToolStripMenuItem, + this.webManagerToolStripMenuItem}); + this.바코드키엔스ToolStripMenuItem.Image = global::Project.Properties.Resources.Barcode; + this.바코드키엔스ToolStripMenuItem.Name = "바코드키엔스ToolStripMenuItem"; + this.바코드키엔스ToolStripMenuItem.Size = new System.Drawing.Size(178, 46); + this.바코드키엔스ToolStripMenuItem.Text = "바코드(키엔스)"; + // + // toolStripMenuItem17 + // + this.toolStripMenuItem17.Image = global::Project.Properties.Resources.icons8_camera_40; + this.toolStripMenuItem17.Name = "toolStripMenuItem17"; + this.toolStripMenuItem17.Size = new System.Drawing.Size(173, 46); + this.toolStripMenuItem17.Text = "Get Image"; + this.toolStripMenuItem17.Click += new System.EventHandler(this.toolStripMenuItem17_Click); + // + // toolStripMenuItem18 + // + this.toolStripMenuItem18.Name = "toolStripMenuItem18"; + this.toolStripMenuItem18.Size = new System.Drawing.Size(170, 6); + // + // triggerOnToolStripMenuItem1 + // + this.triggerOnToolStripMenuItem1.Image = global::Project.Properties.Resources.icons8_green_circle_40; + this.triggerOnToolStripMenuItem1.Name = "triggerOnToolStripMenuItem1"; + this.triggerOnToolStripMenuItem1.Size = new System.Drawing.Size(173, 46); + this.triggerOnToolStripMenuItem1.Text = "Trigger On"; + this.triggerOnToolStripMenuItem1.Click += new System.EventHandler(this.triggerOnToolStripMenuItem1_Click); + // + // triggerOffToolStripMenuItem1 + // + this.triggerOffToolStripMenuItem1.Image = global::Project.Properties.Resources.icons8_black_circle_40; + this.triggerOffToolStripMenuItem1.Name = "triggerOffToolStripMenuItem1"; + this.triggerOffToolStripMenuItem1.Size = new System.Drawing.Size(173, 46); + this.triggerOffToolStripMenuItem1.Text = "Trigger Off"; + this.triggerOffToolStripMenuItem1.Click += new System.EventHandler(this.triggerOffToolStripMenuItem1_Click); + // + // toolStripMenuItem19 + // + this.toolStripMenuItem19.Name = "toolStripMenuItem19"; + this.toolStripMenuItem19.Size = new System.Drawing.Size(170, 6); + // + // connectToolStripMenuItem + // + this.connectToolStripMenuItem.Image = global::Project.Properties.Resources.Socket; + this.connectToolStripMenuItem.Name = "connectToolStripMenuItem"; + this.connectToolStripMenuItem.Size = new System.Drawing.Size(173, 46); + this.connectToolStripMenuItem.Text = "Connect"; + this.connectToolStripMenuItem.Click += new System.EventHandler(this.connectToolStripMenuItem_Click); + // + // disConnectToolStripMenuItem + // + this.disConnectToolStripMenuItem.Image = global::Project.Properties.Resources.icons8_unavailable_40; + this.disConnectToolStripMenuItem.Name = "disConnectToolStripMenuItem"; + this.disConnectToolStripMenuItem.Size = new System.Drawing.Size(173, 46); + this.disConnectToolStripMenuItem.Text = "DisConnect"; + this.disConnectToolStripMenuItem.Click += new System.EventHandler(this.disConnectToolStripMenuItem_Click); + // + // toolStripMenuItem20 + // + this.toolStripMenuItem20.Name = "toolStripMenuItem20"; + this.toolStripMenuItem20.Size = new System.Drawing.Size(170, 6); + // + // resetToolStripMenuItem + // + this.resetToolStripMenuItem.Image = global::Project.Properties.Resources.icons8_delete_40; + this.resetToolStripMenuItem.Name = "resetToolStripMenuItem"; + this.resetToolStripMenuItem.Size = new System.Drawing.Size(173, 46); + this.resetToolStripMenuItem.Text = "Reset"; + this.resetToolStripMenuItem.Click += new System.EventHandler(this.resetToolStripMenuItem_Click); + // + // webManagerToolStripMenuItem + // + this.webManagerToolStripMenuItem.Image = global::Project.Properties.Resources.icons8_what_40; + this.webManagerToolStripMenuItem.Name = "webManagerToolStripMenuItem"; + this.webManagerToolStripMenuItem.Size = new System.Drawing.Size(173, 46); + this.webManagerToolStripMenuItem.Text = "Web Manager"; + this.webManagerToolStripMenuItem.Click += new System.EventHandler(this.webManagerToolStripMenuItem_Click); + // + // toolStripSeparator7 + // + this.toolStripSeparator7.Name = "toolStripSeparator7"; + this.toolStripSeparator7.Size = new System.Drawing.Size(6, 47); + // + // toolStripButton12 + // + this.toolStripButton12.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton12.Image"))); + this.toolStripButton12.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton12.Name = "toolStripButton12"; + this.toolStripButton12.Size = new System.Drawing.Size(75, 44); + this.toolStripButton12.Text = "기록"; + this.toolStripButton12.ToolTipText = "작업 내역을 확인 합니다"; + this.toolStripButton12.Click += new System.EventHandler(this.button3_Click); + // + // panel24 + // + this.panel24.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(228)))), ((int)(((byte)(233))))); + this.panel24.Controls.Add(this.tabControl1); + this.panel24.Controls.Add(this.panel25); + this.panel24.Controls.Add(this.groupBox1); + this.panel24.Controls.Add(this.panel26); + this.panel24.Controls.Add(this.grpProgress); + this.panel24.Controls.Add(this.panel27); + this.panel24.Controls.Add(this.groupBox2); + this.panel24.Controls.Add(this.panel28); + this.panel24.Controls.Add(this.groupBox4); + this.panel24.Controls.Add(this.groupBox3); + this.panel24.Dock = System.Windows.Forms.DockStyle.Right; + this.panel24.ForeColor = System.Drawing.Color.White; + this.panel24.Location = new System.Drawing.Point(918, 48); + this.panel24.Name = "panel24"; + this.panel24.Padding = new System.Windows.Forms.Padding(10, 3, 10, 10); + this.panel24.Size = new System.Drawing.Size(345, 890); + this.panel24.TabIndex = 138; + // + // tabControl1 + // + this.tabControl1.Controls.Add(this.tabPage1); + this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tabControl1.Location = new System.Drawing.Point(10, 586); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(325, 294); + this.tabControl1.TabIndex = 156; + // + // tabPage1 + // + this.tabPage1.Controls.Add(this.groupBox5); + this.tabPage1.Location = new System.Drawing.Point(4, 27); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(3); + this.tabPage1.Size = new System.Drawing.Size(317, 263); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "운영기록"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // groupBox5 + // + this.groupBox5.Controls.Add(this.RtLog); + this.groupBox5.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBox5.Location = new System.Drawing.Point(3, 3); + this.groupBox5.Margin = new System.Windows.Forms.Padding(0); + this.groupBox5.Name = "groupBox5"; + this.groupBox5.Padding = new System.Windows.Forms.Padding(6, 5, 6, 6); + this.groupBox5.Size = new System.Drawing.Size(311, 257); + this.groupBox5.TabIndex = 138; + this.groupBox5.TabStop = false; + this.groupBox5.Text = "운영기록"; + // + // RtLog + // + this.RtLog.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(24)))), ((int)(((byte)(24)))), ((int)(((byte)(24))))); + this.RtLog.BorderStyle = System.Windows.Forms.BorderStyle.None; + sLogMessageColor5.color = System.Drawing.Color.Black; + sLogMessageColor5.gubun = "NOR"; + sLogMessageColor6.color = System.Drawing.Color.Red; + sLogMessageColor6.gubun = "ERR"; + sLogMessageColor7.color = System.Drawing.Color.Tomato; + sLogMessageColor7.gubun = "WARN"; + sLogMessageColor8.color = System.Drawing.Color.Black; + sLogMessageColor8.gubun = "MSG"; + this.RtLog.ColorList = new arCtl.sLogMessageColor[] { + sLogMessageColor5, + sLogMessageColor6, + sLogMessageColor7, + sLogMessageColor8}; + this.RtLog.DateFormat = "MM/dd HH:mm"; + this.RtLog.DefaultColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.RtLog.Dock = System.Windows.Forms.DockStyle.Fill; + this.RtLog.EnableDisplayTimer = false; + this.RtLog.EnableGubunColor = true; + this.RtLog.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.RtLog.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.RtLog.ListFormat = "[{0}] {1}"; + this.RtLog.Location = new System.Drawing.Point(6, 24); + this.RtLog.Margin = new System.Windows.Forms.Padding(0); + this.RtLog.MaxListCount = ((ushort)(1000)); + this.RtLog.MaxTextLength = ((uint)(99999999u)); + this.RtLog.MessageInterval = 50; + this.RtLog.Name = "RtLog"; + this.RtLog.Size = new System.Drawing.Size(299, 227); + this.RtLog.TabIndex = 136; + this.RtLog.Text = "adfasdfasdf"; + // + // panel25 + // + this.panel25.Dock = System.Windows.Forms.DockStyle.Top; + this.panel25.Location = new System.Drawing.Point(10, 581); + this.panel25.Name = "panel25"; + this.panel25.Padding = new System.Windows.Forms.Padding(0, 3, 10, 0); + this.panel25.Size = new System.Drawing.Size(325, 5); + this.panel25.TabIndex = 150; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.tableLayoutPanel3); + this.groupBox1.Dock = System.Windows.Forms.DockStyle.Top; + this.groupBox1.Location = new System.Drawing.Point(10, 449); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Padding = new System.Windows.Forms.Padding(10, 5, 10, 10); + this.groupBox1.Size = new System.Drawing.Size(325, 132); + this.groupBox1.TabIndex = 138; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "장비조작"; + // + // tableLayoutPanel3 + // + this.tableLayoutPanel3.ColumnCount = 3; + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33332F)); + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F)); + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F)); + this.tableLayoutPanel3.Controls.Add(this.btStart, 0, 0); + this.tableLayoutPanel3.Controls.Add(this.btReset, 2, 0); + this.tableLayoutPanel3.Controls.Add(this.btStop, 1, 0); + this.tableLayoutPanel3.Controls.Add(this.lbTime, 0, 1); + this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel3.Location = new System.Drawing.Point(10, 24); + this.tableLayoutPanel3.Margin = new System.Windows.Forms.Padding(0); + this.tableLayoutPanel3.Name = "tableLayoutPanel3"; + this.tableLayoutPanel3.RowCount = 2; + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F)); + this.tableLayoutPanel3.Size = new System.Drawing.Size(305, 98); + this.tableLayoutPanel3.TabIndex = 125; + // + // panel26 + // + this.panel26.Dock = System.Windows.Forms.DockStyle.Top; + this.panel26.Location = new System.Drawing.Point(10, 444); + this.panel26.Name = "panel26"; + this.panel26.Padding = new System.Windows.Forms.Padding(0, 3, 10, 0); + this.panel26.Size = new System.Drawing.Size(325, 5); + this.panel26.TabIndex = 152; + // + // grpProgress + // + this.grpProgress.Controls.Add(this.tableLayoutPanel5); + this.grpProgress.Dock = System.Windows.Forms.DockStyle.Top; + this.grpProgress.Location = new System.Drawing.Point(10, 394); + this.grpProgress.Name = "grpProgress"; + this.grpProgress.Padding = new System.Windows.Forms.Padding(5, 0, 5, 5); + this.grpProgress.Size = new System.Drawing.Size(325, 50); + this.grpProgress.TabIndex = 10; + this.grpProgress.TabStop = false; + this.grpProgress.Text = "작업 수량"; + // + // tableLayoutPanel5 + // + this.tableLayoutPanel5.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.Single; + this.tableLayoutPanel5.ColumnCount = 6; + this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 50F)); + this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 50F)); + this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 50F)); + this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel5.Controls.Add(this.label1, 0, 0); + this.tableLayoutPanel5.Controls.Add(this.lbCntLeft, 1, 0); + this.tableLayoutPanel5.Controls.Add(this.lbCntRight, 5, 0); + this.tableLayoutPanel5.Controls.Add(this.lbTitleNG, 4, 0); + this.tableLayoutPanel5.Controls.Add(this.label7, 2, 0); + this.tableLayoutPanel5.Controls.Add(this.lbCntPicker, 3, 0); + this.tableLayoutPanel5.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel5.Location = new System.Drawing.Point(5, 19); + this.tableLayoutPanel5.Name = "tableLayoutPanel5"; + this.tableLayoutPanel5.RowCount = 1; + this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel5.Size = new System.Drawing.Size(315, 26); + this.tableLayoutPanel5.TabIndex = 13; + // + // label1 + // + this.label1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(228)))), ((int)(((byte)(233))))); + this.label1.Dock = System.Windows.Forms.DockStyle.Fill; + this.label1.Font = new System.Drawing.Font("맑은 고딕", 8F); + this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.label1.Location = new System.Drawing.Point(1, 1); + this.label1.Margin = new System.Windows.Forms.Padding(0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(50, 24); + this.label1.TabIndex = 2; + this.label1.Text = "LEFT"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // lbCntLeft + // + this.lbCntLeft.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(200)))), ((int)(((byte)(200))))); + this.lbCntLeft.BackColor2 = System.Drawing.SystemColors.Control; + this.lbCntLeft.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbCntLeft.BorderColor = System.Drawing.Color.Black; + this.lbCntLeft.BorderColorOver = System.Drawing.Color.DarkBlue; + this.lbCntLeft.BorderSize = new System.Windows.Forms.Padding(0); + this.lbCntLeft.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbCntLeft.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbCntLeft.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbCntLeft.Font = new System.Drawing.Font("Calibri", 15F, System.Drawing.FontStyle.Bold); + this.lbCntLeft.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.lbCntLeft.GradientEnable = true; + this.lbCntLeft.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbCntLeft.GradientRepeatBG = false; + this.lbCntLeft.isButton = false; + this.lbCntLeft.Location = new System.Drawing.Point(52, 1); + this.lbCntLeft.Margin = new System.Windows.Forms.Padding(0); + this.lbCntLeft.MouseDownColor = System.Drawing.Color.Yellow; + this.lbCntLeft.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbCntLeft.msg = null; + this.lbCntLeft.Name = "lbCntLeft"; + this.lbCntLeft.ProgressBorderColor = System.Drawing.Color.Transparent; + this.lbCntLeft.ProgressColor1 = System.Drawing.Color.DimGray; + this.lbCntLeft.ProgressColor2 = System.Drawing.Color.Gray; + this.lbCntLeft.ProgressEnable = false; + this.lbCntLeft.ProgressFont = new System.Drawing.Font("Consolas", 11F, System.Drawing.FontStyle.Bold); + this.lbCntLeft.ProgressForeColor = System.Drawing.Color.White; + this.lbCntLeft.ProgressMax = 100F; + this.lbCntLeft.ProgressMin = 0F; + this.lbCntLeft.ProgressPadding = new System.Windows.Forms.Padding(3); + this.lbCntLeft.ProgressValue = 50F; + this.lbCntLeft.ShadowColor = System.Drawing.Color.LightGray; + this.lbCntLeft.Sign = ""; + this.lbCntLeft.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbCntLeft.SignColor = System.Drawing.Color.Red; + this.lbCntLeft.SignFont = new System.Drawing.Font("Consolas", 20.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbCntLeft.Size = new System.Drawing.Size(52, 24); + this.lbCntLeft.TabIndex = 8; + this.lbCntLeft.Text = "--"; + this.lbCntLeft.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbCntLeft.TextShadow = true; + this.lbCntLeft.TextVisible = true; + // + // lbCntRight + // + this.lbCntRight.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(200)))), ((int)(((byte)(200))))); + this.lbCntRight.BackColor2 = System.Drawing.SystemColors.Control; + this.lbCntRight.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbCntRight.BorderColor = System.Drawing.Color.Black; + this.lbCntRight.BorderColorOver = System.Drawing.Color.DarkBlue; + this.lbCntRight.BorderSize = new System.Windows.Forms.Padding(0); + this.lbCntRight.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbCntRight.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbCntRight.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbCntRight.Font = new System.Drawing.Font("Calibri", 15F, System.Drawing.FontStyle.Bold); + this.lbCntRight.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.lbCntRight.GradientEnable = true; + this.lbCntRight.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbCntRight.GradientRepeatBG = false; + this.lbCntRight.isButton = false; + this.lbCntRight.Location = new System.Drawing.Point(260, 1); + this.lbCntRight.Margin = new System.Windows.Forms.Padding(0); + this.lbCntRight.MouseDownColor = System.Drawing.Color.Yellow; + this.lbCntRight.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbCntRight.msg = null; + this.lbCntRight.Name = "lbCntRight"; + this.lbCntRight.ProgressBorderColor = System.Drawing.Color.Transparent; + this.lbCntRight.ProgressColor1 = System.Drawing.Color.Firebrick; + this.lbCntRight.ProgressColor2 = System.Drawing.Color.IndianRed; + this.lbCntRight.ProgressEnable = false; + this.lbCntRight.ProgressFont = new System.Drawing.Font("Consolas", 13F, System.Drawing.FontStyle.Bold); + this.lbCntRight.ProgressForeColor = System.Drawing.Color.White; + this.lbCntRight.ProgressMax = 100F; + this.lbCntRight.ProgressMin = 0F; + this.lbCntRight.ProgressPadding = new System.Windows.Forms.Padding(3); + this.lbCntRight.ProgressValue = 50F; + this.lbCntRight.ShadowColor = System.Drawing.Color.LightGray; + this.lbCntRight.Sign = ""; + this.lbCntRight.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbCntRight.SignColor = System.Drawing.Color.Red; + this.lbCntRight.SignFont = new System.Drawing.Font("Consolas", 20.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbCntRight.Size = new System.Drawing.Size(54, 24); + this.lbCntRight.TabIndex = 7; + this.lbCntRight.Text = "--"; + this.lbCntRight.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbCntRight.TextShadow = true; + this.lbCntRight.TextVisible = true; + // + // lbTitleNG + // + this.lbTitleNG.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(228)))), ((int)(((byte)(233))))); + this.lbTitleNG.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbTitleNG.Font = new System.Drawing.Font("맑은 고딕", 8F); + this.lbTitleNG.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.lbTitleNG.Location = new System.Drawing.Point(209, 1); + this.lbTitleNG.Margin = new System.Windows.Forms.Padding(0); + this.lbTitleNG.Name = "lbTitleNG"; + this.lbTitleNG.Size = new System.Drawing.Size(50, 24); + this.lbTitleNG.TabIndex = 2; + this.lbTitleNG.Text = "RIGHT"; + this.lbTitleNG.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label7 + // + this.label7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(228)))), ((int)(((byte)(233))))); + this.label7.Dock = System.Windows.Forms.DockStyle.Fill; + this.label7.Font = new System.Drawing.Font("맑은 고딕", 8F); + this.label7.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.label7.Location = new System.Drawing.Point(105, 1); + this.label7.Margin = new System.Windows.Forms.Padding(0); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(50, 24); + this.label7.TabIndex = 2; + this.label7.Text = "PICKER"; + this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // lbCntPicker + // + this.lbCntPicker.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(200)))), ((int)(((byte)(200))))); + this.lbCntPicker.BackColor2 = System.Drawing.SystemColors.Control; + this.lbCntPicker.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbCntPicker.BorderColor = System.Drawing.Color.Black; + this.lbCntPicker.BorderColorOver = System.Drawing.Color.DarkBlue; + this.lbCntPicker.BorderSize = new System.Windows.Forms.Padding(0); + this.lbCntPicker.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbCntPicker.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbCntPicker.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbCntPicker.Font = new System.Drawing.Font("Calibri", 15F, System.Drawing.FontStyle.Bold); + this.lbCntPicker.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.lbCntPicker.GradientEnable = true; + this.lbCntPicker.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbCntPicker.GradientRepeatBG = false; + this.lbCntPicker.isButton = false; + this.lbCntPicker.Location = new System.Drawing.Point(156, 1); + this.lbCntPicker.Margin = new System.Windows.Forms.Padding(0); + this.lbCntPicker.MouseDownColor = System.Drawing.Color.Yellow; + this.lbCntPicker.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbCntPicker.msg = null; + this.lbCntPicker.Name = "lbCntPicker"; + this.lbCntPicker.ProgressBorderColor = System.Drawing.Color.Transparent; + this.lbCntPicker.ProgressColor1 = System.Drawing.Color.Firebrick; + this.lbCntPicker.ProgressColor2 = System.Drawing.Color.IndianRed; + this.lbCntPicker.ProgressEnable = false; + this.lbCntPicker.ProgressFont = new System.Drawing.Font("Consolas", 13F, System.Drawing.FontStyle.Bold); + this.lbCntPicker.ProgressForeColor = System.Drawing.Color.White; + this.lbCntPicker.ProgressMax = 100F; + this.lbCntPicker.ProgressMin = 0F; + this.lbCntPicker.ProgressPadding = new System.Windows.Forms.Padding(3); + this.lbCntPicker.ProgressValue = 50F; + this.lbCntPicker.ShadowColor = System.Drawing.Color.LightGray; + this.lbCntPicker.Sign = ""; + this.lbCntPicker.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbCntPicker.SignColor = System.Drawing.Color.Red; + this.lbCntPicker.SignFont = new System.Drawing.Font("Consolas", 20.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbCntPicker.Size = new System.Drawing.Size(52, 24); + this.lbCntPicker.TabIndex = 7; + this.lbCntPicker.Text = "--"; + this.lbCntPicker.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbCntPicker.TextShadow = true; + this.lbCntPicker.TextVisible = true; + // + // panel27 + // + this.panel27.Dock = System.Windows.Forms.DockStyle.Top; + this.panel27.Location = new System.Drawing.Point(10, 389); + this.panel27.Name = "panel27"; + this.panel27.Padding = new System.Windows.Forms.Padding(0, 3, 10, 0); + this.panel27.Size = new System.Drawing.Size(325, 5); + this.panel27.TabIndex = 146; + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.tableLayoutPanel4); + this.groupBox2.Dock = System.Windows.Forms.DockStyle.Top; + this.groupBox2.Location = new System.Drawing.Point(10, 254); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Padding = new System.Windows.Forms.Padding(10, 0, 10, 10); + this.groupBox2.Size = new System.Drawing.Size(325, 135); + this.groupBox2.TabIndex = 153; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "바코드"; + // + // tableLayoutPanel4 + // + this.tableLayoutPanel4.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.Single; + this.tableLayoutPanel4.ColumnCount = 2; + this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 58F)); + this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel4.Controls.Add(this.tbVisionL, 1, 2); + this.tableLayoutPanel4.Controls.Add(this.label5, 0, 0); + this.tableLayoutPanel4.Controls.Add(this.tbBarcodeR, 1, 0); + this.tableLayoutPanel4.Controls.Add(this.label6, 0, 3); + this.tableLayoutPanel4.Controls.Add(this.tbVisionR, 1, 3); + this.tableLayoutPanel4.Controls.Add(this.label2, 0, 2); + this.tableLayoutPanel4.Controls.Add(this.label3, 0, 1); + this.tableLayoutPanel4.Controls.Add(this.tbBarcodeF, 1, 1); + this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel4.Location = new System.Drawing.Point(10, 19); + this.tableLayoutPanel4.Name = "tableLayoutPanel4"; + this.tableLayoutPanel4.RowCount = 4; + this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.00062F)); + this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 24.99813F)); + this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.00062F)); + this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.00062F)); + this.tableLayoutPanel4.Size = new System.Drawing.Size(305, 106); + this.tableLayoutPanel4.TabIndex = 14; + // + // tbVisionL + // + this.tbVisionL.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(200)))), ((int)(((byte)(200))))); + this.tbVisionL.BackColor2 = System.Drawing.SystemColors.Control; + this.tbVisionL.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.tbVisionL.BorderColor = System.Drawing.Color.Black; + this.tbVisionL.BorderColorOver = System.Drawing.Color.DarkBlue; + this.tbVisionL.BorderSize = new System.Windows.Forms.Padding(0); + this.tbVisionL.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.tbVisionL.Cursor = System.Windows.Forms.Cursors.Arrow; + this.tbVisionL.Dock = System.Windows.Forms.DockStyle.Fill; + this.tbVisionL.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tbVisionL.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.tbVisionL.GradientEnable = true; + this.tbVisionL.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.tbVisionL.GradientRepeatBG = false; + this.tbVisionL.isButton = false; + this.tbVisionL.Location = new System.Drawing.Point(60, 53); + this.tbVisionL.Margin = new System.Windows.Forms.Padding(0); + this.tbVisionL.MouseDownColor = System.Drawing.Color.Yellow; + this.tbVisionL.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.tbVisionL.msg = null; + this.tbVisionL.Name = "tbVisionL"; + this.tbVisionL.ProgressBorderColor = System.Drawing.Color.Transparent; + this.tbVisionL.ProgressColor1 = System.Drawing.Color.DimGray; + this.tbVisionL.ProgressColor2 = System.Drawing.Color.Gray; + this.tbVisionL.ProgressEnable = false; + this.tbVisionL.ProgressFont = new System.Drawing.Font("Consolas", 11F, System.Drawing.FontStyle.Bold); + this.tbVisionL.ProgressForeColor = System.Drawing.Color.White; + this.tbVisionL.ProgressMax = 100F; + this.tbVisionL.ProgressMin = 0F; + this.tbVisionL.ProgressPadding = new System.Windows.Forms.Padding(3); + this.tbVisionL.ProgressValue = 50F; + this.tbVisionL.ShadowColor = System.Drawing.Color.LightGray; + this.tbVisionL.Sign = ""; + this.tbVisionL.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.tbVisionL.SignColor = System.Drawing.Color.Red; + this.tbVisionL.SignFont = new System.Drawing.Font("Consolas", 20.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tbVisionL.Size = new System.Drawing.Size(244, 25); + this.tbVisionL.TabIndex = 9; + this.tbVisionL.Text = "{VISION RESULT}"; + this.tbVisionL.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.tbVisionL.TextShadow = true; + this.tbVisionL.TextVisible = true; + // + // label5 + // + this.label5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(228)))), ((int)(((byte)(233))))); + this.label5.Dock = System.Windows.Forms.DockStyle.Fill; + this.label5.Font = new System.Drawing.Font("맑은 고딕", 8F); + this.label5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.label5.Location = new System.Drawing.Point(1, 1); + this.label5.Margin = new System.Windows.Forms.Padding(0); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(58, 25); + this.label5.TabIndex = 2; + this.label5.Text = "PICKER-R"; + this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // tbBarcodeR + // + this.tbBarcodeR.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(200)))), ((int)(((byte)(200))))); + this.tbBarcodeR.BackColor2 = System.Drawing.SystemColors.Control; + this.tbBarcodeR.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.tbBarcodeR.BorderColor = System.Drawing.Color.Black; + this.tbBarcodeR.BorderColorOver = System.Drawing.Color.DarkBlue; + this.tbBarcodeR.BorderSize = new System.Windows.Forms.Padding(0); + this.tbBarcodeR.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.tbBarcodeR.Cursor = System.Windows.Forms.Cursors.Arrow; + this.tbBarcodeR.Dock = System.Windows.Forms.DockStyle.Fill; + this.tbBarcodeR.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tbBarcodeR.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.tbBarcodeR.GradientEnable = true; + this.tbBarcodeR.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.tbBarcodeR.GradientRepeatBG = false; + this.tbBarcodeR.isButton = false; + this.tbBarcodeR.Location = new System.Drawing.Point(60, 1); + this.tbBarcodeR.Margin = new System.Windows.Forms.Padding(0); + this.tbBarcodeR.MouseDownColor = System.Drawing.Color.Yellow; + this.tbBarcodeR.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.tbBarcodeR.msg = null; + this.tbBarcodeR.Name = "tbBarcodeR"; + this.tbBarcodeR.ProgressBorderColor = System.Drawing.Color.Transparent; + this.tbBarcodeR.ProgressColor1 = System.Drawing.Color.DimGray; + this.tbBarcodeR.ProgressColor2 = System.Drawing.Color.Gray; + this.tbBarcodeR.ProgressEnable = false; + this.tbBarcodeR.ProgressFont = new System.Drawing.Font("Consolas", 11F, System.Drawing.FontStyle.Bold); + this.tbBarcodeR.ProgressForeColor = System.Drawing.Color.White; + this.tbBarcodeR.ProgressMax = 100F; + this.tbBarcodeR.ProgressMin = 0F; + this.tbBarcodeR.ProgressPadding = new System.Windows.Forms.Padding(3); + this.tbBarcodeR.ProgressValue = 50F; + this.tbBarcodeR.ShadowColor = System.Drawing.Color.LightGray; + this.tbBarcodeR.Sign = ""; + this.tbBarcodeR.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.tbBarcodeR.SignColor = System.Drawing.Color.Red; + this.tbBarcodeR.SignFont = new System.Drawing.Font("Consolas", 20.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tbBarcodeR.Size = new System.Drawing.Size(244, 25); + this.tbBarcodeR.TabIndex = 8; + this.tbBarcodeR.Text = "{BARCODE DATA}"; + this.tbBarcodeR.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.tbBarcodeR.TextShadow = true; + this.tbBarcodeR.TextVisible = true; + // + // label6 + // + this.label6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(228)))), ((int)(((byte)(233))))); + this.label6.Dock = System.Windows.Forms.DockStyle.Fill; + this.label6.Font = new System.Drawing.Font("맑은 고딕", 8F); + this.label6.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.label6.Location = new System.Drawing.Point(1, 79); + this.label6.Margin = new System.Windows.Forms.Padding(0); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(58, 26); + this.label6.TabIndex = 2; + this.label6.Text = "RIGHT"; + this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // tbVisionR + // + this.tbVisionR.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(200)))), ((int)(((byte)(200))))); + this.tbVisionR.BackColor2 = System.Drawing.SystemColors.Control; + this.tbVisionR.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.tbVisionR.BorderColor = System.Drawing.Color.Black; + this.tbVisionR.BorderColorOver = System.Drawing.Color.DarkBlue; + this.tbVisionR.BorderSize = new System.Windows.Forms.Padding(0); + this.tbVisionR.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.tbVisionR.Cursor = System.Windows.Forms.Cursors.Arrow; + this.tbVisionR.Dock = System.Windows.Forms.DockStyle.Fill; + this.tbVisionR.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tbVisionR.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.tbVisionR.GradientEnable = true; + this.tbVisionR.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.tbVisionR.GradientRepeatBG = false; + this.tbVisionR.isButton = false; + this.tbVisionR.Location = new System.Drawing.Point(60, 79); + this.tbVisionR.Margin = new System.Windows.Forms.Padding(0); + this.tbVisionR.MouseDownColor = System.Drawing.Color.Yellow; + this.tbVisionR.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.tbVisionR.msg = null; + this.tbVisionR.Name = "tbVisionR"; + this.tbVisionR.ProgressBorderColor = System.Drawing.Color.Transparent; + this.tbVisionR.ProgressColor1 = System.Drawing.Color.DimGray; + this.tbVisionR.ProgressColor2 = System.Drawing.Color.Gray; + this.tbVisionR.ProgressEnable = false; + this.tbVisionR.ProgressFont = new System.Drawing.Font("Consolas", 11F, System.Drawing.FontStyle.Bold); + this.tbVisionR.ProgressForeColor = System.Drawing.Color.White; + this.tbVisionR.ProgressMax = 100F; + this.tbVisionR.ProgressMin = 0F; + this.tbVisionR.ProgressPadding = new System.Windows.Forms.Padding(3); + this.tbVisionR.ProgressValue = 50F; + this.tbVisionR.ShadowColor = System.Drawing.Color.LightGray; + this.tbVisionR.Sign = ""; + this.tbVisionR.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.tbVisionR.SignColor = System.Drawing.Color.Red; + this.tbVisionR.SignFont = new System.Drawing.Font("Consolas", 20.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tbVisionR.Size = new System.Drawing.Size(244, 26); + this.tbVisionR.TabIndex = 8; + this.tbVisionR.Text = "{BARCODE DATA}"; + this.tbVisionR.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.tbVisionR.TextShadow = true; + this.tbVisionR.TextVisible = true; + // + // label2 + // + this.label2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(228)))), ((int)(((byte)(233))))); + this.label2.Font = new System.Drawing.Font("맑은 고딕", 8F); + this.label2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.label2.Location = new System.Drawing.Point(1, 53); + this.label2.Margin = new System.Windows.Forms.Padding(0); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(58, 19); + this.label2.TabIndex = 2; + this.label2.Text = "LEFT"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label3 + // + this.label3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(228)))), ((int)(((byte)(233))))); + this.label3.Dock = System.Windows.Forms.DockStyle.Fill; + this.label3.Font = new System.Drawing.Font("맑은 고딕", 8F); + this.label3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.label3.Location = new System.Drawing.Point(1, 27); + this.label3.Margin = new System.Windows.Forms.Padding(0); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(58, 25); + this.label3.TabIndex = 2; + this.label3.Text = "PICKER-F"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // tbBarcodeF + // + this.tbBarcodeF.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(200)))), ((int)(((byte)(200))))); + this.tbBarcodeF.BackColor2 = System.Drawing.SystemColors.Control; + this.tbBarcodeF.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.tbBarcodeF.BorderColor = System.Drawing.Color.Black; + this.tbBarcodeF.BorderColorOver = System.Drawing.Color.DarkBlue; + this.tbBarcodeF.BorderSize = new System.Windows.Forms.Padding(0); + this.tbBarcodeF.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.tbBarcodeF.Cursor = System.Windows.Forms.Cursors.Arrow; + this.tbBarcodeF.Dock = System.Windows.Forms.DockStyle.Fill; + this.tbBarcodeF.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tbBarcodeF.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.tbBarcodeF.GradientEnable = true; + this.tbBarcodeF.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.tbBarcodeF.GradientRepeatBG = false; + this.tbBarcodeF.isButton = false; + this.tbBarcodeF.Location = new System.Drawing.Point(60, 27); + this.tbBarcodeF.Margin = new System.Windows.Forms.Padding(0); + this.tbBarcodeF.MouseDownColor = System.Drawing.Color.Yellow; + this.tbBarcodeF.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.tbBarcodeF.msg = null; + this.tbBarcodeF.Name = "tbBarcodeF"; + this.tbBarcodeF.ProgressBorderColor = System.Drawing.Color.Transparent; + this.tbBarcodeF.ProgressColor1 = System.Drawing.Color.DimGray; + this.tbBarcodeF.ProgressColor2 = System.Drawing.Color.Gray; + this.tbBarcodeF.ProgressEnable = false; + this.tbBarcodeF.ProgressFont = new System.Drawing.Font("Consolas", 11F, System.Drawing.FontStyle.Bold); + this.tbBarcodeF.ProgressForeColor = System.Drawing.Color.White; + this.tbBarcodeF.ProgressMax = 100F; + this.tbBarcodeF.ProgressMin = 0F; + this.tbBarcodeF.ProgressPadding = new System.Windows.Forms.Padding(3); + this.tbBarcodeF.ProgressValue = 50F; + this.tbBarcodeF.ShadowColor = System.Drawing.Color.LightGray; + this.tbBarcodeF.Sign = ""; + this.tbBarcodeF.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.tbBarcodeF.SignColor = System.Drawing.Color.Red; + this.tbBarcodeF.SignFont = new System.Drawing.Font("Consolas", 20.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tbBarcodeF.Size = new System.Drawing.Size(244, 25); + this.tbBarcodeF.TabIndex = 8; + this.tbBarcodeF.Text = "{BARCODE DATA}"; + this.tbBarcodeF.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.tbBarcodeF.TextShadow = true; + this.tbBarcodeF.TextVisible = true; + // + // panel28 + // + this.panel28.Dock = System.Windows.Forms.DockStyle.Top; + this.panel28.Location = new System.Drawing.Point(10, 249); + this.panel28.Name = "panel28"; + this.panel28.Padding = new System.Windows.Forms.Padding(0, 3, 10, 0); + this.panel28.Size = new System.Drawing.Size(325, 5); + this.panel28.TabIndex = 154; + // + // groupBox4 + // + this.groupBox4.Controls.Add(this.keyenceviewR); + this.groupBox4.Controls.Add(this.keyenceviewF); + this.groupBox4.Dock = System.Windows.Forms.DockStyle.Top; + this.groupBox4.Location = new System.Drawing.Point(10, 97); + this.groupBox4.Name = "groupBox4"; + this.groupBox4.Padding = new System.Windows.Forms.Padding(10, 0, 10, 10); + this.groupBox4.Size = new System.Drawing.Size(325, 152); + this.groupBox4.TabIndex = 7; + this.groupBox4.TabStop = false; + this.groupBox4.Text = "비젼(피커)"; + // + // keyenceviewR + // + this.keyenceviewR.BackColor = System.Drawing.Color.Silver; + this.keyenceviewR.Dock = System.Windows.Forms.DockStyle.Left; + this.keyenceviewR.Location = new System.Drawing.Point(10, 19); + this.keyenceviewR.Name = "keyenceviewR"; + this.keyenceviewR.Size = new System.Drawing.Size(150, 123); + this.keyenceviewR.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.keyenceviewR.TabIndex = 9; + this.keyenceviewR.TabStop = false; + // + // keyenceviewF + // + this.keyenceviewF.Dock = System.Windows.Forms.DockStyle.Right; + this.keyenceviewF.Location = new System.Drawing.Point(165, 19); + this.keyenceviewF.Name = "keyenceviewF"; + this.keyenceviewF.Size = new System.Drawing.Size(150, 123); + this.keyenceviewF.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.keyenceviewF.TabIndex = 8; + this.keyenceviewF.TabStop = false; + // + // groupBox3 + // + this.groupBox3.Controls.Add(this.lbModelName); + this.groupBox3.Controls.Add(this.arLabel1); + this.groupBox3.Dock = System.Windows.Forms.DockStyle.Top; + this.groupBox3.Location = new System.Drawing.Point(10, 3); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Padding = new System.Windows.Forms.Padding(10, 0, 10, 10); + this.groupBox3.Size = new System.Drawing.Size(325, 94); + this.groupBox3.TabIndex = 155; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "모델정보"; + // + // lbModelName + // + this.lbModelName.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(228)))), ((int)(((byte)(233))))); + this.lbModelName.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(228)))), ((int)(((byte)(233))))); + this.lbModelName.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbModelName.BorderColor = System.Drawing.Color.Black; + this.lbModelName.BorderColorOver = System.Drawing.Color.DarkBlue; + this.lbModelName.BorderSize = new System.Windows.Forms.Padding(0); + this.lbModelName.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbModelName.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbModelName.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbModelName.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbModelName.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.lbModelName.GradientEnable = true; + this.lbModelName.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbModelName.GradientRepeatBG = false; + this.lbModelName.isButton = false; + this.lbModelName.Location = new System.Drawing.Point(10, 19); + this.lbModelName.Margin = new System.Windows.Forms.Padding(0); + this.lbModelName.MouseDownColor = System.Drawing.Color.Yellow; + this.lbModelName.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbModelName.msg = null; + this.lbModelName.Name = "lbModelName"; + this.lbModelName.ProgressBorderColor = System.Drawing.Color.Transparent; + this.lbModelName.ProgressColor1 = System.Drawing.Color.DimGray; + this.lbModelName.ProgressColor2 = System.Drawing.Color.Gray; + this.lbModelName.ProgressEnable = false; + this.lbModelName.ProgressFont = new System.Drawing.Font("Consolas", 11F, System.Drawing.FontStyle.Bold); + this.lbModelName.ProgressForeColor = System.Drawing.Color.White; + this.lbModelName.ProgressMax = 100F; + this.lbModelName.ProgressMin = 0F; + this.lbModelName.ProgressPadding = new System.Windows.Forms.Padding(3); + this.lbModelName.ProgressValue = 50F; + this.lbModelName.ShadowColor = System.Drawing.Color.LightGray; + this.lbModelName.Sign = ""; + this.lbModelName.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbModelName.SignColor = System.Drawing.Color.Red; + this.lbModelName.SignFont = new System.Drawing.Font("Consolas", 20.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbModelName.Size = new System.Drawing.Size(305, 45); + this.lbModelName.TabIndex = 8; + this.lbModelName.Text = "{MODEL NAME}"; + this.lbModelName.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbModelName.TextShadow = true; + this.lbModelName.TextVisible = true; + // + // arLabel1 + // + this.arLabel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(228)))), ((int)(((byte)(233))))); + this.arLabel1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(228)))), ((int)(((byte)(233))))); + this.arLabel1.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel1.BorderColor = System.Drawing.Color.Black; + this.arLabel1.BorderColorOver = System.Drawing.Color.DarkBlue; + this.arLabel1.BorderSize = new System.Windows.Forms.Padding(0); + this.arLabel1.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel1.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.arLabel1.Font = new System.Drawing.Font("Arial", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel1.GradientEnable = true; + this.arLabel1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel1.GradientRepeatBG = false; + this.arLabel1.isButton = false; + this.arLabel1.Location = new System.Drawing.Point(10, 64); + this.arLabel1.Margin = new System.Windows.Forms.Padding(0); + this.arLabel1.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel1.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel1.msg = null; + this.arLabel1.Name = "arLabel1"; + this.arLabel1.ProgressBorderColor = System.Drawing.Color.Transparent; + this.arLabel1.ProgressColor1 = System.Drawing.Color.DimGray; + this.arLabel1.ProgressColor2 = System.Drawing.Color.Gray; + this.arLabel1.ProgressEnable = false; + this.arLabel1.ProgressFont = new System.Drawing.Font("Consolas", 11F, System.Drawing.FontStyle.Bold); + this.arLabel1.ProgressForeColor = System.Drawing.Color.White; + this.arLabel1.ProgressMax = 100F; + this.arLabel1.ProgressMin = 0F; + this.arLabel1.ProgressPadding = new System.Windows.Forms.Padding(3); + this.arLabel1.ProgressValue = 50F; + this.arLabel1.ShadowColor = System.Drawing.Color.LightGray; + this.arLabel1.Sign = ""; + this.arLabel1.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel1.SignColor = System.Drawing.Color.Red; + this.arLabel1.SignFont = new System.Drawing.Font("Microsoft Sans Serif", 20.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel1.Size = new System.Drawing.Size(305, 20); + this.arLabel1.TabIndex = 9; + this.arLabel1.Text = "{CVMODE}"; + this.arLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel1.TextShadow = true; + this.arLabel1.TextVisible = true; + // + // panel9 + // + this.panel9.Controls.Add(this.lbMsg); + this.panel9.Dock = System.Windows.Forms.DockStyle.Top; + this.panel9.Location = new System.Drawing.Point(1, 48); + this.panel9.Name = "panel9"; + this.panel9.Size = new System.Drawing.Size(917, 42); + this.panel9.TabIndex = 144; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 3; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33332F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F)); + this.tableLayoutPanel1.Controls.Add(this.panel37, 2, 0); + this.tableLayoutPanel1.Controls.Add(this.panel10, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.panel15, 0, 0); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Top; + this.tableLayoutPanel1.Location = new System.Drawing.Point(1, 493); + this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(0); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 1; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(917, 56); + this.tableLayoutPanel1.TabIndex = 159; + // + // panel1 + // + this.panel1.Controls.Add(this.hmi1); + this.panel1.Controls.Add(this.listView21); + this.panel1.Dock = System.Windows.Forms.DockStyle.Top; + this.panel1.Location = new System.Drawing.Point(1, 90); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(917, 403); + this.panel1.TabIndex = 160; + // + // hmi1 + // + this.hmi1.arAIRDetect = false; + this.hmi1.arConn_BCD = false; + this.hmi1.arConn_DIO = true; + this.hmi1.arConn_MOT = true; + this.hmi1.arConn_PLC = false; + this.hmi1.arConn_REM = false; + this.hmi1.arConvRun = false; + this.hmi1.arCountPrint0 = 0; + this.hmi1.arCountPrint1 = 0; + this.hmi1.arCountV0 = 0; + this.hmi1.arCountV1 = 0; + this.hmi1.arCountV2 = 0; + this.hmi1.arDebugMode = false; + this.hmi1.arDI_Cv_Detect = new bool[] { + false, + false, + false, + false, + false, + false, + false, + false}; + this.hmi1.arDI_Emergency = false; + this.hmi1.arDI_SaftyOk = true; + this.hmi1.arDIAir = false; + this.hmi1.arFG_CMD_YP_FPICKON = false; + this.hmi1.arFG_CMD_YP_RPICKON = false; + this.hmi1.arFG_RDY_YP_FPICKOF = false; + this.hmi1.arFG_RDY_YP_FPICKON = false; + this.hmi1.arFG_RDY_YP_RPICKOF = false; + this.hmi1.arFG_RDY_YP_RPICKON = false; + this.hmi1.arFGPrinter0END = false; + this.hmi1.arFGPrinter0RDY = false; + this.hmi1.arFGPrinter1END = false; + this.hmi1.arFGPrinter1RDY = false; + this.hmi1.arFGPrinter2END = false; + this.hmi1.arFGPrinter2RDY = false; + this.hmi1.arFGVision0END = false; + this.hmi1.arFGVision0RDY = false; + this.hmi1.arFGVision1END = false; + this.hmi1.arFGVision1RDY = false; + this.hmi1.arFGVision2END = false; + this.hmi1.arFGVision2RDY = false; + this.hmi1.arFlag_Minspace = false; + this.hmi1.arFlag_UnloaderBusy = false; + this.hmi1.arFlag_UnloaderErr = false; + this.hmi1.arFont_count = new System.Drawing.Font("Tahoma", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.hmi1.arFont_picker = new System.Drawing.Font("Consolas", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.hmi1.arFont_PortMessage = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.hmi1.arFreespace = 0D; + this.hmi1.arHomeProgress = new double[] { + 10D, + 20D, + 30D, + 40D, + 50D, + 60D, + 100D}; + this.hmi1.arInitMOT = false; + this.hmi1.arIsRunning = false; + this.hmi1.arJobEND = false; + this.hmi1.arLastDetectIndex = 3; + this.hmi1.arLowDiskSpace = false; + this.hmi1.arMagnet0 = false; + this.hmi1.arMagnet1 = false; + this.hmi1.arMagnet2 = false; + this.hmi1.arMenus = new UIControl.CMenu[0]; + this.hmi1.arMotILockCVL = false; + this.hmi1.arMotILockCVR = false; + this.hmi1.arMotILockPKX = false; + this.hmi1.arMotILockPKZ = false; + this.hmi1.arMotILockPLM = false; + this.hmi1.arMotILockPLZ = false; + this.hmi1.arMotILockPRL = false; + this.hmi1.arMotILockPRM = false; + this.hmi1.arMotILockPRR = false; + this.hmi1.arMotILockPRZ = false; + this.hmi1.arMotILockVS0 = false; + this.hmi1.arMotILockVS1 = false; + this.hmi1.arMotILockVS2 = false; + this.hmi1.arMotorLengthY = 1000D; + this.hmi1.arMotorLengthZL = 600D; + this.hmi1.arMotorLengthZR = 600D; + this.hmi1.arMotorPosition = new double[] { + 0D, + 0D, + 0D, + 0D, + 0D, + 0D, + 0D}; + this.hmi1.arMotPosNameLM = null; + this.hmi1.arMotPosNameLZ = null; + this.hmi1.arMotPosNamePX = null; + this.hmi1.arMotPosNamePZ = null; + this.hmi1.arMotPosNameRM = null; + this.hmi1.arMotPosNameRZ = null; + this.hmi1.arPickerSafeZone = false; + this.hmi1.arPLItemON = false; + this.hmi1.arPortLItemOn = false; + this.hmi1.arPortRItemOn = false; + this.hmi1.arPRItemON = false; + this.hmi1.arUnloaderSeq = ((byte)(0)); + cPicker3.HasRealItemOn = false; + cPicker3.ItemOn = false; + cPicker3.Overload = true; + cPicker3.PortIndex = ((short)(-1)); + cPicker3.PortPos = "13"; + cPicker3.PreCheckItemOn = false; + cPicker3.PrintPos = null; + cPicker3.VacOutput = new bool[] { + false, + false, + false, + false}; + cPicker4.HasRealItemOn = false; + cPicker4.ItemOn = false; + cPicker4.Overload = false; + cPicker4.PortIndex = ((short)(-1)); + cPicker4.PortPos = "7"; + cPicker4.PreCheckItemOn = false; + cPicker4.PrintPos = null; + cPicker4.VacOutput = new bool[] { + false, + false, + false, + false}; + this.hmi1.arVar_Picker = new UIControl.CPicker[] { + cPicker3, + cPicker4}; + cPort4.AlignOK = ((byte)(0)); + cPort4.AnimationStepPort = 9; + cPort4.arrowIndex = 2; + cPort4.bgColor = System.Drawing.Color.Lime; + cPort4.CartSize = 0; + cPort4.DetectUp = true; + cPort4.Enable = true; + cPort4.errorCount = 0; + cPort4.fgColor = System.Drawing.Color.White; + cPort4.fgColorCount = System.Drawing.Color.Empty; + cPort4.LimitLower = true; + cPort4.LimitUpper = false; + cPort4.MotorDir = true; + cPort4.MotorRun = true; + cPort4.Ready = false; + cPort4.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cPort4.Rect"))); + cPort4.rect_count = new System.Drawing.Rectangle(0, 0, 0, 0); + cPort4.rect_title = new System.Drawing.Rectangle(0, 0, 0, 0); + cPort4.reelCount = 0; + cPort4.reelNo = -1; + cPort4.SaftyErr = false; + cPort4.State = ((ushort)(0)); + cPort4.title = "7\""; + cPort5.AlignOK = ((byte)(0)); + cPort5.AnimationStepPort = 9; + cPort5.arrowIndex = 2; + cPort5.bgColor = System.Drawing.Color.Lime; + cPort5.CartSize = 0; + cPort5.DetectUp = true; + cPort5.Enable = true; + cPort5.errorCount = 0; + cPort5.fgColor = System.Drawing.Color.White; + cPort5.fgColorCount = System.Drawing.Color.Empty; + cPort5.LimitLower = false; + cPort5.LimitUpper = true; + cPort5.MotorDir = false; + cPort5.MotorRun = true; + cPort5.Ready = false; + cPort5.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cPort5.Rect"))); + cPort5.rect_count = new System.Drawing.Rectangle(0, 0, 0, 0); + cPort5.rect_title = new System.Drawing.Rectangle(0, 0, 0, 0); + cPort5.reelCount = 0; + cPort5.reelNo = -1; + cPort5.SaftyErr = false; + cPort5.State = ((ushort)(0)); + cPort5.title = "13\""; + cPort6.AlignOK = ((byte)(0)); + cPort6.AnimationStepPort = 9; + cPort6.arrowIndex = 2; + cPort6.bgColor = System.Drawing.Color.Lime; + cPort6.CartSize = 0; + cPort6.DetectUp = true; + cPort6.Enable = true; + cPort6.errorCount = 0; + cPort6.fgColor = System.Drawing.Color.White; + cPort6.fgColorCount = System.Drawing.Color.Empty; + cPort6.LimitLower = false; + cPort6.LimitUpper = false; + cPort6.MotorDir = false; + cPort6.MotorRun = false; + cPort6.Ready = true; + cPort6.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cPort6.Rect"))); + cPort6.rect_count = new System.Drawing.Rectangle(0, 0, 0, 0); + cPort6.rect_title = new System.Drawing.Rectangle(0, 0, 0, 0); + cPort6.reelCount = 0; + cPort6.reelNo = -1; + cPort6.SaftyErr = false; + cPort6.State = ((ushort)(0)); + cPort6.title = "7\""; + this.hmi1.arVar_Port = new UIControl.CPort[] { + cPort4, + cPort5, + cPort6}; + this.hmi1.arVision_RID = null; + this.hmi1.arVision_SID = null; + this.hmi1.arVisionProcessC = false; + this.hmi1.arVisionProcessL = false; + this.hmi1.arVisionProcessR = false; + this.hmi1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.hmi1.Dock = System.Windows.Forms.DockStyle.Fill; + this.hmi1.Font = new System.Drawing.Font("Times New Roman", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.hmi1.ForeColor = System.Drawing.Color.LightGray; + this.hmi1.L_PICK_BW = false; + this.hmi1.L_PICK_FW = false; + this.hmi1.Location = new System.Drawing.Point(0, 0); + this.hmi1.Margin = new System.Windows.Forms.Padding(0); + this.hmi1.MessageBody = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold); + this.hmi1.MessageTitle = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.hmi1.MotionHome = false; + this.hmi1.Name = "hmi1"; + this.hmi1.PrintLPICK = false; + this.hmi1.PrintRPICK = false; + this.hmi1.R_PICK_BW = false; + this.hmi1.R_PICK_FW = false; + this.hmi1.Scean = UIControl.HMI.eScean.Nomal; + this.hmi1.Size = new System.Drawing.Size(466, 403); + this.hmi1.TabIndex = 0; + this.hmi1.ZoneItemClick += new System.EventHandler(this.hmi1_ZoneItemClick); + // + // listView21 + // + this.listView21.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); + this.listView21.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + colorData9.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(45)))), ((int)(((byte)(45))))); + colorData9.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + colorData9.ForeColor = System.Drawing.Color.White; + colorData9.Tag = ""; + colorData10.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorData10.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + colorData10.ForeColor = System.Drawing.Color.White; + colorData10.Tag = ""; + colorData11.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(229)))), ((int)(((byte)(75)))), ((int)(((byte)(75))))); + colorData11.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(229)))), ((int)(((byte)(75)))), ((int)(((byte)(75))))); + colorData11.ForeColor = System.Drawing.Color.White; + colorData11.Tag = ""; + colorData12.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(134)))), ((int)(((byte)(75)))), ((int)(((byte)(225))))); + colorData12.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(134)))), ((int)(((byte)(75)))), ((int)(((byte)(225))))); + colorData12.ForeColor = System.Drawing.Color.White; + colorData12.Tag = ""; + colorData13.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(77)))), ((int)(((byte)(157))))); + colorData13.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(56)))), ((int)(((byte)(77)))), ((int)(((byte)(157))))); + colorData13.ForeColor = System.Drawing.Color.White; + colorData13.Tag = ""; + colorData14.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(251)))), ((int)(((byte)(155)))), ((int)(((byte)(42))))); + colorData14.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(251)))), ((int)(((byte)(155)))), ((int)(((byte)(42))))); + colorData14.ForeColor = System.Drawing.Color.Black; + colorData14.Tag = ""; + colorData15.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(22)))), ((int)(((byte)(124)))), ((int)(((byte)(128))))); + colorData15.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(22)))), ((int)(((byte)(124)))), ((int)(((byte)(128))))); + colorData15.ForeColor = System.Drawing.Color.WhiteSmoke; + colorData15.Tag = ""; + colorData16.BackColor = System.Drawing.Color.LimeGreen; + colorData16.BackColor2 = System.Drawing.Color.Lime; + colorData16.ForeColor = System.Drawing.Color.Black; + colorData16.Tag = ""; + this.listView21.ColorList = new arCtl.ListView2.ColorData[] { + colorData9, + colorData10, + colorData11, + colorData12, + colorData13, + colorData14, + colorData15, + colorData16}; + this.listView21.ColumnHeaderVisible = false; + this.listView21.ColumnHeight = 35; + column8.DataGridViewInternal = null; + column8.DisplayIndex = 0; + column8.IndexInternal = 0; + column8.Rect = ((System.Drawing.RectangleF)(resources.GetObject("column8.Rect"))); + column8.SizeOption = arCtl.ListView2.ColumnSizeOption.Pixel; + column8.State = System.Windows.Forms.DataGridViewElementStates.None; + column8.Style = null; + column8.Text = ""; + column8.Width = 50; + column9.DataGridViewInternal = null; + column9.DisplayIndex = 0; + column9.IndexInternal = 0; + column9.Rect = ((System.Drawing.RectangleF)(resources.GetObject("column9.Rect"))); + column9.SizeOption = arCtl.ListView2.ColumnSizeOption.Pixel; + column9.State = System.Windows.Forms.DataGridViewElementStates.None; + column9.Style = null; + column9.Text = ""; + column9.Width = 100; + column10.DataGridViewInternal = null; + column10.DisplayIndex = 0; + column10.IndexInternal = 0; + column10.Rect = ((System.Drawing.RectangleF)(resources.GetObject("column10.Rect"))); + column10.SizeOption = arCtl.ListView2.ColumnSizeOption.Pixel; + column10.State = System.Windows.Forms.DataGridViewElementStates.None; + column10.Style = null; + column10.Text = ""; + column10.Width = 50; + column11.DataGridViewInternal = null; + column11.DisplayIndex = 0; + column11.IndexInternal = 0; + column11.Rect = ((System.Drawing.RectangleF)(resources.GetObject("column11.Rect"))); + column11.SizeOption = arCtl.ListView2.ColumnSizeOption.Pixel; + column11.State = System.Windows.Forms.DataGridViewElementStates.None; + column11.Style = null; + column11.Text = ""; + column11.Width = 100; + column12.DataGridViewInternal = null; + column12.DisplayIndex = 0; + column12.IndexInternal = 0; + column12.Rect = ((System.Drawing.RectangleF)(resources.GetObject("column12.Rect"))); + column12.SizeOption = arCtl.ListView2.ColumnSizeOption.Pixel; + column12.State = System.Windows.Forms.DataGridViewElementStates.None; + column12.Style = null; + column12.Text = ""; + column12.Width = 50; + column13.DataGridViewInternal = null; + column13.DisplayIndex = 0; + column13.IndexInternal = 0; + column13.Rect = ((System.Drawing.RectangleF)(resources.GetObject("column13.Rect"))); + column13.SizeOption = arCtl.ListView2.ColumnSizeOption.Pixel; + column13.State = System.Windows.Forms.DataGridViewElementStates.None; + column13.Style = null; + column13.Text = ""; + column13.Width = 100; + this.listView21.Columns = new arCtl.ListView2.Column[] { + column8, + column9, + column10, + column11, + column12, + column13}; + itemStyle3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(45)))), ((int)(((byte)(45))))); + itemStyle3.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + itemStyle3.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + itemStyle3.ForeColor = System.Drawing.Color.White; + this.listView21.ColumnStyle = itemStyle3; + this.listView21.Dock = System.Windows.Forms.DockStyle.Right; + this.listView21.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.listView21.ForeColor = System.Drawing.Color.White; + this.listView21.Location = new System.Drawing.Point(466, 0); + this.listView21.MinimumSize = new System.Drawing.Size(30, 30); + this.listView21.Name = "listView21"; + this.listView21.RowHeight = 25; + cell97.BackColor = System.Drawing.Color.White; + cell97.BackColor2 = System.Drawing.Color.White; + cell97.DataGridViewInternal = null; + cell97.DisplayIndex = 0; + cell97.ForeColor = System.Drawing.Color.Black; + cell97.IndexInternal = 0; + cell97.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell97.Rect"))); + cell97.Style = null; + cell97.Text = "LEFT"; + cell97.Valuetype = arCtl.ListView2.eCellValueType.String; + cell98.BackColor = System.Drawing.Color.White; + cell98.BackColor2 = System.Drawing.Color.White; + cell98.DataGridViewInternal = null; + cell98.DisplayIndex = 0; + cell98.ForeColor = System.Drawing.Color.Black; + cell98.IndexInternal = 0; + cell98.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell98.Rect"))); + cell98.Style = null; + cell98.Text = "7/13"; + cell98.Valuetype = arCtl.ListView2.eCellValueType.String; + cell99.BackColor = System.Drawing.Color.White; + cell99.BackColor2 = System.Drawing.Color.White; + cell99.DataGridViewInternal = null; + cell99.DisplayIndex = 0; + cell99.ForeColor = System.Drawing.Color.Black; + cell99.IndexInternal = 0; + cell99.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell99.Rect"))); + cell99.Style = null; + cell99.Text = "PICKER"; + cell99.Valuetype = arCtl.ListView2.eCellValueType.String; + cell100.BackColor = System.Drawing.Color.White; + cell100.BackColor2 = System.Drawing.Color.White; + cell100.DataGridViewInternal = null; + cell100.DisplayIndex = 0; + cell100.ForeColor = System.Drawing.Color.Black; + cell100.IndexInternal = 0; + cell100.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell100.Rect"))); + cell100.Style = null; + cell100.Text = "7/13"; + cell100.Valuetype = arCtl.ListView2.eCellValueType.String; + cell101.BackColor = System.Drawing.Color.White; + cell101.BackColor2 = System.Drawing.Color.White; + cell101.DataGridViewInternal = null; + cell101.DisplayIndex = 0; + cell101.ForeColor = System.Drawing.Color.Black; + cell101.IndexInternal = 0; + cell101.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell101.Rect"))); + cell101.Style = null; + cell101.Text = "RIGHT"; + cell101.Valuetype = arCtl.ListView2.eCellValueType.String; + cell102.BackColor = System.Drawing.Color.White; + cell102.BackColor2 = System.Drawing.Color.White; + cell102.DataGridViewInternal = null; + cell102.DisplayIndex = 0; + cell102.ForeColor = System.Drawing.Color.Black; + cell102.IndexInternal = 0; + cell102.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell102.Rect"))); + cell102.Style = null; + cell102.Text = "7/13"; + cell102.Valuetype = arCtl.ListView2.eCellValueType.String; + row17.Cells = new arCtl.ListView2.Cell[] { + cell97, + cell98, + cell99, + cell100, + cell101, + cell102}; + row17.Rect = ((System.Drawing.RectangleF)(resources.GetObject("row17.Rect"))); + row17.Style = null; + cell103.BackColor = System.Drawing.Color.White; + cell103.BackColor2 = System.Drawing.Color.White; + cell103.DataGridViewInternal = null; + cell103.DisplayIndex = 0; + cell103.ForeColor = System.Drawing.Color.Black; + cell103.IndexInternal = 0; + cell103.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell103.Rect"))); + cell103.Style = null; + cell103.Text = "RID"; + cell103.Valuetype = arCtl.ListView2.eCellValueType.String; + cell104.BackColor = System.Drawing.Color.White; + cell104.BackColor2 = System.Drawing.Color.White; + cell104.DataGridViewInternal = null; + cell104.DisplayIndex = 0; + cell104.ForeColor = System.Drawing.Color.Black; + cell104.IndexInternal = 0; + cell104.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell104.Rect"))); + cell104.Style = null; + cell104.Text = "--"; + cell104.Valuetype = arCtl.ListView2.eCellValueType.String; + cell105.BackColor = System.Drawing.Color.White; + cell105.BackColor2 = System.Drawing.Color.White; + cell105.DataGridViewInternal = null; + cell105.DisplayIndex = 0; + cell105.ForeColor = System.Drawing.Color.Black; + cell105.IndexInternal = 0; + cell105.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell105.Rect"))); + cell105.Style = null; + cell105.Text = "RID"; + cell105.Valuetype = arCtl.ListView2.eCellValueType.String; + cell106.BackColor = System.Drawing.Color.White; + cell106.BackColor2 = System.Drawing.Color.White; + cell106.DataGridViewInternal = null; + cell106.DisplayIndex = 0; + cell106.ForeColor = System.Drawing.Color.Black; + cell106.IndexInternal = 0; + cell106.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell106.Rect"))); + cell106.Style = null; + cell106.Text = "--"; + cell106.Valuetype = arCtl.ListView2.eCellValueType.String; + cell107.BackColor = System.Drawing.Color.White; + cell107.BackColor2 = System.Drawing.Color.White; + cell107.DataGridViewInternal = null; + cell107.DisplayIndex = 0; + cell107.ForeColor = System.Drawing.Color.Black; + cell107.IndexInternal = 0; + cell107.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell107.Rect"))); + cell107.Style = null; + cell107.Text = "RID"; + cell107.Valuetype = arCtl.ListView2.eCellValueType.String; + cell108.BackColor = System.Drawing.Color.White; + cell108.BackColor2 = System.Drawing.Color.White; + cell108.DataGridViewInternal = null; + cell108.DisplayIndex = 0; + cell108.ForeColor = System.Drawing.Color.Black; + cell108.IndexInternal = 0; + cell108.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell108.Rect"))); + cell108.Style = null; + cell108.Text = "--"; + cell108.Valuetype = arCtl.ListView2.eCellValueType.String; + row18.Cells = new arCtl.ListView2.Cell[] { + cell103, + cell104, + cell105, + cell106, + cell107, + cell108}; + row18.Rect = ((System.Drawing.RectangleF)(resources.GetObject("row18.Rect"))); + row18.Style = null; + cell109.BackColor = System.Drawing.Color.White; + cell109.BackColor2 = System.Drawing.Color.White; + cell109.DataGridViewInternal = null; + cell109.DisplayIndex = 0; + cell109.ForeColor = System.Drawing.Color.Black; + cell109.IndexInternal = 0; + cell109.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell109.Rect"))); + cell109.Style = null; + cell109.Text = "SID"; + cell109.Valuetype = arCtl.ListView2.eCellValueType.String; + cell110.BackColor = System.Drawing.Color.White; + cell110.BackColor2 = System.Drawing.Color.White; + cell110.DataGridViewInternal = null; + cell110.DisplayIndex = 0; + cell110.ForeColor = System.Drawing.Color.Black; + cell110.IndexInternal = 0; + cell110.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell110.Rect"))); + cell110.Style = null; + cell110.Text = ""; + cell110.Valuetype = arCtl.ListView2.eCellValueType.String; + cell111.BackColor = System.Drawing.Color.White; + cell111.BackColor2 = System.Drawing.Color.White; + cell111.DataGridViewInternal = null; + cell111.DisplayIndex = 0; + cell111.ForeColor = System.Drawing.Color.Black; + cell111.IndexInternal = 0; + cell111.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell111.Rect"))); + cell111.Style = null; + cell111.Text = "SID"; + cell111.Valuetype = arCtl.ListView2.eCellValueType.String; + cell112.BackColor = System.Drawing.Color.White; + cell112.BackColor2 = System.Drawing.Color.White; + cell112.DataGridViewInternal = null; + cell112.DisplayIndex = 0; + cell112.ForeColor = System.Drawing.Color.Black; + cell112.IndexInternal = 0; + cell112.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell112.Rect"))); + cell112.Style = null; + cell112.Text = ""; + cell112.Valuetype = arCtl.ListView2.eCellValueType.String; + cell113.BackColor = System.Drawing.Color.White; + cell113.BackColor2 = System.Drawing.Color.White; + cell113.DataGridViewInternal = null; + cell113.DisplayIndex = 0; + cell113.ForeColor = System.Drawing.Color.Black; + cell113.IndexInternal = 0; + cell113.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell113.Rect"))); + cell113.Style = null; + cell113.Text = "SID"; + cell113.Valuetype = arCtl.ListView2.eCellValueType.String; + cell114.BackColor = System.Drawing.Color.White; + cell114.BackColor2 = System.Drawing.Color.White; + cell114.DataGridViewInternal = null; + cell114.DisplayIndex = 0; + cell114.ForeColor = System.Drawing.Color.Black; + cell114.IndexInternal = 0; + cell114.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell114.Rect"))); + cell114.Style = null; + cell114.Text = ""; + cell114.Valuetype = arCtl.ListView2.eCellValueType.String; + row19.Cells = new arCtl.ListView2.Cell[] { + cell109, + cell110, + cell111, + cell112, + cell113, + cell114}; + row19.Rect = ((System.Drawing.RectangleF)(resources.GetObject("row19.Rect"))); + row19.Style = null; + cell115.BackColor = System.Drawing.Color.White; + cell115.BackColor2 = System.Drawing.Color.White; + cell115.DataGridViewInternal = null; + cell115.DisplayIndex = 0; + cell115.ForeColor = System.Drawing.Color.Black; + cell115.IndexInternal = 0; + cell115.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell115.Rect"))); + cell115.Style = null; + cell115.Text = "QTY"; + cell115.Valuetype = arCtl.ListView2.eCellValueType.String; + cell116.BackColor = System.Drawing.Color.White; + cell116.BackColor2 = System.Drawing.Color.White; + cell116.DataGridViewInternal = null; + cell116.DisplayIndex = 0; + cell116.ForeColor = System.Drawing.Color.Black; + cell116.IndexInternal = 0; + cell116.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell116.Rect"))); + cell116.Style = null; + cell116.Text = ""; + cell116.Valuetype = arCtl.ListView2.eCellValueType.String; + cell117.BackColor = System.Drawing.Color.White; + cell117.BackColor2 = System.Drawing.Color.White; + cell117.DataGridViewInternal = null; + cell117.DisplayIndex = 0; + cell117.ForeColor = System.Drawing.Color.Black; + cell117.IndexInternal = 0; + cell117.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell117.Rect"))); + cell117.Style = null; + cell117.Text = "QTY"; + cell117.Valuetype = arCtl.ListView2.eCellValueType.String; + cell118.BackColor = System.Drawing.Color.White; + cell118.BackColor2 = System.Drawing.Color.White; + cell118.DataGridViewInternal = null; + cell118.DisplayIndex = 0; + cell118.ForeColor = System.Drawing.Color.Black; + cell118.IndexInternal = 0; + cell118.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell118.Rect"))); + cell118.Style = null; + cell118.Text = ""; + cell118.Valuetype = arCtl.ListView2.eCellValueType.String; + cell119.BackColor = System.Drawing.Color.White; + cell119.BackColor2 = System.Drawing.Color.White; + cell119.DataGridViewInternal = null; + cell119.DisplayIndex = 0; + cell119.ForeColor = System.Drawing.Color.Black; + cell119.IndexInternal = 0; + cell119.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell119.Rect"))); + cell119.Style = null; + cell119.Text = "QTY"; + cell119.Valuetype = arCtl.ListView2.eCellValueType.String; + cell120.BackColor = System.Drawing.Color.White; + cell120.BackColor2 = System.Drawing.Color.White; + cell120.DataGridViewInternal = null; + cell120.DisplayIndex = 0; + cell120.ForeColor = System.Drawing.Color.Black; + cell120.IndexInternal = 0; + cell120.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell120.Rect"))); + cell120.Style = null; + cell120.Text = ""; + cell120.Valuetype = arCtl.ListView2.eCellValueType.String; + row20.Cells = new arCtl.ListView2.Cell[] { + cell115, + cell116, + cell117, + cell118, + cell119, + cell120}; + row20.Rect = ((System.Drawing.RectangleF)(resources.GetObject("row20.Rect"))); + row20.Style = null; + cell121.BackColor = System.Drawing.Color.White; + cell121.BackColor2 = System.Drawing.Color.White; + cell121.DataGridViewInternal = null; + cell121.DisplayIndex = 0; + cell121.ForeColor = System.Drawing.Color.Black; + cell121.IndexInternal = 0; + cell121.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell121.Rect"))); + cell121.Style = null; + cell121.Text = "VNAME"; + cell121.Valuetype = arCtl.ListView2.eCellValueType.String; + cell122.BackColor = System.Drawing.Color.White; + cell122.BackColor2 = System.Drawing.Color.White; + cell122.DataGridViewInternal = null; + cell122.DisplayIndex = 0; + cell122.ForeColor = System.Drawing.Color.Black; + cell122.IndexInternal = 0; + cell122.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell122.Rect"))); + cell122.Style = null; + cell122.Text = ""; + cell122.Valuetype = arCtl.ListView2.eCellValueType.String; + cell123.BackColor = System.Drawing.Color.White; + cell123.BackColor2 = System.Drawing.Color.White; + cell123.DataGridViewInternal = null; + cell123.DisplayIndex = 0; + cell123.ForeColor = System.Drawing.Color.Black; + cell123.IndexInternal = 0; + cell123.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell123.Rect"))); + cell123.Style = null; + cell123.Text = "VNAME"; + cell123.Valuetype = arCtl.ListView2.eCellValueType.String; + cell124.BackColor = System.Drawing.Color.White; + cell124.BackColor2 = System.Drawing.Color.White; + cell124.DataGridViewInternal = null; + cell124.DisplayIndex = 0; + cell124.ForeColor = System.Drawing.Color.Black; + cell124.IndexInternal = 0; + cell124.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell124.Rect"))); + cell124.Style = null; + cell124.Text = ""; + cell124.Valuetype = arCtl.ListView2.eCellValueType.String; + cell125.BackColor = System.Drawing.Color.White; + cell125.BackColor2 = System.Drawing.Color.White; + cell125.DataGridViewInternal = null; + cell125.DisplayIndex = 0; + cell125.ForeColor = System.Drawing.Color.Black; + cell125.IndexInternal = 0; + cell125.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell125.Rect"))); + cell125.Style = null; + cell125.Text = "VNAME"; + cell125.Valuetype = arCtl.ListView2.eCellValueType.String; + cell126.BackColor = System.Drawing.Color.White; + cell126.BackColor2 = System.Drawing.Color.White; + cell126.DataGridViewInternal = null; + cell126.DisplayIndex = 0; + cell126.ForeColor = System.Drawing.Color.Black; + cell126.IndexInternal = 0; + cell126.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell126.Rect"))); + cell126.Style = null; + cell126.Text = ""; + cell126.Valuetype = arCtl.ListView2.eCellValueType.String; + row21.Cells = new arCtl.ListView2.Cell[] { + cell121, + cell122, + cell123, + cell124, + cell125, + cell126}; + row21.Rect = ((System.Drawing.RectangleF)(resources.GetObject("row21.Rect"))); + row21.Style = null; + cell127.BackColor = System.Drawing.Color.White; + cell127.BackColor2 = System.Drawing.Color.White; + cell127.DataGridViewInternal = null; + cell127.DisplayIndex = 0; + cell127.ForeColor = System.Drawing.Color.Black; + cell127.IndexInternal = 0; + cell127.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell127.Rect"))); + cell127.Style = null; + cell127.Text = "VLOT"; + cell127.Valuetype = arCtl.ListView2.eCellValueType.String; + cell128.BackColor = System.Drawing.Color.White; + cell128.BackColor2 = System.Drawing.Color.White; + cell128.DataGridViewInternal = null; + cell128.DisplayIndex = 0; + cell128.ForeColor = System.Drawing.Color.Black; + cell128.IndexInternal = 0; + cell128.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell128.Rect"))); + cell128.Style = null; + cell128.Text = ""; + cell128.Valuetype = arCtl.ListView2.eCellValueType.String; + cell129.BackColor = System.Drawing.Color.White; + cell129.BackColor2 = System.Drawing.Color.White; + cell129.DataGridViewInternal = null; + cell129.DisplayIndex = 0; + cell129.ForeColor = System.Drawing.Color.Black; + cell129.IndexInternal = 0; + cell129.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell129.Rect"))); + cell129.Style = null; + cell129.Text = "VLOT"; + cell129.Valuetype = arCtl.ListView2.eCellValueType.String; + cell130.BackColor = System.Drawing.Color.White; + cell130.BackColor2 = System.Drawing.Color.White; + cell130.DataGridViewInternal = null; + cell130.DisplayIndex = 0; + cell130.ForeColor = System.Drawing.Color.Black; + cell130.IndexInternal = 0; + cell130.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell130.Rect"))); + cell130.Style = null; + cell130.Text = ""; + cell130.Valuetype = arCtl.ListView2.eCellValueType.String; + cell131.BackColor = System.Drawing.Color.White; + cell131.BackColor2 = System.Drawing.Color.White; + cell131.DataGridViewInternal = null; + cell131.DisplayIndex = 0; + cell131.ForeColor = System.Drawing.Color.Black; + cell131.IndexInternal = 0; + cell131.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell131.Rect"))); + cell131.Style = null; + cell131.Text = "VLOT"; + cell131.Valuetype = arCtl.ListView2.eCellValueType.String; + cell132.BackColor = System.Drawing.Color.White; + cell132.BackColor2 = System.Drawing.Color.White; + cell132.DataGridViewInternal = null; + cell132.DisplayIndex = 0; + cell132.ForeColor = System.Drawing.Color.Black; + cell132.IndexInternal = 0; + cell132.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell132.Rect"))); + cell132.Style = null; + cell132.Text = ""; + cell132.Valuetype = arCtl.ListView2.eCellValueType.String; + row22.Cells = new arCtl.ListView2.Cell[] { + cell127, + cell128, + cell129, + cell130, + cell131, + cell132}; + row22.Rect = ((System.Drawing.RectangleF)(resources.GetObject("row22.Rect"))); + row22.Style = null; + cell133.BackColor = System.Drawing.Color.White; + cell133.BackColor2 = System.Drawing.Color.White; + cell133.DataGridViewInternal = null; + cell133.DisplayIndex = 0; + cell133.ForeColor = System.Drawing.Color.Black; + cell133.IndexInternal = 0; + cell133.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell133.Rect"))); + cell133.Style = null; + cell133.Text = "MFG"; + cell133.Valuetype = arCtl.ListView2.eCellValueType.String; + cell134.BackColor = System.Drawing.Color.White; + cell134.BackColor2 = System.Drawing.Color.White; + cell134.DataGridViewInternal = null; + cell134.DisplayIndex = 0; + cell134.ForeColor = System.Drawing.Color.Black; + cell134.IndexInternal = 0; + cell134.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell134.Rect"))); + cell134.Style = null; + cell134.Text = ""; + cell134.Valuetype = arCtl.ListView2.eCellValueType.String; + cell135.BackColor = System.Drawing.Color.White; + cell135.BackColor2 = System.Drawing.Color.White; + cell135.DataGridViewInternal = null; + cell135.DisplayIndex = 0; + cell135.ForeColor = System.Drawing.Color.Black; + cell135.IndexInternal = 0; + cell135.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell135.Rect"))); + cell135.Style = null; + cell135.Text = "MFG"; + cell135.Valuetype = arCtl.ListView2.eCellValueType.String; + cell136.BackColor = System.Drawing.Color.White; + cell136.BackColor2 = System.Drawing.Color.White; + cell136.DataGridViewInternal = null; + cell136.DisplayIndex = 0; + cell136.ForeColor = System.Drawing.Color.Black; + cell136.IndexInternal = 0; + cell136.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell136.Rect"))); + cell136.Style = null; + cell136.Text = ""; + cell136.Valuetype = arCtl.ListView2.eCellValueType.String; + cell137.BackColor = System.Drawing.Color.White; + cell137.BackColor2 = System.Drawing.Color.White; + cell137.DataGridViewInternal = null; + cell137.DisplayIndex = 0; + cell137.ForeColor = System.Drawing.Color.Black; + cell137.IndexInternal = 0; + cell137.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell137.Rect"))); + cell137.Style = null; + cell137.Text = "MFG"; + cell137.Valuetype = arCtl.ListView2.eCellValueType.String; + cell138.BackColor = System.Drawing.Color.White; + cell138.BackColor2 = System.Drawing.Color.White; + cell138.DataGridViewInternal = null; + cell138.DisplayIndex = 0; + cell138.ForeColor = System.Drawing.Color.Black; + cell138.IndexInternal = 0; + cell138.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell138.Rect"))); + cell138.Style = null; + cell138.Text = ""; + cell138.Valuetype = arCtl.ListView2.eCellValueType.String; + row23.Cells = new arCtl.ListView2.Cell[] { + cell133, + cell134, + cell135, + cell136, + cell137, + cell138}; + row23.Rect = ((System.Drawing.RectangleF)(resources.GetObject("row23.Rect"))); + row23.Style = null; + cell139.BackColor = System.Drawing.Color.White; + cell139.BackColor2 = System.Drawing.Color.White; + cell139.DataGridViewInternal = null; + cell139.DisplayIndex = 0; + cell139.ForeColor = System.Drawing.Color.Black; + cell139.IndexInternal = 0; + cell139.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell139.Rect"))); + cell139.Style = null; + cell139.Text = "PART"; + cell139.Valuetype = arCtl.ListView2.eCellValueType.String; + cell140.BackColor = System.Drawing.Color.White; + cell140.BackColor2 = System.Drawing.Color.White; + cell140.DataGridViewInternal = null; + cell140.DisplayIndex = 0; + cell140.ForeColor = System.Drawing.Color.Black; + cell140.IndexInternal = 0; + cell140.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell140.Rect"))); + cell140.Style = null; + cell140.Text = ""; + cell140.Valuetype = arCtl.ListView2.eCellValueType.String; + cell141.BackColor = System.Drawing.Color.White; + cell141.BackColor2 = System.Drawing.Color.White; + cell141.DataGridViewInternal = null; + cell141.DisplayIndex = 0; + cell141.ForeColor = System.Drawing.Color.Black; + cell141.IndexInternal = 0; + cell141.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell141.Rect"))); + cell141.Style = null; + cell141.Text = "PART"; + cell141.Valuetype = arCtl.ListView2.eCellValueType.String; + cell142.BackColor = System.Drawing.Color.White; + cell142.BackColor2 = System.Drawing.Color.White; + cell142.DataGridViewInternal = null; + cell142.DisplayIndex = 0; + cell142.ForeColor = System.Drawing.Color.Black; + cell142.IndexInternal = 0; + cell142.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell142.Rect"))); + cell142.Style = null; + cell142.Text = ""; + cell142.Valuetype = arCtl.ListView2.eCellValueType.String; + cell143.BackColor = System.Drawing.Color.White; + cell143.BackColor2 = System.Drawing.Color.White; + cell143.DataGridViewInternal = null; + cell143.DisplayIndex = 0; + cell143.ForeColor = System.Drawing.Color.Black; + cell143.IndexInternal = 0; + cell143.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell143.Rect"))); + cell143.Style = null; + cell143.Text = "PART"; + cell143.Valuetype = arCtl.ListView2.eCellValueType.String; + cell144.BackColor = System.Drawing.Color.White; + cell144.BackColor2 = System.Drawing.Color.White; + cell144.DataGridViewInternal = null; + cell144.DisplayIndex = 0; + cell144.ForeColor = System.Drawing.Color.Black; + cell144.IndexInternal = 0; + cell144.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell144.Rect"))); + cell144.Style = null; + cell144.Text = ""; + cell144.Valuetype = arCtl.ListView2.eCellValueType.String; + row24.Cells = new arCtl.ListView2.Cell[] { + cell139, + cell140, + cell141, + cell142, + cell143, + cell144}; + row24.Rect = ((System.Drawing.RectangleF)(resources.GetObject("row24.Rect"))); + row24.Style = null; + cell145.BackColor = System.Drawing.Color.White; + cell145.BackColor2 = System.Drawing.Color.White; + cell145.DataGridViewInternal = null; + cell145.DisplayIndex = 0; + cell145.ForeColor = System.Drawing.Color.Black; + cell145.IndexInternal = 0; + cell145.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell145.Rect"))); + cell145.Style = null; + cell145.Text = "SIZE"; + cell145.Valuetype = arCtl.ListView2.eCellValueType.String; + cell146.BackColor = System.Drawing.Color.White; + cell146.BackColor2 = System.Drawing.Color.White; + cell146.DataGridViewInternal = null; + cell146.DisplayIndex = 0; + cell146.ForeColor = System.Drawing.Color.Black; + cell146.IndexInternal = 0; + cell146.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell146.Rect"))); + cell146.Style = null; + cell146.Text = ""; + cell146.Valuetype = arCtl.ListView2.eCellValueType.String; + cell147.BackColor = System.Drawing.Color.White; + cell147.BackColor2 = System.Drawing.Color.White; + cell147.DataGridViewInternal = null; + cell147.DisplayIndex = 0; + cell147.ForeColor = System.Drawing.Color.Black; + cell147.IndexInternal = 0; + cell147.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell147.Rect"))); + cell147.Style = null; + cell147.Text = "SIZE"; + cell147.Valuetype = arCtl.ListView2.eCellValueType.String; + cell148.BackColor = System.Drawing.Color.White; + cell148.BackColor2 = System.Drawing.Color.White; + cell148.DataGridViewInternal = null; + cell148.DisplayIndex = 0; + cell148.ForeColor = System.Drawing.Color.Black; + cell148.IndexInternal = 0; + cell148.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell148.Rect"))); + cell148.Style = null; + cell148.Text = ""; + cell148.Valuetype = arCtl.ListView2.eCellValueType.String; + cell149.BackColor = System.Drawing.Color.White; + cell149.BackColor2 = System.Drawing.Color.White; + cell149.DataGridViewInternal = null; + cell149.DisplayIndex = 0; + cell149.ForeColor = System.Drawing.Color.Black; + cell149.IndexInternal = 0; + cell149.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell149.Rect"))); + cell149.Style = null; + cell149.Text = "SIZE"; + cell149.Valuetype = arCtl.ListView2.eCellValueType.String; + cell150.BackColor = System.Drawing.Color.White; + cell150.BackColor2 = System.Drawing.Color.White; + cell150.DataGridViewInternal = null; + cell150.DisplayIndex = 0; + cell150.ForeColor = System.Drawing.Color.Black; + cell150.IndexInternal = 0; + cell150.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell150.Rect"))); + cell150.Style = null; + cell150.Text = ""; + cell150.Valuetype = arCtl.ListView2.eCellValueType.String; + row25.Cells = new arCtl.ListView2.Cell[] { + cell145, + cell146, + cell147, + cell148, + cell149, + cell150}; + row25.Rect = ((System.Drawing.RectangleF)(resources.GetObject("row25.Rect"))); + row25.Style = null; + cell151.BackColor = System.Drawing.Color.White; + cell151.BackColor2 = System.Drawing.Color.White; + cell151.DataGridViewInternal = null; + cell151.DisplayIndex = 0; + cell151.ForeColor = System.Drawing.Color.Black; + cell151.IndexInternal = 0; + cell151.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell151.Rect"))); + cell151.Style = null; + cell151.Text = "RID"; + cell151.Valuetype = arCtl.ListView2.eCellValueType.String; + cell152.BackColor = System.Drawing.Color.White; + cell152.BackColor2 = System.Drawing.Color.White; + cell152.DataGridViewInternal = null; + cell152.DisplayIndex = 0; + cell152.ForeColor = System.Drawing.Color.Black; + cell152.IndexInternal = 0; + cell152.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell152.Rect"))); + cell152.Style = null; + cell152.Text = ""; + cell152.Valuetype = arCtl.ListView2.eCellValueType.String; + cell153.BackColor = System.Drawing.Color.White; + cell153.BackColor2 = System.Drawing.Color.White; + cell153.DataGridViewInternal = null; + cell153.DisplayIndex = 0; + cell153.ForeColor = System.Drawing.Color.Black; + cell153.IndexInternal = 0; + cell153.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell153.Rect"))); + cell153.Style = null; + cell153.Text = "DEG"; + cell153.Valuetype = arCtl.ListView2.eCellValueType.String; + cell154.BackColor = System.Drawing.Color.White; + cell154.BackColor2 = System.Drawing.Color.White; + cell154.DataGridViewInternal = null; + cell154.DisplayIndex = 0; + cell154.ForeColor = System.Drawing.Color.Black; + cell154.IndexInternal = 0; + cell154.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell154.Rect"))); + cell154.Style = null; + cell154.Text = ""; + cell154.Valuetype = arCtl.ListView2.eCellValueType.String; + cell155.BackColor = System.Drawing.Color.White; + cell155.BackColor2 = System.Drawing.Color.White; + cell155.DataGridViewInternal = null; + cell155.DisplayIndex = 0; + cell155.ForeColor = System.Drawing.Color.Black; + cell155.IndexInternal = 0; + cell155.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell155.Rect"))); + cell155.Style = null; + cell155.Text = "RID"; + cell155.Valuetype = arCtl.ListView2.eCellValueType.String; + cell156.BackColor = System.Drawing.Color.White; + cell156.BackColor2 = System.Drawing.Color.White; + cell156.DataGridViewInternal = null; + cell156.DisplayIndex = 0; + cell156.ForeColor = System.Drawing.Color.Black; + cell156.IndexInternal = 0; + cell156.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell156.Rect"))); + cell156.Style = null; + cell156.Text = ""; + cell156.Valuetype = arCtl.ListView2.eCellValueType.String; + row26.Cells = new arCtl.ListView2.Cell[] { + cell151, + cell152, + cell153, + cell154, + cell155, + cell156}; + row26.Rect = ((System.Drawing.RectangleF)(resources.GetObject("row26.Rect"))); + row26.Style = null; + cell157.BackColor = System.Drawing.Color.White; + cell157.BackColor2 = System.Drawing.Color.White; + cell157.DataGridViewInternal = null; + cell157.DisplayIndex = 0; + cell157.ForeColor = System.Drawing.Color.Black; + cell157.IndexInternal = 0; + cell157.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell157.Rect"))); + cell157.Style = null; + cell157.Text = "SID"; + cell157.Valuetype = arCtl.ListView2.eCellValueType.String; + cell158.BackColor = System.Drawing.Color.White; + cell158.BackColor2 = System.Drawing.Color.White; + cell158.DataGridViewInternal = null; + cell158.DisplayIndex = 0; + cell158.ForeColor = System.Drawing.Color.Black; + cell158.IndexInternal = 0; + cell158.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell158.Rect"))); + cell158.Style = null; + cell158.Text = ""; + cell158.Valuetype = arCtl.ListView2.eCellValueType.String; + cell159.BackColor = System.Drawing.Color.White; + cell159.BackColor2 = System.Drawing.Color.White; + cell159.DataGridViewInternal = null; + cell159.DisplayIndex = 0; + cell159.ForeColor = System.Drawing.Color.Black; + cell159.IndexInternal = 0; + cell159.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell159.Rect"))); + cell159.Style = null; + cell159.Text = "QR"; + cell159.Valuetype = arCtl.ListView2.eCellValueType.String; + cell160.BackColor = System.Drawing.Color.White; + cell160.BackColor2 = System.Drawing.Color.White; + cell160.DataGridViewInternal = null; + cell160.DisplayIndex = 0; + cell160.ForeColor = System.Drawing.Color.Black; + cell160.IndexInternal = 0; + cell160.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell160.Rect"))); + cell160.Style = null; + cell160.Text = ""; + cell160.Valuetype = arCtl.ListView2.eCellValueType.String; + cell161.BackColor = System.Drawing.Color.White; + cell161.BackColor2 = System.Drawing.Color.White; + cell161.DataGridViewInternal = null; + cell161.DisplayIndex = 0; + cell161.ForeColor = System.Drawing.Color.Black; + cell161.IndexInternal = 0; + cell161.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell161.Rect"))); + cell161.Style = null; + cell161.Text = "SID"; + cell161.Valuetype = arCtl.ListView2.eCellValueType.String; + cell162.BackColor = System.Drawing.Color.White; + cell162.BackColor2 = System.Drawing.Color.White; + cell162.DataGridViewInternal = null; + cell162.DisplayIndex = 0; + cell162.ForeColor = System.Drawing.Color.Black; + cell162.IndexInternal = 0; + cell162.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell162.Rect"))); + cell162.Style = null; + cell162.Text = ""; + cell162.Valuetype = arCtl.ListView2.eCellValueType.String; + row27.Cells = new arCtl.ListView2.Cell[] { + cell157, + cell158, + cell159, + cell160, + cell161, + cell162}; + row27.Rect = ((System.Drawing.RectangleF)(resources.GetObject("row27.Rect"))); + row27.Style = null; + cell163.BackColor = System.Drawing.Color.White; + cell163.BackColor2 = System.Drawing.Color.White; + cell163.DataGridViewInternal = null; + cell163.DisplayIndex = 0; + cell163.ForeColor = System.Drawing.Color.Black; + cell163.IndexInternal = 0; + cell163.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell163.Rect"))); + cell163.Style = null; + cell163.Text = "QTY"; + cell163.Valuetype = arCtl.ListView2.eCellValueType.String; + cell164.BackColor = System.Drawing.Color.White; + cell164.BackColor2 = System.Drawing.Color.White; + cell164.DataGridViewInternal = null; + cell164.DisplayIndex = 0; + cell164.ForeColor = System.Drawing.Color.Black; + cell164.IndexInternal = 0; + cell164.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell164.Rect"))); + cell164.Style = null; + cell164.Text = ""; + cell164.Valuetype = arCtl.ListView2.eCellValueType.String; + cell165.BackColor = System.Drawing.Color.White; + cell165.BackColor2 = System.Drawing.Color.White; + cell165.DataGridViewInternal = null; + cell165.DisplayIndex = 0; + cell165.ForeColor = System.Drawing.Color.Black; + cell165.IndexInternal = 0; + cell165.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell165.Rect"))); + cell165.Style = null; + cell165.Text = ""; + cell165.Valuetype = arCtl.ListView2.eCellValueType.String; + cell166.BackColor = System.Drawing.Color.White; + cell166.BackColor2 = System.Drawing.Color.White; + cell166.DataGridViewInternal = null; + cell166.DisplayIndex = 0; + cell166.ForeColor = System.Drawing.Color.Black; + cell166.IndexInternal = 0; + cell166.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell166.Rect"))); + cell166.Style = null; + cell166.Text = ""; + cell166.Valuetype = arCtl.ListView2.eCellValueType.String; + cell167.BackColor = System.Drawing.Color.White; + cell167.BackColor2 = System.Drawing.Color.White; + cell167.DataGridViewInternal = null; + cell167.DisplayIndex = 0; + cell167.ForeColor = System.Drawing.Color.Black; + cell167.IndexInternal = 0; + cell167.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell167.Rect"))); + cell167.Style = null; + cell167.Text = ""; + cell167.Valuetype = arCtl.ListView2.eCellValueType.String; + cell168.BackColor = System.Drawing.Color.White; + cell168.BackColor2 = System.Drawing.Color.White; + cell168.DataGridViewInternal = null; + cell168.DisplayIndex = 0; + cell168.ForeColor = System.Drawing.Color.Black; + cell168.IndexInternal = 0; + cell168.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell168.Rect"))); + cell168.Style = null; + cell168.Text = ""; + cell168.Valuetype = arCtl.ListView2.eCellValueType.String; + row28.Cells = new arCtl.ListView2.Cell[] { + cell163, + cell164, + cell165, + cell166, + cell167, + cell168}; + row28.Rect = ((System.Drawing.RectangleF)(resources.GetObject("row28.Rect"))); + row28.Style = null; + cell169.BackColor = System.Drawing.Color.White; + cell169.BackColor2 = System.Drawing.Color.White; + cell169.DataGridViewInternal = null; + cell169.DisplayIndex = 0; + cell169.ForeColor = System.Drawing.Color.Black; + cell169.IndexInternal = 0; + cell169.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell169.Rect"))); + cell169.Style = null; + cell169.Text = "MANU"; + cell169.Valuetype = arCtl.ListView2.eCellValueType.String; + cell170.BackColor = System.Drawing.Color.White; + cell170.BackColor2 = System.Drawing.Color.White; + cell170.DataGridViewInternal = null; + cell170.DisplayIndex = 0; + cell170.ForeColor = System.Drawing.Color.Black; + cell170.IndexInternal = 0; + cell170.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell170.Rect"))); + cell170.Style = null; + cell170.Text = ""; + cell170.Valuetype = arCtl.ListView2.eCellValueType.String; + cell171.BackColor = System.Drawing.Color.White; + cell171.BackColor2 = System.Drawing.Color.White; + cell171.DataGridViewInternal = null; + cell171.DisplayIndex = 0; + cell171.ForeColor = System.Drawing.Color.Black; + cell171.IndexInternal = 0; + cell171.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell171.Rect"))); + cell171.Style = null; + cell171.Text = ""; + cell171.Valuetype = arCtl.ListView2.eCellValueType.String; + cell172.BackColor = System.Drawing.Color.White; + cell172.BackColor2 = System.Drawing.Color.White; + cell172.DataGridViewInternal = null; + cell172.DisplayIndex = 0; + cell172.ForeColor = System.Drawing.Color.Black; + cell172.IndexInternal = 0; + cell172.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell172.Rect"))); + cell172.Style = null; + cell172.Text = ""; + cell172.Valuetype = arCtl.ListView2.eCellValueType.String; + cell173.BackColor = System.Drawing.Color.White; + cell173.BackColor2 = System.Drawing.Color.White; + cell173.DataGridViewInternal = null; + cell173.DisplayIndex = 0; + cell173.ForeColor = System.Drawing.Color.Black; + cell173.IndexInternal = 0; + cell173.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell173.Rect"))); + cell173.Style = null; + cell173.Text = ""; + cell173.Valuetype = arCtl.ListView2.eCellValueType.String; + cell174.BackColor = System.Drawing.Color.White; + cell174.BackColor2 = System.Drawing.Color.White; + cell174.DataGridViewInternal = null; + cell174.DisplayIndex = 0; + cell174.ForeColor = System.Drawing.Color.Black; + cell174.IndexInternal = 0; + cell174.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell174.Rect"))); + cell174.Style = null; + cell174.Text = ""; + cell174.Valuetype = arCtl.ListView2.eCellValueType.String; + row29.Cells = new arCtl.ListView2.Cell[] { + cell169, + cell170, + cell171, + cell172, + cell173, + cell174}; + row29.Rect = ((System.Drawing.RectangleF)(resources.GetObject("row29.Rect"))); + row29.Style = null; + cell175.BackColor = System.Drawing.Color.White; + cell175.BackColor2 = System.Drawing.Color.White; + cell175.DataGridViewInternal = null; + cell175.DisplayIndex = 0; + cell175.ForeColor = System.Drawing.Color.Black; + cell175.IndexInternal = 0; + cell175.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell175.Rect"))); + cell175.Style = null; + cell175.Text = "VLOT"; + cell175.Valuetype = arCtl.ListView2.eCellValueType.String; + cell176.BackColor = System.Drawing.Color.White; + cell176.BackColor2 = System.Drawing.Color.White; + cell176.DataGridViewInternal = null; + cell176.DisplayIndex = 0; + cell176.ForeColor = System.Drawing.Color.Black; + cell176.IndexInternal = 0; + cell176.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell176.Rect"))); + cell176.Style = null; + cell176.Text = ""; + cell176.Valuetype = arCtl.ListView2.eCellValueType.String; + cell177.BackColor = System.Drawing.Color.White; + cell177.BackColor2 = System.Drawing.Color.White; + cell177.DataGridViewInternal = null; + cell177.DisplayIndex = 0; + cell177.ForeColor = System.Drawing.Color.Black; + cell177.IndexInternal = 0; + cell177.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell177.Rect"))); + cell177.Style = null; + cell177.Text = ""; + cell177.Valuetype = arCtl.ListView2.eCellValueType.String; + cell178.BackColor = System.Drawing.Color.White; + cell178.BackColor2 = System.Drawing.Color.White; + cell178.DataGridViewInternal = null; + cell178.DisplayIndex = 0; + cell178.ForeColor = System.Drawing.Color.Black; + cell178.IndexInternal = 0; + cell178.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell178.Rect"))); + cell178.Style = null; + cell178.Text = ""; + cell178.Valuetype = arCtl.ListView2.eCellValueType.String; + cell179.BackColor = System.Drawing.Color.White; + cell179.BackColor2 = System.Drawing.Color.White; + cell179.DataGridViewInternal = null; + cell179.DisplayIndex = 0; + cell179.ForeColor = System.Drawing.Color.Black; + cell179.IndexInternal = 0; + cell179.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell179.Rect"))); + cell179.Style = null; + cell179.Text = ""; + cell179.Valuetype = arCtl.ListView2.eCellValueType.String; + cell180.BackColor = System.Drawing.Color.White; + cell180.BackColor2 = System.Drawing.Color.White; + cell180.DataGridViewInternal = null; + cell180.DisplayIndex = 0; + cell180.ForeColor = System.Drawing.Color.Black; + cell180.IndexInternal = 0; + cell180.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell180.Rect"))); + cell180.Style = null; + cell180.Text = ""; + cell180.Valuetype = arCtl.ListView2.eCellValueType.String; + row30.Cells = new arCtl.ListView2.Cell[] { + cell175, + cell176, + cell177, + cell178, + cell179, + cell180}; + row30.Rect = ((System.Drawing.RectangleF)(resources.GetObject("row30.Rect"))); + row30.Style = null; + cell181.BackColor = System.Drawing.Color.White; + cell181.BackColor2 = System.Drawing.Color.White; + cell181.DataGridViewInternal = null; + cell181.DisplayIndex = 0; + cell181.ForeColor = System.Drawing.Color.Black; + cell181.IndexInternal = 0; + cell181.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell181.Rect"))); + cell181.Style = null; + cell181.Text = "MFG"; + cell181.Valuetype = arCtl.ListView2.eCellValueType.String; + cell182.BackColor = System.Drawing.Color.White; + cell182.BackColor2 = System.Drawing.Color.White; + cell182.DataGridViewInternal = null; + cell182.DisplayIndex = 0; + cell182.ForeColor = System.Drawing.Color.Black; + cell182.IndexInternal = 0; + cell182.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell182.Rect"))); + cell182.Style = null; + cell182.Text = ""; + cell182.Valuetype = arCtl.ListView2.eCellValueType.String; + cell183.BackColor = System.Drawing.Color.White; + cell183.BackColor2 = System.Drawing.Color.White; + cell183.DataGridViewInternal = null; + cell183.DisplayIndex = 0; + cell183.ForeColor = System.Drawing.Color.Black; + cell183.IndexInternal = 0; + cell183.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell183.Rect"))); + cell183.Style = null; + cell183.Text = ""; + cell183.Valuetype = arCtl.ListView2.eCellValueType.String; + cell184.BackColor = System.Drawing.Color.White; + cell184.BackColor2 = System.Drawing.Color.White; + cell184.DataGridViewInternal = null; + cell184.DisplayIndex = 0; + cell184.ForeColor = System.Drawing.Color.Black; + cell184.IndexInternal = 0; + cell184.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell184.Rect"))); + cell184.Style = null; + cell184.Text = ""; + cell184.Valuetype = arCtl.ListView2.eCellValueType.String; + cell185.BackColor = System.Drawing.Color.White; + cell185.BackColor2 = System.Drawing.Color.White; + cell185.DataGridViewInternal = null; + cell185.DisplayIndex = 0; + cell185.ForeColor = System.Drawing.Color.Black; + cell185.IndexInternal = 0; + cell185.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell185.Rect"))); + cell185.Style = null; + cell185.Text = ""; + cell185.Valuetype = arCtl.ListView2.eCellValueType.String; + cell186.BackColor = System.Drawing.Color.White; + cell186.BackColor2 = System.Drawing.Color.White; + cell186.DataGridViewInternal = null; + cell186.DisplayIndex = 0; + cell186.ForeColor = System.Drawing.Color.Black; + cell186.IndexInternal = 0; + cell186.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell186.Rect"))); + cell186.Style = null; + cell186.Text = ""; + cell186.Valuetype = arCtl.ListView2.eCellValueType.String; + row31.Cells = new arCtl.ListView2.Cell[] { + cell181, + cell182, + cell183, + cell184, + cell185, + cell186}; + row31.Rect = ((System.Drawing.RectangleF)(resources.GetObject("row31.Rect"))); + row31.Style = null; + cell187.BackColor = System.Drawing.Color.White; + cell187.BackColor2 = System.Drawing.Color.White; + cell187.DataGridViewInternal = null; + cell187.DisplayIndex = 0; + cell187.ForeColor = System.Drawing.Color.Black; + cell187.IndexInternal = 0; + cell187.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell187.Rect"))); + cell187.Style = null; + cell187.Text = "PART"; + cell187.Valuetype = arCtl.ListView2.eCellValueType.String; + cell188.BackColor = System.Drawing.Color.White; + cell188.BackColor2 = System.Drawing.Color.White; + cell188.DataGridViewInternal = null; + cell188.DisplayIndex = 0; + cell188.ForeColor = System.Drawing.Color.Black; + cell188.IndexInternal = 0; + cell188.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell188.Rect"))); + cell188.Style = null; + cell188.Text = ""; + cell188.Valuetype = arCtl.ListView2.eCellValueType.String; + cell189.BackColor = System.Drawing.Color.White; + cell189.BackColor2 = System.Drawing.Color.White; + cell189.DataGridViewInternal = null; + cell189.DisplayIndex = 0; + cell189.ForeColor = System.Drawing.Color.Black; + cell189.IndexInternal = 0; + cell189.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell189.Rect"))); + cell189.Style = null; + cell189.Text = ""; + cell189.Valuetype = arCtl.ListView2.eCellValueType.String; + cell190.BackColor = System.Drawing.Color.White; + cell190.BackColor2 = System.Drawing.Color.White; + cell190.DataGridViewInternal = null; + cell190.DisplayIndex = 0; + cell190.ForeColor = System.Drawing.Color.Black; + cell190.IndexInternal = 0; + cell190.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell190.Rect"))); + cell190.Style = null; + cell190.Text = ""; + cell190.Valuetype = arCtl.ListView2.eCellValueType.String; + cell191.BackColor = System.Drawing.Color.White; + cell191.BackColor2 = System.Drawing.Color.White; + cell191.DataGridViewInternal = null; + cell191.DisplayIndex = 0; + cell191.ForeColor = System.Drawing.Color.Black; + cell191.IndexInternal = 0; + cell191.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell191.Rect"))); + cell191.Style = null; + cell191.Text = "PART"; + cell191.Valuetype = arCtl.ListView2.eCellValueType.String; + cell192.BackColor = System.Drawing.Color.White; + cell192.BackColor2 = System.Drawing.Color.White; + cell192.DataGridViewInternal = null; + cell192.DisplayIndex = 0; + cell192.ForeColor = System.Drawing.Color.Black; + cell192.IndexInternal = 0; + cell192.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cell192.Rect"))); + cell192.Style = null; + cell192.Text = ""; + cell192.Valuetype = arCtl.ListView2.eCellValueType.String; + row32.Cells = new arCtl.ListView2.Cell[] { + cell187, + cell188, + cell189, + cell190, + cell191, + cell192}; + row32.Rect = ((System.Drawing.RectangleF)(resources.GetObject("row32.Rect"))); + row32.Style = null; + this.listView21.Rows = new arCtl.ListView2.Row[] { + row17, + row18, + row19, + row20, + row21, + row22, + row23, + row24, + row25, + row26, + row27, + row28, + row29, + row30, + row31, + row32}; + itemStyle4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(45)))), ((int)(((byte)(45))))); + itemStyle4.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + itemStyle4.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + itemStyle4.ForeColor = System.Drawing.Color.Black; + this.listView21.RowStyle = itemStyle4; + this.listView21.Size = new System.Drawing.Size(451, 403); + this.listView21.TabIndex = 7; + this.listView21.Text = "listView21"; + this.listView21.Click += new System.EventHandler(this.listView21_Click); + // + // ta + // + this.ta.ClearBeforeFill = true; + // + // toolStripButton1 + // + this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image"))); + this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton1.Name = "toolStripButton1"; + this.toolStripButton1.Size = new System.Drawing.Size(99, 44); + this.toolStripButton1.Text = "수동인쇄"; + this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click); + // + // FMain + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(1264, 985); + this.Controls.Add(this.panBottom); + this.Controls.Add(this.tableLayoutPanel1); + this.Controls.Add(this.panel1); + this.Controls.Add(this.panel9); + this.Controls.Add(this.panel24); + this.Controls.Add(this.panTopMenu); + this.Controls.Add(this.panStatusBar); + this.DoubleBuffered = true; + this.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.KeyPreview = true; + this.Name = "FMain"; + this.Padding = new System.Windows.Forms.Padding(1); + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Form1"; + this.Load += new System.EventHandler(this.@__Load); + this.panBottom.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.arDatagridView1)).EndInit(); + this.contextMenuStrip1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.bs)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).EndInit(); + this.cmCam.ResumeLayout(false); + this.panel37.ResumeLayout(false); + this.panel10.ResumeLayout(false); + this.panel15.ResumeLayout(false); + this.cmBarcode.ResumeLayout(false); + this.cmDebug.ResumeLayout(false); + this.panStatusBar.ResumeLayout(false); + this.panel3.ResumeLayout(false); + this.panTopMenu.ResumeLayout(false); + this.panTopMenu.PerformLayout(); + this.panel24.ResumeLayout(false); + this.tabControl1.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + this.groupBox5.ResumeLayout(false); + this.groupBox1.ResumeLayout(false); + this.tableLayoutPanel3.ResumeLayout(false); + this.grpProgress.ResumeLayout(false); + this.tableLayoutPanel5.ResumeLayout(false); + this.groupBox2.ResumeLayout(false); + this.tableLayoutPanel4.ResumeLayout(false); + this.groupBox4.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.keyenceviewR)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.keyenceviewF)).EndInit(); + this.groupBox3.ResumeLayout(false); + this.panel9.ResumeLayout(false); + this.tableLayoutPanel1.ResumeLayout(false); + this.panel1.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Timer tmDisplay; + private System.Windows.Forms.ToolTip toolTip1; + private System.Windows.Forms.ToolStripMenuItem systemParameterToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem4; + private System.Windows.Forms.ToolStripMenuItem demoRunToolStripMenuItem; + private arCtl.arLabel btStart; + private arCtl.arLabel btStop; + private System.Windows.Forms.ContextMenuStrip cmDebug; + private arCtl.arLabel btReset; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; + private System.Windows.Forms.DataGridViewTextBoxColumn idxDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn stripIdDataGridViewTextBoxColumn2; + private System.Windows.Forms.DataGridViewTextBoxColumn oKDataGridViewTextBoxColumn2; + private System.Windows.Forms.DataGridViewTextBoxColumn nGDataGridViewTextBoxColumn2; + private System.Windows.Forms.DataGridViewTextBoxColumn mISSDataGridViewTextBoxColumn2; + private System.Windows.Forms.DataGridViewTextBoxColumn fileMapDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn dataPathDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn mapOriginDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn mapArrayDataGridViewTextBoxColumn; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem9; + private System.Windows.Forms.ToolStripMenuItem testmenuToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem sMResetToolStripMenuItem; + private UIControl.HMI hmi1; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem8; + private System.Windows.Forms.ToolStripMenuItem motionEmulatorToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem dIOMonitorToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem refreshControklToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem 작업선택화면ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem historyToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem testToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem menusToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem sampleToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem debugModeToolStripMenuItem; + private System.Windows.Forms.Panel panBottom; + private System.Windows.Forms.ContextMenuStrip cmBarcode; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem22; + private System.Windows.Forms.ToolStripMenuItem detectCountToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem countToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem screenToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem jOBStartToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem motionParameterToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem axis0ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem axis1ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem axis2ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem axis3ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem axis4ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem clearToolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem sendMailToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem processListToolStripMenuItem; + private System.Windows.Forms.ContextMenuStrip cmCam; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2; + private System.Windows.Forms.ToolStripMenuItem readBarcodeToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem livetaskToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem zoomFitToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem3; + private System.Windows.Forms.ToolStripMenuItem keyenceTrigOnToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem keyenceTrigOffToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem keyenceSaveImageToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem5; + private System.Windows.Forms.ToolStripMenuItem liveViewProcessOnOffToolStripMenuItem; + private arCtl.arLabel lbLock2; + private arCtl.arLabel lbLock1; + private arCtl.arLabel lbLock0; + private arCtl.arDatagridView arDatagridView1; + private DataSet1 dataSet1; + private System.Windows.Forms.BindingSource bs; + private DataSet1TableAdapters.Component_Reel_ResultTableAdapter ta; + private System.Windows.Forms.Panel panel10; + private System.Windows.Forms.Panel panel37; + private System.Windows.Forms.Panel panel15; + private arCtl.arLabel arLabel6; + private arCtl.arLabel arLabel11; + private arCtl.arLabel arLabel75; + private arCtl.arLabel arLabel73; + private arCtl.arLabel arLabel76; + private arCtl.arLabel arLabel74; + private System.Windows.Forms.ToolStripMenuItem jObEndToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem7; + private System.Windows.Forms.ToolStripMenuItem visionProcess1ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem visionProcess0ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem customerRuleToolStripMenuItem; + private System.Windows.Forms.Panel panStatusBar; + private System.Windows.Forms.ToolStrip panTopMenu; + private System.Windows.Forms.ToolStripLabel toolStripLabel2; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator5; + private System.Windows.Forms.ToolStripButton toolStripButton23; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator8; + private System.Windows.Forms.ToolStripButton btSetting; + private System.Windows.Forms.ToolStripButton toolStripButton9; + private System.Windows.Forms.ToolStripButton btMReset; + private System.Windows.Forms.ToolStripButton toolStripButton16; + private System.Windows.Forms.ToolStripButton btLogViewer; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator6; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator7; + private System.Windows.Forms.ToolStripButton toolStripButton12; + private System.Windows.Forms.ToolStripButton btLightRoom; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator9; + private System.Windows.Forms.ToolStripButton btJobCancle; + private System.Windows.Forms.ToolStripButton btDebug; + private System.Windows.Forms.Panel panel24; + private System.Windows.Forms.GroupBox groupBox5; + private arCtl.LogTextBox RtLog; + private System.Windows.Forms.Panel panel25; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; + private arCtl.arLabel lbTime; + private System.Windows.Forms.Panel panel26; + private System.Windows.Forms.GroupBox grpProgress; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel5; + private arCtl.arLabel lbCntRight; + private System.Windows.Forms.Label lbTitleNG; + private System.Windows.Forms.Label label1; + private arCtl.arLabel lbCntLeft; + private System.Windows.Forms.Panel panel27; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; + private arCtl.arLabel tbVisionL; + private System.Windows.Forms.Label label5; + private arCtl.arLabel tbBarcodeR; + private System.Windows.Forms.Label label6; + private arCtl.arLabel tbVisionR; + private System.Windows.Forms.Panel panel28; + private System.Windows.Forms.GroupBox groupBox4; + private System.Windows.Forms.Panel panel9; + private arCtl.arLabel lbMsg; + private System.Windows.Forms.ToolStripButton toolStripButton15; + private System.Windows.Forms.ToolStripButton toolStripButton8; + private System.Windows.Forms.ToolStripDropDownButton toolStripButton3; + private System.Windows.Forms.ToolStripMenuItem 바코드LToolStripMenuItem; + private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; + private System.Windows.Forms.ToolStripMenuItem 새로고침ToolStripMenuItem; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Panel panel3; + private arFrame.Control.GridView IOState; + private arFrame.Control.GridView HWState; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.ToolStripMenuItem systemParameterMotorToolStripMenuItem; + private System.Windows.Forms.Label label7; + private arCtl.arLabel lbCntPicker; + private System.Windows.Forms.ToolStripMenuItem speedLimitToolStripMenuItem; + private System.Windows.Forms.ToolStripDropDownButton toolStripButton10; + private System.Windows.Forms.ToolStripMenuItem 빠른실행ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem btManage; + private System.Windows.Forms.ToolStripMenuItem regExTestToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem10; + private System.Windows.Forms.ToolStripDropDownButton toolStripButton11; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem11; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem13; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem14; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem15; + private System.Windows.Forms.ToolStripMenuItem bcdRegProcessClearToolStripMenuItem; + private System.Windows.Forms.ToolStripDropDownButton toolStripButton7; + private System.Windows.Forms.ToolStripMenuItem 모델선택ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem 바코드룰ToolStripMenuItem; + private System.Windows.Forms.GroupBox groupBox3; + private arCtl.arLabel lbModelName; + private System.Windows.Forms.ToolStripMenuItem displayVARToolStripMenuItem; + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem12; + private System.Windows.Forms.ToolStripMenuItem sID정보ToolStripMenuItem; + private arCtl.ListView2 listView21; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.ToolStripMenuItem 프린트룰ToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem16; + private System.Windows.Forms.ToolStripMenuItem getImageToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem 바코드키엔스ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem17; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem18; + private System.Windows.Forms.ToolStripMenuItem triggerOnToolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem triggerOffToolStripMenuItem1; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem19; + private System.Windows.Forms.ToolStripMenuItem connectToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem disConnectToolStripMenuItem; + private System.Windows.Forms.PictureBox keyenceviewF; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem20; + private System.Windows.Forms.ToolStripMenuItem resetToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem webManagerToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem btModelMot; + private System.Windows.Forms.PictureBox keyenceviewR; + private System.Windows.Forms.Label label3; + private arCtl.arLabel tbBarcodeF; + private System.Windows.Forms.ToolStripMenuItem 연결ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem21; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem24; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem26; + private System.Windows.Forms.ToolStripMenuItem inboundToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem postDataToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem manualPrintToolStripMenuItem; + private System.Windows.Forms.ToolStripSplitButton toolStripButton6; + private System.Windows.Forms.ToolStripMenuItem sWPLCToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem apiCheckToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem barcodeTestToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem6; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem28; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem30; + private System.Windows.Forms.ToolStripMenuItem 프로그램열기ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem 인바운드데이터업데이트ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem testToolStripMenuItem1; + private System.Windows.Forms.DataGridViewTextBoxColumn target; + private System.Windows.Forms.DataGridViewTextBoxColumn JTYPE; + private System.Windows.Forms.DataGridViewTextBoxColumn sTIMEDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn PTIME; + private System.Windows.Forms.DataGridViewTextBoxColumn sIDDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn rIDDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn VNAME; + private System.Windows.Forms.DataGridViewTextBoxColumn dvc_loc; + private System.Windows.Forms.DataGridViewTextBoxColumn qTYDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn qtymax; + private System.Windows.Forms.DataGridViewTextBoxColumn MFGDATE; + private System.Windows.Forms.DataGridViewTextBoxColumn VLOT; + private System.Windows.Forms.DataGridViewTextBoxColumn PNO; + private System.Windows.Forms.DataGridViewTextBoxColumn MCN; + private System.Windows.Forms.DataGridViewTextBoxColumn Column1; + private System.Windows.Forms.DataGridViewCheckBoxColumn PRNATTACH; + private System.Windows.Forms.DataGridViewCheckBoxColumn PRNVALID; + private System.Windows.Forms.DataGridViewTextBoxColumn LOC; + private System.Windows.Forms.DataGridViewTextBoxColumn SID0; + private System.Windows.Forms.DataGridViewTextBoxColumn RID0; + private System.Windows.Forms.DataGridViewTextBoxColumn QTY0; + private System.Windows.Forms.DataGridViewTextBoxColumn ETIME; + private System.Windows.Forms.DataGridViewTextBoxColumn JGUID; + private System.Windows.Forms.DataGridViewTextBoxColumn GUID; + private arCtl.arLabel arLabel1; + private System.Windows.Forms.ToolStripMenuItem apiCheck2activeLiToolStripMenuItem; + private System.Windows.Forms.ToolStripButton toolStripButton1; + } +} + diff --git a/Handler/Project/fMain.cs b/Handler/Project/fMain.cs new file mode 100644 index 0000000..46f3a7c --- /dev/null +++ b/Handler/Project/fMain.cs @@ -0,0 +1,2285 @@ +using Emgu.CV; +using Emgu.CV.Structure; +using System; +using System.ComponentModel; +using System.Diagnostics; +using System.Drawing; +using System.Runtime.InteropServices; +using System.Windows.Forms; +using UIControl; +using System.Linq; +using AR; +using System.Security.Permissions; +using Microsoft.Owin.Hosting; +using System.Collections.Generic; +using Chilkat; +using System.Threading.Tasks; + +namespace Project +{ + public partial class FMain : Form + { + + [DllImport("user32")] + public static extern Boolean ShowWindow(IntPtr hWnd, Int32 nCmdShow); + [DllImport("user32.dll")] + private static extern int SetActiveWindow(int hwnd); + + [DllImport("user32.dll")] + private static extern bool SetForegroundWindow(IntPtr hWnd); + + [DllImport("user32.dll")] + private static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow); + + Boolean camliveBusy = false; + bool liveviewprocesson = false; + Stopwatch watFps = new Stopwatch(); + Stopwatch watFps0 = new Stopwatch(); + Stopwatch watFps1 = new Stopwatch(); + Stopwatch watFps2 = new Stopwatch(); + + System.Threading.Thread thConnection; //연결체크 + byte ConnectSeq = 0; + DateTime AirOffStart = DateTime.Parse("1982-11-23"); + DateTime EmergencyTime = DateTime.Now; + Dialog.fLog logForm = null; + + + + public FMain() + { + InitializeComponent(); + PUB.initCore(); + + + + //AddLiveviewControl(); + + this.KeyDown += (s1, e1) => + { + if (e1.KeyCode == Keys.Escape) this.Close(); + else if (e1.KeyCode == Keys.F1 && e1.Control && e1.Shift) + { + Boolean debug = PUB.flag.get(eVarBool.FG_DEBUG); + PUB.flag.set(eVarBool.FG_DEBUG, !debug, "FMAIN_SECRETKEY"); + ShowDebugMenu(); + } + else if (e1.KeyCode == Keys.F2 && e1.Control && e1.Shift) menu_logform(); + else if (e1.KeyCode == Keys.F5) btStart.PerformClick(); + else if (e1.KeyCode == Keys.F8) btJobCancle.PerformClick(); + else if (e1.KeyCode == Keys.F9) btStart.PerformClick(); + + if (DateTime.Now > PUB.LastInputTime) PUB.LastInputTime = DateTime.Now; + }; + + //dotList = new List(); + //dotList.AddRange(new arCtl.arLabel[] { lbDot1, lbDot2, lbDot3, lbDot4, lbDot5, lbDot6, lbDot7, lbDot8, lbDot9, lbDot10 }); + + this.MouseMove += (s1, e1) => { if (DateTime.Now > PUB.LastInputTime) PUB.LastInputTime = DateTime.Now; }; + this.FormClosing += __Closing; + + if (AR.SETTING.Data.FullScreen) this.WindowState = FormWindowState.Maximized; + else this.Size = new Size(1280, 1024); + + //this.lbTitle.MouseMove += LbTitle_MouseMove; + //this.lbTitle.MouseUp += LbTitle_MouseUp; + //this.lbTitle.MouseDown += LbTitle_MouseDown; + //this.lbTitle.DoubleClick += LbTitle_DoubleClick; + } + + void ShowDebugMenu() + { + Boolean debug = PUB.flag.get(eVarBool.FG_DEBUG); + this.btDebug.Visible = debug; + this.hmi1.arDebugMode = debug; + //this.rtStatusMessage.Visible = debug; + //this.panel1.Visible = debug; + } + + private void __Closing(object sender, FormClosingEventArgs e) + { + PUB.popup.needClose = true; + if (PUB.sm.Step == eSMStep.RUN) + { + UTIL.MsgE("동작 중에는 종료 할 수 없습니다."); + e.Cancel = true; + return; + } + if (PUB.sm.Step < eSMStep.CLOSING) + { + var rlt = UTIL.MsgQ(Lang.Q_EXIT); + if (rlt != System.Windows.Forms.DialogResult.Yes) + { + e.Cancel = true; + return; + } + _Close_Start(); + } + } + + void UpdateControl() + { + this.RtLog.DateFormat = "HH:mm:ss"; + this.RtLog.BackColor = SystemColors.Window; + this.RtLog.ColorList = new arCtl.sLogMessageColor[] { + new arCtl.sLogMessageColor("BARCODE",Color.DarkMagenta), + new arCtl.sLogMessageColor("ERR",Color.Red), + new arCtl.sLogMessageColor("NORMAL", Color.Black), + new arCtl.sLogMessageColor("WARN", Color.DarkMagenta), + new arCtl.sLogMessageColor("ATT", Color.Tomato), + new arCtl.sLogMessageColor("INFO", Color.MidnightBlue), + new arCtl.sLogMessageColor("VIS", Color.Blue), + new arCtl.sLogMessageColor("SM", Color.Indigo), + new arCtl.sLogMessageColor("WATCH", Color.Indigo), + }; + + var colname = new string[] { "RID", "SID", "QTY", "VNAME", "VLOT", "MFG", "PART" }; + var row = 1; + foreach (var col in colname) + { + listView21.SetText(row, 0, col); + listView21.SetText(row, 2, col); + listView21.SetText(row, 4, col); + + listView21.SetText(row, 1, string.Empty); + listView21.SetText(row, 3, string.Empty); + listView21.SetText(row, 5, string.Empty); + + row += 1; + } + listView21.SetText(row, 0, "SIZE"); + listView21.SetText(row, 2, "SIZE"); + row += 1; + + var row2 = row; + foreach (var col in colname) + { + listView21.SetText(row2, 0, col); + //listView21.SetText(row, 2, col); + listView21.SetText(row2, 4, col); + + listView21.SetText(row2, 1, string.Empty); + listView21.SetText(row2, 3, string.Empty); + listView21.SetText(row2, 5, string.Empty); + + row2 += 1; + } + + colname = new string[] { "DEG", "QR", "BCD", "REGEX", "", "", "" }; + foreach (var col in colname) + { + listView21.SetText(row, 2, col); + listView21.SetText(row, 3, string.Empty); + row += 1; + } + + TowerLamp.Enable = !AR.SETTING.Data.Disable_TowerLamp; + + if (VAR.BOOL[eVarBool.Use_Conveyor]) + { + hmi1.arVar_Port[0].MotorDir = true; + hmi1.arVar_Port[2].MotorDir = true; + } + + //키엔스2개사용여부에따른 ui변경 + if (SETTING.Data.Keyence_IPR.isEmpty()) + { + keyenceviewR.Visible = false; + keyenceviewF.Dock = DockStyle.Fill; + } + else + { + keyenceviewR.Visible = true; + keyenceviewF.Dock = DockStyle.Right; + } + if (VAR.BOOL[eVarBool.Use_Conveyor]) + { + lbLock0.Visible = false; + lbLock2.Visible = false; + arLabel6.Text = "▲"; + arLabel11.Text = "■"; + arLabel74.Text = "▲"; + arLabel76.Text = "■"; + SETTING.Data.Disable_PortL = true; + SETTING.Data.Disable_PortR = true; + } + else + { + lbLock0.Visible = true; + lbLock2.Visible = true; + arLabel6.Text = "▼"; + arLabel11.Text = "▲"; + arLabel74.Text = "▼"; + arLabel76.Text = "▲"; + SETTING.Data.Disable_PortL = false; + SETTING.Data.Disable_PortR = false; + + } + } + + + void RefreshList() + { + //if (COMM.SETTING.Data.OnlineMode == false) return; + + if (this.InvokeRequired) + { + this.BeginInvoke(new MethodInvoker(RefreshList)); + return; + } + + VAR.TIME[eVarTime.REFRESHLIST] = DateTime.Now; + + try + { + var dtstr = DateTime.Now.ToShortDateString(); + + if (AR.SETTING.Data.OnlineMode) + { + try + { + this.ta.FillByLen7(this.dataSet1.Component_Reel_Result, dtstr, dtstr, AR.SETTING.Data.McName); + } + catch (Exception ex) + { + PUB.log.AddE($"DB History Request Error" + ex.Message); + } + } + ListFormmatData(); + + + var TS1 = VAR.TIME.RUN(eVarTime.REFRESHLIST); + PUB.log.AddI(string.Format($"목록 새로 고침({0}건) {TS1.TotalSeconds:N1}s", dataSet1.Component_Reel_Result.Count)); + + ////Summary + //listView1.Items.Clear(); + //using (var ta = new DataSet1TableAdapters.ResultSummaryTableAdapter()) + //{ + // var dt = ta.GetData(dtstr, dtstr, AR.SETTING.Data.McName); + // var sum_qty = 0; + // var sum_kpc = 0.0; + // foreach (DataSet1.ResultSummaryRow dr in dt) + // { + // var lv = this.listView1.Items.Add(dr.PARTNO); + // lv.SubItems.Add(dr.VLOT); + // lv.SubItems.Add($"{dr.QTY}"); + // lv.SubItems.Add($"{dr.KPC}"); + // sum_qty += dr.QTY; + // sum_kpc += dr.KPC; + // } + + // if (sum_qty > 0) + // { + // var lvsum = this.listView1.Items.Add("TOTAL"); + // lvsum.SubItems.Add(""); + // lvsum.SubItems.Add($"{sum_qty}"); + // lvsum.SubItems.Add($"{sum_kpc}"); + // lvsum.BackColor = Color.LightGray; + // } + + + //} + //TS1 = VAR.TIME.RUN(eVarTime.REFRESHLIST); + //PUB.log.AddI($"요약{TS1.TotalSeconds:N1}s"); + + } + catch (Exception ex) + { + PUB.log.AddE("목록 새로고침 실패:" + ex.Message); + } + } + + void ListFormmatData() + { + if (this.InvokeRequired) + { + this.BeginInvoke(new MethodInvoker(ListFormmatData)); + return; + } + + PUB.log.Add($"ListFormmatData"); + + arDatagridView1.SuspendLayout(); + foreach (DataGridViewRow item in this.arDatagridView1.Rows) + { + var drv = item.DataBoundItem as System.Data.DataRowView; + var dr = drv.Row as DataSet1.Component_Reel_ResultRow; + + if (dr.REMARK.StartsWith("(BYPASS")) + { + item.DefaultCellStyle.BackColor = Color.LightSkyBlue; + } + else + { + if (dr.LOC == "L") + item.DefaultCellStyle.BackColor = Color.FromArgb(220, 220, 220); + else + item.DefaultCellStyle.BackColor = Color.FromArgb(250, 250, 250); + } + + if (dr.REMARK.StartsWith("(BYPASS")) + item.DefaultCellStyle.ForeColor = Color.Black; + else if (dr.PRNATTACH == false) + item.DefaultCellStyle.ForeColor = Color.FromArgb(0xfe, 0x2a, 0x00); + else if (dr.PRNVALID == false) + item.DefaultCellStyle.ForeColor = Color.FromArgb(0x1f, 0x3b, 0x34); + else + item.DefaultCellStyle.ForeColor = Color.Black; + } + arDatagridView1.ResumeLayout(); + } + private void __Load(object sender, EventArgs e) + { + + + this.Text = Application.ProductName + " ver " + Application.ProductVersion + " " + Application.CompanyName; + PUB.init(); //public initialize + + VAR.BOOL[eVarBool.Use_Conveyor] = PUB.uSetting.useConv; + groupBox3.Text = $"모델정보({AR.SETTING.Data.McName})"; + + UpdateControl(); + PUB.log.RaiseMsg += Log_RaiseMsg; + PUB.logKeyence.RaiseMsg += Log_RaiseMsg; + PUB.logWS.RaiseMsg += LogWS_RaiseMsg; + + //위치 레이아웃 off한다. + //this.pPosL.Visible = false; + //this.pPosC.Visible = false; + //this.pPosR.Visible = false; + + this.Show(); + // sbDevice.Text = ""; + SetStatusMessage("프로그램 초기화", Color.White, Color.White, Color.Tomato, Color.Black); + + + + //피커 상태초기화 + foreach (var item in this.hmi1.arVar_Picker) + item.Clear(); + + //포트 상태 초기화 + foreach (var item in this.hmi1.arVar_Port) + item.Clear(); + + + PUB.flag.set(eVarBool.FG_DEBUG, true, "개발중"); + ShowDebugMenu(); + + ////'Application.DoEvents(); + + //setting dio events + PUB.dio.IOValueChanged += Dio_IOValueChanged; + PUB.dio.Message += _DIO_IOMessage; + + //setting mot events + PUB.mot.Message += mot_Message; + PUB.mot.HomeStatusChanged += mot_HomeStatusChanged; + PUB.mot.AxisMoveValidateCheck += mot_AxisMoveValidateCheck; + PUB.mot.PositionChanged += Mot_PositionChanged; + PUB.mot.StatusChanged += mot_StatusChanged; + PUB.mot.EndStatusChanged += Mot_EndStatusChanged; + + //remote control + PUB.remocon = new arDev.RS232("R"); + PUB.remocon.Terminal = arDev.RS232.eTerminal.LF; + //Pub.remocon.ReceiveData += remocon_ReceiveData; + + PUB.BarcodeFix = new arDev.RS232("B"); + PUB.BarcodeFix.Terminal = arDev.RS232.eTerminal.LF; + PUB.BarcodeFix.ReceiveData += BarcodeFix_ReceiveData; + + var portinfo = AR.SETTING.Data.Serial_Remocon.Split(':'); + PUB.remocon.PortName = portinfo[0]; + if (portinfo.Length > 1) PUB.remocon.BaudRate = int.Parse(portinfo[1]); + else PUB.remocon.BaudRate = 9600; + if (PUB.remocon.Open() == false) PUB.log.AddAT("디버깅포트 열기 실패(" + AR.SETTING.Data.Serial_Remocon + ")"); + else PUB.log.Add("디버깅포트 열기 성공(" + AR.SETTING.Data.Serial_Remocon + ")"); + + + PUB.log.Add("상태머신 시작"); + PUB.sm.SetMsgOptOff(); //모든 메세지출력을 해제한다. (이벤트는 동작함) + PUB.sm.Running += SM_Loop; + PUB.sm.SPS += SM_SPS; + + //###################################################### + //########## 아래 이벤트는 _11_SM_Events.cs 파일에 정의됨 + //###################################################### + PUB.sm.StepChanged += SM_StepChanged; + PUB.sm.Message += SM_Message; + PUB.sm.InitControl += SM_InitControl; + PUB.sm.StepStarted += SM_StepStarted; + PUB.sm.StepCompleted += SM_StepCompleted; + PUB.sm.StateProgress += SM_StateProgress; + PUB.sm.Start(); + + //Fag 값 변화 + //PUB.flag.ValueChanged += Flag_ValueChanged; + VAR.BOOL.ValueChanged += Flag_ValueChanged; + + //ILock 값 변화 + for (int i = 0; i < PUB.iLock.Length; i++) + PUB.iLock[i].ValueChanged += Lock_ValueChanged; + + //ILock 값 변화 + PUB.iLockPRL.ValueChanged += Lock_ValueChanged; + PUB.iLockPRR.ValueChanged += Lock_ValueChanged; + PUB.iLockVS0.ValueChanged += Lock_ValueChanged; + PUB.iLockVS1.ValueChanged += Lock_ValueChanged; + PUB.iLockVS2.ValueChanged += Lock_ValueChanged; + + PUB.iLockCVL.ValueChanged += Lock_ValueChanged; + PUB.iLockCVR.ValueChanged += Lock_ValueChanged; + + hmi1.ClearMenu(); + hmi1.Message += loader1_Message; + hmi1.IConClick += loader1_IConClick; + hmi1.ButtonClick += Loader1_ButtonClick; + + PUB.plc = new AR.MemoryMap.Client(SETTING.Data.swplc_name, SETTING.Data.swplc_size); + PUB.plc.ValueChanged += Plc_ValueChanged; + PUB.plc.Start(); + + + //연결체크용 쓰레드 + var thStart = new System.Threading.ThreadStart(bwDeviceConnection); + thConnection = new System.Threading.Thread(thStart); + thConnection.IsBackground = true; + thConnection.Start(); + + + VAR.I32[eVarInt32.Front_Laser_Cleaning] += 1; + + + //조이스틱 설정 + PUB.joystick = new arDev.Joystick.JoystickRaw(); + PUB.joystick.Changed += Joystick_Changed; + PUB.joystick.Connected += Joystick_Connected; + PUB.joystick.Disconnected += Joystick_Disconnected; + PUB.joystick.InputChanged += Joystick_InputChanged; + if (AR.SETTING.Data.Jostick_pid != 0 && AR.SETTING.Data.Jostick_vid != 0) + { + PUB.log.Add($"Joystick Connect VID:{AR.SETTING.Data.Jostick_vid},PID:{AR.SETTING.Data.Jostick_pid}"); + PUB.joystick.Connect(AR.SETTING.Data.Jostick_vid, AR.SETTING.Data.Jostick_pid); + } + + //키엔스연결 + if (SETTING.Data.Keyence_IPF.isEmpty() == false) + { + PUB.keyenceF = new Device.KeyenceBarcode(AR.SETTING.Data.Keyence_IPF); + PUB.keyenceF.Tag = "F"; + PUB.keyenceF.Connect(); + PUB.keyenceF.BarcodeRecv += Keyence_BarcodeRecv; + PUB.keyenceF.ImageRecv += Keyence_ImageRecv; + } + + if (SETTING.Data.Keyence_IPR.isEmpty() == false) + { + PUB.keyenceR = new Device.KeyenceBarcode(AR.SETTING.Data.Keyence_IPR); + PUB.keyenceR.Tag = "R"; + PUB.keyenceR.Connect(); + PUB.keyenceR.BarcodeRecv += Keyence_BarcodeRecv; + PUB.keyenceR.ImageRecv += Keyence_ImageRecv; + } + + tmDisplay.Start(); //start Display + + PUB.AddSystemLog(Application.ProductVersion, "SCREEN", "Message"); + + PUB.log.Add("Program Start"); + if (SETTING.Data.OnlineMode) + PUB.CheckNRegister3(Application.ProductName, "chi", Application.ProductVersion); + + if (SETTING.Data.EnableDebugMode) + { + btDebug.Visible = true; + PUB.flag.set(eVarBool.FG_DEBUG, true, "FMAIN_STARTUP"); + // menu_logform(); + } + + //swplc 프로그램 실행 + var swplcfile = UTIL.MakePath("swplc", "swplc.exe"); + if (System.IO.File.Exists(swplcfile)) + { + UTIL.RunProcess(swplcfile); + } + + + + RefreshList(); + UpdateControl(); + PUB.flag.set(eVarBool.FG_ENABLE_LEFT, !AR.SETTING.Data.Disable_Left, "LOAD"); + PUB.flag.set(eVarBool.FG_ENABLE_RIGHT, !AR.SETTING.Data.Disable_Right, "LOAD"); + + this.Show(); + this.Activate(); + + Amkor.RestfulService.Message += RestfulService_Message; + } + + private void RestfulService_Message(object sender, Amkor.RestfulService.MessageEventArgs e) + { + if (e.isError) PUB.log.AddE($"restful log : {e.Message}"); + else PUB.log.AddI($"restful log : {e.Message}"); + } + + private void Plc_ValueChanged(object sender, AR.MemoryMap.Core.monitorvalueargs e) + { + // + } + + private void BarcodeFix_ReceiveData(object sender, arDev.RS232.ReceiveDataEventArgs e) + { + var data = e.StrValue.Replace("\r", "").Replace("\n", ""); + bool findregex = false; + PUB.log.Add($"고정바코드수신\n{data}"); + var cnt = BarcodeRegExProcess( + PUB.Result.BCDPattern, + PUB.Result.BCDIgnorePattern, + PUB.Result.ItemDataC.VisionData, string.Empty, data, out bool IgnoreBarcode, out findregex); + + if (IgnoreBarcode) PUB.log.AddE("무시바코드 입니다"); + else if (cnt.Item1 == 0) PUB.log.AddAT("(수동)바코드 적용값 없음"); + else PUB.log.Add($"(수동)바코드적용수:{cnt.Item1}"); + + //다른모델에서 패턴이가능한것을 찾는다 + if ((cnt?.Item1 ?? 0) == 0) + { + var patterns = PUB.GetPatterns("%", false); + PUB.log.Add("=============="); + cnt = BarcodeRegExProcess(patterns, new System.Collections.Generic.List(), null, string.Empty, data, out bool igBarcode, out findregex); + if (cnt.Item1 > 0) + { + PUB.log.AddI("아래 바코드와 호환됩니다"); + foreach (var item in cnt.Item2) + { + PUB.log.Add($"모델:{item}"); + } + + //데이터가 1건이고 현재 모델과 이름이 다르면 추천한다 + if (cnt.Item2.Count == 1 && AR.SETTING.Data.Enable_AutoChangeModelbyHandBarcode) + { + var modelname = cnt.Item2[0].Split('|')[0]; + if (PUB.Result.isSetvModel && modelname.Equals(PUB.Result.vModel.Title)) + { + //동일바코드라서 추가 작업 없음 + } + else + { + if (PUB.mdm.dataSet.OPModel.Where(t => t.Title.Equals(modelname)).Any()) + { + PUB.log.Add($"모델자동전환(고정바코드)"); + PUB.SelectModelV(modelname); + } + } + } + + } + } + } + + void loader1_Message(object sender, HMI.MessageArgs e) + { + //로더에서 발생한 메세지 + if (e.isError) PUB.log.AddE(e.Message); + else PUB.log.Add(e.Message); + } + + private void Log_RaiseMsg(DateTime LogTime, string TypeStr, string Message) + { + if (Message.Contains("ignore")) return; + if (Message.StartsWith("1:")) return; + if (Message.StartsWith("11:")) return; + + this.RtLog.AddMsg(LogTime, TypeStr, Message); + } + private void LogWS_RaiseMsg(DateTime LogTime, string TypeStr, string Message) + { + this.RtLog.AddMsg(LogTime, TypeStr, Message); + } + + + + delegate void SelectModelHandler(string modelName, bool bUploadConfig); + + + + + + //void UpLoadBarcodeConfigR() + //{ + // if (PUB.keyenceR == null || PUB.keyenceR.IsConnect == false) + // { + // PUB.log.AddAT($"바코드R가 연결되지 않아 설정 파일을 업로드하지 않습니다. 신규 작업 시작시 해당 정보는 재 전송 됩니다. 좌측하단의 바코드 연결을 확인 후 모델을 선택하시면 이 오류가 발생되지 않습니다"); + // return; + // } + + // //바코드설정파일 입력 + // var mv = PUB.Result.vModel; + // var configfilename = mv.Title; + // if (configfilename.isEmpty()) configfilename = mv.Title; + // if (configfilename.EndsWith("R") == false) configfilename += "R"; + + // var jobcode = VAR.STR[eVarString.JOB_TYPE]; + // if (jobcode.isEmpty() == false) configfilename += $"_{jobcode}"; + + // if (configfilename.ToLower().EndsWith("ptc") == false) configfilename += ".ptc"; + // var configpath = System.IO.Path.Combine(UTIL.CurrentPath, "Model", configfilename); + // var configfi = new System.IO.FileInfo(configpath); + // if (configfi.Exists == false) + // { + // PUB.log.AddAT($"바코드R 설정파일({configfi.Name})이 없습니다"); + // } + // else + // { + // try + // { + // //접속되어잇ㅇ츠면 끈다 + // if (PUB.keyenceR.IsConnect) PUB.keyenceR.Trigger(false); + // var ftp = new arUtil.FTPClient.FTPClient(); + // ftp.Host = COMM.SETTING.Data.Keyence_IPR; + // ftp.Port = 21; + // var UPFileName = @"\CONFIG\CONFIG.PTC"; + // var upOk = ftp.Upload(UPFileName, configfi.FullName); + // if (upOk == false) PUB.log.AddE("바코드R 설정파일 업로드 실패"); + // else PUB.log.AddI($"바코드R 설정파일 업로드 완료({configfi.FullName})"); + // if (PUB.keyenceR.IsConnect) PUB.keyenceR.Trigger(true); + // } + // catch (Exception ex) + // { + // PUB.log.AddE($"바코드R FTP전송 실패:{ex.Message}"); + // } + // } + //} + + /// + /// soft reset value & use + /// + void UpdateSoftLimit() + { + PUB.log.Add("모션 SOFT-LIMIT 설정"); + + for (int i = 0; i < PUB.mot.DeviceCount; i++) + { + if (PUB.system_mot.UseAxis(i) == false) + { + PUB.mot.SetUse(i, false); + } + else + { + PUB.mot.SetUse(i, true); + if (PUB.system_mot.SWLimit(i) > 0) + PUB.mot.SetSoftLimit((short)i, true, PUB.system_mot.SWLimit(i), -9999); + else + PUB.mot.SetSoftLimit((short)i, false, 0, 0); + } + } + + } + + void Func_sw_initialize() + { + PUB.Result.ResetButtonDownTime = DateTime.Now; + if (PUB.sm.Step == eSMStep.RUN) + { + PUB.popup.setMessage("SYSTEM INNITIALIZE\n" + + "동작중에는 [초기화]를 실행할 수 없습니다\n" + + "방법 #1 => [중지] 버튼을 이용하여 시스템을 정지 후 다시 시도\n" + + "방법 #2 => [수동실행] 모드로 전환 후 다시 시도"); + } + else if ( + PUB.sm.getNewStep != eSMStep.HOME_FULL && + PUB.sm.Step != eSMStep.HOME_FULL) + { + PUB.log.Add("시스템상태를 RESET으로 전환 합니다"); + PUB.AddSystemLog(Application.ProductVersion, "MAIN", "SYSTEM RESET"); + PUB.sm.SetNewStep(eSMStep.HOME_FULL); + } + else PUB.log.AddAT("RESET 중이므로 RESET 버튼을 무시 합니다."); + } + + + /// + /// 작업시작전 작업에대한 선택 + /// + void Func_start_job_select() + { + if (this.InvokeRequired) + { + this.BeginInvoke(new MethodInvoker(Func_start_job_select), null); + } + else + { + //로그창 지우기 + if (this.RtLog.InvokeRequired) RtLog.BeginInvoke(new Action(() => { RtLog.Clear(); })); + else this.RtLog.Clear(); + + //PUB.popup.needClose = true; + //PUB.flag.set(eVarBool.RUN_INIT, false, "FN_JOBSELECT"); + //PUB.ClearRunStep(0); + //PUB.ClearRunStep(1); + + if (DIO.GetIOInput(eDIName.PICKER_SAFE) == false) + { + PUB.Result.SetResultMessage(eResult.OPERATION, eECode.NEED_JOBCANCEL, eNextStep.ERROR); + return; + } + + + var sb = new System.Text.StringBuilder(); + if (PUB.mot.IsInit == false) sb.AppendLine("▶ 모션 보드가 초기화 되지 않았습니다.\n문의 바랍니다"); + if (PUB.dio.IsInit == false) sb.AppendLine("▶ I/O 보드가 초기화 되지 않았습니다.\n문의 바랍니다"); + if (DIO.GetIOOutput(eDOName.SOL_AIR) == false) sb.AppendLine("▶ AIR 출력 안됨(전면의 AIR버튼을 누르세요)"); + if (DIO.GetIOInput(eDIName.AIR_DETECT) == false) sb.AppendLine("▶ AIR 감지 안됨(AIR 입력 및 출력상태를 확인하세요)"); + + if (PUB.mot.HasHomeSetOff == true) sb.AppendLine("▶ 홈 검색이 완료되지 않은 축이 있습니다(장치초기화를 먼저 실행 하세요)"); + + if (sb.Length > 0) + { + PUB.Result.SetResultMessage(eResult.HARDWARE, eECode.MESSAGE_ERROR, eNextStep.ERROR, sb.ToString()); + return; + } + + //작업형태를 선택하게 한다 + + Form f; + + f = new Dialog.fSelectJob(); + if (f.ShowDialog() == DialogResult.OK) + { + PUB.sm.SetNewStep(eSMStep.RUN); + } + else + { + PUB.log.AddAT("작업 시작전 선택화면에서 사용자가 취소함"); + + } + } + } + + Dialog.fSystem_Setting frmSysParam = null; + Dialog.fSystem_MotParameter frmSysMotParam = null; + + private void systemParameterToolStripMenuItem_Click(object sender, EventArgs e) + { + if (frmSysParam == null || frmSysParam.IsDisposed || frmSysParam.Disposing) + { + if (frmSysParam != null) frmSysParam.FormClosed -= frmSysParam_FormClosed; + frmSysParam = new Dialog.fSystem_Setting(); + frmSysParam.FormClosed += frmSysParam_FormClosed; + } + frmSysParam.Show(); + frmSysParam.Activate(); + if (frmSysParam.WindowState == FormWindowState.Minimized) + frmSysParam.WindowState = FormWindowState.Normal; + } + + void frmSysParam_FormClosed(object sender, FormClosedEventArgs e) + { + var f = sender as Form; + if (f.DialogResult == System.Windows.Forms.DialogResult.OK) + { + UpdateSoftLimit(); + } + } + + void CheckFreeSpace() + { + try + { + double freeSpaceRate_ = 0; + var path = PUB.getSavePath(out freeSpaceRate_); + if (path.StartsWith("\\")) + { + hmi1.arFreespace = 0.0; + } + else + { + hmi1.arFreespace = freeSpaceRate_;// + if (freeSpaceRate_ < AR.SETTING.Data.AutoDeleteThreshold) + { + PUB.flag.set(eVarBool.FG_MINSPACE, true, "CheckFreeSpace"); + hmi1.arLowDiskSpace = true; + } + else + { + PUB.flag.set(eVarBool.FG_MINSPACE, false, "CheckFreeSpace"); + hmi1.arLowDiskSpace = false; + } + } + } + catch (Exception ex) + { + hmi1.arFreespace = 0.0; + PUB.log.AddE("check free space : " + ex.Message); + } + } + + private void demoRunToolStripMenuItem_Click(object sender, EventArgs e) + { + var item = new Class.JobData(0) { }; + SaveData_EE(item, "L", "TEST", "debug"); + + } + + + private void arLabel2_Click_1(object sender, EventArgs e) + { + var ctl = sender as arCtl.arLabel; + if (ctl.Enabled == false) return; + PUB.log.Add("User Click : Start", false); + _BUTTON_START(); + } + + + + private void arLabel4_Click_1(object sender, EventArgs e) + { + PUB.log.Add("User Click : Stop", false); + _BUTTON_STOP(); + } + + private void btReset_Click(object sender, EventArgs e) + { + PUB.log.Add("User Click : Reset", false); + _BUTTON_RESET(); + } + + void menu_logform() + { + if (logForm == null || logForm.IsDisposed == true || logForm.Disposing == true) + logForm = new Dialog.fLog(); + if (logForm.WindowState == FormWindowState.Minimized) logForm.WindowState = FormWindowState.Normal; + logForm.Show(); + } + + + private void toolStripMenuItem9_Click(object sender, EventArgs e) + { + menu_logform(); + } + + + + private void arLabel10_Click_1(object sender, EventArgs e) + { + if (PUB.sm.isRunning == true) + { + UTIL.MsgE(Lang.CAN_NOT_RUN_AUTOMODE); + return; + } + + this.Close(); + } + + private void button7_Click(object sender, EventArgs e) + { + if (PUB.flag.get(eVarBool.FG_INIT_MOTIO) == false) + { + UTIL.MsgE("모션이 초기화 되지 않았습니다\n잠시 후 다시 시도하세요"); + return; + } + var cur = DIO.GetIOOutput(eDOName.ROOMLIGHT); + DIO.SetRoomLight(!cur, true); + } + + Dialog.fHistory fhist = null; + private void button3_Click(object sender, EventArgs e) + { + if (fhist == null || fhist.IsDisposed) + fhist = new Dialog.fHistory(); + + fhist.Show(); + fhist.Activate(); + if (fhist.WindowState == FormWindowState.Minimized) + fhist.WindowState = FormWindowState.Maximized; + + //f.Show(); + //var file = System.IO.Path.Combine(UTIL.CurrentPath, "ResultView", "ResultView.exe"); + //if (System.IO.File.Exists(file) == false) + //{ + + // PUB.popup.setMessage("Result Viewer Error\n결과보기 파일이 존재하지 않습니다\n개발자에 문의 주세요(T.8567)\nFile : " + file); + // return; + //} + //UTIL.RunProcess(file); + } + + private void button4_Click(object sender, EventArgs e) + { + + } + + + private void button5_Click(object sender, EventArgs e) + { + + } + + private void button6_Click(object sender, EventArgs e) + { + + } + + private void arLabel13_Click(object sender, EventArgs e) + { + UTIL.ScreenCapture(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height, new Point(0, 0)); + } + + void menu_cancel() + { + + if (PUB.flag.get(eVarBool.FG_INIT_MOTIO) == false) + { + UTIL.MsgE("모션이 초기화 되지 않았습니다\n잠시 후 다시 시도하세요"); + return; + } + + var msg = new System.Text.StringBuilder(); + + + if (PUB.mot.HasHomeSetOff) + { + msg.AppendLine("! 장치 초기화가 완료되지 않은 상태입니다\n! 장치초기화를 실행 하세요"); + } + + if (PUB.sm.isRunning == true) + { + msg.AppendLine("! " + Lang.CAN_NOT_RUN_AUTOMODE); + } + + ////if (PUB.sm.Step == eSMStep.PAUSE) + ////{ + //// msg.AppendLine("! RESET을 누른 후 다시 시도하세요"); + ////} + + if (DIO.IsEmergencyOn() == true) + { + msg.AppendLine("! 비상정지를 해제하세요"); + } + + if (DIO.isSaftyDoorF() == false) + { + msg.AppendLine("!전면 도어가 열려 있습니다"); + } + + if (DIO.isSaftyDoorR() == false) + { + msg.AppendLine("!후면 도어가 열려 있습니다"); + } + + if (msg.Length > 0) + { + UTIL.MsgE(msg.ToString()); + PUB.log.AddE(msg.ToString()); + return; + } + + msg.Clear(); + msg.AppendLine("Q. 작업을 취소하고 모션의 위치 초기화를 실행하시겠습니까?"); + var dlgresult = UTIL.MsgQ(msg.ToString()); + if (dlgresult != System.Windows.Forms.DialogResult.Yes) return; + + PUB.log.Add("User Click : tray out & clear position", false); + Run_MotionPositionReset(); + } + + void Run_MotionPositionReset() + { + PUB.flag.set(eVarBool.FG_USERSTEP, false, "Run_MotionPositionReset"); + PUB.log.AddAT("배출 및 원점이동 시작"); + PUB.AddSystemLog(Application.ProductVersion, "MAIN", "작업취소"); + PUB.sm.SetNewStep(eSMStep.HOME_QUICK);//실행모드로 변경 + } + + private void arLabel14_Click(object sender, EventArgs e) + { + if (PUB.flag.get(eVarBool.FG_INIT_MOTIO) == false) + { + UTIL.MsgE("모션이 초기화 되지 않았습니다\n잠시 후 다시 시도하세요"); + return; + } + var msg = new System.Text.StringBuilder(); + + if (PUB.sm.isRunning == true) + msg.AppendLine("*" + Lang.CAN_NOT_RUN_AUTOMODE); + + if (DIO.GetIOOutput(eDOName.SOL_AIR) == false) + msg.AppendLine("* 전면의 AIR버튼을 눌러서 AIR를 공급하세요"); + + //if (DIO.GetIOOutput(eDOName.SOL_AIR) && DIO.GetIOInput(eDIName.AIR_DETECT) == false) + // msg.AppendLine("* AIR 감지 안됨, AIR 공급상태를 확인 하세요"); + if (DIO.GetIOInput(eDIName.L_PICK_BW) == false) + { + msg.AppendLine("* 왼쪽 프린터 피커가 후진상태가 아닙니다."); + } + if (DIO.GetIOInput(eDIName.R_PICK_BW) == false) + { + msg.AppendLine("* 오른쪽 프린터 피커가 후진상태가 아닙니다."); + } + + if (AR.SETTING.Data.Enable_PickerCylinder) + { + if (DIO.GetIOInput(eDIName.L_CYLUP) == false) + { + msg.AppendLine("* 왼쪽 프린터 피커 실린더가 UP상태가 아닙니다."); + } + if (DIO.GetIOInput(eDIName.R_CYLUP) == false) + { + msg.AppendLine("* 오른쪽 프린터 피커 실린더가 UP상태가 아닙니다."); + } + } + + + if (DIO.IsEmergencyOn() == true) + msg.AppendLine("* 비상정지 상태일때에는 움직일 수 없습니다."); + + if (PUB.sm.Step == eSMStep.RUN) + msg.AppendLine("* 동작중에는 초기화할 수 없습니다"); + + if (msg.Length > 0) + { + UTIL.MsgE(msg.ToString()); + return; + } + + //CMenuButton btYes = new CMenuButton + //{ + // Text = "초기화", + // Tag = "yes", + // BackColor = Color.Tomato, + // OverColor = Color.Gold + //}; + + //CMenuButton btNo = new CMenuButton("취소", "NO"); + //var menu = new CMenu("모션의 홈 및 상태 초기화를 실행하시겠습니까?", "장치 초기화", "init", eMsgIcon.Alert, btYes, btNo); + //loader1.AddMenu(menu); + + msg.Clear(); + msg.AppendLine("모션의 홈 및 상태의 초기화를 실행하시겠습니까?"); + var dlgresult = UTIL.MsgQ(msg.ToString()); + if (dlgresult != System.Windows.Forms.DialogResult.Yes) return; + + PUB.log.Add("User Click : initialize", false); + Func_sw_initialize(); + } + + private void arLabel11_Click(object sender, EventArgs e) + { + if (PUB.sm.isRunning == true) + { + UTIL.MsgE(Lang.CAN_NOT_RUN_AUTOMODE); + return; + } + + + fSetting f = new fSetting(); + + var popmsg = PUB.popup.Visible; + if (f.ShowDialog() == DialogResult.OK) + { + DIO.InitDIOSensitive(); + + //핀정의 파일 업데이트 + DIO.Pin.SetInputData(PUB.mdm.dataSet.InputDescription); + DIO.Pin.SetOutputData(PUB.mdm.dataSet.OutputDescription); + + if (AR.SETTING.Data.Disable_RoomLight == true) + DIO.SetRoomLight(false); + if (AR.SETTING.Data.Disable_TowerLamp == true) + { + DIO.SetTwGrn(false); + DIO.SetTwRed(false); + DIO.SetTwYel(false); + } + if (AR.SETTING.Data.Serial_Remocon.isEmpty() == false) + { + var portinfo = AR.SETTING.Data.Serial_Remocon.Split(':'); + var portName = portinfo[0]; + int baud = 9600; + if (portinfo.Length > 1) baud = int.Parse(portinfo[1]); + if (PUB.remocon.PortName != portName) + { + PUB.remocon.Close(); + PUB.remocon.PortName = portName; + PUB.remocon.BaudRate = baud; + if (PUB.remocon.Open() == false) + PUB.log.AddE("Remote Control Port Open Error : " + PUB.remocon.errorMessage); + } + } + + groupBox3.Text = $"모델정보({PUB.MCCode}/{AR.SETTING.Data.McName})"; + + //프린터설정 - 201223 + //PUB.PrinterL.printerName = COMM.SETTING.Data.PrintLeftName; + //PUB.PrinterR.printerName = COMM.SETTING.Data.PrintRightName; + UpdateControl(); + } + if (popmsg) PUB.popup.Visible = true; + } + + private void arLabel12_Click(object sender, EventArgs e) + { + + string file = System.IO.Path.Combine(UTIL.CurrentPath, "Manual", "Manual.pdf");// "manual.pdf"); + if (System.IO.File.Exists(file) == false) + { + UTIL.MsgE("사용설명서 파일이 존재하지 않습니다\n" + + "문의 : T8567 (장비기술 1파트)\n" + + "파일명 : " + file); + return; + } + UTIL.RunExplorer(file); + } + + private void arLabel16_Click(object sender, EventArgs e) + { + + } + + private void 맵데이터보기ToolStripMenuItem_Click(object sender, EventArgs e) + { + + } + + private void 저장폴더열기ToolStripMenuItem_Click(object sender, EventArgs e) + { + + } + + private void 캡처ToolStripMenuItem1_Click(object sender, EventArgs e) + { + + } + + private void 저장ToolStripMenuItem_Click(object sender, EventArgs e) + { + + } + + private void btDebug_Click(object sender, EventArgs e) + { + arCtl.arLabel ctl = sender as arCtl.arLabel; + this.cmDebug.Show(this, new Point(100, 100)); + } + + private void sMResetToolStripMenuItem_Click(object sender, EventArgs e) + { + if (PUB.sm.isRunning == true) + { + UTIL.MsgE(Lang.CAN_NOT_RUN_AUTOMODE); + return; + } + + if (PUB.sm.Step != eSMStep.IDLE) + { + var dlg = UTIL.MsgQ( + "프로그램 상태를 초기화 하시겠습니까?\n\n" + + "진행 중인 사항은 모두 취소 됩니다.\n" + + "필요한 경우 [시스템초기화] 가 필요할 수 있습니다"); + if (dlg != System.Windows.Forms.DialogResult.Yes) return; + } + else PUB.log.AddAT("대기상태일때에는 초기화 할 수 없습니다"); + + PUB.log.Add("User Click : initialize", false); + PUB.sm.SetNewStep(eSMStep.IDLE, true); + PUB.flag.set(eVarBool.FG_USERSTEP, false, "sMResetToolStripMenuItem_Click"); + } + + private void dIOMonitorToolStripMenuItem_Click(object sender, EventArgs e) + { + var c = Amkor.RestfulService.Allocation_Unique_ReelID_AmkorSTD("2000", "4", "A", out string error); + } + + private void refreshControklToolStripMenuItem_Click(object sender, EventArgs e) + { + this.hmi1.RemakeRect(); + UpdateControl(); + PUB.Result.DTSidConvertEmptyList.Clear(); + PUB.Result.DTSidConvertMultiList.Clear(); + PUB.Result.DTSidConvert.Clear(); + PUB.Result.DTSidConvert.AcceptChanges(); + if (PUB.Result.ItemDataC.VisionData != null) + PUB.Result.ItemDataC.VisionData.barcodelist.Clear(); + } + + + void loader1_IConClick(object sender, UIControl.HMI.IconClickEventargs e) + { + //throw new NotImplementedException(); + PUB.log.Add("Loader Icon Click : " + e.item.Tag.ToString()); + if (e.item.Tag == "air") + { + var buttonOk = new CMenuButton("ON", "1"); + var buttonNo = new CMenuButton("OFF", "0"); + var newmenu = new CMenu("AIR 공급 상태를 변경 합니다", "AIR CONTROL", "air", eMsgIcon.Error, buttonOk, buttonNo) + { + BorderColor = Color.Gray, + }; + hmi1.AddMenu(newmenu); + } + + else if (e.item.Tag == "emg") + { + btMReset.PerformClick(); + } + + else if (e.item.Tag == "debug") + { + PUB.flag.set(eVarBool.FG_DEBUG, !PUB.flag.get(eVarBool.FG_DEBUG), ""); + ShowDebugMenu(); + } + } + + private void Loader1_ButtonClick(object sender, UIControl.HMI.MenuItemClickEventargs e) + { + //버튼이 눌렸으므로 해당 메뉴는 소거해준다 + PUB.log.Add("Menu Button Click : " + e.item.Tag); + if (e.item.menutag == null) + { + //이곳은 메뉴가 아닌 일반 버튼이다 + if (e.item.Tag == "INPUTL") + { + + } + + return; + } + else + { + switch (e.item.menutag) + { + case "init": + if (e.item.Tag == "yes") + { + PUB.log.Add("User Click : initialize", false); + Func_sw_initialize(); + } + break; + case "sample": + if (e.item.Tag == "1") + PUB.log.Add("ok 버튼 클릭"); + else + PUB.log.Add("no 버튼 클릭"); + break; + + case "air": + if (e.item.Tag == "1") + { + DIO.SetAIR(true); + PUB.log.Add("사용자 air on"); + } + else + { + DIO.SetAIR(false); + PUB.log.Add("사용자 air off"); + } + break; + } + + } + + //마지막메뉴를 제거한다 + hmi1.DelMenu(); + } + + private void sampleToolStripMenuItem_Click(object sender, EventArgs e) + { + var buttonOk = new CMenuButton("OK", "1"); + var buttonNo = new CMenuButton("CANCLE", "0"); + var newmenu = new CMenu("body str", "title", "sample", eMsgIcon.Error, buttonOk, buttonNo) + { + BorderColor = Color.Gray + }; + hmi1.AddMenu(newmenu); + } + + private void debugModeToolStripMenuItem_Click(object sender, EventArgs e) + { + this.hmi1.arDebugMode = !this.hmi1.arDebugMode; + this.hmi1.Invalidate(); + + } + + + + private void countToolStripMenuItem_Click(object sender, EventArgs e) + { + var f = new Dialog.fDebug(); + f.TopMost = true; + f.Show(); + } + + #region "System Parameter" + + #region "Motion Parameter" + private void axis0ToolStripMenuItem_Click(object sender, EventArgs e) + { + PUB.mot.ShowParameter(0); + } + + private void axis1ToolStripMenuItem_Click(object sender, EventArgs e) + { + PUB.mot.ShowParameter(1); + } + + private void axis2ToolStripMenuItem_Click(object sender, EventArgs e) + { + PUB.mot.ShowParameter(2); + } + + private void axis3ToolStripMenuItem_Click(object sender, EventArgs e) + { + + } + + private void axis4ToolStripMenuItem_Click(object sender, EventArgs e) + { + + } + #endregion + + private void clearToolStripMenuItem1_Click(object sender, EventArgs e) + { + hmi1.ClearMenu(); + } + + #endregion + + private void processListToolStripMenuItem_Click(object sender, EventArgs e) + { + PUB.log.Add("process list"); + foreach (var prc in System.Diagnostics.Process.GetProcesses()) + { + if (prc.ProcessName.StartsWith("svchost")) continue; + if (prc.ProcessName.Contains(".host")) continue; + PUB.log.Add(prc.ProcessName); + } + } + + + + Control GetContextOwnerControl(object sender) + { + var menuitem = sender as ToolStripMenuItem; + if (menuitem != null) + { + var menu = menuitem.Owner as ContextMenuStrip; + if (menu != null) + { + return menu.SourceControl; + } + } + return null; + } + + private void 작업선택화면ToolStripMenuItem_Click(object sender, EventArgs e) + { + var f = new Dialog.fDataBufferSIDRef(); + f.TopMost = true; + f.Show(); + } + + private void button3_Click_2(object sender, EventArgs e) + { + + } + + private void pictureBox1_Click(object sender, EventArgs e) + { + + if (PUB.flag.get(eVarBool.FG_DEBUG) == true) + { + PUB.flag.set(eVarBool.FG_DEBUG, false, "개발중"); + } + else + { + PUB.flag.set(eVarBool.FG_DEBUG, true, "개발중"); + } + + ShowDebugMenu(); + + } + + private void cmCam_Opening(object sender, CancelEventArgs e) + { + if (PUB.sm.Step < eSMStep.IDLE) + cmCam.Enabled = false; + else + cmCam.Enabled = true; + } + + + + private void toolStripMenuItem2_Click(object sender, EventArgs e) + { + + var selectContorol = GetContextOwnerControl(sender); + if (selectContorol == null) return; + var selectedtag = selectContorol.Tag.ToString(); + var vidx = int.Parse(selectedtag); + + SaveFileDialog sd = new SaveFileDialog(); + sd.Filter = "bitmap|*.bmp"; + sd.FileName = $"vision{vidx}.bmp"; + + + if (sd.ShowDialog() == DialogResult.OK) + { + if (vidx == 1) + { + SaveImage(sd.FileName); + } + } + } + + //private void sbVisTitle1_Click(object sender, EventArgs e) + //{ + // //키엔스로부터 다운로드 받아서 처리해야함 + // var tempfile = System.IO.Path.Combine(Util.CurrentPath, "Temp", "Keyence", DateTime.Now.ToString("HHmmss_fff") + ".bmp"); + // var fi = new System.IO.FileInfo(tempfile); + // if (fi.Directory.Exists == false) fi.Directory.Create(); + // this.iv1Keyence.DownloadRecentImage(fi.FullName); + + //} + + //private void livetaskToolStripMenuItem_Click(object sender, EventArgs e) + //{ + // //SetVisionTask(); + // //PUB.flag.set(eVarBool.LIVIEWVIEW0, true, ""); + //} + + private void zoomFitToolStripMenuItem_Click(object sender, EventArgs e) + { + var selectContorol = GetContextOwnerControl(sender); + if (selectContorol == null) return; + var selectedtag = selectContorol.Tag.ToString(); + var vidx = int.Parse(selectedtag); + } + + private void keyenceTrigOnToolStripMenuItem_Click(object sender, EventArgs e) + { + PUB.keyenceF.Trigger(true); //Keyence_Trigger(true); + PUB.keyenceR.Trigger(true); //Keyence_Trigger(true); + + } + + private void keyenceTrigOffToolStripMenuItem_Click(object sender, EventArgs e) + { + PUB.keyenceF.Trigger(false); //Keyence_Trigger(false); + PUB.keyenceR.Trigger(false); //Keyence_Trigger(false); + } + + private void keyenceSaveImageToolStripMenuItem_Click(object sender, EventArgs e) + { + var fn = System.IO.Path.Combine(UTIL.CurrentPath, "Images", "keyence.bmp"); + SaveImage(fn); + } + + void menu_barcodeconfirm() + { + //이미지저장한다. + if (PUB.sm.Step != eSMStep.RUN && PUB.sm.Step != eSMStep.PAUSE && PUB.sm.Step != eSMStep.WAITSTART) + { + var tempfilF = System.IO.Path.Combine(UTIL.CurrentPath, "Temp", "keyenceF.bmp"); + var tempfilR = System.IO.Path.Combine(UTIL.CurrentPath, "Temp", "keyenceR.bmp"); + + var fiF = new System.IO.FileInfo(tempfilF); + var fiR = new System.IO.FileInfo(tempfilR); + + if (fiF.Directory.Exists == false) fiF.Directory.Create(); + if (fiR.Directory.Exists == false) fiR.Directory.Create(); + + var nimagF = PUB.keyenceF.SaveImage(fiF.FullName); + var nimagR = false; + + if (PUB.keyenceR != null) + nimagR = PUB.keyenceR.SaveImage(fiR.FullName); + ///this.pictureBox1.Image = nimag; + + if (nimagF && nimagR) + { + //nimag.Save(fi.FullName, System.Drawing.Imaging.ImageFormat.Bmp); + PUB.Result.ItemDataC.VisionData.SetImage( + new Mat(fiF.FullName, Emgu.CV.CvEnum.ImreadModes.Grayscale), + new Mat(fiR.FullName, Emgu.CV.CvEnum.ImreadModes.Grayscale)); + } + else if (nimagF) + { + PUB.Result.ItemDataC.VisionData.SetImage(new Mat(fiF.FullName, Emgu.CV.CvEnum.ImreadModes.Grayscale)); + } + else PUB.log.AddE($"키엔스 이미지 수집 실패"); + } + var f = new Dialog.fLoaderInfo(PUB.Result.ItemDataC.VisionData.bcdMessage); + f.ShowDialog(); + } + + private void lbSize1_Click(object sender, EventArgs e) + { + + } + + + private void liveViewProcessOnOffToolStripMenuItem_Click(object sender, EventArgs e) + { + liveviewprocesson = !liveviewprocesson; + } + + private void lbLock2_Click(object sender, EventArgs e) + { + var ctl = sender as arCtl.arLabel; + var index = int.Parse(ctl.Tag.ToString()); + // bool cur = false; + + if (PUB.sm.isRunning) + { + UTIL.MsgE("동작중에는 카트교환을 할 수 없습니다\n'STOP' 버튼을 누른 후 다시 시도하세요"); + return; + } + + bool curMag = DIO.GetIOOutput(eDOName.CART_MAG0); + bool curLim = DIO.GetIOInput(eDIName.PORTL_LIM_DN); + if (index == 1) + { + curMag = DIO.GetIOOutput(eDOName.CART_MAG1); + curLim = DIO.GetIOInput(eDIName.PORTC_LIM_DN); + } + else if (index == 2) + { + curMag = DIO.GetIOOutput(eDOName.CART_MAG2); + curLim = DIO.GetIOInput(eDIName.PORTR_LIM_DN); + } + + // cur = Util_DO.GetIOOutput(eDOName.CART_MAG0); + if (curMag == false) + { + PUB.log.Add($"MAGNET{index} ON by USER"); + DIO.SetPortMagnet(index, true); //켜는건 바로 할 수 있게 한다 + } + else + { + if (curLim == false) + { + UTIL.MsgE("포트를 모두 내린 후 다시 시도하세요"); + DIO.SetPortMotor(index, eMotDir.CCW, true, "카트교환"); //포트를 자동으로 내려준다 + return; + } + DIO.SetPortMagnet(index, false); + PUB.log.Add($"MAGNET{index} OFF by USER"); + } + } + + private void arDatagridView1_DataError(object sender, DataGridViewDataErrorEventArgs e) + { + // + } + + private void arLabel6_Click(object sender, EventArgs e) + { + //포트내림 + if (PUB.sm.isRunning) + { + UTIL.MsgE("동작중에는 사용할 수 없습니다"); + return; + } + var index = int.Parse((sender as arCtl.arLabel).Tag.ToString()); + + + if (VAR.BOOL[eVarBool.Use_Conveyor] && (index == 0 || index == 2)) + { + if (index == 0) DIO.SetOutput(eDOName.LEFT_CONV, true); + if (index == 2) DIO.SetOutput(eDOName.RIGHT_CONV, true); + } + else + { + if (DIO.GetPortMotorRun(index) == true) DIO.SetPortMotor(index, eMotDir.CW, false, "UI"); + else + { + if (UTIL.MsgQ("포트를 내릴까요?") == DialogResult.Yes) + DIO.SetPortMotor(index, eMotDir.CCW, true, "UI포트내림"); + } + } + + + } + + private void arLabel11_Click_1(object sender, EventArgs e) + { + //포트올림 + if (PUB.sm.isRunning) + { + UTIL.MsgE("동작중에는 사용할 수 없습니다"); + return; + } + var index = int.Parse((sender as arCtl.arLabel).Tag.ToString()); + + if (VAR.BOOL[eVarBool.Use_Conveyor] && (index == 0 || index == 2)) + { + if (index == 0) DIO.SetOutput(eDOName.LEFT_CONV, false); + if (index == 2) DIO.SetOutput(eDOName.RIGHT_CONV, false); + } + else + { + if (DIO.GetPortMotorRun(index) == true) DIO.SetPortMotor(index, eMotDir.CCW, false, "UI"); + else + { + if (UTIL.MsgQ("포트를 올릴까요?") == DialogResult.Yes) + DIO.SetPortMotor(index, eMotDir.CW, true, "UI"); + } + } + + + } + + private void jObEndToolStripMenuItem_Click(object sender, EventArgs e) + { + if (PUB.flag.get(eVarBool.FG_INIT_MOTIO) == false) + { + UTIL.MsgE("모션이 초기화 되지 않았습니다\n잠시 후 다시 시도하세요"); + return; + } + ShowSummary(); + } + + private void button3_Click_4(object sender, EventArgs e) + { + + } + + private void jOBStartToolStripMenuItem_Click(object sender, EventArgs e) + { + var f = new Dialog.fSelectJob(); + f.ShowDialog(); + } + + + + private void button1_Click_1(object sender, EventArgs e) + { + + } + + private void button2_Click_1(object sender, EventArgs e) + { + + } + + private void visionProcess0ToolStripMenuItem_Click(object sender, EventArgs e) + { + WS_Send(eWorkPort.Left, PUB.wsL, Guid.NewGuid().ToString(), "STATUS", ""); + } + + private void visionProcess1ToolStripMenuItem_Click(object sender, EventArgs e) + { + WS_Send(eWorkPort.Right, PUB.wsR, Guid.NewGuid().ToString(), "STATUS", ""); + } + + private void customerRuleToolStripMenuItem_Click(object sender, EventArgs e) + { + + } + + private void toolStripButton13_Click(object sender, EventArgs e) + { + menu_cancel(); + } + + private void toolStripButton15_Click(object sender, EventArgs e) + { + menu_barcodeconfirm(); + } + + private void btLogViewer_Click(object sender, EventArgs e) + { + var exename = UTIL.MakePath("LogView.exe"); + if (System.IO.File.Exists(exename) == false) + { + UTIL.MsgE("로그 뷰어 파일이 없습니다\n문의 주세요(T8567)"); + return; + } + + UTIL.RunProcess(exename); + } + + private void toolStripButton16_Click(object sender, EventArgs e) + { + var file = UTIL.ScreenCapture(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height, new Point(0, 0), false); + var f = new Dialog.fMailReport("", file, "", AR.SETTING.Data.Bugreport_mail); + f.ShowDialog(); + } + + private void 새로고침ToolStripMenuItem_Click_1(object sender, EventArgs e) + { + RefreshList(); + } + + private void systemParameterMotorToolStripMenuItem_Click(object sender, EventArgs e) + { + if (frmSysMotParam == null || frmSysMotParam.IsDisposed || frmSysMotParam.Disposing) + { + if (frmSysMotParam != null) frmSysMotParam.FormClosed -= frmSysParam_FormClosed; + frmSysMotParam = new Dialog.fSystem_MotParameter(); + frmSysMotParam.FormClosed += frmSysParam_FormClosed; + } + frmSysMotParam.Show(); + frmSysMotParam.Activate(); + if (frmSysMotParam.WindowState == FormWindowState.Minimized) + frmSysMotParam.WindowState = FormWindowState.Normal; + } + + private void speedLimitToolStripMenuItem_Click(object sender, EventArgs e) + { + AR.SETTING.Data.Enable_SpeedLimit = !AR.SETTING.Data.Enable_SpeedLimit; + } + + private void triggerOnToolStripMenuItem_Click(object sender, EventArgs e) + { + PUB.keyenceF.Trigger(true); + PUB.keyenceR.Trigger(true); + } + + private void triggerOffToolStripMenuItem_Click(object sender, EventArgs e) + { + PUB.keyenceF.Trigger(false); + PUB.keyenceR.Trigger(false); + } + + + private void 빠른실행ToolStripMenuItem_Click(object sender, EventArgs e) + { + if (PUB.flag.get(eVarBool.FG_INIT_MOTIO) == false) + { + UTIL.MsgE("모션이 초기화 되지 않았습니다\n잠시 후 다시 시도하세요"); + return; + } + if (PUB.sm.isRunning == true) + { + UTIL.MsgE(Lang.CAN_NOT_RUN_AUTOMODE); + return; + } + + var f = new Dialog.Quick_Control(); + f.StartPosition = FormStartPosition.CenterScreen; + f.Show(); + } + + private void 관리ToolStripMenuItem_Click_1(object sender, EventArgs e) + { + if (PUB.sm.isRunning) + { + UTIL.MsgE("동작중에는 사용할 수 없습니다"); + return; + } + + if (PUB.flag.get(eVarBool.FG_MOVE_PICKER)) + { + UTIL.MsgE("해당 창이 열려 있습니다"); + } + else + { + var f = new Dialog.fPickerMove(); + f.ShowDialog(); + + //홈이 안잡혀있고, 센서가 중앙에 있다면 초기화를 묻는다 + if (PUB.mot.HasHomeSetOff == true && DIO.GetIOInput(eDIName.PICKER_SAFE)) + { + btMReset.PerformClick(); + } + + RefreshList(); + } + } + + private void regExTestToolStripMenuItem_Click(object sender, EventArgs e) + { + var f = new Dialog.RegExTest(); + f.ShowDialog(); + } + + private void toolStripMenuItem11_Click(object sender, EventArgs e) + { + UTIL.RunExplorer(UTIL.CurrentPath); + } + + private void toolStripMenuItem13_Click(object sender, EventArgs e) + { + PUB.LogFlush(); + var fi = new System.IO.FileInfo(PUB.log.FileName); + UTIL.RunExplorer(fi.Directory.FullName); + } + + private void toolStripMenuItem14_Click(object sender, EventArgs e) + { + string savefile = System.IO.Path.Combine(UTIL.CurrentPath, "ScreenShot", DateTime.Now.ToString("yyyyMMddHHmmss") + ".png"); + var grpath = new System.IO.FileInfo(savefile); + UTIL.RunExplorer(grpath.Directory.FullName); + } + + private void toolStripMenuItem15_Click(object sender, EventArgs e) + { + var basepath = AR.SETTING.Data.GetPathData(); + var path = System.IO.Path.Combine( + basepath, "History", + DateTime.Now.Year.ToString("0000"), + DateTime.Now.Month.ToString("00"), + DateTime.Now.Day.ToString("00")); + if (System.IO.Directory.Exists(path)) + UTIL.RunExplorer(path); + else + UTIL.RunExplorer(System.IO.Path.Combine(AR.SETTING.Data.Path_Data, "History")); + } + + private void bcdRegProcessClearToolStripMenuItem_Click(object sender, EventArgs e) + { + + PUB.Result.BCDPattern.Clear(); + PUB.Result.BCDIgnorePattern.Clear(); + + + if (PUB.Result.ItemDataC.VisionData == null) return; + + + lock (PUB.Result.ItemDataC.VisionData.barcodelist) + { + foreach (var item in PUB.Result.ItemDataC.VisionData.barcodelist) + { + item.Value.RegExConfirm = false; + } + } + } + + private void 바코드룰ToolStripMenuItem_Click(object sender, EventArgs e) + { + using (var f = new Dialog.RegExRule()) + f.ShowDialog(); + } + + + async private void 모델선택ToolStripMenuItem_Click(object sender, EventArgs e) + { + if (PUB.sm.isRunning == true) + { + UTIL.MsgE(Lang.CAN_NOT_RUN_AUTOMODE); + return; + } + + var f = new Model_Operation(); + if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK) + { + if (SETTING.Data.SystemBypass) + { + UTIL.MsgI("환경설정에서 BYPASS 가 활성화 되었습니다\n" + + "선택된 모델과 상관없이 장비는 BYPASS 로 동작 합니다\n" + + "[SYSTEM BYPASS]\n" + + "1. 카메라 기능이 OFF 됩니다\n" + + "2. 프린터 기능이 OFF 됩니다"); + } + if (f.Value != "") + { + var ok = PUB.SelectModelV(f.Value); + var motionmode = VAR.BOOL[eVarBool.Use_Conveyor] ? "Conveyor" : "Default"; + PUB.SelectModelM(motionmode); + UpdateControl(); + + if (VAR.BOOL[eVarBool.Use_Conveyor]) + { + var dlg = UTIL.MsgQ("다른 장비도 모델을 변경 할까요?"); + if (dlg == DialogResult.Yes) + { + List urls = new List(); + var conv = VAR.BOOL[eVarBool.Use_Conveyor] ? "1" : "0"; + if (SETTING.Data.McName == "R1") + { + urls.Add($"{SETTING.Data.WebAPI_R2}/ctrl/model/Set/{f.Value}|{conv}"); + urls.Add($"{SETTING.Data.WebAPI_R3}/ctrl/model/Set/{f.Value}|{conv}"); + } + else if (SETTING.Data.McName == "R2") + { + urls.Add($"{SETTING.Data.WebAPI_R1}/ctrl/model/Set/{f.Value}|{conv}"); + urls.Add($"{SETTING.Data.WebAPI_R3}/ctrl/model/Set/{f.Value}|{conv}"); + } + else if (SETTING.Data.McName == "R3") + { + urls.Add($"{SETTING.Data.WebAPI_R1}/ctrl/model/Set/{f.Value}|{conv}"); + urls.Add($"{SETTING.Data.WebAPI_R2}/ctrl/model/Set/{f.Value}|{conv}"); + } + + await System.Threading.Tasks.Task.Run(() => + { + if (urls.Any()) + { + foreach (var url in urls) + { + PUB.log.AddI($"자동모델설정:{url}"); + var rlt = UTIL.GetStrfromurl(url, out bool iserr, 3000); + if (iserr) + { + PUB.log.Add($"모델설정실패:" + rlt); + } + } + + } + }); + } + } + + } + } + f.Dispose(); + } + + private void displayVARToolStripMenuItem_Click(object sender, EventArgs e) + { + var f = new Dialog.fVAR(); + f.TopMost = true; + f.Show(); + } + + private void sID정보ToolStripMenuItem_Click(object sender, EventArgs e) + { + + } + + private void listView21_Click(object sender, EventArgs e) + { + + } + + private void lbMsg_Click(object sender, EventArgs e) + { + //reset 기능 + PUB.Result.ItemDataC.VisionData.Clear("USER UI CLICK", true); + PUB.flag.set(eVarBool.FG_END_VISIONL, false, "USER UI CLICK"); + } + + + private void 프린트룰ToolStripMenuItem_Click(object sender, EventArgs e) + { + var f = new Dialog.RegExPrintRule(); + f.ShowDialog(); + } + + private void tRIGONToolStripMenuItem_Click(object sender, EventArgs e) + { + PUB.keyenceF.Trigger(true); + PUB.keyenceR.Trigger(true); + } + + private void tRIGOFFToolStripMenuItem_Click(object sender, EventArgs e) + { + PUB.keyenceF.Trigger(false); + PUB.keyenceR.Trigger(false); + } + + private void getImageToolStripMenuItem1_Click(object sender, EventArgs e) + { + + } + + private void toolStripMenuItem17_Click(object sender, EventArgs e) + { + // + var curimageF = PUB.keyenceF.GetImage(); + PUB.keyenceF.UpdateBitmap((Bitmap)curimageF, (Bitmap)this.keyenceviewF.Image); + + var curimageR = PUB.keyenceR.GetImage(); + PUB.keyenceR.UpdateBitmap((Bitmap)curimageR, (Bitmap)this.keyenceviewR.Image); + + } + + private void triggerOnToolStripMenuItem1_Click(object sender, EventArgs e) + { + PUB.keyenceF.Trigger(true); + PUB.keyenceR.Trigger(true); + } + + private void triggerOffToolStripMenuItem1_Click(object sender, EventArgs e) + { + PUB.keyenceF.Trigger(false); + PUB.keyenceR.Trigger(false); + } + + private void connectToolStripMenuItem_Click(object sender, EventArgs e) + { + if (PUB.keyenceF != null) + { + PUB.keyenceF.Connect(); + PUB.flag.set(eVarBool.FG_KEYENCE_OFFF, false, "USER"); + } + if (PUB.keyenceR != null) + { + PUB.keyenceR.Connect(); + PUB.flag.set(eVarBool.FG_KEYENCE_OFFR, false, "USER"); + } + } + + private void disConnectToolStripMenuItem_Click(object sender, EventArgs e) + { + if (PUB.keyenceF != null) + { + PUB.keyenceF.Disconnect(); + PUB.flag.set(eVarBool.FG_KEYENCE_OFFF, true, "USER"); + } + if (PUB.keyenceR != null) + { + PUB.keyenceR.Disconnect(); + PUB.flag.set(eVarBool.FG_KEYENCE_OFFR, true, "USER"); + } + } + + private void tmLiveView_Tick(object sender, EventArgs e) + { + //tmLiveView.Stop(); + //if (PUB.sm.Step >= eSMStep.IDLE && PUB.keyence != null && PUB.keyence.IsConnect) + //{ + // if (PUB.keyence.IsTriggerOn) + // { + // PUB.keyence.UpdateKeyenceImage(ref pictureBox1); + // } + //} + //tmLiveView.Start(); + + } + + private void resetToolStripMenuItem_Click(object sender, EventArgs e) + { + PUB.keyenceF.Reset(); + PUB.keyenceR.Reset(); + } + + private void webManagerToolStripMenuItem_Click(object sender, EventArgs e) + { + UTIL.RunExplorer("http://" + AR.SETTING.Data.Keyence_IPF); + UTIL.RunExplorer("http://" + AR.SETTING.Data.Keyence_IPR); + } + + private void toolStripMenuItem23_Click(object sender, EventArgs e) + { + if (PUB.flag.get(eVarBool.FG_INIT_MOTIO) == false) + { + UTIL.MsgE("모션이 초기화 되지 않았습니다\n잠시 후 다시 시도하세요"); + return; + } + + if (PUB.sm.isRunning == true) + { + UTIL.MsgE(Lang.CAN_NOT_RUN_AUTOMODE); + return; + } + + var f = new Model_Motion(); + if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK) + { + if (f.Value != "") + { + PUB.SelectModelM(f.Value); + } + } + } + + private void motionEmulatorToolStripMenuItem_Click(object sender, EventArgs e) + { + needShowSummary = true; + } + + private void 연결ToolStripMenuItem_Click(object sender, EventArgs e) + { + if (PUB.wsL != null && PUB.wsL.Connected) + { + UTIL.MsgI("현재 프로그램이 연결되어 있습니다"); + return; + } + + //카메라 l실행 + if (AR.SETTING.Data.CameraLFile.isEmpty() == true) + { + UTIL.MsgE("바코드 프로그램 파일명이 지정되지 않았습니다", true); + return; + } + + var fi = new System.IO.FileInfo(AR.SETTING.Data.CameraLFile); + if (fi.Exists == false) + { + UTIL.MsgE("비젼 프로그램 파일이 존재하지 않습니다\n" + fi.FullName); + return; + } + + //var prc = null;// Util.CheckExistProcess("CrevisQRCode"); + //if (prc == null) + { + //Util.MsgI("바코드 프로그램을 새로 실행 했습니다\n잠시만 기다리면 실행 됩니다"); + UTIL.RunProcess(fi.FullName); + } + //else + //{ + + // SetActiveWindow((int)prc.MainWindowHandle); + // SetForegroundWindow(prc.MainWindowHandle); + // ShowWindow(prc.MainWindowHandle, (int)CmdShow.Normal); + //} + } + + + private void toolStripMenuItem21_Click(object sender, EventArgs e) + { + PUB.flag.set(eVarBool.FG_PRC_VISIONL, true, "USER"); + PUB.flag.set(eVarBool.FG_END_VISIONL, false, "USER"); + WS_Send(eWorkPort.Left, PUB.wsL, PUB.Result.ItemDataL.guid, "TRIG", PUB.Result.ItemDataL.VisionData.PrintQRData); + } + + private void toolStripMenuItem23_Click_1(object sender, EventArgs e) + { + + } + private void toolStripMenuItem24_Click(object sender, EventArgs e) + { + WS_Send(eWorkPort.Left, PUB.wsL, string.Empty, "OFF", string.Empty); + } + + private void toolStripMenuItem25_Click(object sender, EventArgs e) + { + + } + + private void postDataToolStripMenuItem_Click(object sender, EventArgs e) + { + var f = new Dialog.Debug.fSendInboutData(); + f.ShowDialog(); + } + + private void manualPrintToolStripMenuItem_Click(object sender, EventArgs e) + { + var f = new Dialog.fManualPrint0(); + f.ShowDialog(); + } + + private void arDatagridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) + { + + } + + private void toolStripButton6_ButtonClick(object sender, EventArgs e) + { + if (PUB.flag.get(eVarBool.FG_INIT_MOTIO) == false) + { + UTIL.MsgE("모션이 초기화 되지 않았습니다\n잠시 후 다시 시도하세요"); + return; + } + //show io panerl + var f = new Dialog.fIOMonitor(); + f.ShowDialog(); + f.Dispose(); + } + + private void sWPLCToolStripMenuItem_Click(object sender, EventArgs e) + { + var f = new Dialog.fswPLC(); + f.Show(); + } + + + + private void apiCheckToolStripMenuItem_Click(object sender, EventArgs e) + { + + PUB.UpdateSIDInfoByECS().Wait(); + + } + + private void barcodeTestToolStripMenuItem_Click(object sender, EventArgs e) + { + var bcd = "21PMULTILAYER CHIP INDUCTORS,P110-50933-01R5,1T5015326894,1J083476968109,16D20230908,14D20250821,Q20000,1PMHQ0402PSA1N5BT000"; + //var d = UTIL.InputBox("barcode input", bcd); + + PUB.Result.ItemDataC.VisionData.barcodelist.Clear(); + PUB.Result.ItemDataC.VisionData.barcodelist.TryAdd(bcd, new Class.KeyenceBarcodeData + { + barcodeSymbol = "2", + Data = bcd, + }); + //BarcodeFix_ReceiveData(null, new arDev.RS232.ReceiveDataEventArgs(System.Text.Encoding.Default.GetBytes(d.Item2))); + } + + private void toolStripMenuItem28_Click(object sender, EventArgs e) + { + PUB.flag.set(eVarBool.FG_PRC_VISIONR, true, "USER"); + PUB.flag.set(eVarBool.FG_END_VISIONR, false, "USER"); + WS_Send(eWorkPort.Right, PUB.wsR, PUB.Result.ItemDataR.guid, "TRIG", PUB.Result.ItemDataR.VisionData.PrintQRData); + } + + private void toolStripMenuItem30_Click(object sender, EventArgs e) + { + WS_Send(eWorkPort.Right, PUB.wsR, string.Empty, "OFF", string.Empty); + } + + private void 프로그램열기ToolStripMenuItem_Click(object sender, EventArgs e) + { + var fn = AR.SETTING.Data.Sidinfofilename; + if (fn.isEmpty()) fn = @"d:\amkor\sidinfo\update.exe"; + + var fi = new System.IO.FileInfo(fn); + if (fi.Exists == false) + { + PUB.log.AddE($"No Sid info file:{fn}"); + return; ; + } + + //var file = @"d:\amkor\sidinfo\update.exe " + COMM.SETTING.Data.McName;// System.IO.Path.Combine(Util.CurrentPath, "Module", "SidInfo", "amkor.exe"); + UTIL.RunProcess(fi.FullName); + } + + async private void 인바운드데이터업데이트ToolStripMenuItem_Click(object sender, EventArgs e) + { + var rlt = await PUB.UpdateSIDInfoByECS(); + if (rlt.Item1 == false) + { + PUB.log.AddE($"인바운드 자료 업데이트 실패" + rlt.Item2); + } + else PUB.log.AddI($"인바운드 자료 업데이트 성공"); + } + + private void hmi1_ZoneItemClick(object sender, HMI.ZoneItemClickEventargs e) + { + var buttontag = e.item.Tag; + var buttonidx = e.item.index; + + //컨베이어모드에서는 클릭시 버퍼를 초기화한다. + var cv = VAR.BOOL[eVarBool.Use_Conveyor]; + if (cv && buttontag.StartsWith("PORT")) + { + //클릭시 버퍼수량 제거 + if (buttonidx == 0) VAR.I32[eVarInt32.LEFT_ITEM_COUNT] = 0; + else if (buttonidx == 2) VAR.I32[eVarInt32.RIGT_ITEM_COUNT] = 0; + PUB.log.AddAT($"사용자 버퍼 제거 {buttontag}:{buttonidx}"); + } + + } + + private void testToolStripMenuItem1_Click(object sender, EventArgs e) + { + + } + + private void apiCheck2activeLiToolStripMenuItem_Click(object sender, EventArgs e) + { + var sidlist = PUB.GetECSActiveSIDList(); + var ta = new DataSet1TableAdapters.QueriesTableAdapter(); + foreach (var item in sidlist) + { + var cnt = ta.GetIBResultCountBySIDBatch(DateTime.Now.AddHours(-6), item.Item1, item.Item2); + PUB.log.Add($"sid:{item.Item1},batch:{item.Item2},active:{item.Item3},cnt:{cnt}"); + } + } + + private void sendMailToolStripMenuItem_Click(object sender, EventArgs e) + { + + } + + private void toolStripButton1_Click(object sender, EventArgs e) + { + using (var f = new Dialog.fManualPrint()) + f.ShowDialog(); + } + } +} \ No newline at end of file diff --git a/Handler/Project/fMain.resx b/Handler/Project/fMain.resx new file mode 100644 index 0000000..9569c35 --- /dev/null +++ b/Handler/Project/fMain.resx @@ -0,0 +1,1813 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 124, 17 + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + 143, 56 + + + 634, 17 + + + 534, 17 + + + 534, 17 + + + 441, 17 + + + 327, 17 + + + 221, 17 + + + 17, 56 + + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAQWSURBVFhH7dZvTBNnHAdw3kxfLVmyoV75o0UEghpfmSUG + FRNFlLa0dMBINn2hsoxMjS8GoZIc0IKKW5BtRdnMTBZBpYdSA1cRIwa12QuTTVRiJ0URFBORK63Bv+Hn + 8zTPYe96rUc55pt+k2/o0evz+6T3rzHRRBONQtF12L7UsLYjGpbp07LMuPYc80LLnnZrOplWrcNWVHyj + 6ROyq2TSaZhHXiob3cV2VQ7LtCMUhK/NpXMwG8nHghJf9/g6ddCdQTaVSc6FtlVo+AgG5DraoKCrHb6+ + aPf/xdtCIAPpLPNWw7aWkI9PZ4nVV5h4+AksMN0bJv+afQyONkprPz2MBxd222FHDws7exzTxdsYK0Zq + aXoKHfZCskxM6vGnn6p/8YxgIFXaB/HVgzR5a3bRdNrsPC4QJm6hBHIze4rTd5/9HK+zxOr9Sd3oAx5I + lfe/XlzPfeYfEmnwBYEH4cMo/ubE3XHZIXm40QV1KPGoN52iH70WAFHjKu91k1GRRdvJNOAhBejbkUKJ + m4/OSTEQdUTdOHEZ48RAquwWLDIPriPjZh5yK/ng4eWL9xPhYG2r0w+TBKKqTK5RMm7mwecQHoKvVimQ + uHi/QFxORzuk/D4WFogbZxmqIiNnliyWmcSDZJ+DrPAcXH3ytgAXCkiZIrxg8BOCH4ZvJTxmd3eHAIcr + vtVk2S9A0tEJeUBUFT1whYyVH//jiwzMRa2yNcO1Y7+Bt9YC93+ug1MnT8DervOSt5gVfw4F4cIBqbI+ + SKgdyiKj5QU/W3eda4GW443w6NABeF5jDqoHYXt/rQdL8wnQd9r8uIwzwgsjsCGBqHHl/z0lo8NnqqFh + vs9iyZ+oNV/ySaBC9WHdAWj+4xhsaByUxOGGA+LGmwdrCUM63PZv9F7TjzekAHL7gK6Byj1NEQGp7Xfe + LKQHFhBOcDhjbiVn1ANnzOv3lBT3+mj6uRRCqv+Um6DF8B1cWbEKbGu2RgZEjaPd1wgnOO+BpHl6L/dt + Ue9oxf4RKdRodRV0/fA9sJnrwJmWNt3ZAKnSW+hQ388mJGGCgAF9ZjS6+vftG6bRL5V/TWVgLyqA3pUr + BTBlgH3wRYVrjJCECQfkO5C53imFCuxsgbiJVQ9KCet95ADdmRlzClRV3PUmVLvNhCSMUkB6zZapmQLD + wvgoBbyavtyltnob1PXciw8BVftlwPgoBXSmpNzG6yU1TSYGQgOBqtKbE7JhfJQG8llqnUzAUPzLOiIY + n7kC8kmueRxLXkYWj8GwiTNqh6VgfGUAX15PS6shSyofyM+f58nTF4eChgL2xMa+cqam/nV12bIkstTc + JhRUDPzfYeJg6PhXum1jRp07EPjRYeJMZWfPHzfklgysz7AjmPXv5OR48lY00UTzcRMT8w7v8y50hSqQ + nAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAI0SURBVFhH7ZjNTttAFIXzGoU+BT8WQpQIG1RF/AlVlA2q + 8l4IEFtQaXkCWJEAQoJ1S1i0qwahQjJZAMmQO9yJbOc4146wVz7St4h9z5yjcSZKUsiVK9eQUkXn46M7 + sdecce6anqNTot7wnF3lTo1ybDxRuf/e+F+wYCpQVqKSZufAQmlCO8nxslJ+rBjX+cfxsuACGcDxspA5 + CzheFjL7UctzurW5Bu9BSjP4egiOl4XMFirXPq3ozk1Nt8rrcMaPma9U9NPOFrzvh+NlITOhloqmnK7f + Gzq/bnTr2xc4S9hydl4qyfGykNmwMKWfv+/3Ak3JiJ1UK65un1UDs/R60OPmeFnI3CNGyfDOEe2Lc61W + veBaITheFjIHGFBy2HIEx8tC5j5Qydqtbl9eBq7FLUdwvCxkhoCSfpKUIzheFjJHQiV/HvaXu75KVI7g + eFnIHIV5z1WDp5Wgx90qf4WeKDheFjIj0IHw83Zw4pfkeFnIHAaf1gv9fPQjcC1JSY6Xhcx+YLlzPhCR + H0FySY6XhcyWgeXs3JAlOV4WMhOxylmo5OFBYLbzu6bVxlL/LMPxspDZUPqkX06O5XKW0E7S+5Ouwdku + HC8LmXtwSbGchUtK5QiOl4XMftTirPm2gu5BqNj84HIEx8tC5izgeFnInAUcL6s7XA+bUyfJz076EQ0X + SZGGO7nN8bLob4gs//p48Mb+ND+PfeD4eFLz0yNmJ7tbjxZ9F7pr084lLpcrVy6rQuEVBSwdzqFOWm0A + AAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAcRSURBVFhH7ZjtU1N3Fsf9C7qd7v4NO/tiX3TH/Te269qp + Y6s7ascS5cEKUSCGEAgE8kCA8CCIorRon7TOTq0drVWEpWAl8pRLIBAIIoEAyoOAor747jm/m3tzE8Bc + X+xMX3hnPsNMBu79cM73nPuDHW+vt9fv7XJWNv69vOr03fLK075SQW0iniQqZEoUnLU+m7MmAavTm0Rl + HIeMxeFps5R7d8Y0tr/snvp2h7cRZy5cUmlkzjMX0ZBAK04rNLeiXsu5VtSd+zLOWYUvBLVNCi2CYqcX + 5rLKuzGN7a9St1dikZcvX6m8UHjx8o3YeB0bLxLwnrkAk90txTS2v6wkyBXZ6oHbsaWAQpKIlucaqhrP + w1SiR9Dllbg9/y+R7ag63Yx8q0uHoL1a4oxsKaFAN1To6RvA2tr6JplV+ux+X3+CxCaeb6hU1J9DntWe + WrCQcsChTRZJ5peOLlTUNoEmHhe+urzp4c0Xv4PdUwdHVQNut3erIs+2wV3XBKMeQQ4qB1YRSX7w0tNV + mtiLcFQ3CDmFyvpmXL12A1cIT905IVdaUYcSdx1s7lo00CZYXnmaILX+jHkucNacgbFQj2CpW+LAJosp + /Obr2yRXVsnUk5RColyxqwZFtEY67z1QhdbWmWcqvNpyTKU6BEtcEgc2QYx+W217nHSzN5WzEYrM6prC + ugrfK9tUklow3+qUOLDaViTjpnZo5RpoMV/76SY6OrvQ+Ws3btxqE4tckbM6qkm2Rog8XVVYU1l5ugY7 + 3SfLZE0tyEHlwGqFlLYwEw+nVTlu9bXrN9Df3w+/349AIIBgMIhQKIRwOIw77Z2wkWRheRUKyioxOh4W + MjKrguUVmRKqfFa+HkEKKgc2npV4TqJzj8W+UiqnlesdkPDd7Qe40taH4dFxTE1NIRKJoL2zW8iZ7R4U + U9unI3NiWJil5Tgch8w8PYIWEqSMxbOyjlt3O3Gm5StRMW1bFbnLt3348+dX8M6BS0Qr/pL1DW7cCyAa + jWJhYUG0+1Sph94UFQIXraer129hcWlFhd/FBmNhasFsmiRuoTYn1Y3NmwaCM6dUTiv3h3+34N19zfhr + eisis3NYXFxER9dvQizf5kZukRMnCh2wUNufLC7HWBI5NRhNqQU5qBxYbU54IWvlmI7OX0XmvqW2Jsu9 + 93ET/ri3Ab/0BLGysoLR0ESCXI6lDCetTjx+siRYeLyIQkclDDk6BTmwSk4YVw0LxuV4lXR23RMDwZnb + Su5Pe2pxt3cM6+vrCE1MJsgdN9txwlKO+YUnKgWU0bRsPYIUVA7s0vKKgPPBg6GV4z3Hq4SnlQeCM5cs + 977hLBbp5zc2NtDd05cgd8xUgjyqaHT+MQ3eAmYJzuihrPzUghkU1GKXl8SUfCyTTAcdSi9RFeNLmIPP + q4SnlQeCM6eV6/aHhdyrV6/o8HpRlTtuLkVxRS2+vvojZqLzmJmdF1k12VwkmJda0GC0SBxYJR/anISn + puHynlXfELzneJXwtPJDOHN3fKNq5Vjufu+gKpdb5MYI5ZG/d3qGieIRE4lSRZ0kaNQjaJI4sCzEzDOx + nMwR0vBY/PVFX3nP8SrhaeWB4Mxp5XKLnWpb7/dLQmYqMiszPYuH0zOC3CIHDmToEEyjSSoo82CO8sHI + OYlnZTa6IFrMVVbeENzujq77CI6Ni4HgzGnbynLHzWWyzKMZTAoimJyKUFeYaTrJlGGfQYfgZ1kmyUyB + lWUoIzEisawwvFQVOX5DKEs4eZUocpn5NgGLMPy6ZMYfPsL4pEyOxU6COakFeZLoRJOQE5EVag1z885/ + 31guPbcYR05YceWHnxGanEIoLDPGTDwUZJtLSDBLj6BR4sA+2iIn3B6+cXXjhU1yhY4qNH3xDRpavkY+ + fZYoV4SC8hoM0UoaJRnB+CSCMUZCYXx+yoaP03QIHsw0ShzYrXKibc9lOjlbqIos56HTdLwqckVK6ajP + chl5NrR8+x9ZhkRYhhkemxAESJrJyi/CR4d0CPIknaDAKiITmpwktydIIj/cbKMHhBMqwkgj4/j+2s8a + EVlmKMiEIDEjY/Azw6P0y1hJMDO1IAeVA6vIiJzEqrJde7aqCrdzs8gYBklmMDCKgUAQA0NB9A+NoF8a + QfpJCwlm6BHMlrJp2yeLvK49alVGYjIkwlWRZUgkSaZPGkaffxi9/gB6BwN4MDiEI8YC7DpoSC34CQWV + A5so8vr2bFeVzSLEwBB8Agk9tLh7+v3097MfaTmnsGufDsG9hzPb9x/JFqFlMvOIXJkMyglnJf2kgiWB + oycLZKgajEFgpmOUmQQUTvGpBZ9pOW7ChwfT8cE+Q+p/Hn10+NhOmqa2PYcyfFooHyq7BekyBxWO+nYf + 0JLm271f5l8adiXxjxj/3H/4zgd7P/1bTOPt9fb6nVw7dvwPMbN6Z8UyA40AAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAMDSURBVFhH7ZhZT1NRFIX74B/wz/iIw4tCVIrBB36FLyZA + ueVCESiDdGBoKQVbKJEKKFNpsWATUeNA0GiMqGEqREBKqWW0ULZdN7cE5EhuaWIJuStZuT1n77PX15u+ + 9ChkyTqNyitvOJ9fbVWq9Q/MfJ39o7qmOVjAt2znVVkJz1y9bVXY19vN6EO/eHRf8RmFupZG9OLMwRmY + if0Cnc30rxlHlFtlucIb7cMYYOl0/+J5fm9y9gethMK0ubVN0O9IhELhdZryL5DP54s22vtCd2p0W7zB + 9jS/wnoZM4r0rd5iXdtW98jLdcyYWVqluUCY/IE1ml2OPZfXhPXMYpA+fZ+jfs/bzVjudnFtqxczRJyj + wrfDwEhkR4CRKkDjHN/wcL2+qW/z6+ziPoxUox/nwCDiHBWKyWh3Nxp7O2wAqWYCKjnXdSXnDiYLCLFC + EzEYbuT1rmRygxkinkKBDbXTLxSTFSs0EYOBc85RFucKiHgKxU2Vi6rcoVMDCBYwiXj/D7Dc2ERpV7NJ + a7Ay63BKAdOuZdOFSzcoLf02sw6nFBBvDpAVxmZmHU4poBTLgKxQGL+9g2b1wCl9gzKgFLFC45YBpYgV + GrcMKEWs0LhlQClihcIH4Y6DTOkblGIZkBWaiGVAVmgiPhuA0WiUcOXhef6OzE4PlZmdVGhoo/zqZioy + Okhr6SRzh5u8L8bp2/Q87ezsCuegeJA/EKbphVUan5ihLu9rMsX6tY2dpLrfQqWmDqpz9NPj4Tc09nmK + cDUiGdDR+4z4WgdpzE9IYxul0kdfSNszT5UDy0IPnlhjv8Q+KvSp9a1k7xmhiUl/DCpI7tH3pKlrF2ro + OW4GMtBXZnHS0KsPxwOq67uopH2MKvuXhLVUo1/jGKNiU7dgfD7JDGSDAetDgLhZwL/5vw+lyuoO/+Gb + BdyDABLUJ3Gmit8r7f25H4DP2GP1SjHglCpXuoiXvDI5jyGn0rdxLwYG51T4Nm5xQzqxnHpd5H3nsgoG + azPuDqxlce4wgLEnls+yFIo/ehrF0/p8G5AAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJdSURBVFhH7ZbNTxNBGIf756l/h1FMvClGoHgwGNMGBUxJ + jQgNJWGDklgvftRIqqINHwdKevIAB5RyAC9eIEFe9zfO2s3wm5Jp2YmNfZMnm52+7+zT+dpN9eK/ivLU + BYmQo62/+GzXKjzMQt90vyAr8o1W4cEKfKNVeLAC32gVHr1NcgbdL8iKfKNVeLAC32gVHqzAN1qFR2+T + nEH3C7Kidvi+U5Prdx7JlYExK/gdeWatVuFhJrfD4c+vkh6dklzwTkof6lZy82WVh/x4vVbhEU9sl+lg + Ue7mAiplMjK5oPLj9VqFh8sarNWrcmMkf2rq+u8/kcWlGhUyQR7yzT6u3Z44uJoev6S1muEiePNeXgov + P9MHd0qhtCyX06P7WqsZLoL4p6zzOMXXG5IJ1mToaVX688vqmp1fU+0sPw7611rNYCI2Wgm+qNTlwcK6 + DBdWpFhtSHn7SCq7J+o6F94Pz6zIw/B35EU18mNOEd0nKgi5zPNNWfp2LB/35BRozzzbVJKsHiQmOPtq + Ixy5VatcxPud4z8jbJluKngeaxBrDtPKpEyKXxqSDfgoJiaIjYC1xoRM3m4fqnzWj1UwIi7D2m2C2K2V + xgkVMqns/pJbj/lRRQVdotUIYmSYkMmbrXAEpx1G0CVsgtlwDeIoYUImzmvQJWyC2JVuu5i/FhMTBDjf + cM5BwibX1jnoEq0E8YbAw9UIhdOINYmNgyvu0W6+SUwSFYzAdGONYSOod3F4xb1tWuN4EeyEjgXxzYbP + ItZ5p8yUPvHPLZfAByUk8U/PG8j1DY5d1I/6lyOV+g2T8J9wZbIwpwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAQWSURBVFhH3VhLa1NBFI4vdKXiThRBfCyKzZ2baMEHdFPT + O5OW+qrgSrdi66MKBTd17WvvHxHrCxc+EUp1IW3Fbmx1W6tp7r2FXs83mZs06cnNTZqI9IOPQObMnC8z + 55w5k8SaR5Du2uZb2Q5XOOc8S10CXVue9YVzBGPG7N/CS/WkPKEe+EJ9HrHVkm+rgKMeIxvPlve8pGOb + 6a2DK1Rf3pYfODFx6Iru967t9JrlmgdXZA/Qjr3gnDZCz1ZP8ylnn1l+dSBhF3Kia55ztBrm2tUvL6XO + GzeNwRfyWlSMrZZYm+LzjnFXH0jcbW7RFnHYuI0HHGu9O/fbVn/oc4I4OX+wM7d8rBb1TsY9biRE3Jij + jHxD9e5yzsruMtOLyLU7u8lm0E3Kt5XzOCImYyUOFdrn3ALldKYWU7IH9kF//wY/7ZzwbTnkCflQ18eU + c9235PEgMbIeNq6tztD4dDh/dqfy/WT3l/I1dXaPwr4qUOcqJ1WSRDwJrL7tS/udzRDiWSd/cnYFZmbo + czDo7NyIOST0FcS5qexpV8hHK+1VEP5wFrWKsBZHzhbSPXtoR8Y5myocQxjoH0W7DV/VBKKYazGVwPXF + TSjRmcIuQJzXrn7wNhFMqq/047YYd1UFguy1qGOHMQ6Jrdc7UN/OaepjpTg0rjQiBdLdbcxKwKXOGYO0 + +Gttg+BnxqPIiQOiBPqW+mTMCkBbFFn3qJQgW6MTonmElqUOZ6uRRztD/RxnGFLXNF1K+PGWkPpJI4+2 + W9cpxoiIog0buvpucuOtYllYoAvmjAwntA0VYWasZfRE9qIWB9QQ2HSGWYrSw42DZQKjjrg1lEPwaxoM + ZpyOmG4bLQ5AQHJGrWPP0cJtxI2FlIeNvBhlppk8JGfRRJCAAXacuKLMACiOnDGIomrMikBY6K6EsY9k + Sl7R8y31jh3XlOPayXJQq3OfN14psFFx+aT6GKTTm1xLnuLGQ1IS3TWuSsAFzRmDywXiwo/KvurMzKDg + L7Vldvii+xtvUyBVFWHclQOtDjchFIgmFA0DWif6fqzSrhqxcxCHVg1PTs4mJDpwLYYDHtXsJBKItMex + erbzEkkFZybQv1faF0kJgZjDsWLn6OiesXbLuCgcZeTwYH8hteflMSenw6soSCTWUSd0DE9UxLFp226g + lBRbfsRcjWMFaf5j2EcCDxc8YLgFKqkzUairqGlmehGm6x6IztYSF9rUXD7Zu9dMjwaegPXWxbm2zAJ9 + ThInGnl24h8x4z4eaOJw5UIto1C3jNv68F//9RECxx03JushYq7uY60GJA5l2CjnqBEiW2MnRD3Ay65a + MY9DZHTNOtcM4CpC04kGIypGC2NyHHcrNaCWmf5vgbYI/STiCV0wqP9Ep35uRcu09pBI/AXnDdZLp3fg + aQAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAODSURBVFhH7ZjpThNRHMVJfB2XR9APvoJRH8FQ+KBgZCkk + RkShGwQsYIcWKBSGVaWWgKBSSECWEsGwQ1hkq5QAsYBE/t5zuzCFEUrpNBG5yUkPd+6c8+udaUkn7nL8 + t0O8I17RqoQbOpVwW0nlPLBcR5e/NryhjTff06rMbiaKkdwaVeldf/3JQ6MS7mtvWn5nZmYeZDTPU1qH + W1GhA13oPBXSd1nNbpwgF6ak0JmbaFk78XLjnsOWx2Lnjkr9bt53ueNLr/lxjo/cePMtLJILiIXQDQY/ + zvHxzwJm1ozSU2EgqkLm0Z6IALMMn0ibYCZjeg0Z1WJ0xLKQmc2ypV0RAepTRSpOs1F5dgPteFaIdj3n + EjKQhUxdam1IV9iA6s+eoPRPamjo4wBZXzZR+fMG8q4vyxaHo92NVV8OA3S19/NsaVfYgFl9u0EZUkQa + 6Ro6DI8QUgqHXUQmsqVd5wIMKTkj5I4nFA5zigBCZ4UMwrH10ntYMUAoAFmSXk2bK4shx6TaWl0iU0aN + 7JtRFPBgZ53sQhvpEy1keVYvu5PYuTIGhjV2Uys/R3pcMUAUOSztVJBspbnhcX5fQVJI+MD84rcJKnxc + Sc0Cg/QeQioCKIVbnpjhc7ivKl40UlFKFXU1dnPBYy5wz61Nzx6DjDqgHFxAv7bc1GPvobr8Zq5e5vfZ + nHTNUchzAWoGvUEhZNjp+ivcWSSFHHH6AKVdYQPWLVBQBeki2TRvWLCVVqYihwsIGchCZoG6NqQrIkCj + oY107JP4triF2qwdURGykGk0fAjpighQnNojweaiElN3VIVMZEu7IgKMpS4Bz6uLBShO7lEe+57CK/7O + U9eTbWiD+8IcB1md37kvKuoki32Ce1PVIBc85nAMHmtxDjwykAV/tCNswC/sn0DfzDY/Aa8j7CsMvyGc + g8vcv2LfX63tk9ybtQ5qqndxXy04ueAxh2PwWItz4JGBLHhpRy/rhNcmCDf9OMcHHuRg0fj8Ns1vHlBn + xwR/Xdgi6nJO0+z6Pve9PXM0teTlvt+1RKOzm9x/HfvBBY85HIPHWpwDjwxkwUs7xuZ8sCf+cMdjh/yk + 115H3QAPiKXe1/aT5mHlz1OfdFXoHcm6xDJ+AnZSLiyaws7ZWRc6rYaWR36Mk4dV15KEd8O3PAZCV9hw + gcGfdLH7Qe6hYzSVm2i6euplvRwXd8TF/QE1/NiTtMURWQAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADDSURBVFhHYxgFo2AwgGlVLv+JxjUuvVBt9AMgi29vSCWI + r65J/j+t3vPLjCqXPqhW+gBiHQjCA+JIUhwIwudXJP6vr9P6A492GmGo80hz4JF5Uf/nNnj83zM79v/H + 083/v55rpQnGcCCxeEmb7/8He8qxGkpNDLIL6jyIA7EpGkg86kBK8agDKcWjDqQUjzqQUjzqQErxqAMp + xaMOpBSPOpBSPOpASvGoAynFow6kFI86kFKM4cDBiKHOGwWjYAABAwMAl/T9hXWK+3wAAAAASUVORK5C + YII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAMWSURBVFhH7ZZNaBNBFMcjiGgVlexuaktB8KB3BU+KBwUV + 8SDioQeNyc4EoYioB2+mIkIvagVRQTRQo4fSxIMXbZvMpFZBqBf1IOIHUvXgxW9P2vje9O02zexu08bE + IvuDB5N5/5n3z3wlkZCQGjGZPGYx2Y+BbeqePyhzXJZVQJu65w+hwXoJDdZLaLBe5p1Bk8udYOSEE4Zd + eOIYVO2KHGppWPMweakNzIy7q+YXB4c/RJnooGHNBUyuX8rld09jEMvtuz+jdmkjyesnZg+3xhL317R3 + DRkr4mIldQdi8eJei6cndIPpCZOJTpIFgrXaUsLE2uiBunXgvEwddBWDX6HIPYsVt5PEE4uL7unjZBn+ + MKQp7YmVEjvU3FBj2tigC6YbrAgmTpHMg/IC0NxytIYtB7CPkhqgOe1otZizQRWlOEk1Oo4+XAIr+ciy + xeO21FgLdWtAPuE9N0WQQTwDJituwIililvheTi5rFP8qJjgU+uhBzGSaxjJ0XYM+qiB58vaLz9PzSfe + W6zUBcdhs1sXPJC8NmJcbLO2iN/upExco9Qk+54topZOVc7g8rozT0tcfjPZyFpK1Qes5GXXIJjFp0Nt + KT7EXJwhmYbJRQ/uAmpxdSq/KJg9TrL6WZUYsSq3BrbkucELr1WbyyMk08CcGpMQb+GxfuWMjybly8CV + nwv4jZ0ClWHy4i6SaGDOa0yMyT0k+Tvgw20mxUWvB9lIFtaRTANz1Xo1B5NXAx/k2QCX4jDEF72Qil8z + XRLUVI2ZDJwT5ibl3FHnDy+DLd9VF8FzSDJf4NF+Uz0uyoc/4gUKepJmD64Gkwfg4D91CsEZG6SsL6Yt + h1xzduEFXhy81ZRuDPA7ugkK3oHbfIm6fIFtvAIXbBRWcnfQz19N9N7I95zrGxjDwDZ1+7I6LhZT05da + NDXXhWR/bzZfVgFt6m44NdcNDfowC4O5jCM8m82Pq4FNCFXLNZjLkB2dCzdvp1zhP4rz2TwnOzppIRb2 + ZnMjXgObEn35EnogO96gQK0kbrfHdjQmchlcuRnNhfx/RCJ/AHn/AbVQ1jdKAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAASySURBVFhHvVhdbFRFFF5f/En8RfberRpJjCHRBzWCPkgD + PDSiUcFn4cX4Hx+U8OILEGOMiT7gL2qMMUEp994NUihoUYohWIw00QIVaClUdvfub2m7u93tlu3ueM7s + dOvePXP3zm3Dl3wJ6Zz5zrczzJkzN7BQjH2/5Na4EXrMNrTnbUvbyBnWNsTDoZU4JsKuHRgLXBc3Q2ts + U/siagXP2pbO3FiL0T6HH7Ea5wqZxcfwT/ffEDO11yHpiNOEAkeilvYaagnZxQFs19Mo7kjmn536BdsI + rhPy/sFXzdI+IZMsAmOGviti3nOTSKcGmLjENvU+SljGzJGnOKkxGaN79OOXd997h0jrDcLcKUrQjYVR + g5MacyXk8mxy9LtlN6qu3Bx9GwTiSno6PLah76QEvHAhBpFQJT4VNmiI09o0MXnocZY8uKLp7056NYha + qEmN2eHgk8JOI/jWSkpJ7p+PWKWUYanDa5rG/s/cmQ84qbE5ogZqoSY1DhwatB68XtiaR8wMvkEE1xi+ + ixUv7wXhMZY+vJaO8cDUz6tYZTrFitFu0LybjOE0tVeErRrwCoIB90IMgsXogdpK9rTX/57Yt5yN//km + m7rwLStG9sMW72HZU++CmSca5uMcnIsxruaQhj7ccC1Gw/paMtBJEC5c6mQTJ9/i/8btrJbzjEaVr1Sy + +xE+d6L/bZi7u7W5OoPtwh6cXLj46SCa8b3LWClxVBhxB25p+pcOUseNDSfa7tTOU0EyFiNdIr03zBYT + LHngIVJLxpi5dJCbw55t+3a9SgVRvHJ8k0irhsK/JqknI3rKdN15S4A3m0SAjDPpEyKlIqoV5VW0jbZH + A9j9koMEE13LIdGsyKiOif7NpK6M0O08F4ib2ibnABbT8RMvNzB5aCX/z74Q5M99xvVRy6lPXwLaRtJg + 4dIPrDIz2cDs6fdZpvcZkcofpoa/4fqo5dTHnE4f3KDKFie7Hxap/GHy762kroy1LVY6JCFeMvwi89sG + QtOFeEhUywxe8n5Qzg7D/FCTnozoKWUFb+a1MGJo56ggion9D8AqxkVar6iyK30vknoyxqylZ7g5BL5b + qSAZM0fXQ1mbEclbIz+0k9RxIz7WhD1oVPEhTgS5Mf1rB5udiggLEkDNzJ5+D+K9b22dRnCVsCfaLXyr + UoEunOjfIpzQKKV+J+e1pLPdQuCLnwx2Yab3WTb51zvQA5qslDzGro4PsFK6j03HDrLc4Ids/I9XyXkt + aeovCVvzwBeV6iqmelbzJrSU6OWNan7oK1a4uIsbLOcvstzZHeQ8V0JnRbb8CPwcQU5yYTl7XmxoM9JH + 1pFzZMTSEjO0DmGHhuqJzg99Kew0YrYQZfEf7yPnyBgz9R3Chhy41fiIpgQoYgtVrVwVtuaRHdhGxssI + ZeWYdGudwM8QKp8+sC5O2z2snBthM2Mna3duuI2MlXBgdN9tt4v03oAmVVbSL3HllM3NYe7zm8pdrULo + Vr72vK1uwM8RWDypJL4IpaTlaVUF/lJ88fu5cerEHwlFeFFWTYbaV4hgO249Pg1JI4K8rkEMbOXHOKfp + +roWwKdh3GpbAQ/t9bDCLyCxE8Zms97P+UYg8B+hshj6VVc14wAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIQSURBVGhD7ZPNShthFIanN6D3EIg7tXeg3fkDRXftroVC + C0WxIBK0oEREWynqwtrQYiamMsyoxET0BtQbULSbdtEq6ba9gTmdD98wk5nzQSEzyQHngWc353ufgBop + KSn3iPHf7uhY3b0dqxMl4eO6e+O9P4y5+Lkb4Mfj0/2FufjhB+MXc/HDjSUh5uKHG0tCzMXE9NW5MfON + lNxYEjb2jOnrU1S0QOOxTvwAZcsEHuPGkjC4iYoWCDzGjSVhcBMVLRB4jBtLwuAmKv6fyVx+5HUufzOR + y5Mk75oWh5CpR2J8Q6/tJzL1cIeSRKYe7kiSyNTDHUkSmXq4I0kiUw93JElk6gkfPHn2knr7+imbzbZV + tfn0+aumFiUy9YQPOhHfsLf/YVOLEpl6wgfcw+003INMPeED7tF2Gu5Bpp4XkzkKmslkOmq4B5lRStZx + j2nXzj2p5ByJFG1nqhXZPio+fCDYM2T7FJ3qX+ZDodb+INvH+wGX/McCtWsXyPYx7aMd9mOJ2tUSsn28 + /4E37McynUK2T9GqDJp21ftPl6/3JzSAbJ9y+aTry+6Bu21VSLKqseA43chuprDj/Pj8dZ9EW977jtwo + m9vW/seiRcLdQ26UtUJxbr1gkmg/mbPIjfJuY/PRysYWSXZ5bWsQuVGI6MHbpdXD+aVVd2H5A0lSNc0u + vq+oRuSmpKSkpNx7DOMfPOS3yHwq65YAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAPlSURBVFhH3VhLTxpRFCapu9qf0Uds0651Y2CYGaBtGhMx + MWkq/gG1il351o0LX3+j+6bLbqTMaIw1QQpN+k7cVDFxABedZnq+8aCAV5iBoZJ+yRcmzL3nfHMf55x7 + ff8tNL//UTIYnNgOhd7qsvztXW9vIdnVZYJ41kOhr3iXlOVxtOVurcVmT88tTZZf6cHgTz0SMXaHh08P + 4nErNz9v5ZeXreLKik0847+DyUkrFYsV0Tahqj+0YDBO4jvZnHcgox2aosRppIz04GDhcHraOl1bc87V + VQt90n19efpAAyMPm2y+OSQU5d6WonzSBwaM48VFsQAXhA2MKNnMbvr9d9lNY9Ak6RkJzNPX/hE5a4aw + mejuzr8PBJ6yO3fQJWmIjBRyc3NCB17waHYWQgs0EC/YrTNg5NDxeGlJaNhLYsrhKyFJT9h9bWDNYVpb + OXLVPJqZsTDdNGt3WIYY9CUd2BD06/maq8fU6KhJuzsDDSznMrD9d6LRE5GBf8E9CkMUysZZTiUQhBHn + HIWS9fUzit6J6LD98cKCRUnghEbxcjBHhkAQFnWsIDky02nLTKUcizT39iwzm7VONzaE78tpB3PKOCzr + Akhfh7RYRZ3OyeJKcCIS4kpwIhIZJ6mq31nWGZDMEd2RkkSdylnuEKgl0k3bc5KGRCSST8jyA5ZHAmlI + kfiFHQR04rghcUwUGKRpjOX5fCiLUJWIGl/FWgKaEQdCi64ob1gerT+q51AeiRrXokhIs+LAHKXAbVX9 + zPLs7JFHDSdqXI/VgsrRiDjQIC1U3hksjwI0VcFFBxvkKopENioOLFDRS2vwN8trkcD9fe8Etv0Ut/0m + scMMHXBEja9iLSHNijyYmKgMM6hidmOx9gnUQ0NF0jTK8khgIPCwrVJdOJzX/f77LO8MWId1j5NkHLuz + BCcOy0WamUzdYuHX1NTlYgFAPkapI+pUQRbpZsog0ok4EBqw5FjWBVAk4lB9nQVrjgpWGqiTD7J8k2VV + IilJ4zv9/ddT8tPaQ8lP8e+iiqkGH5qy13JoGhkxNVX9+DoavcFyxMB1BI6AOFSLDLWCqOSRzWjt3WYZ + tYHrCBrFghd3MfVoH5QUpahJ0mN27wy4joBIHKpFhr0gRg4+krL8nN26A64jMN2er0naEFhzmFbXI1cN + XEfQ2sgg02A6hA5dEKEEtrAhHK+5eqAR7KAvfYlDNQKpnXHc1I/U9vwCk2wgz9bdrY2AhHYi4yAV6eGw + gdOXfQVMO96+AiYhoH0FTP+hKkHixzESqRQZAjbYXGuBZE5ix1AWbanqF6zV0iU6nvEf3qGNFgh0cbf/ + DT7fX3+e7xvou4uzAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAn0SURBVFhHtZlJVJTZFcdJepF5k5ycnM4qi95kn0XG48km + PdoqykyBDKVACcWgICKU0EqnFWiljSjNoNjaDtDiABhoJgcURcaygKKKohCh06JhKKivCr53c++r7ytq + AiSd3HP+R3jDvb833Pe9h35rmQnghyaBbTPbYdf/Q+R7nLEfSeE2bmZh+T46Ak+NSTJJGrWtLrkNifp4 + +RKW2wHge1LI1zcc2c+9nKE8oYweMvgo8wSWByj7pVhS2Nc3GhWNzhXME4pgSCNrSG4jg3uBYgwp5MaN + 9odJgK2jdpY9arHMU4DyG19D7meVoBcYB9C7aFhw10o5A01xBe/LQdHXqMCyybeesR9I4b6bGQSWQ86z + j5dBRGIWtI08c4IMraMW/Tjvk3O83DGrCCe5/d/ZiE38hGbjYstDUKgyITm3EJqHzTCIAA1aI5y4fAvy + Sqq46Gcq02Fd05AZ1IcKeZ+LrQ8dg0JfktuNmdnOfjdmZ0m4pBm4BBk4Uq4RQSzXm0xL5HzQyiDvH2ch + KCYZgmNTIGLPAVCsqkzehtrmYh8d9qUZHea+0KdLDIqHcdNNS+yvEs6KORJCPC0nhJwItKTyPpOXkmZM + i4Eq6tsQLhPC4tLXFA2grL4dBhYZPMW+NKvy0pNPOZHkBHIkj1jpdvSYbSzSNVt9wREYOX9qBRhA5Z2q + goCoJJwdNYTsSoPQuH2odEn7sGwvBEYn8zZ5p89Dv9RPiyI/5G81SJ7dNqaQ8GhpxRoCJLjBGSs060Z9 + wpFzCvTo5SIE4rKFxWfwzb+WwuIy+BI/fGmFvkVHf/JDsylDUpyvMeZTjE2Q0izWSngOQHlpS67Wc8f3 + x75xLqsrXM8Cg4Ivan3st7WVX3EFnmDfXhdIeSbvmb7hMUuqG5yzOGoXL0h49Eljm4maKuison1T09HL + 4ciBDEfOj52/xpfvv9GxC9ehG314QlZ39Dj2qnxOosaW2PsSnsOw8JBWq12uud/NR1x2o5nD0VLQ3qHl + qWrphB07E7+TzrU9doOkPV2KYBSzGmOPTE8LmNXpEpa7jVjZW5fbO7PpzNpUeEZcWVoRps0lMNGhhIc3 + ouFInhL8FQkbUmJyLJQXh0JLdRiMPr8BPZjVfeibBp+t0SxTzKrGu3t1FvamhOPbNBrN9/F40NMRcaDo + TF33nDA9O/YpbsZEzJg9mHIowx5ghjiY64+B/sadcKowDD7OjQDNwZ3834IjEXAay65XBEB/wxaY734H + 1/JvbpqYuoqzKLz4uPRS1aZNm8QwZfp4QEDAGxLG2oYZ+qdtyjhLsDIVQlSpC6IuwQsQjCrctChDFE7z + 2xvW/EAYxKRrJihGcGTkUpAy7V0p/OvZjpiUtwKjky7mZCcswyDCSYDm+yqoOx8N976KBPvTEAz2Hq4T + Bl1F9p534N5Vf6g7Gwjm1s1udarkBAiITHq8I1r9Bynsxs3SFXlRBmy+okKH8c59lZYWC4uPEbAPl9CH + Fh69x9vI7alv8xcBzvq7l/xPYIiNX1ZdbUkbPUiAs92JEBKjAv8Id50/GYYpiQF9qOqzUK/2obHxMPsA + B4X1Yu/bZ6Qwq9sUYz8xCmKJQRCm6eshfznoeKFjYGkwBQsSoetWImyP3OOljHQlQPe7PpWOdb76dNXs + 4PUzeg1m88qZSHEpvp5YBPHUc4Af++GJXUYHtPztdQXsnrWDqMOEQMDe24kQEK32UnbWLoAnCCSJda38 + fDBrt88+/bUIiPXzA3t8A0o8BkEs9Ru2Wl/JgLp5Gz8s/15+CZI0BRCZdBDmHkagBwUsdEWCMikFgpVp + bqr9XAFA+xBVUaSA8sJw5+/XSiO82u9KSobFjg94/WSzP0SnHYLMwlIoudYIjUNjMLgoOgFHrNaXfib7 + 0ggBtuHlU4mNFQn7ndq17yOYbAkC6MSAqJ6aIIhN2ouXBLxKoQry48He8b6zPjszFrIPxDh/p7pjR+Kd + 7ZXqNOhFH3L9WGMYxsx1i7kbYzbpjBxw1Lak96NrTWtrq3i7bwii1FmQX/oF3OoehL5ZG592y0AGwAOE + kDTXtgW6r4aA8dYOYATnUrdbFQdxKNcyakNtqc9c64dudbPaHOjFC0QrXhYqG9oh8+gpiFBlwM0uLRCT + 0cbCeaIY7ewvBptYoBfEM0M2sXpIsJv5PkTAl8PFAASyjpbufoD7K4nLfg+X0EcbT00Pn3TuPx3GHLKK + 1cSgRxajHf7M4XwZ3mbfGBTEKvoWT5pv4H0IA66jyXp/fkckTdVv89nGU+ZnTdIlVjxHMaXw65uOsV9o + LctRDQMGqLhQCnAHHa6jvktBzkTovxzos42nDh89DOW4tK2GiWC3K/56dvb2naPq3CLnrXi6YTtmEX6m + UPWnQiBVHQsPzuJml8pITZjNobvx2o9qLsPMdqnrwLapSUqoPxEKrG4Ll63OH08Jh//dGUeg5v6ARQq/ + tkWqM34TpVZb6QKpKa6Emgd9MDV8AR+3m8Ha+CEERTvudcoEvEBgmawvj8dAeEIG1+UTmMkuddSW+gRF + JcLiV/7Arm+Duc7D0GqchMJzNbATj7ModQ4o4g/+VsJY3fDimE2Xx9LaRn5o8jeDxQLL7Qqw3t4C4XFp + eDtOgwS1Gh8SmJWSivNV/O1LOpmP8C518Xj2UR9FXCpYr24HVrsdhmZe8ts0+a/EVx/FDFdl5kkYq1t4 + fOanFKSuW+d8NJGT5+PtwHAGm0qjICsrFR6dC+e/y8rOSnG+PzTZKW51nRUKyNqfCk0nooFV+8OLfnwj + S37JPx0rjsHtL5IwVrfErE/y6LL6+fUmt5cdOZvWVQL7J+4hH4pP3e/cs6q0DO82Nbi0V7aDpS2Tf9Jk + OPJ/uuY2f0On5x//SMJwt0HGfjZmE/PN9uUnrcNjthDMxJyiUuf3eQWSwQvdeWANW1EYVJLlpr8TTtYC + LiO7ie1IuOcYLq2lLcsLjvwfOFoCFPPe6IQwZl/uMeM5+C+An3I4On+woJXexfxtbF2GcPwsRSZmghGB + XCFl0GcTXWBrVmI2YnCU6csQL8CxyjA+YySxJhC+1V7hYJ5wenzvyMmFt6qVv0UK0MaPnjE7+6NcKOtg + AY0oFQyLy/wpSs9Az9nUL9phytgIC3cz4VFZpBfg45KdsFSrgJnOYkyyBd7HFYz8kbSvFvjDXlN0xo2B + ZLKz3/uN21iwZ4V+zgr93/7b+acQT0jPGdW9moFOXQ+03G2AxqYa6LxTDYMvHA9/TzAZTn6gk//uqWmM + KbgxkMYF2OpnXmC/NszPWzwrZblCuoL6gvUlVygZzBWO/PuKq52ZWZxk7Jd8H5psLHRobm7BV0NZvkBd + YWW5wshyhXIFWw3OvAgzJoH5czjZjIz9igqxgc//MnDVqIcMa8izrS9/bhLY5gm8Czio/Pz+Az4KU4Ad + 9CkXAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADOSURBVFhHYxgFIxLsv/VPZte9X6vpiUF2Qq0nDPbe/qm9 + +97v//TEIDuh1hMGow7Egoe/A1dd+/U/ZN03OAbxYXIdx36gyBHCyHphmGIHLrz067/itM9wDOLD5PJ2 + fUeRI4SR9cLw8HfgoI9iWuNRB1KKKXbgoM8kow6k1IGbb/0CFycwDOLD5EAWIssRwsh6YZhiB9IaD38H + DvooHvSZZNSBlDqQ1njUgZRiih046Busgz6TDHoHDvoopjUedSCleHg5cNAPYI6C4QMYGABB2DuYDB90 + PQAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABGdBTUEAALGPC/xhBQAAAMRJREFUWEdj + GAWjYDCAaVUu/4nFM2pde6Ha6AdAFt/ekEoQX12T/H9Bk+eXmTUufVCt9AHEOhCEB8SRpDgQhM+vSPw/ + t87jDyzaaYWhziPNgUfmRf2f2+Dxf8/s2P8fTzf//3qulSYYw4HE4iVtvv8f7CnHaig1McguqPMgDsSm + aCDxqAMpxaMOpBSPOpBSPOpASvGoAynFow6kFI86kFI86kBK8agDKcWjDqQUjzqQUjzqQEoxhgMHI4Y6 + bxSMggEEDAwAcaf95QqwNkoAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABGdBTUEAALGPC/xhBQAAAMRJREFUWEdj + GAWjYDCAaVUu/4nFM2pde6Ha6AdAFt/ekEoQX12T/H9Bk+eXmTUufVCt9AHEOhCEB8SRpDgQhM+vSPw/ + t87jDyzaaYWhziPNgUfmRf2f2+Dxf8/s2P8fTzf//3qulSYYw4HE4iVtvv8f7CnHaig1McguqPMgDsSm + aCDxqAMpxaMOpBSPOpBSPOpASvGoAynFow6kFI86kFI86kBK8agDKcWjDqQUjzqQUjzqQEoxhgMHI4Y6 + bxSMggEEDAwAcaf95QqwNkoAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABGdBTUEAALGPC/xhBQAAAMRJREFUWEdj + GAWjYDCAaVUu/4nFM2pde6Ha6AdAFt/ekEoQX12T/H9Bk+eXmTUufVCt9AHEOhCEB8SRpDgQhM+vSPw/ + t87jDyzaaYWhziPNgUfmRf2f2+Dxf8/s2P8fTzf//3qulSYYw4HE4iVtvv8f7CnHaig1McguqPMgDsSm + aCDxqAMpxaMOpBSPOpBSPOpASvGoAynFow6kFI86kFI86kBK8agDKcWjDqQUjzqQUjzqQEoxhgMHI4Y6 + bxSMggEEDAwAcaf95QqwNkoAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABGdBTUEAALGPC/xhBQAAAMRJREFUWEdj + GAWjYDCAaVUu/4nFM2pde6Ha6AdAFt/ekEoQX12T/H9Bk+eXmTUufVCt9AHEOhCEB8SRpDgQhM+vSPw/ + t87jDyzaaYWhziPNgUfmRf2f2+Dxf8/s2P8fTzf//3qulSYYw4HE4iVtvv8f7CnHaig1McguqPMgDsSm + aCDxqAMpxaMOpBSPOpBSPOpASvGoAynFow6kFI86kFI86kBK8agDKcWjDqQUjzqQUjzqQEoxhgMHI4Y6 + bxSMggEEDAwAcaf95QqwNkoAAAAASUVORK5CYII= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAA0QgAAh0MAAKJC + AADIQgs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABAQwAAh0MAAKJC + AADIQgs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAICpQwAAh0MAAKJC + AADIQgs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAAAAAAAAAEhC + AAAAAAs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQgAAAAAAAMhC + AAAAAAs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAWQwAAAAAAAEhC + AAAAAAs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQwAAAAAAAMhC + AAAAAAs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACWQwAAAAAAAEhC + AAAAAAs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACvQwAAAAAAAMhC + AAAAAAs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAAAAAAAAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQgAAAAAAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAWQwAAAAAAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQwAAAAAAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACWQwAAAAAAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACvQwAAAAAAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAAAAAAAAgOFD + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAAAAyEEAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQgAAyEEAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAWQwAAyEEAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQwAAyEEAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACWQwAAyEEAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACvQwAAyEEAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAAAAyEEAgOFD + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAAAASEIAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQgAASEIAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAWQwAASEIAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQwAASEIAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACWQwAASEIAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACvQwAASEIAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAAAASEIAgOFD + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAAAAlkIAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQgAAlkIAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAWQwAAlkIAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQwAAlkIAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACWQwAAlkIAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACvQwAAlkIAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAAAAlkIAgOFD + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAAAAyEIAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQgAAyEIAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAWQwAAyEIAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQwAAyEIAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACWQwAAyEIAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACvQwAAyEIAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAAAAyEIAgOFD + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAAAA+kIAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQgAA+kIAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAWQwAA+kIAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQwAA+kIAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACWQwAA+kIAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACvQwAA+kIAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAAAA+kIAgOFD + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAAAAFkMAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQgAAFkMAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAWQwAAFkMAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQwAAFkMAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACWQwAAFkMAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACvQwAAFkMAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAAAAFkMAgOFD + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAAAAL0MAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQgAAL0MAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAWQwAAL0MAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQwAAL0MAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACWQwAAL0MAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACvQwAAL0MAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAAAAL0MAgOFD + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAAAASEMAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQgAASEMAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAWQwAASEMAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQwAASEMAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACWQwAASEMAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACvQwAASEMAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAAAASEMAgOFD + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAAAAYUMAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQgAAYUMAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAWQwAAYUMAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQwAAYUMAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACWQwAAYUMAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACvQwAAYUMAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAAAAYUMAgOFD + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAAAAekMAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQgAAekMAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAWQwAAekMAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQwAAekMAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACWQwAAekMAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACvQwAAekMAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAAAAekMAgOFD + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAACAiUMAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQgCAiUMAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAWQwCAiUMAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQwCAiUMAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACWQwCAiUMAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACvQwCAiUMAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAACAiUMAgOFD + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAAAAlkMAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQgAAlkMAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAWQwAAlkMAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQwAAlkMAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACWQwAAlkMAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACvQwAAlkMAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAAAAlkMAgOFD + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAACAokMAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQgCAokMAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAWQwCAokMAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQwCAokMAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACWQwCAokMAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACvQwCAokMAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAACAokMAgOFD + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAAAAr0MAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQgAAr0MAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAWQwAAr0MAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQwAAr0MAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACWQwAAr0MAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACvQwAAr0MAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAAAAr0MAgOFD + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAACAu0MAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQgCAu0MAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAWQwCAu0MAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAABIQwCAu0MAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACWQwCAu0MAAEhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAACvQwCAu0MAAMhC + AADIQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAAAACAu0MAgOFD + AADIQQs= + + + + 698, 17 + + + 69 + + + + AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAAMMOAADDDgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWqUeEVyo + H1Bbpx59W6gepVunH8xbqB7gW6gf7lqoH/1aqB/9W6gf7luoHuBaqB/LW6gepVunHn1apyBPX68fEAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF2n + ISZaqB+BW6cfzFunH/xbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1unH/xaqB/LWqgfgVypHCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAA/vwAEW6keXFunHsZbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6cexlupHlw/vwAEAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAD+/AARaqR5lWqcf3luoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf3FqnHmM/vwAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFynHjpapx7QW6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gezluoHzgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX58fCFqnHpVbpx/+W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9aqB/9W6gfkUi2 + JAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWaUbJVunHs9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB7OWaUbJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWqgfQVun + HvBbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1qnHu9ZqSA/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAW6YeVFunHvhbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Wqge91um + H1EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAWqcfUlunH/xbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bpx/8W6YdTgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXKYeQlunHvlbqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1unHvhcph5CAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW6kgJ1unHvBbqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//Zq4u/3CzPP9cqSH/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6ce8Fyp + HCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVKkcCVqn + HtBbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9cqCD/u9uj//7+/f//////5PHa/3O1QP9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9apx/NSLYkBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAFuoHpZbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//k8Zr//////////////////// + ///P5r7/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1qnH5IAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFmqHTxbpx/+W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/7bY + nP//////////////////////8fjt/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9aqB/9W6gfOAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/AARbqB7RW6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/+726P///////////////////////X68v9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1unHs9VqgADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbqCBnW6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//u9uj///////////////////////1+vL/W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6geZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAA/vwAEWqcf3luoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/7vbo/////////////// + ////////9fry/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH9w/vwAEAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAXKgdXluoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/+726P///////////////////////X68v9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//WageWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFqoHshbqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//u9uj///////////////////////1+vL/W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1unHsYAAAAAAAAAAAAAAAAAAAAAAAAAAFmlHyhbqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/7vbo///////////////////////9fry/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//XKkcJAAAAAAAAAAAAAAAAAAA + AABaqB6EW6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/+726P///////// + //////////////X68v9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1qo + H4EAAAAAAAAAAAAAAAAAAAAAW6gezluoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//u9uj///////////////////////1+vL/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9aqB/LAAAAAAAAAAAAAAAAXa4aE1qoH/1bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//dbZC//D36v///////////////////////////6nRif9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6cf/FqlHhEAAAAAAAAAAFumH1FbqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//dbZC//D36v////////////////////////////// + ////////qdGJ/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9apyBPAAAAAAAA + AABbpx+AW6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//dbZC//D36v////////////// + ///2+vP/1+rJ//////////////////////+p0Yn/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6cefgAAAAAAAAAAWqcepluoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//dbZC//D3 + 6v/////////////////2+vP/gLxS/1+qJP/N5bv//////////////////////6nRif9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1unH6QAAAAAAAAAAFuoHs5bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//dbZC//D36v/////////////////2+vP/gLxS/1uoH/9bqB//X6ok/83lu/////////////// + ////////qdGJ/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9aqB/LAAAAAAAAAABapx7hW6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//dbZC//D36v/////////////////2+vP/gLxS/1uoH/9bqB//W6gf/1uo + H/9fqiT/zeW7//////////////////////+p0Yn/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Wqce4QAA + AAAAAAAAW6ce8FuoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//dbZC//D36v/////////////////2+vP/gLxS/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1+qJP/N5bv//////////////////////6nRif9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1qnHu8AAAAAAAAAAFqoH/1bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//dbZC//D36v////////////// + ///2+vP/gLxS/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//X6ok/83lu/////////////// + ////////qdGJ/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bpx/8AAAAAAAAAABaqB/9W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9gqyb/q9KM/3a2RP9bqB//W6gf/1uoH/9bqB//dbZC//D3 + 6v/////////////////2+vP/gLxS/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9fqiT/zeW7//////////////////////+p0Yn/W6gf/1uoH/9bqB//W6gf/1+qJP+o0Yj/e7lL/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6cf/AAAAAAAAAAAW6ce8Fuo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//kMRn///////z+e7/erhJ/1uo + H/9bqB//dbZC//D36v/////////////////2+vP/gLxS/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1+qJP/N5bv//////////////////////6nRif9bqB//W6gf/1+q + JP/O5bz//////9Dmv/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1qn + Hu8AAAAAAAAAAFqnHuFbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/7PX + l/////////////P57v97uUr/dbZC//D36v/////////////////2+vP/gLxS/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//X6ok/83lu/////////////// + ////////qdGJ/1+qJP/O5bz////////////y+O3/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9apx7hAAAAAAAAAABbqB7OW6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH//W6cf/////////////////8/nu//D36v/////////////////2+vP/gLxS/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9fqiT/zeW7///////////////////////l8dv//////////////////////3K0P/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//WqgfywAAAAAAAAAAWqcepluoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9dqSL/9/v0//////////////////////////////////// + ///2+vP/gLxS/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1+qJP/N5bv///////////////////////////////////////// + //+Uxm3/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1unH6QAAAAAAAAAAFun + H4BbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//ebhH//////////////////// + ///////////////////2+vP/gLxS/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//X6ok/83lu/////////////// + ////////////////////////uNmd/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bpx5+AAAAAAAAAABapx9SW6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/5vK + dv//////////////////////////////////////8fjt/3m4SP9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/12p + Iv/E4K7//////////////////////////////////////9rszf9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//WqcgTwAAAAAAAAAAXa4aE1qoH/1bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/+/3af////////////////////////////////////////////x+O3/ebhI/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/12pIv/E4K7////////////////////////////////////////////6/Pj/X6ok/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6cf/FqlHhEAAAAAAAAAAAAAAABapx7QW6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//4e/W//////////////////////////////////// + //////////////H47f91tkP/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH//C36z///////////////////////////////////////// + /////////////3y5TP9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1unH8wAAAAAAAAAAAAA + AAAAAAAAWqgehVuoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Yqwp//3+/P////////////// + ////////////////////////////////////////ptCG/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9hqyj//P37//////////////////// + //////////////////////////////////+gzX3/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9aqB+CAAAAAAAAAAAAAAAAAAAAAF2nHylbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/4O9 + Vf//////////////////////////////////////8ffs/87lvP+r043/iMBc/16pI/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/3W2 + Qv+gzX3/w9+t/+by3f/+//7/////////////////////////////////wd6r/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//WaUbJQAAAAAAAAAAAAAAAAAAAAAAAAAAWqcfyluoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/+Wx3D////////////5/Pf/2evL/7bYnP+Uxmz/cLM8/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Za0t/4nAXf+r043/zuW8//H47f///////////9jq + yf9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//WqcexwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFqn + H2BbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Xqoj/5DEaP97uUv/Xqkj/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//cLM8/5PGa/91tkP/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1upHlwAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAA/vwAEW6ge31uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H90/vwAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFuoH2pbqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9apx5mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/vwAEWqcf01uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bpx7PP78ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAFunHT1bpx/+W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bpx/+XKceOgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW6cel1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gflAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGayGQpbqB7RW6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gezl+fHwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAWaUfKFunHvBbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6ce8F2nISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcph5CW6ce+VuoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6ce+VymHkIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFqoHlVbpx/8W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6cf/FumH1EAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAW6YeVFunHvhbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6ce+Fum + HlQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbpx5DWqce8luoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//Wqge8VqoH0EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFmlHyhapx/TW6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6cez12nISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAVKkcCVqnHphbpx/+W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bpx/+W6cel1+fHwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW6cdPVqnH9NbqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB7RWqgeOwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/vwAEWqYea1uo + Ht9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1qnH95bqCBnP78ABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABmmTMFW6kgX1unHslbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Wqcex1up + IF8/vwAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWaUfKFunHoZapx7QWqgf/Vuo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Wqgf/Vuo + Hs5aqB6EWaUfKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAF2uGhNapx9SW6cfgFunHqdapx/NW6ge4luoH+5bpx/+W6cf/luoH+5bqB7iWqcfzVun + Hqdbpx+AW6YfUV2uGhMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA//////////////8AAP//////+AAAH//////AAAAD/////wAAAAD////+AAAAAH////gAAAAA + H///8AAAAAAP///gAAAAAAf//8AAAAAAA///gAAAAAAB//8AAAAAAAD//gAAAAAAAH/8AAAAAAAAP/wA + AAAAAAA/+AAAAAAAAB/wAAAAAAAAD/AAAAAAAAAP4AAAAAAAAAfgAAAAAAAAB+AAAAAAAAAHwAAAAAAA + AAPAAAAAAAAAA8AAAAAAAAADgAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAYAA + AAAAAAABgAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABgAAAAAAA + AAGAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAHAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAPgAAAAAAAAB+AA + AAAAAAAH4AAAAAAAAAfwAAAAAAAAD/AAAAAAAAAP+AAAAAAAAB/8AAAAAAAAP/wAAAAAAAA//gAAAAAA + AH//AAAAAAAA//+AAAAAAAH//8AAAAAAA///4AAAAAAH///wAAAAAA////gAAAAAH////gAAAAB///// + AAAAAP/////AAAAD//////gAAB///////wAA//////////////8= + + + \ No newline at end of file diff --git a/Handler/Project/icons8-layers-30.ico b/Handler/Project/icons8-layers-30.ico new file mode 100644 index 0000000..058c52e Binary files /dev/null and b/Handler/Project/icons8-layers-30.ico differ diff --git a/Handler/Project/icons8-split-64.ico b/Handler/Project/icons8-split-64.ico new file mode 100644 index 0000000..4bd26bf Binary files /dev/null and b/Handler/Project/icons8-split-64.ico differ diff --git a/Handler/Project/libxl.dll b/Handler/Project/libxl.dll new file mode 100644 index 0000000..204a7e3 Binary files /dev/null and b/Handler/Project/libxl.dll differ diff --git a/Handler/Project/packages.config b/Handler/Project/packages.config new file mode 100644 index 0000000..64c82ff --- /dev/null +++ b/Handler/Project/packages.config @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Handler/Project/vCustomerList.cs b/Handler/Project/vCustomerList.cs new file mode 100644 index 0000000..e241867 --- /dev/null +++ b/Handler/Project/vCustomerList.cs @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 템플릿에서 생성되었습니다. +// +// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다. +// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다. +// +//------------------------------------------------------------------------------ + +namespace Project +{ + using System; + using System.Collections.Generic; + + public partial class vCustomerList + { + public string CustCode { get; set; } + public string CustName { get; set; } + } +} diff --git a/Handler/Project_form2/Class/AmkorReelID.cs b/Handler/Project_form2/Class/AmkorReelID.cs new file mode 100644 index 0000000..1ca83d0 --- /dev/null +++ b/Handler/Project_form2/Class/AmkorReelID.cs @@ -0,0 +1,187 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Project +{ + public static class AmkorReelID + { + /// + /// 앰코 ID형태인지 확인합니다. + /// + /// + /// + /// + /// + public static Boolean IsValidID(string rid, out string yy, out string m) + { + yy = string.Empty; + m = string.Empty; + if (rid.Length != 15) return false; + try + { + var custCost = rid.Substring(2, 4); + var site = "K" + rid.Substring(6, 1); + var mc = rid.Substring(7, 1); + yy = rid.Substring(8, 2); + m = rid.Substring(10, 1); + var sn = rid.Substring(11, 4); + return true; + } + catch + { + return false; + } + } + + public static string MakeReelID(string customercode, string ym) + { + if (customercode.Length != 4) + { + return String.Empty;// + //throw new Exception("Customer 코드는 4자리 입니다"); + } + if (ym.Length != 3) + { + return string.Empty;// + //throw new Exception("Ym 코드는 3자리 입니다"); + } + var rid = "RC{CUST}{DEVLOC}{DEVID}{YM}"; + rid = rid.Replace("{DEVLOC}", Pub.setting.ReelIdDeviceLoc); + rid = rid.Replace("{DEVID}", Pub.setting.ReelIdDeviceID); + rid = rid.Replace("{CUST}", customercode); + rid = rid.Replace("{YM}", ym); + rid += GetNextSNbyYM(ym); + return rid; + } + + + /// + /// 입력된 월 기준으로 시리얼 번호를 생성합니다 + /// + /// 21년 1월의 경우 211, 10월의 경우 21A 식으로 표현 + /// 1,2번 위치에 R기호를 제거 할 것인가? + /// + public static string GetNextSNbyYM(string ym) + { + //서버에서 자료를 조회해서 처리한다. + var db = new EEEntities(); + var dr = db.Component_Reel_Result.Where(t => t.PDATE == ym && t.PDATE.Contains("R") == false).OrderByDescending(t => t.RSN).FirstOrDefault(); + if (dr == null) return "0001"; //처음쓰는 자료인다. + var curSN = dr.RSN; + return GetNextSNbySN(curSN); + } + + /// + /// 해당월의 리턴릴의 번호를 생성한다 + /// + /// + /// + public static string GetNextSNbyYM_Return(string ym) + { + //서버에서 자료를 조회해서 처리한다. + var db = new EEEntities(); + var dr = db.Component_Reel_Result.Where(t => t.PDATE == ym && t.PDATE.StartsWith("R")).OrderByDescending(t => t.RSN).FirstOrDefault(); + if (dr == null) return "R001"; //처음쓰는 자료인다. + var curSN = dr.RSN; + return GetNextSNbySN_Return(curSN); + } + + /// + /// 중복릴의 다은번호를 생성한다 + /// + /// + /// + public static string GetNextSNbyYM_Dup(string ym) + { + //서버에서 자료를 조회해서 처리한다. + var db = new EEEntities(); + var dr = db.Component_Reel_Result.Where(t => t.PDATE == ym && t.PDATE.StartsWith("0R")).OrderByDescending(t => t.RSN).FirstOrDefault(); + if (dr == null) return "0R01"; //처음쓰는 자료인다. + var curSN = dr.RSN; + return GetNextSNbySN_Dup(curSN); + } + + /// + /// 입력한 시리얼 번호 이후의 번호를 생성합니다(0000~ZZZZ) 까지의 데이터를 가지며 2번쨰짜리까지는 R을 사용하지 못한다 + /// + /// 기준 시리얼번호 4자리 + /// + /// + public static string GetNextSNbySN(string sn) + { + //서버에서 자료를 조회해서 처리한다. + string curSN = sn; + if (sn.Length != 4) throw new Exception("s/n length 4"); + + var buffer = curSN.ToCharArray(); + for (int i = buffer.Length; i > 0; i--) + { + if (i <= 2) + if (buffer[i - 1] == 'Q') buffer[i - 1] = 'R'; + + if (buffer[i - 1] == '9') { buffer[i - 1] = 'A'; break; } + else if (buffer[i - 1] == 'Z') buffer[i - 1] = '0'; + else { buffer[i - 1] = (char)((byte)buffer[i - 1] + 1); break; } + } + return string.Join("", buffer); + } + + /// + /// 리턴릴의 다음 번호 생성 R로시작하며 000~ZZZ 영역을 가진다(제외문자 없음) + /// + /// + /// + public static string GetNextSNbySN_Return(string sn) + { + //서버에서 자료를 조회해서 처리한다. + string curSN = sn; + if (sn.Length != 4) throw new Exception("s/n length 4"); + + var buffer = curSN.ToCharArray(); + for (int i = buffer.Length; i > 1; i--) + { + //if (i <= 2) //1,2번 영역에는 R값이 들어가면 안된다. + //{ + // if (buffer[i - 1] == 'Q') buffer[i - 1] = 'R'; + //} + + if (buffer[i - 1] == '9') { buffer[i - 1] = 'A'; break; } + else if (buffer[i - 1] == 'Z') buffer[i - 1] = '0'; + else { buffer[i - 1] = (char)((byte)buffer[i - 1] + 1); break; } + } + buffer[0] = 'R'; + return string.Join("", buffer); + } + + /// + /// 중복릴의 다음 번호 생성(0R로 시작하며 00~ZZ의 영역을 가진다) + /// + /// + /// + public static string GetNextSNbySN_Dup(string sn) + { + //서버에서 자료를 조회해서 처리한다. + string curSN = sn; + if (sn.Length != 4) throw new Exception("s/n length 4"); + + var buffer = curSN.ToCharArray(); + for (int i = buffer.Length; i > 2; i--) + { + //if (i <= 2) //1,2번 영역에는 R값이 들어가면 안된다. + //{ + // if (buffer[i - 1] == 'Q') buffer[i - 1] = 'R'; + //} + + if (buffer[i - 1] == '9') { buffer[i - 1] = 'A'; break; } + else if (buffer[i - 1] == 'Z') buffer[i - 1] = '0'; + else { buffer[i - 1] = (char)((byte)buffer[i - 1] + 1); break; } + } + buffer[0] = '0'; + buffer[1] = 'R'; + return string.Join("", buffer); + } + } +} diff --git a/Handler/Project_form2/Class/CHistoryJOB.cs b/Handler/Project_form2/Class/CHistoryJOB.cs new file mode 100644 index 0000000..3fd3399 --- /dev/null +++ b/Handler/Project_form2/Class/CHistoryJOB.cs @@ -0,0 +1,168 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; + +namespace Project.Class +{ + + public class CHistoryJOB : INotifyPropertyChanged + { + public event PropertyChangedEventHandler PropertyChanged; + List _items; + public CHistoryJOB() + { + _items = new List(); + } + public void Clear() + { + lock (_items) + { + _items.Clear(); + } + + OnPropertyChanged("Clear"); + } + public int Count + { + get + { + lock (_items) + { + return _items.Count; + } + } + } + public void SetItems(List value) + { + lock (_items) + { + this._items = value; + } + OnPropertyChanged("REFRESH"); + } + + public List Items { get { return _items; } } + public void Add(JobData data) + { + lock (_items) + { + data.No = this._items.Count + 1; + _items.Add(data); + } + + OnPropertyChanged("Add:" + data.guid); + } + + public void Remove(JobData data) + { + lock (_items) + { + _items.Remove(data); + } + + OnPropertyChanged("Remove:" + data.guid); + } + public void Remove(string guid) + { + lock (_items) + { + var data = Get(guid); + _items.Remove(data); + } + OnPropertyChanged("Remove:" + guid); + } + public JobData Get(string guid) + { + lock (_items) + { + return _items.Where(t => t.guid == guid).FirstOrDefault(); + } + } + public void Set(JobData data) + { + var item = Get(data.guid); + if (item == null) throw new Exception("No data guid:" + data.guid.ToString()); + else + { + //item.No = data.No; + //item.JobStart = data.JobStart; + //item.JobEnd = data.JobEnd; + //item.VisionData = data.VisionData; + //item.error = data.error; + //item.Message = data.Message; + OnPropertyChanged("Set:" + data.guid); + } + } + public void RaiseSetEvent(string guid) + { + OnPropertyChanged("Set:" + guid); + } + + protected void OnPropertyChanged([CallerMemberName] string name = null) + { + if (PropertyChanged != null) + PropertyChanged.Invoke(this, new PropertyChangedEventArgs(name)); + } + } + //[Serializable] + //public class JobData + //{ + // //고유식별자 + // public string guid { get; private set; } + + // //비젼처리값 + // public Class.VisionData VisionData { get; set; } + + // //언로더포트(L/R) + // public string PortPos { get; set; } + + // //프린트위치(U/LO) + // public string PrintPos { get; set; } + + // //작업시작시간 + // public DateTime JobStart { get; set; } + + // //작업종료시간 + // public DateTime JobEnd { get; set; } + + // /// + // /// 이전 출고되는 시점과의 시간차 값 + // /// + // public double TackTime { get { return (JobEnd - JobStart).TotalSeconds; } } + + // //작업순서 + // public int No { get; set; } + + // //오류상태 + // public eJobResult error { get; set; } + + // //메세지 + // public string message { get; set; } + + + // public TimeSpan JobRun + // { + // get + // { + // if (JobEnd.Year == 1982) return new TimeSpan(0); + // else return this.JobEnd - this.JobStart; + // } + // } + // public JobData() + // { + // this.No = 0; + // PortPos = string.Empty; + // PrintPos = string.Empty; + // guid = Guid.NewGuid().ToString(); + // VisionData = new VisionData(); + // this.JobStart = new DateTime(1982, 11, 23); // DateTime.Parse("1982-11-23"); + // this.JobEnd = new DateTime(1982, 11, 23); // DateTime.Parse("1982-11-23"); + // error = eJobResult.None; + // message = string.Empty; + // } + + //} +} diff --git a/Handler/Project_form2/Class/CHistorySIDRef.cs b/Handler/Project_form2/Class/CHistorySIDRef.cs new file mode 100644 index 0000000..d6fd0e3 --- /dev/null +++ b/Handler/Project_form2/Class/CHistorySIDRef.cs @@ -0,0 +1,134 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; + +namespace Project.Class +{ + public class CHistorySIDRef : INotifyPropertyChanged + { + public event PropertyChangedEventHandler PropertyChanged; + public Boolean JobSIDRecvError + { + get + { + //아이템이있어야 정상이다 + if (_items == null || _items.Count < 1) return true; + else if (JobSIDRecvTime.Year == 1982) return true; + else return false; + } + } + public DateTime JobSIDRecvTime { get; set; } + public string JobSIDRecvMessage { get; set; } + List _items; + + public CHistorySIDRef() + { + Clear(); + } + public void SetItems(List value) + { + this._items = value; + OnPropertyChanged("REFRESH"); + } + + public List Items { get { return _items; } } + public int Count + { + get + { + return _items.Count; + } + } + public SIDDataRef Get(string sid_) + { + return _items.Where(t => t.sid == sid_).FirstOrDefault(); + } + public void Set(SIDDataRef data) + { + var item = Get(data.sid); + if (item == null) throw new Exception("No data sid:" + data.sid.ToString()); + else + { + item.kpc = data.kpc; + item.unit = data.unit; + OnPropertyChanged("Set:" + data.sid); + } + } + + public void Set(string sid, int kpc, string unit) + { + var item = Get(sid); + if (item == null) + { + Add(sid, kpc, unit); //없다면 추가해준다 + } + else + { + item.kpc = kpc; + item.unit = unit; + OnPropertyChanged("Set:" + sid); + } + } + + public void Add(SIDDataRef data) + { + _items.Add(data); + OnPropertyChanged("Add:" + data.sid); + } + + + public void Add(string sid, int kpc_, string unit) + { + if (string.IsNullOrEmpty(sid)) + { + Pub.log.AddAT("SID 추가 실패 SID 값이 입력되지 않았습니다"); + return; + } + //if (JobSidList.ContainsKey(sid) == false) + _items.Add(new SIDDataRef(sid, kpc_, unit)); + OnPropertyChanged("Add:" + sid); + //else + //{ + //이미 데이터가 있다. 중복이므로 누적한다 + //JobSidList.TryGetValue() + //} + } + public void Clear() + { + //JobSIDRecvError = false; + JobSIDRecvMessage = string.Empty; + JobSIDRecvTime = DateTime.Parse("1982-11-23"); + if (this._items == null) this._items = new List(); + else this._items.Clear(); + OnPropertyChanged("Clear"); + } + + protected void OnPropertyChanged([CallerMemberName] string name = null) + { + if (PropertyChanged != null) + PropertyChanged.Invoke(this, new PropertyChangedEventArgs(name)); + } + } + + [Serializable] + public class SIDDataRef + { + public string guid { get; set; } + public string sid { get; set; } + public string unit { get; set; } + public int kpc { get; set; } + + public SIDDataRef(string sid_, int kpc_, string unit_) + { + + guid = Guid.NewGuid().ToString(); + sid = sid_; + unit = unit_; + kpc = kpc_; + } + public SIDDataRef() : this(string.Empty, 0, string.Empty) { } + } +} diff --git a/Handler/Project_form2/Class/CResult.cs b/Handler/Project_form2/Class/CResult.cs new file mode 100644 index 0000000..3383cc1 --- /dev/null +++ b/Handler/Project_form2/Class/CResult.cs @@ -0,0 +1,572 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + + +namespace Project +{ + public class CCustRule + { + public void Clear() + { + Code = string.Empty; + } + public string Code { get; set; } + public string Name { get; set; } + public int Len { get; set; } + public string Pre { get; set; } + public string Post { get; set; } + public string Expression { get; set; } + + public Boolean isValid + { + get + { + return string.IsNullOrEmpty(Code) == false && Code.Equals("000") == false; + } + } + } + + public class CResult + { + public enum eInspectResult + { + NG = 0, + OK, + ERROR, + NOTSET = 9, + } + + public DateTime ResetButtonDownTime = DateTime.Now; + //public Class.VisionData[] VisionData = new Class.VisionData[3]; + public Boolean ClearAllSID = false; + //public Class.CHistoryJOB JObHistory; + public Class.CHistorySIDRef SIDReference; //SIDLIST받은 내역 + public List OUTHistory; //출고포트 처리내역 + public DataSet1.SIDHistoryDataTable SIDHistory; //sID별 rid 전체 목록 차수별로만 저장된다 + + public DSList dsList; + + public ModelInfoM mModel; //모션 모델 + public ModelInfoV vModel; //작업 모델 + + /// + /// 아이템의 정보가 담겨있다 (0:왼쪽,1:비젼,2:오른쪽) + /// + public Class.JobData[] ItemData = new Class.JobData[3]; + public string JobType2 = string.Empty; + public Boolean JobFirst = false; + public List CustomerRule = new List(); + + public Boolean DryRun + { + get + { + if (string.IsNullOrEmpty(JobType2)) return false; + else return JobType2.ToUpper() == "DRY"; + } + } + + + public int OverLoadCountF { get; set; } + public int OverLoadCountR { get; set; } + + public UIControl.CItem UnloaderItem = null; + public DateTime LastExtInputTime = DateTime.Parse("1982-11-23"); + public DateTime LastOutTime = DateTime.Parse("1982-11-23"); + + public Single[] PortAlignWaitSec = new float[] { 0, 0, 0, 0 }; + public long[] PortAlignTime = new long[] { 0, 0, 0, 0 }; + + public byte UnloaderSeq = 0; + public DateTime UnloaderSeqTime; + public DateTime UnloaderSendtime = DateTime.Parse("1982-11-23"); + + + + //작업옵션처리 210121 + public Boolean Option_Confirm1 = false; + public Boolean Option_QtyUpdate1 = false; + public Boolean Option_QtyUpdateM = false; + public Boolean Option_partUpdate = false; + public Boolean Option_AutoConf = false; + //public string Option_PrintPos1 = ""; + public Boolean Option_vname = false; + public Boolean Option_NewReelID = false; + //public bool Option_Dryrun = false; + + //public Boolean Option_Confirm3 = false; + //public Boolean Option_QtyUpdate3 = false; + //public Boolean Option_FixPrint3 = false; + //public Boolean Option_printforce3 = false; + //public string Option_PrintPos3 = ""; + + + /// + /// 로딩에 사용하는 포트번호 (자동 판단됨) + /// + public int LoadPortIndex = -1; + + /// + /// 로딩시에 사용한 포트의 번호(이 값으로 수량기록 위치를 결정) + /// + public int LoadPickIndex = -1; + + /// + /// 최종 할당된 언로딩 포트번호(1~8) + /// + public int UnloadPortNo = -1; + public byte LiveViewseq = 0; + public string AcceptBcd = string.Empty; + public DateTime AcceptBcdTime = DateTime.Now; + public string AcceptSid = string.Empty; + + //작업정보 + public eInspectResult Result; //작업결과가 저장됨 + public eResult ResultCode; + public string ResultMessage; + + public string LastSIDFrom = string.Empty;//101 = string.Empty; + public string LastSIDTo = string.Empty; // 103 = string.Empty; + //public string LastSID103_2 = string.Empty; + public string LastVName = string.Empty; + public int LastSIDCnt = 0; + + + + //작업정보(시간) + public DateTime JobStartTime; + public DateTime JobEndTime; + public TimeSpan JobRunTime() + { + if (JobStartTime.Year == 1982) return new TimeSpan(0); + if (JobEndTime.Year == 1982) return DateTime.Now - JobStartTime; + else return JobEndTime - JobStartTime; + } + + /// + /// RUN -> Pause(Wait Start)모드 전환시 저장할 모터의 위치값 + /// 조그모드등으로 좌표를 옴길때의 기준 좌표 + /// 이 좌표값에서 현재 모션값에 변화가 있으면 프로그램에서는 오류로 처리하게 됨 + /// + public double[] PreventMotionPosition = new double[8]; + + #region "SetResultMessage" + + public void SetResultMessage(eResult code, eECode err, eNextStep systempause, params object[] args) + { + var msg = getResultCodeMessage(code) + " ERROR\n" + getErrorMessage(code, err, args); + SetResultMessage(code, msg, systempause); + } + + private void SetResultMessage(eResult code, string msg, eNextStep systemPause) + { + this.ResultCode = code; + this.ResultMessage = msg; + if (systemPause == eNextStep.pauseNoMessage) this.ResultMessage = string.Empty; //210129 + Pub.log.AddE(msg); + if (systemPause == eNextStep.pause) Pub.sm.setNewStep(StateMachine.eSMStep.PAUSE); + else if (systemPause == eNextStep.pauseNoMessage) Pub.sm.setNewStep(StateMachine.eSMStep.PAUSE); + else if (systemPause == eNextStep.error) Pub.sm.setNewStep(StateMachine.eSMStep.ERROR); + } + + //public void SetResultTimeOutMessage(StateMachine.eSMStep step, eNextStep systemPause) + //{ + // SetResultMessage(eResult.TIMEOUT, eECode.timeout_step, systemPause, step); + //} + public void SetResultTimeOutMessage(eDOName pinName, Boolean checkState, eNextStep systemPause) + { + if (checkState) SetResultMessage(eResult.SENSOR, eECode.doon, systemPause, pinName); + else SetResultMessage(eResult.SENSOR, eECode.dooff, systemPause, pinName); + } + public void SetResultTimeOutMessage(eDIName pinName, Boolean checkState, eNextStep systemPause) + { + if (checkState) SetResultMessage(eResult.SENSOR, eECode.dion, systemPause, pinName); + else SetResultMessage(eResult.SENSOR, eECode.dioff, systemPause, pinName); + } + public void SetResultTimeOutMessage(eAxis motAxis, eECode ecode, eNextStep systemPause, string source) + { + SetResultMessage(eResult.TIMEOUT, ecode, systemPause, motAxis, source); + } + public void SetResultTimeOutMessage(eECode ecode, eNextStep systemPause, params object[] args) + { + SetResultMessage(eResult.TIMEOUT, ecode, systemPause, args); + } + #endregion + + public DateTime[,] diCheckTime = new DateTime[2, 64]; + public DateTime[,] doCheckTime = new DateTime[2, 64]; + + public Boolean isError { get; set; } + // public Boolean isMarkingMode { get; set; } + + public int retry = 0; + public DateTime retryTime; + public DateTime[] WaitForVar = new DateTime[255]; + public int JoystickAxisGroup = 0; + + public int ABCount = 0; + + + public CResult() + { + mModel = new ModelInfoM(); + vModel = new ModelInfoV(); + + SIDReference = new Class.CHistorySIDRef(); + SIDHistory = new DataSet1.SIDHistoryDataTable(); + //JObHistory = new Class.CHistoryJOB(); + + OUTHistory = new List(); + + this.Clear(); + + dsList = new DSList(); + LoadListDB(); + } + + public void SaveListDB() + { + var finame = System.IO.Path.Combine(Util.CurrentPath, "Data", "SavaedList.xml"); + var fi = new System.IO.FileInfo(finame); + if (fi.Directory.Exists == false) fi.Directory.Create(); + this.dsList.WriteXml(fi.FullName); + Pub.log.Add("사전목록DB를 저장 했습니다" + fi.FullName); + } + + public void LoadListDB() + { + var finame = System.IO.Path.Combine(Util.CurrentPath, "Data", "SavaedList.xml"); + var fi = new System.IO.FileInfo(finame); + if (fi.Directory.Exists == false) fi.Directory.Create(); + if (fi.Exists) + { + this.dsList.ReadXml(fi.FullName); + Pub.log.Add("사전목록DB를 불러왔습니다" + fi.FullName); + } + } + + /// + /// 입력한 sid 가 원본에 존재하지 않으면 -1을 존재하면 입력된 수량을 반환합니다 + /// + /// + /// + public int ExistSIDReferenceCheck(string sid) + { + var dr = Pub.Result.SIDReference.Items.Where(t => t.sid.EndsWith(sid)).FirstOrDefault(); + if (dr == null) return -1; + else return dr.kpc; + } + + + public void ClearHistory() + { + + //this.JObHistory.Clear(); + this.SIDReference.Clear(); + Pub.log.AddI("Clear History"); + } + + + public void ClearOutPort() + { + OUTHistory.Clear(); + } + + public void Clear() + { + //this.JObHistory.Clear(); + this.ItemData = new Class.JobData[3]; + for (int i = 0; i < ItemData.Length; i++) + { + ItemData[i] = new Class.JobData(i); + } + JobFirst = true; + OverLoadCountF = 0; + OverLoadCountR = 0; + ClearOutPort(); + + LoadPortIndex = -1; + + Pub.ClearRunStepSeqTime(); + + isError = false; + ABCount = 0; + ///기다림용 변수모듬 + for (int i = 0; i < WaitForVar.Length; i++) + WaitForVar[i] = DateTime.Parse("1982-11-23"); + + //조그모드시 모션이동 감지용 저장 변수 + for (int i = 0; i < 6; i++) + PreventMotionPosition[i] = 0.0; + + JobStartTime = DateTime.Parse("1982-11-23"); + JobEndTime = DateTime.Parse("1982-11-23"); + LastOutTime = DateTime.Parse("1982-11-23"); + + Result = eInspectResult.NOTSET; + ResultCode = eResult.NOERROR; + ResultMessage = string.Empty; + + //시간정보값을 초기화함 + for (int i = 0; i < 2; i++) + ClearTime(i); + + Pub.log.Add("Result 데이터 초기화"); + } + + + public void ClearTime(int shutIdx) + { + JobStartTime = DateTime.Parse("1982-11-23"); + JobEndTime = DateTime.Parse("1982-11-23"); + + Result = eInspectResult.NOTSET; + ResultCode = eResult.NOERROR; + ResultMessage = string.Empty; + + Pub.log.Add("Result(Clear Time)"); + } + + public Boolean isSetmModel + { + get + { + if (Pub.Result.mModel == null || Pub.Result.mModel.idx == -1 || Pub.Result.mModel.Title.isEmpty()) + return false; + else return true; + } + + } + public Boolean isSetvModel + { + get + { + if (Pub.Result.vModel == null || Pub.Result.vModel.idx == -1 || Pub.Result.vModel.Title.isEmpty()) + return false; + else return true; + } + + } + public string getErrorMessage(eResult rlt, eECode err, params object[] args) + { + switch (err) + { + + case eECode.DOORF: + return string.Format("전면 도어가 열렸습니다"); + case eECode.DOORR: + return string.Format("후면 도어가 열렸습니다"); + case eECode.SIDERR101: + return string.Format("현재 작업 형태와 SID값이 일치하지 않습니다\nSID:{0}\n작업형태:{1}\n101 SID작업 입니다.", args); + case eECode.SIDERR106: + return string.Format("현재 작업 형태와 SID값이 일치하지 않습니다\nSID:{0}\n작업형태:{1}\n106 SID작업 입니다.", args); + case eECode.SIDERR103: + return string.Format("현재 작업 형태와 SID값이 일치하지 않습니다\nSID:{0}\n작업형태:{1}\n103 SID작업 입니다.", args); + case eECode.RIDDUPL: + return string.Format( + "좌측 언로더에 사용되었던 REEL ID 입니다\n" + + "바코드 오류 가능성이 있습니다\n" + + "좌측 릴의 바코드를 확인하시기 바랍니다\n" + + "작업을 계속할 수 없습니다. 취소 후 다시 시도하세요\n{0}", args); + + + case eECode.RIDDUPR: + return string.Format( + "우측 언로더에 사용되었던 REEL ID 입니다\n" + + "바코드 오류 가능성이 있습니다\n" + + "우측 릴의 바코드를 확인하시기 바랍니다\n" + + "작업을 계속할 수 없습니다. 취소 후 다시 시도하세요\n{0}", args); + + case eECode.BARCODEVALIDERR: + return string.Format("바코드 데이터 검증 실패\n" + + "인쇄전 데이터와 인쇄후 데이터가 일치하지 않습니다\n" + + "ID(O) : {1}\n" + + "ID(N) : {2}\n" + + "SID : {5}->{6}\n" + + "QTY : {3}->{4}\n" + + "DATE : {7}->{8}\n" + + "Index : {0}", args); + + case eECode.MOTX_SAFETY: + return string.Format("PICKER-X 축이 안전위치에 없습니다\n1. 조그를 이용하여 중앙으로 이동 합니다\n2.홈 작업을 다시 실행합니다", args); + case eECode.noerror: + return string.Format("오류가 없습니다", args); + + case eECode.portoverload: + return string.Format("PORT OVERLOAD\n위치 : {0}\n" + + "너무 많은 양이 적재 되었습니다\n" + "상단 LIMIT 센서에 걸리지 않게 적재하세요", args); + case eECode.emergency: + return string.Format("비상정지 버튼을 확인하세요\n" + + "버튼 : F{0}\n" + + "메인전원이 OFF 된 경우에도 이 메세지가 표시 됩니다\n" + + "메인전원은 모니터 하단 AIR버튼 좌측에 있습니다" + , Util_DO.GetIOInput(eDIName.BUT_EMGF)); + case eECode.nomodelm: + return "모션모델이 선택되지 않았습니다\n" + + "상단 메뉴 [모션모델]에서 사용할 모델을 선택하세요"; + case eECode.nomodelv: + return "작업모델이 선택되지 않았습니다\n" + + "상단 메뉴 [작업모델]에서 사용할 모델을 선택하세요"; + + case eECode.CARTERROR: + return string.Format("언로더 카트가 없거나 크기 정보가 일치하지 않습니다\n좌측:{0}, 로더:{1}, 우측:{2}", args); + case eECode.CARTL: + return string.Format("왼쪽(UNLOAD) 포트에 카트가 감지되지 않습니다\n카트를 장착하세요\n카트크기 : {0}, 릴크기:{1}", args); + case eECode.CARTC: + return string.Format("중앙(LOAD) 포트에 카트가 감지되지 않습니다\n카트를 장착하세요\n카트크기 : {0}, 릴크기:{1}", args); + case eECode.CARTR: + return string.Format("오른쪽(UNLOAD) 포트에 카트가 감지되지 않습니다\n카트를 장착하세요\n카트크기 : {0}, 릴크기:{1}", args); + + case eECode.CARTLMATCH: + return string.Format("왼쪽(UNLOAD) 카트와 피커의 릴 크기가 일치하지 않습니다\n카트크기를 확인 하세요\n카트크기 : {0}, 릴크기:{1}", args); + case eECode.CARTCMATCH: + return string.Format("중앙(LOAD) 카트와 피커의 릴 크기가 일치하지 않습니다\n카트크기를 확인 하세요\n카트크기 : {0}, 릴크기:{1}", args); + case eECode.CARTRMATCH: + return string.Format("오른쪽(UNLOAD) 카트와 피커의 릴 크기가 일치하지 않습니다\n카트크기를 확인 하세요\n카트크기 : {0}, 릴크기:{1}", args); + + + case eECode.NOREELSIZEL: + return string.Format("왼쪽포트에 놓을 릴의 크기정보가 없습니다\n프로그램 오류입니다\n개발자에게 해당 메세지를 전달하세요\n" + + "장치 초기화를 진행 한 후 다시 시도하세요"); + + case eECode.NOREELSIZER: + return string.Format("오른쪽포트에 놓을 릴의 크기정보가 없습니다\n프로그램 오류입니다\n개발자에게 해당 메세지를 전달하세요\n" + + "장치 초기화를 진행 한 후 다시 시도하세요"); + + case eECode.CAM_CONN: + return string.Format("카메라({0}) 연결 안됨", args); + + case eECode.EVISION_CONN: + return string.Format("E-Vision USB Dongle Error", args); + case eECode.CAM_NOBARCODEL: + return string.Format("로더 바코드 필수값을 읽지 못했습니다", args); + case eECode.CAM_NOBARCODEU: + return string.Format("언로더({0}) 바코드를 읽지 못했습니다", args); + case eECode.HOME_TIMEOUT: + return string.Format("홈 진행이 완료되지 않고 있습니다\n" + + "오류가 발생했다면 '홈' 작업을 다시 진행하세요\n" + + "대기시간 : {0}초", args); + + case eECode.PICKOVL: + return string.Format("피커({0})에서 오버로드가 감지되었습니다\n" + + "센서및 포트의 적재 상태를 확인한 후 다시 시도하세요", args); + + case eECode.saftyport: + return string.Format("포트 안전센서가 감지 되었습니다\n" + + "안전센서를 확인한 후 다시 시도하세요\n", args); + + case eECode.airnoout: + return "AIR 공급이 차단 되어 있습니다.\n" + + "전면의 AIR 버튼을 누르세요\n" + + "공급이 되지 않으면 메인 전원 을 확인하세요\n" + + "메인 전원은 AIR 버튼 좌측에 있습니다" + + "메인 전원 공급 실패시 장비 후면의 차단기를 확인하세요"; + + + case eECode.dooff: + var pinoOf = (eDOName)args[0]; + return string.Format("출력이 OFF 되지 않았습니다.\n" + + "포트설명 : {0}\n" + + "포트번호 : {1} ({2})", Util_DO.getPinDescription(pinoOf), (int)pinoOf, Enum.GetName(typeof(eDOPin), pinoOf)); + case eECode.doon: + var pinoOn = (eDOName)args[0]; + return string.Format("출력이 ON 되지 않았습니다.\n" + + "포트설명 : {0}\n" + + "포트번호 : {1} ({2})", Util_DO.getPinDescription(pinoOn), (int)pinoOn, Enum.GetName(typeof(eDOPin), pinoOn)); + case eECode.dioff: + var piniOf = (eDIName)args[0]; + return string.Format("입력이 OFF 되지 않았습니다.\n" + + "포트설명 : {0}\n" + + "포트번호 : {1} ({2})", Util_DO.getPinDescription(piniOf), (int)piniOf, Enum.GetName(typeof(eDIPin), piniOf)); + case eECode.dion: + var piniOn = (eDIName)args[0]; + return string.Format("입력이 ON 되지 않았습니다.\n" + + "포트설명 : {0}\n" + + "포트번호 : {1} ({2})", Util_DO.getPinDescription(piniOn), (int)piniOn, Enum.GetName(typeof(eDIPin), piniOn)); + + case eECode.azininit: + return string.Format("DIO 혹은 모션카드가 초기화 되지 않았습니다.\n" + + "DIO : {0}\n" + + "MOTION : {1}\n" + + "해당 카드는 본체 내부 PCI 슬롯에 장착 된 장비 입니다\n" + + "EzConfig AXT 프로그램으로 카드 상태를 확인하세요", + Pub.dio.IsInit, Pub.mot.IsInit); + + + case eECode.MOT_INIT: + return string.Format("모션카드가 초기화 되지 않았습니다\n" + + "아진엑스텍 프로그램을 통해서 보드를 확인하세요\n" + + "PC를 재부팅한 후 재시도 하세요", args); + + case eECode.MOT_HSET: + var msg = "모션의 HOME 검색이 완료되지 않았습니다"; + for (int i = 0; i < 6; i++) + { + if (Pub.mot.isUse[i] == false) continue; + var axis = (eAxis)i; + var stat = Pub.mot.isHomeSet[i]; + if (stat == false) msg += string.Format("\n[{0}] {1} : {2}", i, axis, stat); + } + msg += "\n장치 초기화를 실행하세요"; + return msg; + case eECode.MOT_SVOFF: + var msgsv = "모션 중 SERVO-OFF 된 축이 있습니다"; + for (int i = 0; i < 6; i++) + { + if (Pub.mot.isUse[i] == false) continue; + var axis = (eAxis)i; + var stat = Pub.mot.isSERVOON[i]; + if (stat == false) msgsv += string.Format("\n[{0}] {1} : {2}", i, axis, stat); + } + msgsv += "\nRESET을 누른 후 '모션설정' 화면에서 확인합니다"; + return msgsv; + case eECode.MOT_HSEARCH: + return string.Format("모션의 홈 검색이 실패되었습니다\n" + + "축 : {0}\n" + + "메세지 : {1}", args); + + case eECode.MOT_CMD: + var axisNo = (int)((eAxis)args[0]); + var axisSrc = args[1].ToString(); + return string.Format("모션축 명령이 실패 되었습니다\n축 : {0}\n" + + "현재위치 : {2}\n" + + "명령위치 : {3}\n" + + "소스 : {1}", axisNo, axisSrc, Pub.mot.dACTPOS[axisNo], Pub.mot.dCMDPOS[axisNo]); + + case eECode.MNBR: + return string.Format("MNBR 값이 없습니다\n" + + "환경설정에서 MNBR 값을 입력하세요", args); + + //case eECode.timeout_step: + // return string.Format("스텝당 최대 실행 시간이 초과 되었습니다.\n" + + // "스텝 : {0}\n" + + // "최대동작시간 : " + Pub.setting.Timeout_StepMaxTime.ToString(), args); + + + case eECode.USER_STOP: + return "'일시정지' 버튼 눌림\n" + + "사용자에 의해 작동이 중지 되었습니다\n" + + "'RESET' -> 'START'로 작업을 계속할 수 있습니다"; + + case eECode.CAM_RIGHT: + return "우측카메라가 사용가능한 상태가 아닙니다.\n" + + "신규 실행시에는 초기화 완료까지 기다려 주세요"; + case eECode.CAM_LEFT: + return "좌측카메라가 사용가능한 상태가 아닙니다.\n" + + "신규 실행시에는 초기화 완료까지 기다려 주세요"; + default: + return err.ToString(); + } + + } + public string getResultCodeMessage(eResult rltCode) + { + //별도 메세지처리없이 그대로 노출한다 + return rltCode.ToString().ToUpper(); + } + + } + +} diff --git a/Handler/Project_form2/Class/EnumData.cs b/Handler/Project_form2/Class/EnumData.cs new file mode 100644 index 0000000..f74e0b1 --- /dev/null +++ b/Handler/Project_form2/Class/EnumData.cs @@ -0,0 +1,1009 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; + +namespace Project +{ + public enum eWaitMessage + { + PX = 0, + PZ, + LMOVE, + LUPDN, + RMOVE, + RUPDN, + LPRINT, + RPRINT, + VIS0, + VIS1, + VIS2, + } + //public enum eJobResult + //{ + // None = 0, + // Error, + // ErrorOut, + // MaxCount, + // NotExistSID, + // DisableUnloader, + // MatchFail, + // NoBarcode + //} + public enum eCartSize + { + None = 0, + Inch7 = 7, + Inch13 = 13 + } + + public enum ePrintPutPos + { + None = 0, + Top, + Middle, + Bottom, + } + + public enum ePrintVac + { + inhalation = 0, + exhaust, + off, + } + + public enum eFlag + { + RDY_CAMERA_L = 0, + RDY_CAMERA_R, + INIT_MOTIO, + //INIT_LICENSE, + INIT_PRINTER, + + PORT0_ENDDOWN, + PORT1_ENDDOWN, + PORT2_ENDDOWN, + + WAIT_PAPERDETECTL, + WAIT_PAPERDETECTR, + + /// + /// 프린터Z(상하)축의 ON/OFF 플래그 + /// + RUN_PLZ_PICKON, + RUN_PRZ_PICKON, + RUN_PLZ_PICKOF, + RUN_PRZ_PICKOF, + + /// + /// 프린터Y(이동)축의 ON/OFF 플래그 + /// + RUN_PLM_PICKON, + RUN_PLM_PICKOF, + RUN_PRM_PICKON, + RUN_PRM_PICKOF, + + /// + /// 이값이 설정되면 프린트시에 상단좌표값으로 이동합니다. + /// + //PRL_PUTPOSITIONH, + /// + /// 이값이 설정되면 프린트시에 상단좌표값으로 이동합니다. + /// + //PRR_PUTPOSITIONH, + + WAT_MAGNET0, + WAT_MAGNET1, + WAT_MAGNET2, + + RDY_VISION0, + RDY_VISION1, + RDY_VISION2, + + END_VISION0, + END_VISION1, + END_VISION2, + + /// + /// 비젼을 처리완료 했는가 + /// + PRC_VISION0, + PRC_VISION1, + PRC_VISION2, + + MOVE_PICKER, + JOYSTICK, + + /// + /// Y축이 Front로 가지러 가기로 함 + /// + CMD_YP_LPICKON, + CMD_YP_LPICKOF, + CMD_YP_RPICKON, + CMD_YP_RPICKOF, + + //피커의 X축이 일을 하러 갔는가? + RDY_PX_PICKON, + RDY_PX_PICKONWAITL, + RDY_PX_PICKONWAITR, + RDY_PX_LPICKOF, + RDY_PX_RPICKOF, + + //X축이 이동한후 해당 언로더에 자료를 셋팅했는가? + SET_DATA_PORT0, + SET_DATA_PORT2, + + RDY_PZ_PICKON, + RDY_PZ_LPICKOF, + RDY_PZ_RPICKOF, + + RUN_PRINTL, + RUN_PRINTR, + + OK_PRINTL, + OK_PRINTR, + + /// + /// 해당 포트의 자재 준비여부 + /// + RDY_PORT_PL, + RDY_PORT_PC, + RDY_PORT_PR, + + + + /// + /// 자재를 PICK 했다 + /// + PK_ITEMON, + PL_ITEMON, + PR_ITEMON, + + /// + /// 포트에 아이템이 있는가? + /// 1번의 경우 Detect 센서가 들어오면 ItemON 설정을 한다. + /// 0,2번의 경우 피커가 아이템을 놓을때 설정한다 + /// 실제로는 ITEMON 과 Align =1, 일때 촬영이가능하게한다 + /// + PORTL_ITEMON, + PORTR_ITEMON, + + WAIT_LOADERINFO, + /// + /// 작업시작화면 + /// + SCR_JOBSELECT, + /// + /// 작업종료화면 + /// + //SCR_JOBFINISH, + /// + /// 작업완료 + /// + JOB_END, + + UserStepCheck, + MINSPACE, + DEBUG, + //RUN_INIT, + } + + public enum eRunSequence + { + COMMON = 0, + PICKERZ, + PRINTL, + PRINTR, + PRINTLZ, + PRINTRZ, + VISION0, + VISION1, + VISION2, + + //common timevalue + COM_PKX, + COM_PKZ, + COM_PLM, + COM_PLZ, + COM_PRM, + COM_PRZ, + COM_PT0, + COM_PT1, + COM_PT2, + COM_VS0, + COM_VS1, + COM_VS2, + COM_PRL, + COM_PRR, + } + + public enum eJobType : byte + { + Sorter = 0, + Dryrun, + } + + public enum eHeaderHandler + { + Ping = 0, + RequestData, + RequstSeqNo, + RequstInputReel, + JobEnd, + JobDelete, + } + public struct sVisionDMResult + { + public Boolean iSystemErr { get; set; } + public Boolean isError { get; set; } + public string DM { get; set; } + public System.Drawing.Rectangle ROS { get; set; } + + public System.Drawing.PointF DMCenter { get; set; } + public List DMCorner { get; set; } + public string DMMessage { get; set; } + } + public struct sObjectDetectResult + { + public string Message { get; set; } + public List Rect { get; set; } + public List Areas { get; set; } + public Boolean OK + { + get + { + if (Areas == null || Areas.Count < 1) return false; + else return true; + } + } + } + + public enum ePickZPosition + { + UNKNOWN = 0, + READY, + PICKON, + PICKOFFL, + PICKOFFR, + DROP, + LIMITP, + LIMITN, + HOME, + ERROR, + } + + public enum ePickYPosition + { + UNKNOWN = 0, + READYL, + READYR, + PICKON, + PICKOFFL, + PICKOFFR, + LIMITP, + LIMITN, + HOME, + ERROR, + } + public enum ePrintYPosition + { + UNKNOWN = 0, + READY, + //Pick, + PRINTH07, + PRINTL07, + PRINTM07, //중간위치추가 210205 + + PRINTH13, + PRINTL13, + PRINTM13, //중간위치추가 210205 + + LIMITP, + LIMITN, + HOME, + ERROR, + } + + public enum ePrintZPosition + { + UNKNOWN = 0, + READY, + PICKON, + PICKOFF, + LIMITP, + LIMITN, + HOME, + ERROR, + } + + public enum eThetaPosition + { + UNKNOWN = 0, + READY, + LIMITP, + LIMITN, + HOME, + ERROR, + } + + /// + /// 모션 축 정보 + /// + public enum eAxis : byte + { + X_PICKER = 0, + Z_PICKER, + PL_MOVE, + PL_UPDN, + PR_MOVE, + PR_UPDN, + Z_THETA, + } + + public enum eAxisPXPos : byte + { + READYL = 0, + READYR, + PICKON, + PICKOFFL, + PICKOFFR, + } + + public enum eAxisPZPos : byte + { + READY = 0, + PICKON, + PICKOFFL, + PICKOFFR, + } + + public enum eAxisPTPos : byte + { + READY = 0, + } + + public enum eAxisPLMovePos : byte + { + READY = 0, + PRINTH07, + PRINTL07, + PRINTM07, + PRINTH13, + PRINTL13, + PRINTM13, + } + public enum eAxisPLUPDNPos : byte + { + READY = 0, + PICKON, + PICKOFF, + } + public enum eAxisPRMovePos : byte + { + READY = 0, + PRINTH07, + PRINTL07, + PRINTM07, + PRINTH13, + PRINTL13, + PRINTM13, + } + public enum eAxisPRUPDNPos : byte + { + READY = 0, + PICKON, + PICKOFF, + } + public struct sSmInfo + { + public eRunStep bStep; + public eRunStep oStep; + public Boolean bUse; + public Boolean bOUse; + public Boolean bItemOn; + public Boolean bOItemOn; + + public ePickYPosition cPoint; + public ePickYPosition oPoint; + } + + public struct sVisionDetectResult + { + public string Message { get; set; } + public System.Drawing.Rectangle Rect { get; set; } + public float PixelCount { get; set; } + public Boolean OK { get; set; } + } + public struct sVisionOrientResult + { + public Boolean isError { get; set; } + public string Message { get; set; } + public System.Drawing.Size PatternSize { get; set; } + public double Score { get; set; } + public Point UnitTermOffset { get; set; } + public System.Drawing.Rectangle ROS { get; set; } + public System.Drawing.PointF CenterPoint { get; set; } + public Boolean OK { get; set; } + public System.Drawing.PointF Offset { get; set; } + public void Clear() + { + Message = "Not Set"; + PatternSize = System.Drawing.Size.Empty; + Score = 0.0; + ROS = Rectangle.Empty; + UnitTermOffset = Point.Empty; + CenterPoint = PointF.Empty; + OK = false; + Offset = PointF.Empty; + PatternSize = Size.Empty; + isError = false; + } + } + public struct sVisionDotResult + { + public Boolean VisionDotOK { get; set; } //성공여부 + public string VisionDotMessage { get; set; } //메세지 + public int VisionDotCount { get; set; } //검출된 DOT영역갯수 + public List VisionDotArea; //검출될 dot영역의 위치값 + public List VisionDotRunCount;//검출된 dot영역의 질량 + public List VisionDotCicleSize; + } + public struct sIOCheckResult + { + public Boolean Complete { get; set; } + public Boolean TimeOut { get; set; } + public string Message { get; set; } + } + public enum eMKBinType + { + NewMarking = 0, + RejectMarking + } + + + + public enum eGridValue + { + /// + /// 아직 처리 전(기본 초기화된 상태) + /// + NotSet = 0, + + /// + /// 원점검사에서 오류 발생 + /// + OrientError, + + /// + /// 아이템검출에서 실패됨 + /// + NoItem, + + /// + /// 아이템검출성공, 데이터매트릭스 검출 실패 + /// + NewItem, + + /// + /// 데이터매트릭스 읽기 실패 + /// + DMReadError, + + /// + /// 데이터매트릭스 관리 횟수가 기준횟수(10) 미만 (아직 정상) + /// + DMNotmalCount, + + /// + /// 데이터매트릭스 관리 횟수가 기준횟수(10)를 초과한 경우 + /// + DMOverCount, + + + + } + + public enum eRoiSeq + { + Area = 0, + DataMatrix, + Orient, + DetectUnit, + DetectDM + } + public enum eWaitType : byte + { + TryLock = 0, + TryUnLock, + AirBlowOn, + AirBlowOff, + AirBlowDustOn, + AirBlowDustOff, + PrintPickLOff, + PrintPickLOn, + PrintPickROff, + PrintPickROn, + PickOff, + PickOn, + AirBlowCoverDn, + AirBlowCoverUp, + UnloaderUp, + UnloaderDn, + LiftUp, + LiftDn, + } + + public enum eSensorState : byte + { + Off = 0, + On = 1, + InComplete = 2, + } + public enum eIOCheckResult + { + Wait = 0, + Complete, + Timeout + } + + public enum eVar_Date + { + MGZSafty11o = 0, + MGZSafty12o, + MGZSafty21o, + MGZSafty22o, + MGZSafty31o, + MGZSafty32o, + MGZSafty41o, + MGZSafty42o, + SaftyConvIno, + SaftyConvOuto, + + MGZSafty11f, + MGZSafty12f, + MGZSafty21f, + MGZSafty22f, + MGZSafty31f, + MGZSafty32f, + MGZSafty41f, + MGZSafty42f, + SaftyConvInf, + SaftyConvOutf, + + } + + + public enum ePort + { + Left = 0, + Right, + } + + public enum eRunResult + { + Wait = 0, + Complete, + Error, + } + enum eResultStringType + { + Nomal = 0, + Attention, + Error, + } + public enum eMotDir + { + Stop = 0, + CW = 1, + CCW = 2 + } + + /// + /// RUN중일 때 사용되는 세부 시퀀스 + /// + public enum eRunStep : byte + { + NOTSET = 0, + + /// + /// 프로그램 체크 + /// + STARTCHKSW, + /// + /// 하드웨어 체크 + /// + STARTCHKHW, + + /// + /// 기계장치를 작업 시작 전 상태로 이동합니다 + /// + INITIALHW, + + /// + /// 안전지대(비활성화된경우 발생) + /// + SAFTYZONE_GO, + SAFTYZONE_RDY, + + BEGINLOAD, + /// + /// 트레이를 로딩하기 위한 로더 이동 및 트레이 추출 + /// + PORTLOAD, + + + /// + /// 비젼촬영을위한 위치로 이동 + /// + BEGINPICK, + ENDPICK, + + OVERLOAD, + SAVEDATA, + + /// + /// 모션 원위치 + /// + BARCODE, + + /// + /// AIR/BLOW 위치 이동 및 작업 + /// + AIRBLOW, + REELOUT, + TRAYOUT, + + /// + /// 언로드위치로 셔틀을 이동 + /// + BEGINUNLOADER, + /// + /// 트레이 언로드 작업 + /// + TRAYUNLOAD, + + /// + /// 언로딩하고 다시 로딩존으로 이동하는 시퀀스 + /// + MOVE_TO_LOAD, + + } + + + public enum ePLCIPin : byte + { + X00, X01, X02, X03, X04, X05, X06, X07, X08, X09, X0A, + X10, X11, X12, X13, X14, X15, X16, X17, X18, X19, X1A + } + public enum ePLCOPin : byte + { + Y00, Y01, Y02, Y03, Y04, Y05, Y06, Y07, Y08, Y09, Y0A, + Y10, Y11, Y12, Y13, Y14, Y15, Y16, Y17, Y18, Y19, Y1A + } + public enum ePLCITitle : byte + { + Run, Cart_Status_01, Cart_Status_02, Cart_Status_03, Cart_Status_04, + Machine_Confirm = 19 + } + public enum ePLCOTitle : byte + { + Cart_No_Setting = 0, + Handler_Confirm = 19, + } + + + public enum eVarTime + { + DET5ON, + DET4ON, + PORT0, + PORT1, + PORT2, + MAGNET2, + MAGNET1, + MAGNET0, + QRCHECK0, + QRCHECK2, + LIVEVIEW0, + LIVEVIEW1, + LIVEVIEW2, + CHK_POSRSTCONVTIME, + PRINTL, + PRINTR, + CMDTIME_MOTYP, + CMDTIME_MOTZL, + CMDTIME_MOTZR, + JOB_END, + SMRUNERROR, + } + + + public enum eDIPin : byte + { + X00, X01, X02, X03, X04, X05, X06, X07, + X08, X09, X0A, X0B, X0C, X0D, X0E, X0F, + X10, X11, X12, X13, X14, X15, X16, X17, + X18, X19, X1A, X1B, X1C, X1D, X1E, X1F, + X20, X21, X22, X23, X24, X25, X26, X27, + X28, X29, X2A, X2B, X2C, X2D, X2E, X2F, + X30, X31, X32, X33, X34, X35, X36, X37, + X38, X39, X3A, X3B, X3C, X3D, X3E, X3F + } + + public enum eDIName : byte + { + BUT_STARTF = 0x00, BUT_STOPF, BUT_RESETF, BUT_EMGF, BUT_AIRF, + AIR_DETECT = 0x05, PICKER_SAFE = 0x08, + + DOORF1 = 0x0A, DOORF2, DOORF3, + DOORR1 = 0x0D, DOORR2, DOORR3, + + PORT0_SIZE_07 = 0x1A, PORT0_SIZE_13, PORT0_LIM_UP, PORT0_LIM_DN, PORT0_DET_UP, + PORT1_SIZE_07 = 0x10, PORT1_SIZE_13, PORT1_LIM_UP, PORT1_LIM_DN, PORT1_DET_UP, + PORT2_SIZE_07 = 0x15, PORT2_SIZE_13, PORT2_LIM_UP, PORT2_LIM_DN, PORT2_DET_UP, + + R_PICK_BW = 0x20, R_PICK_FW, R_PICK_VAC, + L_PICK_BW = 0x24, L_PICK_FW, L_PICK_VAC, + } + + public enum eDOPin : byte + { + Y00, Y01, Y02, Y03, Y04, Y05, Y06, Y07, + Y08, Y09, Y0A, Y0B, Y0C, Y0D, Y0E, Y0F, + Y10, Y11, Y12, Y13, Y14, Y15, Y16, Y17, + Y18, Y19, Y1A, Y1B, Y1C, Y1D, Y1E, Y1F, + Y20, Y21, Y22, Y23, Y24, Y25, Y26, Y27, + Y28, Y29, Y2A, Y2B, Y2C, Y2D, Y2E, Y2F, + Y30, Y31, Y32, Y33, Y34, Y35, Y36, Y37, + Y38, Y39, Y3A, Y3B, Y3C, Y3D, Y3E, Y3F + } + + public enum eDOName : byte + { + BUT_STARTF = 0x00, BUT_STOPF, BUT_RESETF, BUT_EMGF, BUT_AIRF, + + SOL_AIR = 0x07, BUZZER, + LAMPON1 = 0x0A, + + TWR_GRNF = 0x0D, TWR_YELF, TWR_REDF, + + PORT0_MOT_RUN = 0x1A, PORT0_MOT_DIR, CART_MAG0, + PORT1_MOT_RUN = 0x10, PORT1_MOT_DIR, CART_MAG1, + PORT2_MOT_RUN = 0x14, PORT2_MOT_DIR, CART_MAG2, + + PRINTL_FWD = 0x1D, + PRINTL_VACO = 0x1E, PRINTL_VACI, + PRINTR_FWD = 0x17, + PRINTR_VACO = 0x18, PRINTR_VACI, + + PRINTL_AIRON = 0x20, PRINTR_AIRON, + + PICK_VAC1 = 0x23, PICK_VAC2, PICK_VAC3, PICK_VAC4, + + SVR_PWR_0 = 0x28, SVR_PWR_1, SVR_PWR_2, SVR_PWR_3, SVR_PWR_4, SVR_PWR_5, SVR_PWR_6, + SVR_EMG_0 = 0x30, SVR_EMG_1, SVR_EMG_2, SVR_EMG_3, SVR_EMG_4, SVR_EMG_5, SVR_EMG_6, + } + + public enum eResult : byte + { + NOERROR, + EMERGENCY, + SAFTY, + SETUP, + HARDWARE, + SENSOR, + MOTION, + OPERATION, + COMMUNICATION, + TIMEOUT, + UNLOADER, + } + + + public enum eECode : byte + { + VISCONF, + RDYPORTC, + noerror, + portoverload, + emergency, + nomodelv, + nomodelm, + ITEMNODROPL, + NOPRINTLDATA, + NOPRINTRDATA, + NOSIDREF, + PRINTL, + PRINTR, + CAM_CONN, + CAM_LEFT, + CAM_RIGHT, + VISION_DATA, + EVISION_CONN, + CAM_NOBARCODEU, + CAM_NOBARCODEL, + BARCODEVALIDERR, + + DOORF, + DOORR, + + NOPUTPOSITION, + NOREELSIZEL, + NOREELSIZER, + + LICENSE, + PRINTER, + + CARTERROR, + + CARTL, + CARTC, + CARTR, + + CARTLMATCH, + CARTCMATCH, + CARTRMATCH, + + RIDDUPL, + RIDDUPR, + + SIDERR103, + SIDERR106, + SIDERR101, + + //FINISH, + HOME_TIMEOUT, + PICKOVL, + saftyport, + airnoout, + dooff, + doon, + dioff, + dion, + azininit, + extin, + + MOT_INIT, + MOT_HSET, + MOT_SVALM, + MOT_SVOFF, + MOT_HSEARCH, + MOT_MOVE, + MOTX_SAFETY, + MOT_CMD, + MNBR, + MOTION_MODEL, + + NOITEM, + USER_STOP, + } + + public enum eNextStep : byte + { + nothing = 0, + pause, + pauseNoMessage, + error + } + public enum eILockPKX + { + EMG = 0, + PAUSE, + HOMESET, + DOOR, + Disable, + ZL_POS, + ZR_POS, + ZMOVE, + PKZPOS, + } + + public enum eILockPKZ + { + EMG = 0, + PAUSE, + HOMESET, + DOOR, + Disable, + Y_POS, + YMOVE, + PORTRUN0, + PORTRUN1, + PORTRUN2 + } + + public enum eILockPKT + { + EMG = 0, + PAUSE, + HOMESET, + DOOR, + Disable, + Y_POS, + Y_MOVE, + PortRun + } + + + /// + /// PRINT MOVE AXIS (L+R) + /// + public enum eILockPRM + { + Emergency = 0, + Pause, + HomeSet, + Safty, + Disable, + ZMOVE, + FORWARD, + ITEMON, + PKXPOS, + PRNZPOS, + } + + public enum eILockPRZ + { + EMG = 0, + PAUSE, + HOMESET, + DOOR, + Disable, + YMOVE, + ITEMON, + PRNYPOS, + } + public enum eILockPRL + { + EMG = 0, + PAUSE, + HOMESET, + DOOR, + Disable, + PRNYPOS, + PRNZPOS, + } + public enum eILockPRR + { + EMG = 0, + PAUSE, + HomeSet, + DOOR, + Disable, + PRNYPOS, + PRNZPOS, + } + public enum eILockVS0 + { + EMG = 0, + PAUSE, + HOMESET, + DOOR, + Disable, + PORTRDY, + PKXPOS, //피커의 위치 + PRNYPOS, //프린터Y축 위치 + } + public enum eILockVS1 + { + EMG = 0, + PAUSE, + HOMESET, + DOOR, + Disable, + PORTRDY, + PKXPOS, + } + public enum eILockVS2 + { + EMG = 0, + PAUSE, + HOMESET, + DOOR, + Disable, + PORTRDY, + PKXPOS, //피커의 위치 + PRNYPOS, //프린터Y축 위치 + } +} diff --git a/Handler/Project_form2/Class/ItemData.cs b/Handler/Project_form2/Class/ItemData.cs new file mode 100644 index 0000000..4b18245 --- /dev/null +++ b/Handler/Project_form2/Class/ItemData.cs @@ -0,0 +1,89 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Project.Class +{ + [Serializable] + public class JobData + { + public enum ErrorCode + { + None = 0, + BarcodeRead, + Print, + Camera, + } + public ErrorCode error = ErrorCode.None; + public int No { get; set; } + public VisionData VisionData; + + public DateTime JobStart + { + get + { + if (this.VisionData == null) return new DateTime(1982, 11, 23); + else return VisionData.STime; + } + } + public DateTime JobEnd; + public TimeSpan JobRun + { + get + { + if (JobEnd.Year == 1982) return new TimeSpan(0); + else if (JobStart.Year == 1982) return new TimeSpan(0); + else return JobEnd - JobStart; + } + } + + //작업데이터의 GUID(자료식별) + public string guid { get; private set; } + + //언로더포트위치(L/R) + public string PortPos; + + + //동작관련 메세지 + public string Message; + + int idx; + public JobData(int idx_) + { + this.idx = idx_; + Clear("INIT"); + } + public void Clear(string source) + { + Pub.AddDebugLog($"item data {idx} clear by {source}"); + + No = 0; + //JobStart = new DateTime(1982, 11, 23); + JobEnd = new DateTime(1982, 11, 23); + PortPos = string.Empty; + guid = Guid.NewGuid().ToString(); + Message = string.Empty; + if (VisionData == null) + VisionData = new VisionData(source); + else + VisionData.Clear(source, false); + } + + public void CopyTo(ref JobData obj) + { + if (obj == null) return; + //obj.JobStart = this.JobStart; + obj.JobEnd = this.JobEnd; + obj.guid = this.guid; + obj.PortPos = this.PortPos; + obj.Message = this.Message; + + Pub.AddDebugLog("아이템 복사 전 rid:" + this.VisionData.RID); + this.VisionData.CopyTo(ref obj.VisionData); + Pub.AddDebugLog("아이템 복사 후 대상 rid : " + obj.VisionData.RID); + } + + } +} diff --git a/Handler/Project_form2/Class/JoystickRaw.cs b/Handler/Project_form2/Class/JoystickRaw.cs new file mode 100644 index 0000000..f619b25 --- /dev/null +++ b/Handler/Project_form2/Class/JoystickRaw.cs @@ -0,0 +1,275 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using HidSharp; +using HidSharp.Reports; +using HidSharp.Reports.Encodings; + +namespace arDev.Joystick +{ + public class JoystickRaw : IDisposable + { + HidDevice _dev; + HidStream _hidStream; + + public Boolean IsOpen { get; private set; } + public event EventHandler Disconnected; + public event EventHandler Connected; + public event EventHandler Changed; + public delegate void MessageHandler(string msg); + public event MessageHandler Message; + public int InputLength { get; private set; } + public int OutputLength { get; private set; } + public int FeatureLength { get; private set; } + public int vid { get; set; } + public int pid { get; set; } + public Boolean[] Buttons = new bool[64]; //버튼정보를 기록한다 + Boolean bListUpdate = false; + + public JoystickRaw() + { + vid = -1; + pid = -1; + this.InputLength = 0; + this.OutputLength = 0; + this.FeatureLength = 0; + this.IsOpen = false; + this._dev = null; + this._hidStream = null; + DeviceList.Local.Changed += Local_Changed; + Job = new Task(JobMain, ct); + Job.Start(); + for (int i = 0; i < Buttons.Length; i++) + Buttons[i] = false; + + } + CancellationToken ct ; + public IEnumerable GetHidDevices() + { + return DeviceList.Local.GetHidDevices(); + } + public void Connect(int vid, int pid) + { + this.vid = vid; + this.pid = pid; + } + public void Connect(HidDevice device) + { + this.vid = device.VendorID; + this.pid = device.ProductID; + } + + Task Job = null; + private bool disposed = false; + DateTime LastConnTime = DateTime.Now; + void JobMain() + { + //개체가 소멸하기전까지 진행한다 + while (this.disposed == false) + { + if (IsOpen == false) + { + if (this.vid == -1 || this.pid == -1) + { + //아직설정되지 않았으니 대기를한다 + System.Threading.Thread.Sleep(3000); + } + else + { + //연결작업을 시작해야한다 + if (bListUpdate || (DateTime.Now - LastConnTime).TotalMilliseconds >= 3000) + { + LastConnTime = DateTime.Now; + + //연결작업 + var list = this.GetHidDevices(); + this._dev = list.Where(t => t.VendorID == this.vid && t.ProductID == this.pid).FirstOrDefault(); + if (_dev != null) + { + try + { + IsOpen = _dev.TryOpen(out _hidStream); + if (IsOpen) + { + this.InputLength = _dev.GetMaxInputReportLength(); + this.OutputLength = _dev.GetMaxOutputReportLength(); + this.FeatureLength = _dev.GetMaxFeatureReportLength(); + this._hidStream.ReadTimeout = Timeout.Infinite; + + Connected?.Invoke(this, null); + var rawReportDescriptor = _dev.GetRawReportDescriptor(); + var msg = ("Report Descriptor:"); + msg += string.Format(" {0} ({1} bytes)", string.Join(" ", rawReportDescriptor.Select(d => d.ToString("X2"))), rawReportDescriptor.Length); + Message?.Invoke(msg); + } + else + { + if (this._hidStream != null) this._hidStream.Dispose(); + } + } + catch { System.Threading.Thread.Sleep(1500); } + } + else System.Threading.Thread.Sleep(1500); + } + else System.Threading.Thread.Sleep(1500); + } + } + else + { + //데이터를 가지고 온다 + using (_hidStream) + { + try + { + reportDescriptor = _dev.GetReportDescriptor(); + deviceItem = reportDescriptor.DeviceItems[0]; + var inputReportBuffer = new byte[_dev.GetMaxInputReportLength()]; + var inputReceiver = reportDescriptor.CreateHidDeviceInputReceiver(); + var inputParser = deviceItem.CreateDeviceItemInputParser(); + + inputReceiver.Start(_hidStream); + + while (true) + { + if (!inputReceiver.IsRunning) { break; } // Disconnected? + + Report report; // + while (inputReceiver.TryRead(inputReportBuffer, 0, out report)) + { + if (inputParser.TryParseReport(inputReportBuffer, 0, report)) + { + WriteDeviceItemInputParserResult(inputParser); + } + } + System.Threading.Thread.Sleep(20); + } + + inputReceiver = null; + IsOpen = false; + } + catch (Exception ex) + { + + Message?.Invoke(ex.Message); + + } + finally + { + Disconnected?.Invoke(this, null); + IsOpen = false; + } + } + } + } + } + + void WriteDeviceItemInputParserResult(HidSharp.Reports.Input.DeviceItemInputParser parser) + { + while (parser.HasChanged) + { + int changedIndex = parser.GetNextChangedIndex(); + var previousDataValue = parser.GetPreviousValue(changedIndex); + var dataValue = parser.GetValue(changedIndex); + + var oVal = previousDataValue.GetPhysicalValue(); + var nVal = dataValue.GetPhysicalValue(); + + if (double.IsNaN(oVal)) oVal = 0.0; + if (double.IsNaN(nVal)) nVal = 0.0; + + var InputMethod = (Usage)dataValue.Usages.FirstOrDefault(); + if (InputMethod.ToString().StartsWith("Button")) + { + var butNo = int.Parse(InputMethod.ToString().Substring(6)); + this.Buttons[butNo - 1] = nVal > 0; //버튼값은 기록 210107 + } + + //이벤트발생 + InputChanged?.Invoke(this, new InputChangedEventHandler( + InputMethod, oVal, nVal)); + + //메세지도 발생함 + //var msg = (string.Format(" {0}: {1} -> {2}", + // (Usage)dataValue.Usages.FirstOrDefault(), + // previousDataValue.GetPhysicalValue(), + // dataValue.GetPhysicalValue())); + //Message?.Invoke(msg); + + } + } + + public event EventHandler InputChanged; + + public class InputChangedEventHandler : EventArgs + { + public Usage input { get; set; } + public double oldValue { get; set; } + public double newValue { get; set; } + public InputChangedEventHandler(Usage input_, double oValue_, double nValue_) + { + this.input = input_; + this.oldValue = oValue_; + this.newValue = nValue_; + } + } + + ReportDescriptor reportDescriptor; + DeviceItem deviceItem; + ~JoystickRaw() + { + + Dispose(false); + } + + public void Dispose() + { + Dispose(true); + // This object will be cleaned up by the Dispose method. + // Therefore, you should call GC.SupressFinalize to + // take this object off the finalization queue + // and prevent finalization code for this object + // from executing a second time. + GC.SuppressFinalize(this); + } + protected virtual void Dispose(bool disposing) + { + // Check to see if Dispose has already been called. + if (!this.disposed) + { + // If disposing equals true, dispose all managed + // and unmanaged resources. + + if (disposing) + { + // Dispose managed resources. + this._dev = null; + } + + + Job.Wait(); + Job.Dispose(); + + // Call the appropriate methods to clean up + // unmanaged resources here. + // If disposing is false, + // only the following code is executed. + //CloseHandle(handle); + //handle = IntPtr.Zero; + + // Note disposing has been done. + DeviceList.Local.Changed -= Local_Changed; + disposed = true; + } + } + + private void Local_Changed(object sender, DeviceListChangedEventArgs e) + { + Changed?.Invoke(sender, e); + bListUpdate = true; + } + + } +} diff --git a/Handler/Project_form2/Class/KeyenceBarcodeData.cs b/Handler/Project_form2/Class/KeyenceBarcodeData.cs new file mode 100644 index 0000000..6bcce2d --- /dev/null +++ b/Handler/Project_form2/Class/KeyenceBarcodeData.cs @@ -0,0 +1,87 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Drawing; + +namespace Project.Class +{ + public class KeyenceBarcodeData + { + public double Angle { get; set; } + public StdLabelPrint.CAmkorSTDBarcode AmkorData { get; set; } + public Point[] vertex { get; set; } + public string Data { get; set; } + public Point CenterPX { get; set; } + public string sym { get; set; } + public Boolean UserActive { get; set; } + public Boolean isSTDBarcode + { + get + { + if (AmkorData != null && sym == "1" && AmkorData.isValid) return true; + return false; + } + } + public Boolean isNewLen15 + { + get + { + if (AmkorData != null && sym == "1" && AmkorData.isValid && AmkorData.NewLen15Barcode) return true; + return false; + } + } + + /// + /// 라벨의 위치를 표시한다. 8방향이며 키패드 유사하게 설정한다 789/4-6/123 + /// + public byte LabelPosition { get; set; } + public KeyenceBarcodeData() + { + LabelPosition = 0; + Angle = 0.0; + Data = string.Empty; + CenterPX = Point.Empty; + AmkorData = null; + vertex = null; + sym = string.Empty; + UserActive = false; + } + + public override string ToString() + { + return string.Format("{0},Deg={1},Center={2}x{3}", Data, Angle, CenterPX.X, CenterPX.Y); + } + + /// + /// 해당 중심점이 겹치는지 확인합니다. + /// + /// + /// + public Boolean CheckIntersect(Point Center, string data) + { + if (data.Equals(this.Data) == false) return false; //자료가 다르면 다른 자료로 처리한다 + return getInside(Center, vertex); + } + + bool getInside(Point pt, Point[] ptArr) + { + int crosses = 0; + for (int i = 0; i < ptArr.Length; i++) + { + int j = (i + 1) % ptArr.Length; + if ((ptArr[i].Y > pt.Y) != (ptArr[j].Y > pt.Y)) + { + //atX는 점 B를 지나는 수평선과 선분 (p[i], p[j])의 교점 + double atX = (ptArr[j].X - ptArr[i].X) * (pt.Y - ptArr[i].Y) / (ptArr[j].Y - ptArr[i].Y) + ptArr[i].X; + //atX가 오른쪽 반직선과의 교점이 맞으면 교점의 개수를 증가시킨다. + if (pt.X < atX) + crosses++; + } + } + return crosses % 2 > 0; + } + + } +} diff --git a/Handler/Project_form2/Class/ModelInfoM.cs b/Handler/Project_form2/Class/ModelInfoM.cs new file mode 100644 index 0000000..7b742fd --- /dev/null +++ b/Handler/Project_form2/Class/ModelInfoM.cs @@ -0,0 +1,128 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Drawing; +using System.ComponentModel; + +namespace Project +{ + + public class ModelInfoM + { + //스피드 값과, 위치값을 저장하면 된다. + public int idx { get; set; } + public string Title { get; set; } + + public Dictionary Position { get; set; } + + + public ModelInfoM() + { + idx = -1; + Title = string.Empty; + ClearDataPosition(); + } + void ClearDataPosition() + { + Position = new Dictionary(); + var motCount = Enum.GetNames(typeof(eAxis)).Length; + for (int i = 0; i < motCount; i++) + { + var datas = new PositionData[64]; + for (int j = 0; j < datas.Length; j++) + datas[j] = new PositionData(-1, string.Empty, 0.0); + + Position.Add(i, datas); + } + } + + public Boolean isSet + { + get + { + if (idx == -1) return false; + else return !Title.isEmpty(); + } + } + + public void ReadValue(DataSet1.MCModelRow dr) + { + idx = dr.idx; + Title = dr.Title; + ReadValuePosition(idx); + } + + public void ReadValue(int index) + { + var dr = Pub.mdm.dataSet.MCModel.Where(t => t.idx == index).FirstOrDefault(); + if (dr == null) + { + idx = -1; + Title = string.Empty; + ClearDataPosition(); + } + else + { + idx = dr.idx; + Title = dr.Title; + ReadValuePosition(idx); + } + } + public void ReadValue(string title) + { + ReadValue(title, Pub.mdm.dataSet.MCModel); + } + public void ReadValue(string title, DataSet1.MCModelDataTable dt) + { + var dr = dt.Where(t => t.Title == title).FirstOrDefault(); + if (dr == null) + { + idx = -1; + this.Title= string.Empty; + ClearDataPosition(); + } + else + { + idx = dr.idx; + this.Title = dr.Title; + ReadValuePosition(idx); + } + } + public void ReadValuePosition(int modelidx) + { + ReadValuePosition(modelidx, Pub.mdm.dataSet.MCModel); + } + public void ReadValuePosition(int modelidx, DataSet1.MCModelDataTable dt) + { + ClearDataPosition(); + + //각 모터별로 데이터를 가져온다 + int cnt = 0; + foreach (var data in Position) + { + //해당 모터의 속도값을 가져온다 + var drows = dt.Where(t => t.pidx == modelidx && t.PosIndex >= 0 && t.MotIndex == data.Key); + foreach (DataSet1.MCModelRow dr in drows) + { + var item = data.Value[dr.PosIndex]; + item.index = dr.PosIndex; + item.title = dr.PosTitle; + item.value = dr.Position; + item.speed = dr.Speed; + item.acc = dr.SpeedAcc; + item.dcc = dr.SpeedDcc; + data.Value[dr.PosIndex] = item; + cnt += 1; + } + } + + Pub.log.Add(String.Format("model {0} 의 위치 데이터 {1}건을 불러왔습니다", modelidx, cnt)); + } + + } + + + + +} diff --git a/Handler/Project_form2/Class/ModelInfoV.cs b/Handler/Project_form2/Class/ModelInfoV.cs new file mode 100644 index 0000000..fe20868 --- /dev/null +++ b/Handler/Project_form2/Class/ModelInfoV.cs @@ -0,0 +1,257 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Drawing; +using System.ComponentModel; + +namespace Project +{ + + public class ModelInfoV + { + [Browsable(false)] + public string SPN { get; set; } + //[Browsable(false)] + //public Boolean SplitSPN { get; set; } + [Browsable(false)] + public string Title { get; set; } + [Browsable(false)] + public int idx { get; set; } + + [Browsable(false)] + public Rectangle Roi_UnitArea { get; set; } + [Browsable(false)] + public Rectangle Roi_Orient { get; set; } + [Browsable(false)] + public Rectangle Roi_TrayDetect { get; set; } + [Browsable(false)] + public Rectangle Roi_DMDetect { get; set; } + [Browsable(false)] + public Rectangle Roi_DataMatrix { get; set; } + + [Browsable(false)] + public Point UnitCount { get; set; } + [Browsable(false)] + public Point RoiCount { get; set; } + [Browsable(false)] + public int ColCount { get { return UnitCount.X; } } + [Browsable(false)] + public int RowCount { get { return UnitCount.Y; } } + [Browsable(false)] + public int TotalUnitCount { get { return UnitCount.X * UnitCount.Y; } } + + [Browsable(false)] + public Point VisionCount { get; set; } + [Browsable(false)] + public int VisionColCount { get { return VisionCount.X; } } + [Browsable(false)] + public int VisionRowCount { get { return VisionCount.Y; } } + [Browsable(false)] + public int TotalVisionCount { get { return VisionCount.X * VisionCount.Y; } } + + [Browsable(false)] + public UInt16 airBlowRuntime { get; set; } + + + [Browsable(false)] + public UInt16 LimitCount { get; set; } + + [Browsable(false)] + public float DotFontSize { get; set; } + + + //여기는 사용하지 않는 코드(일단 몰라서 나둠) + + [Browsable(false), Description("범위 : 0.0~1.0")] + public double OrientScore { get; set; } + + [Browsable(false)] + public Size OrientROSSize { get; set; } + + + + + [Category("ROI Offset(Front)"), DisplayName("모션이동(Column)"), Description("비젼축(X)이 이동하는 경우 적용할 옵셋값 입니다. 트레이기준 '열'의 위치가 변경되면 이 옵셋이 적용 됩니다")] + public RoiOffset ROIOffsetColF { get; set; } + [Category("ROI Offset(Front)"), DisplayName("모션이동(Row)"), Description("셔틀축(Y)이 이동하는 경우 적용할 옵셋값 입니다. 트레이기준 '줄'의 위치가 변경되면 이 옵셋이 적용 됩니다.")] + public RoiOffset ROIOffsetRowF { get; set; } + [Category("ROI Offset(Front)"), DisplayName("기본옵셋"), Description("입력된 ROI기준으로 추가로 적용할 옵셋값 입니다")] + public RoiOffset ROIOffsetFront { get; set; } + [Category("ROI Offset(Front)"), DisplayName("개별간격"), Description("자동으로 생성되는 ROI(=Dummy ROI)에 적용하는 옵셋 값입니다. Theta 의 오류가 있는 경우 이 값을 통해서 ROI를 회전하는 효과를 얻을 수 있습니다")] + public RoiOffset ROIOffsetUnitTermFront { get; set; } + + + [Category("ROI Offset(Rear)"), DisplayName("모션이동(Column)"), Description("비젼축(X)이 이동하는 경우 적용할 옵셋값 입니다. 트레이기준 '열'의 위치가 변경되면 이 옵셋이 적용 됩니다")] + public RoiOffset ROIOffsetColR { get; set; } + [Category("ROI Offset(Rear)"), DisplayName("모션이동(Row)"), Description("셔틀축(Y)이 이동하는 경우 적용할 옵셋값 입니다. 트레이기준 '줄'의 위치가 변경되면 이 옵셋이 적용 됩니다.")] + public RoiOffset ROIOffsetRowR { get; set; } + [Category("ROI Offset(Rear)"), DisplayName("기본옵셋"), Description("입력된 ROI기준으로 추가로 적용할 옵셋값 입니다")] + public RoiOffset ROIOffsetRear { get; set; } + [Category("ROI Offset(Rear)"), DisplayName("개별간격"), Description("자동으로 생성되는 ROI(=Dummy ROI)에 적용하는 옵셋 값입니다. Theta 의 오류가 있는 경우 이 값을 통해서 ROI를 회전하는 효과를 얻을 수 있습니다")] + public RoiOffset ROIOffsetUnitTermRear { get; set; } + + [Category("Common"), DisplayName("검사영역 간격"),Description("자동으로 생성되는 ROI(=Dummy ROI)의 간격입니다. 각 유닛의 Pitch 값이며, 화면을 보고 해당 간격을 맞추시기 바랍니다.")] + public Point UnitTerm { get; set; } + + [Category("Common"), DisplayName("조명 밝기"), Description("조명의 밝기 입니다. 라이브영상으로 전환 후 화면 하단의 Light 영역내에서 그 값을 변경하며 확인할 수 있습니다. (입력범위 : 0~255)")] + public UInt16 LightValue { get; set; } + + + [Browsable(false), Category("Common"), Description("비젼 판독을 위한 설정 값")] + public CVisionProcess VisionParameter { get; set; } + + + public ModelInfoV() + { + VisionParameter = new CVisionProcess(); + } + + public void ReadValue(DataSet1.ModelRow dr) + { + this.Title = dr.Title; + this.idx = dr.idx; + } + public bool WriteValue() + { + var model = Pub.mdm.GetDataV(this.Title); + return WriteValue(ref model); + } + public bool WriteValue(ref DataSet1.ModelRow dr) + { + try + { + dr.Title = this.Title; + dr.EndEdit(); + Pub.mdm.SaveModelV(); + return true; + } + catch (Exception ex) + { + Pub.log.AddE("write model error" + ex.Message); + return false; + } + + } + } + + [TypeConverterAttribute(typeof(ExpandableObjectConverter))] + public class RoiOffset + { + [DisplayName("Horizon"), Description("수직(Y축) 변화 값(+는 아래쪽,-는 위쪽)")] + public double Y { get; set; } + [DisplayName("Vertical"), Description("수평(X축) 변화 값(+는 오른쪽,-는 왼쪽)")] + public double X { get; set; } + [Browsable(false)] + public bool IsEmpty { get { if (Y == 0 && X == 0) return true; else return false; } } + + public RoiOffset(double start = 0.0, double end = 0.0) + { + this.Y = start; + this.X = end; + } + public override string ToString() + { + return string.Format("{0},{1}", Y, X); + } + public string toPointStr() + { + return string.Format("{0};{1}", Y, X); + } + } + + + [TypeConverterAttribute(typeof(ExpandableObjectConverter))] + public class Range + { + [DisplayName("시작값")] + public uint Start { get; set; } + [DisplayName("종료값")] + public uint End { get; set; } + [Browsable(false)] + public bool IsEmpty { get { if (Start == 0 && End == 0) return true; else return false; } } + + public Range(UInt16 start, UInt16 end) : this((uint)start, (uint)end) { } + public Range(uint start = 0, uint end = 0) + { + this.Start = start; + this.End = end; + } + public static implicit operator RangeF(Range p) + { + return new RangeF((float)p.Start, (float)p.End); + } + public override string ToString() + { + return string.Format("{0}~{1}", Start, End); + } + } + [TypeConverterAttribute(typeof(ExpandableObjectConverter))] + public class RangeF + { + [DisplayName("시작값")] + public float Start { get; set; } + [DisplayName("종료값")] + public float End { get; set; } + [Browsable(false)] + public bool IsEmpty { get { if (Start == 0f && End == 0f) return true; else return false; } } + public RangeF(float start = 0f, float end = 0f) + { + this.Start = start; + this.End = end; + } + public static implicit operator Range(RangeF p) + { + return new Range((uint)p.Start, (uint)p.End); + } + public override string ToString() + { + return string.Format("{0}~{1}", Start, End); + } + } + + [TypeConverterAttribute(typeof(ExpandableObjectConverter))] + public class CVisionProcess + { + + [Category("특수설정(개발자용)"), Description("미사용(DOT 인식시에 사용했음)")] + public UInt16 halfKernel { get; set; } + [Category("특수설정(개발자용)"), Description("미사용(DOT 인식시에 사용했음)")] + public UInt16 Constant { get; set; } + [Category("특수설정(개발자용)"), DisplayName("MP_Dilate"),Description("미사용(DOT 인식시에 사용했음)")] + public UInt16 dilate { get; set; } + [Category("특수설정(개발자용)"), DisplayName("MP_Erode"), Description("미사용(DOT 인식시에 사용했음)")] + public UInt16 erode { get; set; } + [Category("특수설정(개발자용)"), DisplayName("MP_Open"), Description("미사용(DOT 인식시에 사용했음)")] + public UInt16 open { get; set; } + [Category("특수설정(개발자용)"), DisplayName("MP_Open"), Description("미사용(DOT 인식시에 사용했음)")] + public UInt32 segment_threshold { get; set; } + [Category("특수설정(개발자용)"), DisplayName("MP_Open"), Description("미사용(DOT 인식시에 사용했음)")] + public Boolean isBlack { get; set; } + [Category("특수설정(개발자용)"), DisplayName("MP_Open"), Description("미사용(DOT 인식시에 사용했음)")] + public UInt32 judg_runcount { get; set; } + + + [Category("유닛 감지"),DisplayName("밝기 기준값"), Description("입력된 값 이상의 데이터를 취합니다. 이 값이 낮을 수록 검출값이 높아지게 됩니다. 이 기준값으로 검출된 값으로 판정을 합니다. 유닛은 밝은 데이터를 보고 판정 하므로 이 기준값 이상의 데이터가 검출이 됩니다")] + public byte detect_threhosld { get; set; } + [Category("유닛 감지"),DisplayName("판정 기준값"), Description("판정을 하는 기준 값입니다. 밝기기준값으로 인해 검출된 값이 5000이라면. 이 판정 기준에 입력된 값이 5000보다 크면 유닛이 존재하는 것으로 판정하며, 그 보다 낮을 때에는 유닛이 없는 'Empty' 유닛으로 감지 됩니다")] + public UInt16 detect_count { get; set; } + [Category("유닛 감지"), DisplayName("*예외영역 판정기준"), Description("빈 유닛(=Empty) 일때 셔틀 프레임의 빛 반사가 심할 경우 해당 반사값에 의해 유닛이 감지됩니다. 그러한 데이터를 제거하기위해 이 값이 사용되며, 유닛검출에 사용하는 흰색영역의 값외에 추가로 검은색 덩어리를 검사합니다. 설정한 값사이의 검은색 덩어리가 검출되면 'Empty' 유닛으로 감지 됩니다")] + public Point detect_blobrange { get; set; } + + [Category("2D 감지"), DisplayName("밝기 기준값"), Description("입력된 값 이하의 데이터를 취합니다. 이 값이 낮을 수록 검출값도 낮아지게 됩니다. 이 기준값으로 검출된 값으로 판정을 합니다. 2D는 어두운 데이터를 보고 판정 하므로 이 기준값 이하의 데이터가 검출이 됩니다")] + public byte detectDM_threhosld { get; set; } + [Category("2D 감지"), DisplayName("판정 기준값"), Description("판정을 하는 기준 값입니다. 밝기기준값으로 인해 검출된 값이 5000이라면. 이 판정 기준에 입력된 값이 5000보다 크면 ID가 존재하는 것으로 판정하며, 그 보다 낮을 때에는 ID가 없는 'New' 유닛으로 감지 됩니다")] + public UInt16 detectDM_count { get; set; } + + public CVisionProcess() + { + + } + public override string ToString() + { + return "비젼 설정 값"; + } + } + +} diff --git a/Handler/Project_form2/Class/PositionData.cs b/Handler/Project_form2/Class/PositionData.cs new file mode 100644 index 0000000..112ad8e --- /dev/null +++ b/Handler/Project_form2/Class/PositionData.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Project +{ + public class PositionData + { + public int index { get; set; } + public string title { get; set; } + public double value { get; set; } + public double speed { get; set; } + public double acc { get; set; } + public double dcc { get; set; } + public PositionData() + { + index = -1; + title = string.Empty; + value = 0.0; + this.speed = 0.0; + this.acc = 100.0; + this.dcc = 0.0; + } + public PositionData(int idx_, string title_, double value_) + { + this.index = idx_; + this.title = title_; + this.value = value_; + } + } + +} diff --git a/Handler/Project_form2/Class/VisionData.cs b/Handler/Project_form2/Class/VisionData.cs new file mode 100644 index 0000000..4b09f26 --- /dev/null +++ b/Handler/Project_form2/Class/VisionData.cs @@ -0,0 +1,536 @@ +using Emgu.CV.Structure; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Drawing; + +namespace Project.Class +{ + + public class VisionData + { + public int RetryLoader { get; set; } + public List bcdMessage { get; set; } + public Boolean LightOn { get; set; } + public DateTime STime; //비젼시작시간 + public DateTime ETime; //비젼종료시간 + public TimeSpan RunTime { get { return ETime - STime; } } //비젼동작시간 + public DateTime GTime; //이미지수집시간 + public string FileNameL; //로딩존 촬영 + public string FileNameU; //언로딩존 촬영 + public Boolean Complete; + + //public Boolean AngleQR { get; set; } + //public Boolean AngleSTD { get; set; } + //public double Angle { get; set; } + + //public Boolean IsAngleSet + //{ + // get + // { + // if (AngleQR == false && AngleSTD == false && Angle == 0.0) return true; + // else return false; + // } + //} + public double ApplyAngle { get; set; } //적용된 회전 각도 + public Boolean NeedCylinderForward { get; set; } //부착시 실린더를 올려야하는가 + public Boolean ApplyOffset { get; set; } + public Boolean BaseAngle(out string msg, out KeyenceBarcodeData bcd) + { + + msg = string.Empty; + bcd = null; + + //데이터없다면 회전하지 못한다. + if (this.barcodelist == null || this.barcodelist.Count < 1) + { + msg = "No barcode data"; + return false; + } + + //사용자가 확정한 코드를 우선으로 한다 + bcd = barcodelist.Where(t => t.UserActive).FirstOrDefault(); + if (bcd != null) + { + //angle = bcd.Angle; + msg = "User Active"; + return true; + } + + //표준바코드를 최우선 으로 사용 + //15자리 기존 바코드는 angle 로 사용하지 않는다. + bcd = barcodelist.Where(t => t.isSTDBarcode && t.isNewLen15 == false).FirstOrDefault(); + if (bcd != null) + { + //angle = bcd.Angle; + msg = "STD Barcode"; + return true; + } + + //QR코드를 우선으로 사용 - return 릴은 적용하지 안게한다. + //RQ코드가 적용되지 않게한다 210824 + bcd = barcodelist.Where(t => t.sym == "1" && t.isNewLen15 == false && t.Data.EndsWith(";;;") == false && t.Data.StartsWith("RQ")==false).FirstOrDefault(); + if (bcd != null) + { + //angle = bcd.Angle; + msg = "QR Code"; + return true; + } + + //첫번쨰 아이템을 우선으로 사용 + if (barcodelist.Count == 1) + { + bcd = barcodelist[0]; + msg = "First Barcode = " + bcd.Data; + return true; + } + else + { + //여러개가 있음 + bcd = barcodelist.Where(t => t.sym == "0").FirstOrDefault(); + if (bcd != null) + { + msg = "1D Data"; + return true; + } + else + { + bcd = barcodelist[0]; + msg = "first"; + return true; + } + } + + + // angle = bcd.Angle; + //return true; + } //모션회전각도 + public Boolean Ready { get; set; } + public Boolean ServerUpdate { get; set; } + + public Boolean Confirm { get { return ConfirmAuto || ConfirmUser; } } + public Boolean ConfirmUser { get; set; } + public Boolean ConfirmAuto { get; set; } + + public Boolean ValidSkipbyUser { get; set; } + + public string QTY0 { get; set; } //원본수량 + public string QTY { get; set; } //바코드수량(=서버수량) + + /// + /// QTY값이 RQ에서 입력된 데이터인가? + /// + public Boolean QTYRQ { get; set; } + + public string SID0 { get; set; } //원본SID + public string SID { get; set; } //바코드 + + private string _rid = string.Empty; + public string RID + { + get { return _rid; } + } //바코드 + public void SetRID(string value, string reason) + { + //값이 변경될때 로그에 변경 + if (_rid.Equals(value) == false) + { + Pub.AddDebugLog(string.Format("RID 변경 {0} -> {1} by {2}", _rid, value, reason)); + } + _rid = value; + } + + public string RID0 { get; set; } + public string VLOT { get; set; } + public string VNAME { get; set; } + //public string SCODE { get; set; } //서플라이코드 210219 + public string MFGDATE { get; set; } + public string PARTNO { get; set; } + public Boolean HASHEADER { get; set; } + + public string temp_custcode { get; set; } + public string temp_custname { get; set; } + + /// + /// 데이터가 모두존재하는지 확인 + /// + public Boolean DataValid + { + get + { + if (Confirm == false) return false; + return QTY.isEmpty() == false && + SID.isEmpty() == false && + RID.isEmpty() == false && + VLOT.isEmpty() == false && + VNAME.isEmpty() == false && + MFGDATE.isEmpty() == false && + PARTNO.isEmpty(); + } + } + + + public Boolean PrintPositionCheck { get; set; } + public string PrintPositionData { get; set; } + + //상단위치에 프린트를 할것인가? + //프린트위치에 따른다 + public ePrintPutPos GetPrintPutPosition() + { + //하단에 찍는경우이다 + if (PrintPositionData == "1" || + PrintPositionData == "2" || + PrintPositionData == "3") + { + return ePrintPutPos.Bottom; + } + else if (PrintPositionData == "7" || + PrintPositionData == "8" || + PrintPositionData == "9") + { + return ePrintPutPos.Top; + } + else if (PrintPositionData == "4") //왼쪽 + { + return ePrintPutPos.Middle; + } + else if (PrintPositionData == "6") //오른쪽 + { + return ePrintPutPos.Middle; + } + else return ePrintPutPos.None; + + } + //public string LabelPos { get; set; } + //public Boolean PrintForce { get; set; } + + public eCartSize ReelSize { get; set; } + + public string QTY2 { get; set; } //바코드수량 + public string SID2 { get; set; } //바코드 + public string RID2 { get; set; } //바코드 + public string VLOT2 { get; set; } + public string MANU2 { get; set; } + public string MFGDATE2 { get; set; } + public string PARTNO2 { get; set; } + + public Emgu.CV.Image image { get; private set; } //최종수집된 이미지 + + public void SetImage(Emgu.CV.Image img_) + { + if (this.image != null) + { + this.image.Dispose(); + this.image = null; + } + + //이미지를 신규로 해성하고 데이터를 복사한다 210121 + this.image = new Emgu.CV.Image(img_.Size); + img_.CopyTo(this.image); + + } + public System.Drawing.Color GetColorByBarcodeCount(int idx) + { + if (QRPositionData[idx] > 0) return Color.Gold; //QR데이터가있다면 금색으로 한다 + + var Cnt = LabelPositionData[idx]; + if (Cnt == MaxBarcodePosData) return Color.Purple; + else if (Cnt == 0) return Color.FromArgb(32, 32, 32); + { + //나머진 숫자별로 데이터를 표시한다 ( + var GValue = Cnt * 10; + if (GValue > 255) GValue = 255; + return Color.FromArgb(32, 32, GValue); + } + + } + public Boolean isMaxBarcodePosition(int idx) + { + return LabelPositionData[idx] == MaxBarcodePosData; + } + + public byte[] QRPositionData { get; private set; } + public byte[] LabelPositionData { get; private set; } + private List _barcodelist; + //리더기로부터 읽은 자료 모두가 들어잇다 + public List barcodelist + { + get { return _barcodelist; } + set + { + this._barcodelist = value; + UpdateBarcodePositionData(); + } + } + + public byte MaxBarcodePosData { get; private set; } + /// + /// 바코드목록을 이용해서 라벨위치 분포값을 변경합낟. + /// 해당 위치값은 labelposdata로 접근가능함 + /// + public void UpdateBarcodePositionData() + { + LabelPositionData[0] = (byte)_barcodelist.Where(t => t.LabelPosition == 1).Count(); + LabelPositionData[1] = (byte)_barcodelist.Where(t => t.LabelPosition == 2).Count(); + LabelPositionData[2] = (byte)_barcodelist.Where(t => t.LabelPosition == 3).Count(); + + LabelPositionData[3] = (byte)_barcodelist.Where(t => t.LabelPosition == 4).Count(); + LabelPositionData[4] = (byte)_barcodelist.Where(t => t.LabelPosition == 6).Count(); + + LabelPositionData[5] = (byte)_barcodelist.Where(t => t.LabelPosition == 7).Count(); + LabelPositionData[6] = (byte)_barcodelist.Where(t => t.LabelPosition == 8).Count(); + LabelPositionData[7] = (byte)_barcodelist.Where(t => t.LabelPosition == 9).Count(); + + QRPositionData[0] = (byte)_barcodelist.Where(t => t.LabelPosition == 1 && t.AmkorData.isValid).Count(); + QRPositionData[1] = (byte)_barcodelist.Where(t => t.LabelPosition == 2 && t.AmkorData.isValid).Count(); + QRPositionData[2] = (byte)_barcodelist.Where(t => t.LabelPosition == 3 && t.AmkorData.isValid).Count(); + + QRPositionData[3] = (byte)_barcodelist.Where(t => t.LabelPosition == 4 && t.AmkorData.isValid).Count(); + QRPositionData[4] = (byte)_barcodelist.Where(t => t.LabelPosition == 6 && t.AmkorData.isValid).Count(); + + QRPositionData[5] = (byte)_barcodelist.Where(t => t.LabelPosition == 7 && t.AmkorData.isValid).Count(); + QRPositionData[6] = (byte)_barcodelist.Where(t => t.LabelPosition == 8 && t.AmkorData.isValid).Count(); + QRPositionData[7] = (byte)_barcodelist.Where(t => t.LabelPosition == 9 && t.AmkorData.isValid).Count(); + + MaxBarcodePosData = LabelPositionData.Max(t => t); + } + + /// + /// Data1(인쇄전 인식데이터) 과 Data2(QR)가 동일한지 비교합니다. + /// + public Boolean MatchValidation + { + get + { + if (PARTNO == null) this.PARTNO = string.Empty; + if (PARTNO2 == null) this.PARTNO2 = string.Empty; + if (QTY == null) QTY = string.Empty; + if (QTY2 == null) QTY2 = string.Empty; + if (SID == null) SID = string.Empty; + if (SID2 == null) SID2 = string.Empty; + if (VLOT == null) VLOT = string.Empty; + if (VLOT2 == null) VLOT2 = string.Empty; + if (PARTNO == null) PARTNO = string.Empty; + if (PARTNO2 == null) PARTNO2 = string.Empty; + + if (QTY.Equals(QTY2) == false) + { + Pub.log.AddE(string.Format("QR검증실패 수량:{0} != {1}", QTY, QTY2)); + return false; + } + if (RID.Equals(RID2) == false) + { + Pub.log.AddE(string.Format("QR검증실패 RID:{0} != {1}", RID, RID2)); + return false; + } + if (VLOT.Equals(VLOT2) == false) + { + Pub.log.AddE(string.Format("QR검증실패 VLOT:{0} != {1}", VLOT, VLOT2)); + return false; + } + if (PARTNO.Equals(PARTNO2) == false) + { + Pub.log.AddE(string.Format("QR검증실패 PARTNO:{0} != {1}", PARTNO, PARTNO2)); + return false; + } + if (SID.Equals(SID2) == false) + { + Pub.log.AddE(string.Format("QR검증실패 SID:{0} != {1}", SID, SID2)); + return false; + } + + return true; + } + } + + public string QRInputRaw { get; set; } //입력에 사용한 RAW + public string QROutRaw { get; set; } //부착된 QR코드의 값 + public string ZPL { get; set; } //출력시 사용한 ZPL + public string QRData { get; set; } //출력시 사용한 ZPL에 포함된 QR데이터 + + public VisionData(string reason) + { + Clear(reason, false); + } + public Boolean isEmpty() + { + return RID.isEmpty(); + } + public void Clear(string reason, Boolean timeBackup) + { + RetryLoader = 0; + ApplyOffset = false; + var baktime = new DateTime(1982, 11, 23); + if (timeBackup) baktime = this.STime; + bcdMessage = new List(); + + + HASHEADER = false; + temp_custcode = string.Empty; + temp_custname = string.Empty; + RID0 = string.Empty; + LightOn = false; + //SCODE = string.Empty; + ValidSkipbyUser = false; + NeedCylinderForward = false; + ApplyAngle = 0; + MaxBarcodePosData = 0; + PrintPositionCheck = false; + LabelPositionData = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }; + QRPositionData = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }; + ReelSize = eCartSize.None; + // PrintForce = false; + ConfirmAuto = false; + ConfirmUser = false; + if (image != null) + { + image.Dispose(); + image = null; + } + ServerUpdate = false; + PrintPositionData = ""; + //LabelPos = ""; + _barcodelist = new List(); + QRInputRaw = string.Empty; + QROutRaw = string.Empty; + ZPL = string.Empty; + QRData = string.Empty; + + STime = baktime;// DateTime.Parse("1982-11-23"); + ETime = DateTime.Parse("1982-11-23"); + GTime = DateTime.Parse("1982-11-23"); + Complete = false; + //Angle = 0.0; + //AngleQR = false; + //AngleSTD = false; + Ready = false; + QTY0 = string.Empty; + QTY = string.Empty;// string.Empty; + QTYRQ = false; + Pub.log.AddI($"비젼개체 CLEAR 로 RQ 상태 초기화(false)"); + + SID0 = string.Empty; + SID = string.Empty; + //RID = string.Empty; + SetRID(string.Empty, reason); + VLOT = string.Empty; + MFGDATE = string.Empty; + VNAME = string.Empty; + PARTNO = string.Empty; + + QTY2 = "0";// string.Empty; + SID2 = string.Empty; + RID2 = string.Empty; + VLOT2 = string.Empty; + MFGDATE2 = string.Empty; + MANU2 = string.Empty; + PARTNO2 = string.Empty; + + FileNameL = string.Empty; + FileNameU = string.Empty; + + Pub.log.Add($"Vision Data Clear : {reason}"); + } + + public void CopyTo(ref VisionData obj) + { + //바코드메세지 복사 + obj.bcdMessage = new List(); + foreach (var item in this.bcdMessage) + obj.bcdMessage.Add(item); + + obj.ApplyOffset = this.ApplyOffset; + obj.ConfirmAuto = this.ConfirmAuto; + obj.ConfirmUser = this.ConfirmUser; + obj.temp_custcode = this.temp_custcode; + obj.temp_custname = this.temp_custname; + obj.LightOn = this.LightOn; + //obj.SCODE = this.SCODE; + obj.ValidSkipbyUser = this.ValidSkipbyUser; + obj.NeedCylinderForward = this.NeedCylinderForward; //210207 + obj.ApplyAngle = this.ApplyAngle; //210207 + obj.STime = this.STime; + obj.ETime = this.ETime; + obj.GTime = this.GTime; + obj.FileNameL = this.FileNameL; + obj.FileNameU = this.FileNameU; + obj.Complete = this.Complete; + //obj.Angle = this.Angle; + //obj.AngleQR = this.AngleQR; + //obj.AngleSTD = this.AngleSTD; + obj.Ready = this.Ready; + obj.QTY = this.QTY; + obj.QTYRQ = this.QTYRQ; + obj.SID = this.SID; + obj.SID0 = this.SID0; //210331 + obj.SetRID(this.RID, "copy");// obj.RID = this.RID; + obj.RID0 = this.RID0; + obj.VLOT = this.VLOT; + obj.VNAME = this.VNAME; + obj.MFGDATE = this.MFGDATE; + obj.PARTNO = this.PARTNO; + + obj.QTY2 = this.QTY2; + obj.SID2 = this.SID2; + obj.RID2 = this.RID2; + obj.VLOT2 = this.VLOT2; + obj.MANU2 = this.MANU2; + obj.MFGDATE2 = this.MFGDATE; + obj.PARTNO2 = this.PARTNO2; + + obj.QRInputRaw = this.QRInputRaw; + obj.QROutRaw = this.QROutRaw; + obj.ZPL = this.ZPL; + obj.QRData = this.QRData; + obj.PrintPositionData = this.PrintPositionData; + //obj.PrintForce = this.PrintForce; + obj.ReelSize = this.ReelSize; + obj.PrintPositionCheck = this.PrintPositionCheck; + + + //라벨위치값 복사 + for (int i = 0; i < obj.LabelPositionData.Length; i++) + obj.LabelPositionData[i] = this.LabelPositionData[i]; + for (int i = 0; i < obj.QRPositionData.Length; i++) + obj.QRPositionData[i] = this.QRPositionData[i]; + if (obj.image != null) + { + obj.image.Dispose(); + obj.image = null; + } + + //이미지를 복사해준다. 210121 + if (this.image != null) + { + obj.image = new Emgu.CV.Image(this.image.Size); + this.image.CopyTo(obj.image); + } + + //바코드 데이터를 복사해준다. + obj.barcodelist = new List(); + if (this.barcodelist.Count > 0) + { + foreach (var bcd in this.barcodelist) + { + var newitema = new KeyenceBarcodeData + { + Angle = bcd.Angle, + CenterPX = new Point(bcd.CenterPX.X, bcd.CenterPX.Y), + Data = bcd.Data, + LabelPosition = bcd.LabelPosition, + UserActive = bcd.UserActive, + sym = bcd.sym, + }; + + newitema.vertex = new Point[bcd.vertex.Length]; + bcd.vertex.CopyTo(newitema.vertex, 0); + bcd.AmkorData.CopyTo(newitema.AmkorData); + obj.barcodelist.Add(newitema); + } + } + + } + } +} diff --git a/Handler/Project_form2/Component_Reel_CustInfo.cs b/Handler/Project_form2/Component_Reel_CustInfo.cs new file mode 100644 index 0000000..4cc4a21 --- /dev/null +++ b/Handler/Project_form2/Component_Reel_CustInfo.cs @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 템플릿에서 생성되었습니다. +// +// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다. +// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다. +// +//------------------------------------------------------------------------------ + +namespace Project +{ + using System; + using System.Collections.Generic; + + public partial class Component_Reel_CustInfo + { + public string code { get; set; } + public string name { get; set; } + } +} diff --git a/Handler/Project_form2/Component_Reel_CustRule.cs b/Handler/Project_form2/Component_Reel_CustRule.cs new file mode 100644 index 0000000..1dce74b --- /dev/null +++ b/Handler/Project_form2/Component_Reel_CustRule.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 템플릿에서 생성되었습니다. +// +// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다. +// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다. +// +//------------------------------------------------------------------------------ + +namespace Project +{ + using System; + using System.Collections.Generic; + + public partial class Component_Reel_CustRule + { + public int idx { get; set; } + public string code { get; set; } + public string pre { get; set; } + public string pos { get; set; } + public Nullable len { get; set; } + public string exp { get; set; } + } +} diff --git a/Handler/Project_form2/Component_Reel_Info.cs b/Handler/Project_form2/Component_Reel_Info.cs new file mode 100644 index 0000000..8ac8a1c --- /dev/null +++ b/Handler/Project_form2/Component_Reel_Info.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 템플릿에서 생성되었습니다. +// +// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다. +// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다. +// +//------------------------------------------------------------------------------ + +namespace Project +{ + using System; + using System.Collections.Generic; + + public partial class Component_Reel_Info + { + public int idx { get; set; } + public string CUST { get; set; } + public string AMKSID { get; set; } + public string CUST_PARTNO { get; set; } + public string MFG_PARTNO { get; set; } + } +} diff --git a/Handler/Project_form2/Component_Reel_Result.cs b/Handler/Project_form2/Component_Reel_Result.cs new file mode 100644 index 0000000..eb8d82e --- /dev/null +++ b/Handler/Project_form2/Component_Reel_Result.cs @@ -0,0 +1,44 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 템플릿에서 생성되었습니다. +// +// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다. +// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다. +// +//------------------------------------------------------------------------------ + +namespace Project +{ + using System; + using System.Collections.Generic; + + public partial class Component_Reel_Result + { + public int idx { get; set; } + public System.DateTime STIME { get; set; } + public Nullable ETIME { get; set; } + public Nullable PTIME { get; set; } + public string PDATE { get; set; } + public string JTYPE { get; set; } + public string JGUID { get; set; } + public string SID { get; set; } + public string SID0 { get; set; } + public string RID { get; set; } + public string RID0 { get; set; } + public string RSN { get; set; } + public string QR { get; set; } + public string ZPL { get; set; } + public string POS { get; set; } + public string LOC { get; set; } + public Nullable ANGLE { get; set; } + public Nullable QTY { get; set; } + public Nullable QTY0 { get; set; } + public string VLOT { get; set; } + public string VNAME { get; set; } + public string MFGDATE { get; set; } + public Nullable PRNATTACH { get; set; } + public Nullable PRNVALID { get; set; } + public string REMARK { get; set; } + public System.DateTime wdate { get; set; } + } +} diff --git a/Handler/Project_form2/Component_Reel_SIDConv.cs b/Handler/Project_form2/Component_Reel_SIDConv.cs new file mode 100644 index 0000000..936c71c --- /dev/null +++ b/Handler/Project_form2/Component_Reel_SIDConv.cs @@ -0,0 +1,29 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 템플릿에서 생성되었습니다. +// +// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다. +// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다. +// +//------------------------------------------------------------------------------ + +namespace Project +{ + using System; + using System.Collections.Generic; + + public partial class Component_Reel_SIDConv + { + public int idx { get; set; } + public string M101 { get; set; } + public string M103 { get; set; } + public string M106 { get; set; } + public string M108 { get; set; } + public string M103_2 { get; set; } + public string M101_2 { get; set; } + public Nullable Chk { get; set; } + public string SIDFrom { get; set; } + public string SIDTo { get; set; } + public string Remark { get; set; } + } +} diff --git a/Handler/Project_form2/Component_Reel_SIDInfo.cs b/Handler/Project_form2/Component_Reel_SIDInfo.cs new file mode 100644 index 0000000..777d305 --- /dev/null +++ b/Handler/Project_form2/Component_Reel_SIDInfo.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 템플릿에서 생성되었습니다. +// +// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다. +// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다. +// +//------------------------------------------------------------------------------ + +namespace Project +{ + using System; + using System.Collections.Generic; + + public partial class Component_Reel_SIDInfo + { + public string SID { get; set; } + public string CustCode { get; set; } + public string CustName { get; set; } + public string VenderName { get; set; } + public string PartNo { get; set; } + public string PrintPosition { get; set; } + public string Remark { get; set; } + } +} diff --git a/Handler/Project_form2/DSList.Designer.cs b/Handler/Project_form2/DSList.Designer.cs new file mode 100644 index 0000000..444fde0 --- /dev/null +++ b/Handler/Project_form2/DSList.Designer.cs @@ -0,0 +1,2378 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +#pragma warning disable 1591 + +namespace Project { + + + /// + ///Represents a strongly typed in-memory cache of data. + /// + [global::System.Serializable()] + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] + [global::System.Xml.Serialization.XmlRootAttribute("DSList")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] + public partial class DSList : global::System.Data.DataSet { + + private Component_Reel_CustRuleDataTable tableComponent_Reel_CustRule; + + private SupplyDataTable tableSupply; + + private SIDConvertDataTable tableSIDConvert; + + private global::System.Data.SchemaSerializationMode _schemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public DSList() { + this.BeginInit(); + this.InitClass(); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + base.Relations.CollectionChanged += schemaChangedHandler; + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected DSList(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context, false) { + if ((this.IsBinarySerialized(info, context) == true)) { + this.InitVars(false); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + this.Tables.CollectionChanged += schemaChangedHandler1; + this.Relations.CollectionChanged += schemaChangedHandler1; + return; + } + string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); + if ((this.DetermineSchemaSerializationMode(info, context) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { + global::System.Data.DataSet ds = new global::System.Data.DataSet(); + ds.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); + if ((ds.Tables["Component_Reel_CustRule"] != null)) { + base.Tables.Add(new Component_Reel_CustRuleDataTable(ds.Tables["Component_Reel_CustRule"])); + } + if ((ds.Tables["Supply"] != null)) { + base.Tables.Add(new SupplyDataTable(ds.Tables["Supply"])); + } + if ((ds.Tables["SIDConvert"] != null)) { + base.Tables.Add(new SIDConvertDataTable(ds.Tables["SIDConvert"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); + } + this.GetSerializationData(info, context); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + this.Relations.CollectionChanged += schemaChangedHandler; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public Component_Reel_CustRuleDataTable Component_Reel_CustRule { + get { + return this.tableComponent_Reel_CustRule; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public SupplyDataTable Supply { + get { + return this.tableSupply; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public SIDConvertDataTable SIDConvert { + get { + return this.tableSIDConvert; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.BrowsableAttribute(true)] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Visible)] + public override global::System.Data.SchemaSerializationMode SchemaSerializationMode { + get { + return this._schemaSerializationMode; + } + set { + this._schemaSerializationMode = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new global::System.Data.DataTableCollection Tables { + get { + return base.Tables; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new global::System.Data.DataRelationCollection Relations { + get { + return base.Relations; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void InitializeDerivedDataSet() { + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public override global::System.Data.DataSet Clone() { + DSList cln = ((DSList)(base.Clone())); + cln.InitVars(); + cln.SchemaSerializationMode = this.SchemaSerializationMode; + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override bool ShouldSerializeTables() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override bool ShouldSerializeRelations() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void ReadXmlSerializable(global::System.Xml.XmlReader reader) { + if ((this.DetermineSchemaSerializationMode(reader) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { + this.Reset(); + global::System.Data.DataSet ds = new global::System.Data.DataSet(); + ds.ReadXml(reader); + if ((ds.Tables["Component_Reel_CustRule"] != null)) { + base.Tables.Add(new Component_Reel_CustRuleDataTable(ds.Tables["Component_Reel_CustRule"])); + } + if ((ds.Tables["Supply"] != null)) { + base.Tables.Add(new SupplyDataTable(ds.Tables["Supply"])); + } + if ((ds.Tables["SIDConvert"] != null)) { + base.Tables.Add(new SIDConvertDataTable(ds.Tables["SIDConvert"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXml(reader); + this.InitVars(); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Xml.Schema.XmlSchema GetSchemaSerializable() { + global::System.IO.MemoryStream stream = new global::System.IO.MemoryStream(); + this.WriteXmlSchema(new global::System.Xml.XmlTextWriter(stream, null)); + stream.Position = 0; + return global::System.Xml.Schema.XmlSchema.Read(new global::System.Xml.XmlTextReader(stream), null); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal void InitVars() { + this.InitVars(true); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal void InitVars(bool initTable) { + this.tableComponent_Reel_CustRule = ((Component_Reel_CustRuleDataTable)(base.Tables["Component_Reel_CustRule"])); + if ((initTable == true)) { + if ((this.tableComponent_Reel_CustRule != null)) { + this.tableComponent_Reel_CustRule.InitVars(); + } + } + this.tableSupply = ((SupplyDataTable)(base.Tables["Supply"])); + if ((initTable == true)) { + if ((this.tableSupply != null)) { + this.tableSupply.InitVars(); + } + } + this.tableSIDConvert = ((SIDConvertDataTable)(base.Tables["SIDConvert"])); + if ((initTable == true)) { + if ((this.tableSIDConvert != null)) { + this.tableSIDConvert.InitVars(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitClass() { + this.DataSetName = "DSList"; + this.Prefix = ""; + this.Namespace = "http://tempuri.org/DSList.xsd"; + this.EnforceConstraints = true; + this.SchemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; + this.tableComponent_Reel_CustRule = new Component_Reel_CustRuleDataTable(); + base.Tables.Add(this.tableComponent_Reel_CustRule); + this.tableSupply = new SupplyDataTable(); + base.Tables.Add(this.tableSupply); + this.tableSIDConvert = new SIDConvertDataTable(); + base.Tables.Add(this.tableSIDConvert); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private bool ShouldSerializeComponent_Reel_CustRule() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private bool ShouldSerializeSupply() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private bool ShouldSerializeSIDConvert() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void SchemaChanged(object sender, global::System.ComponentModel.CollectionChangeEventArgs e) { + if ((e.Action == global::System.ComponentModel.CollectionChangeAction.Remove)) { + this.InitVars(); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + DSList ds = new DSList(); + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + global::System.Xml.Schema.XmlSchemaAny any = new global::System.Xml.Schema.XmlSchemaAny(); + any.Namespace = ds.Namespace; + sequence.Items.Add(any); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public delegate void Component_Reel_CustRuleRowChangeEventHandler(object sender, Component_Reel_CustRuleRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public delegate void SupplyRowChangeEventHandler(object sender, SupplyRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public delegate void SIDConvertRowChangeEventHandler(object sender, SIDConvertRowChangeEvent e); + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class Component_Reel_CustRuleDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columncode; + + private global::System.Data.DataColumn columnpre; + + private global::System.Data.DataColumn columnpos; + + private global::System.Data.DataColumn columnlen; + + private global::System.Data.DataColumn columnexp; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_CustRuleDataTable() { + this.TableName = "Component_Reel_CustRule"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal Component_Reel_CustRuleDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected Component_Reel_CustRuleDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn codeColumn { + get { + return this.columncode; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn preColumn { + get { + return this.columnpre; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn posColumn { + get { + return this.columnpos; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn lenColumn { + get { + return this.columnlen; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn expColumn { + get { + return this.columnexp; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_CustRuleRow this[int index] { + get { + return ((Component_Reel_CustRuleRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event Component_Reel_CustRuleRowChangeEventHandler Component_Reel_CustRuleRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event Component_Reel_CustRuleRowChangeEventHandler Component_Reel_CustRuleRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event Component_Reel_CustRuleRowChangeEventHandler Component_Reel_CustRuleRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event Component_Reel_CustRuleRowChangeEventHandler Component_Reel_CustRuleRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void AddComponent_Reel_CustRuleRow(Component_Reel_CustRuleRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_CustRuleRow AddComponent_Reel_CustRuleRow(string code, string pre, string pos, int len, string exp) { + Component_Reel_CustRuleRow rowComponent_Reel_CustRuleRow = ((Component_Reel_CustRuleRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + code, + pre, + pos, + len, + exp}; + rowComponent_Reel_CustRuleRow.ItemArray = columnValuesArray; + this.Rows.Add(rowComponent_Reel_CustRuleRow); + return rowComponent_Reel_CustRuleRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_CustRuleRow FindBycode(string code) { + return ((Component_Reel_CustRuleRow)(this.Rows.Find(new object[] { + code}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public override global::System.Data.DataTable Clone() { + Component_Reel_CustRuleDataTable cln = ((Component_Reel_CustRuleDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new Component_Reel_CustRuleDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal void InitVars() { + this.columncode = base.Columns["code"]; + this.columnpre = base.Columns["pre"]; + this.columnpos = base.Columns["pos"]; + this.columnlen = base.Columns["len"]; + this.columnexp = base.Columns["exp"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitClass() { + this.columncode = new global::System.Data.DataColumn("code", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columncode); + this.columnpre = new global::System.Data.DataColumn("pre", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnpre); + this.columnpos = new global::System.Data.DataColumn("pos", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnpos); + this.columnlen = new global::System.Data.DataColumn("len", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnlen); + this.columnexp = new global::System.Data.DataColumn("exp", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnexp); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columncode}, true)); + this.columncode.AllowDBNull = false; + this.columncode.Unique = true; + this.columncode.MaxLength = 10; + this.columnpre.MaxLength = 20; + this.columnpos.MaxLength = 20; + this.columnexp.MaxLength = 100; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_CustRuleRow NewComponent_Reel_CustRuleRow() { + return ((Component_Reel_CustRuleRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new Component_Reel_CustRuleRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(Component_Reel_CustRuleRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.Component_Reel_CustRuleRowChanged != null)) { + this.Component_Reel_CustRuleRowChanged(this, new Component_Reel_CustRuleRowChangeEvent(((Component_Reel_CustRuleRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.Component_Reel_CustRuleRowChanging != null)) { + this.Component_Reel_CustRuleRowChanging(this, new Component_Reel_CustRuleRowChangeEvent(((Component_Reel_CustRuleRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.Component_Reel_CustRuleRowDeleted != null)) { + this.Component_Reel_CustRuleRowDeleted(this, new Component_Reel_CustRuleRowChangeEvent(((Component_Reel_CustRuleRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.Component_Reel_CustRuleRowDeleting != null)) { + this.Component_Reel_CustRuleRowDeleting(this, new Component_Reel_CustRuleRowChangeEvent(((Component_Reel_CustRuleRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void RemoveComponent_Reel_CustRuleRow(Component_Reel_CustRuleRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DSList ds = new DSList(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "Component_Reel_CustRuleDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class SupplyDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnTITLE; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public SupplyDataTable() { + this.TableName = "Supply"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal SupplyDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected SupplyDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn TITLEColumn { + get { + return this.columnTITLE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public SupplyRow this[int index] { + get { + return ((SupplyRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event SupplyRowChangeEventHandler SupplyRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event SupplyRowChangeEventHandler SupplyRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event SupplyRowChangeEventHandler SupplyRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event SupplyRowChangeEventHandler SupplyRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void AddSupplyRow(SupplyRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public SupplyRow AddSupplyRow(string TITLE) { + SupplyRow rowSupplyRow = ((SupplyRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + TITLE}; + rowSupplyRow.ItemArray = columnValuesArray; + this.Rows.Add(rowSupplyRow); + return rowSupplyRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public SupplyRow FindByTITLE(string TITLE) { + return ((SupplyRow)(this.Rows.Find(new object[] { + TITLE}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public override global::System.Data.DataTable Clone() { + SupplyDataTable cln = ((SupplyDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new SupplyDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal void InitVars() { + this.columnTITLE = base.Columns["TITLE"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitClass() { + this.columnTITLE = new global::System.Data.DataColumn("TITLE", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTITLE); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnTITLE}, true)); + this.columnTITLE.AllowDBNull = false; + this.columnTITLE.Unique = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public SupplyRow NewSupplyRow() { + return ((SupplyRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new SupplyRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(SupplyRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.SupplyRowChanged != null)) { + this.SupplyRowChanged(this, new SupplyRowChangeEvent(((SupplyRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.SupplyRowChanging != null)) { + this.SupplyRowChanging(this, new SupplyRowChangeEvent(((SupplyRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.SupplyRowDeleted != null)) { + this.SupplyRowDeleted(this, new SupplyRowChangeEvent(((SupplyRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.SupplyRowDeleting != null)) { + this.SupplyRowDeleting(this, new SupplyRowChangeEvent(((SupplyRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void RemoveSupplyRow(SupplyRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DSList ds = new DSList(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "SupplyDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class SIDConvertDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnSID101; + + private global::System.Data.DataColumn columnSID103; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public SIDConvertDataTable() { + this.TableName = "SIDConvert"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal SIDConvertDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected SIDConvertDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn SID101Column { + get { + return this.columnSID101; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn SID103Column { + get { + return this.columnSID103; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public SIDConvertRow this[int index] { + get { + return ((SIDConvertRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event SIDConvertRowChangeEventHandler SIDConvertRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event SIDConvertRowChangeEventHandler SIDConvertRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event SIDConvertRowChangeEventHandler SIDConvertRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event SIDConvertRowChangeEventHandler SIDConvertRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void AddSIDConvertRow(SIDConvertRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public SIDConvertRow AddSIDConvertRow(string SID101, string SID103) { + SIDConvertRow rowSIDConvertRow = ((SIDConvertRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + SID101, + SID103}; + rowSIDConvertRow.ItemArray = columnValuesArray; + this.Rows.Add(rowSIDConvertRow); + return rowSIDConvertRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public SIDConvertRow FindBySID101SID103(string SID101, string SID103) { + return ((SIDConvertRow)(this.Rows.Find(new object[] { + SID101, + SID103}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public override global::System.Data.DataTable Clone() { + SIDConvertDataTable cln = ((SIDConvertDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new SIDConvertDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal void InitVars() { + this.columnSID101 = base.Columns["SID101"]; + this.columnSID103 = base.Columns["SID103"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitClass() { + this.columnSID101 = new global::System.Data.DataColumn("SID101", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSID101); + this.columnSID103 = new global::System.Data.DataColumn("SID103", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSID103); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnSID101, + this.columnSID103}, true)); + this.columnSID101.AllowDBNull = false; + this.columnSID103.AllowDBNull = false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public SIDConvertRow NewSIDConvertRow() { + return ((SIDConvertRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new SIDConvertRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(SIDConvertRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.SIDConvertRowChanged != null)) { + this.SIDConvertRowChanged(this, new SIDConvertRowChangeEvent(((SIDConvertRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.SIDConvertRowChanging != null)) { + this.SIDConvertRowChanging(this, new SIDConvertRowChangeEvent(((SIDConvertRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.SIDConvertRowDeleted != null)) { + this.SIDConvertRowDeleted(this, new SIDConvertRowChangeEvent(((SIDConvertRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.SIDConvertRowDeleting != null)) { + this.SIDConvertRowDeleting(this, new SIDConvertRowChangeEvent(((SIDConvertRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void RemoveSIDConvertRow(SIDConvertRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DSList ds = new DSList(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "SIDConvertDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class Component_Reel_CustRuleRow : global::System.Data.DataRow { + + private Component_Reel_CustRuleDataTable tableComponent_Reel_CustRule; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal Component_Reel_CustRuleRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableComponent_Reel_CustRule = ((Component_Reel_CustRuleDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string code { + get { + return ((string)(this[this.tableComponent_Reel_CustRule.codeColumn])); + } + set { + this[this.tableComponent_Reel_CustRule.codeColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string pre { + get { + if (this.IspreNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_CustRule.preColumn])); + } + } + set { + this[this.tableComponent_Reel_CustRule.preColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string pos { + get { + if (this.IsposNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_CustRule.posColumn])); + } + } + set { + this[this.tableComponent_Reel_CustRule.posColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public int len { + get { + if (this.IslenNull()) { + return 0; + } + else { + return ((int)(this[this.tableComponent_Reel_CustRule.lenColumn])); + } + } + set { + this[this.tableComponent_Reel_CustRule.lenColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string exp { + get { + if (this.IsexpNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_CustRule.expColumn])); + } + } + set { + this[this.tableComponent_Reel_CustRule.expColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IspreNull() { + return this.IsNull(this.tableComponent_Reel_CustRule.preColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetpreNull() { + this[this.tableComponent_Reel_CustRule.preColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsposNull() { + return this.IsNull(this.tableComponent_Reel_CustRule.posColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetposNull() { + this[this.tableComponent_Reel_CustRule.posColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IslenNull() { + return this.IsNull(this.tableComponent_Reel_CustRule.lenColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetlenNull() { + this[this.tableComponent_Reel_CustRule.lenColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsexpNull() { + return this.IsNull(this.tableComponent_Reel_CustRule.expColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetexpNull() { + this[this.tableComponent_Reel_CustRule.expColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class SupplyRow : global::System.Data.DataRow { + + private SupplyDataTable tableSupply; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal SupplyRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableSupply = ((SupplyDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string TITLE { + get { + return ((string)(this[this.tableSupply.TITLEColumn])); + } + set { + this[this.tableSupply.TITLEColumn] = value; + } + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class SIDConvertRow : global::System.Data.DataRow { + + private SIDConvertDataTable tableSIDConvert; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal SIDConvertRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableSIDConvert = ((SIDConvertDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string SID101 { + get { + return ((string)(this[this.tableSIDConvert.SID101Column])); + } + set { + this[this.tableSIDConvert.SID101Column] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string SID103 { + get { + return ((string)(this[this.tableSIDConvert.SID103Column])); + } + set { + this[this.tableSIDConvert.SID103Column] = value; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public class Component_Reel_CustRuleRowChangeEvent : global::System.EventArgs { + + private Component_Reel_CustRuleRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_CustRuleRowChangeEvent(Component_Reel_CustRuleRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_CustRuleRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public class SupplyRowChangeEvent : global::System.EventArgs { + + private SupplyRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public SupplyRowChangeEvent(SupplyRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public SupplyRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public class SIDConvertRowChangeEvent : global::System.EventArgs { + + private SIDConvertRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public SIDConvertRowChangeEvent(SIDConvertRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public SIDConvertRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + } +} +namespace Project.DSListTableAdapters { + + + /// + ///Represents the connection and commands used to retrieve and save data. + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DataObjectAttribute(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + + ", Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public partial class Component_Reel_CustRuleTableAdapter : global::System.ComponentModel.Component { + + private global::System.Data.SqlClient.SqlDataAdapter _adapter; + + private global::System.Data.SqlClient.SqlConnection _connection; + + private global::System.Data.SqlClient.SqlTransaction _transaction; + + private global::System.Data.SqlClient.SqlCommand[] _commandCollection; + + private bool _clearBeforeFill; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_CustRuleTableAdapter() { + this.ClearBeforeFill = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected internal global::System.Data.SqlClient.SqlDataAdapter Adapter { + get { + if ((this._adapter == null)) { + this.InitAdapter(); + } + return this._adapter; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal global::System.Data.SqlClient.SqlConnection Connection { + get { + if ((this._connection == null)) { + this.InitConnection(); + } + return this._connection; + } + set { + this._connection = value; + if ((this.Adapter.InsertCommand != null)) { + this.Adapter.InsertCommand.Connection = value; + } + if ((this.Adapter.DeleteCommand != null)) { + this.Adapter.DeleteCommand.Connection = value; + } + if ((this.Adapter.UpdateCommand != null)) { + this.Adapter.UpdateCommand.Connection = value; + } + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + if ((this.CommandCollection[i] != null)) { + ((global::System.Data.SqlClient.SqlCommand)(this.CommandCollection[i])).Connection = value; + } + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal global::System.Data.SqlClient.SqlTransaction Transaction { + get { + return this._transaction; + } + set { + this._transaction = value; + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + this.CommandCollection[i].Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.DeleteCommand != null))) { + this.Adapter.DeleteCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.InsertCommand != null))) { + this.Adapter.InsertCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.UpdateCommand != null))) { + this.Adapter.UpdateCommand.Transaction = this._transaction; + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected global::System.Data.SqlClient.SqlCommand[] CommandCollection { + get { + if ((this._commandCollection == null)) { + this.InitCommandCollection(); + } + return this._commandCollection; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool ClearBeforeFill { + get { + return this._clearBeforeFill; + } + set { + this._clearBeforeFill = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitAdapter() { + this._adapter = new global::System.Data.SqlClient.SqlDataAdapter(); + global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); + tableMapping.SourceTable = "Table"; + tableMapping.DataSetTable = "Component_Reel_CustRule"; + tableMapping.ColumnMappings.Add("code", "code"); + tableMapping.ColumnMappings.Add("pre", "pre"); + tableMapping.ColumnMappings.Add("pos", "pos"); + tableMapping.ColumnMappings.Add("len", "len"); + tableMapping.ColumnMappings.Add("exp", "exp"); + this._adapter.TableMappings.Add(tableMapping); + this._adapter.DeleteCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.DeleteCommand.Connection = this.Connection; + this._adapter.DeleteCommand.CommandText = @"DELETE FROM [Component_Reel_CustRule] WHERE (([code] = @Original_code) AND ((@IsNull_pre = 1 AND [pre] IS NULL) OR ([pre] = @Original_pre)) AND ((@IsNull_pos = 1 AND [pos] IS NULL) OR ([pos] = @Original_pos)) AND ((@IsNull_len = 1 AND [len] IS NULL) OR ([len] = @Original_len)) AND ((@IsNull_exp = 1 AND [exp] IS NULL) OR ([exp] = @Original_exp)))"; + this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_code", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "code", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_pre", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pre", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_pre", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pre", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_pos", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pos", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_pos", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pos", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_len", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "len", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_len", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "len", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_exp", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "exp", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_exp", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "exp", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.InsertCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.InsertCommand.Connection = this.Connection; + this._adapter.InsertCommand.CommandText = "INSERT INTO [Component_Reel_CustRule] ([code], [pre], [pos], [len], [exp]) VALUES" + + " (@code, @pre, @pos, @len, @exp);\r\nSELECT code, pre, pos, len, exp FROM Componen" + + "t_Reel_CustRule WHERE (code = @code)"; + this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@code", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "code", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@pre", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pre", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@pos", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pos", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@len", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "len", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@exp", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "exp", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.UpdateCommand.Connection = this.Connection; + this._adapter.UpdateCommand.CommandText = @"UPDATE [Component_Reel_CustRule] SET [code] = @code, [pre] = @pre, [pos] = @pos, [len] = @len, [exp] = @exp WHERE (([code] = @Original_code) AND ((@IsNull_pre = 1 AND [pre] IS NULL) OR ([pre] = @Original_pre)) AND ((@IsNull_pos = 1 AND [pos] IS NULL) OR ([pos] = @Original_pos)) AND ((@IsNull_len = 1 AND [len] IS NULL) OR ([len] = @Original_len)) AND ((@IsNull_exp = 1 AND [exp] IS NULL) OR ([exp] = @Original_exp))); +SELECT code, pre, pos, len, exp FROM Component_Reel_CustRule WHERE (code = @code)"; + this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@code", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "code", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@pre", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pre", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@pos", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pos", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@len", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "len", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@exp", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "exp", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_code", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "code", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_pre", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pre", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_pre", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pre", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_pos", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pos", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_pos", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pos", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_len", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "len", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_len", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "len", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_exp", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "exp", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_exp", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "exp", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitConnection() { + this._connection = new global::System.Data.SqlClient.SqlConnection(); + this._connection.ConnectionString = global::Project.Properties.Settings.Default.CS; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitCommandCollection() { + this._commandCollection = new global::System.Data.SqlClient.SqlCommand[1]; + this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[0].Connection = this.Connection; + this._commandCollection[0].CommandText = "SELECT Component_Reel_CustRule.*\r\nFROM Component_Reel_CustRule"; + this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] + public virtual int Fill(DSList.Component_Reel_CustRuleDataTable dataTable) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] + public virtual DSList.Component_Reel_CustRuleDataTable GetData() { + this.Adapter.SelectCommand = this.CommandCollection[0]; + DSList.Component_Reel_CustRuleDataTable dataTable = new DSList.Component_Reel_CustRuleDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DSList.Component_Reel_CustRuleDataTable dataTable) { + return this.Adapter.Update(dataTable); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DSList dataSet) { + return this.Adapter.Update(dataSet, "Component_Reel_CustRule"); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow dataRow) { + return this.Adapter.Update(new global::System.Data.DataRow[] { + dataRow}); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow[] dataRows) { + return this.Adapter.Update(dataRows); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, true)] + public virtual int Delete(string Original_code, string Original_pre, string Original_pos, global::System.Nullable Original_len, string Original_exp) { + if ((Original_code == null)) { + throw new global::System.ArgumentNullException("Original_code"); + } + else { + this.Adapter.DeleteCommand.Parameters[0].Value = ((string)(Original_code)); + } + if ((Original_pre == null)) { + this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[2].Value = ((string)(Original_pre)); + } + if ((Original_pos == null)) { + this.Adapter.DeleteCommand.Parameters[3].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[3].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[4].Value = ((string)(Original_pos)); + } + if ((Original_len.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[5].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[6].Value = ((int)(Original_len.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[5].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[6].Value = global::System.DBNull.Value; + } + if ((Original_exp == null)) { + this.Adapter.DeleteCommand.Parameters[7].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[8].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[7].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[8].Value = ((string)(Original_exp)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; + if (((this.Adapter.DeleteCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.DeleteCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.DeleteCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.DeleteCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] + public virtual int Insert(string code, string pre, string pos, global::System.Nullable len, string exp) { + if ((code == null)) { + throw new global::System.ArgumentNullException("code"); + } + else { + this.Adapter.InsertCommand.Parameters[0].Value = ((string)(code)); + } + if ((pre == null)) { + this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[1].Value = ((string)(pre)); + } + if ((pos == null)) { + this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[2].Value = ((string)(pos)); + } + if ((len.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[3].Value = ((int)(len.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; + } + if ((exp == null)) { + this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[4].Value = ((string)(exp)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; + if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.InsertCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.InsertCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update(string code, string pre, string pos, global::System.Nullable len, string exp, string Original_code, string Original_pre, string Original_pos, global::System.Nullable Original_len, string Original_exp) { + if ((code == null)) { + throw new global::System.ArgumentNullException("code"); + } + else { + this.Adapter.UpdateCommand.Parameters[0].Value = ((string)(code)); + } + if ((pre == null)) { + this.Adapter.UpdateCommand.Parameters[1].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[1].Value = ((string)(pre)); + } + if ((pos == null)) { + this.Adapter.UpdateCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[2].Value = ((string)(pos)); + } + if ((len.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[3].Value = ((int)(len.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[3].Value = global::System.DBNull.Value; + } + if ((exp == null)) { + this.Adapter.UpdateCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[4].Value = ((string)(exp)); + } + if ((Original_code == null)) { + throw new global::System.ArgumentNullException("Original_code"); + } + else { + this.Adapter.UpdateCommand.Parameters[5].Value = ((string)(Original_code)); + } + if ((Original_pre == null)) { + this.Adapter.UpdateCommand.Parameters[6].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[7].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[6].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[7].Value = ((string)(Original_pre)); + } + if ((Original_pos == null)) { + this.Adapter.UpdateCommand.Parameters[8].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[9].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[8].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[9].Value = ((string)(Original_pos)); + } + if ((Original_len.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[10].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[11].Value = ((int)(Original_len.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[10].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[11].Value = global::System.DBNull.Value; + } + if ((Original_exp == null)) { + this.Adapter.UpdateCommand.Parameters[12].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[13].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[12].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[13].Value = ((string)(Original_exp)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; + if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.UpdateCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.UpdateCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update(string pre, string pos, global::System.Nullable len, string exp, string Original_code, string Original_pre, string Original_pos, global::System.Nullable Original_len, string Original_exp) { + return this.Update(Original_code, pre, pos, len, exp, Original_code, Original_pre, Original_pos, Original_len, Original_exp); + } + } + + /// + ///TableAdapterManager is used to coordinate TableAdapters in the dataset to enable Hierarchical Update scenarios + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterManagerDesigner, Microsoft.VSD" + + "esigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapterManager")] + public partial class TableAdapterManager : global::System.ComponentModel.Component { + + private UpdateOrderOption _updateOrder; + + private Component_Reel_CustRuleTableAdapter _component_Reel_CustRuleTableAdapter; + + private bool _backupDataSetBeforeUpdate; + + private global::System.Data.IDbConnection _connection; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public UpdateOrderOption UpdateOrder { + get { + return this._updateOrder; + } + set { + this._updateOrder = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.EditorAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterManagerPropertyEditor, Microso" + + "ft.VSDesigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3" + + "a", "System.Drawing.Design.UITypeEditor")] + public Component_Reel_CustRuleTableAdapter Component_Reel_CustRuleTableAdapter { + get { + return this._component_Reel_CustRuleTableAdapter; + } + set { + this._component_Reel_CustRuleTableAdapter = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool BackupDataSetBeforeUpdate { + get { + return this._backupDataSetBeforeUpdate; + } + set { + this._backupDataSetBeforeUpdate = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public global::System.Data.IDbConnection Connection { + get { + if ((this._connection != null)) { + return this._connection; + } + if (((this._component_Reel_CustRuleTableAdapter != null) + && (this._component_Reel_CustRuleTableAdapter.Connection != null))) { + return this._component_Reel_CustRuleTableAdapter.Connection; + } + return null; + } + set { + this._connection = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int TableAdapterInstanceCount { + get { + int count = 0; + if ((this._component_Reel_CustRuleTableAdapter != null)) { + count = (count + 1); + } + return count; + } + } + + /// + ///Update rows in top-down order. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private int UpdateUpdatedRows(DSList dataSet, global::System.Collections.Generic.List allChangedRows, global::System.Collections.Generic.List allAddedRows) { + int result = 0; + if ((this._component_Reel_CustRuleTableAdapter != null)) { + global::System.Data.DataRow[] updatedRows = dataSet.Component_Reel_CustRule.Select(null, null, global::System.Data.DataViewRowState.ModifiedCurrent); + updatedRows = this.GetRealUpdatedRows(updatedRows, allAddedRows); + if (((updatedRows != null) + && (0 < updatedRows.Length))) { + result = (result + this._component_Reel_CustRuleTableAdapter.Update(updatedRows)); + allChangedRows.AddRange(updatedRows); + } + } + return result; + } + + /// + ///Insert rows in top-down order. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private int UpdateInsertedRows(DSList dataSet, global::System.Collections.Generic.List allAddedRows) { + int result = 0; + if ((this._component_Reel_CustRuleTableAdapter != null)) { + global::System.Data.DataRow[] addedRows = dataSet.Component_Reel_CustRule.Select(null, null, global::System.Data.DataViewRowState.Added); + if (((addedRows != null) + && (0 < addedRows.Length))) { + result = (result + this._component_Reel_CustRuleTableAdapter.Update(addedRows)); + allAddedRows.AddRange(addedRows); + } + } + return result; + } + + /// + ///Delete rows in bottom-up order. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private int UpdateDeletedRows(DSList dataSet, global::System.Collections.Generic.List allChangedRows) { + int result = 0; + if ((this._component_Reel_CustRuleTableAdapter != null)) { + global::System.Data.DataRow[] deletedRows = dataSet.Component_Reel_CustRule.Select(null, null, global::System.Data.DataViewRowState.Deleted); + if (((deletedRows != null) + && (0 < deletedRows.Length))) { + result = (result + this._component_Reel_CustRuleTableAdapter.Update(deletedRows)); + allChangedRows.AddRange(deletedRows); + } + } + return result; + } + + /// + ///Remove inserted rows that become updated rows after calling TableAdapter.Update(inserted rows) first + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private global::System.Data.DataRow[] GetRealUpdatedRows(global::System.Data.DataRow[] updatedRows, global::System.Collections.Generic.List allAddedRows) { + if (((updatedRows == null) + || (updatedRows.Length < 1))) { + return updatedRows; + } + if (((allAddedRows == null) + || (allAddedRows.Count < 1))) { + return updatedRows; + } + global::System.Collections.Generic.List realUpdatedRows = new global::System.Collections.Generic.List(); + for (int i = 0; (i < updatedRows.Length); i = (i + 1)) { + global::System.Data.DataRow row = updatedRows[i]; + if ((allAddedRows.Contains(row) == false)) { + realUpdatedRows.Add(row); + } + } + return realUpdatedRows.ToArray(); + } + + /// + ///Update all changes to the dataset. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public virtual int UpdateAll(DSList dataSet) { + if ((dataSet == null)) { + throw new global::System.ArgumentNullException("dataSet"); + } + if ((dataSet.HasChanges() == false)) { + return 0; + } + if (((this._component_Reel_CustRuleTableAdapter != null) + && (this.MatchTableAdapterConnection(this._component_Reel_CustRuleTableAdapter.Connection) == false))) { + throw new global::System.ArgumentException("TableAdapterManager에서 관리하는 모든 TableAdapter에는 동일한 연결 문자열을 사용해야 합니다."); + } + global::System.Data.IDbConnection workConnection = this.Connection; + if ((workConnection == null)) { + throw new global::System.ApplicationException("TableAdapterManager에 연결 정보가 없습니다. 각 TableAdapterManager TableAdapter 속성을 올바른 Tabl" + + "eAdapter 인스턴스로 설정하십시오."); + } + bool workConnOpened = false; + if (((workConnection.State & global::System.Data.ConnectionState.Broken) + == global::System.Data.ConnectionState.Broken)) { + workConnection.Close(); + } + if ((workConnection.State == global::System.Data.ConnectionState.Closed)) { + workConnection.Open(); + workConnOpened = true; + } + global::System.Data.IDbTransaction workTransaction = workConnection.BeginTransaction(); + if ((workTransaction == null)) { + throw new global::System.ApplicationException("트랜잭션을 시작할 수 없습니다. 현재 데이터 연결에서 트랜잭션이 지원되지 않거나 현재 상태에서 트랜잭션을 시작할 수 없습니다."); + } + global::System.Collections.Generic.List allChangedRows = new global::System.Collections.Generic.List(); + global::System.Collections.Generic.List allAddedRows = new global::System.Collections.Generic.List(); + global::System.Collections.Generic.List adaptersWithAcceptChangesDuringUpdate = new global::System.Collections.Generic.List(); + global::System.Collections.Generic.Dictionary revertConnections = new global::System.Collections.Generic.Dictionary(); + int result = 0; + global::System.Data.DataSet backupDataSet = null; + if (this.BackupDataSetBeforeUpdate) { + backupDataSet = new global::System.Data.DataSet(); + backupDataSet.Merge(dataSet); + } + try { + // ---- Prepare for update ----------- + // + if ((this._component_Reel_CustRuleTableAdapter != null)) { + revertConnections.Add(this._component_Reel_CustRuleTableAdapter, this._component_Reel_CustRuleTableAdapter.Connection); + this._component_Reel_CustRuleTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(workConnection)); + this._component_Reel_CustRuleTableAdapter.Transaction = ((global::System.Data.SqlClient.SqlTransaction)(workTransaction)); + if (this._component_Reel_CustRuleTableAdapter.Adapter.AcceptChangesDuringUpdate) { + this._component_Reel_CustRuleTableAdapter.Adapter.AcceptChangesDuringUpdate = false; + adaptersWithAcceptChangesDuringUpdate.Add(this._component_Reel_CustRuleTableAdapter.Adapter); + } + } + // + //---- Perform updates ----------- + // + if ((this.UpdateOrder == UpdateOrderOption.UpdateInsertDelete)) { + result = (result + this.UpdateUpdatedRows(dataSet, allChangedRows, allAddedRows)); + result = (result + this.UpdateInsertedRows(dataSet, allAddedRows)); + } + else { + result = (result + this.UpdateInsertedRows(dataSet, allAddedRows)); + result = (result + this.UpdateUpdatedRows(dataSet, allChangedRows, allAddedRows)); + } + result = (result + this.UpdateDeletedRows(dataSet, allChangedRows)); + // + //---- Commit updates ----------- + // + workTransaction.Commit(); + if ((0 < allAddedRows.Count)) { + global::System.Data.DataRow[] rows = new System.Data.DataRow[allAddedRows.Count]; + allAddedRows.CopyTo(rows); + for (int i = 0; (i < rows.Length); i = (i + 1)) { + global::System.Data.DataRow row = rows[i]; + row.AcceptChanges(); + } + } + if ((0 < allChangedRows.Count)) { + global::System.Data.DataRow[] rows = new System.Data.DataRow[allChangedRows.Count]; + allChangedRows.CopyTo(rows); + for (int i = 0; (i < rows.Length); i = (i + 1)) { + global::System.Data.DataRow row = rows[i]; + row.AcceptChanges(); + } + } + } + catch (global::System.Exception ex) { + workTransaction.Rollback(); + // ---- Restore the dataset ----------- + if (this.BackupDataSetBeforeUpdate) { + global::System.Diagnostics.Debug.Assert((backupDataSet != null)); + dataSet.Clear(); + dataSet.Merge(backupDataSet); + } + else { + if ((0 < allAddedRows.Count)) { + global::System.Data.DataRow[] rows = new System.Data.DataRow[allAddedRows.Count]; + allAddedRows.CopyTo(rows); + for (int i = 0; (i < rows.Length); i = (i + 1)) { + global::System.Data.DataRow row = rows[i]; + row.AcceptChanges(); + row.SetAdded(); + } + } + } + throw ex; + } + finally { + if (workConnOpened) { + workConnection.Close(); + } + if ((this._component_Reel_CustRuleTableAdapter != null)) { + this._component_Reel_CustRuleTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(revertConnections[this._component_Reel_CustRuleTableAdapter])); + this._component_Reel_CustRuleTableAdapter.Transaction = null; + } + if ((0 < adaptersWithAcceptChangesDuringUpdate.Count)) { + global::System.Data.Common.DataAdapter[] adapters = new System.Data.Common.DataAdapter[adaptersWithAcceptChangesDuringUpdate.Count]; + adaptersWithAcceptChangesDuringUpdate.CopyTo(adapters); + for (int i = 0; (i < adapters.Length); i = (i + 1)) { + global::System.Data.Common.DataAdapter adapter = adapters[i]; + adapter.AcceptChangesDuringUpdate = true; + } + } + } + return result; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected virtual void SortSelfReferenceRows(global::System.Data.DataRow[] rows, global::System.Data.DataRelation relation, bool childFirst) { + global::System.Array.Sort(rows, new SelfReferenceComparer(relation, childFirst)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected virtual bool MatchTableAdapterConnection(global::System.Data.IDbConnection inputConnection) { + if ((this._connection != null)) { + return true; + } + if (((this.Connection == null) + || (inputConnection == null))) { + return true; + } + if (string.Equals(this.Connection.ConnectionString, inputConnection.ConnectionString, global::System.StringComparison.Ordinal)) { + return true; + } + return false; + } + + /// + ///Update Order Option + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public enum UpdateOrderOption { + + InsertUpdateDelete = 0, + + UpdateInsertDelete = 1, + } + + /// + ///Used to sort self-referenced table's rows + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private class SelfReferenceComparer : object, global::System.Collections.Generic.IComparer { + + private global::System.Data.DataRelation _relation; + + private int _childFirst; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal SelfReferenceComparer(global::System.Data.DataRelation relation, bool childFirst) { + this._relation = relation; + if (childFirst) { + this._childFirst = -1; + } + else { + this._childFirst = 1; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private global::System.Data.DataRow GetRoot(global::System.Data.DataRow row, out int distance) { + global::System.Diagnostics.Debug.Assert((row != null)); + global::System.Data.DataRow root = row; + distance = 0; + + global::System.Collections.Generic.IDictionary traversedRows = new global::System.Collections.Generic.Dictionary(); + traversedRows[row] = row; + + global::System.Data.DataRow parent = row.GetParentRow(this._relation, global::System.Data.DataRowVersion.Default); + for ( + ; ((parent != null) + && (traversedRows.ContainsKey(parent) == false)); + ) { + distance = (distance + 1); + root = parent; + traversedRows[parent] = parent; + parent = parent.GetParentRow(this._relation, global::System.Data.DataRowVersion.Default); + } + + if ((distance == 0)) { + traversedRows.Clear(); + traversedRows[row] = row; + parent = row.GetParentRow(this._relation, global::System.Data.DataRowVersion.Original); + for ( + ; ((parent != null) + && (traversedRows.ContainsKey(parent) == false)); + ) { + distance = (distance + 1); + root = parent; + traversedRows[parent] = parent; + parent = parent.GetParentRow(this._relation, global::System.Data.DataRowVersion.Original); + } + } + + return root; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public int Compare(global::System.Data.DataRow row1, global::System.Data.DataRow row2) { + if (object.ReferenceEquals(row1, row2)) { + return 0; + } + if ((row1 == null)) { + return -1; + } + if ((row2 == null)) { + return 1; + } + + int distance1 = 0; + global::System.Data.DataRow root1 = this.GetRoot(row1, out distance1); + + int distance2 = 0; + global::System.Data.DataRow root2 = this.GetRoot(row2, out distance2); + + if (object.ReferenceEquals(root1, root2)) { + return (this._childFirst * distance1.CompareTo(distance2)); + } + else { + global::System.Diagnostics.Debug.Assert(((root1.Table != null) + && (root2.Table != null))); + if ((root1.Table.Rows.IndexOf(root1) < root2.Table.Rows.IndexOf(root2))) { + return -1; + } + else { + return 1; + } + } + } + } + } +} + +#pragma warning restore 1591 \ No newline at end of file diff --git a/Handler/Project_form2/DSList.cs b/Handler/Project_form2/DSList.cs new file mode 100644 index 0000000..c5e49fa --- /dev/null +++ b/Handler/Project_form2/DSList.cs @@ -0,0 +1,8 @@ +namespace Project +{ + + + partial class DSList + { + } +} diff --git a/Handler/Project_form2/DSList.xsc b/Handler/Project_form2/DSList.xsc new file mode 100644 index 0000000..05b0199 --- /dev/null +++ b/Handler/Project_form2/DSList.xsc @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/Handler/Project_form2/DSList.xsd b/Handler/Project_form2/DSList.xsd new file mode 100644 index 0000000..cae56c8 --- /dev/null +++ b/Handler/Project_form2/DSList.xsd @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + DELETE FROM [Component_Reel_CustRule] WHERE (([code] = @Original_code) AND ((@IsNull_pre = 1 AND [pre] IS NULL) OR ([pre] = @Original_pre)) AND ((@IsNull_pos = 1 AND [pos] IS NULL) OR ([pos] = @Original_pos)) AND ((@IsNull_len = 1 AND [len] IS NULL) OR ([len] = @Original_len)) AND ((@IsNull_exp = 1 AND [exp] IS NULL) OR ([exp] = @Original_exp))) + + + + + + + + + + + + + + + + INSERT INTO [Component_Reel_CustRule] ([code], [pre], [pos], [len], [exp]) VALUES (@code, @pre, @pos, @len, @exp); +SELECT code, pre, pos, len, exp FROM Component_Reel_CustRule WHERE (code = @code) + + + + + + + + + + + + SELECT Component_Reel_CustRule.* +FROM Component_Reel_CustRule + + + + + + UPDATE [Component_Reel_CustRule] SET [code] = @code, [pre] = @pre, [pos] = @pos, [len] = @len, [exp] = @exp WHERE (([code] = @Original_code) AND ((@IsNull_pre = 1 AND [pre] IS NULL) OR ([pre] = @Original_pre)) AND ((@IsNull_pos = 1 AND [pos] IS NULL) OR ([pos] = @Original_pos)) AND ((@IsNull_len = 1 AND [len] IS NULL) OR ([len] = @Original_len)) AND ((@IsNull_exp = 1 AND [exp] IS NULL) OR ([exp] = @Original_exp))); +SELECT code, pre, pos, len, exp FROM Component_Reel_CustRule WHERE (code = @code) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Handler/Project_form2/DSList.xss b/Handler/Project_form2/DSList.xss new file mode 100644 index 0000000..612fae9 --- /dev/null +++ b/Handler/Project_form2/DSList.xss @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/Handler/Project_form2/DataSet1.Designer.cs b/Handler/Project_form2/DataSet1.Designer.cs new file mode 100644 index 0000000..4d71715 --- /dev/null +++ b/Handler/Project_form2/DataSet1.Designer.cs @@ -0,0 +1,11844 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +#pragma warning disable 1591 + +namespace Project { + + + /// + ///Represents a strongly typed in-memory cache of data. + /// + [global::System.Serializable()] + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] + [global::System.Xml.Serialization.XmlRootAttribute("DataSet1")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] + public partial class DataSet1 : global::System.Data.DataSet { + + private Component_Reel_SIDConvDataTable tableComponent_Reel_SIDConv; + + private Component_Reel_SIDInfoDataTable tableComponent_Reel_SIDInfo; + + private Component_Reel_ResultDataTable tableComponent_Reel_Result; + + private Component_Reel_CustRuleDataTable tableComponent_Reel_CustRule; + + private Component_Reel_CustInfoDataTable tableComponent_Reel_CustInfo; + + private UsersDataTable tableUsers; + + private MCModelDataTable tableMCModel; + + private languageDataTable tablelanguage; + + private ModelDataTable tableModel; + + private BCDDataDataTable tableBCDData; + + private UserSIDDataTable tableUserSID; + + private MailFormatDataTable tableMailFormat; + + private MailRecipientDataTable tableMailRecipient; + + private SIDHistoryDataTable tableSIDHistory; + + private global::System.Data.SchemaSerializationMode _schemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public DataSet1() { + this.BeginInit(); + this.InitClass(); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + base.Relations.CollectionChanged += schemaChangedHandler; + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected DataSet1(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context, false) { + if ((this.IsBinarySerialized(info, context) == true)) { + this.InitVars(false); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + this.Tables.CollectionChanged += schemaChangedHandler1; + this.Relations.CollectionChanged += schemaChangedHandler1; + return; + } + string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); + if ((this.DetermineSchemaSerializationMode(info, context) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { + global::System.Data.DataSet ds = new global::System.Data.DataSet(); + ds.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); + if ((ds.Tables["Component_Reel_SIDConv"] != null)) { + base.Tables.Add(new Component_Reel_SIDConvDataTable(ds.Tables["Component_Reel_SIDConv"])); + } + if ((ds.Tables["Component_Reel_SIDInfo"] != null)) { + base.Tables.Add(new Component_Reel_SIDInfoDataTable(ds.Tables["Component_Reel_SIDInfo"])); + } + if ((ds.Tables["Component_Reel_Result"] != null)) { + base.Tables.Add(new Component_Reel_ResultDataTable(ds.Tables["Component_Reel_Result"])); + } + if ((ds.Tables["Component_Reel_CustRule"] != null)) { + base.Tables.Add(new Component_Reel_CustRuleDataTable(ds.Tables["Component_Reel_CustRule"])); + } + if ((ds.Tables["Component_Reel_CustInfo"] != null)) { + base.Tables.Add(new Component_Reel_CustInfoDataTable(ds.Tables["Component_Reel_CustInfo"])); + } + if ((ds.Tables["Users"] != null)) { + base.Tables.Add(new UsersDataTable(ds.Tables["Users"])); + } + if ((ds.Tables["MCModel"] != null)) { + base.Tables.Add(new MCModelDataTable(ds.Tables["MCModel"])); + } + if ((ds.Tables["language"] != null)) { + base.Tables.Add(new languageDataTable(ds.Tables["language"])); + } + if ((ds.Tables["Model"] != null)) { + base.Tables.Add(new ModelDataTable(ds.Tables["Model"])); + } + if ((ds.Tables["BCDData"] != null)) { + base.Tables.Add(new BCDDataDataTable(ds.Tables["BCDData"])); + } + if ((ds.Tables["UserSID"] != null)) { + base.Tables.Add(new UserSIDDataTable(ds.Tables["UserSID"])); + } + if ((ds.Tables["MailFormat"] != null)) { + base.Tables.Add(new MailFormatDataTable(ds.Tables["MailFormat"])); + } + if ((ds.Tables["MailRecipient"] != null)) { + base.Tables.Add(new MailRecipientDataTable(ds.Tables["MailRecipient"])); + } + if ((ds.Tables["SIDHistory"] != null)) { + base.Tables.Add(new SIDHistoryDataTable(ds.Tables["SIDHistory"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); + } + this.GetSerializationData(info, context); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + this.Relations.CollectionChanged += schemaChangedHandler; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public Component_Reel_SIDConvDataTable Component_Reel_SIDConv { + get { + return this.tableComponent_Reel_SIDConv; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public Component_Reel_SIDInfoDataTable Component_Reel_SIDInfo { + get { + return this.tableComponent_Reel_SIDInfo; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public Component_Reel_ResultDataTable Component_Reel_Result { + get { + return this.tableComponent_Reel_Result; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public Component_Reel_CustRuleDataTable Component_Reel_CustRule { + get { + return this.tableComponent_Reel_CustRule; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public Component_Reel_CustInfoDataTable Component_Reel_CustInfo { + get { + return this.tableComponent_Reel_CustInfo; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public UsersDataTable Users { + get { + return this.tableUsers; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public MCModelDataTable MCModel { + get { + return this.tableMCModel; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public languageDataTable language { + get { + return this.tablelanguage; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public ModelDataTable Model { + get { + return this.tableModel; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public BCDDataDataTable BCDData { + get { + return this.tableBCDData; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public UserSIDDataTable UserSID { + get { + return this.tableUserSID; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public MailFormatDataTable MailFormat { + get { + return this.tableMailFormat; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public MailRecipientDataTable MailRecipient { + get { + return this.tableMailRecipient; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public SIDHistoryDataTable SIDHistory { + get { + return this.tableSIDHistory; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.BrowsableAttribute(true)] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Visible)] + public override global::System.Data.SchemaSerializationMode SchemaSerializationMode { + get { + return this._schemaSerializationMode; + } + set { + this._schemaSerializationMode = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new global::System.Data.DataTableCollection Tables { + get { + return base.Tables; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new global::System.Data.DataRelationCollection Relations { + get { + return base.Relations; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void InitializeDerivedDataSet() { + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public override global::System.Data.DataSet Clone() { + DataSet1 cln = ((DataSet1)(base.Clone())); + cln.InitVars(); + cln.SchemaSerializationMode = this.SchemaSerializationMode; + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override bool ShouldSerializeTables() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override bool ShouldSerializeRelations() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void ReadXmlSerializable(global::System.Xml.XmlReader reader) { + if ((this.DetermineSchemaSerializationMode(reader) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { + this.Reset(); + global::System.Data.DataSet ds = new global::System.Data.DataSet(); + ds.ReadXml(reader); + if ((ds.Tables["Component_Reel_SIDConv"] != null)) { + base.Tables.Add(new Component_Reel_SIDConvDataTable(ds.Tables["Component_Reel_SIDConv"])); + } + if ((ds.Tables["Component_Reel_SIDInfo"] != null)) { + base.Tables.Add(new Component_Reel_SIDInfoDataTable(ds.Tables["Component_Reel_SIDInfo"])); + } + if ((ds.Tables["Component_Reel_Result"] != null)) { + base.Tables.Add(new Component_Reel_ResultDataTable(ds.Tables["Component_Reel_Result"])); + } + if ((ds.Tables["Component_Reel_CustRule"] != null)) { + base.Tables.Add(new Component_Reel_CustRuleDataTable(ds.Tables["Component_Reel_CustRule"])); + } + if ((ds.Tables["Component_Reel_CustInfo"] != null)) { + base.Tables.Add(new Component_Reel_CustInfoDataTable(ds.Tables["Component_Reel_CustInfo"])); + } + if ((ds.Tables["Users"] != null)) { + base.Tables.Add(new UsersDataTable(ds.Tables["Users"])); + } + if ((ds.Tables["MCModel"] != null)) { + base.Tables.Add(new MCModelDataTable(ds.Tables["MCModel"])); + } + if ((ds.Tables["language"] != null)) { + base.Tables.Add(new languageDataTable(ds.Tables["language"])); + } + if ((ds.Tables["Model"] != null)) { + base.Tables.Add(new ModelDataTable(ds.Tables["Model"])); + } + if ((ds.Tables["BCDData"] != null)) { + base.Tables.Add(new BCDDataDataTable(ds.Tables["BCDData"])); + } + if ((ds.Tables["UserSID"] != null)) { + base.Tables.Add(new UserSIDDataTable(ds.Tables["UserSID"])); + } + if ((ds.Tables["MailFormat"] != null)) { + base.Tables.Add(new MailFormatDataTable(ds.Tables["MailFormat"])); + } + if ((ds.Tables["MailRecipient"] != null)) { + base.Tables.Add(new MailRecipientDataTable(ds.Tables["MailRecipient"])); + } + if ((ds.Tables["SIDHistory"] != null)) { + base.Tables.Add(new SIDHistoryDataTable(ds.Tables["SIDHistory"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXml(reader); + this.InitVars(); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Xml.Schema.XmlSchema GetSchemaSerializable() { + global::System.IO.MemoryStream stream = new global::System.IO.MemoryStream(); + this.WriteXmlSchema(new global::System.Xml.XmlTextWriter(stream, null)); + stream.Position = 0; + return global::System.Xml.Schema.XmlSchema.Read(new global::System.Xml.XmlTextReader(stream), null); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal void InitVars() { + this.InitVars(true); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal void InitVars(bool initTable) { + this.tableComponent_Reel_SIDConv = ((Component_Reel_SIDConvDataTable)(base.Tables["Component_Reel_SIDConv"])); + if ((initTable == true)) { + if ((this.tableComponent_Reel_SIDConv != null)) { + this.tableComponent_Reel_SIDConv.InitVars(); + } + } + this.tableComponent_Reel_SIDInfo = ((Component_Reel_SIDInfoDataTable)(base.Tables["Component_Reel_SIDInfo"])); + if ((initTable == true)) { + if ((this.tableComponent_Reel_SIDInfo != null)) { + this.tableComponent_Reel_SIDInfo.InitVars(); + } + } + this.tableComponent_Reel_Result = ((Component_Reel_ResultDataTable)(base.Tables["Component_Reel_Result"])); + if ((initTable == true)) { + if ((this.tableComponent_Reel_Result != null)) { + this.tableComponent_Reel_Result.InitVars(); + } + } + this.tableComponent_Reel_CustRule = ((Component_Reel_CustRuleDataTable)(base.Tables["Component_Reel_CustRule"])); + if ((initTable == true)) { + if ((this.tableComponent_Reel_CustRule != null)) { + this.tableComponent_Reel_CustRule.InitVars(); + } + } + this.tableComponent_Reel_CustInfo = ((Component_Reel_CustInfoDataTable)(base.Tables["Component_Reel_CustInfo"])); + if ((initTable == true)) { + if ((this.tableComponent_Reel_CustInfo != null)) { + this.tableComponent_Reel_CustInfo.InitVars(); + } + } + this.tableUsers = ((UsersDataTable)(base.Tables["Users"])); + if ((initTable == true)) { + if ((this.tableUsers != null)) { + this.tableUsers.InitVars(); + } + } + this.tableMCModel = ((MCModelDataTable)(base.Tables["MCModel"])); + if ((initTable == true)) { + if ((this.tableMCModel != null)) { + this.tableMCModel.InitVars(); + } + } + this.tablelanguage = ((languageDataTable)(base.Tables["language"])); + if ((initTable == true)) { + if ((this.tablelanguage != null)) { + this.tablelanguage.InitVars(); + } + } + this.tableModel = ((ModelDataTable)(base.Tables["Model"])); + if ((initTable == true)) { + if ((this.tableModel != null)) { + this.tableModel.InitVars(); + } + } + this.tableBCDData = ((BCDDataDataTable)(base.Tables["BCDData"])); + if ((initTable == true)) { + if ((this.tableBCDData != null)) { + this.tableBCDData.InitVars(); + } + } + this.tableUserSID = ((UserSIDDataTable)(base.Tables["UserSID"])); + if ((initTable == true)) { + if ((this.tableUserSID != null)) { + this.tableUserSID.InitVars(); + } + } + this.tableMailFormat = ((MailFormatDataTable)(base.Tables["MailFormat"])); + if ((initTable == true)) { + if ((this.tableMailFormat != null)) { + this.tableMailFormat.InitVars(); + } + } + this.tableMailRecipient = ((MailRecipientDataTable)(base.Tables["MailRecipient"])); + if ((initTable == true)) { + if ((this.tableMailRecipient != null)) { + this.tableMailRecipient.InitVars(); + } + } + this.tableSIDHistory = ((SIDHistoryDataTable)(base.Tables["SIDHistory"])); + if ((initTable == true)) { + if ((this.tableSIDHistory != null)) { + this.tableSIDHistory.InitVars(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitClass() { + this.DataSetName = "DataSet1"; + this.Prefix = ""; + this.Namespace = "http://tempuri.org/DataSet1.xsd"; + this.EnforceConstraints = true; + this.SchemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; + this.tableComponent_Reel_SIDConv = new Component_Reel_SIDConvDataTable(); + base.Tables.Add(this.tableComponent_Reel_SIDConv); + this.tableComponent_Reel_SIDInfo = new Component_Reel_SIDInfoDataTable(); + base.Tables.Add(this.tableComponent_Reel_SIDInfo); + this.tableComponent_Reel_Result = new Component_Reel_ResultDataTable(); + base.Tables.Add(this.tableComponent_Reel_Result); + this.tableComponent_Reel_CustRule = new Component_Reel_CustRuleDataTable(); + base.Tables.Add(this.tableComponent_Reel_CustRule); + this.tableComponent_Reel_CustInfo = new Component_Reel_CustInfoDataTable(); + base.Tables.Add(this.tableComponent_Reel_CustInfo); + this.tableUsers = new UsersDataTable(); + base.Tables.Add(this.tableUsers); + this.tableMCModel = new MCModelDataTable(); + base.Tables.Add(this.tableMCModel); + this.tablelanguage = new languageDataTable(); + base.Tables.Add(this.tablelanguage); + this.tableModel = new ModelDataTable(); + base.Tables.Add(this.tableModel); + this.tableBCDData = new BCDDataDataTable(); + base.Tables.Add(this.tableBCDData); + this.tableUserSID = new UserSIDDataTable(); + base.Tables.Add(this.tableUserSID); + this.tableMailFormat = new MailFormatDataTable(); + base.Tables.Add(this.tableMailFormat); + this.tableMailRecipient = new MailRecipientDataTable(); + base.Tables.Add(this.tableMailRecipient); + this.tableSIDHistory = new SIDHistoryDataTable(); + base.Tables.Add(this.tableSIDHistory); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private bool ShouldSerializeComponent_Reel_SIDConv() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private bool ShouldSerializeComponent_Reel_SIDInfo() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private bool ShouldSerializeComponent_Reel_Result() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private bool ShouldSerializeComponent_Reel_CustRule() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private bool ShouldSerializeComponent_Reel_CustInfo() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private bool ShouldSerializeUsers() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private bool ShouldSerializeMCModel() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private bool ShouldSerializelanguage() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private bool ShouldSerializeModel() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private bool ShouldSerializeBCDData() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private bool ShouldSerializeUserSID() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private bool ShouldSerializeMailFormat() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private bool ShouldSerializeMailRecipient() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private bool ShouldSerializeSIDHistory() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void SchemaChanged(object sender, global::System.ComponentModel.CollectionChangeEventArgs e) { + if ((e.Action == global::System.ComponentModel.CollectionChangeAction.Remove)) { + this.InitVars(); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + global::System.Xml.Schema.XmlSchemaAny any = new global::System.Xml.Schema.XmlSchemaAny(); + any.Namespace = ds.Namespace; + sequence.Items.Add(any); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public delegate void Component_Reel_SIDConvRowChangeEventHandler(object sender, Component_Reel_SIDConvRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public delegate void Component_Reel_SIDInfoRowChangeEventHandler(object sender, Component_Reel_SIDInfoRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public delegate void Component_Reel_ResultRowChangeEventHandler(object sender, Component_Reel_ResultRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public delegate void Component_Reel_CustRuleRowChangeEventHandler(object sender, Component_Reel_CustRuleRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public delegate void Component_Reel_CustInfoRowChangeEventHandler(object sender, Component_Reel_CustInfoRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public delegate void UsersRowChangeEventHandler(object sender, UsersRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public delegate void MCModelRowChangeEventHandler(object sender, MCModelRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public delegate void languageRowChangeEventHandler(object sender, languageRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public delegate void ModelRowChangeEventHandler(object sender, ModelRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public delegate void BCDDataRowChangeEventHandler(object sender, BCDDataRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public delegate void UserSIDRowChangeEventHandler(object sender, UserSIDRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public delegate void MailFormatRowChangeEventHandler(object sender, MailFormatRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public delegate void MailRecipientRowChangeEventHandler(object sender, MailRecipientRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public delegate void SIDHistoryRowChangeEventHandler(object sender, SIDHistoryRowChangeEvent e); + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class Component_Reel_SIDConvDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnidx; + + private global::System.Data.DataColumn columnM101; + + private global::System.Data.DataColumn columnM103; + + private global::System.Data.DataColumn columnM106; + + private global::System.Data.DataColumn columnRemark; + + private global::System.Data.DataColumn columnM108; + + private global::System.Data.DataColumn columnM103_2; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_SIDConvDataTable() { + this.TableName = "Component_Reel_SIDConv"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal Component_Reel_SIDConvDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected Component_Reel_SIDConvDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn idxColumn { + get { + return this.columnidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn M101Column { + get { + return this.columnM101; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn M103Column { + get { + return this.columnM103; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn M106Column { + get { + return this.columnM106; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn RemarkColumn { + get { + return this.columnRemark; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn M108Column { + get { + return this.columnM108; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn M103_2Column { + get { + return this.columnM103_2; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_SIDConvRow this[int index] { + get { + return ((Component_Reel_SIDConvRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event Component_Reel_SIDConvRowChangeEventHandler Component_Reel_SIDConvRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event Component_Reel_SIDConvRowChangeEventHandler Component_Reel_SIDConvRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event Component_Reel_SIDConvRowChangeEventHandler Component_Reel_SIDConvRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event Component_Reel_SIDConvRowChangeEventHandler Component_Reel_SIDConvRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void AddComponent_Reel_SIDConvRow(Component_Reel_SIDConvRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_SIDConvRow AddComponent_Reel_SIDConvRow(string M101, string M103, string M106, string Remark, string M108, string M103_2) { + Component_Reel_SIDConvRow rowComponent_Reel_SIDConvRow = ((Component_Reel_SIDConvRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + M101, + M103, + M106, + Remark, + M108, + M103_2}; + rowComponent_Reel_SIDConvRow.ItemArray = columnValuesArray; + this.Rows.Add(rowComponent_Reel_SIDConvRow); + return rowComponent_Reel_SIDConvRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_SIDConvRow FindByidx(int idx) { + return ((Component_Reel_SIDConvRow)(this.Rows.Find(new object[] { + idx}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public override global::System.Data.DataTable Clone() { + Component_Reel_SIDConvDataTable cln = ((Component_Reel_SIDConvDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new Component_Reel_SIDConvDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal void InitVars() { + this.columnidx = base.Columns["idx"]; + this.columnM101 = base.Columns["M101"]; + this.columnM103 = base.Columns["M103"]; + this.columnM106 = base.Columns["M106"]; + this.columnRemark = base.Columns["Remark"]; + this.columnM108 = base.Columns["M108"]; + this.columnM103_2 = base.Columns["M103_2"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitClass() { + this.columnidx = new global::System.Data.DataColumn("idx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnidx); + this.columnM101 = new global::System.Data.DataColumn("M101", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnM101); + this.columnM103 = new global::System.Data.DataColumn("M103", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnM103); + this.columnM106 = new global::System.Data.DataColumn("M106", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnM106); + this.columnRemark = new global::System.Data.DataColumn("Remark", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnRemark); + this.columnM108 = new global::System.Data.DataColumn("M108", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnM108); + this.columnM103_2 = new global::System.Data.DataColumn("M103_2", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnM103_2); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnidx}, true)); + this.columnidx.AutoIncrement = true; + this.columnidx.AutoIncrementSeed = -1; + this.columnidx.AutoIncrementStep = -1; + this.columnidx.AllowDBNull = false; + this.columnidx.ReadOnly = true; + this.columnidx.Unique = true; + this.columnM101.MaxLength = 20; + this.columnM103.MaxLength = 20; + this.columnM106.MaxLength = 20; + this.columnRemark.MaxLength = 100; + this.columnM108.MaxLength = 20; + this.columnM103_2.MaxLength = 20; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_SIDConvRow NewComponent_Reel_SIDConvRow() { + return ((Component_Reel_SIDConvRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new Component_Reel_SIDConvRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(Component_Reel_SIDConvRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.Component_Reel_SIDConvRowChanged != null)) { + this.Component_Reel_SIDConvRowChanged(this, new Component_Reel_SIDConvRowChangeEvent(((Component_Reel_SIDConvRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.Component_Reel_SIDConvRowChanging != null)) { + this.Component_Reel_SIDConvRowChanging(this, new Component_Reel_SIDConvRowChangeEvent(((Component_Reel_SIDConvRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.Component_Reel_SIDConvRowDeleted != null)) { + this.Component_Reel_SIDConvRowDeleted(this, new Component_Reel_SIDConvRowChangeEvent(((Component_Reel_SIDConvRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.Component_Reel_SIDConvRowDeleting != null)) { + this.Component_Reel_SIDConvRowDeleting(this, new Component_Reel_SIDConvRowChangeEvent(((Component_Reel_SIDConvRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void RemoveComponent_Reel_SIDConvRow(Component_Reel_SIDConvRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "Component_Reel_SIDConvDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class Component_Reel_SIDInfoDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnSID; + + private global::System.Data.DataColumn columnCustCode; + + private global::System.Data.DataColumn columnCustName; + + private global::System.Data.DataColumn columnVenderName; + + private global::System.Data.DataColumn columnPartNo; + + private global::System.Data.DataColumn columnPrintPosition; + + private global::System.Data.DataColumn columnRemark; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_SIDInfoDataTable() { + this.TableName = "Component_Reel_SIDInfo"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal Component_Reel_SIDInfoDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected Component_Reel_SIDInfoDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn SIDColumn { + get { + return this.columnSID; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn CustCodeColumn { + get { + return this.columnCustCode; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn CustNameColumn { + get { + return this.columnCustName; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn VenderNameColumn { + get { + return this.columnVenderName; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn PartNoColumn { + get { + return this.columnPartNo; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn PrintPositionColumn { + get { + return this.columnPrintPosition; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn RemarkColumn { + get { + return this.columnRemark; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_SIDInfoRow this[int index] { + get { + return ((Component_Reel_SIDInfoRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event Component_Reel_SIDInfoRowChangeEventHandler Component_Reel_SIDInfoRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event Component_Reel_SIDInfoRowChangeEventHandler Component_Reel_SIDInfoRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event Component_Reel_SIDInfoRowChangeEventHandler Component_Reel_SIDInfoRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event Component_Reel_SIDInfoRowChangeEventHandler Component_Reel_SIDInfoRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void AddComponent_Reel_SIDInfoRow(Component_Reel_SIDInfoRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_SIDInfoRow AddComponent_Reel_SIDInfoRow(string SID, string CustCode, string CustName, string VenderName, string PartNo, string PrintPosition, string Remark) { + Component_Reel_SIDInfoRow rowComponent_Reel_SIDInfoRow = ((Component_Reel_SIDInfoRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + SID, + CustCode, + CustName, + VenderName, + PartNo, + PrintPosition, + Remark}; + rowComponent_Reel_SIDInfoRow.ItemArray = columnValuesArray; + this.Rows.Add(rowComponent_Reel_SIDInfoRow); + return rowComponent_Reel_SIDInfoRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_SIDInfoRow FindBySID(string SID) { + return ((Component_Reel_SIDInfoRow)(this.Rows.Find(new object[] { + SID}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public override global::System.Data.DataTable Clone() { + Component_Reel_SIDInfoDataTable cln = ((Component_Reel_SIDInfoDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new Component_Reel_SIDInfoDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal void InitVars() { + this.columnSID = base.Columns["SID"]; + this.columnCustCode = base.Columns["CustCode"]; + this.columnCustName = base.Columns["CustName"]; + this.columnVenderName = base.Columns["VenderName"]; + this.columnPartNo = base.Columns["PartNo"]; + this.columnPrintPosition = base.Columns["PrintPosition"]; + this.columnRemark = base.Columns["Remark"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitClass() { + this.columnSID = new global::System.Data.DataColumn("SID", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSID); + this.columnCustCode = new global::System.Data.DataColumn("CustCode", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCustCode); + this.columnCustName = new global::System.Data.DataColumn("CustName", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCustName); + this.columnVenderName = new global::System.Data.DataColumn("VenderName", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnVenderName); + this.columnPartNo = new global::System.Data.DataColumn("PartNo", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPartNo); + this.columnPrintPosition = new global::System.Data.DataColumn("PrintPosition", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPrintPosition); + this.columnRemark = new global::System.Data.DataColumn("Remark", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnRemark); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnSID}, true)); + this.columnSID.AllowDBNull = false; + this.columnSID.Unique = true; + this.columnSID.MaxLength = 50; + this.columnCustCode.AllowDBNull = false; + this.columnCustCode.MaxLength = 10; + this.columnCustName.MaxLength = 100; + this.columnVenderName.MaxLength = 100; + this.columnPartNo.AllowDBNull = false; + this.columnPartNo.MaxLength = 100; + this.columnPrintPosition.MaxLength = 10; + this.columnRemark.MaxLength = 100; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_SIDInfoRow NewComponent_Reel_SIDInfoRow() { + return ((Component_Reel_SIDInfoRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new Component_Reel_SIDInfoRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(Component_Reel_SIDInfoRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.Component_Reel_SIDInfoRowChanged != null)) { + this.Component_Reel_SIDInfoRowChanged(this, new Component_Reel_SIDInfoRowChangeEvent(((Component_Reel_SIDInfoRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.Component_Reel_SIDInfoRowChanging != null)) { + this.Component_Reel_SIDInfoRowChanging(this, new Component_Reel_SIDInfoRowChangeEvent(((Component_Reel_SIDInfoRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.Component_Reel_SIDInfoRowDeleted != null)) { + this.Component_Reel_SIDInfoRowDeleted(this, new Component_Reel_SIDInfoRowChangeEvent(((Component_Reel_SIDInfoRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.Component_Reel_SIDInfoRowDeleting != null)) { + this.Component_Reel_SIDInfoRowDeleting(this, new Component_Reel_SIDInfoRowChangeEvent(((Component_Reel_SIDInfoRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void RemoveComponent_Reel_SIDInfoRow(Component_Reel_SIDInfoRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "Component_Reel_SIDInfoDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class Component_Reel_ResultDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnidx; + + private global::System.Data.DataColumn columnSTIME; + + private global::System.Data.DataColumn columnETIME; + + private global::System.Data.DataColumn columnPDATE; + + private global::System.Data.DataColumn columnJTYPE; + + private global::System.Data.DataColumn columnJGUID; + + private global::System.Data.DataColumn columnSID; + + private global::System.Data.DataColumn columnSID0; + + private global::System.Data.DataColumn columnRID; + + private global::System.Data.DataColumn columnRID0; + + private global::System.Data.DataColumn columnRSN; + + private global::System.Data.DataColumn columnQR; + + private global::System.Data.DataColumn columnZPL; + + private global::System.Data.DataColumn columnPOS; + + private global::System.Data.DataColumn columnLOC; + + private global::System.Data.DataColumn columnANGLE; + + private global::System.Data.DataColumn columnQTY; + + private global::System.Data.DataColumn columnQTY0; + + private global::System.Data.DataColumn columnwdate; + + private global::System.Data.DataColumn columnVNAME; + + private global::System.Data.DataColumn columnPRNATTACH; + + private global::System.Data.DataColumn columnPRNVALID; + + private global::System.Data.DataColumn columnPTIME; + + private global::System.Data.DataColumn columnMFGDATE; + + private global::System.Data.DataColumn columnVLOT; + + private global::System.Data.DataColumn columnREMARK; + + private global::System.Data.DataColumn columnPNO; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_ResultDataTable() { + this.TableName = "Component_Reel_Result"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal Component_Reel_ResultDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected Component_Reel_ResultDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn idxColumn { + get { + return this.columnidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn STIMEColumn { + get { + return this.columnSTIME; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn ETIMEColumn { + get { + return this.columnETIME; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn PDATEColumn { + get { + return this.columnPDATE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn JTYPEColumn { + get { + return this.columnJTYPE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn JGUIDColumn { + get { + return this.columnJGUID; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn SIDColumn { + get { + return this.columnSID; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn SID0Column { + get { + return this.columnSID0; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn RIDColumn { + get { + return this.columnRID; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn RID0Column { + get { + return this.columnRID0; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn RSNColumn { + get { + return this.columnRSN; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn QRColumn { + get { + return this.columnQR; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn ZPLColumn { + get { + return this.columnZPL; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn POSColumn { + get { + return this.columnPOS; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn LOCColumn { + get { + return this.columnLOC; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn ANGLEColumn { + get { + return this.columnANGLE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn QTYColumn { + get { + return this.columnQTY; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn QTY0Column { + get { + return this.columnQTY0; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn wdateColumn { + get { + return this.columnwdate; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn VNAMEColumn { + get { + return this.columnVNAME; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn PRNATTACHColumn { + get { + return this.columnPRNATTACH; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn PRNVALIDColumn { + get { + return this.columnPRNVALID; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn PTIMEColumn { + get { + return this.columnPTIME; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn MFGDATEColumn { + get { + return this.columnMFGDATE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn VLOTColumn { + get { + return this.columnVLOT; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn REMARKColumn { + get { + return this.columnREMARK; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn PNOColumn { + get { + return this.columnPNO; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_ResultRow this[int index] { + get { + return ((Component_Reel_ResultRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event Component_Reel_ResultRowChangeEventHandler Component_Reel_ResultRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event Component_Reel_ResultRowChangeEventHandler Component_Reel_ResultRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event Component_Reel_ResultRowChangeEventHandler Component_Reel_ResultRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event Component_Reel_ResultRowChangeEventHandler Component_Reel_ResultRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void AddComponent_Reel_ResultRow(Component_Reel_ResultRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_ResultRow AddComponent_Reel_ResultRow( + System.DateTime STIME, + System.DateTime ETIME, + string PDATE, + string JTYPE, + string JGUID, + string SID, + string SID0, + string RID, + string RID0, + string RSN, + string QR, + string ZPL, + string POS, + string LOC, + double ANGLE, + int QTY, + int QTY0, + System.DateTime wdate, + string VNAME, + bool PRNATTACH, + bool PRNVALID, + System.DateTime PTIME, + string MFGDATE, + string VLOT, + string REMARK, + string PNO) { + Component_Reel_ResultRow rowComponent_Reel_ResultRow = ((Component_Reel_ResultRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + STIME, + ETIME, + PDATE, + JTYPE, + JGUID, + SID, + SID0, + RID, + RID0, + RSN, + QR, + ZPL, + POS, + LOC, + ANGLE, + QTY, + QTY0, + wdate, + VNAME, + PRNATTACH, + PRNVALID, + PTIME, + MFGDATE, + VLOT, + REMARK, + PNO}; + rowComponent_Reel_ResultRow.ItemArray = columnValuesArray; + this.Rows.Add(rowComponent_Reel_ResultRow); + return rowComponent_Reel_ResultRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_ResultRow FindByidx(int idx) { + return ((Component_Reel_ResultRow)(this.Rows.Find(new object[] { + idx}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public override global::System.Data.DataTable Clone() { + Component_Reel_ResultDataTable cln = ((Component_Reel_ResultDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new Component_Reel_ResultDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal void InitVars() { + this.columnidx = base.Columns["idx"]; + this.columnSTIME = base.Columns["STIME"]; + this.columnETIME = base.Columns["ETIME"]; + this.columnPDATE = base.Columns["PDATE"]; + this.columnJTYPE = base.Columns["JTYPE"]; + this.columnJGUID = base.Columns["JGUID"]; + this.columnSID = base.Columns["SID"]; + this.columnSID0 = base.Columns["SID0"]; + this.columnRID = base.Columns["RID"]; + this.columnRID0 = base.Columns["RID0"]; + this.columnRSN = base.Columns["RSN"]; + this.columnQR = base.Columns["QR"]; + this.columnZPL = base.Columns["ZPL"]; + this.columnPOS = base.Columns["POS"]; + this.columnLOC = base.Columns["LOC"]; + this.columnANGLE = base.Columns["ANGLE"]; + this.columnQTY = base.Columns["QTY"]; + this.columnQTY0 = base.Columns["QTY0"]; + this.columnwdate = base.Columns["wdate"]; + this.columnVNAME = base.Columns["VNAME"]; + this.columnPRNATTACH = base.Columns["PRNATTACH"]; + this.columnPRNVALID = base.Columns["PRNVALID"]; + this.columnPTIME = base.Columns["PTIME"]; + this.columnMFGDATE = base.Columns["MFGDATE"]; + this.columnVLOT = base.Columns["VLOT"]; + this.columnREMARK = base.Columns["REMARK"]; + this.columnPNO = base.Columns["PNO"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitClass() { + this.columnidx = new global::System.Data.DataColumn("idx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnidx); + this.columnSTIME = new global::System.Data.DataColumn("STIME", typeof(global::System.DateTime), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSTIME); + this.columnETIME = new global::System.Data.DataColumn("ETIME", typeof(global::System.DateTime), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnETIME); + this.columnPDATE = new global::System.Data.DataColumn("PDATE", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPDATE); + this.columnJTYPE = new global::System.Data.DataColumn("JTYPE", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnJTYPE); + this.columnJGUID = new global::System.Data.DataColumn("JGUID", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnJGUID); + this.columnSID = new global::System.Data.DataColumn("SID", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSID); + this.columnSID0 = new global::System.Data.DataColumn("SID0", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSID0); + this.columnRID = new global::System.Data.DataColumn("RID", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnRID); + this.columnRID0 = new global::System.Data.DataColumn("RID0", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnRID0); + this.columnRSN = new global::System.Data.DataColumn("RSN", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnRSN); + this.columnQR = new global::System.Data.DataColumn("QR", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnQR); + this.columnZPL = new global::System.Data.DataColumn("ZPL", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnZPL); + this.columnPOS = new global::System.Data.DataColumn("POS", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPOS); + this.columnLOC = new global::System.Data.DataColumn("LOC", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnLOC); + this.columnANGLE = new global::System.Data.DataColumn("ANGLE", typeof(double), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnANGLE); + this.columnQTY = new global::System.Data.DataColumn("QTY", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnQTY); + this.columnQTY0 = new global::System.Data.DataColumn("QTY0", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnQTY0); + this.columnwdate = new global::System.Data.DataColumn("wdate", typeof(global::System.DateTime), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnwdate); + this.columnVNAME = new global::System.Data.DataColumn("VNAME", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnVNAME); + this.columnPRNATTACH = new global::System.Data.DataColumn("PRNATTACH", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPRNATTACH); + this.columnPRNVALID = new global::System.Data.DataColumn("PRNVALID", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPRNVALID); + this.columnPTIME = new global::System.Data.DataColumn("PTIME", typeof(global::System.DateTime), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPTIME); + this.columnMFGDATE = new global::System.Data.DataColumn("MFGDATE", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMFGDATE); + this.columnVLOT = new global::System.Data.DataColumn("VLOT", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnVLOT); + this.columnREMARK = new global::System.Data.DataColumn("REMARK", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnREMARK); + this.columnPNO = new global::System.Data.DataColumn("PNO", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPNO); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnidx}, true)); + this.columnidx.AutoIncrement = true; + this.columnidx.AutoIncrementSeed = -1; + this.columnidx.AutoIncrementStep = -1; + this.columnidx.AllowDBNull = false; + this.columnidx.ReadOnly = true; + this.columnidx.Unique = true; + this.columnSTIME.AllowDBNull = false; + this.columnPDATE.MaxLength = 10; + this.columnJTYPE.MaxLength = 10; + this.columnJGUID.MaxLength = 50; + this.columnSID.MaxLength = 20; + this.columnSID0.MaxLength = 20; + this.columnRID.MaxLength = 50; + this.columnRID0.MaxLength = 50; + this.columnRSN.MaxLength = 10; + this.columnQR.MaxLength = 100; + this.columnZPL.MaxLength = 1000; + this.columnPOS.MaxLength = 10; + this.columnLOC.MaxLength = 1; + this.columnwdate.AllowDBNull = false; + this.columnVNAME.MaxLength = 100; + this.columnMFGDATE.MaxLength = 20; + this.columnVLOT.MaxLength = 100; + this.columnREMARK.MaxLength = 200; + this.columnPNO.ReadOnly = true; + this.columnPNO.MaxLength = 200; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_ResultRow NewComponent_Reel_ResultRow() { + return ((Component_Reel_ResultRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new Component_Reel_ResultRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(Component_Reel_ResultRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.Component_Reel_ResultRowChanged != null)) { + this.Component_Reel_ResultRowChanged(this, new Component_Reel_ResultRowChangeEvent(((Component_Reel_ResultRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.Component_Reel_ResultRowChanging != null)) { + this.Component_Reel_ResultRowChanging(this, new Component_Reel_ResultRowChangeEvent(((Component_Reel_ResultRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.Component_Reel_ResultRowDeleted != null)) { + this.Component_Reel_ResultRowDeleted(this, new Component_Reel_ResultRowChangeEvent(((Component_Reel_ResultRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.Component_Reel_ResultRowDeleting != null)) { + this.Component_Reel_ResultRowDeleting(this, new Component_Reel_ResultRowChangeEvent(((Component_Reel_ResultRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void RemoveComponent_Reel_ResultRow(Component_Reel_ResultRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "Component_Reel_ResultDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class Component_Reel_CustRuleDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnidx; + + private global::System.Data.DataColumn columncode; + + private global::System.Data.DataColumn columnpre; + + private global::System.Data.DataColumn columnpos; + + private global::System.Data.DataColumn columnlen; + + private global::System.Data.DataColumn columnexp; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_CustRuleDataTable() { + this.TableName = "Component_Reel_CustRule"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal Component_Reel_CustRuleDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected Component_Reel_CustRuleDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn idxColumn { + get { + return this.columnidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn codeColumn { + get { + return this.columncode; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn preColumn { + get { + return this.columnpre; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn posColumn { + get { + return this.columnpos; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn lenColumn { + get { + return this.columnlen; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn expColumn { + get { + return this.columnexp; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_CustRuleRow this[int index] { + get { + return ((Component_Reel_CustRuleRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event Component_Reel_CustRuleRowChangeEventHandler Component_Reel_CustRuleRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event Component_Reel_CustRuleRowChangeEventHandler Component_Reel_CustRuleRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event Component_Reel_CustRuleRowChangeEventHandler Component_Reel_CustRuleRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event Component_Reel_CustRuleRowChangeEventHandler Component_Reel_CustRuleRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void AddComponent_Reel_CustRuleRow(Component_Reel_CustRuleRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_CustRuleRow AddComponent_Reel_CustRuleRow(string code, string pre, string pos, int len, string exp) { + Component_Reel_CustRuleRow rowComponent_Reel_CustRuleRow = ((Component_Reel_CustRuleRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + code, + pre, + pos, + len, + exp}; + rowComponent_Reel_CustRuleRow.ItemArray = columnValuesArray; + this.Rows.Add(rowComponent_Reel_CustRuleRow); + return rowComponent_Reel_CustRuleRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_CustRuleRow FindByidx(int idx) { + return ((Component_Reel_CustRuleRow)(this.Rows.Find(new object[] { + idx}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public override global::System.Data.DataTable Clone() { + Component_Reel_CustRuleDataTable cln = ((Component_Reel_CustRuleDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new Component_Reel_CustRuleDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal void InitVars() { + this.columnidx = base.Columns["idx"]; + this.columncode = base.Columns["code"]; + this.columnpre = base.Columns["pre"]; + this.columnpos = base.Columns["pos"]; + this.columnlen = base.Columns["len"]; + this.columnexp = base.Columns["exp"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitClass() { + this.columnidx = new global::System.Data.DataColumn("idx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnidx); + this.columncode = new global::System.Data.DataColumn("code", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columncode); + this.columnpre = new global::System.Data.DataColumn("pre", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnpre); + this.columnpos = new global::System.Data.DataColumn("pos", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnpos); + this.columnlen = new global::System.Data.DataColumn("len", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnlen); + this.columnexp = new global::System.Data.DataColumn("exp", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnexp); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnidx}, true)); + this.columnidx.AutoIncrement = true; + this.columnidx.AutoIncrementSeed = -1; + this.columnidx.AutoIncrementStep = -1; + this.columnidx.AllowDBNull = false; + this.columnidx.ReadOnly = true; + this.columnidx.Unique = true; + this.columncode.AllowDBNull = false; + this.columncode.MaxLength = 10; + this.columnpre.MaxLength = 20; + this.columnpos.MaxLength = 20; + this.columnexp.MaxLength = 100; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_CustRuleRow NewComponent_Reel_CustRuleRow() { + return ((Component_Reel_CustRuleRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new Component_Reel_CustRuleRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(Component_Reel_CustRuleRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.Component_Reel_CustRuleRowChanged != null)) { + this.Component_Reel_CustRuleRowChanged(this, new Component_Reel_CustRuleRowChangeEvent(((Component_Reel_CustRuleRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.Component_Reel_CustRuleRowChanging != null)) { + this.Component_Reel_CustRuleRowChanging(this, new Component_Reel_CustRuleRowChangeEvent(((Component_Reel_CustRuleRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.Component_Reel_CustRuleRowDeleted != null)) { + this.Component_Reel_CustRuleRowDeleted(this, new Component_Reel_CustRuleRowChangeEvent(((Component_Reel_CustRuleRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.Component_Reel_CustRuleRowDeleting != null)) { + this.Component_Reel_CustRuleRowDeleting(this, new Component_Reel_CustRuleRowChangeEvent(((Component_Reel_CustRuleRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void RemoveComponent_Reel_CustRuleRow(Component_Reel_CustRuleRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "Component_Reel_CustRuleDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class Component_Reel_CustInfoDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columncode; + + private global::System.Data.DataColumn columnname; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_CustInfoDataTable() { + this.TableName = "Component_Reel_CustInfo"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal Component_Reel_CustInfoDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected Component_Reel_CustInfoDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn codeColumn { + get { + return this.columncode; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn nameColumn { + get { + return this.columnname; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_CustInfoRow this[int index] { + get { + return ((Component_Reel_CustInfoRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event Component_Reel_CustInfoRowChangeEventHandler Component_Reel_CustInfoRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event Component_Reel_CustInfoRowChangeEventHandler Component_Reel_CustInfoRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event Component_Reel_CustInfoRowChangeEventHandler Component_Reel_CustInfoRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event Component_Reel_CustInfoRowChangeEventHandler Component_Reel_CustInfoRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void AddComponent_Reel_CustInfoRow(Component_Reel_CustInfoRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_CustInfoRow AddComponent_Reel_CustInfoRow(string code, string name) { + Component_Reel_CustInfoRow rowComponent_Reel_CustInfoRow = ((Component_Reel_CustInfoRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + code, + name}; + rowComponent_Reel_CustInfoRow.ItemArray = columnValuesArray; + this.Rows.Add(rowComponent_Reel_CustInfoRow); + return rowComponent_Reel_CustInfoRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_CustInfoRow FindBycode(string code) { + return ((Component_Reel_CustInfoRow)(this.Rows.Find(new object[] { + code}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public override global::System.Data.DataTable Clone() { + Component_Reel_CustInfoDataTable cln = ((Component_Reel_CustInfoDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new Component_Reel_CustInfoDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal void InitVars() { + this.columncode = base.Columns["code"]; + this.columnname = base.Columns["name"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitClass() { + this.columncode = new global::System.Data.DataColumn("code", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columncode); + this.columnname = new global::System.Data.DataColumn("name", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnname); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columncode}, true)); + this.columncode.AllowDBNull = false; + this.columncode.Unique = true; + this.columncode.MaxLength = 10; + this.columnname.MaxLength = 100; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_CustInfoRow NewComponent_Reel_CustInfoRow() { + return ((Component_Reel_CustInfoRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new Component_Reel_CustInfoRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(Component_Reel_CustInfoRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.Component_Reel_CustInfoRowChanged != null)) { + this.Component_Reel_CustInfoRowChanged(this, new Component_Reel_CustInfoRowChangeEvent(((Component_Reel_CustInfoRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.Component_Reel_CustInfoRowChanging != null)) { + this.Component_Reel_CustInfoRowChanging(this, new Component_Reel_CustInfoRowChangeEvent(((Component_Reel_CustInfoRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.Component_Reel_CustInfoRowDeleted != null)) { + this.Component_Reel_CustInfoRowDeleted(this, new Component_Reel_CustInfoRowChangeEvent(((Component_Reel_CustInfoRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.Component_Reel_CustInfoRowDeleting != null)) { + this.Component_Reel_CustInfoRowDeleting(this, new Component_Reel_CustInfoRowChangeEvent(((Component_Reel_CustInfoRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void RemoveComponent_Reel_CustInfoRow(Component_Reel_CustInfoRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "Component_Reel_CustInfoDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class UsersDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnidx; + + private global::System.Data.DataColumn columnNo; + + private global::System.Data.DataColumn columnName; + + private global::System.Data.DataColumn columnMemo; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public UsersDataTable() { + this.TableName = "Users"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal UsersDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected UsersDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn idxColumn { + get { + return this.columnidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn NoColumn { + get { + return this.columnNo; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn NameColumn { + get { + return this.columnName; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn MemoColumn { + get { + return this.columnMemo; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public UsersRow this[int index] { + get { + return ((UsersRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event UsersRowChangeEventHandler UsersRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event UsersRowChangeEventHandler UsersRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event UsersRowChangeEventHandler UsersRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event UsersRowChangeEventHandler UsersRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void AddUsersRow(UsersRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public UsersRow AddUsersRow(string No, string Name, string Memo) { + UsersRow rowUsersRow = ((UsersRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + No, + Name, + Memo}; + rowUsersRow.ItemArray = columnValuesArray; + this.Rows.Add(rowUsersRow); + return rowUsersRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public UsersRow FindByidx(int idx) { + return ((UsersRow)(this.Rows.Find(new object[] { + idx}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public override global::System.Data.DataTable Clone() { + UsersDataTable cln = ((UsersDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new UsersDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal void InitVars() { + this.columnidx = base.Columns["idx"]; + this.columnNo = base.Columns["No"]; + this.columnName = base.Columns["Name"]; + this.columnMemo = base.Columns["Memo"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitClass() { + this.columnidx = new global::System.Data.DataColumn("idx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnidx); + this.columnNo = new global::System.Data.DataColumn("No", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnNo); + this.columnName = new global::System.Data.DataColumn("Name", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnName); + this.columnMemo = new global::System.Data.DataColumn("Memo", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMemo); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnidx}, true)); + this.columnidx.AutoIncrement = true; + this.columnidx.AutoIncrementSeed = 1; + this.columnidx.AllowDBNull = false; + this.columnidx.Unique = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public UsersRow NewUsersRow() { + return ((UsersRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new UsersRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(UsersRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.UsersRowChanged != null)) { + this.UsersRowChanged(this, new UsersRowChangeEvent(((UsersRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.UsersRowChanging != null)) { + this.UsersRowChanging(this, new UsersRowChangeEvent(((UsersRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.UsersRowDeleted != null)) { + this.UsersRowDeleted(this, new UsersRowChangeEvent(((UsersRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.UsersRowDeleting != null)) { + this.UsersRowDeleting(this, new UsersRowChangeEvent(((UsersRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void RemoveUsersRow(UsersRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "UsersDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class MCModelDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnidx; + + private global::System.Data.DataColumn columnTitle; + + private global::System.Data.DataColumn columnpidx; + + private global::System.Data.DataColumn columnMotIndex; + + private global::System.Data.DataColumn columnPosIndex; + + private global::System.Data.DataColumn columnPosTitle; + + private global::System.Data.DataColumn columnPosition; + + private global::System.Data.DataColumn columnSpdTitle; + + private global::System.Data.DataColumn columnSpeed; + + private global::System.Data.DataColumn columnSpeedAcc; + + private global::System.Data.DataColumn columnCheck; + + private global::System.Data.DataColumn columnSpeedDcc; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public MCModelDataTable() { + this.TableName = "MCModel"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal MCModelDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected MCModelDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn idxColumn { + get { + return this.columnidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn TitleColumn { + get { + return this.columnTitle; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn pidxColumn { + get { + return this.columnpidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn MotIndexColumn { + get { + return this.columnMotIndex; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn PosIndexColumn { + get { + return this.columnPosIndex; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn PosTitleColumn { + get { + return this.columnPosTitle; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn PositionColumn { + get { + return this.columnPosition; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn SpdTitleColumn { + get { + return this.columnSpdTitle; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn SpeedColumn { + get { + return this.columnSpeed; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn SpeedAccColumn { + get { + return this.columnSpeedAcc; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn CheckColumn { + get { + return this.columnCheck; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn SpeedDccColumn { + get { + return this.columnSpeedDcc; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public MCModelRow this[int index] { + get { + return ((MCModelRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event MCModelRowChangeEventHandler MCModelRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event MCModelRowChangeEventHandler MCModelRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event MCModelRowChangeEventHandler MCModelRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event MCModelRowChangeEventHandler MCModelRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void AddMCModelRow(MCModelRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public MCModelRow AddMCModelRow(int idx, string Title, int pidx, short MotIndex, short PosIndex, string PosTitle, double Position, string SpdTitle, double Speed, double SpeedAcc, bool Check, double SpeedDcc) { + MCModelRow rowMCModelRow = ((MCModelRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + idx, + Title, + pidx, + MotIndex, + PosIndex, + PosTitle, + Position, + SpdTitle, + Speed, + SpeedAcc, + Check, + SpeedDcc}; + rowMCModelRow.ItemArray = columnValuesArray; + this.Rows.Add(rowMCModelRow); + return rowMCModelRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public MCModelRow FindByidx(int idx) { + return ((MCModelRow)(this.Rows.Find(new object[] { + idx}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public override global::System.Data.DataTable Clone() { + MCModelDataTable cln = ((MCModelDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new MCModelDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal void InitVars() { + this.columnidx = base.Columns["idx"]; + this.columnTitle = base.Columns["Title"]; + this.columnpidx = base.Columns["pidx"]; + this.columnMotIndex = base.Columns["MotIndex"]; + this.columnPosIndex = base.Columns["PosIndex"]; + this.columnPosTitle = base.Columns["PosTitle"]; + this.columnPosition = base.Columns["Position"]; + this.columnSpdTitle = base.Columns["SpdTitle"]; + this.columnSpeed = base.Columns["Speed"]; + this.columnSpeedAcc = base.Columns["SpeedAcc"]; + this.columnCheck = base.Columns["Check"]; + this.columnSpeedDcc = base.Columns["SpeedDcc"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitClass() { + this.columnidx = new global::System.Data.DataColumn("idx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnidx); + this.columnTitle = new global::System.Data.DataColumn("Title", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTitle); + this.columnpidx = new global::System.Data.DataColumn("pidx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnpidx); + this.columnMotIndex = new global::System.Data.DataColumn("MotIndex", typeof(short), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMotIndex); + this.columnPosIndex = new global::System.Data.DataColumn("PosIndex", typeof(short), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPosIndex); + this.columnPosTitle = new global::System.Data.DataColumn("PosTitle", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPosTitle); + this.columnPosition = new global::System.Data.DataColumn("Position", typeof(double), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPosition); + this.columnSpdTitle = new global::System.Data.DataColumn("SpdTitle", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSpdTitle); + this.columnSpeed = new global::System.Data.DataColumn("Speed", typeof(double), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSpeed); + this.columnSpeedAcc = new global::System.Data.DataColumn("SpeedAcc", typeof(double), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSpeedAcc); + this.columnCheck = new global::System.Data.DataColumn("Check", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCheck); + this.columnSpeedDcc = new global::System.Data.DataColumn("SpeedDcc", typeof(double), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSpeedDcc); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnidx}, true)); + this.columnidx.AutoIncrementSeed = 1; + this.columnidx.AllowDBNull = false; + this.columnidx.Unique = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public MCModelRow NewMCModelRow() { + return ((MCModelRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new MCModelRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(MCModelRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.MCModelRowChanged != null)) { + this.MCModelRowChanged(this, new MCModelRowChangeEvent(((MCModelRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.MCModelRowChanging != null)) { + this.MCModelRowChanging(this, new MCModelRowChangeEvent(((MCModelRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.MCModelRowDeleted != null)) { + this.MCModelRowDeleted(this, new MCModelRowChangeEvent(((MCModelRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.MCModelRowDeleting != null)) { + this.MCModelRowDeleting(this, new MCModelRowChangeEvent(((MCModelRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void RemoveMCModelRow(MCModelRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "MCModelDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class languageDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnSection; + + private global::System.Data.DataColumn columnKey; + + private global::System.Data.DataColumn columnValue; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public languageDataTable() { + this.TableName = "language"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal languageDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected languageDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn SectionColumn { + get { + return this.columnSection; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn KeyColumn { + get { + return this.columnKey; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn ValueColumn { + get { + return this.columnValue; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public languageRow this[int index] { + get { + return ((languageRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event languageRowChangeEventHandler languageRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event languageRowChangeEventHandler languageRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event languageRowChangeEventHandler languageRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event languageRowChangeEventHandler languageRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void AddlanguageRow(languageRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public languageRow AddlanguageRow(string Section, string Key, string Value) { + languageRow rowlanguageRow = ((languageRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + Section, + Key, + Value}; + rowlanguageRow.ItemArray = columnValuesArray; + this.Rows.Add(rowlanguageRow); + return rowlanguageRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public languageRow FindByKeySection(string Key, string Section) { + return ((languageRow)(this.Rows.Find(new object[] { + Key, + Section}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public override global::System.Data.DataTable Clone() { + languageDataTable cln = ((languageDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new languageDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal void InitVars() { + this.columnSection = base.Columns["Section"]; + this.columnKey = base.Columns["Key"]; + this.columnValue = base.Columns["Value"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitClass() { + this.columnSection = new global::System.Data.DataColumn("Section", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSection); + this.columnKey = new global::System.Data.DataColumn("Key", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnKey); + this.columnValue = new global::System.Data.DataColumn("Value", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnValue); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnKey, + this.columnSection}, true)); + this.columnSection.AllowDBNull = false; + this.columnKey.AllowDBNull = false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public languageRow NewlanguageRow() { + return ((languageRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new languageRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(languageRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.languageRowChanged != null)) { + this.languageRowChanged(this, new languageRowChangeEvent(((languageRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.languageRowChanging != null)) { + this.languageRowChanging(this, new languageRowChangeEvent(((languageRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.languageRowDeleted != null)) { + this.languageRowDeleted(this, new languageRowChangeEvent(((languageRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.languageRowDeleting != null)) { + this.languageRowDeleting(this, new languageRowChangeEvent(((languageRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void RemovelanguageRow(languageRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "languageDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class ModelDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnidx; + + private global::System.Data.DataColumn columnMidx; + + private global::System.Data.DataColumn columnTitle; + + private global::System.Data.DataColumn columnMemo; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public ModelDataTable() { + this.TableName = "Model"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal ModelDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected ModelDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn idxColumn { + get { + return this.columnidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn MidxColumn { + get { + return this.columnMidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn TitleColumn { + get { + return this.columnTitle; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn MemoColumn { + get { + return this.columnMemo; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public ModelRow this[int index] { + get { + return ((ModelRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event ModelRowChangeEventHandler ModelRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event ModelRowChangeEventHandler ModelRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event ModelRowChangeEventHandler ModelRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event ModelRowChangeEventHandler ModelRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void AddModelRow(ModelRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public ModelRow AddModelRow(int Midx, string Title, string Memo) { + ModelRow rowModelRow = ((ModelRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + Midx, + Title, + Memo}; + rowModelRow.ItemArray = columnValuesArray; + this.Rows.Add(rowModelRow); + return rowModelRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public ModelRow FindByidx(int idx) { + return ((ModelRow)(this.Rows.Find(new object[] { + idx}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public override global::System.Data.DataTable Clone() { + ModelDataTable cln = ((ModelDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new ModelDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal void InitVars() { + this.columnidx = base.Columns["idx"]; + this.columnMidx = base.Columns["Midx"]; + this.columnTitle = base.Columns["Title"]; + this.columnMemo = base.Columns["Memo"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitClass() { + this.columnidx = new global::System.Data.DataColumn("idx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnidx); + this.columnMidx = new global::System.Data.DataColumn("Midx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMidx); + this.columnTitle = new global::System.Data.DataColumn("Title", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnTitle); + this.columnMemo = new global::System.Data.DataColumn("Memo", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMemo); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnidx}, true)); + this.columnidx.AutoIncrement = true; + this.columnidx.AutoIncrementSeed = 1; + this.columnidx.AllowDBNull = false; + this.columnidx.Unique = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public ModelRow NewModelRow() { + return ((ModelRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new ModelRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(ModelRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.ModelRowChanged != null)) { + this.ModelRowChanged(this, new ModelRowChangeEvent(((ModelRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.ModelRowChanging != null)) { + this.ModelRowChanging(this, new ModelRowChangeEvent(((ModelRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.ModelRowDeleted != null)) { + this.ModelRowDeleted(this, new ModelRowChangeEvent(((ModelRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.ModelRowDeleting != null)) { + this.ModelRowDeleting(this, new ModelRowChangeEvent(((ModelRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void RemoveModelRow(ModelRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "ModelDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class BCDDataDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnStart; + + private global::System.Data.DataColumn columnID; + + private global::System.Data.DataColumn columnSID; + + private global::System.Data.DataColumn columnRAW; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public BCDDataDataTable() { + this.TableName = "BCDData"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal BCDDataDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected BCDDataDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn StartColumn { + get { + return this.columnStart; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn IDColumn { + get { + return this.columnID; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn SIDColumn { + get { + return this.columnSID; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn RAWColumn { + get { + return this.columnRAW; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public BCDDataRow this[int index] { + get { + return ((BCDDataRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event BCDDataRowChangeEventHandler BCDDataRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event BCDDataRowChangeEventHandler BCDDataRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event BCDDataRowChangeEventHandler BCDDataRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event BCDDataRowChangeEventHandler BCDDataRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void AddBCDDataRow(BCDDataRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public BCDDataRow AddBCDDataRow(System.DateTime Start, string ID, string SID, string RAW) { + BCDDataRow rowBCDDataRow = ((BCDDataRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + Start, + ID, + SID, + RAW}; + rowBCDDataRow.ItemArray = columnValuesArray; + this.Rows.Add(rowBCDDataRow); + return rowBCDDataRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public BCDDataRow FindByStart(System.DateTime Start) { + return ((BCDDataRow)(this.Rows.Find(new object[] { + Start}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public override global::System.Data.DataTable Clone() { + BCDDataDataTable cln = ((BCDDataDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new BCDDataDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal void InitVars() { + this.columnStart = base.Columns["Start"]; + this.columnID = base.Columns["ID"]; + this.columnSID = base.Columns["SID"]; + this.columnRAW = base.Columns["RAW"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitClass() { + this.columnStart = new global::System.Data.DataColumn("Start", typeof(global::System.DateTime), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnStart); + this.columnID = new global::System.Data.DataColumn("ID", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnID); + this.columnSID = new global::System.Data.DataColumn("SID", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSID); + this.columnRAW = new global::System.Data.DataColumn("RAW", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnRAW); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnStart}, true)); + this.columnStart.AllowDBNull = false; + this.columnStart.Unique = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public BCDDataRow NewBCDDataRow() { + return ((BCDDataRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new BCDDataRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(BCDDataRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.BCDDataRowChanged != null)) { + this.BCDDataRowChanged(this, new BCDDataRowChangeEvent(((BCDDataRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.BCDDataRowChanging != null)) { + this.BCDDataRowChanging(this, new BCDDataRowChangeEvent(((BCDDataRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.BCDDataRowDeleted != null)) { + this.BCDDataRowDeleted(this, new BCDDataRowChangeEvent(((BCDDataRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.BCDDataRowDeleting != null)) { + this.BCDDataRowDeleting(this, new BCDDataRowChangeEvent(((BCDDataRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void RemoveBCDDataRow(BCDDataRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "BCDDataDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class UserSIDDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnidx; + + private global::System.Data.DataColumn columnPort; + + private global::System.Data.DataColumn columnSID; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public UserSIDDataTable() { + this.TableName = "UserSID"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal UserSIDDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected UserSIDDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn idxColumn { + get { + return this.columnidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn PortColumn { + get { + return this.columnPort; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn SIDColumn { + get { + return this.columnSID; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public UserSIDRow this[int index] { + get { + return ((UserSIDRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event UserSIDRowChangeEventHandler UserSIDRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event UserSIDRowChangeEventHandler UserSIDRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event UserSIDRowChangeEventHandler UserSIDRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event UserSIDRowChangeEventHandler UserSIDRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void AddUserSIDRow(UserSIDRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public UserSIDRow AddUserSIDRow(string Port, string SID) { + UserSIDRow rowUserSIDRow = ((UserSIDRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + Port, + SID}; + rowUserSIDRow.ItemArray = columnValuesArray; + this.Rows.Add(rowUserSIDRow); + return rowUserSIDRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public UserSIDRow FindByidx(int idx) { + return ((UserSIDRow)(this.Rows.Find(new object[] { + idx}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public override global::System.Data.DataTable Clone() { + UserSIDDataTable cln = ((UserSIDDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new UserSIDDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal void InitVars() { + this.columnidx = base.Columns["idx"]; + this.columnPort = base.Columns["Port"]; + this.columnSID = base.Columns["SID"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitClass() { + this.columnidx = new global::System.Data.DataColumn("idx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnidx); + this.columnPort = new global::System.Data.DataColumn("Port", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPort); + this.columnSID = new global::System.Data.DataColumn("SID", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSID); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnidx}, true)); + this.columnidx.AutoIncrement = true; + this.columnidx.AutoIncrementSeed = -1; + this.columnidx.AutoIncrementStep = -1; + this.columnidx.AllowDBNull = false; + this.columnidx.Unique = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public UserSIDRow NewUserSIDRow() { + return ((UserSIDRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new UserSIDRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(UserSIDRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.UserSIDRowChanged != null)) { + this.UserSIDRowChanged(this, new UserSIDRowChangeEvent(((UserSIDRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.UserSIDRowChanging != null)) { + this.UserSIDRowChanging(this, new UserSIDRowChangeEvent(((UserSIDRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.UserSIDRowDeleted != null)) { + this.UserSIDRowDeleted(this, new UserSIDRowChangeEvent(((UserSIDRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.UserSIDRowDeleting != null)) { + this.UserSIDRowDeleting(this, new UserSIDRowChangeEvent(((UserSIDRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void RemoveUserSIDRow(UserSIDRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "UserSIDDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class MailFormatDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnsubject; + + private global::System.Data.DataColumn columncontent; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public MailFormatDataTable() { + this.TableName = "MailFormat"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal MailFormatDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected MailFormatDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn subjectColumn { + get { + return this.columnsubject; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn contentColumn { + get { + return this.columncontent; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public MailFormatRow this[int index] { + get { + return ((MailFormatRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event MailFormatRowChangeEventHandler MailFormatRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event MailFormatRowChangeEventHandler MailFormatRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event MailFormatRowChangeEventHandler MailFormatRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event MailFormatRowChangeEventHandler MailFormatRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void AddMailFormatRow(MailFormatRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public MailFormatRow AddMailFormatRow(string subject, string content) { + MailFormatRow rowMailFormatRow = ((MailFormatRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + subject, + content}; + rowMailFormatRow.ItemArray = columnValuesArray; + this.Rows.Add(rowMailFormatRow); + return rowMailFormatRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public override global::System.Data.DataTable Clone() { + MailFormatDataTable cln = ((MailFormatDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new MailFormatDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal void InitVars() { + this.columnsubject = base.Columns["subject"]; + this.columncontent = base.Columns["content"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitClass() { + this.columnsubject = new global::System.Data.DataColumn("subject", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnsubject); + this.columncontent = new global::System.Data.DataColumn("content", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columncontent); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public MailFormatRow NewMailFormatRow() { + return ((MailFormatRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new MailFormatRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(MailFormatRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.MailFormatRowChanged != null)) { + this.MailFormatRowChanged(this, new MailFormatRowChangeEvent(((MailFormatRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.MailFormatRowChanging != null)) { + this.MailFormatRowChanging(this, new MailFormatRowChangeEvent(((MailFormatRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.MailFormatRowDeleted != null)) { + this.MailFormatRowDeleted(this, new MailFormatRowChangeEvent(((MailFormatRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.MailFormatRowDeleting != null)) { + this.MailFormatRowDeleting(this, new MailFormatRowChangeEvent(((MailFormatRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void RemoveMailFormatRow(MailFormatRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "MailFormatDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class MailRecipientDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnidx; + + private global::System.Data.DataColumn columnName; + + private global::System.Data.DataColumn columnAddress; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public MailRecipientDataTable() { + this.TableName = "MailRecipient"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal MailRecipientDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected MailRecipientDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn idxColumn { + get { + return this.columnidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn NameColumn { + get { + return this.columnName; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn AddressColumn { + get { + return this.columnAddress; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public MailRecipientRow this[int index] { + get { + return ((MailRecipientRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event MailRecipientRowChangeEventHandler MailRecipientRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event MailRecipientRowChangeEventHandler MailRecipientRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event MailRecipientRowChangeEventHandler MailRecipientRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event MailRecipientRowChangeEventHandler MailRecipientRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void AddMailRecipientRow(MailRecipientRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public MailRecipientRow AddMailRecipientRow(string Name, string Address) { + MailRecipientRow rowMailRecipientRow = ((MailRecipientRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + Name, + Address}; + rowMailRecipientRow.ItemArray = columnValuesArray; + this.Rows.Add(rowMailRecipientRow); + return rowMailRecipientRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public MailRecipientRow FindByidx(int idx) { + return ((MailRecipientRow)(this.Rows.Find(new object[] { + idx}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public override global::System.Data.DataTable Clone() { + MailRecipientDataTable cln = ((MailRecipientDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new MailRecipientDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal void InitVars() { + this.columnidx = base.Columns["idx"]; + this.columnName = base.Columns["Name"]; + this.columnAddress = base.Columns["Address"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitClass() { + this.columnidx = new global::System.Data.DataColumn("idx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnidx); + this.columnName = new global::System.Data.DataColumn("Name", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnName); + this.columnAddress = new global::System.Data.DataColumn("Address", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnAddress); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnidx}, true)); + this.columnidx.AutoIncrement = true; + this.columnidx.AutoIncrementSeed = 1; + this.columnidx.AllowDBNull = false; + this.columnidx.Unique = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public MailRecipientRow NewMailRecipientRow() { + return ((MailRecipientRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new MailRecipientRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(MailRecipientRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.MailRecipientRowChanged != null)) { + this.MailRecipientRowChanged(this, new MailRecipientRowChangeEvent(((MailRecipientRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.MailRecipientRowChanging != null)) { + this.MailRecipientRowChanging(this, new MailRecipientRowChangeEvent(((MailRecipientRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.MailRecipientRowDeleted != null)) { + this.MailRecipientRowDeleted(this, new MailRecipientRowChangeEvent(((MailRecipientRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.MailRecipientRowDeleting != null)) { + this.MailRecipientRowDeleting(this, new MailRecipientRowChangeEvent(((MailRecipientRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void RemoveMailRecipientRow(MailRecipientRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "MailRecipientDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class SIDHistoryDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnidx; + + private global::System.Data.DataColumn columntime; + + private global::System.Data.DataColumn columnseqdate; + + private global::System.Data.DataColumn columnseqno; + + private global::System.Data.DataColumn columnsid; + + private global::System.Data.DataColumn columnrid; + + private global::System.Data.DataColumn columnqty; + + private global::System.Data.DataColumn columnrev; + + private global::System.Data.DataColumn columnacc; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public SIDHistoryDataTable() { + this.TableName = "SIDHistory"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal SIDHistoryDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected SIDHistoryDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn idxColumn { + get { + return this.columnidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn timeColumn { + get { + return this.columntime; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn seqdateColumn { + get { + return this.columnseqdate; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn seqnoColumn { + get { + return this.columnseqno; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn sidColumn { + get { + return this.columnsid; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn ridColumn { + get { + return this.columnrid; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn qtyColumn { + get { + return this.columnqty; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn revColumn { + get { + return this.columnrev; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn accColumn { + get { + return this.columnacc; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public SIDHistoryRow this[int index] { + get { + return ((SIDHistoryRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event SIDHistoryRowChangeEventHandler SIDHistoryRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event SIDHistoryRowChangeEventHandler SIDHistoryRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event SIDHistoryRowChangeEventHandler SIDHistoryRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event SIDHistoryRowChangeEventHandler SIDHistoryRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void AddSIDHistoryRow(SIDHistoryRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public SIDHistoryRow AddSIDHistoryRow(System.DateTime time, string seqdate, string seqno, string sid, string rid, int qty, int rev, int acc) { + SIDHistoryRow rowSIDHistoryRow = ((SIDHistoryRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + time, + seqdate, + seqno, + sid, + rid, + qty, + rev, + acc}; + rowSIDHistoryRow.ItemArray = columnValuesArray; + this.Rows.Add(rowSIDHistoryRow); + return rowSIDHistoryRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public override global::System.Data.DataTable Clone() { + SIDHistoryDataTable cln = ((SIDHistoryDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new SIDHistoryDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal void InitVars() { + this.columnidx = base.Columns["idx"]; + this.columntime = base.Columns["time"]; + this.columnseqdate = base.Columns["seqdate"]; + this.columnseqno = base.Columns["seqno"]; + this.columnsid = base.Columns["sid"]; + this.columnrid = base.Columns["rid"]; + this.columnqty = base.Columns["qty"]; + this.columnrev = base.Columns["rev"]; + this.columnacc = base.Columns["acc"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitClass() { + this.columnidx = new global::System.Data.DataColumn("idx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnidx); + this.columntime = new global::System.Data.DataColumn("time", typeof(global::System.DateTime), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columntime); + this.columnseqdate = new global::System.Data.DataColumn("seqdate", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnseqdate); + this.columnseqno = new global::System.Data.DataColumn("seqno", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnseqno); + this.columnsid = new global::System.Data.DataColumn("sid", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnsid); + this.columnrid = new global::System.Data.DataColumn("rid", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnrid); + this.columnqty = new global::System.Data.DataColumn("qty", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnqty); + this.columnrev = new global::System.Data.DataColumn("rev", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnrev); + this.columnacc = new global::System.Data.DataColumn("acc", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnacc); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint11", new global::System.Data.DataColumn[] { + this.columnidx}, false)); + this.columnidx.AutoIncrement = true; + this.columnidx.AutoIncrementSeed = 1; + this.columnidx.AllowDBNull = false; + this.columnidx.Unique = true; + this.columnsid.Caption = "info_filename"; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public SIDHistoryRow NewSIDHistoryRow() { + return ((SIDHistoryRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new SIDHistoryRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(SIDHistoryRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.SIDHistoryRowChanged != null)) { + this.SIDHistoryRowChanged(this, new SIDHistoryRowChangeEvent(((SIDHistoryRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.SIDHistoryRowChanging != null)) { + this.SIDHistoryRowChanging(this, new SIDHistoryRowChangeEvent(((SIDHistoryRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.SIDHistoryRowDeleted != null)) { + this.SIDHistoryRowDeleted(this, new SIDHistoryRowChangeEvent(((SIDHistoryRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.SIDHistoryRowDeleting != null)) { + this.SIDHistoryRowDeleting(this, new SIDHistoryRowChangeEvent(((SIDHistoryRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void RemoveSIDHistoryRow(SIDHistoryRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "SIDHistoryDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class Component_Reel_SIDConvRow : global::System.Data.DataRow { + + private Component_Reel_SIDConvDataTable tableComponent_Reel_SIDConv; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal Component_Reel_SIDConvRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableComponent_Reel_SIDConv = ((Component_Reel_SIDConvDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public int idx { + get { + return ((int)(this[this.tableComponent_Reel_SIDConv.idxColumn])); + } + set { + this[this.tableComponent_Reel_SIDConv.idxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string M101 { + get { + if (this.IsM101Null()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SIDConv.M101Column])); + } + } + set { + this[this.tableComponent_Reel_SIDConv.M101Column] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string M103 { + get { + if (this.IsM103Null()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SIDConv.M103Column])); + } + } + set { + this[this.tableComponent_Reel_SIDConv.M103Column] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string M106 { + get { + if (this.IsM106Null()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SIDConv.M106Column])); + } + } + set { + this[this.tableComponent_Reel_SIDConv.M106Column] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string Remark { + get { + if (this.IsRemarkNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SIDConv.RemarkColumn])); + } + } + set { + this[this.tableComponent_Reel_SIDConv.RemarkColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string M108 { + get { + if (this.IsM108Null()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SIDConv.M108Column])); + } + } + set { + this[this.tableComponent_Reel_SIDConv.M108Column] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string M103_2 { + get { + if (this.IsM103_2Null()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SIDConv.M103_2Column])); + } + } + set { + this[this.tableComponent_Reel_SIDConv.M103_2Column] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsM101Null() { + return this.IsNull(this.tableComponent_Reel_SIDConv.M101Column); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetM101Null() { + this[this.tableComponent_Reel_SIDConv.M101Column] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsM103Null() { + return this.IsNull(this.tableComponent_Reel_SIDConv.M103Column); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetM103Null() { + this[this.tableComponent_Reel_SIDConv.M103Column] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsM106Null() { + return this.IsNull(this.tableComponent_Reel_SIDConv.M106Column); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetM106Null() { + this[this.tableComponent_Reel_SIDConv.M106Column] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsRemarkNull() { + return this.IsNull(this.tableComponent_Reel_SIDConv.RemarkColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetRemarkNull() { + this[this.tableComponent_Reel_SIDConv.RemarkColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsM108Null() { + return this.IsNull(this.tableComponent_Reel_SIDConv.M108Column); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetM108Null() { + this[this.tableComponent_Reel_SIDConv.M108Column] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsM103_2Null() { + return this.IsNull(this.tableComponent_Reel_SIDConv.M103_2Column); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetM103_2Null() { + this[this.tableComponent_Reel_SIDConv.M103_2Column] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class Component_Reel_SIDInfoRow : global::System.Data.DataRow { + + private Component_Reel_SIDInfoDataTable tableComponent_Reel_SIDInfo; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal Component_Reel_SIDInfoRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableComponent_Reel_SIDInfo = ((Component_Reel_SIDInfoDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string SID { + get { + return ((string)(this[this.tableComponent_Reel_SIDInfo.SIDColumn])); + } + set { + this[this.tableComponent_Reel_SIDInfo.SIDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string CustCode { + get { + return ((string)(this[this.tableComponent_Reel_SIDInfo.CustCodeColumn])); + } + set { + this[this.tableComponent_Reel_SIDInfo.CustCodeColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string CustName { + get { + if (this.IsCustNameNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SIDInfo.CustNameColumn])); + } + } + set { + this[this.tableComponent_Reel_SIDInfo.CustNameColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string VenderName { + get { + if (this.IsVenderNameNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SIDInfo.VenderNameColumn])); + } + } + set { + this[this.tableComponent_Reel_SIDInfo.VenderNameColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string PartNo { + get { + return ((string)(this[this.tableComponent_Reel_SIDInfo.PartNoColumn])); + } + set { + this[this.tableComponent_Reel_SIDInfo.PartNoColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string PrintPosition { + get { + if (this.IsPrintPositionNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SIDInfo.PrintPositionColumn])); + } + } + set { + this[this.tableComponent_Reel_SIDInfo.PrintPositionColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string Remark { + get { + if (this.IsRemarkNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SIDInfo.RemarkColumn])); + } + } + set { + this[this.tableComponent_Reel_SIDInfo.RemarkColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsCustNameNull() { + return this.IsNull(this.tableComponent_Reel_SIDInfo.CustNameColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetCustNameNull() { + this[this.tableComponent_Reel_SIDInfo.CustNameColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsVenderNameNull() { + return this.IsNull(this.tableComponent_Reel_SIDInfo.VenderNameColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetVenderNameNull() { + this[this.tableComponent_Reel_SIDInfo.VenderNameColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsPrintPositionNull() { + return this.IsNull(this.tableComponent_Reel_SIDInfo.PrintPositionColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetPrintPositionNull() { + this[this.tableComponent_Reel_SIDInfo.PrintPositionColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsRemarkNull() { + return this.IsNull(this.tableComponent_Reel_SIDInfo.RemarkColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetRemarkNull() { + this[this.tableComponent_Reel_SIDInfo.RemarkColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class Component_Reel_ResultRow : global::System.Data.DataRow { + + private Component_Reel_ResultDataTable tableComponent_Reel_Result; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal Component_Reel_ResultRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableComponent_Reel_Result = ((Component_Reel_ResultDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public int idx { + get { + return ((int)(this[this.tableComponent_Reel_Result.idxColumn])); + } + set { + this[this.tableComponent_Reel_Result.idxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public System.DateTime STIME { + get { + return ((global::System.DateTime)(this[this.tableComponent_Reel_Result.STIMEColumn])); + } + set { + this[this.tableComponent_Reel_Result.STIMEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public System.DateTime ETIME { + get { + try { + return ((global::System.DateTime)(this[this.tableComponent_Reel_Result.ETIMEColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'Component_Reel_Result\' 테이블의 \'ETIME\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableComponent_Reel_Result.ETIMEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string PDATE { + get { + if (this.IsPDATENull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.PDATEColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.PDATEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string JTYPE { + get { + if (this.IsJTYPENull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.JTYPEColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.JTYPEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string JGUID { + get { + if (this.IsJGUIDNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.JGUIDColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.JGUIDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string SID { + get { + if (this.IsSIDNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.SIDColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.SIDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string SID0 { + get { + if (this.IsSID0Null()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.SID0Column])); + } + } + set { + this[this.tableComponent_Reel_Result.SID0Column] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string RID { + get { + if (this.IsRIDNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.RIDColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.RIDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string RID0 { + get { + if (this.IsRID0Null()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.RID0Column])); + } + } + set { + this[this.tableComponent_Reel_Result.RID0Column] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string RSN { + get { + if (this.IsRSNNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.RSNColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.RSNColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string QR { + get { + if (this.IsQRNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.QRColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.QRColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string ZPL { + get { + if (this.IsZPLNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.ZPLColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.ZPLColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string POS { + get { + if (this.IsPOSNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.POSColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.POSColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string LOC { + get { + if (this.IsLOCNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.LOCColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.LOCColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public double ANGLE { + get { + if (this.IsANGLENull()) { + return 0D; + } + else { + return ((double)(this[this.tableComponent_Reel_Result.ANGLEColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.ANGLEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public int QTY { + get { + if (this.IsQTYNull()) { + return 0; + } + else { + return ((int)(this[this.tableComponent_Reel_Result.QTYColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.QTYColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public int QTY0 { + get { + if (this.IsQTY0Null()) { + return 0; + } + else { + return ((int)(this[this.tableComponent_Reel_Result.QTY0Column])); + } + } + set { + this[this.tableComponent_Reel_Result.QTY0Column] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public System.DateTime wdate { + get { + return ((global::System.DateTime)(this[this.tableComponent_Reel_Result.wdateColumn])); + } + set { + this[this.tableComponent_Reel_Result.wdateColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string VNAME { + get { + if (this.IsVNAMENull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.VNAMEColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.VNAMEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool PRNATTACH { + get { + if (this.IsPRNATTACHNull()) { + return false; + } + else { + return ((bool)(this[this.tableComponent_Reel_Result.PRNATTACHColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.PRNATTACHColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool PRNVALID { + get { + if (this.IsPRNVALIDNull()) { + return false; + } + else { + return ((bool)(this[this.tableComponent_Reel_Result.PRNVALIDColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.PRNVALIDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public System.DateTime PTIME { + get { + try { + return ((global::System.DateTime)(this[this.tableComponent_Reel_Result.PTIMEColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'Component_Reel_Result\' 테이블의 \'PTIME\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableComponent_Reel_Result.PTIMEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string MFGDATE { + get { + if (this.IsMFGDATENull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.MFGDATEColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.MFGDATEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string VLOT { + get { + if (this.IsVLOTNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.VLOTColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.VLOTColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string REMARK { + get { + if (this.IsREMARKNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.REMARKColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.REMARKColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string PNO { + get { + if (this.IsPNONull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.PNOColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.PNOColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsETIMENull() { + return this.IsNull(this.tableComponent_Reel_Result.ETIMEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetETIMENull() { + this[this.tableComponent_Reel_Result.ETIMEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsPDATENull() { + return this.IsNull(this.tableComponent_Reel_Result.PDATEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetPDATENull() { + this[this.tableComponent_Reel_Result.PDATEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsJTYPENull() { + return this.IsNull(this.tableComponent_Reel_Result.JTYPEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetJTYPENull() { + this[this.tableComponent_Reel_Result.JTYPEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsJGUIDNull() { + return this.IsNull(this.tableComponent_Reel_Result.JGUIDColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetJGUIDNull() { + this[this.tableComponent_Reel_Result.JGUIDColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsSIDNull() { + return this.IsNull(this.tableComponent_Reel_Result.SIDColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetSIDNull() { + this[this.tableComponent_Reel_Result.SIDColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsSID0Null() { + return this.IsNull(this.tableComponent_Reel_Result.SID0Column); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetSID0Null() { + this[this.tableComponent_Reel_Result.SID0Column] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsRIDNull() { + return this.IsNull(this.tableComponent_Reel_Result.RIDColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetRIDNull() { + this[this.tableComponent_Reel_Result.RIDColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsRID0Null() { + return this.IsNull(this.tableComponent_Reel_Result.RID0Column); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetRID0Null() { + this[this.tableComponent_Reel_Result.RID0Column] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsRSNNull() { + return this.IsNull(this.tableComponent_Reel_Result.RSNColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetRSNNull() { + this[this.tableComponent_Reel_Result.RSNColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsQRNull() { + return this.IsNull(this.tableComponent_Reel_Result.QRColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetQRNull() { + this[this.tableComponent_Reel_Result.QRColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsZPLNull() { + return this.IsNull(this.tableComponent_Reel_Result.ZPLColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetZPLNull() { + this[this.tableComponent_Reel_Result.ZPLColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsPOSNull() { + return this.IsNull(this.tableComponent_Reel_Result.POSColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetPOSNull() { + this[this.tableComponent_Reel_Result.POSColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsLOCNull() { + return this.IsNull(this.tableComponent_Reel_Result.LOCColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetLOCNull() { + this[this.tableComponent_Reel_Result.LOCColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsANGLENull() { + return this.IsNull(this.tableComponent_Reel_Result.ANGLEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetANGLENull() { + this[this.tableComponent_Reel_Result.ANGLEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsQTYNull() { + return this.IsNull(this.tableComponent_Reel_Result.QTYColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetQTYNull() { + this[this.tableComponent_Reel_Result.QTYColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsQTY0Null() { + return this.IsNull(this.tableComponent_Reel_Result.QTY0Column); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetQTY0Null() { + this[this.tableComponent_Reel_Result.QTY0Column] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsVNAMENull() { + return this.IsNull(this.tableComponent_Reel_Result.VNAMEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetVNAMENull() { + this[this.tableComponent_Reel_Result.VNAMEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsPRNATTACHNull() { + return this.IsNull(this.tableComponent_Reel_Result.PRNATTACHColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetPRNATTACHNull() { + this[this.tableComponent_Reel_Result.PRNATTACHColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsPRNVALIDNull() { + return this.IsNull(this.tableComponent_Reel_Result.PRNVALIDColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetPRNVALIDNull() { + this[this.tableComponent_Reel_Result.PRNVALIDColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsPTIMENull() { + return this.IsNull(this.tableComponent_Reel_Result.PTIMEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetPTIMENull() { + this[this.tableComponent_Reel_Result.PTIMEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsMFGDATENull() { + return this.IsNull(this.tableComponent_Reel_Result.MFGDATEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetMFGDATENull() { + this[this.tableComponent_Reel_Result.MFGDATEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsVLOTNull() { + return this.IsNull(this.tableComponent_Reel_Result.VLOTColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetVLOTNull() { + this[this.tableComponent_Reel_Result.VLOTColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsREMARKNull() { + return this.IsNull(this.tableComponent_Reel_Result.REMARKColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetREMARKNull() { + this[this.tableComponent_Reel_Result.REMARKColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsPNONull() { + return this.IsNull(this.tableComponent_Reel_Result.PNOColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetPNONull() { + this[this.tableComponent_Reel_Result.PNOColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class Component_Reel_CustRuleRow : global::System.Data.DataRow { + + private Component_Reel_CustRuleDataTable tableComponent_Reel_CustRule; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal Component_Reel_CustRuleRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableComponent_Reel_CustRule = ((Component_Reel_CustRuleDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public int idx { + get { + return ((int)(this[this.tableComponent_Reel_CustRule.idxColumn])); + } + set { + this[this.tableComponent_Reel_CustRule.idxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string code { + get { + return ((string)(this[this.tableComponent_Reel_CustRule.codeColumn])); + } + set { + this[this.tableComponent_Reel_CustRule.codeColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string pre { + get { + if (this.IspreNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_CustRule.preColumn])); + } + } + set { + this[this.tableComponent_Reel_CustRule.preColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string pos { + get { + if (this.IsposNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_CustRule.posColumn])); + } + } + set { + this[this.tableComponent_Reel_CustRule.posColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public int len { + get { + if (this.IslenNull()) { + return 0; + } + else { + return ((int)(this[this.tableComponent_Reel_CustRule.lenColumn])); + } + } + set { + this[this.tableComponent_Reel_CustRule.lenColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string exp { + get { + if (this.IsexpNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_CustRule.expColumn])); + } + } + set { + this[this.tableComponent_Reel_CustRule.expColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IspreNull() { + return this.IsNull(this.tableComponent_Reel_CustRule.preColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetpreNull() { + this[this.tableComponent_Reel_CustRule.preColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsposNull() { + return this.IsNull(this.tableComponent_Reel_CustRule.posColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetposNull() { + this[this.tableComponent_Reel_CustRule.posColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IslenNull() { + return this.IsNull(this.tableComponent_Reel_CustRule.lenColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetlenNull() { + this[this.tableComponent_Reel_CustRule.lenColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsexpNull() { + return this.IsNull(this.tableComponent_Reel_CustRule.expColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetexpNull() { + this[this.tableComponent_Reel_CustRule.expColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class Component_Reel_CustInfoRow : global::System.Data.DataRow { + + private Component_Reel_CustInfoDataTable tableComponent_Reel_CustInfo; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal Component_Reel_CustInfoRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableComponent_Reel_CustInfo = ((Component_Reel_CustInfoDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string code { + get { + return ((string)(this[this.tableComponent_Reel_CustInfo.codeColumn])); + } + set { + this[this.tableComponent_Reel_CustInfo.codeColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string name { + get { + if (this.IsnameNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_CustInfo.nameColumn])); + } + } + set { + this[this.tableComponent_Reel_CustInfo.nameColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsnameNull() { + return this.IsNull(this.tableComponent_Reel_CustInfo.nameColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetnameNull() { + this[this.tableComponent_Reel_CustInfo.nameColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class UsersRow : global::System.Data.DataRow { + + private UsersDataTable tableUsers; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal UsersRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableUsers = ((UsersDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public int idx { + get { + return ((int)(this[this.tableUsers.idxColumn])); + } + set { + this[this.tableUsers.idxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string No { + get { + if (this.IsNoNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableUsers.NoColumn])); + } + } + set { + this[this.tableUsers.NoColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string Name { + get { + if (this.IsNameNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableUsers.NameColumn])); + } + } + set { + this[this.tableUsers.NameColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string Memo { + get { + if (this.IsMemoNull()) { + return ""; + } + else { + return ((string)(this[this.tableUsers.MemoColumn])); + } + } + set { + this[this.tableUsers.MemoColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsNoNull() { + return this.IsNull(this.tableUsers.NoColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetNoNull() { + this[this.tableUsers.NoColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsNameNull() { + return this.IsNull(this.tableUsers.NameColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetNameNull() { + this[this.tableUsers.NameColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsMemoNull() { + return this.IsNull(this.tableUsers.MemoColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetMemoNull() { + this[this.tableUsers.MemoColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class MCModelRow : global::System.Data.DataRow { + + private MCModelDataTable tableMCModel; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal MCModelRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableMCModel = ((MCModelDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public int idx { + get { + return ((int)(this[this.tableMCModel.idxColumn])); + } + set { + this[this.tableMCModel.idxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string Title { + get { + if (this.IsTitleNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableMCModel.TitleColumn])); + } + } + set { + this[this.tableMCModel.TitleColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public int pidx { + get { + if (this.IspidxNull()) { + return -1; + } + else { + return ((int)(this[this.tableMCModel.pidxColumn])); + } + } + set { + this[this.tableMCModel.pidxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public short MotIndex { + get { + if (this.IsMotIndexNull()) { + return -1; + } + else { + return ((short)(this[this.tableMCModel.MotIndexColumn])); + } + } + set { + this[this.tableMCModel.MotIndexColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public short PosIndex { + get { + if (this.IsPosIndexNull()) { + return -1; + } + else { + return ((short)(this[this.tableMCModel.PosIndexColumn])); + } + } + set { + this[this.tableMCModel.PosIndexColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string PosTitle { + get { + if (this.IsPosTitleNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableMCModel.PosTitleColumn])); + } + } + set { + this[this.tableMCModel.PosTitleColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public double Position { + get { + if (this.IsPositionNull()) { + return 0D; + } + else { + return ((double)(this[this.tableMCModel.PositionColumn])); + } + } + set { + this[this.tableMCModel.PositionColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string SpdTitle { + get { + if (this.IsSpdTitleNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableMCModel.SpdTitleColumn])); + } + } + set { + this[this.tableMCModel.SpdTitleColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public double Speed { + get { + if (this.IsSpeedNull()) { + return 0D; + } + else { + return ((double)(this[this.tableMCModel.SpeedColumn])); + } + } + set { + this[this.tableMCModel.SpeedColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public double SpeedAcc { + get { + if (this.IsSpeedAccNull()) { + return 0D; + } + else { + return ((double)(this[this.tableMCModel.SpeedAccColumn])); + } + } + set { + this[this.tableMCModel.SpeedAccColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool Check { + get { + if (this.IsCheckNull()) { + return false; + } + else { + return ((bool)(this[this.tableMCModel.CheckColumn])); + } + } + set { + this[this.tableMCModel.CheckColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public double SpeedDcc { + get { + if (this.IsSpeedDccNull()) { + return 0D; + } + else { + return ((double)(this[this.tableMCModel.SpeedDccColumn])); + } + } + set { + this[this.tableMCModel.SpeedDccColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsTitleNull() { + return this.IsNull(this.tableMCModel.TitleColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetTitleNull() { + this[this.tableMCModel.TitleColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IspidxNull() { + return this.IsNull(this.tableMCModel.pidxColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetpidxNull() { + this[this.tableMCModel.pidxColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsMotIndexNull() { + return this.IsNull(this.tableMCModel.MotIndexColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetMotIndexNull() { + this[this.tableMCModel.MotIndexColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsPosIndexNull() { + return this.IsNull(this.tableMCModel.PosIndexColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetPosIndexNull() { + this[this.tableMCModel.PosIndexColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsPosTitleNull() { + return this.IsNull(this.tableMCModel.PosTitleColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetPosTitleNull() { + this[this.tableMCModel.PosTitleColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsPositionNull() { + return this.IsNull(this.tableMCModel.PositionColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetPositionNull() { + this[this.tableMCModel.PositionColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsSpdTitleNull() { + return this.IsNull(this.tableMCModel.SpdTitleColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetSpdTitleNull() { + this[this.tableMCModel.SpdTitleColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsSpeedNull() { + return this.IsNull(this.tableMCModel.SpeedColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetSpeedNull() { + this[this.tableMCModel.SpeedColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsSpeedAccNull() { + return this.IsNull(this.tableMCModel.SpeedAccColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetSpeedAccNull() { + this[this.tableMCModel.SpeedAccColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsCheckNull() { + return this.IsNull(this.tableMCModel.CheckColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetCheckNull() { + this[this.tableMCModel.CheckColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsSpeedDccNull() { + return this.IsNull(this.tableMCModel.SpeedDccColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetSpeedDccNull() { + this[this.tableMCModel.SpeedDccColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class languageRow : global::System.Data.DataRow { + + private languageDataTable tablelanguage; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal languageRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tablelanguage = ((languageDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string Section { + get { + return ((string)(this[this.tablelanguage.SectionColumn])); + } + set { + this[this.tablelanguage.SectionColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string Key { + get { + return ((string)(this[this.tablelanguage.KeyColumn])); + } + set { + this[this.tablelanguage.KeyColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string Value { + get { + if (this.IsValueNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tablelanguage.ValueColumn])); + } + } + set { + this[this.tablelanguage.ValueColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsValueNull() { + return this.IsNull(this.tablelanguage.ValueColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetValueNull() { + this[this.tablelanguage.ValueColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class ModelRow : global::System.Data.DataRow { + + private ModelDataTable tableModel; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal ModelRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableModel = ((ModelDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public int idx { + get { + return ((int)(this[this.tableModel.idxColumn])); + } + set { + this[this.tableModel.idxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public int Midx { + get { + if (this.IsMidxNull()) { + return -1; + } + else { + return ((int)(this[this.tableModel.MidxColumn])); + } + } + set { + this[this.tableModel.MidxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string Title { + get { + if (this.IsTitleNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableModel.TitleColumn])); + } + } + set { + this[this.tableModel.TitleColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string Memo { + get { + if (this.IsMemoNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableModel.MemoColumn])); + } + } + set { + this[this.tableModel.MemoColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsMidxNull() { + return this.IsNull(this.tableModel.MidxColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetMidxNull() { + this[this.tableModel.MidxColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsTitleNull() { + return this.IsNull(this.tableModel.TitleColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetTitleNull() { + this[this.tableModel.TitleColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsMemoNull() { + return this.IsNull(this.tableModel.MemoColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetMemoNull() { + this[this.tableModel.MemoColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class BCDDataRow : global::System.Data.DataRow { + + private BCDDataDataTable tableBCDData; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal BCDDataRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableBCDData = ((BCDDataDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public System.DateTime Start { + get { + return ((global::System.DateTime)(this[this.tableBCDData.StartColumn])); + } + set { + this[this.tableBCDData.StartColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string ID { + get { + if (this.IsIDNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableBCDData.IDColumn])); + } + } + set { + this[this.tableBCDData.IDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string SID { + get { + if (this.IsSIDNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableBCDData.SIDColumn])); + } + } + set { + this[this.tableBCDData.SIDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string RAW { + get { + if (this.IsRAWNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableBCDData.RAWColumn])); + } + } + set { + this[this.tableBCDData.RAWColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsIDNull() { + return this.IsNull(this.tableBCDData.IDColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetIDNull() { + this[this.tableBCDData.IDColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsSIDNull() { + return this.IsNull(this.tableBCDData.SIDColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetSIDNull() { + this[this.tableBCDData.SIDColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsRAWNull() { + return this.IsNull(this.tableBCDData.RAWColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetRAWNull() { + this[this.tableBCDData.RAWColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class UserSIDRow : global::System.Data.DataRow { + + private UserSIDDataTable tableUserSID; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal UserSIDRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableUserSID = ((UserSIDDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public int idx { + get { + return ((int)(this[this.tableUserSID.idxColumn])); + } + set { + this[this.tableUserSID.idxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string Port { + get { + if (this.IsPortNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableUserSID.PortColumn])); + } + } + set { + this[this.tableUserSID.PortColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string SID { + get { + if (this.IsSIDNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableUserSID.SIDColumn])); + } + } + set { + this[this.tableUserSID.SIDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsPortNull() { + return this.IsNull(this.tableUserSID.PortColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetPortNull() { + this[this.tableUserSID.PortColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsSIDNull() { + return this.IsNull(this.tableUserSID.SIDColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetSIDNull() { + this[this.tableUserSID.SIDColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class MailFormatRow : global::System.Data.DataRow { + + private MailFormatDataTable tableMailFormat; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal MailFormatRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableMailFormat = ((MailFormatDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string subject { + get { + try { + return ((string)(this[this.tableMailFormat.subjectColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'MailFormat\' 테이블의 \'subject\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableMailFormat.subjectColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string content { + get { + try { + return ((string)(this[this.tableMailFormat.contentColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'MailFormat\' 테이블의 \'content\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableMailFormat.contentColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IssubjectNull() { + return this.IsNull(this.tableMailFormat.subjectColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetsubjectNull() { + this[this.tableMailFormat.subjectColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IscontentNull() { + return this.IsNull(this.tableMailFormat.contentColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetcontentNull() { + this[this.tableMailFormat.contentColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class MailRecipientRow : global::System.Data.DataRow { + + private MailRecipientDataTable tableMailRecipient; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal MailRecipientRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableMailRecipient = ((MailRecipientDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public int idx { + get { + return ((int)(this[this.tableMailRecipient.idxColumn])); + } + set { + this[this.tableMailRecipient.idxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string Name { + get { + try { + return ((string)(this[this.tableMailRecipient.NameColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'MailRecipient\' 테이블의 \'Name\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableMailRecipient.NameColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string Address { + get { + try { + return ((string)(this[this.tableMailRecipient.AddressColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'MailRecipient\' 테이블의 \'Address\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableMailRecipient.AddressColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsNameNull() { + return this.IsNull(this.tableMailRecipient.NameColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetNameNull() { + this[this.tableMailRecipient.NameColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsAddressNull() { + return this.IsNull(this.tableMailRecipient.AddressColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetAddressNull() { + this[this.tableMailRecipient.AddressColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class SIDHistoryRow : global::System.Data.DataRow { + + private SIDHistoryDataTable tableSIDHistory; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal SIDHistoryRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableSIDHistory = ((SIDHistoryDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public int idx { + get { + return ((int)(this[this.tableSIDHistory.idxColumn])); + } + set { + this[this.tableSIDHistory.idxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public System.DateTime time { + get { + try { + return ((global::System.DateTime)(this[this.tableSIDHistory.timeColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'SIDHistory\' 테이블의 \'time\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableSIDHistory.timeColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string seqdate { + get { + if (this.IsseqdateNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableSIDHistory.seqdateColumn])); + } + } + set { + this[this.tableSIDHistory.seqdateColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string seqno { + get { + if (this.IsseqnoNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableSIDHistory.seqnoColumn])); + } + } + set { + this[this.tableSIDHistory.seqnoColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string sid { + get { + if (this.IssidNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableSIDHistory.sidColumn])); + } + } + set { + this[this.tableSIDHistory.sidColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string rid { + get { + if (this.IsridNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableSIDHistory.ridColumn])); + } + } + set { + this[this.tableSIDHistory.ridColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public int qty { + get { + if (this.IsqtyNull()) { + return 0; + } + else { + return ((int)(this[this.tableSIDHistory.qtyColumn])); + } + } + set { + this[this.tableSIDHistory.qtyColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public int rev { + get { + if (this.IsrevNull()) { + return 0; + } + else { + return ((int)(this[this.tableSIDHistory.revColumn])); + } + } + set { + this[this.tableSIDHistory.revColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public int acc { + get { + if (this.IsaccNull()) { + return 0; + } + else { + return ((int)(this[this.tableSIDHistory.accColumn])); + } + } + set { + this[this.tableSIDHistory.accColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IstimeNull() { + return this.IsNull(this.tableSIDHistory.timeColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SettimeNull() { + this[this.tableSIDHistory.timeColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsseqdateNull() { + return this.IsNull(this.tableSIDHistory.seqdateColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetseqdateNull() { + this[this.tableSIDHistory.seqdateColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsseqnoNull() { + return this.IsNull(this.tableSIDHistory.seqnoColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetseqnoNull() { + this[this.tableSIDHistory.seqnoColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IssidNull() { + return this.IsNull(this.tableSIDHistory.sidColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetsidNull() { + this[this.tableSIDHistory.sidColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsridNull() { + return this.IsNull(this.tableSIDHistory.ridColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetridNull() { + this[this.tableSIDHistory.ridColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsqtyNull() { + return this.IsNull(this.tableSIDHistory.qtyColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetqtyNull() { + this[this.tableSIDHistory.qtyColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsrevNull() { + return this.IsNull(this.tableSIDHistory.revColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetrevNull() { + this[this.tableSIDHistory.revColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsaccNull() { + return this.IsNull(this.tableSIDHistory.accColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetaccNull() { + this[this.tableSIDHistory.accColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public class Component_Reel_SIDConvRowChangeEvent : global::System.EventArgs { + + private Component_Reel_SIDConvRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_SIDConvRowChangeEvent(Component_Reel_SIDConvRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_SIDConvRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public class Component_Reel_SIDInfoRowChangeEvent : global::System.EventArgs { + + private Component_Reel_SIDInfoRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_SIDInfoRowChangeEvent(Component_Reel_SIDInfoRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_SIDInfoRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public class Component_Reel_ResultRowChangeEvent : global::System.EventArgs { + + private Component_Reel_ResultRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_ResultRowChangeEvent(Component_Reel_ResultRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_ResultRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public class Component_Reel_CustRuleRowChangeEvent : global::System.EventArgs { + + private Component_Reel_CustRuleRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_CustRuleRowChangeEvent(Component_Reel_CustRuleRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_CustRuleRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public class Component_Reel_CustInfoRowChangeEvent : global::System.EventArgs { + + private Component_Reel_CustInfoRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_CustInfoRowChangeEvent(Component_Reel_CustInfoRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_CustInfoRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public class UsersRowChangeEvent : global::System.EventArgs { + + private UsersRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public UsersRowChangeEvent(UsersRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public UsersRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public class MCModelRowChangeEvent : global::System.EventArgs { + + private MCModelRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public MCModelRowChangeEvent(MCModelRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public MCModelRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public class languageRowChangeEvent : global::System.EventArgs { + + private languageRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public languageRowChangeEvent(languageRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public languageRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public class ModelRowChangeEvent : global::System.EventArgs { + + private ModelRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public ModelRowChangeEvent(ModelRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public ModelRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public class BCDDataRowChangeEvent : global::System.EventArgs { + + private BCDDataRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public BCDDataRowChangeEvent(BCDDataRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public BCDDataRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public class UserSIDRowChangeEvent : global::System.EventArgs { + + private UserSIDRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public UserSIDRowChangeEvent(UserSIDRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public UserSIDRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public class MailFormatRowChangeEvent : global::System.EventArgs { + + private MailFormatRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public MailFormatRowChangeEvent(MailFormatRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public MailFormatRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public class MailRecipientRowChangeEvent : global::System.EventArgs { + + private MailRecipientRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public MailRecipientRowChangeEvent(MailRecipientRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public MailRecipientRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public class SIDHistoryRowChangeEvent : global::System.EventArgs { + + private SIDHistoryRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public SIDHistoryRowChangeEvent(SIDHistoryRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public SIDHistoryRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + } +} +namespace Project.DataSet1TableAdapters { + + + /// + ///Represents the connection and commands used to retrieve and save data. + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DataObjectAttribute(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + + ", Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public partial class Component_Reel_SIDConvTableAdapter : global::System.ComponentModel.Component { + + private global::System.Data.SqlClient.SqlDataAdapter _adapter; + + private global::System.Data.SqlClient.SqlConnection _connection; + + private global::System.Data.SqlClient.SqlTransaction _transaction; + + private global::System.Data.SqlClient.SqlCommand[] _commandCollection; + + private bool _clearBeforeFill; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_SIDConvTableAdapter() { + this.ClearBeforeFill = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected internal global::System.Data.SqlClient.SqlDataAdapter Adapter { + get { + if ((this._adapter == null)) { + this.InitAdapter(); + } + return this._adapter; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal global::System.Data.SqlClient.SqlConnection Connection { + get { + if ((this._connection == null)) { + this.InitConnection(); + } + return this._connection; + } + set { + this._connection = value; + if ((this.Adapter.InsertCommand != null)) { + this.Adapter.InsertCommand.Connection = value; + } + if ((this.Adapter.DeleteCommand != null)) { + this.Adapter.DeleteCommand.Connection = value; + } + if ((this.Adapter.UpdateCommand != null)) { + this.Adapter.UpdateCommand.Connection = value; + } + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + if ((this.CommandCollection[i] != null)) { + ((global::System.Data.SqlClient.SqlCommand)(this.CommandCollection[i])).Connection = value; + } + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal global::System.Data.SqlClient.SqlTransaction Transaction { + get { + return this._transaction; + } + set { + this._transaction = value; + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + this.CommandCollection[i].Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.DeleteCommand != null))) { + this.Adapter.DeleteCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.InsertCommand != null))) { + this.Adapter.InsertCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.UpdateCommand != null))) { + this.Adapter.UpdateCommand.Transaction = this._transaction; + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected global::System.Data.SqlClient.SqlCommand[] CommandCollection { + get { + if ((this._commandCollection == null)) { + this.InitCommandCollection(); + } + return this._commandCollection; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool ClearBeforeFill { + get { + return this._clearBeforeFill; + } + set { + this._clearBeforeFill = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitAdapter() { + this._adapter = new global::System.Data.SqlClient.SqlDataAdapter(); + global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); + tableMapping.SourceTable = "Table"; + tableMapping.DataSetTable = "Component_Reel_SIDConv"; + tableMapping.ColumnMappings.Add("idx", "idx"); + tableMapping.ColumnMappings.Add("M101", "M101"); + tableMapping.ColumnMappings.Add("M103", "M103"); + tableMapping.ColumnMappings.Add("M106", "M106"); + tableMapping.ColumnMappings.Add("Remark", "Remark"); + tableMapping.ColumnMappings.Add("M108", "M108"); + tableMapping.ColumnMappings.Add("M103_2", "M103_2"); + this._adapter.TableMappings.Add(tableMapping); + this._adapter.DeleteCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.DeleteCommand.Connection = this.Connection; + this._adapter.DeleteCommand.CommandText = @"DELETE FROM [Component_Reel_SIDConv] WHERE (([idx] = @Original_idx) AND ((@IsNull_M101 = 1 AND [M101] IS NULL) OR ([M101] = @Original_M101)) AND ((@IsNull_M103 = 1 AND [M103] IS NULL) OR ([M103] = @Original_M103)) AND ((@IsNull_M106 = 1 AND [M106] IS NULL) OR ([M106] = @Original_M106)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_M108 = 1 AND [M108] IS NULL) OR ([M108] = @Original_M108)) AND ((@IsNull_M103_2 = 1 AND [M103_2] IS NULL) OR ([M103_2] = @Original_M103_2)))"; + this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_idx", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_M101", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M101", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_M101", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M101", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_M103", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M103", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_M103", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M103", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_M106", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M106", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_M106", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M106", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Remark", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_M108", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M108", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_M108", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M108", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_M103_2", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M103_2", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_M103_2", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M103_2", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.InsertCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.InsertCommand.Connection = this.Connection; + this._adapter.InsertCommand.CommandText = "INSERT INTO [Component_Reel_SIDConv] ([M101], [M103], [M106], [Remark], [M108], [" + + "M103_2]) VALUES (@M101, @M103, @M106, @Remark, @M108, @M103_2);\r\nSELECT idx, M10" + + "1, M103, M106, Remark, M108, M103_2 FROM Component_Reel_SIDConv WHERE (idx = SCO" + + "PE_IDENTITY())"; + this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@M101", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M101", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@M103", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M103", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@M106", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M106", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@M108", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M108", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@M103_2", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M103_2", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.UpdateCommand.Connection = this.Connection; + this._adapter.UpdateCommand.CommandText = @"UPDATE [Component_Reel_SIDConv] SET [M101] = @M101, [M103] = @M103, [M106] = @M106, [Remark] = @Remark, [M108] = @M108, [M103_2] = @M103_2 WHERE (([idx] = @Original_idx) AND ((@IsNull_M101 = 1 AND [M101] IS NULL) OR ([M101] = @Original_M101)) AND ((@IsNull_M103 = 1 AND [M103] IS NULL) OR ([M103] = @Original_M103)) AND ((@IsNull_M106 = 1 AND [M106] IS NULL) OR ([M106] = @Original_M106)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_M108 = 1 AND [M108] IS NULL) OR ([M108] = @Original_M108)) AND ((@IsNull_M103_2 = 1 AND [M103_2] IS NULL) OR ([M103_2] = @Original_M103_2))); +SELECT idx, M101, M103, M106, Remark, M108, M103_2 FROM Component_Reel_SIDConv WHERE (idx = @idx)"; + this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@M101", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M101", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@M103", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M103", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@M106", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M106", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@M108", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M108", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@M103_2", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M103_2", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_idx", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_M101", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M101", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_M101", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M101", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_M103", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M103", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_M103", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M103", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_M106", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M106", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_M106", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M106", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Remark", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_M108", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M108", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_M108", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M108", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_M103_2", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M103_2", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_M103_2", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "M103_2", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@idx", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitConnection() { + this._connection = new global::System.Data.SqlClient.SqlConnection(); + this._connection.ConnectionString = global::Project.Properties.Settings.Default.CS; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitCommandCollection() { + this._commandCollection = new global::System.Data.SqlClient.SqlCommand[1]; + this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[0].Connection = this.Connection; + this._commandCollection[0].CommandText = "SELECT idx, M101, M103, M106, Remark, M108, M103_2\r\nFROM Component_Reel_SIDC" + + "onv"; + this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] + public virtual int Fill(DataSet1.Component_Reel_SIDConvDataTable dataTable) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] + public virtual DataSet1.Component_Reel_SIDConvDataTable GetData() { + this.Adapter.SelectCommand = this.CommandCollection[0]; + DataSet1.Component_Reel_SIDConvDataTable dataTable = new DataSet1.Component_Reel_SIDConvDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1.Component_Reel_SIDConvDataTable dataTable) { + return this.Adapter.Update(dataTable); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1 dataSet) { + return this.Adapter.Update(dataSet, "Component_Reel_SIDConv"); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow dataRow) { + return this.Adapter.Update(new global::System.Data.DataRow[] { + dataRow}); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow[] dataRows) { + return this.Adapter.Update(dataRows); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, true)] + public virtual int Delete(int Original_idx, string Original_M101, string Original_M103, string Original_M106, string Original_Remark, string Original_M108, string Original_M103_2) { + this.Adapter.DeleteCommand.Parameters[0].Value = ((int)(Original_idx)); + if ((Original_M101 == null)) { + this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[2].Value = ((string)(Original_M101)); + } + if ((Original_M103 == null)) { + this.Adapter.DeleteCommand.Parameters[3].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[3].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[4].Value = ((string)(Original_M103)); + } + if ((Original_M106 == null)) { + this.Adapter.DeleteCommand.Parameters[5].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[6].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[5].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[6].Value = ((string)(Original_M106)); + } + if ((Original_Remark == null)) { + this.Adapter.DeleteCommand.Parameters[7].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[8].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[7].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[8].Value = ((string)(Original_Remark)); + } + if ((Original_M108 == null)) { + this.Adapter.DeleteCommand.Parameters[9].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[10].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[9].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[10].Value = ((string)(Original_M108)); + } + if ((Original_M103_2 == null)) { + this.Adapter.DeleteCommand.Parameters[11].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[12].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[11].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[12].Value = ((string)(Original_M103_2)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; + if (((this.Adapter.DeleteCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.DeleteCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.DeleteCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.DeleteCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] + public virtual int Insert(string M101, string M103, string M106, string Remark, string M108, string M103_2) { + if ((M101 == null)) { + this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[0].Value = ((string)(M101)); + } + if ((M103 == null)) { + this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[1].Value = ((string)(M103)); + } + if ((M106 == null)) { + this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[2].Value = ((string)(M106)); + } + if ((Remark == null)) { + this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[3].Value = ((string)(Remark)); + } + if ((M108 == null)) { + this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[4].Value = ((string)(M108)); + } + if ((M103_2 == null)) { + this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[5].Value = ((string)(M103_2)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; + if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.InsertCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.InsertCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update(string M101, string M103, string M106, string Remark, string M108, string M103_2, int Original_idx, string Original_M101, string Original_M103, string Original_M106, string Original_Remark, string Original_M108, string Original_M103_2, int idx) { + if ((M101 == null)) { + this.Adapter.UpdateCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[0].Value = ((string)(M101)); + } + if ((M103 == null)) { + this.Adapter.UpdateCommand.Parameters[1].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[1].Value = ((string)(M103)); + } + if ((M106 == null)) { + this.Adapter.UpdateCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[2].Value = ((string)(M106)); + } + if ((Remark == null)) { + this.Adapter.UpdateCommand.Parameters[3].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[3].Value = ((string)(Remark)); + } + if ((M108 == null)) { + this.Adapter.UpdateCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[4].Value = ((string)(M108)); + } + if ((M103_2 == null)) { + this.Adapter.UpdateCommand.Parameters[5].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[5].Value = ((string)(M103_2)); + } + this.Adapter.UpdateCommand.Parameters[6].Value = ((int)(Original_idx)); + if ((Original_M101 == null)) { + this.Adapter.UpdateCommand.Parameters[7].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[8].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[7].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[8].Value = ((string)(Original_M101)); + } + if ((Original_M103 == null)) { + this.Adapter.UpdateCommand.Parameters[9].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[10].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[9].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[10].Value = ((string)(Original_M103)); + } + if ((Original_M106 == null)) { + this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[12].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[12].Value = ((string)(Original_M106)); + } + if ((Original_Remark == null)) { + this.Adapter.UpdateCommand.Parameters[13].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[14].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[13].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[14].Value = ((string)(Original_Remark)); + } + if ((Original_M108 == null)) { + this.Adapter.UpdateCommand.Parameters[15].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[16].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[15].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[16].Value = ((string)(Original_M108)); + } + if ((Original_M103_2 == null)) { + this.Adapter.UpdateCommand.Parameters[17].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[18].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[17].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[18].Value = ((string)(Original_M103_2)); + } + this.Adapter.UpdateCommand.Parameters[19].Value = ((int)(idx)); + global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; + if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.UpdateCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.UpdateCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update(string M101, string M103, string M106, string Remark, string M108, string M103_2, int Original_idx, string Original_M101, string Original_M103, string Original_M106, string Original_Remark, string Original_M108, string Original_M103_2) { + return this.Update(M101, M103, M106, Remark, M108, M103_2, Original_idx, Original_M101, Original_M103, Original_M106, Original_Remark, Original_M108, Original_M103_2, Original_idx); + } + } + + /// + ///Represents the connection and commands used to retrieve and save data. + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DataObjectAttribute(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + + ", Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public partial class Component_Reel_SIDInfoTableAdapter : global::System.ComponentModel.Component { + + private global::System.Data.SqlClient.SqlDataAdapter _adapter; + + private global::System.Data.SqlClient.SqlConnection _connection; + + private global::System.Data.SqlClient.SqlTransaction _transaction; + + private global::System.Data.SqlClient.SqlCommand[] _commandCollection; + + private bool _clearBeforeFill; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_SIDInfoTableAdapter() { + this.ClearBeforeFill = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected internal global::System.Data.SqlClient.SqlDataAdapter Adapter { + get { + if ((this._adapter == null)) { + this.InitAdapter(); + } + return this._adapter; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal global::System.Data.SqlClient.SqlConnection Connection { + get { + if ((this._connection == null)) { + this.InitConnection(); + } + return this._connection; + } + set { + this._connection = value; + if ((this.Adapter.InsertCommand != null)) { + this.Adapter.InsertCommand.Connection = value; + } + if ((this.Adapter.DeleteCommand != null)) { + this.Adapter.DeleteCommand.Connection = value; + } + if ((this.Adapter.UpdateCommand != null)) { + this.Adapter.UpdateCommand.Connection = value; + } + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + if ((this.CommandCollection[i] != null)) { + ((global::System.Data.SqlClient.SqlCommand)(this.CommandCollection[i])).Connection = value; + } + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal global::System.Data.SqlClient.SqlTransaction Transaction { + get { + return this._transaction; + } + set { + this._transaction = value; + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + this.CommandCollection[i].Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.DeleteCommand != null))) { + this.Adapter.DeleteCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.InsertCommand != null))) { + this.Adapter.InsertCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.UpdateCommand != null))) { + this.Adapter.UpdateCommand.Transaction = this._transaction; + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected global::System.Data.SqlClient.SqlCommand[] CommandCollection { + get { + if ((this._commandCollection == null)) { + this.InitCommandCollection(); + } + return this._commandCollection; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool ClearBeforeFill { + get { + return this._clearBeforeFill; + } + set { + this._clearBeforeFill = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitAdapter() { + this._adapter = new global::System.Data.SqlClient.SqlDataAdapter(); + global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); + tableMapping.SourceTable = "Table"; + tableMapping.DataSetTable = "Component_Reel_SIDInfo"; + tableMapping.ColumnMappings.Add("SID", "SID"); + tableMapping.ColumnMappings.Add("CustCode", "CustCode"); + tableMapping.ColumnMappings.Add("CustName", "CustName"); + tableMapping.ColumnMappings.Add("VenderName", "VenderName"); + tableMapping.ColumnMappings.Add("PartNo", "PartNo"); + tableMapping.ColumnMappings.Add("PrintPosition", "PrintPosition"); + tableMapping.ColumnMappings.Add("Remark", "Remark"); + this._adapter.TableMappings.Add(tableMapping); + this._adapter.DeleteCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.DeleteCommand.Connection = this.Connection; + this._adapter.DeleteCommand.CommandText = @"DELETE FROM [Component_Reel_SIDInfo] WHERE (([SID] = @Original_SID) AND ([CustCode] = @Original_CustCode) AND ((@IsNull_CustName = 1 AND [CustName] IS NULL) OR ([CustName] = @Original_CustName)) AND ((@IsNull_VenderName = 1 AND [VenderName] IS NULL) OR ([VenderName] = @Original_VenderName)) AND ([PartNo] = @Original_PartNo) AND ((@IsNull_PrintPosition = 1 AND [PrintPosition] IS NULL) OR ([PrintPosition] = @Original_PrintPosition)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)))"; + this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_SID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CustCode", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_CustName", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustName", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CustName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustName", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_VenderName", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderName", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_VenderName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderName", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PartNo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PartNo", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_PrintPosition", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PrintPosition", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PrintPosition", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PrintPosition", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Remark", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.InsertCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.InsertCommand.Connection = this.Connection; + this._adapter.InsertCommand.CommandText = @"INSERT INTO [Component_Reel_SIDInfo] ([SID], [CustCode], [CustName], [VenderName], [PartNo], [PrintPosition], [Remark]) VALUES (@SID, @CustCode, @CustName, @VenderName, @PartNo, @PrintPosition, @Remark); +SELECT SID, CustCode, CustName, VenderName, PartNo, PrintPosition, Remark FROM Component_Reel_SIDInfo WHERE (CustCode = @CustCode) AND (PartNo = @PartNo) AND (SID = @SID)"; + this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CustCode", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CustName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustName", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@VenderName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderName", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PartNo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PartNo", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PrintPosition", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PrintPosition", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.UpdateCommand.Connection = this.Connection; + this._adapter.UpdateCommand.CommandText = @"UPDATE [Component_Reel_SIDInfo] SET [SID] = @SID, [CustCode] = @CustCode, [CustName] = @CustName, [VenderName] = @VenderName, [PartNo] = @PartNo, [PrintPosition] = @PrintPosition, [Remark] = @Remark WHERE (([SID] = @Original_SID) AND ([CustCode] = @Original_CustCode) AND ((@IsNull_CustName = 1 AND [CustName] IS NULL) OR ([CustName] = @Original_CustName)) AND ((@IsNull_VenderName = 1 AND [VenderName] IS NULL) OR ([VenderName] = @Original_VenderName)) AND ([PartNo] = @Original_PartNo) AND ((@IsNull_PrintPosition = 1 AND [PrintPosition] IS NULL) OR ([PrintPosition] = @Original_PrintPosition)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark))); +SELECT SID, CustCode, CustName, VenderName, PartNo, PrintPosition, Remark FROM Component_Reel_SIDInfo WHERE (CustCode = @CustCode) AND (PartNo = @PartNo) AND (SID = @SID)"; + this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CustCode", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CustName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustName", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@VenderName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderName", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PartNo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PartNo", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PrintPosition", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PrintPosition", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_SID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CustCode", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_CustName", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustName", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CustName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustName", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_VenderName", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderName", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_VenderName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderName", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PartNo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PartNo", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_PrintPosition", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PrintPosition", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PrintPosition", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PrintPosition", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Remark", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitConnection() { + this._connection = new global::System.Data.SqlClient.SqlConnection(); + this._connection.ConnectionString = global::Project.Properties.Settings.Default.CS; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitCommandCollection() { + this._commandCollection = new global::System.Data.SqlClient.SqlCommand[1]; + this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[0].Connection = this.Connection; + this._commandCollection[0].CommandText = "SELECT SID, CustCode, CustName, VenderName, PartNo, PrintPosition, Remark\r\nFROM " + + " Component_Reel_SIDInfo"; + this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] + public virtual int Fill(DataSet1.Component_Reel_SIDInfoDataTable dataTable) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] + public virtual DataSet1.Component_Reel_SIDInfoDataTable GetData() { + this.Adapter.SelectCommand = this.CommandCollection[0]; + DataSet1.Component_Reel_SIDInfoDataTable dataTable = new DataSet1.Component_Reel_SIDInfoDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1.Component_Reel_SIDInfoDataTable dataTable) { + return this.Adapter.Update(dataTable); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1 dataSet) { + return this.Adapter.Update(dataSet, "Component_Reel_SIDInfo"); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow dataRow) { + return this.Adapter.Update(new global::System.Data.DataRow[] { + dataRow}); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow[] dataRows) { + return this.Adapter.Update(dataRows); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, true)] + public virtual int Delete(string Original_SID, string Original_CustCode, string Original_CustName, string Original_VenderName, string Original_PartNo, string Original_PrintPosition, string Original_Remark) { + if ((Original_SID == null)) { + throw new global::System.ArgumentNullException("Original_SID"); + } + else { + this.Adapter.DeleteCommand.Parameters[0].Value = ((string)(Original_SID)); + } + if ((Original_CustCode == null)) { + throw new global::System.ArgumentNullException("Original_CustCode"); + } + else { + this.Adapter.DeleteCommand.Parameters[1].Value = ((string)(Original_CustCode)); + } + if ((Original_CustName == null)) { + this.Adapter.DeleteCommand.Parameters[2].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[3].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[2].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[3].Value = ((string)(Original_CustName)); + } + if ((Original_VenderName == null)) { + this.Adapter.DeleteCommand.Parameters[4].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[5].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[4].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[5].Value = ((string)(Original_VenderName)); + } + if ((Original_PartNo == null)) { + throw new global::System.ArgumentNullException("Original_PartNo"); + } + else { + this.Adapter.DeleteCommand.Parameters[6].Value = ((string)(Original_PartNo)); + } + if ((Original_PrintPosition == null)) { + this.Adapter.DeleteCommand.Parameters[7].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[8].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[7].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[8].Value = ((string)(Original_PrintPosition)); + } + if ((Original_Remark == null)) { + this.Adapter.DeleteCommand.Parameters[9].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[10].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[9].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[10].Value = ((string)(Original_Remark)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; + if (((this.Adapter.DeleteCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.DeleteCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.DeleteCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.DeleteCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] + public virtual int Insert(string SID, string CustCode, string CustName, string VenderName, string PartNo, string PrintPosition, string Remark) { + if ((SID == null)) { + throw new global::System.ArgumentNullException("SID"); + } + else { + this.Adapter.InsertCommand.Parameters[0].Value = ((string)(SID)); + } + if ((CustCode == null)) { + throw new global::System.ArgumentNullException("CustCode"); + } + else { + this.Adapter.InsertCommand.Parameters[1].Value = ((string)(CustCode)); + } + if ((CustName == null)) { + this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[2].Value = ((string)(CustName)); + } + if ((VenderName == null)) { + this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[3].Value = ((string)(VenderName)); + } + if ((PartNo == null)) { + throw new global::System.ArgumentNullException("PartNo"); + } + else { + this.Adapter.InsertCommand.Parameters[4].Value = ((string)(PartNo)); + } + if ((PrintPosition == null)) { + this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[5].Value = ((string)(PrintPosition)); + } + if ((Remark == null)) { + this.Adapter.InsertCommand.Parameters[6].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[6].Value = ((string)(Remark)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; + if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.InsertCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.InsertCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update(string SID, string CustCode, string CustName, string VenderName, string PartNo, string PrintPosition, string Remark, string Original_SID, string Original_CustCode, string Original_CustName, string Original_VenderName, string Original_PartNo, string Original_PrintPosition, string Original_Remark) { + if ((SID == null)) { + throw new global::System.ArgumentNullException("SID"); + } + else { + this.Adapter.UpdateCommand.Parameters[0].Value = ((string)(SID)); + } + if ((CustCode == null)) { + throw new global::System.ArgumentNullException("CustCode"); + } + else { + this.Adapter.UpdateCommand.Parameters[1].Value = ((string)(CustCode)); + } + if ((CustName == null)) { + this.Adapter.UpdateCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[2].Value = ((string)(CustName)); + } + if ((VenderName == null)) { + this.Adapter.UpdateCommand.Parameters[3].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[3].Value = ((string)(VenderName)); + } + if ((PartNo == null)) { + throw new global::System.ArgumentNullException("PartNo"); + } + else { + this.Adapter.UpdateCommand.Parameters[4].Value = ((string)(PartNo)); + } + if ((PrintPosition == null)) { + this.Adapter.UpdateCommand.Parameters[5].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[5].Value = ((string)(PrintPosition)); + } + if ((Remark == null)) { + this.Adapter.UpdateCommand.Parameters[6].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[6].Value = ((string)(Remark)); + } + if ((Original_SID == null)) { + throw new global::System.ArgumentNullException("Original_SID"); + } + else { + this.Adapter.UpdateCommand.Parameters[7].Value = ((string)(Original_SID)); + } + if ((Original_CustCode == null)) { + throw new global::System.ArgumentNullException("Original_CustCode"); + } + else { + this.Adapter.UpdateCommand.Parameters[8].Value = ((string)(Original_CustCode)); + } + if ((Original_CustName == null)) { + this.Adapter.UpdateCommand.Parameters[9].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[10].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[9].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[10].Value = ((string)(Original_CustName)); + } + if ((Original_VenderName == null)) { + this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[12].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[12].Value = ((string)(Original_VenderName)); + } + if ((Original_PartNo == null)) { + throw new global::System.ArgumentNullException("Original_PartNo"); + } + else { + this.Adapter.UpdateCommand.Parameters[13].Value = ((string)(Original_PartNo)); + } + if ((Original_PrintPosition == null)) { + this.Adapter.UpdateCommand.Parameters[14].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[15].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[14].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[15].Value = ((string)(Original_PrintPosition)); + } + if ((Original_Remark == null)) { + this.Adapter.UpdateCommand.Parameters[16].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[17].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[16].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[17].Value = ((string)(Original_Remark)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; + if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.UpdateCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.UpdateCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update(string CustCode, string CustName, string VenderName, string PartNo, string PrintPosition, string Remark, string Original_SID, string Original_CustCode, string Original_CustName, string Original_VenderName, string Original_PartNo, string Original_PrintPosition, string Original_Remark) { + return this.Update(Original_SID, CustCode, CustName, VenderName, PartNo, PrintPosition, Remark, Original_SID, Original_CustCode, Original_CustName, Original_VenderName, Original_PartNo, Original_PrintPosition, Original_Remark); + } + } + + /// + ///Represents the connection and commands used to retrieve and save data. + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DataObjectAttribute(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + + ", Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public partial class Component_Reel_ResultTableAdapter : global::System.ComponentModel.Component { + + private global::System.Data.SqlClient.SqlDataAdapter _adapter; + + private global::System.Data.SqlClient.SqlConnection _connection; + + private global::System.Data.SqlClient.SqlTransaction _transaction; + + private global::System.Data.SqlClient.SqlCommand[] _commandCollection; + + private bool _clearBeforeFill; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_ResultTableAdapter() { + this.ClearBeforeFill = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected internal global::System.Data.SqlClient.SqlDataAdapter Adapter { + get { + if ((this._adapter == null)) { + this.InitAdapter(); + } + return this._adapter; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal global::System.Data.SqlClient.SqlConnection Connection { + get { + if ((this._connection == null)) { + this.InitConnection(); + } + return this._connection; + } + set { + this._connection = value; + if ((this.Adapter.InsertCommand != null)) { + this.Adapter.InsertCommand.Connection = value; + } + if ((this.Adapter.DeleteCommand != null)) { + this.Adapter.DeleteCommand.Connection = value; + } + if ((this.Adapter.UpdateCommand != null)) { + this.Adapter.UpdateCommand.Connection = value; + } + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + if ((this.CommandCollection[i] != null)) { + ((global::System.Data.SqlClient.SqlCommand)(this.CommandCollection[i])).Connection = value; + } + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal global::System.Data.SqlClient.SqlTransaction Transaction { + get { + return this._transaction; + } + set { + this._transaction = value; + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + this.CommandCollection[i].Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.DeleteCommand != null))) { + this.Adapter.DeleteCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.InsertCommand != null))) { + this.Adapter.InsertCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.UpdateCommand != null))) { + this.Adapter.UpdateCommand.Transaction = this._transaction; + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected global::System.Data.SqlClient.SqlCommand[] CommandCollection { + get { + if ((this._commandCollection == null)) { + this.InitCommandCollection(); + } + return this._commandCollection; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool ClearBeforeFill { + get { + return this._clearBeforeFill; + } + set { + this._clearBeforeFill = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitAdapter() { + this._adapter = new global::System.Data.SqlClient.SqlDataAdapter(); + global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); + tableMapping.SourceTable = "Table"; + tableMapping.DataSetTable = "Component_Reel_Result"; + tableMapping.ColumnMappings.Add("idx", "idx"); + tableMapping.ColumnMappings.Add("STIME", "STIME"); + tableMapping.ColumnMappings.Add("ETIME", "ETIME"); + tableMapping.ColumnMappings.Add("PDATE", "PDATE"); + tableMapping.ColumnMappings.Add("JTYPE", "JTYPE"); + tableMapping.ColumnMappings.Add("JGUID", "JGUID"); + tableMapping.ColumnMappings.Add("SID", "SID"); + tableMapping.ColumnMappings.Add("SID0", "SID0"); + tableMapping.ColumnMappings.Add("RID", "RID"); + tableMapping.ColumnMappings.Add("RID0", "RID0"); + tableMapping.ColumnMappings.Add("RSN", "RSN"); + tableMapping.ColumnMappings.Add("QR", "QR"); + tableMapping.ColumnMappings.Add("ZPL", "ZPL"); + tableMapping.ColumnMappings.Add("POS", "POS"); + tableMapping.ColumnMappings.Add("LOC", "LOC"); + tableMapping.ColumnMappings.Add("ANGLE", "ANGLE"); + tableMapping.ColumnMappings.Add("QTY", "QTY"); + tableMapping.ColumnMappings.Add("QTY0", "QTY0"); + tableMapping.ColumnMappings.Add("wdate", "wdate"); + tableMapping.ColumnMappings.Add("VNAME", "VNAME"); + tableMapping.ColumnMappings.Add("PRNATTACH", "PRNATTACH"); + tableMapping.ColumnMappings.Add("PRNVALID", "PRNVALID"); + tableMapping.ColumnMappings.Add("PTIME", "PTIME"); + tableMapping.ColumnMappings.Add("MFGDATE", "MFGDATE"); + tableMapping.ColumnMappings.Add("VLOT", "VLOT"); + tableMapping.ColumnMappings.Add("REMARK", "REMARK"); + tableMapping.ColumnMappings.Add("PNO", "PNO"); + this._adapter.TableMappings.Add(tableMapping); + this._adapter.DeleteCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.DeleteCommand.Connection = this.Connection; + this._adapter.DeleteCommand.CommandText = "DELETE FROM Component_Reel_Result\r\nWHERE (idx = @Original_idx)"; + this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_idx", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.InsertCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.InsertCommand.Connection = this.Connection; + this._adapter.InsertCommand.CommandText = @"INSERT INTO [Component_Reel_Result] ([STIME], [ETIME], [PDATE], [JTYPE], [JGUID], [SID], [SID0], [RID], [RID0], [RSN], [QR], [ZPL], [POS], [LOC], [ANGLE], [QTY], [QTY0], [wdate], [VNAME], [PRNATTACH], [PRNVALID], [PTIME], [MFGDATE], [VLOT], [REMARK]) VALUES (@STIME, @ETIME, @PDATE, @JTYPE, @JGUID, @SID, @SID0, @RID, @RID0, @RSN, @QR, @ZPL, @POS, @LOC, @ANGLE, @QTY, @QTY0, @wdate, @VNAME, @PRNATTACH, @PRNVALID, @PTIME, @MFGDATE, @VLOT, @REMARK); +SELECT idx, STIME, ETIME, PDATE, JTYPE, JGUID, SID, SID0, RID, RID0, RSN, QR, ZPL, POS, LOC, ANGLE, QTY, QTY0, wdate, VNAME, PRNATTACH, PRNVALID, PTIME, MFGDATE, VLOT, REMARK FROM Component_Reel_Result WHERE (idx = SCOPE_IDENTITY()) ORDER BY wdate DESC"; + this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@STIME", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "STIME", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@ETIME", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ETIME", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PDATE", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PDATE", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@JTYPE", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "JTYPE", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@JGUID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "JGUID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SID0", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID0", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "RID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RID0", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "RID0", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RSN", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "RSN", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@QR", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QR", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@ZPL", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ZPL", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@POS", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "POS", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@LOC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "LOC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@ANGLE", global::System.Data.SqlDbType.Float, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ANGLE", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@QTY", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QTY", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@QTY0", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QTY0", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@VNAME", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VNAME", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PRNATTACH", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PRNATTACH", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PRNVALID", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PRNVALID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PTIME", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PTIME", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@MFGDATE", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MFGDATE", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@VLOT", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VLOT", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@REMARK", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "REMARK", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.UpdateCommand.Connection = this.Connection; + this._adapter.UpdateCommand.CommandText = @"UPDATE Component_Reel_Result +SET STIME = @STIME, ETIME = @ETIME, PDATE = @PDATE, JTYPE = @JTYPE, JGUID = @JGUID, SID = @SID, SID0 = @SID0, RID = @RID, RID0 = @RID0, RSN = @RSN, QR = @QR, + ZPL = @ZPL, POS = @POS, LOC = @LOC, ANGLE = @ANGLE, QTY = @QTY, QTY0 = @QTY0, wdate = @wdate, VNAME = @VNAME, PRNATTACH = @PRNATTACH, PRNVALID = @PRNVALID, + PTIME = @PTIME, MFGDATE = @MFGDATE, VLOT = @VLOT, REMARK = @REMARK +WHERE (idx = @Original_idx); +SELECT idx, STIME, ETIME, PDATE, JTYPE, JGUID, SID, SID0, RID, RID0, RSN, QR, ZPL, POS, LOC, ANGLE, QTY, QTY0, wdate, VNAME, PRNATTACH, PRNVALID, PTIME, MFGDATE, VLOT, REMARK FROM Component_Reel_Result WHERE (idx = @idx) ORDER BY wdate DESC"; + this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@STIME", global::System.Data.SqlDbType.DateTime, 8, global::System.Data.ParameterDirection.Input, 0, 0, "STIME", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@ETIME", global::System.Data.SqlDbType.DateTime, 8, global::System.Data.ParameterDirection.Input, 0, 0, "ETIME", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PDATE", global::System.Data.SqlDbType.VarChar, 10, global::System.Data.ParameterDirection.Input, 0, 0, "PDATE", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@JTYPE", global::System.Data.SqlDbType.VarChar, 10, global::System.Data.ParameterDirection.Input, 0, 0, "JTYPE", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@JGUID", global::System.Data.SqlDbType.VarChar, 50, global::System.Data.ParameterDirection.Input, 0, 0, "JGUID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SID", global::System.Data.SqlDbType.VarChar, 20, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SID0", global::System.Data.SqlDbType.VarChar, 20, global::System.Data.ParameterDirection.Input, 0, 0, "SID0", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RID", global::System.Data.SqlDbType.VarChar, 50, global::System.Data.ParameterDirection.Input, 0, 0, "RID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RID0", global::System.Data.SqlDbType.VarChar, 50, global::System.Data.ParameterDirection.Input, 0, 0, "RID0", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RSN", global::System.Data.SqlDbType.VarChar, 10, global::System.Data.ParameterDirection.Input, 0, 0, "RSN", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@QR", global::System.Data.SqlDbType.VarChar, 100, global::System.Data.ParameterDirection.Input, 0, 0, "QR", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@ZPL", global::System.Data.SqlDbType.VarChar, 1000, global::System.Data.ParameterDirection.Input, 0, 0, "ZPL", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@POS", global::System.Data.SqlDbType.VarChar, 10, global::System.Data.ParameterDirection.Input, 0, 0, "POS", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@LOC", global::System.Data.SqlDbType.VarChar, 1, global::System.Data.ParameterDirection.Input, 0, 0, "LOC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@ANGLE", global::System.Data.SqlDbType.Float, 8, global::System.Data.ParameterDirection.Input, 0, 0, "ANGLE", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@QTY", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 0, 0, "QTY", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@QTY0", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 0, 0, "QTY0", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@wdate", global::System.Data.SqlDbType.DateTime, 8, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@VNAME", global::System.Data.SqlDbType.VarChar, 100, global::System.Data.ParameterDirection.Input, 0, 0, "VNAME", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PRNATTACH", global::System.Data.SqlDbType.Bit, 1, global::System.Data.ParameterDirection.Input, 0, 0, "PRNATTACH", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PRNVALID", global::System.Data.SqlDbType.Bit, 1, global::System.Data.ParameterDirection.Input, 0, 0, "PRNVALID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PTIME", global::System.Data.SqlDbType.DateTime, 8, global::System.Data.ParameterDirection.Input, 0, 0, "PTIME", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@MFGDATE", global::System.Data.SqlDbType.VarChar, 20, global::System.Data.ParameterDirection.Input, 0, 0, "MFGDATE", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@VLOT", global::System.Data.SqlDbType.VarChar, 100, global::System.Data.ParameterDirection.Input, 0, 0, "VLOT", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@REMARK", global::System.Data.SqlDbType.VarChar, 200, global::System.Data.ParameterDirection.Input, 0, 0, "REMARK", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_idx", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@idx", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitConnection() { + this._connection = new global::System.Data.SqlClient.SqlConnection(); + this._connection.ConnectionString = global::Project.Properties.Settings.Default.CS; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitCommandCollection() { + this._commandCollection = new global::System.Data.SqlClient.SqlCommand[3]; + this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[0].Connection = this.Connection; + this._commandCollection[0].CommandText = @"SELECT idx, STIME, ETIME, PDATE, JTYPE, JGUID, SID, SID0, RID, RID0, RSN, QR, ZPL, POS, LOC, ANGLE, QTY, QTY0, wdate, VNAME, PRNATTACH, PRNVALID, PTIME, MFGDATE, VLOT, REMARK, + (SELECT TOP (1) VAL1 + FROM dbo.FN_SPLIT(Component_Reel_Result.QR, ';') AS FN_SPLIT_1 + WHERE (POS = 3)) AS PNO +FROM Component_Reel_Result +WHERE (CONVERT(varchar(10), wdate, 120) BETWEEN @sd AND @ed) +ORDER BY wdate DESC"; + this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[0].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@sd", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[0].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@ed", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[1] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[1].Connection = this.Connection; + this._commandCollection[1].CommandText = @"SELECT TOP (50) ANGLE, ETIME, JGUID, JTYPE, LOC, MFGDATE, PDATE, POS, PRNATTACH, PRNVALID, PTIME, QR, QTY, QTY0, REMARK, RID, RID0, RSN, SID, SID0, STIME, VLOT, VNAME, ZPL, idx, wdate FROM Component_Reel_Result WHERE (CONVERT (varchar(10), wdate, 120) BETWEEN @sd AND @ed) ORDER BY wdate DESC"; + this._commandCollection[1].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[1].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@sd", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[1].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@ed", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[2] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[2].Connection = this.Connection; + this._commandCollection[2].CommandText = @"SELECT idx, STIME, ETIME, PDATE, JTYPE, JGUID, SID, SID0, RID, RID0, RSN, QR, ZPL, POS, LOC, ANGLE, QTY, QTY0, wdate, VNAME, PRNATTACH, PRNVALID, PTIME, MFGDATE, VLOT, REMARK, + (SELECT TOP (1) VAL1 + FROM dbo.FN_SPLIT(Component_Reel_Result.QR, ';') AS FN_SPLIT_1 + WHERE (POS = 7)) AS PNO +FROM Component_Reel_Result +WHERE (CONVERT(varchar(10), wdate, 120) BETWEEN @sd AND @ed) +ORDER BY wdate DESC"; + this._commandCollection[2].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[2].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@sd", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[2].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@ed", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] + public virtual int Fill(DataSet1.Component_Reel_ResultDataTable dataTable, string sd, string ed) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((sd == null)) { + throw new global::System.ArgumentNullException("sd"); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(sd)); + } + if ((ed == null)) { + throw new global::System.ArgumentNullException("ed"); + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(ed)); + } + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] + public virtual DataSet1.Component_Reel_ResultDataTable GetData(string sd, string ed) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((sd == null)) { + throw new global::System.ArgumentNullException("sd"); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(sd)); + } + if ((ed == null)) { + throw new global::System.ArgumentNullException("ed"); + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(ed)); + } + DataSet1.Component_Reel_ResultDataTable dataTable = new DataSet1.Component_Reel_ResultDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, false)] + public virtual int FillBy50(DataSet1.Component_Reel_ResultDataTable dataTable, string sd, string ed) { + this.Adapter.SelectCommand = this.CommandCollection[1]; + if ((sd == null)) { + throw new global::System.ArgumentNullException("sd"); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(sd)); + } + if ((ed == null)) { + throw new global::System.ArgumentNullException("ed"); + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(ed)); + } + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, false)] + public virtual DataSet1.Component_Reel_ResultDataTable GetBy50(string sd, string ed) { + this.Adapter.SelectCommand = this.CommandCollection[1]; + if ((sd == null)) { + throw new global::System.ArgumentNullException("sd"); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(sd)); + } + if ((ed == null)) { + throw new global::System.ArgumentNullException("ed"); + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(ed)); + } + DataSet1.Component_Reel_ResultDataTable dataTable = new DataSet1.Component_Reel_ResultDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, false)] + public virtual int FillByLen7(DataSet1.Component_Reel_ResultDataTable dataTable, string sd, string ed) { + this.Adapter.SelectCommand = this.CommandCollection[2]; + if ((sd == null)) { + throw new global::System.ArgumentNullException("sd"); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(sd)); + } + if ((ed == null)) { + throw new global::System.ArgumentNullException("ed"); + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(ed)); + } + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, false)] + public virtual DataSet1.Component_Reel_ResultDataTable GetByLen7(string sd, string ed) { + this.Adapter.SelectCommand = this.CommandCollection[2]; + if ((sd == null)) { + throw new global::System.ArgumentNullException("sd"); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(sd)); + } + if ((ed == null)) { + throw new global::System.ArgumentNullException("ed"); + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(ed)); + } + DataSet1.Component_Reel_ResultDataTable dataTable = new DataSet1.Component_Reel_ResultDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1.Component_Reel_ResultDataTable dataTable) { + return this.Adapter.Update(dataTable); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1 dataSet) { + return this.Adapter.Update(dataSet, "Component_Reel_Result"); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow dataRow) { + return this.Adapter.Update(new global::System.Data.DataRow[] { + dataRow}); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow[] dataRows) { + return this.Adapter.Update(dataRows); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, true)] + public virtual int Delete(int Original_idx) { + this.Adapter.DeleteCommand.Parameters[0].Value = ((int)(Original_idx)); + global::System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; + if (((this.Adapter.DeleteCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.DeleteCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.DeleteCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.DeleteCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] + public virtual int Insert( + System.DateTime STIME, + global::System.Nullable ETIME, + string PDATE, + string JTYPE, + string JGUID, + string SID, + string SID0, + string RID, + string RID0, + string RSN, + string QR, + string ZPL, + string POS, + string LOC, + global::System.Nullable ANGLE, + global::System.Nullable QTY, + global::System.Nullable QTY0, + System.DateTime wdate, + string VNAME, + global::System.Nullable PRNATTACH, + global::System.Nullable PRNVALID, + global::System.Nullable PTIME, + string MFGDATE, + string VLOT, + string REMARK) { + this.Adapter.InsertCommand.Parameters[0].Value = ((System.DateTime)(STIME)); + if ((ETIME.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[1].Value = ((System.DateTime)(ETIME.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; + } + if ((PDATE == null)) { + this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[2].Value = ((string)(PDATE)); + } + if ((JTYPE == null)) { + this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[3].Value = ((string)(JTYPE)); + } + if ((JGUID == null)) { + this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[4].Value = ((string)(JGUID)); + } + if ((SID == null)) { + this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[5].Value = ((string)(SID)); + } + if ((SID0 == null)) { + this.Adapter.InsertCommand.Parameters[6].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[6].Value = ((string)(SID0)); + } + if ((RID == null)) { + this.Adapter.InsertCommand.Parameters[7].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[7].Value = ((string)(RID)); + } + if ((RID0 == null)) { + this.Adapter.InsertCommand.Parameters[8].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[8].Value = ((string)(RID0)); + } + if ((RSN == null)) { + this.Adapter.InsertCommand.Parameters[9].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[9].Value = ((string)(RSN)); + } + if ((QR == null)) { + this.Adapter.InsertCommand.Parameters[10].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[10].Value = ((string)(QR)); + } + if ((ZPL == null)) { + this.Adapter.InsertCommand.Parameters[11].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[11].Value = ((string)(ZPL)); + } + if ((POS == null)) { + this.Adapter.InsertCommand.Parameters[12].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[12].Value = ((string)(POS)); + } + if ((LOC == null)) { + this.Adapter.InsertCommand.Parameters[13].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[13].Value = ((string)(LOC)); + } + if ((ANGLE.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[14].Value = ((double)(ANGLE.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[14].Value = global::System.DBNull.Value; + } + if ((QTY.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[15].Value = ((int)(QTY.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[15].Value = global::System.DBNull.Value; + } + if ((QTY0.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[16].Value = ((int)(QTY0.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[16].Value = global::System.DBNull.Value; + } + this.Adapter.InsertCommand.Parameters[17].Value = ((System.DateTime)(wdate)); + if ((VNAME == null)) { + this.Adapter.InsertCommand.Parameters[18].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[18].Value = ((string)(VNAME)); + } + if ((PRNATTACH.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[19].Value = ((bool)(PRNATTACH.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[19].Value = global::System.DBNull.Value; + } + if ((PRNVALID.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[20].Value = ((bool)(PRNVALID.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[20].Value = global::System.DBNull.Value; + } + if ((PTIME.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[21].Value = ((System.DateTime)(PTIME.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[21].Value = global::System.DBNull.Value; + } + if ((MFGDATE == null)) { + this.Adapter.InsertCommand.Parameters[22].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[22].Value = ((string)(MFGDATE)); + } + if ((VLOT == null)) { + this.Adapter.InsertCommand.Parameters[23].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[23].Value = ((string)(VLOT)); + } + if ((REMARK == null)) { + this.Adapter.InsertCommand.Parameters[24].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[24].Value = ((string)(REMARK)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; + if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.InsertCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.InsertCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update( + System.DateTime STIME, + global::System.Nullable ETIME, + string PDATE, + string JTYPE, + string JGUID, + string SID, + string SID0, + string RID, + string RID0, + string RSN, + string QR, + string ZPL, + string POS, + string LOC, + global::System.Nullable ANGLE, + global::System.Nullable QTY, + global::System.Nullable QTY0, + System.DateTime wdate, + string VNAME, + global::System.Nullable PRNATTACH, + global::System.Nullable PRNVALID, + global::System.Nullable PTIME, + string MFGDATE, + string VLOT, + string REMARK, + int Original_idx, + int idx) { + this.Adapter.UpdateCommand.Parameters[0].Value = ((System.DateTime)(STIME)); + if ((ETIME.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[1].Value = ((System.DateTime)(ETIME.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[1].Value = global::System.DBNull.Value; + } + if ((PDATE == null)) { + this.Adapter.UpdateCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[2].Value = ((string)(PDATE)); + } + if ((JTYPE == null)) { + this.Adapter.UpdateCommand.Parameters[3].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[3].Value = ((string)(JTYPE)); + } + if ((JGUID == null)) { + this.Adapter.UpdateCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[4].Value = ((string)(JGUID)); + } + if ((SID == null)) { + this.Adapter.UpdateCommand.Parameters[5].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[5].Value = ((string)(SID)); + } + if ((SID0 == null)) { + this.Adapter.UpdateCommand.Parameters[6].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[6].Value = ((string)(SID0)); + } + if ((RID == null)) { + this.Adapter.UpdateCommand.Parameters[7].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[7].Value = ((string)(RID)); + } + if ((RID0 == null)) { + this.Adapter.UpdateCommand.Parameters[8].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[8].Value = ((string)(RID0)); + } + if ((RSN == null)) { + this.Adapter.UpdateCommand.Parameters[9].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[9].Value = ((string)(RSN)); + } + if ((QR == null)) { + this.Adapter.UpdateCommand.Parameters[10].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[10].Value = ((string)(QR)); + } + if ((ZPL == null)) { + this.Adapter.UpdateCommand.Parameters[11].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[11].Value = ((string)(ZPL)); + } + if ((POS == null)) { + this.Adapter.UpdateCommand.Parameters[12].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[12].Value = ((string)(POS)); + } + if ((LOC == null)) { + this.Adapter.UpdateCommand.Parameters[13].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[13].Value = ((string)(LOC)); + } + if ((ANGLE.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[14].Value = ((double)(ANGLE.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[14].Value = global::System.DBNull.Value; + } + if ((QTY.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[15].Value = ((int)(QTY.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[15].Value = global::System.DBNull.Value; + } + if ((QTY0.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[16].Value = ((int)(QTY0.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[16].Value = global::System.DBNull.Value; + } + this.Adapter.UpdateCommand.Parameters[17].Value = ((System.DateTime)(wdate)); + if ((VNAME == null)) { + this.Adapter.UpdateCommand.Parameters[18].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[18].Value = ((string)(VNAME)); + } + if ((PRNATTACH.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[19].Value = ((bool)(PRNATTACH.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[19].Value = global::System.DBNull.Value; + } + if ((PRNVALID.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[20].Value = ((bool)(PRNVALID.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[20].Value = global::System.DBNull.Value; + } + if ((PTIME.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[21].Value = ((System.DateTime)(PTIME.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[21].Value = global::System.DBNull.Value; + } + if ((MFGDATE == null)) { + this.Adapter.UpdateCommand.Parameters[22].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[22].Value = ((string)(MFGDATE)); + } + if ((VLOT == null)) { + this.Adapter.UpdateCommand.Parameters[23].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[23].Value = ((string)(VLOT)); + } + if ((REMARK == null)) { + this.Adapter.UpdateCommand.Parameters[24].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[24].Value = ((string)(REMARK)); + } + this.Adapter.UpdateCommand.Parameters[25].Value = ((int)(Original_idx)); + this.Adapter.UpdateCommand.Parameters[26].Value = ((int)(idx)); + global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; + if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.UpdateCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.UpdateCommand.Connection.Close(); + } + } + } + } + + /// + ///Represents the connection and commands used to retrieve and save data. + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DataObjectAttribute(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + + ", Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public partial class Component_Reel_CustRuleTableAdapter : global::System.ComponentModel.Component { + + private global::System.Data.SqlClient.SqlDataAdapter _adapter; + + private global::System.Data.SqlClient.SqlConnection _connection; + + private global::System.Data.SqlClient.SqlTransaction _transaction; + + private global::System.Data.SqlClient.SqlCommand[] _commandCollection; + + private bool _clearBeforeFill; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_CustRuleTableAdapter() { + this.ClearBeforeFill = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected internal global::System.Data.SqlClient.SqlDataAdapter Adapter { + get { + if ((this._adapter == null)) { + this.InitAdapter(); + } + return this._adapter; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal global::System.Data.SqlClient.SqlConnection Connection { + get { + if ((this._connection == null)) { + this.InitConnection(); + } + return this._connection; + } + set { + this._connection = value; + if ((this.Adapter.InsertCommand != null)) { + this.Adapter.InsertCommand.Connection = value; + } + if ((this.Adapter.DeleteCommand != null)) { + this.Adapter.DeleteCommand.Connection = value; + } + if ((this.Adapter.UpdateCommand != null)) { + this.Adapter.UpdateCommand.Connection = value; + } + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + if ((this.CommandCollection[i] != null)) { + ((global::System.Data.SqlClient.SqlCommand)(this.CommandCollection[i])).Connection = value; + } + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal global::System.Data.SqlClient.SqlTransaction Transaction { + get { + return this._transaction; + } + set { + this._transaction = value; + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + this.CommandCollection[i].Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.DeleteCommand != null))) { + this.Adapter.DeleteCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.InsertCommand != null))) { + this.Adapter.InsertCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.UpdateCommand != null))) { + this.Adapter.UpdateCommand.Transaction = this._transaction; + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected global::System.Data.SqlClient.SqlCommand[] CommandCollection { + get { + if ((this._commandCollection == null)) { + this.InitCommandCollection(); + } + return this._commandCollection; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool ClearBeforeFill { + get { + return this._clearBeforeFill; + } + set { + this._clearBeforeFill = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitAdapter() { + this._adapter = new global::System.Data.SqlClient.SqlDataAdapter(); + global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); + tableMapping.SourceTable = "Table"; + tableMapping.DataSetTable = "Component_Reel_CustRule"; + tableMapping.ColumnMappings.Add("idx", "idx"); + tableMapping.ColumnMappings.Add("code", "code"); + tableMapping.ColumnMappings.Add("pre", "pre"); + tableMapping.ColumnMappings.Add("pos", "pos"); + tableMapping.ColumnMappings.Add("len", "len"); + tableMapping.ColumnMappings.Add("exp", "exp"); + this._adapter.TableMappings.Add(tableMapping); + this._adapter.DeleteCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.DeleteCommand.Connection = this.Connection; + this._adapter.DeleteCommand.CommandText = @"DELETE FROM [Component_Reel_CustRule] WHERE (([idx] = @Original_idx) AND ([code] = @Original_code) AND ((@IsNull_pre = 1 AND [pre] IS NULL) OR ([pre] = @Original_pre)) AND ((@IsNull_pos = 1 AND [pos] IS NULL) OR ([pos] = @Original_pos)) AND ((@IsNull_len = 1 AND [len] IS NULL) OR ([len] = @Original_len)) AND ((@IsNull_exp = 1 AND [exp] IS NULL) OR ([exp] = @Original_exp)))"; + this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_idx", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_code", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "code", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_pre", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pre", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_pre", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pre", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_pos", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pos", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_pos", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pos", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_len", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "len", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_len", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "len", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_exp", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "exp", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_exp", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "exp", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.InsertCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.InsertCommand.Connection = this.Connection; + this._adapter.InsertCommand.CommandText = "INSERT INTO [Component_Reel_CustRule] ([code], [pre], [pos], [len], [exp]) VALUES" + + " (@code, @pre, @pos, @len, @exp);\r\nSELECT idx, code, pre, pos, len, exp FROM Com" + + "ponent_Reel_CustRule WHERE (idx = SCOPE_IDENTITY())"; + this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@code", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "code", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@pre", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pre", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@pos", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pos", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@len", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "len", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@exp", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "exp", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.UpdateCommand.Connection = this.Connection; + this._adapter.UpdateCommand.CommandText = @"UPDATE [Component_Reel_CustRule] SET [code] = @code, [pre] = @pre, [pos] = @pos, [len] = @len, [exp] = @exp WHERE (([idx] = @Original_idx) AND ([code] = @Original_code) AND ((@IsNull_pre = 1 AND [pre] IS NULL) OR ([pre] = @Original_pre)) AND ((@IsNull_pos = 1 AND [pos] IS NULL) OR ([pos] = @Original_pos)) AND ((@IsNull_len = 1 AND [len] IS NULL) OR ([len] = @Original_len)) AND ((@IsNull_exp = 1 AND [exp] IS NULL) OR ([exp] = @Original_exp))); +SELECT idx, code, pre, pos, len, exp FROM Component_Reel_CustRule WHERE (idx = @idx)"; + this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@code", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "code", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@pre", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pre", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@pos", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pos", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@len", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "len", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@exp", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "exp", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_idx", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_code", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "code", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_pre", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pre", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_pre", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pre", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_pos", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pos", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_pos", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "pos", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_len", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "len", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_len", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "len", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_exp", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "exp", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_exp", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "exp", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@idx", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitConnection() { + this._connection = new global::System.Data.SqlClient.SqlConnection(); + this._connection.ConnectionString = global::Project.Properties.Settings.Default.CS; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitCommandCollection() { + this._commandCollection = new global::System.Data.SqlClient.SqlCommand[1]; + this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[0].Connection = this.Connection; + this._commandCollection[0].CommandText = "SELECT idx, code, pre, pos, len, exp\r\nFROM Component_Reel_CustRule\r\nWHERE (" + + "code = @code)"; + this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[0].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@code", global::System.Data.SqlDbType.VarChar, 10, global::System.Data.ParameterDirection.Input, 0, 0, "code", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] + public virtual int Fill(DataSet1.Component_Reel_CustRuleDataTable dataTable, string code) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((code == null)) { + throw new global::System.ArgumentNullException("code"); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(code)); + } + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] + public virtual DataSet1.Component_Reel_CustRuleDataTable GetData(string code) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((code == null)) { + throw new global::System.ArgumentNullException("code"); + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(code)); + } + DataSet1.Component_Reel_CustRuleDataTable dataTable = new DataSet1.Component_Reel_CustRuleDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1.Component_Reel_CustRuleDataTable dataTable) { + return this.Adapter.Update(dataTable); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1 dataSet) { + return this.Adapter.Update(dataSet, "Component_Reel_CustRule"); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow dataRow) { + return this.Adapter.Update(new global::System.Data.DataRow[] { + dataRow}); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow[] dataRows) { + return this.Adapter.Update(dataRows); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, true)] + public virtual int Delete(int Original_idx, string Original_code, string Original_pre, string Original_pos, global::System.Nullable Original_len, string Original_exp) { + this.Adapter.DeleteCommand.Parameters[0].Value = ((int)(Original_idx)); + if ((Original_code == null)) { + throw new global::System.ArgumentNullException("Original_code"); + } + else { + this.Adapter.DeleteCommand.Parameters[1].Value = ((string)(Original_code)); + } + if ((Original_pre == null)) { + this.Adapter.DeleteCommand.Parameters[2].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[3].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[2].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[3].Value = ((string)(Original_pre)); + } + if ((Original_pos == null)) { + this.Adapter.DeleteCommand.Parameters[4].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[5].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[4].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[5].Value = ((string)(Original_pos)); + } + if ((Original_len.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[6].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[7].Value = ((int)(Original_len.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[6].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[7].Value = global::System.DBNull.Value; + } + if ((Original_exp == null)) { + this.Adapter.DeleteCommand.Parameters[8].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[9].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[8].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[9].Value = ((string)(Original_exp)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; + if (((this.Adapter.DeleteCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.DeleteCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.DeleteCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.DeleteCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] + public virtual int Insert(string code, string pre, string pos, global::System.Nullable len, string exp) { + if ((code == null)) { + throw new global::System.ArgumentNullException("code"); + } + else { + this.Adapter.InsertCommand.Parameters[0].Value = ((string)(code)); + } + if ((pre == null)) { + this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[1].Value = ((string)(pre)); + } + if ((pos == null)) { + this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[2].Value = ((string)(pos)); + } + if ((len.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[3].Value = ((int)(len.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; + } + if ((exp == null)) { + this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[4].Value = ((string)(exp)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; + if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.InsertCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.InsertCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update(string code, string pre, string pos, global::System.Nullable len, string exp, int Original_idx, string Original_code, string Original_pre, string Original_pos, global::System.Nullable Original_len, string Original_exp, int idx) { + if ((code == null)) { + throw new global::System.ArgumentNullException("code"); + } + else { + this.Adapter.UpdateCommand.Parameters[0].Value = ((string)(code)); + } + if ((pre == null)) { + this.Adapter.UpdateCommand.Parameters[1].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[1].Value = ((string)(pre)); + } + if ((pos == null)) { + this.Adapter.UpdateCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[2].Value = ((string)(pos)); + } + if ((len.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[3].Value = ((int)(len.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[3].Value = global::System.DBNull.Value; + } + if ((exp == null)) { + this.Adapter.UpdateCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[4].Value = ((string)(exp)); + } + this.Adapter.UpdateCommand.Parameters[5].Value = ((int)(Original_idx)); + if ((Original_code == null)) { + throw new global::System.ArgumentNullException("Original_code"); + } + else { + this.Adapter.UpdateCommand.Parameters[6].Value = ((string)(Original_code)); + } + if ((Original_pre == null)) { + this.Adapter.UpdateCommand.Parameters[7].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[8].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[7].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[8].Value = ((string)(Original_pre)); + } + if ((Original_pos == null)) { + this.Adapter.UpdateCommand.Parameters[9].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[10].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[9].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[10].Value = ((string)(Original_pos)); + } + if ((Original_len.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[12].Value = ((int)(Original_len.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[12].Value = global::System.DBNull.Value; + } + if ((Original_exp == null)) { + this.Adapter.UpdateCommand.Parameters[13].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[14].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[13].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[14].Value = ((string)(Original_exp)); + } + this.Adapter.UpdateCommand.Parameters[15].Value = ((int)(idx)); + global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; + if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.UpdateCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.UpdateCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update(string code, string pre, string pos, global::System.Nullable len, string exp, int Original_idx, string Original_code, string Original_pre, string Original_pos, global::System.Nullable Original_len, string Original_exp) { + return this.Update(code, pre, pos, len, exp, Original_idx, Original_code, Original_pre, Original_pos, Original_len, Original_exp, Original_idx); + } + } + + /// + ///Represents the connection and commands used to retrieve and save data. + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DataObjectAttribute(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + + ", Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public partial class Component_Reel_CustInfoTableAdapter : global::System.ComponentModel.Component { + + private global::System.Data.SqlClient.SqlDataAdapter _adapter; + + private global::System.Data.SqlClient.SqlConnection _connection; + + private global::System.Data.SqlClient.SqlTransaction _transaction; + + private global::System.Data.SqlClient.SqlCommand[] _commandCollection; + + private bool _clearBeforeFill; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_CustInfoTableAdapter() { + this.ClearBeforeFill = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected internal global::System.Data.SqlClient.SqlDataAdapter Adapter { + get { + if ((this._adapter == null)) { + this.InitAdapter(); + } + return this._adapter; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal global::System.Data.SqlClient.SqlConnection Connection { + get { + if ((this._connection == null)) { + this.InitConnection(); + } + return this._connection; + } + set { + this._connection = value; + if ((this.Adapter.InsertCommand != null)) { + this.Adapter.InsertCommand.Connection = value; + } + if ((this.Adapter.DeleteCommand != null)) { + this.Adapter.DeleteCommand.Connection = value; + } + if ((this.Adapter.UpdateCommand != null)) { + this.Adapter.UpdateCommand.Connection = value; + } + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + if ((this.CommandCollection[i] != null)) { + ((global::System.Data.SqlClient.SqlCommand)(this.CommandCollection[i])).Connection = value; + } + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal global::System.Data.SqlClient.SqlTransaction Transaction { + get { + return this._transaction; + } + set { + this._transaction = value; + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + this.CommandCollection[i].Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.DeleteCommand != null))) { + this.Adapter.DeleteCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.InsertCommand != null))) { + this.Adapter.InsertCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.UpdateCommand != null))) { + this.Adapter.UpdateCommand.Transaction = this._transaction; + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected global::System.Data.SqlClient.SqlCommand[] CommandCollection { + get { + if ((this._commandCollection == null)) { + this.InitCommandCollection(); + } + return this._commandCollection; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool ClearBeforeFill { + get { + return this._clearBeforeFill; + } + set { + this._clearBeforeFill = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitAdapter() { + this._adapter = new global::System.Data.SqlClient.SqlDataAdapter(); + global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); + tableMapping.SourceTable = "Table"; + tableMapping.DataSetTable = "Component_Reel_CustInfo"; + tableMapping.ColumnMappings.Add("code", "code"); + tableMapping.ColumnMappings.Add("name", "name"); + this._adapter.TableMappings.Add(tableMapping); + this._adapter.DeleteCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.DeleteCommand.Connection = this.Connection; + this._adapter.DeleteCommand.CommandText = "DELETE FROM [Component_Reel_CustInfo] WHERE (([code] = @Original_code) AND ((@IsN" + + "ull_name = 1 AND [name] IS NULL) OR ([name] = @Original_name)))"; + this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_code", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "code", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_name", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "name", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_name", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "name", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.InsertCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.InsertCommand.Connection = this.Connection; + this._adapter.InsertCommand.CommandText = "INSERT INTO [Component_Reel_CustInfo] ([code], [name]) VALUES (@code, @name);\r\nSE" + + "LECT code, name FROM Component_Reel_CustInfo WHERE (code = @code) ORDER BY code," + + " name"; + this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@code", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "code", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@name", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "name", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.UpdateCommand.Connection = this.Connection; + this._adapter.UpdateCommand.CommandText = @"UPDATE [Component_Reel_CustInfo] SET [code] = @code, [name] = @name WHERE (([code] = @Original_code) AND ((@IsNull_name = 1 AND [name] IS NULL) OR ([name] = @Original_name))); +SELECT code, name FROM Component_Reel_CustInfo WHERE (code = @code) ORDER BY code, name"; + this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@code", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "code", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@name", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "name", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_code", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "code", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_name", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "name", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_name", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "name", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitConnection() { + this._connection = new global::System.Data.SqlClient.SqlConnection(); + this._connection.ConnectionString = global::Project.Properties.Settings.Default.CS; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitCommandCollection() { + this._commandCollection = new global::System.Data.SqlClient.SqlCommand[1]; + this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[0].Connection = this.Connection; + this._commandCollection[0].CommandText = "SELECT code, name\r\nFROM Component_Reel_CustInfo\r\nORDER BY code, name"; + this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] + public virtual int Fill(DataSet1.Component_Reel_CustInfoDataTable dataTable) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] + public virtual DataSet1.Component_Reel_CustInfoDataTable GetData() { + this.Adapter.SelectCommand = this.CommandCollection[0]; + DataSet1.Component_Reel_CustInfoDataTable dataTable = new DataSet1.Component_Reel_CustInfoDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1.Component_Reel_CustInfoDataTable dataTable) { + return this.Adapter.Update(dataTable); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1 dataSet) { + return this.Adapter.Update(dataSet, "Component_Reel_CustInfo"); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow dataRow) { + return this.Adapter.Update(new global::System.Data.DataRow[] { + dataRow}); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow[] dataRows) { + return this.Adapter.Update(dataRows); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, true)] + public virtual int Delete(string Original_code, string Original_name) { + if ((Original_code == null)) { + throw new global::System.ArgumentNullException("Original_code"); + } + else { + this.Adapter.DeleteCommand.Parameters[0].Value = ((string)(Original_code)); + } + if ((Original_name == null)) { + this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[2].Value = ((string)(Original_name)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; + if (((this.Adapter.DeleteCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.DeleteCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.DeleteCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.DeleteCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] + public virtual int Insert(string code, string name) { + if ((code == null)) { + throw new global::System.ArgumentNullException("code"); + } + else { + this.Adapter.InsertCommand.Parameters[0].Value = ((string)(code)); + } + if ((name == null)) { + this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[1].Value = ((string)(name)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; + if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.InsertCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.InsertCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update(string code, string name, string Original_code, string Original_name) { + if ((code == null)) { + throw new global::System.ArgumentNullException("code"); + } + else { + this.Adapter.UpdateCommand.Parameters[0].Value = ((string)(code)); + } + if ((name == null)) { + this.Adapter.UpdateCommand.Parameters[1].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[1].Value = ((string)(name)); + } + if ((Original_code == null)) { + throw new global::System.ArgumentNullException("Original_code"); + } + else { + this.Adapter.UpdateCommand.Parameters[2].Value = ((string)(Original_code)); + } + if ((Original_name == null)) { + this.Adapter.UpdateCommand.Parameters[3].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[3].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[4].Value = ((string)(Original_name)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; + if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.UpdateCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.UpdateCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update(string name, string Original_code, string Original_name) { + return this.Update(Original_code, name, Original_code, Original_name); + } + } + + /// + ///TableAdapterManager is used to coordinate TableAdapters in the dataset to enable Hierarchical Update scenarios + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterManagerDesigner, Microsoft.VSD" + + "esigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapterManager")] + public partial class TableAdapterManager : global::System.ComponentModel.Component { + + private UpdateOrderOption _updateOrder; + + private Component_Reel_SIDConvTableAdapter _component_Reel_SIDConvTableAdapter; + + private Component_Reel_SIDInfoTableAdapter _component_Reel_SIDInfoTableAdapter; + + private Component_Reel_ResultTableAdapter _component_Reel_ResultTableAdapter; + + private Component_Reel_CustRuleTableAdapter _component_Reel_CustRuleTableAdapter; + + private Component_Reel_CustInfoTableAdapter _component_Reel_CustInfoTableAdapter; + + private bool _backupDataSetBeforeUpdate; + + private global::System.Data.IDbConnection _connection; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public UpdateOrderOption UpdateOrder { + get { + return this._updateOrder; + } + set { + this._updateOrder = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.EditorAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterManagerPropertyEditor, Microso" + + "ft.VSDesigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3" + + "a", "System.Drawing.Design.UITypeEditor")] + public Component_Reel_SIDConvTableAdapter Component_Reel_SIDConvTableAdapter { + get { + return this._component_Reel_SIDConvTableAdapter; + } + set { + this._component_Reel_SIDConvTableAdapter = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.EditorAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterManagerPropertyEditor, Microso" + + "ft.VSDesigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3" + + "a", "System.Drawing.Design.UITypeEditor")] + public Component_Reel_SIDInfoTableAdapter Component_Reel_SIDInfoTableAdapter { + get { + return this._component_Reel_SIDInfoTableAdapter; + } + set { + this._component_Reel_SIDInfoTableAdapter = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.EditorAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterManagerPropertyEditor, Microso" + + "ft.VSDesigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3" + + "a", "System.Drawing.Design.UITypeEditor")] + public Component_Reel_ResultTableAdapter Component_Reel_ResultTableAdapter { + get { + return this._component_Reel_ResultTableAdapter; + } + set { + this._component_Reel_ResultTableAdapter = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.EditorAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterManagerPropertyEditor, Microso" + + "ft.VSDesigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3" + + "a", "System.Drawing.Design.UITypeEditor")] + public Component_Reel_CustRuleTableAdapter Component_Reel_CustRuleTableAdapter { + get { + return this._component_Reel_CustRuleTableAdapter; + } + set { + this._component_Reel_CustRuleTableAdapter = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.EditorAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterManagerPropertyEditor, Microso" + + "ft.VSDesigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3" + + "a", "System.Drawing.Design.UITypeEditor")] + public Component_Reel_CustInfoTableAdapter Component_Reel_CustInfoTableAdapter { + get { + return this._component_Reel_CustInfoTableAdapter; + } + set { + this._component_Reel_CustInfoTableAdapter = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool BackupDataSetBeforeUpdate { + get { + return this._backupDataSetBeforeUpdate; + } + set { + this._backupDataSetBeforeUpdate = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public global::System.Data.IDbConnection Connection { + get { + if ((this._connection != null)) { + return this._connection; + } + if (((this._component_Reel_SIDConvTableAdapter != null) + && (this._component_Reel_SIDConvTableAdapter.Connection != null))) { + return this._component_Reel_SIDConvTableAdapter.Connection; + } + if (((this._component_Reel_SIDInfoTableAdapter != null) + && (this._component_Reel_SIDInfoTableAdapter.Connection != null))) { + return this._component_Reel_SIDInfoTableAdapter.Connection; + } + if (((this._component_Reel_ResultTableAdapter != null) + && (this._component_Reel_ResultTableAdapter.Connection != null))) { + return this._component_Reel_ResultTableAdapter.Connection; + } + if (((this._component_Reel_CustRuleTableAdapter != null) + && (this._component_Reel_CustRuleTableAdapter.Connection != null))) { + return this._component_Reel_CustRuleTableAdapter.Connection; + } + if (((this._component_Reel_CustInfoTableAdapter != null) + && (this._component_Reel_CustInfoTableAdapter.Connection != null))) { + return this._component_Reel_CustInfoTableAdapter.Connection; + } + return null; + } + set { + this._connection = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int TableAdapterInstanceCount { + get { + int count = 0; + if ((this._component_Reel_SIDConvTableAdapter != null)) { + count = (count + 1); + } + if ((this._component_Reel_SIDInfoTableAdapter != null)) { + count = (count + 1); + } + if ((this._component_Reel_ResultTableAdapter != null)) { + count = (count + 1); + } + if ((this._component_Reel_CustRuleTableAdapter != null)) { + count = (count + 1); + } + if ((this._component_Reel_CustInfoTableAdapter != null)) { + count = (count + 1); + } + return count; + } + } + + /// + ///Update rows in top-down order. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private int UpdateUpdatedRows(DataSet1 dataSet, global::System.Collections.Generic.List allChangedRows, global::System.Collections.Generic.List allAddedRows) { + int result = 0; + if ((this._component_Reel_SIDConvTableAdapter != null)) { + global::System.Data.DataRow[] updatedRows = dataSet.Component_Reel_SIDConv.Select(null, null, global::System.Data.DataViewRowState.ModifiedCurrent); + updatedRows = this.GetRealUpdatedRows(updatedRows, allAddedRows); + if (((updatedRows != null) + && (0 < updatedRows.Length))) { + result = (result + this._component_Reel_SIDConvTableAdapter.Update(updatedRows)); + allChangedRows.AddRange(updatedRows); + } + } + if ((this._component_Reel_SIDInfoTableAdapter != null)) { + global::System.Data.DataRow[] updatedRows = dataSet.Component_Reel_SIDInfo.Select(null, null, global::System.Data.DataViewRowState.ModifiedCurrent); + updatedRows = this.GetRealUpdatedRows(updatedRows, allAddedRows); + if (((updatedRows != null) + && (0 < updatedRows.Length))) { + result = (result + this._component_Reel_SIDInfoTableAdapter.Update(updatedRows)); + allChangedRows.AddRange(updatedRows); + } + } + if ((this._component_Reel_ResultTableAdapter != null)) { + global::System.Data.DataRow[] updatedRows = dataSet.Component_Reel_Result.Select(null, null, global::System.Data.DataViewRowState.ModifiedCurrent); + updatedRows = this.GetRealUpdatedRows(updatedRows, allAddedRows); + if (((updatedRows != null) + && (0 < updatedRows.Length))) { + result = (result + this._component_Reel_ResultTableAdapter.Update(updatedRows)); + allChangedRows.AddRange(updatedRows); + } + } + if ((this._component_Reel_CustRuleTableAdapter != null)) { + global::System.Data.DataRow[] updatedRows = dataSet.Component_Reel_CustRule.Select(null, null, global::System.Data.DataViewRowState.ModifiedCurrent); + updatedRows = this.GetRealUpdatedRows(updatedRows, allAddedRows); + if (((updatedRows != null) + && (0 < updatedRows.Length))) { + result = (result + this._component_Reel_CustRuleTableAdapter.Update(updatedRows)); + allChangedRows.AddRange(updatedRows); + } + } + if ((this._component_Reel_CustInfoTableAdapter != null)) { + global::System.Data.DataRow[] updatedRows = dataSet.Component_Reel_CustInfo.Select(null, null, global::System.Data.DataViewRowState.ModifiedCurrent); + updatedRows = this.GetRealUpdatedRows(updatedRows, allAddedRows); + if (((updatedRows != null) + && (0 < updatedRows.Length))) { + result = (result + this._component_Reel_CustInfoTableAdapter.Update(updatedRows)); + allChangedRows.AddRange(updatedRows); + } + } + return result; + } + + /// + ///Insert rows in top-down order. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private int UpdateInsertedRows(DataSet1 dataSet, global::System.Collections.Generic.List allAddedRows) { + int result = 0; + if ((this._component_Reel_SIDConvTableAdapter != null)) { + global::System.Data.DataRow[] addedRows = dataSet.Component_Reel_SIDConv.Select(null, null, global::System.Data.DataViewRowState.Added); + if (((addedRows != null) + && (0 < addedRows.Length))) { + result = (result + this._component_Reel_SIDConvTableAdapter.Update(addedRows)); + allAddedRows.AddRange(addedRows); + } + } + if ((this._component_Reel_SIDInfoTableAdapter != null)) { + global::System.Data.DataRow[] addedRows = dataSet.Component_Reel_SIDInfo.Select(null, null, global::System.Data.DataViewRowState.Added); + if (((addedRows != null) + && (0 < addedRows.Length))) { + result = (result + this._component_Reel_SIDInfoTableAdapter.Update(addedRows)); + allAddedRows.AddRange(addedRows); + } + } + if ((this._component_Reel_ResultTableAdapter != null)) { + global::System.Data.DataRow[] addedRows = dataSet.Component_Reel_Result.Select(null, null, global::System.Data.DataViewRowState.Added); + if (((addedRows != null) + && (0 < addedRows.Length))) { + result = (result + this._component_Reel_ResultTableAdapter.Update(addedRows)); + allAddedRows.AddRange(addedRows); + } + } + if ((this._component_Reel_CustRuleTableAdapter != null)) { + global::System.Data.DataRow[] addedRows = dataSet.Component_Reel_CustRule.Select(null, null, global::System.Data.DataViewRowState.Added); + if (((addedRows != null) + && (0 < addedRows.Length))) { + result = (result + this._component_Reel_CustRuleTableAdapter.Update(addedRows)); + allAddedRows.AddRange(addedRows); + } + } + if ((this._component_Reel_CustInfoTableAdapter != null)) { + global::System.Data.DataRow[] addedRows = dataSet.Component_Reel_CustInfo.Select(null, null, global::System.Data.DataViewRowState.Added); + if (((addedRows != null) + && (0 < addedRows.Length))) { + result = (result + this._component_Reel_CustInfoTableAdapter.Update(addedRows)); + allAddedRows.AddRange(addedRows); + } + } + return result; + } + + /// + ///Delete rows in bottom-up order. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private int UpdateDeletedRows(DataSet1 dataSet, global::System.Collections.Generic.List allChangedRows) { + int result = 0; + if ((this._component_Reel_CustInfoTableAdapter != null)) { + global::System.Data.DataRow[] deletedRows = dataSet.Component_Reel_CustInfo.Select(null, null, global::System.Data.DataViewRowState.Deleted); + if (((deletedRows != null) + && (0 < deletedRows.Length))) { + result = (result + this._component_Reel_CustInfoTableAdapter.Update(deletedRows)); + allChangedRows.AddRange(deletedRows); + } + } + if ((this._component_Reel_CustRuleTableAdapter != null)) { + global::System.Data.DataRow[] deletedRows = dataSet.Component_Reel_CustRule.Select(null, null, global::System.Data.DataViewRowState.Deleted); + if (((deletedRows != null) + && (0 < deletedRows.Length))) { + result = (result + this._component_Reel_CustRuleTableAdapter.Update(deletedRows)); + allChangedRows.AddRange(deletedRows); + } + } + if ((this._component_Reel_ResultTableAdapter != null)) { + global::System.Data.DataRow[] deletedRows = dataSet.Component_Reel_Result.Select(null, null, global::System.Data.DataViewRowState.Deleted); + if (((deletedRows != null) + && (0 < deletedRows.Length))) { + result = (result + this._component_Reel_ResultTableAdapter.Update(deletedRows)); + allChangedRows.AddRange(deletedRows); + } + } + if ((this._component_Reel_SIDInfoTableAdapter != null)) { + global::System.Data.DataRow[] deletedRows = dataSet.Component_Reel_SIDInfo.Select(null, null, global::System.Data.DataViewRowState.Deleted); + if (((deletedRows != null) + && (0 < deletedRows.Length))) { + result = (result + this._component_Reel_SIDInfoTableAdapter.Update(deletedRows)); + allChangedRows.AddRange(deletedRows); + } + } + if ((this._component_Reel_SIDConvTableAdapter != null)) { + global::System.Data.DataRow[] deletedRows = dataSet.Component_Reel_SIDConv.Select(null, null, global::System.Data.DataViewRowState.Deleted); + if (((deletedRows != null) + && (0 < deletedRows.Length))) { + result = (result + this._component_Reel_SIDConvTableAdapter.Update(deletedRows)); + allChangedRows.AddRange(deletedRows); + } + } + return result; + } + + /// + ///Remove inserted rows that become updated rows after calling TableAdapter.Update(inserted rows) first + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private global::System.Data.DataRow[] GetRealUpdatedRows(global::System.Data.DataRow[] updatedRows, global::System.Collections.Generic.List allAddedRows) { + if (((updatedRows == null) + || (updatedRows.Length < 1))) { + return updatedRows; + } + if (((allAddedRows == null) + || (allAddedRows.Count < 1))) { + return updatedRows; + } + global::System.Collections.Generic.List realUpdatedRows = new global::System.Collections.Generic.List(); + for (int i = 0; (i < updatedRows.Length); i = (i + 1)) { + global::System.Data.DataRow row = updatedRows[i]; + if ((allAddedRows.Contains(row) == false)) { + realUpdatedRows.Add(row); + } + } + return realUpdatedRows.ToArray(); + } + + /// + ///Update all changes to the dataset. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public virtual int UpdateAll(DataSet1 dataSet) { + if ((dataSet == null)) { + throw new global::System.ArgumentNullException("dataSet"); + } + if ((dataSet.HasChanges() == false)) { + return 0; + } + if (((this._component_Reel_SIDConvTableAdapter != null) + && (this.MatchTableAdapterConnection(this._component_Reel_SIDConvTableAdapter.Connection) == false))) { + throw new global::System.ArgumentException("TableAdapterManager에서 관리하는 모든 TableAdapter에는 동일한 연결 문자열을 사용해야 합니다."); + } + if (((this._component_Reel_SIDInfoTableAdapter != null) + && (this.MatchTableAdapterConnection(this._component_Reel_SIDInfoTableAdapter.Connection) == false))) { + throw new global::System.ArgumentException("TableAdapterManager에서 관리하는 모든 TableAdapter에는 동일한 연결 문자열을 사용해야 합니다."); + } + if (((this._component_Reel_ResultTableAdapter != null) + && (this.MatchTableAdapterConnection(this._component_Reel_ResultTableAdapter.Connection) == false))) { + throw new global::System.ArgumentException("TableAdapterManager에서 관리하는 모든 TableAdapter에는 동일한 연결 문자열을 사용해야 합니다."); + } + if (((this._component_Reel_CustRuleTableAdapter != null) + && (this.MatchTableAdapterConnection(this._component_Reel_CustRuleTableAdapter.Connection) == false))) { + throw new global::System.ArgumentException("TableAdapterManager에서 관리하는 모든 TableAdapter에는 동일한 연결 문자열을 사용해야 합니다."); + } + if (((this._component_Reel_CustInfoTableAdapter != null) + && (this.MatchTableAdapterConnection(this._component_Reel_CustInfoTableAdapter.Connection) == false))) { + throw new global::System.ArgumentException("TableAdapterManager에서 관리하는 모든 TableAdapter에는 동일한 연결 문자열을 사용해야 합니다."); + } + global::System.Data.IDbConnection workConnection = this.Connection; + if ((workConnection == null)) { + throw new global::System.ApplicationException("TableAdapterManager에 연결 정보가 없습니다. 각 TableAdapterManager TableAdapter 속성을 올바른 Tabl" + + "eAdapter 인스턴스로 설정하십시오."); + } + bool workConnOpened = false; + if (((workConnection.State & global::System.Data.ConnectionState.Broken) + == global::System.Data.ConnectionState.Broken)) { + workConnection.Close(); + } + if ((workConnection.State == global::System.Data.ConnectionState.Closed)) { + workConnection.Open(); + workConnOpened = true; + } + global::System.Data.IDbTransaction workTransaction = workConnection.BeginTransaction(); + if ((workTransaction == null)) { + throw new global::System.ApplicationException("트랜잭션을 시작할 수 없습니다. 현재 데이터 연결에서 트랜잭션이 지원되지 않거나 현재 상태에서 트랜잭션을 시작할 수 없습니다."); + } + global::System.Collections.Generic.List allChangedRows = new global::System.Collections.Generic.List(); + global::System.Collections.Generic.List allAddedRows = new global::System.Collections.Generic.List(); + global::System.Collections.Generic.List adaptersWithAcceptChangesDuringUpdate = new global::System.Collections.Generic.List(); + global::System.Collections.Generic.Dictionary revertConnections = new global::System.Collections.Generic.Dictionary(); + int result = 0; + global::System.Data.DataSet backupDataSet = null; + if (this.BackupDataSetBeforeUpdate) { + backupDataSet = new global::System.Data.DataSet(); + backupDataSet.Merge(dataSet); + } + try { + // ---- Prepare for update ----------- + // + if ((this._component_Reel_SIDConvTableAdapter != null)) { + revertConnections.Add(this._component_Reel_SIDConvTableAdapter, this._component_Reel_SIDConvTableAdapter.Connection); + this._component_Reel_SIDConvTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(workConnection)); + this._component_Reel_SIDConvTableAdapter.Transaction = ((global::System.Data.SqlClient.SqlTransaction)(workTransaction)); + if (this._component_Reel_SIDConvTableAdapter.Adapter.AcceptChangesDuringUpdate) { + this._component_Reel_SIDConvTableAdapter.Adapter.AcceptChangesDuringUpdate = false; + adaptersWithAcceptChangesDuringUpdate.Add(this._component_Reel_SIDConvTableAdapter.Adapter); + } + } + if ((this._component_Reel_SIDInfoTableAdapter != null)) { + revertConnections.Add(this._component_Reel_SIDInfoTableAdapter, this._component_Reel_SIDInfoTableAdapter.Connection); + this._component_Reel_SIDInfoTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(workConnection)); + this._component_Reel_SIDInfoTableAdapter.Transaction = ((global::System.Data.SqlClient.SqlTransaction)(workTransaction)); + if (this._component_Reel_SIDInfoTableAdapter.Adapter.AcceptChangesDuringUpdate) { + this._component_Reel_SIDInfoTableAdapter.Adapter.AcceptChangesDuringUpdate = false; + adaptersWithAcceptChangesDuringUpdate.Add(this._component_Reel_SIDInfoTableAdapter.Adapter); + } + } + if ((this._component_Reel_ResultTableAdapter != null)) { + revertConnections.Add(this._component_Reel_ResultTableAdapter, this._component_Reel_ResultTableAdapter.Connection); + this._component_Reel_ResultTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(workConnection)); + this._component_Reel_ResultTableAdapter.Transaction = ((global::System.Data.SqlClient.SqlTransaction)(workTransaction)); + if (this._component_Reel_ResultTableAdapter.Adapter.AcceptChangesDuringUpdate) { + this._component_Reel_ResultTableAdapter.Adapter.AcceptChangesDuringUpdate = false; + adaptersWithAcceptChangesDuringUpdate.Add(this._component_Reel_ResultTableAdapter.Adapter); + } + } + if ((this._component_Reel_CustRuleTableAdapter != null)) { + revertConnections.Add(this._component_Reel_CustRuleTableAdapter, this._component_Reel_CustRuleTableAdapter.Connection); + this._component_Reel_CustRuleTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(workConnection)); + this._component_Reel_CustRuleTableAdapter.Transaction = ((global::System.Data.SqlClient.SqlTransaction)(workTransaction)); + if (this._component_Reel_CustRuleTableAdapter.Adapter.AcceptChangesDuringUpdate) { + this._component_Reel_CustRuleTableAdapter.Adapter.AcceptChangesDuringUpdate = false; + adaptersWithAcceptChangesDuringUpdate.Add(this._component_Reel_CustRuleTableAdapter.Adapter); + } + } + if ((this._component_Reel_CustInfoTableAdapter != null)) { + revertConnections.Add(this._component_Reel_CustInfoTableAdapter, this._component_Reel_CustInfoTableAdapter.Connection); + this._component_Reel_CustInfoTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(workConnection)); + this._component_Reel_CustInfoTableAdapter.Transaction = ((global::System.Data.SqlClient.SqlTransaction)(workTransaction)); + if (this._component_Reel_CustInfoTableAdapter.Adapter.AcceptChangesDuringUpdate) { + this._component_Reel_CustInfoTableAdapter.Adapter.AcceptChangesDuringUpdate = false; + adaptersWithAcceptChangesDuringUpdate.Add(this._component_Reel_CustInfoTableAdapter.Adapter); + } + } + // + //---- Perform updates ----------- + // + if ((this.UpdateOrder == UpdateOrderOption.UpdateInsertDelete)) { + result = (result + this.UpdateUpdatedRows(dataSet, allChangedRows, allAddedRows)); + result = (result + this.UpdateInsertedRows(dataSet, allAddedRows)); + } + else { + result = (result + this.UpdateInsertedRows(dataSet, allAddedRows)); + result = (result + this.UpdateUpdatedRows(dataSet, allChangedRows, allAddedRows)); + } + result = (result + this.UpdateDeletedRows(dataSet, allChangedRows)); + // + //---- Commit updates ----------- + // + workTransaction.Commit(); + if ((0 < allAddedRows.Count)) { + global::System.Data.DataRow[] rows = new System.Data.DataRow[allAddedRows.Count]; + allAddedRows.CopyTo(rows); + for (int i = 0; (i < rows.Length); i = (i + 1)) { + global::System.Data.DataRow row = rows[i]; + row.AcceptChanges(); + } + } + if ((0 < allChangedRows.Count)) { + global::System.Data.DataRow[] rows = new System.Data.DataRow[allChangedRows.Count]; + allChangedRows.CopyTo(rows); + for (int i = 0; (i < rows.Length); i = (i + 1)) { + global::System.Data.DataRow row = rows[i]; + row.AcceptChanges(); + } + } + } + catch (global::System.Exception ex) { + workTransaction.Rollback(); + // ---- Restore the dataset ----------- + if (this.BackupDataSetBeforeUpdate) { + global::System.Diagnostics.Debug.Assert((backupDataSet != null)); + dataSet.Clear(); + dataSet.Merge(backupDataSet); + } + else { + if ((0 < allAddedRows.Count)) { + global::System.Data.DataRow[] rows = new System.Data.DataRow[allAddedRows.Count]; + allAddedRows.CopyTo(rows); + for (int i = 0; (i < rows.Length); i = (i + 1)) { + global::System.Data.DataRow row = rows[i]; + row.AcceptChanges(); + row.SetAdded(); + } + } + } + throw ex; + } + finally { + if (workConnOpened) { + workConnection.Close(); + } + if ((this._component_Reel_SIDConvTableAdapter != null)) { + this._component_Reel_SIDConvTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(revertConnections[this._component_Reel_SIDConvTableAdapter])); + this._component_Reel_SIDConvTableAdapter.Transaction = null; + } + if ((this._component_Reel_SIDInfoTableAdapter != null)) { + this._component_Reel_SIDInfoTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(revertConnections[this._component_Reel_SIDInfoTableAdapter])); + this._component_Reel_SIDInfoTableAdapter.Transaction = null; + } + if ((this._component_Reel_ResultTableAdapter != null)) { + this._component_Reel_ResultTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(revertConnections[this._component_Reel_ResultTableAdapter])); + this._component_Reel_ResultTableAdapter.Transaction = null; + } + if ((this._component_Reel_CustRuleTableAdapter != null)) { + this._component_Reel_CustRuleTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(revertConnections[this._component_Reel_CustRuleTableAdapter])); + this._component_Reel_CustRuleTableAdapter.Transaction = null; + } + if ((this._component_Reel_CustInfoTableAdapter != null)) { + this._component_Reel_CustInfoTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(revertConnections[this._component_Reel_CustInfoTableAdapter])); + this._component_Reel_CustInfoTableAdapter.Transaction = null; + } + if ((0 < adaptersWithAcceptChangesDuringUpdate.Count)) { + global::System.Data.Common.DataAdapter[] adapters = new System.Data.Common.DataAdapter[adaptersWithAcceptChangesDuringUpdate.Count]; + adaptersWithAcceptChangesDuringUpdate.CopyTo(adapters); + for (int i = 0; (i < adapters.Length); i = (i + 1)) { + global::System.Data.Common.DataAdapter adapter = adapters[i]; + adapter.AcceptChangesDuringUpdate = true; + } + } + } + return result; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected virtual void SortSelfReferenceRows(global::System.Data.DataRow[] rows, global::System.Data.DataRelation relation, bool childFirst) { + global::System.Array.Sort(rows, new SelfReferenceComparer(relation, childFirst)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected virtual bool MatchTableAdapterConnection(global::System.Data.IDbConnection inputConnection) { + if ((this._connection != null)) { + return true; + } + if (((this.Connection == null) + || (inputConnection == null))) { + return true; + } + if (string.Equals(this.Connection.ConnectionString, inputConnection.ConnectionString, global::System.StringComparison.Ordinal)) { + return true; + } + return false; + } + + /// + ///Update Order Option + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public enum UpdateOrderOption { + + InsertUpdateDelete = 0, + + UpdateInsertDelete = 1, + } + + /// + ///Used to sort self-referenced table's rows + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private class SelfReferenceComparer : object, global::System.Collections.Generic.IComparer { + + private global::System.Data.DataRelation _relation; + + private int _childFirst; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal SelfReferenceComparer(global::System.Data.DataRelation relation, bool childFirst) { + this._relation = relation; + if (childFirst) { + this._childFirst = -1; + } + else { + this._childFirst = 1; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private global::System.Data.DataRow GetRoot(global::System.Data.DataRow row, out int distance) { + global::System.Diagnostics.Debug.Assert((row != null)); + global::System.Data.DataRow root = row; + distance = 0; + + global::System.Collections.Generic.IDictionary traversedRows = new global::System.Collections.Generic.Dictionary(); + traversedRows[row] = row; + + global::System.Data.DataRow parent = row.GetParentRow(this._relation, global::System.Data.DataRowVersion.Default); + for ( + ; ((parent != null) + && (traversedRows.ContainsKey(parent) == false)); + ) { + distance = (distance + 1); + root = parent; + traversedRows[parent] = parent; + parent = parent.GetParentRow(this._relation, global::System.Data.DataRowVersion.Default); + } + + if ((distance == 0)) { + traversedRows.Clear(); + traversedRows[row] = row; + parent = row.GetParentRow(this._relation, global::System.Data.DataRowVersion.Original); + for ( + ; ((parent != null) + && (traversedRows.ContainsKey(parent) == false)); + ) { + distance = (distance + 1); + root = parent; + traversedRows[parent] = parent; + parent = parent.GetParentRow(this._relation, global::System.Data.DataRowVersion.Original); + } + } + + return root; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public int Compare(global::System.Data.DataRow row1, global::System.Data.DataRow row2) { + if (object.ReferenceEquals(row1, row2)) { + return 0; + } + if ((row1 == null)) { + return -1; + } + if ((row2 == null)) { + return 1; + } + + int distance1 = 0; + global::System.Data.DataRow root1 = this.GetRoot(row1, out distance1); + + int distance2 = 0; + global::System.Data.DataRow root2 = this.GetRoot(row2, out distance2); + + if (object.ReferenceEquals(root1, root2)) { + return (this._childFirst * distance1.CompareTo(distance2)); + } + else { + global::System.Diagnostics.Debug.Assert(((root1.Table != null) + && (root2.Table != null))); + if ((root1.Table.Rows.IndexOf(root1) < root2.Table.Rows.IndexOf(root2))) { + return -1; + } + else { + return 1; + } + } + } + } + } +} + +#pragma warning restore 1591 \ No newline at end of file diff --git a/Handler/Project_form2/DataSet1.cs b/Handler/Project_form2/DataSet1.cs new file mode 100644 index 0000000..f01741f --- /dev/null +++ b/Handler/Project_form2/DataSet1.cs @@ -0,0 +1,16 @@ +namespace Project +{ + + + public partial class DataSet1 + { + partial class ResultDataDataTable + { + } + + partial class ModelDataTable + { + + } + } +} diff --git a/Handler/Project_form2/DataSet1.xsc b/Handler/Project_form2/DataSet1.xsc new file mode 100644 index 0000000..05b0199 --- /dev/null +++ b/Handler/Project_form2/DataSet1.xsc @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/Handler/Project_form2/DataSet1.xsd b/Handler/Project_form2/DataSet1.xsd new file mode 100644 index 0000000..b0ac8ca --- /dev/null +++ b/Handler/Project_form2/DataSet1.xsd @@ -0,0 +1,926 @@ + + + + + + + + + + + + + + + DELETE FROM [Component_Reel_SIDConv] WHERE (([idx] = @Original_idx) AND ((@IsNull_M101 = 1 AND [M101] IS NULL) OR ([M101] = @Original_M101)) AND ((@IsNull_M103 = 1 AND [M103] IS NULL) OR ([M103] = @Original_M103)) AND ((@IsNull_M106 = 1 AND [M106] IS NULL) OR ([M106] = @Original_M106)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_M108 = 1 AND [M108] IS NULL) OR ([M108] = @Original_M108)) AND ((@IsNull_M103_2 = 1 AND [M103_2] IS NULL) OR ([M103_2] = @Original_M103_2))) + + + + + + + + + + + + + + + + + + + + INSERT INTO [Component_Reel_SIDConv] ([M101], [M103], [M106], [Remark], [M108], [M103_2]) VALUES (@M101, @M103, @M106, @Remark, @M108, @M103_2); +SELECT idx, M101, M103, M106, Remark, M108, M103_2 FROM Component_Reel_SIDConv WHERE (idx = SCOPE_IDENTITY()) + + + + + + + + + + + + + SELECT idx, M101, M103, M106, Remark, M108, M103_2 +FROM Component_Reel_SIDConv + + + + + + UPDATE [Component_Reel_SIDConv] SET [M101] = @M101, [M103] = @M103, [M106] = @M106, [Remark] = @Remark, [M108] = @M108, [M103_2] = @M103_2 WHERE (([idx] = @Original_idx) AND ((@IsNull_M101 = 1 AND [M101] IS NULL) OR ([M101] = @Original_M101)) AND ((@IsNull_M103 = 1 AND [M103] IS NULL) OR ([M103] = @Original_M103)) AND ((@IsNull_M106 = 1 AND [M106] IS NULL) OR ([M106] = @Original_M106)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_M108 = 1 AND [M108] IS NULL) OR ([M108] = @Original_M108)) AND ((@IsNull_M103_2 = 1 AND [M103_2] IS NULL) OR ([M103_2] = @Original_M103_2))); +SELECT idx, M101, M103, M106, Remark, M108, M103_2 FROM Component_Reel_SIDConv WHERE (idx = @idx) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DELETE FROM [Component_Reel_SIDInfo] WHERE (([SID] = @Original_SID) AND ([CustCode] = @Original_CustCode) AND ((@IsNull_CustName = 1 AND [CustName] IS NULL) OR ([CustName] = @Original_CustName)) AND ((@IsNull_VenderName = 1 AND [VenderName] IS NULL) OR ([VenderName] = @Original_VenderName)) AND ([PartNo] = @Original_PartNo) AND ((@IsNull_PrintPosition = 1 AND [PrintPosition] IS NULL) OR ([PrintPosition] = @Original_PrintPosition)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark))) + + + + + + + + + + + + + + + + + + INSERT INTO [Component_Reel_SIDInfo] ([SID], [CustCode], [CustName], [VenderName], [PartNo], [PrintPosition], [Remark]) VALUES (@SID, @CustCode, @CustName, @VenderName, @PartNo, @PrintPosition, @Remark); +SELECT SID, CustCode, CustName, VenderName, PartNo, PrintPosition, Remark FROM Component_Reel_SIDInfo WHERE (CustCode = @CustCode) AND (PartNo = @PartNo) AND (SID = @SID) + + + + + + + + + + + + + + SELECT SID, CustCode, CustName, VenderName, PartNo, PrintPosition, Remark +FROM Component_Reel_SIDInfo + + + + + + UPDATE [Component_Reel_SIDInfo] SET [SID] = @SID, [CustCode] = @CustCode, [CustName] = @CustName, [VenderName] = @VenderName, [PartNo] = @PartNo, [PrintPosition] = @PrintPosition, [Remark] = @Remark WHERE (([SID] = @Original_SID) AND ([CustCode] = @Original_CustCode) AND ((@IsNull_CustName = 1 AND [CustName] IS NULL) OR ([CustName] = @Original_CustName)) AND ((@IsNull_VenderName = 1 AND [VenderName] IS NULL) OR ([VenderName] = @Original_VenderName)) AND ([PartNo] = @Original_PartNo) AND ((@IsNull_PrintPosition = 1 AND [PrintPosition] IS NULL) OR ([PrintPosition] = @Original_PrintPosition)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark))); +SELECT SID, CustCode, CustName, VenderName, PartNo, PrintPosition, Remark FROM Component_Reel_SIDInfo WHERE (CustCode = @CustCode) AND (PartNo = @PartNo) AND (SID = @SID) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DELETE FROM Component_Reel_Result +WHERE (idx = @Original_idx) + + + + + + + + INSERT INTO [Component_Reel_Result] ([STIME], [ETIME], [PDATE], [JTYPE], [JGUID], [SID], [SID0], [RID], [RID0], [RSN], [QR], [ZPL], [POS], [LOC], [ANGLE], [QTY], [QTY0], [wdate], [VNAME], [PRNATTACH], [PRNVALID], [PTIME], [MFGDATE], [VLOT], [REMARK]) VALUES (@STIME, @ETIME, @PDATE, @JTYPE, @JGUID, @SID, @SID0, @RID, @RID0, @RSN, @QR, @ZPL, @POS, @LOC, @ANGLE, @QTY, @QTY0, @wdate, @VNAME, @PRNATTACH, @PRNVALID, @PTIME, @MFGDATE, @VLOT, @REMARK); +SELECT idx, STIME, ETIME, PDATE, JTYPE, JGUID, SID, SID0, RID, RID0, RSN, QR, ZPL, POS, LOC, ANGLE, QTY, QTY0, wdate, VNAME, PRNATTACH, PRNVALID, PTIME, MFGDATE, VLOT, REMARK FROM Component_Reel_Result WHERE (idx = SCOPE_IDENTITY()) ORDER BY wdate DESC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT idx, STIME, ETIME, PDATE, JTYPE, JGUID, SID, SID0, RID, RID0, RSN, QR, ZPL, POS, LOC, ANGLE, QTY, QTY0, wdate, VNAME, PRNATTACH, PRNVALID, PTIME, MFGDATE, VLOT, REMARK, + (SELECT TOP (1) VAL1 + FROM dbo.FN_SPLIT(Component_Reel_Result.QR, ';') AS FN_SPLIT_1 + WHERE (POS = 3)) AS PNO +FROM Component_Reel_Result +WHERE (CONVERT(varchar(10), wdate, 120) BETWEEN @sd AND @ed) +ORDER BY wdate DESC + + + + + + + + + UPDATE Component_Reel_Result +SET STIME = @STIME, ETIME = @ETIME, PDATE = @PDATE, JTYPE = @JTYPE, JGUID = @JGUID, SID = @SID, SID0 = @SID0, RID = @RID, RID0 = @RID0, RSN = @RSN, QR = @QR, + ZPL = @ZPL, POS = @POS, LOC = @LOC, ANGLE = @ANGLE, QTY = @QTY, QTY0 = @QTY0, wdate = @wdate, VNAME = @VNAME, PRNATTACH = @PRNATTACH, PRNVALID = @PRNVALID, + PTIME = @PTIME, MFGDATE = @MFGDATE, VLOT = @VLOT, REMARK = @REMARK +WHERE (idx = @Original_idx); +SELECT idx, STIME, ETIME, PDATE, JTYPE, JGUID, SID, SID0, RID, RID0, RSN, QR, ZPL, POS, LOC, ANGLE, QTY, QTY0, wdate, VNAME, PRNATTACH, PRNVALID, PTIME, MFGDATE, VLOT, REMARK FROM Component_Reel_Result WHERE (idx = @idx) ORDER BY wdate DESC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT TOP (50) ANGLE, ETIME, JGUID, JTYPE, LOC, MFGDATE, PDATE, POS, PRNATTACH, PRNVALID, PTIME, QR, QTY, QTY0, REMARK, RID, RID0, RSN, SID, SID0, STIME, VLOT, VNAME, ZPL, idx, wdate FROM Component_Reel_Result WHERE (CONVERT (varchar(10), wdate, 120) BETWEEN @sd AND @ed) ORDER BY wdate DESC + + + + + + + + + + + SELECT idx, STIME, ETIME, PDATE, JTYPE, JGUID, SID, SID0, RID, RID0, RSN, QR, ZPL, POS, LOC, ANGLE, QTY, QTY0, wdate, VNAME, PRNATTACH, PRNVALID, PTIME, MFGDATE, VLOT, REMARK, + (SELECT TOP (1) VAL1 + FROM dbo.FN_SPLIT(Component_Reel_Result.QR, ';') AS FN_SPLIT_1 + WHERE (POS = 7)) AS PNO +FROM Component_Reel_Result +WHERE (CONVERT(varchar(10), wdate, 120) BETWEEN @sd AND @ed) +ORDER BY wdate DESC + + + + + + + + + + + + + + + DELETE FROM [Component_Reel_CustRule] WHERE (([idx] = @Original_idx) AND ([code] = @Original_code) AND ((@IsNull_pre = 1 AND [pre] IS NULL) OR ([pre] = @Original_pre)) AND ((@IsNull_pos = 1 AND [pos] IS NULL) OR ([pos] = @Original_pos)) AND ((@IsNull_len = 1 AND [len] IS NULL) OR ([len] = @Original_len)) AND ((@IsNull_exp = 1 AND [exp] IS NULL) OR ([exp] = @Original_exp))) + + + + + + + + + + + + + + + + + INSERT INTO [Component_Reel_CustRule] ([code], [pre], [pos], [len], [exp]) VALUES (@code, @pre, @pos, @len, @exp); +SELECT idx, code, pre, pos, len, exp FROM Component_Reel_CustRule WHERE (idx = SCOPE_IDENTITY()) + + + + + + + + + + + + SELECT idx, code, pre, pos, len, exp +FROM Component_Reel_CustRule +WHERE (code = @code) + + + + + + + + UPDATE [Component_Reel_CustRule] SET [code] = @code, [pre] = @pre, [pos] = @pos, [len] = @len, [exp] = @exp WHERE (([idx] = @Original_idx) AND ([code] = @Original_code) AND ((@IsNull_pre = 1 AND [pre] IS NULL) OR ([pre] = @Original_pre)) AND ((@IsNull_pos = 1 AND [pos] IS NULL) OR ([pos] = @Original_pos)) AND ((@IsNull_len = 1 AND [len] IS NULL) OR ([len] = @Original_len)) AND ((@IsNull_exp = 1 AND [exp] IS NULL) OR ([exp] = @Original_exp))); +SELECT idx, code, pre, pos, len, exp FROM Component_Reel_CustRule WHERE (idx = @idx) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DELETE FROM [Component_Reel_CustInfo] WHERE (([code] = @Original_code) AND ((@IsNull_name = 1 AND [name] IS NULL) OR ([name] = @Original_name))) + + + + + + + + + + INSERT INTO [Component_Reel_CustInfo] ([code], [name]) VALUES (@code, @name); +SELECT code, name FROM Component_Reel_CustInfo WHERE (code = @code) ORDER BY code, name + + + + + + + + + SELECT code, name +FROM Component_Reel_CustInfo +ORDER BY code, name + + + + + + UPDATE [Component_Reel_CustInfo] SET [code] = @code, [name] = @name WHERE (([code] = @Original_code) AND ((@IsNull_name = 1 AND [name] IS NULL) OR ([name] = @Original_name))); +SELECT code, name FROM Component_Reel_CustInfo WHERE (code = @code) ORDER BY code, name + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Handler/Project_form2/DataSet1.xss b/Handler/Project_form2/DataSet1.xss new file mode 100644 index 0000000..291c221 --- /dev/null +++ b/Handler/Project_form2/DataSet1.xss @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Handler/Project_form2/DebenuPDFLibrary64DLL.dll b/Handler/Project_form2/DebenuPDFLibrary64DLL.dll new file mode 100644 index 0000000..2012f48 Binary files /dev/null and b/Handler/Project_form2/DebenuPDFLibrary64DLL.dll differ diff --git a/Handler/Project_form2/DebenuPDFLibraryDLL.dll b/Handler/Project_form2/DebenuPDFLibraryDLL.dll new file mode 100644 index 0000000..75a8e89 Binary files /dev/null and b/Handler/Project_form2/DebenuPDFLibraryDLL.dll differ diff --git a/Handler/Project_form2/Device/Crevis.cs b/Handler/Project_form2/Device/Crevis.cs new file mode 100644 index 0000000..d043e38 --- /dev/null +++ b/Handler/Project_form2/Device/Crevis.cs @@ -0,0 +1,72 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Drawing.Imaging; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Threading.Tasks; +using Emgu.CV; +using Emgu.CV.CvEnum; +using Emgu.CV.Structure; +using Euresys.Open_eVision_2_11; + +namespace Project +{ + public partial class fMain + { + Int32[] _hDevice = new Int32[] { 0, 0, 0 }; + Int32[] _width = new Int32[] { 0, 0, 0 }; + Int32[] _height = new Int32[] { 0, 0, 0 }; + Int32[] _stride = new Int32[] { 0, 0, 0 }; + Int32[] _bufferSize = new Int32[] { 0, 0, 0 }; + Boolean[] _isCrevisOpen = new bool[] { false, false, false }; + Boolean[] _isCrevisACQ = new bool[] { false, false, false }; + IntPtr[] _pImage = new IntPtr[] { IntPtr.Zero, IntPtr.Zero, IntPtr.Zero }; + //IntPtr[] _vImage = new IntPtr[] { IntPtr.Zero, IntPtr.Zero, IntPtr.Zero }; + arCtl.ImageBox[] ivs; + Bitmap[] OrgBitmap = null; + Image[] OrgImage = null; + //EImageBW8[] OrgEImage = null; + //Boolean bOpenEvisionReady = false; + + + void MakeBlankImage(int vIdx, int width=1024, int height=768, string title = "") + { + _width[vIdx] = width; + _height[vIdx] = height; + + OrgBitmap[vIdx] = new Bitmap(_width[vIdx], _height[vIdx], PixelFormat.Format8bppIndexed); + SetGrayscalePalette(OrgBitmap[vIdx]); + + var lockbit = OrgBitmap[vIdx].LockBits(new Rectangle(0, 0, _width[vIdx], _height[vIdx]), ImageLockMode.ReadOnly, OrgBitmap[vIdx].PixelFormat); + _pImage[vIdx] = lockbit.Scan0; + _stride[vIdx] = lockbit.Stride; + OrgBitmap[vIdx].UnlockBits(lockbit); + + //if (bOpenEvisionReady) + //{ + // //OrgEImage[vIdx] = new EImageBW8(); + // //OrgEImage[vIdx].SetImagePtr(_width[vIdx], _height[vIdx], _pImage[vIdx]); + //} + + //openCv 이미지 처리 + OrgImage[vIdx] = new Image(_width[vIdx], _height[vIdx], _stride[vIdx], _pImage[vIdx]); + if (title.Equals("") == false) + { + CvInvoke.PutText(OrgImage[vIdx], title, new Point(50, 100), FontFace.HersheyDuplex, 2.0, new Gray(255).MCvScalar, 2); + } + } + + + private void SetGrayscalePalette(Bitmap bitmap) + { + ColorPalette GrayscalePalette = bitmap.Palette; + for (int i = 0; i < 255; i++) + { + GrayscalePalette.Entries[i] = Color.FromArgb(i, i, i); + } + bitmap.Palette = GrayscalePalette; + } + } +} diff --git a/Handler/Project_form2/Dialog/QuickControl.Designer.cs b/Handler/Project_form2/Dialog/QuickControl.Designer.cs new file mode 100644 index 0000000..ed1aec9 --- /dev/null +++ b/Handler/Project_form2/Dialog/QuickControl.Designer.cs @@ -0,0 +1,808 @@ +namespace Project.Dialog +{ + partial class QuickControl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(QuickControl)); + this.timer1 = new System.Windows.Forms.Timer(this.components); + this.panel1 = new System.Windows.Forms.Panel(); + this.panBG = new System.Windows.Forms.Panel(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); + this.button60 = new System.Windows.Forms.Button(); + this.button57 = new System.Windows.Forms.Button(); + this.button51 = new System.Windows.Forms.Button(); + this.button52 = new System.Windows.Forms.Button(); + this.button58 = new System.Windows.Forms.Button(); + this.button41 = new System.Windows.Forms.Button(); + this.button44 = new System.Windows.Forms.Button(); + this.button3 = new System.Windows.Forms.Button(); + this.button54 = new System.Windows.Forms.Button(); + this.button53 = new System.Windows.Forms.Button(); + this.button5 = new System.Windows.Forms.Button(); + this.button6 = new System.Windows.Forms.Button(); + this.button4 = new System.Windows.Forms.Button(); + this.button59 = new System.Windows.Forms.Button(); + this.panel2 = new System.Windows.Forms.Panel(); + this.groupBox3 = new System.Windows.Forms.GroupBox(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.button12 = new System.Windows.Forms.Button(); + this.button10 = new System.Windows.Forms.Button(); + this.button38 = new System.Windows.Forms.Button(); + this.button40 = new System.Windows.Forms.Button(); + this.button13 = new System.Windows.Forms.Button(); + this.button24 = new System.Windows.Forms.Button(); + this.button1 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.button7 = new System.Windows.Forms.Button(); + this.button9 = new System.Windows.Forms.Button(); + this.button11 = new System.Windows.Forms.Button(); + this.button18 = new System.Windows.Forms.Button(); + this.button8 = new System.Windows.Forms.Button(); + this.button14 = new System.Windows.Forms.Button(); + this.button15 = new System.Windows.Forms.Button(); + this.button16 = new System.Windows.Forms.Button(); + this.panBG.SuspendLayout(); + this.groupBox1.SuspendLayout(); + this.tableLayoutPanel2.SuspendLayout(); + this.groupBox3.SuspendLayout(); + this.tableLayoutPanel1.SuspendLayout(); + this.SuspendLayout(); + // + // timer1 + // + this.timer1.Interval = 500; + this.timer1.Tick += new System.EventHandler(this.timer1_Tick); + // + // panel1 + // + this.panel1.Dock = System.Windows.Forms.DockStyle.Top; + this.panel1.Location = new System.Drawing.Point(5, 484); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(286, 7); + this.panel1.TabIndex = 72; + // + // panBG + // + this.panBG.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.panBG.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.panBG.Controls.Add(this.panel1); + this.panBG.Controls.Add(this.groupBox1); + this.panBG.Controls.Add(this.panel2); + this.panBG.Controls.Add(this.groupBox3); + this.panBG.Dock = System.Windows.Forms.DockStyle.Fill; + this.panBG.Location = new System.Drawing.Point(1, 1); + this.panBG.Name = "panBG"; + this.panBG.Padding = new System.Windows.Forms.Padding(5); + this.panBG.Size = new System.Drawing.Size(298, 540); + this.panBG.TabIndex = 73; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.tableLayoutPanel2); + this.groupBox1.Dock = System.Windows.Forms.DockStyle.Top; + this.groupBox1.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.groupBox1.ForeColor = System.Drawing.Color.WhiteSmoke; + this.groupBox1.Location = new System.Drawing.Point(5, 189); + this.groupBox1.Margin = new System.Windows.Forms.Padding(2); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Padding = new System.Windows.Forms.Padding(5, 3, 5, 5); + this.groupBox1.Size = new System.Drawing.Size(286, 295); + this.groupBox1.TabIndex = 78; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "ETC"; + // + // tableLayoutPanel2 + // + this.tableLayoutPanel2.ColumnCount = 4; + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel2.Controls.Add(this.button60, 0, 3); + this.tableLayoutPanel2.Controls.Add(this.button57, 0, 2); + this.tableLayoutPanel2.Controls.Add(this.button51, 0, 1); + this.tableLayoutPanel2.Controls.Add(this.button52, 1, 1); + this.tableLayoutPanel2.Controls.Add(this.button58, 3, 2); + this.tableLayoutPanel2.Controls.Add(this.button41, 0, 0); + this.tableLayoutPanel2.Controls.Add(this.button44, 1, 0); + this.tableLayoutPanel2.Controls.Add(this.button3, 1, 3); + this.tableLayoutPanel2.Controls.Add(this.button54, 2, 1); + this.tableLayoutPanel2.Controls.Add(this.button53, 3, 1); + this.tableLayoutPanel2.Controls.Add(this.button5, 1, 2); + this.tableLayoutPanel2.Controls.Add(this.button6, 2, 2); + this.tableLayoutPanel2.Controls.Add(this.button4, 2, 3); + this.tableLayoutPanel2.Controls.Add(this.button59, 3, 3); + this.tableLayoutPanel2.Controls.Add(this.button8, 0, 4); + this.tableLayoutPanel2.Controls.Add(this.button14, 1, 4); + this.tableLayoutPanel2.Controls.Add(this.button15, 2, 4); + this.tableLayoutPanel2.Controls.Add(this.button16, 3, 4); + this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel2.Location = new System.Drawing.Point(5, 19); + this.tableLayoutPanel2.Margin = new System.Windows.Forms.Padding(2); + this.tableLayoutPanel2.Name = "tableLayoutPanel2"; + this.tableLayoutPanel2.RowCount = 5; + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20.0005F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20.0005F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20.0005F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 19.99851F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel2.Size = new System.Drawing.Size(276, 271); + this.tableLayoutPanel2.TabIndex = 0; + // + // button60 + // + this.button60.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.button60.Dock = System.Windows.Forms.DockStyle.Fill; + this.button60.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button60.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button60.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button60.ForeColor = System.Drawing.Color.White; + this.button60.Location = new System.Drawing.Point(4, 166); + this.button60.Margin = new System.Windows.Forms.Padding(4); + this.button60.Name = "button60"; + this.button60.Size = new System.Drawing.Size(61, 46); + this.button60.TabIndex = 61; + this.button60.Tag = "0"; + this.button60.Text = "LP전진"; + this.button60.UseVisualStyleBackColor = false; + this.button60.Click += new System.EventHandler(this.button60_Click); + // + // button57 + // + this.button57.BackColor = System.Drawing.Color.Olive; + this.button57.Dock = System.Windows.Forms.DockStyle.Fill; + this.button57.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button57.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button57.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button57.ForeColor = System.Drawing.Color.White; + this.button57.Location = new System.Drawing.Point(4, 112); + this.button57.Margin = new System.Windows.Forms.Padding(4); + this.button57.Name = "button57"; + this.button57.Size = new System.Drawing.Size(61, 46); + this.button57.TabIndex = 59; + this.button57.Tag = "2"; + this.button57.Text = "LP-AIR"; + this.button57.UseVisualStyleBackColor = false; + this.button57.Click += new System.EventHandler(this.button57_Click); + // + // button51 + // + this.button51.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(0)))), ((int)(((byte)(64))))); + this.button51.Dock = System.Windows.Forms.DockStyle.Fill; + this.button51.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button51.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button51.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button51.ForeColor = System.Drawing.Color.White; + this.button51.Location = new System.Drawing.Point(4, 58); + this.button51.Margin = new System.Windows.Forms.Padding(4); + this.button51.Name = "button51"; + this.button51.Size = new System.Drawing.Size(61, 46); + this.button51.TabIndex = 57; + this.button51.Tag = "1"; + this.button51.Text = "LP흡기"; + this.button51.UseVisualStyleBackColor = false; + this.button51.Click += new System.EventHandler(this.button51_Click); + // + // button52 + // + this.button52.BackColor = System.Drawing.Color.Navy; + this.button52.Dock = System.Windows.Forms.DockStyle.Fill; + this.button52.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button52.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button52.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button52.ForeColor = System.Drawing.Color.White; + this.button52.Location = new System.Drawing.Point(73, 58); + this.button52.Margin = new System.Windows.Forms.Padding(4); + this.button52.Name = "button52"; + this.button52.Size = new System.Drawing.Size(61, 46); + this.button52.TabIndex = 57; + this.button52.Tag = "2"; + this.button52.Text = "LP배기"; + this.button52.UseVisualStyleBackColor = false; + this.button52.Click += new System.EventHandler(this.button51_Click); + // + // button58 + // + this.button58.BackColor = System.Drawing.Color.Olive; + this.button58.Dock = System.Windows.Forms.DockStyle.Fill; + this.button58.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button58.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button58.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button58.ForeColor = System.Drawing.Color.White; + this.button58.Location = new System.Drawing.Point(211, 112); + this.button58.Margin = new System.Windows.Forms.Padding(4); + this.button58.Name = "button58"; + this.button58.Size = new System.Drawing.Size(61, 46); + this.button58.TabIndex = 59; + this.button58.Tag = "2"; + this.button58.Text = "RP-AIR"; + this.button58.UseVisualStyleBackColor = false; + this.button58.Click += new System.EventHandler(this.button58_Click); + // + // button41 + // + this.button41.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button41.Dock = System.Windows.Forms.DockStyle.Fill; + this.button41.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button41.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button41.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button41.ForeColor = System.Drawing.Color.White; + this.button41.Location = new System.Drawing.Point(4, 4); + this.button41.Margin = new System.Windows.Forms.Padding(4); + this.button41.Name = "button41"; + this.button41.Size = new System.Drawing.Size(61, 46); + this.button41.TabIndex = 57; + this.button41.Text = "피커진공"; + this.button41.UseVisualStyleBackColor = false; + this.button41.Click += new System.EventHandler(this.button41_Click); + // + // button44 + // + this.button44.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.tableLayoutPanel2.SetColumnSpan(this.button44, 3); + this.button44.Dock = System.Windows.Forms.DockStyle.Fill; + this.button44.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button44.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button44.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button44.ForeColor = System.Drawing.Color.White; + this.button44.Location = new System.Drawing.Point(72, 3); + this.button44.Name = "button44"; + this.button44.Size = new System.Drawing.Size(201, 48); + this.button44.TabIndex = 58; + this.button44.Text = "메인AIR"; + this.button44.UseVisualStyleBackColor = false; + this.button44.Click += new System.EventHandler(this.button44_Click); + // + // button3 + // + this.button3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button3.Dock = System.Windows.Forms.DockStyle.Fill; + this.button3.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button3.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button3.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.button3.ForeColor = System.Drawing.Color.Gold; + this.button3.Location = new System.Drawing.Point(72, 165); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(63, 48); + this.button3.TabIndex = 58; + this.button3.Text = "프린트"; + this.button3.UseVisualStyleBackColor = false; + this.button3.Click += new System.EventHandler(this.button3_Click_1); + // + // button54 + // + this.button54.BackColor = System.Drawing.Color.Navy; + this.button54.Dock = System.Windows.Forms.DockStyle.Fill; + this.button54.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button54.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button54.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button54.ForeColor = System.Drawing.Color.White; + this.button54.Location = new System.Drawing.Point(142, 58); + this.button54.Margin = new System.Windows.Forms.Padding(4); + this.button54.Name = "button54"; + this.button54.Size = new System.Drawing.Size(61, 46); + this.button54.TabIndex = 57; + this.button54.Tag = "2"; + this.button54.Text = "RP배기"; + this.button54.UseVisualStyleBackColor = false; + this.button54.Click += new System.EventHandler(this.button53_Click); + // + // button53 + // + this.button53.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(0)))), ((int)(((byte)(64))))); + this.button53.Dock = System.Windows.Forms.DockStyle.Fill; + this.button53.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button53.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button53.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button53.ForeColor = System.Drawing.Color.White; + this.button53.Location = new System.Drawing.Point(211, 58); + this.button53.Margin = new System.Windows.Forms.Padding(4); + this.button53.Name = "button53"; + this.button53.Size = new System.Drawing.Size(61, 46); + this.button53.TabIndex = 57; + this.button53.Tag = "1"; + this.button53.Text = "RP흡기"; + this.button53.UseVisualStyleBackColor = false; + this.button53.Click += new System.EventHandler(this.button53_Click); + // + // button5 + // + this.button5.BackColor = System.Drawing.Color.Lime; + this.button5.Dock = System.Windows.Forms.DockStyle.Fill; + this.button5.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button5.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button5.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.button5.ForeColor = System.Drawing.Color.Black; + this.button5.Location = new System.Drawing.Point(72, 111); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(63, 48); + this.button5.TabIndex = 58; + this.button5.Text = "감지L"; + this.button5.UseVisualStyleBackColor = false; + // + // button6 + // + this.button6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button6.Dock = System.Windows.Forms.DockStyle.Fill; + this.button6.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button6.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button6.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.button6.ForeColor = System.Drawing.Color.White; + this.button6.Location = new System.Drawing.Point(141, 111); + this.button6.Name = "button6"; + this.button6.Size = new System.Drawing.Size(63, 48); + this.button6.TabIndex = 58; + this.button6.Text = "감지R"; + this.button6.UseVisualStyleBackColor = false; + // + // button4 + // + this.button4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button4.Dock = System.Windows.Forms.DockStyle.Fill; + this.button4.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button4.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button4.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.button4.ForeColor = System.Drawing.Color.Gold; + this.button4.Location = new System.Drawing.Point(141, 165); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(63, 48); + this.button4.TabIndex = 58; + this.button4.Text = "프린트"; + this.button4.UseVisualStyleBackColor = false; + this.button4.Click += new System.EventHandler(this.button4_Click_1); + // + // button59 + // + this.button59.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.button59.Dock = System.Windows.Forms.DockStyle.Fill; + this.button59.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button59.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button59.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button59.ForeColor = System.Drawing.Color.White; + this.button59.Location = new System.Drawing.Point(211, 166); + this.button59.Margin = new System.Windows.Forms.Padding(4); + this.button59.Name = "button59"; + this.button59.Size = new System.Drawing.Size(61, 46); + this.button59.TabIndex = 60; + this.button59.Tag = "0"; + this.button59.Text = "RP전진"; + this.button59.UseVisualStyleBackColor = false; + this.button59.Click += new System.EventHandler(this.button59_Click); + // + // panel2 + // + this.panel2.Dock = System.Windows.Forms.DockStyle.Top; + this.panel2.Location = new System.Drawing.Point(5, 182); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(286, 7); + this.panel2.TabIndex = 77; + // + // groupBox3 + // + this.groupBox3.Controls.Add(this.tableLayoutPanel1); + this.groupBox3.Dock = System.Windows.Forms.DockStyle.Top; + this.groupBox3.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.groupBox3.ForeColor = System.Drawing.Color.WhiteSmoke; + this.groupBox3.Location = new System.Drawing.Point(5, 5); + this.groupBox3.Margin = new System.Windows.Forms.Padding(2); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Padding = new System.Windows.Forms.Padding(5, 3, 5, 5); + this.groupBox3.Size = new System.Drawing.Size(286, 177); + this.groupBox3.TabIndex = 76; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "PORT Z-MOTOR"; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 4; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.Controls.Add(this.button12, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.button10, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.button38, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.button40, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.button13, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.button24, 1, 1); + this.tableLayoutPanel1.Controls.Add(this.button1, 2, 0); + this.tableLayoutPanel1.Controls.Add(this.button2, 2, 1); + this.tableLayoutPanel1.Controls.Add(this.button7, 2, 2); + this.tableLayoutPanel1.Controls.Add(this.button9, 0, 3); + this.tableLayoutPanel1.Controls.Add(this.button11, 1, 3); + this.tableLayoutPanel1.Controls.Add(this.button18, 2, 3); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(5, 19); + this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(2); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 4; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.00062F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.00062F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.00062F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 24.99813F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(276, 153); + this.tableLayoutPanel1.TabIndex = 0; + // + // button12 + // + this.button12.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button12.Dock = System.Windows.Forms.DockStyle.Fill; + this.button12.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button12.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button12.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button12.ForeColor = System.Drawing.Color.White; + this.button12.Location = new System.Drawing.Point(73, 80); + this.button12.Margin = new System.Windows.Forms.Padding(4); + this.button12.Name = "button12"; + this.button12.Size = new System.Drawing.Size(61, 30); + this.button12.TabIndex = 61; + this.button12.Tag = "1"; + this.button12.Text = "▼"; + this.button12.UseVisualStyleBackColor = false; + this.button12.Click += new System.EventHandler(this.button10_Click_1); + // + // button10 + // + this.button10.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button10.Dock = System.Windows.Forms.DockStyle.Fill; + this.button10.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button10.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button10.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button10.ForeColor = System.Drawing.Color.White; + this.button10.Location = new System.Drawing.Point(4, 80); + this.button10.Margin = new System.Windows.Forms.Padding(4); + this.button10.Name = "button10"; + this.button10.Size = new System.Drawing.Size(61, 30); + this.button10.TabIndex = 60; + this.button10.Tag = "0"; + this.button10.Text = "▼"; + this.button10.UseVisualStyleBackColor = false; + this.button10.Click += new System.EventHandler(this.button10_Click_1); + // + // button38 + // + this.button38.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button38.Dock = System.Windows.Forms.DockStyle.Fill; + this.button38.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button38.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button38.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button38.ForeColor = System.Drawing.Color.White; + this.button38.Location = new System.Drawing.Point(73, 4); + this.button38.Margin = new System.Windows.Forms.Padding(4); + this.button38.Name = "button38"; + this.button38.Size = new System.Drawing.Size(61, 30); + this.button38.TabIndex = 57; + this.button38.Tag = "1"; + this.button38.Text = "▲"; + this.button38.UseVisualStyleBackColor = false; + this.button38.Click += new System.EventHandler(this.button40_Click); + // + // button40 + // + this.button40.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button40.Dock = System.Windows.Forms.DockStyle.Fill; + this.button40.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button40.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button40.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button40.ForeColor = System.Drawing.Color.White; + this.button40.Location = new System.Drawing.Point(4, 4); + this.button40.Margin = new System.Windows.Forms.Padding(4); + this.button40.Name = "button40"; + this.button40.Size = new System.Drawing.Size(61, 30); + this.button40.TabIndex = 55; + this.button40.Tag = "0"; + this.button40.Text = "▲"; + this.button40.UseVisualStyleBackColor = false; + this.button40.Click += new System.EventHandler(this.button40_Click); + // + // button13 + // + this.button13.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button13.Dock = System.Windows.Forms.DockStyle.Fill; + this.button13.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button13.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button13.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button13.ForeColor = System.Drawing.Color.White; + this.button13.Location = new System.Drawing.Point(4, 42); + this.button13.Margin = new System.Windows.Forms.Padding(4); + this.button13.Name = "button13"; + this.button13.Size = new System.Drawing.Size(61, 30); + this.button13.TabIndex = 62; + this.button13.Tag = "0"; + this.button13.Text = "STOP"; + this.button13.UseVisualStyleBackColor = false; + this.button13.Click += new System.EventHandler(this.button13_Click_2); + // + // button24 + // + this.button24.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button24.Dock = System.Windows.Forms.DockStyle.Fill; + this.button24.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button24.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button24.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button24.ForeColor = System.Drawing.Color.White; + this.button24.Location = new System.Drawing.Point(73, 42); + this.button24.Margin = new System.Windows.Forms.Padding(4); + this.button24.Name = "button24"; + this.button24.Size = new System.Drawing.Size(61, 30); + this.button24.TabIndex = 62; + this.button24.Tag = "1"; + this.button24.Text = "STOP"; + this.button24.UseVisualStyleBackColor = false; + this.button24.Click += new System.EventHandler(this.button13_Click_2); + // + // button1 + // + this.button1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button1.Dock = System.Windows.Forms.DockStyle.Fill; + this.button1.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button1.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button1.ForeColor = System.Drawing.Color.White; + this.button1.Location = new System.Drawing.Point(142, 4); + this.button1.Margin = new System.Windows.Forms.Padding(4); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(61, 30); + this.button1.TabIndex = 57; + this.button1.Tag = "2"; + this.button1.Text = "▲"; + this.button1.UseVisualStyleBackColor = false; + this.button1.Click += new System.EventHandler(this.button40_Click); + // + // button2 + // + this.button2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button2.Dock = System.Windows.Forms.DockStyle.Fill; + this.button2.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button2.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button2.ForeColor = System.Drawing.Color.White; + this.button2.Location = new System.Drawing.Point(142, 42); + this.button2.Margin = new System.Windows.Forms.Padding(4); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(61, 30); + this.button2.TabIndex = 62; + this.button2.Tag = "2"; + this.button2.Text = "STOP"; + this.button2.UseVisualStyleBackColor = false; + this.button2.Click += new System.EventHandler(this.button13_Click_2); + // + // button7 + // + this.button7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button7.Dock = System.Windows.Forms.DockStyle.Fill; + this.button7.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button7.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button7.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button7.ForeColor = System.Drawing.Color.White; + this.button7.Location = new System.Drawing.Point(142, 80); + this.button7.Margin = new System.Windows.Forms.Padding(4); + this.button7.Name = "button7"; + this.button7.Size = new System.Drawing.Size(61, 30); + this.button7.TabIndex = 60; + this.button7.Tag = "2"; + this.button7.Text = "▼"; + this.button7.UseVisualStyleBackColor = false; + this.button7.Click += new System.EventHandler(this.button10_Click_1); + // + // button9 + // + this.button9.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button9.Dock = System.Windows.Forms.DockStyle.Fill; + this.button9.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button9.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button9.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button9.ForeColor = System.Drawing.Color.White; + this.button9.Location = new System.Drawing.Point(4, 118); + this.button9.Margin = new System.Windows.Forms.Padding(4); + this.button9.Name = "button9"; + this.button9.Size = new System.Drawing.Size(61, 31); + this.button9.TabIndex = 60; + this.button9.Tag = "0"; + this.button9.Text = "MAG"; + this.button9.UseVisualStyleBackColor = false; + this.button9.Click += new System.EventHandler(this.button9_Click); + // + // button11 + // + this.button11.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button11.Dock = System.Windows.Forms.DockStyle.Fill; + this.button11.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button11.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button11.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button11.ForeColor = System.Drawing.Color.White; + this.button11.Location = new System.Drawing.Point(73, 118); + this.button11.Margin = new System.Windows.Forms.Padding(4); + this.button11.Name = "button11"; + this.button11.Size = new System.Drawing.Size(61, 31); + this.button11.TabIndex = 60; + this.button11.Tag = "1"; + this.button11.Text = "MAG"; + this.button11.UseVisualStyleBackColor = false; + this.button11.Click += new System.EventHandler(this.button9_Click); + // + // button18 + // + this.button18.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.button18.Dock = System.Windows.Forms.DockStyle.Fill; + this.button18.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button18.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button18.Font = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button18.ForeColor = System.Drawing.Color.White; + this.button18.Location = new System.Drawing.Point(142, 118); + this.button18.Margin = new System.Windows.Forms.Padding(4); + this.button18.Name = "button18"; + this.button18.Size = new System.Drawing.Size(61, 31); + this.button18.TabIndex = 60; + this.button18.Tag = "2"; + this.button18.Text = "MAG"; + this.button18.UseVisualStyleBackColor = false; + this.button18.Click += new System.EventHandler(this.button9_Click); + // + // button8 + // + this.button8.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.button8.Dock = System.Windows.Forms.DockStyle.Fill; + this.button8.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button8.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button8.Font = new System.Drawing.Font("맑은 고딕", 17F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button8.ForeColor = System.Drawing.Color.Gold; + this.button8.Location = new System.Drawing.Point(4, 220); + this.button8.Margin = new System.Windows.Forms.Padding(4); + this.button8.Name = "button8"; + this.button8.Size = new System.Drawing.Size(61, 47); + this.button8.TabIndex = 61; + this.button8.Tag = "0"; + this.button8.Text = "Y-"; + this.button8.UseVisualStyleBackColor = false; + this.button8.Click += new System.EventHandler(this.button8_Click); + // + // button14 + // + this.button14.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.button14.Dock = System.Windows.Forms.DockStyle.Fill; + this.button14.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button14.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button14.Font = new System.Drawing.Font("맑은 고딕", 17F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button14.ForeColor = System.Drawing.Color.Tomato; + this.button14.Location = new System.Drawing.Point(73, 220); + this.button14.Margin = new System.Windows.Forms.Padding(4); + this.button14.Name = "button14"; + this.button14.Size = new System.Drawing.Size(61, 47); + this.button14.TabIndex = 61; + this.button14.Tag = "0"; + this.button14.Text = "[R]"; + this.button14.UseVisualStyleBackColor = false; + this.button14.Click += new System.EventHandler(this.button14_Click); + // + // button15 + // + this.button15.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.button15.Dock = System.Windows.Forms.DockStyle.Fill; + this.button15.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button15.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button15.Font = new System.Drawing.Font("맑은 고딕", 17F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button15.ForeColor = System.Drawing.Color.Gold; + this.button15.Location = new System.Drawing.Point(142, 220); + this.button15.Margin = new System.Windows.Forms.Padding(4); + this.button15.Name = "button15"; + this.button15.Size = new System.Drawing.Size(61, 47); + this.button15.TabIndex = 61; + this.button15.Tag = "0"; + this.button15.Text = "Y-"; + this.button15.UseVisualStyleBackColor = false; + this.button15.Click += new System.EventHandler(this.button15_Click_1); + // + // button16 + // + this.button16.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.button16.Dock = System.Windows.Forms.DockStyle.Fill; + this.button16.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.button16.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button16.Font = new System.Drawing.Font("맑은 고딕", 17F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button16.ForeColor = System.Drawing.Color.Tomato; + this.button16.Location = new System.Drawing.Point(211, 220); + this.button16.Margin = new System.Windows.Forms.Padding(4); + this.button16.Name = "button16"; + this.button16.Size = new System.Drawing.Size(61, 47); + this.button16.TabIndex = 61; + this.button16.Tag = "0"; + this.button16.Text = "[R]"; + this.button16.UseVisualStyleBackColor = false; + this.button16.Click += new System.EventHandler(this.button16_Click_2); + // + // QuickControl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 17F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(15)))), ((int)(((byte)(15))))); + this.ClientSize = new System.Drawing.Size(300, 542); + this.Controls.Add(this.panBG); + this.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Margin = new System.Windows.Forms.Padding(4); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "QuickControl"; + this.Padding = new System.Windows.Forms.Padding(1); + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "수동조작"; + this.TopMost = true; + this.Load += new System.EventHandler(this.@__LoaD); + this.panBG.ResumeLayout(false); + this.groupBox1.ResumeLayout(false); + this.tableLayoutPanel2.ResumeLayout(false); + this.groupBox3.ResumeLayout(false); + this.tableLayoutPanel1.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + private System.Windows.Forms.Timer timer1; + private System.Windows.Forms.Panel panel1; + public System.Windows.Forms.Panel panBG; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Button button38; + private System.Windows.Forms.Button button40; + public System.Windows.Forms.GroupBox groupBox3; + private System.Windows.Forms.Button button12; + private System.Windows.Forms.Button button10; + private System.Windows.Forms.Button button13; + private System.Windows.Forms.Button button24; + private System.Windows.Forms.Panel panel2; + public System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; + private System.Windows.Forms.Button button41; + private System.Windows.Forms.Button button44; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button button7; + private System.Windows.Forms.Button button9; + private System.Windows.Forms.Button button11; + private System.Windows.Forms.Button button18; + private System.Windows.Forms.Button button51; + private System.Windows.Forms.Button button52; + private System.Windows.Forms.Button button53; + private System.Windows.Forms.Button button54; + private System.Windows.Forms.Button button57; + private System.Windows.Forms.Button button58; + private System.Windows.Forms.Button button59; + private System.Windows.Forms.Button button60; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.Button button5; + private System.Windows.Forms.Button button6; + private System.Windows.Forms.Button button8; + private System.Windows.Forms.Button button14; + private System.Windows.Forms.Button button15; + private System.Windows.Forms.Button button16; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/QuickControl.cs b/Handler/Project_form2/Dialog/QuickControl.cs new file mode 100644 index 0000000..4be5189 --- /dev/null +++ b/Handler/Project_form2/Dialog/QuickControl.cs @@ -0,0 +1,364 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class QuickControl : Form + { + public QuickControl() + { + InitializeComponent(); + this.FormClosing += __Closing; + //this.lbTitle.MouseMove += LbTitle_MouseMove; + //this.lbTitle.MouseUp += LbTitle_MouseUp; + //this.lbTitle.MouseDown += LbTitle_MouseDown; + } + + void __Closing(object sender, FormClosingEventArgs e) + { + timer1.Stop(); + } + private void __LoaD(object sender, EventArgs e) + { + timer1.Start(); + //button31.Text = ((eAxis)0).ToString(); + //button32.Text = ((eAxis)1).ToString(); + //button33.Text = ((eAxis)2).ToString(); + } + #region "Mouse Form Move" + + private Boolean fMove = false; + private Point MDownPos; + private void LbTitle_MouseMove(object sender, MouseEventArgs e) + { + if (fMove) + { + Point offset = new Point(e.X - MDownPos.X, e.Y - MDownPos.Y); + this.Left += offset.X; + this.Top += offset.Y; + offset = new Point(0, 0); + } + } + private void LbTitle_MouseUp(object sender, MouseEventArgs e) + { + fMove = false; + } + private void LbTitle_MouseDown(object sender, MouseEventArgs e) + { + MDownPos = new Point(e.X, e.Y); + fMove = true; + } + + #endregion + private void button1_Click(object sender, EventArgs e) + { + if (Pub.mot.isHomeSet[(int)eAxis.Z_THETA] == false) + { + Util.MsgE("홈 검색이 완료되지 않았으므로 이동할 수 없습니다"); + return; + } + + var speed = 50.0; + if (Pub.Result != null && + Pub.Result.mModel != null && + Pub.Result.mModel.Title != "") + speed = 0;// Pub.Result.mModel.XSpeed; + + Util_Mot.Move(eAxis.Z_THETA, 0, speed); + } + + private void timer1_Tick(object sender, EventArgs e) + { + //감지센서 상태 210208 + button5.BackColor = Util_DO.GetIOInput(eDIName.L_PICK_VAC) ? Color.Lime : Color.FromArgb(70, 70, 70); + button5.ForeColor = Util_DO.GetIOInput(eDIName.L_PICK_VAC) ? Color.Black : Color.White; + + button6.BackColor = Util_DO.GetIOInput(eDIName.R_PICK_VAC) ? Color.Lime : Color.FromArgb(70, 70, 70); + button6.ForeColor = Util_DO.GetIOInput(eDIName.R_PICK_VAC) ? Color.Black : Color.White; + } + + + + + private void button20_Click_1(object sender, EventArgs e) + { + //button zero + var but = sender as Button; + var motidx = short.Parse(but.Tag.ToString()); + var axis = (eAxis)motidx; + + //전체 이동경로상 오류가 있으면 처리 하지 않는다. + var ermsg = new System.Text.StringBuilder(); + + if (Pub.mot.isHomeSet[(int)axis] == false) + { + ermsg.AppendLine("해당 축은 홈 검색이 완료되지 않았습니다"); + } + + + if (ermsg.Length > 0) + { + Util.MsgE("이동을 할 수 없습니다\n" + ermsg.ToString()); + return; + } + + + var dlg = Util.MsgQ(string.Format("모션 축 ({0})의 위치를 0으로 이동하시겠습까?\n" + + "위치 0은 일반적으로 홈 위치 입니다", axis)); + if (dlg != DialogResult.Yes) return; + Pub.log.Add("user:move to zero axis=" + axis.ToString()); + Pub.mot.Move(motidx, 0); + } + + private void button16_Click_1(object sender, EventArgs e) + { + //button stop + var but = sender as Button; + var motidx = short.Parse(but.Tag.ToString()); + var axis = (eAxis)motidx; + + //var dlg = Util.MsgQ("모션 {0}({1}) 을 위치 '0'으로 이동 할까요?\n" + + // "경로 상 충돌가능성을 확인 한 후 실행하세요"); + //if (dlg != System.Windows.Forms.DialogResult.Yes) return; + + Pub.log.Add("user:motion stop axis=" + axis.ToString()); + Pub.mot.MoveStop("user stop", motidx); + } + + private void button3_Click(object sender, EventArgs e) + { + //ccw + var but = sender as Button; + var motidx = short.Parse(but.Tag.ToString()); + var axis = (eAxis)motidx; + Pub.log.Add("user:motion move -3.0 axis=" + axis.ToString()); + Pub.mot.Move(motidx, -3.0, true); + } + + private void button4_Click(object sender, EventArgs e) + { + //cw + var but = sender as Button; + var motidx = short.Parse(but.Tag.ToString()); + var axis = (eAxis)motidx; + Pub.log.Add("user:motion move +3.0 axis=" + axis.ToString()); + Pub.mot.Move(motidx, 3.0, true); + } + + private void button40_Click(object sender, EventArgs e) + { + var but = sender as Button; + var butindex = int.Parse(but.Tag.ToString()); + Util_DO.SetPortMotor(butindex, eMotDir.CW, true, "UC"); + } + + private void tbClose_Click_1(object sender, EventArgs e) + { + this.Close(); + } + + private void button10_Click_1(object sender, EventArgs e) + { + var but = sender as Button; + var butindex = int.Parse(but.Tag.ToString()); + Util_DO.SetPortMotor(butindex, eMotDir.CCW, true, "UC"); + } + + private void button13_Click_2(object sender, EventArgs e) + { + var but = sender as Button; + var butindex = int.Parse(but.Tag.ToString()); + Util_DO.SetPortMotor(butindex, eMotDir.CCW, false, "UC"); + } + + private void button41_Click(object sender, EventArgs e) + { + //front + var cur = Util_DO.GetIOOutput(eDOName.PICK_VAC1); + Util_DO.SetPickerVac(!cur, true); + } + + private void button39_Click(object sender, EventArgs e) + { + + } + + private void button44_Click(object sender, EventArgs e) + { + var cur = Util_DO.GetIOOutput(eDOName.SOL_AIR); + Util_DO.SetAIR(!cur); + } + + private void button9_Click(object sender, EventArgs e) + { + var but = sender as Button; + var butindex = int.Parse(but.Tag.ToString()); + Boolean current = false; + + if (butindex == 0) current = Util_DO.GetIOOutput(eDOName.CART_MAG0); + else if (butindex == 1) current = Util_DO.GetIOOutput(eDOName.CART_MAG1); + else current = Util_DO.GetIOOutput(eDOName.CART_MAG2); + + Util_DO.SetPortMagnet(butindex, !current); + } + + private void button51_Click(object sender, EventArgs e) + { + var but = sender as Button; + var tagstr = but.Tag.ToString(); + if (tagstr == "1") + { + if (Util_DO.GetIOOutput(eDOName.PRINTL_VACI) == true) + Util_DO.SetPrintLVac(ePrintVac.off, true); + else + Util_DO.SetPrintLVac(ePrintVac.inhalation, true); + } + else if (tagstr == "2") + if (Util_DO.GetIOOutput(eDOName.PRINTL_VACO) == true) + Util_DO.SetPrintLVac(ePrintVac.off, true); + else + Util_DO.SetPrintLVac(ePrintVac.exhaust, true); + else + Util_DO.SetPrintLVac(ePrintVac.off, true); + } + + + + private void button53_Click(object sender, EventArgs e) + { + var but = sender as Button; + var tagstr = but.Tag.ToString(); + if (tagstr == "1") + { + if (Util_DO.GetIOOutput(eDOName.PRINTR_VACI) == true) + Util_DO.SetPrintRVac(ePrintVac.off, true); + else + Util_DO.SetPrintRVac(ePrintVac.inhalation, true); + } + else if (tagstr == "2") + if (Util_DO.GetIOOutput(eDOName.PRINTR_VACO) == true) + Util_DO.SetPrintRVac(ePrintVac.off, true); + else + Util_DO.SetPrintRVac(ePrintVac.exhaust, true); + else + Util_DO.SetPrintRVac(ePrintVac.off, true); + } + + private void button57_Click(object sender, EventArgs e) + { + //바닥바람 + var curvalu = Util_DO.GetIOOutput(eDOName.PRINTL_AIRON); + Util_DO.SetOutput(eDOName.PRINTL_AIRON, !curvalu); + } + + private void button58_Click(object sender, EventArgs e) + { + //바닥바람 + var curvalu = Util_DO.GetIOOutput(eDOName.PRINTR_AIRON); + Util_DO.SetOutput(eDOName.PRINTR_AIRON, !curvalu); + } + + private void button60_Click(object sender, EventArgs e) + { + var cur = Util_DO.GetIOOutput(eDOName.PRINTL_FWD); + if (cur == false) + { + var dlg = Util.MsgQ("프린터(좌) 피커를 전진할까요?"); //210209 + if (dlg != DialogResult.Yes) return; + } + Util_DO.SetOutput(eDOName.PRINTL_FWD, !cur); + } + + private void button59_Click(object sender, EventArgs e) + { + var cur = Util_DO.GetIOOutput(eDOName.PRINTR_FWD); + if (cur == false) + { + var dlg = Util.MsgQ("프린터(우) 피커를 전진할까요?"); + if (dlg != DialogResult.Yes) return; + } + Util_DO.SetOutput(eDOName.PRINTR_FWD, !cur); + } + + private void button3_Click_1(object sender, EventArgs e) + { + Pub.PrinterL.TestPrint(Pub.setting.DrawOutbox, "ATK4EE1", "", Pub.setting.STDLabelFormat7); + Pub.log.Add("임시프린트L:" + Pub.PrinterL.LastPrintZPL); + } + + private void button4_Click_1(object sender, EventArgs e) + { + Pub.PrinterR.TestPrint(Pub.setting.DrawOutbox, "ATK4EE1", "", Pub.setting.STDLabelFormat7); + Pub.log.Add("임시프린트R:" + Pub.PrinterR.LastPrintZPL); + } + + private void button15_Click(object sender, EventArgs e) + { + //왼쪽검증취소 + if (Pub.flag.get(eFlag.RDY_VISION0) == false) return; + var dlg = Util.MsgQ("QR코드 검증을 취소할까요?"); + if (dlg != DialogResult.Yes) return; + + Pub.flag.set(eFlag.RDY_VISION0, false, "CANCEL"); + Pub.flag.set(eFlag.PORTL_ITEMON, false, "CANCEL"); + Pub.flag.set(eFlag.PRC_VISION0, false, "CANCEL"); + + Pub.ResetRunStepSeq(eRunSequence.VISION0); + Pub.UpdaterunStepSeqStartTime(eRunSequence.COM_VS0); + Pub.log.Add(string.Format("QR검증({0}) 취소 JGUID={1}", "L", Pub.Result.ItemData[0].guid)); + } + + private void button16_Click(object sender, EventArgs e) + { + if (Pub.flag.get(eFlag.RDY_VISION2) == false) return; + var dlg = Util.MsgQ("QR코드 검증을 취소할까요?"); + if (dlg != DialogResult.Yes) return; + + Pub.flag.set(eFlag.RDY_VISION2, false, "CANCEL"); + Pub.flag.set(eFlag.PORTR_ITEMON, false, "CANCEL"); + Pub.flag.set(eFlag.PRC_VISION2, false, "CANCEL"); + + Pub.ResetRunStepSeq(eRunSequence.VISION2); + Pub.UpdaterunStepSeqStartTime(eRunSequence.COM_VS2); + Pub.log.Add(string.Format("QR검증({0}) 취소 JGUID={1}", "R", Pub.Result.ItemData[2].guid)); + } + + private void button8_Click(object sender, EventArgs e) + { + //왼쪽 -5mm + var pos = Util_Mot.GetAxPLMPos(eAxisPLMovePos.READY); + var vel = Pub.setting.MoveYForPaperVaccumeVel; + var acc = Pub.setting.MoveYForPaperVaccumeAcc; + Util_Mot.Move(eAxis.PL_MOVE, pos.position + Pub.setting.MoveYForPaperVaccumeValue, vel, acc, false, false, false); + } + + private void button14_Click(object sender, EventArgs e) + { + //왼쪽 +5mm + var pos = Util_Mot.GetAxPLMPos(eAxisPLMovePos.READY); + Util_Mot.Move(eAxis.PL_MOVE, pos.position, 50, 200, false, false, false); + } + + private void button15_Click_1(object sender, EventArgs e) + { + //오른쪽 -5mm + var pos = Util_Mot.GetAxPRMPos(eAxisPRMovePos.READY); + var vel = Pub.setting.MoveYForPaperVaccumeVel; + var acc = Pub.setting.MoveYForPaperVaccumeAcc; + Util_Mot.Move(eAxis.PR_MOVE, pos.position + Pub.setting.MoveYForPaperVaccumeValue, vel, acc, false, false, false); + } + + private void button16_Click_2(object sender, EventArgs e) + { + //오른쪽 +5mm + var pos = Util_Mot.GetAxPRMPos(eAxisPRMovePos.READY); + Util_Mot.Move(eAxis.PR_MOVE, pos.position, 50, 200, false, false, false); + } + } +} diff --git a/Handler/Project_form2/Dialog/QuickControl.resx b/Handler/Project_form2/Dialog/QuickControl.resx new file mode 100644 index 0000000..bd8b88b --- /dev/null +++ b/Handler/Project_form2/Dialog/QuickControl.resx @@ -0,0 +1,380 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + AAABAAMAMDAAAAEAIACoJQAANgAAACAgAAABACAAqBAAAN4lAAAQEAAAAQAgAGgEAACGNgAAKAAAADAA + AABgAAAAAQAgAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgaZsA5C1 + fwOTuIIDkbaAA5K3gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3 + gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3 + gQOSt4EDkreBA5G2gAOTuIIDkLV/A4GmbAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAfaJmBAAAAAB6n2IdfaJmkoescoeIrnSDh61zhIitc4SIrXOEiK1zhIitc4SIrXOEiK1zhIit + c4SIrXOEiK1zhIitc4SIrXOEiK1zhIitc4SIrXOEiK1zhIitc4SIrXOEiK1zhIitc4SIrXOEiK1zhIit + c4SIrXOEiK1zhIitc4SIrXOEiK1zhIitc4SIrXOEiK1zhIetc4SIrnSDh6xyh32iZpJ6n2IdAAAAAH2i + ZgQAAAAAAAAAAAAAAAAAAAAAiKx0BwAAAACApWk1ia52/6DElP+kyJn9osaW/qLGl/+ixpf/osaX/6LG + l/+ixpf/osaX/6LGl/+ixpf/osaX/6LGl/+ixpf/osaX/6LGl/+ixpf/osaX/6LGl/+ixpf/osaX/6LG + l/+ixpf/osaX/6LGl/+ixpf/osaX/6LGl/+ixpf/osaX/6LGl/+ixpf/osaX/6LGlv6kyJn9oMSU/4mu + dv+ApWk1AAAAAIisdAcAAAAAAAAAAAAAAAAAAAAAl7uIBgAAAACIrXQrmr6M47/ivf3E58P8weS/+sLk + wPvC5MD7wuTA+8LkwPvC5MD7wuTA+8LkwPvC5MD7wuTA+8LkwPvC5MD7wuTA+8LkwPvB5MD7wuTA+8Lk + wPvC5MD7wuTA+8LkwPvC5MD7wuTA+8LkwPvC5MD7wuTA+8LkwPvC5MD7wuTA+8LkwPvC5MD7wuTA+8Hk + v/rE58P8v+K9/Zq+jOOIrXQrAAAAAJe7iAYAAAAAAAAAAAAAAAAAAAAAlLiEBgAAAACHq3Itl7uH67nc + tf++4bz+u964/bzfuf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzf + uf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzf + uf6837n+vN+5/rveuP2+4bz+udy1/5e7h+uHq3ItAAAAAJS4hAYAAAAAAAAAAAAAAAAAAAAAlLiEBgAA + AACHq3Isl7uI67rdtv+/4r3/vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzf + uf694Lr+vN+5/r3guv694Lr+vN+5/rzfuf694Lr+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzf + uf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJS4hAYAAAAAAAAAAAAA + AAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/73guv+94Lr/veC6/73g + uv+837n/veC6/73guv+73rf/weO//7ndtf+z163/weTA/7zfuf+837n/veC6/7zfuf+94Lr/veC6/73g + uv+94Lr/veC6/73guv+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5 + hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/73g + uv+94Lr/veC6/7zfuf+94Lr/vN+5/7veuP/C5MH/stet/6bHm/+oxpz/qc6h/7/ivf++4bz/u964/73g + uv+837n/veC6/73guv+94Lr/veC6/73guv+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7 + iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3g + uv+94Lr/veC6/73guv+94Lr/vN+5/73guv+837n/vd+5/8Djvv+02bD/p8ic/8LTt//R3cn/q8ef/67R + p/+94bv/v+K9/7veuP+94Lr/vN+5/73guv+94Lr/veC6/73guv+94Lr/veC6/73guv+94Lr/veC6/7zf + uf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rd + tv+/4r3/vN+5/r3guv+94Lr/veC6/73guv+837n/veC6/7zfuf+94Lr/vuG8/7fasv+mx5v/xte8//b4 + 9P/9/f3/3ObW/6zHoP+u0qf/veG7/77hvP+837n/veC6/73guv+94Lr/veC6/73guv+94Lr/veC6/73g + uv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAA + AACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/73guv+94Lr/vN+5/73guv++4bz/uNu0/6XH + mv/I2b7/9Pfy/////////////f39/9zm1v+tyKD/rtGm/7/ivf+94Lr/vN+5/7zfuf+94Lr/veC6/73g + uv+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAA + AAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/7zfuf+94Lr/u964/8Hj + v/+22bH/o8SX/83exv/2+fX///////39/P/+/f3///////7+/f/h69z/rsmh/6nNn//C5cH/vN+4/7zf + uf+94Lr/vN+5/73guv+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5 + hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/73g + uv+837j/wuTA/7LXrf+nx5z/zNvE//b49P//////+/v6/8bWvP+uxaH/7vLr//7+/v/+////4Oja/7LK + pv+ozJ//wuXB/73guv+837n/veC6/7zfuf+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7 + iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3g + uv+94Lr/vN+5/7zfuf++4Lv/t9uz/6rLoP/C1Lj//Pz7///////4+ff/zNvF/6fInP+kyJr/uM6t/+zw + 6P/+/v7///7//+Do2v+yy6f/qc2h/7/ivf++4bz/u964/73guv+837n/veC6/73guv+94Lr/veC6/7zf + uf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rd + tv+/4r3/vN+5/r3guv+94Lr/vN+5/7zfuf++4Lv/t9uz/6rKn//C07j//v7+//z8+//N28T/qMec/7ba + sv/B47//p8qd/7nOrv/q8Of///////7+/v/g6dv/rcih/63Rpf+94bv/v+K9/7veuP+94Lr/vN+5/73g + uv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAA + AACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/73guv+73rj/wuXB/7HVq/+pyJ7/z97I/9Pg + zf+ryZ//stas/8LkwP+94Lr/vuG8/6PGmP+90rT/6/Dn///////8/fv/3+rb/6/Ko/+u0ab/vOC5/7/h + vP+837n/veC6/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAA + AAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/7zfuf+94Lr/u964/7/j + vf+53LX/o8SY/6PFmP+53LX/wOO+/7veuP+837n/veC6/8Djvv+lyZv/uc+v/+rv5////////f79/+bs + 4f+tx6H/rNCl/8Djvv+837n/vN+5/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5 + hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/73g + uv+94Lr/vN+5/73guv+84Lr/ut22/7rdtv+84Lr/veC6/7zfuf+837n/veC6/73guv+/4rz/p8ue/7bO + q//r8ej///////7+/v/l7OH/ssun/6jNoP/B47//vN+5/7zfuf+94Lr/veC6/7zfuf6/4r3/ut22/5e7 + iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlLiEBgAAAACHq3Itl7uI67rdtv+/4r3/vN+5/r3g + uv+94Lr/veC6/73guv+837n/veC6/7zfuf+94Lr/vuG8/77hvP+94Lr/vN+5/73guv+94Lr/vN+5/7zf + uf+/4bz/vOC5/6jLnv+zy6j/7/Ps///////09vL/tcup/6PImf/C5MD/vN+5/7zfuf+94Lr/veC6/7zf + uf6/4r3/ut22/5e7iOuHq3ItAAAAAJS4hAYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3MsmLuI57rd + tv+/4r3/vN+5/r3guv+94Lr/veC6/73guv+94Lr/vN+5/73guv+837n/vN+5/7zfuf+837n/veC6/7zf + uf+837n/veC6/73guv+73rj/weO//7ndtf+qzKH/uc6t/9bhzv/A07b/sM+n/7fbs/++4Lv/vN+5/7zf + uf+94Lr/veC6/7zfuf6/4r3/ut22/5i7iOeHq3MsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAk7eDBgAA + AACGqnEwlbmG9rrdtv+/4r3+vN+5/r3guv+94Lr/veC6/73guv+94Lr/veC6/73guv+94Lr/veC6/73g + uv+94Lr/veC6/73guv+94Lr/veC6/7zfuf+94Lr/u963/8Djvv+94Lr/qMqe/6vHnv+nyJv/ttqy/8Hk + v/+83rj/veC6/73guv+94Lr/veC6/7zfuf6/4r3+ut22/5W5hvaGqnEwAAAAAJO3gwYAAAAAAAAAAAAA + AAAAAAAAkraCBwAAAACFqnI1lLiF/7nctf+/4r39vN+4/r3guv+94Lr/veC6/73guv+94Lr/veC6/73g + uv+94Lr/veC6/73guv+837n/veC6/7zfuf+837n/vN+5/7zfuf+837n/veC6/7veuP++4Lv/wOK+/7HV + q/+94Lr/v+K9/7veuP+94Lr/vN+5/73guv+94Lr/veC6/7zfuP6/4r39udy1/5S4hf+FqnI1AAAAAJK2 + ggcAAAAAAAAAAAAAAAAAAAAAlLmFBwAAAACIrXU0lruI/7ndtv+/4r39vN+5/r3guv+94Lr/veC6/73g + uv+94Lr/veC6/73guv+94Lr/veC6/73guv+84Lr/vN+5/73guv+94Lr/veC6/73guv+94Lr/veC6/73g + uv+837n/vN+5/73gu/+837n/vN+5/73guv+837n/veC6/73guv+94Lr/veC6/7zfuf6/4r39ud22/5a7 + iP+IrXU0AAAAAJS5hQcAAAAAAAAAAAAAAAAAAAAAlLmFBwAAAACHrXU0lruI/7ndtv+/4r39vN+5/r3g + uv+94Lr/veC6/73guv+94Lr/veC6/73guv+94Ln/veC6/73guv+837n/vN+5/7zfuf+94Lv/vuG8/77h + vP+94Lv/vN+5/7zfuf+837n/veC6/73guv+94Lr/vN+5/73guv+94Lr/veC6/73guv+94Lr/veC6/7zf + uf6/4r39ud22/5a7iP+HrXU0AAAAAJS5hQcAAAAAAAAAAAAAAAAAAAAAk7iEBwAAAACHrXU0lruH/7nd + tv+/4r39vN+5/r3guv+94Lr/veC6/73guv+94Lr/veC6/7zfuf+94Lr/vN+5/7zfuf+837n/weS//7zf + uf+sz6P/oMWW/6DFlv+sz6T/vN+5/8Hkv/+837n/vN+5/7zfuf+94Lr/veC6/7zfuf+94Lr/veC6/73g + uv+94Lr/veC6/7zfuf6/4r39ud22/5a7h/+HrXU0AAAAAJO4hAcAAAAAAAAAAAAAAAAAAAAAlLmFBwAA + AACHrXU0lruH/7ndtv+/4r39vN+5/r3guv+94Lr/veC6/73guv+94Lr/veC6/73guv+837n/veC6/77h + u/+63bf/qMyg/5vBkP+awpD/mMGP/5fBj/+awpH/m8GQ/6jMn/+63rf/vuG7/73guv+837n/veC6/73g + uv+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r39ud22/5a7h/+HrXU0AAAAAJS5hQcAAAAAAAAAAAAA + AAAAAAAAlLmFBwAAAACHrXU0lruH/7ndtv+/4r39vN+5/r3guv+94Lr/veC6/73guv+94Lr/vN+5/7zf + uf+837n/veC5/7rdtv+kyJr/krmF/5G7h/+ZxJL/n8qa/57Kmv+ZxJL/kbqG/5K5hf+kyZr/ut23/7zg + uf+84Ln/vN+5/7zfuf+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r39ud22/5a7h/+HrXU0AAAAAJS5 + hQcAAAAAAAAAAAAAAAAAAAAAk7iEBwAAAACHrXU0lruH/7nctf+/4r39u9+4/rzfuf+837n/vN+5/7zf + uf+837n/vN+5/7zfuP++4bv/vN+5/6XJm/+QuIL/mMOR/6POoP+eyZn/nciY/57ImP+eyZn/o86g/5jD + kf+QuIP/psmd/7zfuf++4bv/vN+4/7zfuf+837n/vN+5/7zfuf+837n/vN+5/7vfuP6/4r39udy1/5a7 + h/+HrXU0AAAAAJO4hAcAAAAAAAAAAAAAAAAAAAAAlLmFBwAAAACIrXU0lruI/7rdtv/A4779vN+5/r3g + uv+94Lr/veC6/73guv+94Lr/veC6/73guv/A4r7/uNu0/4+1gP+Yw5H/oMyd/53Hl/+dyJj/nciY/53I + mP+dyJj/nceX/6DMnf+Yw5H/j7WA/7nbtf/A4r7/vOC5/73guv+94Lr/veC6/73guv+94Lr/veC6/7zf + uf7A4779ut22/5a7iP+IrXU0AAAAAJS5hQcAAAAAAAAAAAAAAAAAAAAAlLmGBwAAAACIrnY0l7yJ/7ve + uP/B5MD9veG7/r7hvP++4bz/vuG8/77hvP++4bz/vuG7/8Djvv+837n/qc6h/5S9iv+axZT/n8qb/53I + mP+eyZn/nsmZ/57Jmf+eyZn/nciY/5/Km/+axZT/lLyJ/6rOof+837n/wOO+/77hu/++4bz/vuG8/77h + vP++4bz/vuG8/77hu/7B5MD9u964/5e8if+IrnY0AAAAAJS5hgcAAAAAAAAAAAAAAAAAAAAAh6tyBwAA + AACApGk1iKx0/53BkP+hxZX9n8OT/6DElP+gxJT/oMSU/6DElP+gxJT/n8OT/6LGl/+avo3/i7F7/5nE + kv+eyZn/nciY/53ImP+dyJj/nsmZ/57Jmf+dyJj/nciY/53ImP+eyZn/mcOS/4uxev+avo3/osaX/5/D + k/+gxJT/oMSU/6DElP+gxJT/oMSU/5/Dk/+gxJX9ncGQ/4isdP+ApGk1AAAAAIercwcAAAAAAAAAAAAA + AAAAAAAAia12BgAAAAB9oWYtjK957qrOov+iyZr+mMCO/pjBj/6YwY//mMGP/5jBj/+YwY//mMGP/5nC + kP+Wv4z/kruI/5zHl/+eyZn/nciY/53ImP+eyZn/nsmZ/57Jmf+eyZn/nciY/53ImP+eyZr/nMiX/5K7 + h/+Wv4z/mcKQ/5jBj/+YwY//mMGP/5jBj/+YwY//mMGP/pjBjv6jypr+qs6i/4yvee59oWUtAAAAAImt + dQYAAAAAAAAAAAAAAAAAAAAAjbJ8BQAAAAB1mlwhkraCwr/ivf613LT/os2e/Z7Kmv+gy5z/n8ub/5/L + m/+fy5v/n8ub/5/Lm/+gy5z/ocye/57Jmf+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+dyJj/nsmZ/6HMnv+gy5z/n8ub/5/Lm/+fy5v/n8ub/5/Lm/+gy5z/nsqa/6LNnv223LT/v+K9/pK2 + gcJ1mlwhAAAAAI6yfAUAAAAAAAAAAAAAAAAAAAAAgadsAwAAAABTfC8Phqxzfq7Sp/W427T/p8+i/JrG + lf6eyZn/nciY/53ImP+dyJj/nciY/53ImP+dyJj/nciY/53ImP+eyZn/nciY/57JmP+eyZn/nsmZ/57J + mf+eyZn/nsmY/53ImP+eyZn/nciY/53Il/+dyJj/nciY/53ImP+dyJj/nciY/53ImP+eyZn/msaV/qfP + ovy427P/rtGm9YetdH1UfDIPAAAAAIKobQMAAAAAAAAAAAAAAAAAAAAAAAAAANT33wEAAAAAfKFlIpe7 + itm32bH/r9ar/ZvGlf6eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/m8aV/q/Wq/232bH/lruH2XimZiEAAAAA1efOAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIyw + ewMAAAAAdZpeComtd7S016/9tty0/6HLnP2dyJj+nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+dyJj+ocuc/bfdtP+01679ia11tXWaWwoAAAAAjLB5AwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAIOpcAIAAAAAWYE6BX6kaXyv0afuut23/6nRpfubx5b/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+bx5b/qdGk+7rdtv+u0abugKRqeluAOwUAAAAAhalxAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHebWySbv47GtNau/7LYsPubx5b+nsmZ/p7I + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciZ/57Jmf6bx5b+stiv+7PWrf+bv43FeppfIwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMs3wBAAAAAAAAAACDq3GgrNGl/7vg + uf6gypv9nsmZ/53ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciY/57Jmf+gypv9u+C5/q3Q + pf+FqXCfAAAAAAAAAACOsnwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIq3IBAAAAAAAA + AAB7oWR0qM2f6Lzguf+q0aX8nciX/53ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciY/53I + l/+q0qX8u+C5/6nNoOd8oGZzAAAAAAAAAACIqnMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABojlAoncGRuLPWrf+02rH6nMeX/pzIl/6dyJj+nciY/p3ImP6dyJj+nciY/p3I + mP6dyJj+nciY/p3ImP6dyJj+nciY/p3ImP6dyJj+nciY/p3ImP6dyJj+nciY/p3ImP6dyJj+nciY/p3I + mP6dyJj+nMiX/pzHl/602rH6s9at/53BkbhpjEsnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJm6iAIAAAAAh6x0f6bJm/+74Lr8oMqc/pvHlv6bx5b+nMeW/pzH + lv6cx5b+nMeW/pzHlv6cx5b+nMeW/pzHlv6cx5b+nMeW/pzHlv6cx5b+nMeW/pzHlv6cx5b+nMeW/pzH + lv6cx5b+nMeW/pzHlv6bx5b+m8eW/qDLnP674Lr8psmb/4esdH8AAAAAmbqIAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIisdQIAAAAAd5xfZaHElebF6MX8u9+5+brf + uPq637j6ut+4+rrfuPq637j6ut+4+rrfuPq637j6ut+4+rrfuPq637j6ut+4+rrfuPq637j6ut+4+rrf + uPq637j6ut+4+rrfuPq637j6ut+4+rrfuPq637j6ut+4+rvgufnF6MX8ocSV5necXmQAAAAAiKx0AgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH+obAEAAAAAapRRJpG3 + gamixpb/qMuf/KnMn/6py5//qcuf/6nLn/+py5//qcuf/6nLn/+py5//qcuf/6nLn/+py5//qcuf/6nL + n/+py5//qcuf/6nLn/+py5//qcuf/6nLn/+py5//qcuf/6nLn/+py5//qcyf/qjLn/yixpb/kbaBqGuS + UCUAAAAAgKdsAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACet4sCAAAAAH2lZ0KGq3KVjrN+ho6yfYiNsn2IjrJ9iI6yfYiOsn2IjrJ9iI6yfYiOsn2IjrJ9iI6y + fYiOsn2IjrJ9iI6yfYiOsn2IjrJ9iI6yfYiOsn2IjrJ9iI6yfYiOsn2IjrJ9iI6yfYiNsn2IjrJ9iI6z + foaGq3KVfqRoQgAAAACWuoQCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIatcgGQtX8DmLyKA5i8igOXu4kDmLyKA5i8 + igOYvIoDmLyKA5i8igOYvIoDmLyKA5i8igOYvIoDmLyKA5i8igOYvIoDmLyKA5i8igOYvIoDmLyKA5i8 + igOYvIoDmLyKA5i8igOXu4kDmLyKA5i8igOQtX8DhqxzAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///////wAA////////AAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgA + AAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAf + AAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgA + AAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAf + AAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA/AAAAAA/AAD8AAAAAD8AAPwA + AAAAPwAA/gAAAAB/AAD+AAAAAH8AAP4AAAAAfwAA/wAAAAD/AAD/AAAAAP8AAP+AAAAB/wAA/4AAAAH/ + AAD/gAAAAf8AAP/AAAAD/wAA////////AAD///////8AACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/pGgBAAAAAHugZE6DqG1jhKpvW4Spbl2EqW5dhKluXYSp + bl2EqW5dhKluXYSpbl2EqW5dhKluXYSpbl2EqW5dhKluXYSpbl2EqW5dhKluXYSpbl2EqW5dhKluXYSp + bl2EqW5dhKpvW4OobWN7oGROAAAAAH+kaAEAAAAAAAAAAJq+jQQAAAAAjbF7vqjLnv+s0KP7qs6h/qvO + ov+rzqL/q86i/6vOov+rzqL/q86i/6vOov+qzqL/qs6i/6vOov+rzqL/q86i/6vOov+rzqL/q86i/6vO + ov+rzqL/q86i/6rOof6s0KP7qMue/42xe74AAAAAmr6NBAAAAAAAAAAArM+jBAAAAACZvYqtveC6/8Ll + wfjA4777weO//MDjv/vA47/7weO/+8Djv/vB47/7wOO++8Hjv/vA4777weO/+8Hjv/vB47/7wOO/+8Dj + v/vA47/7wOO/+8Djv/vB47/8wOO++8Llwfi94Lr/mb2KrQAAAACsz6MEAAAAAAAAAACny54EAAAAAJa6 + hrK427P/veC6+7ret/673rj+u964/rveuP673rf+u964/rrdt/6937r+u9+4/r3guv673rj+u963/rve + t/673rj+u964/rveuP673rj+u964/rveuP663rf+veC6+7jbs/+WuoayAAAAAKfLngQAAAAAAAAAAKjM + nwQAAAAAlrqHsbnctf++4bz7vN+5/r3guv+94Lr+veC6/7zfuf+73rj/vuG8/7ndtv+oyp7/rdCl/77i + vP+837r/vN+5/7zfuv+94Lr/veC6/73guv+94Lr+veC6/7zfuf6+4bz7udy1/5a6h7EAAAAAqMyfBAAA + AAAAAAAAqMyfBAAAAACWuoexudy0/77hu/u837n+veC6/7zfuf6837n+u964/r/hvP643bX+qsqg/tXf + zf7C1Lj+q8+j/r/ivf6837n+vN+5/r3guv6837n+vN+5/rzfuf694Lr/vN+5/r7hu/u53LT/lrqHsQAA + AACozJ8EAAAAAAAAAACozJ8EAAAAAJa6h7G53LT/vuG8+7zfuf694Lr/vN+5/rveuP+/4bz/uNy1/6vL + of/b5dX///////n6+f/C1bn/q8+j/7/ivf+837n/vN+5/73guv+94Lr/vN+5/r3guv+837n+vuG8+7nc + tP+WuoexAAAAAKjMnwQAAAAAAAAAAKjMnwQAAAAAlrqHsbnctP++4bz7vN+5/r3guv+837j+vuG8/7jc + tf+qyaD/3+nb///////n7eP/9ff0//3+/f/F17v/q86h/7/jvf+837n/vN+5/7zfuf+94Lr+veC6/7zf + uf6+4bz7udy0/5a6h7EAAAAAqMyfBAAAAAAAAAAAqMyfBAAAAACWuoexudy0/77hu/u837n+vN+5/73f + uv663rf/q8uh/+Ho2///////4ure/6TEmf+50K//9/j1//39/f/G1r3/q86j/7/ivf+837r/vN+4/7zf + uf694Lr/vN+5/r7hvPu53LT/lrqHsQAAAACozJ8EAAAAAAAAAACozJ8EAAAAAJa6h7G53LT/vuG7+7zf + uf6837n/vd+6/rret/+qyaD/5uzh/+ju5P+ryaD/u9+5/7DUqv+5z6//+Pn3//39/P/D1rr/q8+j/77i + vP+837n/vN+5/r3guv+837n+vuG8+7nctP+WuoexAAAAAKjMnwQAAAAAAAAAAKjMnwQAAAAAlrqHsbnc + tP++4bz7vN+5/r3guv+837j+vuG7/7jdtf+tzKT/rsyl/7ndtf++4Lv/v+K9/6/TqP+70bH/9ffz//3+ + /f/H177/rM+k/7/ivP+83rj+veC6/7zfuf6+4bz7udy0/5a6h7EAAAAAqMyfBAAAAAAAAAAAqMyfBAAA + AACWuoexudy0/77hu/u837n+veC6/7zfuf673rj/vuG7/7ndtv+53bb/vuG7/7veuP+837n/wOO+/67T + qP+40K7/9vn1///////A0rb/q9Ck/8Djvv673rj/vN+5/r7hu/u53LT/lrqHsQAAAACozJ8EAAAAAAAA + AACpzJ8EAAAAAJe6h6+53LX/vuG8+7zfuf694Lr/vN+5/rzfuf+837j/veC6/73gu/+837j/vN+5/7zf + uf+83rj/wOO+/63Spv+90rP/3+fY/7jRr/+z167/vuG8/rvfuP+837n+vuG8+7nctf+XuoevAAAAAKnM + nwQAAAAAAAAAAKfKngQAAAAAlLiFu7jbtP++4bv6vN+5/r3guv+94Lr+vN+5/7zguv+837n/vN+5/73f + uv+837n/vN+4/7veuP+73rj/wOO+/7LUq/+oyJz/tdiw/7/ivf+73rj+veC6/7zfuf6+4bv6uNu0/5S4 + hbsAAAAAp8qeBAAAAAAAAAAApsudBAAAAAGUuYbBuNu0/77hu/q837n/veC6/rzfuf694Lr/veC5/73g + uv+84Lr/u964/7zfuf++4bz/vuG8/7zfuf+73rj/vuG8/7vfuf++4bv/u964/7zfuf694Lr+vN+5/77h + u/q427T/lLmGwQAAAAGmy50EAAAAAAAAAACny50EAAAAAJW7h8G43LT/vuG8+rzfuf+94Lr+vN+5/rzf + uf+837n/vN+5/7veuP+/4rz/vuC7/7XYsP+12LD/veC7/7/ivf+73rj/vd+6/7zfuf+837n/veC6/r3g + uv6837n/vuG8+rjctP+Vu4fBAAAAAKfLnQQAAAAAAAAAAKfLnQQAAAAAlbqGwbjctP++4bz6vN+5/73g + uv694Lr+veC6/7zfuf+837n/vuG7/7LWrf+ix5j/mcGP/5nBkP+ix5j/stas/77hu/+837n/vN+5/7zf + uf+94Lr+veC6/rzfuf++4bz6uNy0/5W6hsEAAAAAp8udBAAAAAAAAAAAp8ucBAAAAACVuobBt9uz/73g + u/q73rj/vN+4/rzfuP673rj/u963/73guv+u0qf/k7uH/5XAjv+dyJj/nciY/5XAjf+Tu4f/r9Ko/73g + uv+73rf/u964/7zfuP6837j+u964/73gu/q327P/lbqGwQAAAACny5wEAAAAAAAAAACozKAEAAAAAJa7 + iMG73rf/wOO/+r7hu/++4bz/vuG8/r7hu//A477/vN64/5O6h/+axpX/oMuc/53Hl/+dx5f/oMuc/5rG + lf+Uuof/vN65/8Djvv++4bv/vuG8/r7hvP++4bv/wOO/+rvet/+Wu4jBAAAAAKjMnwQAAAAAAAAAAKDE + lAQAAAABkbWBwa/SqP+22bH6tNeu/7TXr/6016//tNeu/7bZsf+jx5n/lb+N/57Jmv+cx5f/nciY/53I + mP+cx5f/nsma/5W/jP+jx5n/ttmx/7TXrv+016//tNev/rTXrv+22bH6r9Ko/5G2gcEAAAABn8SVBAAA + AAAAAAAAl7uIBAAAAACKrXe5ocaX/5rBkPqYv43+mMCO/5jAjf6YwI7/mMCO/5C4hP+bxpb/nciY/53I + mP+dyJj/nciY/53ImP+dyJj/m8eW/5C4g/+YwI7/mMCO/5jAjf6YwI7/mL+N/prCkPqhxpf/iq13uQAA + AACXu4kEAAAAAAAAAACny58DAAAAAJC0f4i43LX/qNGl+5zIl/6eypr/ncmZ/p3Jmf+eyZn/n8qc/53I + mP+dyJj/nsmY/57Jmf+eyZn/nsmY/53ImP+dyJj/n8qb/57Jmf+dyZn/ncmZ/p7Kmv+cyJf+qNGl+7nc + tf+QtH6HAAAAAKjMngMAAAAAAAAAAJa7iQEAAAAAdZxeLKfKneix163/m8aV/Z7Imf+dyJj+nciY/53I + mP+dyJj/nciY/53ImP+dyJj/nsmZ/57Jmf+dyJj/nciY/53ImP+dyJj/nciY/53ImP+dyJj+nsiZ/5vG + lf2x163/psmb6HSeXiwAAAAAlryIAQAAAAAAAAAAAAAAAAAAAAAAAAADmLuKvbjctf+hy5z7nMiX/p7J + mf+eyZn+nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/p7J + mf+cyJf+ocuc+7jctf+Yu4m9AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAu924AgAAAACNsntlsdOq/arS + p/yaxpX9nsmZ/p3ImP6dyJj+nciY/p3ImP6dyJj+nciY/p3ImP6dyJj+nciY/p3ImP6dyJj+nciY/p3I + mP6dyJj+nsmZ/prGlf2q0qb8sNOp/I6yfGQAAAAAt9yzAgAAAAAAAAAAAAAAAAAAAACBqG0CAAAAAGWP + Syiix5jntduz/5zHl/yeyJn/nsmZ/p7Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf6eyJn/nMeX/LXbs/+jxpjnZ4xKKAAAAACDp20CAAAAAAAAAAAAAAAAAAAAAHSZ + WwEAAAAABC4AB5q/jZ+12bD/oMqb+5jEk/6bxpX+msaV/prGlf6axpX+msaV/prGlf6axpX+msaV/prG + lf6axpX+msaV/prGlf6axpX+m8aV/pjEk/6gy5v7tdmw/5u/jp4CJgAHAAAAAHSYWwEAAAAAAAAAAAAA + AAAAAAAAAAAAAIqudwIAAAAAfqNoWK7Rpv+027T6pM6g+6fRo/un0KP7p9Cj+6fQo/un0KP7p9Cj+6fQ + o/un0KP7p9Cj+6fQo/un0KP7p9Cj+6fQo/un0KP7pM6g+7TctPqu0ab/fqNoWAAAAACKrncCAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAeaBjAQAAAABnj0wmncGQz6/SqP+v0qf9r9Gn/6/Rp/+v0af/r9Gn/6/R + p/+v0af/r9Gn/6/Rp/+v0af/r9Gn/6/Rp/+v0af/r9Gn/6/Rp/+v0qf9r9Ko/53BkM9njUolAAAAAHqf + YgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8o2Y+iK12Zoywe12Lr3pfjK96X4yv + el+Mr3pfjK96X4yvel+Mr3pfjK96X4yvel+Mr3pfjK96X4yvel+Mr3pfi696X4ywe12IrXZmfaNmPgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///////////gAAAH4AAAB+AAAAfgAAAH4AAAB+AA + AAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AA + AAfwAAAP8AAAD/gAAB/4AAAf+AAAH/wAAD/8AAA///////////8oAAAAEAAAACAAAAABACAAAAAAAAAE + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAH2iZxiGq3E8iK1zNoesczeHrHM3h6xyN4arcTeHrHM3h6xzN4es + czeHrHM3iK1zNoarcTx9omcYAAAAAAAAAACUuIRer9Oo/7TXrvaz1q35s9at+bTXrvm12LD5s9at+bPW + rfmz1q35s9at+bTXrvav06j/lLiEXgAAAAAAAAAAm7+NXbrdtv+/4r77vuG7/r/ivf+737j/stas/73h + u/+/4b3/vuG8/77hvP6/4r77ut22/5u/jV0AAAAAAAAAAJm9i12427P/veC6+73guv623LP+wNq5/ubs + 4f631rH+ud63/r3guv6837n+veC7+7jbs/+ZvYtdAAAAAAAAAACZvYtduNu0/77hvPu43bX+wdq7/u3x + 6f7a5tX+6/Dn/rjWsf653rb+veC6/r3gu/u427T/mb2LXQAAAAAAAAAAmb2LXbjbtP++4bz7uN21/sLa + vP7F3L//rdSn/87gyf/t8er/vNm3/rret/6+4bv7uNu0/5m9i10AAAAAAAAAAJm9i12427T/veC7+73g + uv653bX+uN21/7/ivf+y2K3/z+HJ/9PgzP6z2K/+v+K9+7jbs/+ZvYtdAAAAAAAAAACXvIpjt9uz/77h + u/u837n/veC6/r7gu/++4bv/wOO+/7fbs/+117D+veC6/77hu/u327P/l7yKYwAAAAAAAAAAmL2KZbfa + s/+94Lv7u9+4/73guv663bb/qs+k/6rPo/+73rj/vuG7/rveuP+94Lv7t9qz/5i9imUAAAAAAAAAAJi9 + i2W53LX/wOK++7/hvP+937n+nsWV/5nEk/+ZxJL/nsWV/73fuf6/4bz/wOK++7nctf+YvYtlAAAAAAAA + AACTtoJlp8yf/6fNoPupzqH/oceY/pnEk/+fypr/n8qa/5nEk/+hx5j+qM6h/6fNoPuozJ//k7aCZQAA + AAAAAAAAkbN/NKjOovubx5b/msaV/pvHlv6eyJn+nciY/p3ImP6eyZn+m8eW/prGlf6bx5b/qM6i+5G0 + fjQAAAAAAAAAAAAAAACpzaHBpM2g/53ImPyeyZn+nsmZ/p7Jmf6eyZn+nsmZ/p7Jmf6dyJj8pM2f/6nN + oMEAAAAAAAAAAKvPowMAAAAAn8OTcKnRpf+bx5b8ncmY/p3ImP+dyJj/nciY/53ImP+dyJj+m8eW/KnR + pf+gwpNvAAAAAKvPowOMsXsBAAAAAIKlayKozaDrqc+j/ajOofmozqH6qM6h+qjOofqozqH6qM6h+anP + o/2ozaDqgqVrIgAAAACNsXsBAAAAAAAAAAAAAAAAiq93LZq7ijuauok4mrqJOZq6iTmauok5mrqJOZq6 + iTiau4o7iq53LQAAAAAAAAAAAAAAAP//AADAAwAAwAMAAMADAADAAwAAwAMAAMADAADAAwAAwAMAAMAD + AADAAwAAwAMAAMADAADgBwAA4AcAAP//AAA= + + + \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fDataBufferSIDRef.Designer.cs b/Handler/Project_form2/Dialog/fDataBufferSIDRef.Designer.cs new file mode 100644 index 0000000..f39ed99 --- /dev/null +++ b/Handler/Project_form2/Dialog/fDataBufferSIDRef.Designer.cs @@ -0,0 +1,89 @@ +namespace Project.Dialog +{ + partial class fDataBufferSIDRef + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.lvSID = new System.Windows.Forms.ListView(); + this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.SuspendLayout(); + // + // lvSID + // + this.lvSID.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader1, + this.columnHeader2, + this.columnHeader3}); + this.lvSID.Dock = System.Windows.Forms.DockStyle.Fill; + this.lvSID.FullRowSelect = true; + this.lvSID.GridLines = true; + this.lvSID.Location = new System.Drawing.Point(0, 0); + this.lvSID.Name = "lvSID"; + this.lvSID.Size = new System.Drawing.Size(335, 457); + this.lvSID.TabIndex = 2; + this.lvSID.UseCompatibleStateImageBehavior = false; + this.lvSID.View = System.Windows.Forms.View.Details; + // + // columnHeader1 + // + this.columnHeader1.Text = "SID"; + this.columnHeader1.Width = 200; + // + // columnHeader2 + // + this.columnHeader2.Text = "KPC"; + this.columnHeader2.Width = 50; + // + // columnHeader3 + // + this.columnHeader3.Text = "Unit"; + // + // fDataBufferSID + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(335, 457); + this.Controls.Add(this.lvSID); + this.Name = "fDataBufferSID"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "SID Reference Buffer"; + this.TopMost = true; + this.Load += new System.EventHandler(this.fDataBuffer_Load); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.ListView lvSID; + private System.Windows.Forms.ColumnHeader columnHeader1; + private System.Windows.Forms.ColumnHeader columnHeader2; + private System.Windows.Forms.ColumnHeader columnHeader3; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fDataBufferSIDRef.cs b/Handler/Project_form2/Dialog/fDataBufferSIDRef.cs new file mode 100644 index 0000000..22f3c59 --- /dev/null +++ b/Handler/Project_form2/Dialog/fDataBufferSIDRef.cs @@ -0,0 +1,91 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fDataBufferSIDRef : Form + { + Boolean useMonitor = false; + public fDataBufferSIDRef() + { + InitializeComponent(); + this.lvSID.Items.Clear(); + var list = Pub.Result.SIDReference.Items; + foreach (var item in list) + { + var lv = this.lvSID.Items.Add(item.sid, string.Format("[{0}] {1}", lvSID.Items.Count + 1, item.sid), 0); //sid + lv.SubItems.Add(item.kpc.ToString()); //count + lv.SubItems.Add(item.unit); + } + Pub.Result.SIDReference.PropertyChanged += sidreflist_PropertyChanged; + useMonitor = true; + } + + public fDataBufferSIDRef(List items) + { + InitializeComponent(); + this.lvSID.Items.Clear(); + foreach (var item in items) + { + var lv = this.lvSID.Items.Add(item.sid, string.Format("[{0}] {1}", lvSID.Items.Count + 1, item.sid), 0); //sid + lv.SubItems.Add(item.kpc.ToString()); //count + lv.SubItems.Add(item.unit); + } + } + void fDataBufferSID_FormClosed(object sender, FormClosedEventArgs e) + { + if (useMonitor) + Pub.Result.SIDReference.PropertyChanged -= sidreflist_PropertyChanged; + } + + private void fDataBuffer_Load(object sender, EventArgs e) + { + this.FormClosed += fDataBufferSID_FormClosed; + + } + + void sidreflist_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + if (this.InvokeRequired) + { + var p = new PropertyChangedEventArgs(e.PropertyName); + this.BeginInvoke(new PropertyChangedEventHandler(sidreflist_PropertyChanged), new object[] { sender, p }); + return; + } + var pname = e.PropertyName.Split(':'); + if (pname[0].ToLower() == "add") + { + var sid = pname[1]; + var item = Pub.Result.SIDReference.Get(pname[1]); + var lv = this.lvSID.Items.Add(sid, string.Format("[{0}] {1}", lvSID.Items.Count + 1, sid), 0); + lv.SubItems.Add(item.kpc.ToString()); + lv.SubItems.Add(item.unit);// + lv.EnsureVisible(); + } + else if (pname[0].ToLower() == "clear") + { + this.lvSID.Items.Clear(); + } + else if (pname[0].ToLower() == "set") + { + var sid = pname[1]; + var cnt = Pub.Result.SIDReference.Get(sid); + var items = this.lvSID.Items.Find(sid, false); + if (items != null && items.Length > 0) + { + foreach (var item in items) + { + item.SubItems[1].Text = cnt.ToString(); + } + } + } + } + + } +} diff --git a/Handler/Project_form2/Dialog/fDataBufferSIDRef.resx b/Handler/Project_form2/Dialog/fDataBufferSIDRef.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/Project_form2/Dialog/fDataBufferSIDRef.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fDebug.Designer.cs b/Handler/Project_form2/Dialog/fDebug.Designer.cs new file mode 100644 index 0000000..cc0c067 --- /dev/null +++ b/Handler/Project_form2/Dialog/fDebug.Designer.cs @@ -0,0 +1,299 @@ +namespace Project.Dialog +{ + partial class fDebug + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.timer1 = new System.Windows.Forms.Timer(this.components); + this.tbBcd = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.button1 = new System.Windows.Forms.Button(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.textBox2 = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.button2 = new System.Windows.Forms.Button(); + this.button3 = new System.Windows.Forms.Button(); + 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.button4 = new System.Windows.Forms.Button(); + this.button5 = new System.Windows.Forms.Button(); + this.button6 = new System.Windows.Forms.Button(); + this.button7 = new System.Windows.Forms.Button(); + this.button8 = new System.Windows.Forms.Button(); + this.button9 = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // timer1 + // + this.timer1.Interval = 150; + this.timer1.Tick += new System.EventHandler(this.timer1_Tick); + // + // tbBcd + // + this.tbBcd.Location = new System.Drawing.Point(12, 381); + this.tbBcd.Name = "tbBcd"; + this.tbBcd.Size = new System.Drawing.Size(335, 21); + this.tbBcd.TabIndex = 44; + this.tbBcd.Text = "101409576;FF8N03FA2;MURATA;10000;8N09AFQPF;20181109;"; + this.tbBcd.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(10, 360); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(97, 12); + this.label2.TabIndex = 45; + this.label2.Text = "Manual barcode"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // button1 + // + this.button1.Location = new System.Drawing.Point(12, 408); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(335, 24); + this.button1.TabIndex = 46; + this.button1.Text = "send"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // textBox1 + // + this.textBox1.Location = new System.Drawing.Point(14, 29); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(335, 21); + this.textBox1.TabIndex = 47; + this.textBox1.Text = "101409930;L99294875498;KYOCERA;30000;037920827134011M001;2020-08-27;ABCDEFGHIJ123" + + "4567890ABCDEFGHIJ"; + this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // textBox2 + // + this.textBox2.Location = new System.Drawing.Point(12, 81); + this.textBox2.Name = "textBox2"; + this.textBox2.Size = new System.Drawing.Size(335, 21); + this.textBox2.TabIndex = 47; + this.textBox2.Text = "101409930;L99294875498;KYOCERA;30000;037920827134011M001;2020-08-27;ABCDEFGHIJ123" + + "4567890ABCDEFGHIJ"; + this.textBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(10, 14); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(93, 12); + this.label1.TabIndex = 45; + this.label1.Text = "Print Command"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(10, 66); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(93, 12); + this.label3.TabIndex = 45; + this.label3.Text = "Print Command"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // button2 + // + this.button2.Location = new System.Drawing.Point(252, 2); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(95, 24); + this.button2.TabIndex = 48; + this.button2.Text = "Print"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // button3 + // + this.button3.Location = new System.Drawing.Point(252, 54); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(95, 24); + this.button3.TabIndex = 48; + this.button3.Text = "Print"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click); + // + // textBox3 + // + this.textBox3.Location = new System.Drawing.Point(12, 135); + this.textBox3.Name = "textBox3"; + this.textBox3.Size = new System.Drawing.Size(151, 21); + this.textBox3.TabIndex = 50; + this.textBox3.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(10, 120); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(41, 12); + this.label4.TabIndex = 49; + this.label4.Text = "manu\'"; + this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // textBox4 + // + this.textBox4.Location = new System.Drawing.Point(12, 178); + this.textBox4.Name = "textBox4"; + this.textBox4.Size = new System.Drawing.Size(151, 21); + this.textBox4.TabIndex = 52; + this.textBox4.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(10, 163); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(26, 12); + this.label5.TabIndex = 51; + this.label5.Text = "mfg"; + this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // button4 + // + this.button4.Location = new System.Drawing.Point(169, 135); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(49, 24); + this.button4.TabIndex = 53; + this.button4.Text = "n/a"; + this.button4.UseVisualStyleBackColor = true; + this.button4.Click += new System.EventHandler(this.button4_Click); + // + // button5 + // + this.button5.Location = new System.Drawing.Point(169, 178); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(49, 24); + this.button5.TabIndex = 53; + this.button5.Text = "n/a"; + this.button5.UseVisualStyleBackColor = true; + this.button5.Click += new System.EventHandler(this.button5_Click); + // + // button6 + // + this.button6.Location = new System.Drawing.Point(12, 205); + this.button6.Name = "button6"; + this.button6.Size = new System.Drawing.Size(95, 24); + this.button6.TabIndex = 54; + this.button6.Text = "print L"; + this.button6.UseVisualStyleBackColor = true; + this.button6.Click += new System.EventHandler(this.button6_Click); + // + // button7 + // + this.button7.Location = new System.Drawing.Point(123, 205); + this.button7.Name = "button7"; + this.button7.Size = new System.Drawing.Size(95, 24); + this.button7.TabIndex = 55; + this.button7.Text = "print R"; + this.button7.UseVisualStyleBackColor = true; + this.button7.Click += new System.EventHandler(this.button7_Click); + // + // button8 + // + this.button8.Location = new System.Drawing.Point(224, 178); + this.button8.Name = "button8"; + this.button8.Size = new System.Drawing.Size(49, 24); + this.button8.TabIndex = 56; + this.button8.Text = "clr"; + this.button8.UseVisualStyleBackColor = true; + this.button8.Click += new System.EventHandler(this.button8_Click); + // + // button9 + // + this.button9.Location = new System.Drawing.Point(224, 135); + this.button9.Name = "button9"; + this.button9.Size = new System.Drawing.Size(49, 24); + this.button9.TabIndex = 57; + this.button9.Text = "clr"; + this.button9.UseVisualStyleBackColor = true; + this.button9.Click += new System.EventHandler(this.button9_Click); + // + // fDebug + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(351, 444); + this.Controls.Add(this.button8); + this.Controls.Add(this.button9); + this.Controls.Add(this.button6); + this.Controls.Add(this.button7); + this.Controls.Add(this.button5); + this.Controls.Add(this.button4); + this.Controls.Add(this.textBox4); + this.Controls.Add(this.label5); + this.Controls.Add(this.textBox3); + this.Controls.Add(this.label4); + this.Controls.Add(this.button3); + this.Controls.Add(this.button2); + this.Controls.Add(this.textBox2); + this.Controls.Add(this.textBox1); + this.Controls.Add(this.button1); + this.Controls.Add(this.label3); + this.Controls.Add(this.label1); + this.Controls.Add(this.label2); + this.Controls.Add(this.tbBcd); + this.Name = "fDebug"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "fDebug"; + this.Load += new System.EventHandler(this.fDebug_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private System.Windows.Forms.Timer timer1; + private System.Windows.Forms.TextBox tbBcd; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.TextBox textBox2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.TextBox textBox3; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox textBox4; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.Button button5; + private System.Windows.Forms.Button button6; + private System.Windows.Forms.Button button7; + private System.Windows.Forms.Button button8; + private System.Windows.Forms.Button button9; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fDebug.cs b/Handler/Project_form2/Dialog/fDebug.cs new file mode 100644 index 0000000..6142bf2 --- /dev/null +++ b/Handler/Project_form2/Dialog/fDebug.cs @@ -0,0 +1,114 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fDebug : Form + { + public fDebug() + { + InitializeComponent(); + this.FormClosed += fDebug_FormClosed; + this.tbBcd.KeyDown += tbBcd_KeyDown; + } + + void tbBcd_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + { + // manualbcd(); + } + } + + void fDebug_FormClosed(object sender, FormClosedEventArgs e) + { + this.tbBcd.KeyDown -= tbBcd_KeyDown; + timer1.Stop(); + } + + private void fDebug_Load(object sender, EventArgs e) + { + timer1.Enabled = true; + } + + private void timer1_Tick(object sender, EventArgs e) + { + + } + + private void lb4_Click(object sender, EventArgs e) + { + + } + + private void button1_Click(object sender, EventArgs e) + { + //manualbcd(); + } + + private void button2_Click(object sender, EventArgs e) + { + var reel = new StdLabelPrint.Reel(textBox1.Text); + Pub.PrinterL.Print(reel,true, Pub.setting.DrawOutbox,Pub.setting.STDLabelFormat7); + Pub.log.Add("임시프린트L:"+ textBox1.Text); + } + + private void button3_Click(object sender, EventArgs e) + { + var reel = new StdLabelPrint.Reel(textBox2.Text); + Pub.PrinterR.Print(reel,true, Pub.setting.DrawOutbox, Pub.setting.STDLabelFormat7); + Pub.log.Add("임시프린트R:" + textBox2.Text); + } + + private void button4_Click(object sender, EventArgs e) + { + textBox3.Text = "N/A"; + } + + private void button5_Click(object sender, EventArgs e) + { + textBox4.Text = "N/A"; + } + + private void button9_Click(object sender, EventArgs e) + { + textBox3.Text = string.Empty; + } + + private void button8_Click(object sender, EventArgs e) + { + textBox4.Text = string.Empty; + } + + private void button6_Click(object sender, EventArgs e) + { + Pub.PrinterL.TestPrint(false, textBox3.Text, textBox4.Text, Pub.setting.STDLabelFormat7); + } + + private void button7_Click(object sender, EventArgs e) + { + Pub.PrinterR.TestPrint(false, textBox3.Text, textBox4.Text, Pub.setting.STDLabelFormat7); + } + //void manualbcd() + //{ + // if (tbBcd.Text.isEmpty()) + // { + // tbBcd.Focus(); + // return; + // } + // else + // { + // //Pub.manualbcd.RaiseRecvData(tbBcd.Text + "\n"); + // tbBcd.Focus(); + // tbBcd.SelectAll(); + // } + //} + } +} diff --git a/Handler/Project_form2/Dialog/fDebug.resx b/Handler/Project_form2/Dialog/fDebug.resx new file mode 100644 index 0000000..1f666f2 --- /dev/null +++ b/Handler/Project_form2/Dialog/fDebug.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fEmulator.Designer.cs b/Handler/Project_form2/Dialog/fEmulator.Designer.cs new file mode 100644 index 0000000..d55cc8b --- /dev/null +++ b/Handler/Project_form2/Dialog/fEmulator.Designer.cs @@ -0,0 +1,1228 @@ +namespace Project.Dialog +{ + partial class fEmulator + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + arDev.AzinAxt.ColorListItem colorListItem1 = new arDev.AzinAxt.ColorListItem(); + arDev.AzinAxt.ColorListItem colorListItem2 = new arDev.AzinAxt.ColorListItem(); + arDev.AzinAxt.ColorListItem colorListItem3 = new arDev.AzinAxt.ColorListItem(); + arDev.AzinAxt.ColorListItem colorListItem4 = new arDev.AzinAxt.ColorListItem(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fEmulator)); + this.statusStrip1 = new System.Windows.Forms.StatusStrip(); + this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel(); + this.timer1 = new System.Windows.Forms.Timer(this.components); + this.panel1 = new System.Windows.Forms.Panel(); + this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); + this.jog1 = new arDev.AzinAxt.JogController(); + this.jog2 = new arDev.AzinAxt.JogController(); + this.jog3 = new arDev.AzinAxt.JogController(); + this.jog4 = new arDev.AzinAxt.JogController(); + this.jog5 = new arDev.AzinAxt.JogController(); + this.jog6 = new arDev.AzinAxt.JogController(); + this.jog7 = new arDev.AzinAxt.JogController(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.panel2 = new System.Windows.Forms.Panel(); + this.tblDI = new arDev.AzinAxt.GridView(); + this.lbTitle1 = new System.Windows.Forms.Label(); + this.panel3 = new System.Windows.Forms.Panel(); + this.tblDO = new arDev.AzinAxt.GridView(); + this.lbtitle2 = new System.Windows.Forms.Label(); + this.toolStrip1 = new System.Windows.Forms.ToolStrip(); + this.toolStripButton1 = new System.Windows.Forms.ToolStripButton(); + this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripButton2 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton3 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton4 = new System.Windows.Forms.ToolStripButton(); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.tabPage2 = new System.Windows.Forms.TabPage(); + this.ctlContainer1 = new UIControl.CtlContainer(); + this.checkBox2 = new System.Windows.Forms.CheckBox(); + this.checkBox1 = new System.Windows.Forms.CheckBox(); + this.button2 = new System.Windows.Forms.Button(); + this.button4 = new System.Windows.Forms.Button(); + this.button3 = new System.Windows.Forms.Button(); + this.button1 = new System.Windows.Forms.Button(); + this.ctlTowerLamp1 = new UIControl.CtlTowerLamp(); + this.panel5 = new System.Windows.Forms.Panel(); + this.SRLimP = new UIControl.CtlSensor(); + this.SRLimN = new UIControl.CtlSensor(); + this.m1 = new UIControl.CtlMotor(); + this.SRDetU = new UIControl.CtlSensor(); + this.SLLimP = new UIControl.CtlSensor(); + this.SLDetU = new UIControl.CtlSensor(); + this.m2 = new UIControl.CtlMotor(); + this.SLLimN = new UIControl.CtlSensor(); + this.panel13 = new System.Windows.Forms.Panel(); + this.sf4 = new UIControl.CtlSensor(); + this.sf3 = new UIControl.CtlSensor(); + this.sf2 = new UIControl.CtlSensor(); + this.sf1 = new UIControl.CtlSensor(); + this.statusStrip1.SuspendLayout(); + this.panel1.SuspendLayout(); + this.flowLayoutPanel1.SuspendLayout(); + this.tableLayoutPanel1.SuspendLayout(); + this.panel2.SuspendLayout(); + this.panel3.SuspendLayout(); + this.toolStrip1.SuspendLayout(); + this.tabControl1.SuspendLayout(); + this.tabPage1.SuspendLayout(); + this.tabPage2.SuspendLayout(); + this.ctlContainer1.SuspendLayout(); + this.panel5.SuspendLayout(); + this.panel13.SuspendLayout(); + this.SuspendLayout(); + // + // statusStrip1 + // + this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripStatusLabel1}); + this.statusStrip1.Location = new System.Drawing.Point(0, 477); + this.statusStrip1.Name = "statusStrip1"; + this.statusStrip1.Size = new System.Drawing.Size(773, 22); + this.statusStrip1.TabIndex = 5; + this.statusStrip1.Text = "statusStrip1"; + // + // toolStripStatusLabel1 + // + this.toolStripStatusLabel1.Name = "toolStripStatusLabel1"; + this.toolStripStatusLabel1.Size = new System.Drawing.Size(121, 17); + this.toolStripStatusLabel1.Text = "toolStripStatusLabel1"; + // + // timer1 + // + this.timer1.Interval = 50; + this.timer1.Tick += new System.EventHandler(this.timer1_Tick); + // + // panel1 + // + this.panel1.BackColor = System.Drawing.SystemColors.Control; + this.panel1.Controls.Add(this.flowLayoutPanel1); + this.panel1.Dock = System.Windows.Forms.DockStyle.Right; + this.panel1.Location = new System.Drawing.Point(374, 25); + this.panel1.Name = "panel1"; + this.panel1.Padding = new System.Windows.Forms.Padding(5); + this.panel1.Size = new System.Drawing.Size(399, 452); + this.panel1.TabIndex = 7; + // + // flowLayoutPanel1 + // + this.flowLayoutPanel1.Controls.Add(this.jog1); + this.flowLayoutPanel1.Controls.Add(this.jog2); + this.flowLayoutPanel1.Controls.Add(this.jog3); + this.flowLayoutPanel1.Controls.Add(this.jog4); + this.flowLayoutPanel1.Controls.Add(this.jog5); + this.flowLayoutPanel1.Controls.Add(this.jog6); + this.flowLayoutPanel1.Controls.Add(this.jog7); + this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.flowLayoutPanel1.Location = new System.Drawing.Point(5, 5); + this.flowLayoutPanel1.Name = "flowLayoutPanel1"; + this.flowLayoutPanel1.Size = new System.Drawing.Size(389, 442); + this.flowLayoutPanel1.TabIndex = 9; + // + // jog1 + // + this.jog1.arAutoUpdate = false; + this.jog1.arAxis = 0; + this.jog1.arAxisName = null; + this.jog1.arBorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.jog1.arBottomSensorFont = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.jog1.arBottomSensorHeight = 40; + this.jog1.arBottomSensorListCount = new System.Drawing.Point(4, 2); + this.jog1.arBottomSensorTitle = new string[] { + "INP", + "ORG", + "LIM+", + "HOME", + "ALM", + "SVON", + "LIM-", + "STOP"}; + this.jog1.arCellBorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.jog1.ardAct = 500D; + this.jog1.ardCmd = 0D; + this.jog1.arDebugMode = false; + this.jog1.arIsAlm = false; + this.jog1.arIsHLSP = false; + this.jog1.arIsHSet = false; + this.jog1.arIsInit = false; + this.jog1.arIsInp = false; + this.jog1.arIsLimN = false; + this.jog1.arIsLimP = false; + this.jog1.arIsOrg = false; + this.jog1.arIsSvON = true; + this.jog1.arMaxLength = 1200; + this.jog1.arMinLength = -100; + this.jog1.arShowJogButton = true; + this.jog1.arShowPositionBar = true; + this.jog1.arShowSensor = true; + this.jog1.arShowTitleBar = true; + this.jog1.arTitlebarHeight = ((ushort)(20)); + this.jog1.arUpdateInterval = ((ushort)(100)); + this.jog1.arUsage = true; + this.jog1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.jog1.Dock = System.Windows.Forms.DockStyle.Top; + this.jog1.Font = new System.Drawing.Font("Consolas", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.jog1.Location = new System.Drawing.Point(3, 3); + this.jog1.Name = "jog1"; + this.jog1.Size = new System.Drawing.Size(188, 91); + this.jog1.TabIndex = 8; + this.jog1.Text = "jogController1"; + // + // jog2 + // + this.jog2.arAutoUpdate = false; + this.jog2.arAxis = 1; + this.jog2.arAxisName = null; + this.jog2.arBorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.jog2.arBottomSensorFont = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.jog2.arBottomSensorHeight = 40; + this.jog2.arBottomSensorListCount = new System.Drawing.Point(4, 2); + this.jog2.arBottomSensorTitle = new string[] { + "INP", + "ORG", + "LIM+", + "HOME", + "ALM", + "SVON", + "LIM-", + "STOP"}; + this.jog2.arCellBorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.jog2.ardAct = 500D; + this.jog2.ardCmd = 0D; + this.jog2.arDebugMode = false; + this.jog2.arIsAlm = false; + this.jog2.arIsHLSP = false; + this.jog2.arIsHSet = true; + this.jog2.arIsInit = false; + this.jog2.arIsInp = false; + this.jog2.arIsLimN = false; + this.jog2.arIsLimP = false; + this.jog2.arIsOrg = false; + this.jog2.arIsSvON = true; + this.jog2.arMaxLength = 1200; + this.jog2.arMinLength = -100; + this.jog2.arShowJogButton = true; + this.jog2.arShowPositionBar = true; + this.jog2.arShowSensor = true; + this.jog2.arShowTitleBar = true; + this.jog2.arTitlebarHeight = ((ushort)(20)); + this.jog2.arUpdateInterval = ((ushort)(100)); + this.jog2.arUsage = true; + this.jog2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.jog2.Dock = System.Windows.Forms.DockStyle.Top; + this.jog2.Font = new System.Drawing.Font("Consolas", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.jog2.Location = new System.Drawing.Point(197, 3); + this.jog2.Name = "jog2"; + this.jog2.Size = new System.Drawing.Size(188, 91); + this.jog2.TabIndex = 6; + this.jog2.Text = "jogController1"; + // + // jog3 + // + this.jog3.arAutoUpdate = false; + this.jog3.arAxis = 2; + this.jog3.arAxisName = null; + this.jog3.arBorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.jog3.arBottomSensorFont = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.jog3.arBottomSensorHeight = 40; + this.jog3.arBottomSensorListCount = new System.Drawing.Point(4, 2); + this.jog3.arBottomSensorTitle = new string[] { + "INP", + "ORG", + "LIM+", + "HOME", + "ALM", + "SVON", + "LIM-", + "STOP"}; + this.jog3.arCellBorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.jog3.ardAct = 500D; + this.jog3.ardCmd = 0D; + this.jog3.arDebugMode = false; + this.jog3.arIsAlm = false; + this.jog3.arIsHLSP = false; + this.jog3.arIsHSet = false; + this.jog3.arIsInit = false; + this.jog3.arIsInp = false; + this.jog3.arIsLimN = false; + this.jog3.arIsLimP = false; + this.jog3.arIsOrg = false; + this.jog3.arIsSvON = true; + this.jog3.arMaxLength = 1200; + this.jog3.arMinLength = -100; + this.jog3.arShowJogButton = true; + this.jog3.arShowPositionBar = true; + this.jog3.arShowSensor = true; + this.jog3.arShowTitleBar = true; + this.jog3.arTitlebarHeight = ((ushort)(20)); + this.jog3.arUpdateInterval = ((ushort)(100)); + this.jog3.arUsage = true; + this.jog3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.jog3.Dock = System.Windows.Forms.DockStyle.Top; + this.jog3.Font = new System.Drawing.Font("Consolas", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.jog3.Location = new System.Drawing.Point(3, 100); + this.jog3.Name = "jog3"; + this.jog3.Size = new System.Drawing.Size(188, 91); + this.jog3.TabIndex = 6; + this.jog3.Text = "jogController1"; + // + // jog4 + // + this.jog4.arAutoUpdate = false; + this.jog4.arAxis = 3; + this.jog4.arAxisName = null; + this.jog4.arBorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.jog4.arBottomSensorFont = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.jog4.arBottomSensorHeight = 40; + this.jog4.arBottomSensorListCount = new System.Drawing.Point(4, 2); + this.jog4.arBottomSensorTitle = new string[] { + "INP", + "ORG", + "LIM+", + "HOME", + "ALM", + "SVON", + "LIM-", + "STOP"}; + this.jog4.arCellBorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.jog4.ardAct = 500D; + this.jog4.ardCmd = 0D; + this.jog4.arDebugMode = false; + this.jog4.arIsAlm = false; + this.jog4.arIsHLSP = false; + this.jog4.arIsHSet = false; + this.jog4.arIsInit = false; + this.jog4.arIsInp = false; + this.jog4.arIsLimN = false; + this.jog4.arIsLimP = false; + this.jog4.arIsOrg = false; + this.jog4.arIsSvON = true; + this.jog4.arMaxLength = 1200; + this.jog4.arMinLength = -100; + this.jog4.arShowJogButton = true; + this.jog4.arShowPositionBar = true; + this.jog4.arShowSensor = true; + this.jog4.arShowTitleBar = true; + this.jog4.arTitlebarHeight = ((ushort)(20)); + this.jog4.arUpdateInterval = ((ushort)(100)); + this.jog4.arUsage = true; + this.jog4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.jog4.Dock = System.Windows.Forms.DockStyle.Top; + this.jog4.Font = new System.Drawing.Font("Consolas", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.jog4.Location = new System.Drawing.Point(197, 100); + this.jog4.Name = "jog4"; + this.jog4.Size = new System.Drawing.Size(188, 91); + this.jog4.TabIndex = 6; + this.jog4.Text = "jogController1"; + // + // jog5 + // + this.jog5.arAutoUpdate = false; + this.jog5.arAxis = 4; + this.jog5.arAxisName = null; + this.jog5.arBorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.jog5.arBottomSensorFont = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.jog5.arBottomSensorHeight = 40; + this.jog5.arBottomSensorListCount = new System.Drawing.Point(4, 2); + this.jog5.arBottomSensorTitle = new string[] { + "INP", + "ORG", + "LIM+", + "HOME", + "ALM", + "SVON", + "LIM-", + "STOP"}; + this.jog5.arCellBorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.jog5.ardAct = 500D; + this.jog5.ardCmd = 0D; + this.jog5.arDebugMode = false; + this.jog5.arIsAlm = false; + this.jog5.arIsHLSP = false; + this.jog5.arIsHSet = false; + this.jog5.arIsInit = false; + this.jog5.arIsInp = false; + this.jog5.arIsLimN = false; + this.jog5.arIsLimP = false; + this.jog5.arIsOrg = false; + this.jog5.arIsSvON = true; + this.jog5.arMaxLength = 1200; + this.jog5.arMinLength = -100; + this.jog5.arShowJogButton = true; + this.jog5.arShowPositionBar = true; + this.jog5.arShowSensor = true; + this.jog5.arShowTitleBar = true; + this.jog5.arTitlebarHeight = ((ushort)(20)); + this.jog5.arUpdateInterval = ((ushort)(100)); + this.jog5.arUsage = true; + this.jog5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.jog5.Dock = System.Windows.Forms.DockStyle.Top; + this.jog5.Font = new System.Drawing.Font("Consolas", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.jog5.Location = new System.Drawing.Point(3, 197); + this.jog5.Name = "jog5"; + this.jog5.Size = new System.Drawing.Size(188, 91); + this.jog5.TabIndex = 7; + this.jog5.Text = "jogController1"; + // + // jog6 + // + this.jog6.arAutoUpdate = false; + this.jog6.arAxis = 5; + this.jog6.arAxisName = null; + this.jog6.arBorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.jog6.arBottomSensorFont = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.jog6.arBottomSensorHeight = 40; + this.jog6.arBottomSensorListCount = new System.Drawing.Point(4, 2); + this.jog6.arBottomSensorTitle = new string[] { + "INP", + "ORG", + "LIM+", + "HOME", + "ALM", + "SVON", + "LIM-", + "STOP"}; + this.jog6.arCellBorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.jog6.ardAct = 500D; + this.jog6.ardCmd = 0D; + this.jog6.arDebugMode = false; + this.jog6.arIsAlm = false; + this.jog6.arIsHLSP = false; + this.jog6.arIsHSet = false; + this.jog6.arIsInit = false; + this.jog6.arIsInp = false; + this.jog6.arIsLimN = false; + this.jog6.arIsLimP = false; + this.jog6.arIsOrg = false; + this.jog6.arIsSvON = true; + this.jog6.arMaxLength = 1200; + this.jog6.arMinLength = -100; + this.jog6.arShowJogButton = true; + this.jog6.arShowPositionBar = true; + this.jog6.arShowSensor = true; + this.jog6.arShowTitleBar = true; + this.jog6.arTitlebarHeight = ((ushort)(20)); + this.jog6.arUpdateInterval = ((ushort)(100)); + this.jog6.arUsage = true; + this.jog6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.jog6.Dock = System.Windows.Forms.DockStyle.Top; + this.jog6.Font = new System.Drawing.Font("Consolas", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.jog6.Location = new System.Drawing.Point(197, 197); + this.jog6.Name = "jog6"; + this.jog6.Size = new System.Drawing.Size(188, 91); + this.jog6.TabIndex = 9; + this.jog6.Text = "jogController1"; + // + // jog7 + // + this.jog7.arAutoUpdate = false; + this.jog7.arAxis = 6; + this.jog7.arAxisName = null; + this.jog7.arBorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.jog7.arBottomSensorFont = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.jog7.arBottomSensorHeight = 40; + this.jog7.arBottomSensorListCount = new System.Drawing.Point(4, 2); + this.jog7.arBottomSensorTitle = new string[] { + "INP", + "ORG", + "LIM+", + "HOME", + "ALM", + "SVON", + "LIM-", + "STOP"}; + this.jog7.arCellBorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.jog7.ardAct = 500D; + this.jog7.ardCmd = 0D; + this.jog7.arDebugMode = false; + this.jog7.arIsAlm = false; + this.jog7.arIsHLSP = false; + this.jog7.arIsHSet = false; + this.jog7.arIsInit = false; + this.jog7.arIsInp = false; + this.jog7.arIsLimN = false; + this.jog7.arIsLimP = false; + this.jog7.arIsOrg = false; + this.jog7.arIsSvON = true; + this.jog7.arMaxLength = 1200; + this.jog7.arMinLength = -100; + this.jog7.arShowJogButton = true; + this.jog7.arShowPositionBar = true; + this.jog7.arShowSensor = true; + this.jog7.arShowTitleBar = true; + this.jog7.arTitlebarHeight = ((ushort)(20)); + this.jog7.arUpdateInterval = ((ushort)(100)); + this.jog7.arUsage = true; + this.jog7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.jog7.Dock = System.Windows.Forms.DockStyle.Top; + this.jog7.Font = new System.Drawing.Font("Consolas", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.jog7.Location = new System.Drawing.Point(3, 294); + this.jog7.Name = "jog7"; + this.jog7.Size = new System.Drawing.Size(188, 91); + this.jog7.TabIndex = 10; + this.jog7.Text = "jogController1"; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 1; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.Controls.Add(this.panel2, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.panel3, 0, 1); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 3); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 2; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(360, 420); + this.tableLayoutPanel1.TabIndex = 137; + // + // panel2 + // + this.panel2.Controls.Add(this.tblDI); + this.panel2.Controls.Add(this.lbTitle1); + this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel2.Location = new System.Drawing.Point(0, 0); + this.panel2.Margin = new System.Windows.Forms.Padding(0); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(360, 210); + this.panel2.TabIndex = 0; + // + // tblDI + // + this.tblDI.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.tblDI.BorderSize = 1; + colorListItem1.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + colorListItem1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + colorListItem1.Remark = ""; + colorListItem2.BackColor1 = System.Drawing.Color.Green; + colorListItem2.BackColor2 = System.Drawing.Color.Green; + colorListItem2.Remark = ""; + this.tblDI.ColorList = new arDev.AzinAxt.ColorListItem[] { + colorListItem1, + colorListItem2}; + this.tblDI.Cursor = System.Windows.Forms.Cursors.Arrow; + this.tblDI.Dock = System.Windows.Forms.DockStyle.Fill; + this.tblDI.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Bold); + this.tblDI.FontPin = new System.Drawing.Font("Consolas", 6.75F); + this.tblDI.ForeColor = System.Drawing.Color.WhiteSmoke; + this.tblDI.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.tblDI.Location = new System.Drawing.Point(0, 22); + this.tblDI.MatrixSize = new System.Drawing.Point(8, 4); + this.tblDI.MenuBorderSize = 1; + this.tblDI.MenuGap = 5; + this.tblDI.MinimumSize = new System.Drawing.Size(100, 50); + this.tblDI.Name = "tblDI"; + this.tblDI.Names = null; + this.tblDI.ShadowColor = System.Drawing.Color.Black; + this.tblDI.showDebugInfo = false; + this.tblDI.ShowIndexString = true; + this.tblDI.Size = new System.Drawing.Size(360, 188); + this.tblDI.TabIndex = 3; + this.tblDI.Tags = null; + this.tblDI.Text = "gridView2"; + this.tblDI.TextAttachToImage = true; + this.tblDI.Titles = null; + this.tblDI.Values = null; + // + // lbTitle1 + // + this.lbTitle1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(60)))), ((int)(((byte)(60))))); + this.lbTitle1.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbTitle1.Dock = System.Windows.Forms.DockStyle.Top; + this.lbTitle1.Font = new System.Drawing.Font("Consolas", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbTitle1.ForeColor = System.Drawing.Color.White; + this.lbTitle1.Location = new System.Drawing.Point(0, 0); + this.lbTitle1.Name = "lbTitle1"; + this.lbTitle1.Size = new System.Drawing.Size(360, 22); + this.lbTitle1.TabIndex = 0; + this.lbTitle1.Text = "READ VALUE"; + this.lbTitle1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel3 + // + this.panel3.Controls.Add(this.tblDO); + this.panel3.Controls.Add(this.lbtitle2); + this.panel3.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel3.Location = new System.Drawing.Point(0, 210); + this.panel3.Margin = new System.Windows.Forms.Padding(0); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(360, 210); + this.panel3.TabIndex = 0; + // + // tblDO + // + this.tblDO.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.tblDO.BorderSize = 1; + colorListItem3.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + colorListItem3.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + colorListItem3.Remark = ""; + colorListItem4.BackColor1 = System.Drawing.Color.Tomato; + colorListItem4.BackColor2 = System.Drawing.Color.Tomato; + colorListItem4.Remark = ""; + this.tblDO.ColorList = new arDev.AzinAxt.ColorListItem[] { + colorListItem3, + colorListItem4}; + this.tblDO.Cursor = System.Windows.Forms.Cursors.Arrow; + this.tblDO.Dock = System.Windows.Forms.DockStyle.Fill; + this.tblDO.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tblDO.FontPin = new System.Drawing.Font("Consolas", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tblDO.ForeColor = System.Drawing.Color.WhiteSmoke; + this.tblDO.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.tblDO.Location = new System.Drawing.Point(0, 22); + this.tblDO.MatrixSize = new System.Drawing.Point(8, 4); + this.tblDO.MenuBorderSize = 1; + this.tblDO.MenuGap = 5; + this.tblDO.MinimumSize = new System.Drawing.Size(100, 50); + this.tblDO.Name = "tblDO"; + this.tblDO.Names = null; + this.tblDO.ShadowColor = System.Drawing.Color.Black; + this.tblDO.showDebugInfo = false; + this.tblDO.ShowIndexString = true; + this.tblDO.Size = new System.Drawing.Size(360, 188); + this.tblDO.TabIndex = 3; + this.tblDO.Tags = null; + this.tblDO.Text = "gridView3"; + this.tblDO.TextAttachToImage = true; + this.tblDO.Titles = null; + this.tblDO.Values = null; + // + // lbtitle2 + // + this.lbtitle2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(60)))), ((int)(((byte)(60))))); + this.lbtitle2.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbtitle2.Dock = System.Windows.Forms.DockStyle.Top; + this.lbtitle2.Font = new System.Drawing.Font("Consolas", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbtitle2.ForeColor = System.Drawing.Color.White; + this.lbtitle2.Location = new System.Drawing.Point(0, 0); + this.lbtitle2.Name = "lbtitle2"; + this.lbtitle2.Size = new System.Drawing.Size(360, 22); + this.lbtitle2.TabIndex = 1; + this.lbtitle2.Text = "WRITE VALUE"; + this.lbtitle2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // toolStrip1 + // + this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripButton1, + this.toolStripSeparator1, + this.toolStripButton2, + this.toolStripButton3, + this.toolStripButton4}); + this.toolStrip1.Location = new System.Drawing.Point(0, 0); + this.toolStrip1.Name = "toolStrip1"; + this.toolStrip1.Size = new System.Drawing.Size(773, 25); + this.toolStrip1.TabIndex = 138; + this.toolStrip1.Text = "toolStrip1"; + // + // toolStripButton1 + // + this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image"))); + this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton1.Name = "toolStripButton1"; + this.toolStripButton1.Size = new System.Drawing.Size(102, 22); + this.toolStripButton1.Text = "Init Emulation"; + this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click); + // + // toolStripSeparator1 + // + this.toolStripSeparator1.Name = "toolStripSeparator1"; + this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25); + // + // toolStripButton2 + // + this.toolStripButton2.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton2.Image"))); + this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton2.Name = "toolStripButton2"; + this.toolStripButton2.Size = new System.Drawing.Size(51, 22); + this.toolStripButton2.Text = "slow"; + this.toolStripButton2.Click += new System.EventHandler(this.toolStripButton2_Click); + // + // toolStripButton3 + // + this.toolStripButton3.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton3.Image"))); + this.toolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton3.Name = "toolStripButton3"; + this.toolStripButton3.Size = new System.Drawing.Size(65, 22); + this.toolStripButton3.Text = "normal"; + this.toolStripButton3.Click += new System.EventHandler(this.toolStripButton3_Click); + // + // toolStripButton4 + // + this.toolStripButton4.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton4.Image"))); + this.toolStripButton4.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton4.Name = "toolStripButton4"; + this.toolStripButton4.Size = new System.Drawing.Size(46, 22); + this.toolStripButton4.Text = "fast"; + this.toolStripButton4.Click += new System.EventHandler(this.toolStripButton4_Click); + // + // tabControl1 + // + this.tabControl1.Controls.Add(this.tabPage1); + this.tabControl1.Controls.Add(this.tabPage2); + this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tabControl1.Location = new System.Drawing.Point(0, 25); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(374, 452); + this.tabControl1.TabIndex = 168; + // + // tabPage1 + // + this.tabPage1.Controls.Add(this.ctlContainer1); + this.tabPage1.Location = new System.Drawing.Point(4, 22); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(3); + this.tabPage1.Size = new System.Drawing.Size(366, 426); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "tabPage1"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // tabPage2 + // + this.tabPage2.Controls.Add(this.tableLayoutPanel1); + this.tabPage2.Location = new System.Drawing.Point(4, 22); + this.tabPage2.Name = "tabPage2"; + this.tabPage2.Padding = new System.Windows.Forms.Padding(3); + this.tabPage2.Size = new System.Drawing.Size(366, 426); + this.tabPage2.TabIndex = 1; + this.tabPage2.Text = "tabPage2"; + this.tabPage2.UseVisualStyleBackColor = true; + // + // ctlContainer1 + // + this.ctlContainer1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.ctlContainer1.Controls.Add(this.checkBox2); + this.ctlContainer1.Controls.Add(this.checkBox1); + this.ctlContainer1.Controls.Add(this.button2); + this.ctlContainer1.Controls.Add(this.button4); + this.ctlContainer1.Controls.Add(this.button3); + this.ctlContainer1.Controls.Add(this.button1); + this.ctlContainer1.Controls.Add(this.ctlTowerLamp1); + this.ctlContainer1.Controls.Add(this.panel5); + this.ctlContainer1.Controls.Add(this.panel13); + this.ctlContainer1.Dock = System.Windows.Forms.DockStyle.Fill; + this.ctlContainer1.Location = new System.Drawing.Point(3, 3); + this.ctlContainer1.Name = "ctlContainer1"; + this.ctlContainer1.Size = new System.Drawing.Size(360, 420); + this.ctlContainer1.TabIndex = 167; + this.ctlContainer1.TabStop = false; + // + // checkBox2 + // + this.checkBox2.AutoSize = true; + this.checkBox2.Checked = true; + this.checkBox2.CheckState = System.Windows.Forms.CheckState.Checked; + this.checkBox2.Location = new System.Drawing.Point(209, 43); + this.checkBox2.Name = "checkBox2"; + this.checkBox2.Padding = new System.Windows.Forms.Padding(0, 5, 0, 5); + this.checkBox2.Size = new System.Drawing.Size(117, 26); + this.checkBox2.TabIndex = 180; + this.checkBox2.Text = "Auto VAC Detect"; + this.checkBox2.UseVisualStyleBackColor = true; + // + // checkBox1 + // + this.checkBox1.AutoSize = true; + this.checkBox1.Checked = true; + this.checkBox1.CheckState = System.Windows.Forms.CheckState.Checked; + this.checkBox1.Location = new System.Drawing.Point(209, 17); + this.checkBox1.Name = "checkBox1"; + this.checkBox1.Padding = new System.Windows.Forms.Padding(0, 5, 0, 5); + this.checkBox1.Size = new System.Drawing.Size(114, 26); + this.checkBox1.TabIndex = 179; + this.checkBox1.Text = "Auto Port Detect"; + this.checkBox1.UseVisualStyleBackColor = true; + // + // button2 + // + this.button2.Location = new System.Drawing.Point(124, 287); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(95, 41); + this.button2.TabIndex = 183; + this.button2.Text = "VAC Off"; + this.button2.UseVisualStyleBackColor = true; + // + // button4 + // + this.button4.Location = new System.Drawing.Point(29, 287); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(95, 41); + this.button4.TabIndex = 182; + this.button4.Text = "VAC On"; + this.button4.UseVisualStyleBackColor = true; + // + // button3 + // + this.button3.Location = new System.Drawing.Point(124, 246); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(95, 41); + this.button3.TabIndex = 181; + this.button3.Text = "VAC Off"; + this.button3.UseVisualStyleBackColor = true; + // + // button1 + // + this.button1.Location = new System.Drawing.Point(29, 246); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(95, 41); + this.button1.TabIndex = 179; + this.button1.Text = "VAC On"; + this.button1.UseVisualStyleBackColor = true; + // + // ctlTowerLamp1 + // + this.ctlTowerLamp1.arPinBuz.Output = false; + this.ctlTowerLamp1.arPinBuz.PinIndex = 1; + this.ctlTowerLamp1.arPinBuz.PinLevel = true; + this.ctlTowerLamp1.arPinBuz.Raw = false; + this.ctlTowerLamp1.arPinBuz.ValueDirection = UIControl.eValueDirection.input; + this.ctlTowerLamp1.arPinGrn.Output = false; + this.ctlTowerLamp1.arPinGrn.PinIndex = -1; + this.ctlTowerLamp1.arPinGrn.PinLevel = true; + this.ctlTowerLamp1.arPinGrn.Raw = false; + this.ctlTowerLamp1.arPinGrn.ValueDirection = UIControl.eValueDirection.input; + this.ctlTowerLamp1.arPinRed.Output = false; + this.ctlTowerLamp1.arPinRed.PinIndex = -1; + this.ctlTowerLamp1.arPinRed.PinLevel = true; + this.ctlTowerLamp1.arPinRed.Raw = false; + this.ctlTowerLamp1.arPinRed.ValueDirection = UIControl.eValueDirection.input; + this.ctlTowerLamp1.arPinYel.Output = false; + this.ctlTowerLamp1.arPinYel.PinIndex = -1; + this.ctlTowerLamp1.arPinYel.PinLevel = true; + this.ctlTowerLamp1.arPinYel.Raw = false; + this.ctlTowerLamp1.arPinYel.ValueDirection = UIControl.eValueDirection.input; + this.ctlTowerLamp1.Location = new System.Drawing.Point(240, 178); + this.ctlTowerLamp1.MinimumSize = new System.Drawing.Size(4, 4); + this.ctlTowerLamp1.Name = "ctlTowerLamp1"; + this.ctlTowerLamp1.Padding = new System.Windows.Forms.Padding(10); + this.ctlTowerLamp1.Size = new System.Drawing.Size(59, 144); + this.ctlTowerLamp1.TabIndex = 166; + this.ctlTowerLamp1.Text = "ctlTowerLamp1"; + // + // panel5 + // + this.panel5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(200)))), ((int)(((byte)(200))))); + this.panel5.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.panel5.Controls.Add(this.SRLimP); + this.panel5.Controls.Add(this.SRLimN); + this.panel5.Controls.Add(this.m1); + this.panel5.Controls.Add(this.SRDetU); + this.panel5.Controls.Add(this.SLLimP); + this.panel5.Controls.Add(this.SLDetU); + this.panel5.Controls.Add(this.m2); + this.panel5.Controls.Add(this.SLLimN); + this.panel5.Location = new System.Drawing.Point(16, 17); + this.panel5.Name = "panel5"; + this.panel5.Size = new System.Drawing.Size(187, 158); + this.panel5.TabIndex = 178; + // + // SRLimP + // + this.SRLimP.arPin.Output = false; + this.SRLimP.arPin.PinIndex = -1; + this.SRLimP.arPin.PinLevel = true; + this.SRLimP.arPin.Raw = false; + this.SRLimP.arPin.ValueDirection = UIControl.eValueDirection.input; + this.SRLimP.ColorOff = System.Drawing.Color.DimGray; + this.SRLimP.ColorOn = System.Drawing.Color.Red; + this.SRLimP.Location = new System.Drawing.Point(96, 10); + this.SRLimP.MaximumSize = new System.Drawing.Size(80, 80); + this.SRLimP.MinimumSize = new System.Drawing.Size(4, 4); + this.SRLimP.Name = "SRLimP"; + this.SRLimP.Padding = new System.Windows.Forms.Padding(3); + this.SRLimP.RectShape = true; + this.SRLimP.Size = new System.Drawing.Size(80, 24); + this.SRLimP.TabIndex = 175; + this.SRLimP.Text = "LIM +"; + this.SRLimP.Click += new System.EventHandler(this.SRLimP_Click); + // + // SRLimN + // + this.SRLimN.arPin.Output = false; + this.SRLimN.arPin.PinIndex = -1; + this.SRLimN.arPin.PinLevel = true; + this.SRLimN.arPin.Raw = false; + this.SRLimN.arPin.ValueDirection = UIControl.eValueDirection.input; + this.SRLimN.ColorOff = System.Drawing.Color.DimGray; + this.SRLimN.ColorOn = System.Drawing.Color.Red; + this.SRLimN.Location = new System.Drawing.Point(96, 123); + this.SRLimN.MaximumSize = new System.Drawing.Size(80, 80); + this.SRLimN.MinimumSize = new System.Drawing.Size(4, 4); + this.SRLimN.Name = "SRLimN"; + this.SRLimN.Padding = new System.Windows.Forms.Padding(3); + this.SRLimN.RectShape = true; + this.SRLimN.Size = new System.Drawing.Size(80, 24); + this.SRLimN.TabIndex = 177; + this.SRLimN.Text = "LIM -"; + this.SRLimN.Click += new System.EventHandler(this.SRLimN_Click); + // + // m1 + // + this.m1.Length = 100; + this.m1.Location = new System.Drawing.Point(10, 70); + this.m1.MaximumSize = new System.Drawing.Size(80, 80); + this.m1.MinimumSize = new System.Drawing.Size(40, 40); + this.m1.Name = "m1"; + this.m1.Padding = new System.Windows.Forms.Padding(8, 10, 10, 10); + this.m1.Pin_DirCW.Output = false; + this.m1.Pin_DirCW.PinIndex = -1; + this.m1.Pin_DirCW.PinLevel = true; + this.m1.Pin_DirCW.Raw = false; + this.m1.Pin_DirCW.ValueDirection = UIControl.eValueDirection.input; + this.m1.Pin_Max.Output = false; + this.m1.Pin_Max.PinIndex = -1; + this.m1.Pin_Max.PinLevel = true; + this.m1.Pin_Max.Raw = false; + this.m1.Pin_Max.ValueDirection = UIControl.eValueDirection.input; + this.m1.Pin_Min.Output = false; + this.m1.Pin_Min.PinIndex = -1; + this.m1.Pin_Min.PinLevel = true; + this.m1.Pin_Min.Raw = false; + this.m1.Pin_Min.ValueDirection = UIControl.eValueDirection.input; + this.m1.Pin_Run.Output = false; + this.m1.Pin_Run.PinIndex = -1; + this.m1.Pin_Run.PinLevel = true; + this.m1.Pin_Run.Raw = false; + this.m1.Pin_Run.ValueDirection = UIControl.eValueDirection.input; + this.m1.Size = new System.Drawing.Size(80, 47); + this.m1.speed = false; + this.m1.TabIndex = 169; + this.m1.TabStop = false; + this.m1.Text = "C 1-2"; + this.m1.Click += new System.EventHandler(this.m1_Click); + // + // SRDetU + // + this.SRDetU.arPin.Output = false; + this.SRDetU.arPin.PinIndex = -1; + this.SRDetU.arPin.PinLevel = true; + this.SRDetU.arPin.Raw = false; + this.SRDetU.arPin.ValueDirection = UIControl.eValueDirection.input; + this.SRDetU.ColorOff = System.Drawing.Color.DimGray; + this.SRDetU.ColorOn = System.Drawing.Color.Red; + this.SRDetU.Location = new System.Drawing.Point(96, 40); + this.SRDetU.MaximumSize = new System.Drawing.Size(80, 80); + this.SRDetU.MinimumSize = new System.Drawing.Size(4, 4); + this.SRDetU.Name = "SRDetU"; + this.SRDetU.Padding = new System.Windows.Forms.Padding(3); + this.SRDetU.RectShape = true; + this.SRDetU.Size = new System.Drawing.Size(80, 24); + this.SRDetU.TabIndex = 176; + this.SRDetU.Text = "DETECT"; + this.SRDetU.Click += new System.EventHandler(this.SRDetU_Click); + // + // SLLimP + // + this.SLLimP.arPin.Output = false; + this.SLLimP.arPin.PinIndex = -1; + this.SLLimP.arPin.PinLevel = true; + this.SLLimP.arPin.Raw = false; + this.SLLimP.arPin.ValueDirection = UIControl.eValueDirection.input; + this.SLLimP.ColorOff = System.Drawing.Color.DimGray; + this.SLLimP.ColorOn = System.Drawing.Color.Red; + this.SLLimP.Location = new System.Drawing.Point(10, 10); + this.SLLimP.MaximumSize = new System.Drawing.Size(80, 80); + this.SLLimP.MinimumSize = new System.Drawing.Size(4, 4); + this.SLLimP.Name = "SLLimP"; + this.SLLimP.Padding = new System.Windows.Forms.Padding(3); + this.SLLimP.RectShape = true; + this.SLLimP.Size = new System.Drawing.Size(80, 24); + this.SLLimP.TabIndex = 171; + this.SLLimP.Text = "LIM +"; + this.SLLimP.Click += new System.EventHandler(this.SLLimP_Click); + // + // SLDetU + // + this.SLDetU.arPin.Output = false; + this.SLDetU.arPin.PinIndex = -1; + this.SLDetU.arPin.PinLevel = true; + this.SLDetU.arPin.Raw = false; + this.SLDetU.arPin.ValueDirection = UIControl.eValueDirection.input; + this.SLDetU.ColorOff = System.Drawing.Color.DimGray; + this.SLDetU.ColorOn = System.Drawing.Color.Red; + this.SLDetU.Location = new System.Drawing.Point(10, 40); + this.SLDetU.MaximumSize = new System.Drawing.Size(80, 80); + this.SLDetU.MinimumSize = new System.Drawing.Size(4, 4); + this.SLDetU.Name = "SLDetU"; + this.SLDetU.Padding = new System.Windows.Forms.Padding(3); + this.SLDetU.RectShape = true; + this.SLDetU.Size = new System.Drawing.Size(80, 24); + this.SLDetU.TabIndex = 172; + this.SLDetU.Text = "DETECT"; + this.SLDetU.Click += new System.EventHandler(this.SLDetU_Click); + // + // m2 + // + this.m2.Length = 100; + this.m2.Location = new System.Drawing.Point(96, 70); + this.m2.MaximumSize = new System.Drawing.Size(80, 80); + this.m2.MinimumSize = new System.Drawing.Size(40, 40); + this.m2.Name = "m2"; + this.m2.Padding = new System.Windows.Forms.Padding(8, 10, 10, 10); + this.m2.Pin_DirCW.Output = false; + this.m2.Pin_DirCW.PinIndex = -1; + this.m2.Pin_DirCW.PinLevel = true; + this.m2.Pin_DirCW.Raw = false; + this.m2.Pin_DirCW.ValueDirection = UIControl.eValueDirection.input; + this.m2.Pin_Max.Output = false; + this.m2.Pin_Max.PinIndex = -1; + this.m2.Pin_Max.PinLevel = true; + this.m2.Pin_Max.Raw = false; + this.m2.Pin_Max.ValueDirection = UIControl.eValueDirection.input; + this.m2.Pin_Min.Output = false; + this.m2.Pin_Min.PinIndex = -1; + this.m2.Pin_Min.PinLevel = true; + this.m2.Pin_Min.Raw = false; + this.m2.Pin_Min.ValueDirection = UIControl.eValueDirection.input; + this.m2.Pin_Run.Output = false; + this.m2.Pin_Run.PinIndex = -1; + this.m2.Pin_Run.PinLevel = true; + this.m2.Pin_Run.Raw = false; + this.m2.Pin_Run.ValueDirection = UIControl.eValueDirection.input; + this.m2.Size = new System.Drawing.Size(80, 47); + this.m2.speed = false; + this.m2.TabIndex = 174; + this.m2.TabStop = false; + this.m2.Text = "C 1-2"; + this.m2.Click += new System.EventHandler(this.m2_Click); + // + // SLLimN + // + this.SLLimN.arPin.Output = false; + this.SLLimN.arPin.PinIndex = -1; + this.SLLimN.arPin.PinLevel = true; + this.SLLimN.arPin.Raw = false; + this.SLLimN.arPin.ValueDirection = UIControl.eValueDirection.input; + this.SLLimN.ColorOff = System.Drawing.Color.DimGray; + this.SLLimN.ColorOn = System.Drawing.Color.Red; + this.SLLimN.Location = new System.Drawing.Point(10, 123); + this.SLLimN.MaximumSize = new System.Drawing.Size(80, 80); + this.SLLimN.MinimumSize = new System.Drawing.Size(4, 4); + this.SLLimN.Name = "SLLimN"; + this.SLLimN.Padding = new System.Windows.Forms.Padding(3); + this.SLLimN.RectShape = true; + this.SLLimN.Size = new System.Drawing.Size(80, 24); + this.SLLimN.TabIndex = 173; + this.SLLimN.Text = "LIM -"; + this.SLLimN.Click += new System.EventHandler(this.SLLimN_Click); + // + // panel13 + // + this.panel13.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.panel13.Controls.Add(this.sf4); + this.panel13.Controls.Add(this.sf3); + this.panel13.Controls.Add(this.sf2); + this.panel13.Controls.Add(this.sf1); + this.panel13.Location = new System.Drawing.Point(15, 178); + this.panel13.Name = "panel13"; + this.panel13.Padding = new System.Windows.Forms.Padding(5); + this.panel13.Size = new System.Drawing.Size(219, 59); + this.panel13.TabIndex = 168; + // + // sf4 + // + this.sf4.arPin.Output = false; + this.sf4.arPin.PinIndex = -1; + this.sf4.arPin.PinLevel = true; + this.sf4.arPin.Raw = false; + this.sf4.arPin.ValueDirection = UIControl.eValueDirection.input; + this.sf4.ColorOff = System.Drawing.Color.DimGray; + this.sf4.ColorOn = System.Drawing.Color.Gold; + this.sf4.Dock = System.Windows.Forms.DockStyle.Left; + this.sf4.Location = new System.Drawing.Point(161, 5); + this.sf4.MaximumSize = new System.Drawing.Size(200, 200); + this.sf4.MinimumSize = new System.Drawing.Size(4, 4); + this.sf4.Name = "sf4"; + this.sf4.Padding = new System.Windows.Forms.Padding(3); + this.sf4.RectShape = false; + this.sf4.Size = new System.Drawing.Size(52, 49); + this.sf4.TabIndex = 147; + this.sf4.Text = "RESET"; + this.sf4.MouseDown += new System.Windows.Forms.MouseEventHandler(this.btAir_MouseDown); + this.sf4.MouseUp += new System.Windows.Forms.MouseEventHandler(this.btAir_MouseUp); + // + // sf3 + // + this.sf3.arPin.Output = false; + this.sf3.arPin.PinIndex = -1; + this.sf3.arPin.PinLevel = true; + this.sf3.arPin.Raw = false; + this.sf3.arPin.ValueDirection = UIControl.eValueDirection.input; + this.sf3.ColorOff = System.Drawing.Color.DimGray; + this.sf3.ColorOn = System.Drawing.Color.Red; + this.sf3.Dock = System.Windows.Forms.DockStyle.Left; + this.sf3.Location = new System.Drawing.Point(109, 5); + this.sf3.MaximumSize = new System.Drawing.Size(200, 200); + this.sf3.MinimumSize = new System.Drawing.Size(4, 4); + this.sf3.Name = "sf3"; + this.sf3.Padding = new System.Windows.Forms.Padding(3); + this.sf3.RectShape = false; + this.sf3.Size = new System.Drawing.Size(52, 49); + this.sf3.TabIndex = 146; + this.sf3.Tag = "stop"; + this.sf3.Text = "STOP"; + this.sf3.MouseDown += new System.Windows.Forms.MouseEventHandler(this.btAir_MouseDown); + this.sf3.MouseUp += new System.Windows.Forms.MouseEventHandler(this.btAir_MouseUp); + // + // sf2 + // + this.sf2.arPin.Output = false; + this.sf2.arPin.PinIndex = -1; + this.sf2.arPin.PinLevel = true; + this.sf2.arPin.Raw = false; + this.sf2.arPin.ValueDirection = UIControl.eValueDirection.input; + this.sf2.ColorOff = System.Drawing.Color.DimGray; + this.sf2.ColorOn = System.Drawing.Color.Lime; + this.sf2.Dock = System.Windows.Forms.DockStyle.Left; + this.sf2.Location = new System.Drawing.Point(57, 5); + this.sf2.MaximumSize = new System.Drawing.Size(200, 200); + this.sf2.MinimumSize = new System.Drawing.Size(4, 4); + this.sf2.Name = "sf2"; + this.sf2.Padding = new System.Windows.Forms.Padding(3); + this.sf2.RectShape = false; + this.sf2.Size = new System.Drawing.Size(52, 49); + this.sf2.TabIndex = 148; + this.sf2.Tag = "start"; + this.sf2.Text = "START"; + this.sf2.MouseDown += new System.Windows.Forms.MouseEventHandler(this.btAir_MouseDown); + this.sf2.MouseUp += new System.Windows.Forms.MouseEventHandler(this.btAir_MouseUp); + // + // sf1 + // + this.sf1.arPin.Output = false; + this.sf1.arPin.PinIndex = -1; + this.sf1.arPin.PinLevel = true; + this.sf1.arPin.Raw = false; + this.sf1.arPin.ValueDirection = UIControl.eValueDirection.input; + this.sf1.ColorOff = System.Drawing.Color.DimGray; + this.sf1.ColorOn = System.Drawing.Color.SkyBlue; + this.sf1.Dock = System.Windows.Forms.DockStyle.Left; + this.sf1.Location = new System.Drawing.Point(5, 5); + this.sf1.MaximumSize = new System.Drawing.Size(200, 200); + this.sf1.MinimumSize = new System.Drawing.Size(4, 4); + this.sf1.Name = "sf1"; + this.sf1.Padding = new System.Windows.Forms.Padding(3); + this.sf1.RectShape = false; + this.sf1.Size = new System.Drawing.Size(52, 49); + this.sf1.TabIndex = 149; + this.sf1.Tag = "air"; + this.sf1.Text = "AIR"; + this.sf1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.btAir_MouseDown); + this.sf1.MouseUp += new System.Windows.Forms.MouseEventHandler(this.btAir_MouseUp); + // + // fEmulator + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(773, 499); + this.Controls.Add(this.tabControl1); + this.Controls.Add(this.panel1); + this.Controls.Add(this.statusStrip1); + this.Controls.Add(this.toolStrip1); + this.Name = "fEmulator"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "fEmulator"; + this.TopMost = true; + this.Load += new System.EventHandler(this.fEmulator_Load); + this.statusStrip1.ResumeLayout(false); + this.statusStrip1.PerformLayout(); + this.panel1.ResumeLayout(false); + this.flowLayoutPanel1.ResumeLayout(false); + this.tableLayoutPanel1.ResumeLayout(false); + this.panel2.ResumeLayout(false); + this.panel3.ResumeLayout(false); + this.toolStrip1.ResumeLayout(false); + this.toolStrip1.PerformLayout(); + this.tabControl1.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + this.tabPage2.ResumeLayout(false); + this.ctlContainer1.ResumeLayout(false); + this.ctlContainer1.PerformLayout(); + this.panel5.ResumeLayout(false); + this.panel13.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private System.Windows.Forms.StatusStrip statusStrip1; + private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel1; + private System.Windows.Forms.Timer timer1; + private arDev.AzinAxt.JogController jog2; + private arDev.AzinAxt.JogController jog4; + private arDev.AzinAxt.JogController jog3; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Panel panel2; + private arDev.AzinAxt.GridView tblDI; + private System.Windows.Forms.Label lbTitle1; + private System.Windows.Forms.Panel panel3; + private arDev.AzinAxt.GridView tblDO; + private System.Windows.Forms.Label lbtitle2; + private System.Windows.Forms.ToolStrip toolStrip1; + private System.Windows.Forms.ToolStripButton toolStripButton1; + private UIControl.CtlTowerLamp ctlTowerLamp1; + private UIControl.CtlContainer ctlContainer1; + private System.Windows.Forms.Panel panel13; + private UIControl.CtlSensor sf4; + private UIControl.CtlSensor sf3; + private UIControl.CtlSensor sf2; + private UIControl.CtlSensor sf1; + private UIControl.CtlMotor m1; + private UIControl.CtlSensor SLLimP; + private UIControl.CtlSensor SLDetU; + private UIControl.CtlSensor SLLimN; + private UIControl.CtlSensor SRLimN; + private UIControl.CtlSensor SRDetU; + private UIControl.CtlSensor SRLimP; + private UIControl.CtlMotor m2; + private System.Windows.Forms.Panel panel5; + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.TabPage tabPage2; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; + private System.Windows.Forms.ToolStripButton toolStripButton2; + private System.Windows.Forms.ToolStripButton toolStripButton3; + private System.Windows.Forms.ToolStripButton toolStripButton4; + private System.Windows.Forms.CheckBox checkBox1; + private System.Windows.Forms.CheckBox checkBox2; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.Button button1; + private arDev.AzinAxt.JogController jog1; + private arDev.AzinAxt.JogController jog5; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1; + private arDev.AzinAxt.JogController jog6; + private arDev.AzinAxt.JogController jog7; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fEmulator.cs b/Handler/Project_form2/Dialog/fEmulator.cs new file mode 100644 index 0000000..403c122 --- /dev/null +++ b/Handler/Project_form2/Dialog/fEmulator.cs @@ -0,0 +1,450 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using arDev.AzinAxt; +using arDev.AzinAxt.Emulator; + +namespace Project.Dialog +{ + public partial class fEmulator : Form + { + public arDev.AzinAxt.Emulator.CEmulMOT devM { get; private set; } + public arDev.AzinAxt.Emulator.CEmuleDIO devIO { get; private set; } + + int axcount { get { return devM.axisCount; } } + + JogController[] jobCtl; + + public fEmulator(arDev.AzinAxt.MOT mot, int motCnt, int cntDI, int cntDO) + { + InitializeComponent(); + + devM = new CEmulMOT(motCnt); + devM.TimerInterval = 50; + + devIO = new CEmuleDIO(cntDI, cntDO); + devIO.IOValueChagned += Dev_IOValueChagned; + + Pub.flag.ValueChanged += Flag_ValueChanged; + + //motion + this.jobCtl = new JogController[] { jog1, jog2, jog3, jog4, jog5, jog6, jog7 }; + + foreach (var item in jobCtl) + { + item.arDebugMode = false; + //item.ItemClick += Item_ItemClick; + } + + for (int i = 0; i < motCnt; i++) + { + Boolean enb = i < motCnt; + jobCtl[i].MotionObject = mot; + jobCtl[i].Enabled = enb; + jobCtl[i].arUsage = enb; + jobCtl[i].arAutoUpdate = false; + jobCtl[i].Invalidate(); + + if (enb) + { + devM.MaxPosition[i] = jobCtl[i].arMaxLength; + devM.MinPosition[i] = jobCtl[i].arMinLength; + } + } + + //i/o + this.tblDI.SuspendLayout(); + this.tblDO.SuspendLayout(); + + var pinNameI = new string[cntDI]; + var pinNameO = new string[cntDO]; + var pinTitleI = new string[cntDI]; + var pinTitleO = new string[cntDO]; + + for (int i = 0; i < pinNameI.Length; i++) + { + pinNameI[i] = "X" + i.ToString("X2").PadLeft(3, '0');// Enum.GetName(typeof(ePLCIPin), i); //Enum.GetNames(typeof(eDIName))[i];// i.ToString(); + pinTitleI[i] = string.Empty;// i.ToString();// Enum.GetName(typeof(ePLCITitle), i); //Enum.GetNames(typeof(eDITitle))[i]; + + } + + for (int i = 0; i < pinNameO.Length; i++) + { + pinNameO[i] = "Y" + i.ToString("X2").PadLeft(3, '0');// Enum.GetName(typeof(ePLCOPin), i); // Enum.GetNames(typeof(eDOName))[i]; + pinTitleO[i] = string.Empty;//i.ToString();// Enum.GetName(typeof(ePLCOTitle), i); // Enum.GetNames(typeof(eDOTitle))[i]; + } + + tblDI.MatrixSize = new Point(8, 8); + tblDO.MatrixSize = new Point(8, 8); + + tblDI.setTitle(pinTitleI); + tblDO.setTitle(pinTitleO); + + tblDI.setNames(pinNameI); + tblDO.setNames(pinNameO); + + tblDI.setItemTextAlign(ContentAlignment.BottomLeft); + tblDO.setItemTextAlign(ContentAlignment.BottomLeft); + + tblDI.setValue(devIO.Input); + tblDO.setValue(devIO.Output); + + //dio.IOValueChanged += dio_IOValueChanged; + + this.tblDI.ItemClick += tblDI_ItemClick; + this.tblDO.ItemClick += tblDO_ItemClick; + + this.tblDI.Invalidate(); + this.tblDO.Invalidate(); + + + } + + + private void fEmulator_Load(object sender, EventArgs e) + { + this.ctlContainer1.setDevice(this.devIO, this.devM); + timer1.Start(); + this.toolStripStatusLabel1.Text = "Top Most :" + (this.TopMost ? "On" : "Off"); + } + void tblDO_ItemClick(object sender, GridView.ItemClickEventArgs e) + { + var nVal = !devIO.Output[e.idx];//.Get(e.idx);// doValue[e.idx];// == 1 ? (ushort)0 : (ushort)1; + devIO.SetOutput(e.idx, nVal); + } + void tblDI_ItemClick(object sender, GridView.ItemClickEventArgs e) + { + var nVal = !devIO.Input[e.idx]; + devIO.SetInput(e.idx, nVal); + } + private void Flag_ValueChanged(object sender, CInterLock.ValueEventArgs e) + { + var fg = (eFlag)e.ArrIDX; + } + private void Dev_IOValueChagned(object sender, CEmuleDIO.IOValueChangedArgs e) + { + if (e.Dir == CEmuleDIO.eDirection.In) + { + if (e.ArrIDX == (int)eDIName.BUT_STARTF && e.NewValue) + { + this.devIO.SetInput((int)eDIName.PORT0_DET_UP, false); + this.devIO.SetInput((int)eDIName.PORT1_DET_UP, false); + this.devIO.SetInput((int)eDIName.PORT2_DET_UP, false); + } + else if (e.ArrIDX == (int)eDIName.BUT_RESETF && e.NewValue) + { + this.devIO.SetInput((int)eDIName.PORT0_DET_UP, false); + this.devIO.SetInput((int)eDIName.PORT1_DET_UP, false); + this.devIO.SetInput((int)eDIName.PORT2_DET_UP, false); + } + + //해당 아이템의 값을 변경하고 다시 그린다. + if (tblDI.setValue(e.ArrIDX, e.NewValue)) + tblDI.Invalidate();//.drawItem(e.ArrIDX); + Console.WriteLine(string.Format("di change {0}:{1}", e.ArrIDX, e.NewValue.ToString())); + } + else + { + //sir sol값에따라서 감지 센서를 연동 + if (e.ArrIDX == (int)eDOName.SOL_AIR) this.devIO.SetInput((int)eDIName.AIR_DETECT, e.NewValue); + //else if (e.ArrIDX == (int)eDOName.PICKF_VAC1 && e.NewValue == false) this.devIO.SetInput((int)eDIName.pick, e.NewValue); //진공이켜지만 아이템이 감지된걸로 한다 + //else if (e.ArrIDX == (int)eDOName.PICKF_VAC2 && e.NewValue == false) this.devIO.SetInput((int)eDIName.PICKF_VAC_CHK2, e.NewValue); + //else if (e.ArrIDX == (int)eDOName.PICKF_VAC3 && e.NewValue == false) this.devIO.SetInput((int)eDIName.PICKF_VAC_CHK3, e.NewValue); + //else if (e.ArrIDX == (int)eDOName.PICKF_VAC4 && e.NewValue == false) this.devIO.SetInput((int)eDIName.PICKF_VAC_CHK4, e.NewValue); + + //해당 아이템의 값을 변경하고 다시 그린다. + if (tblDO.setValue(e.ArrIDX, e.NewValue)) + tblDO.Invalidate();//.drawItem(e.ArrIDX); + + //모터가 run 되면 몇초있다가 꺼야하낟. + if (e.ArrIDX == (int)eDOName.PORT0_MOT_RUN) + { + MotorRunStart[0] = DateTime.Now; + } + else if (e.ArrIDX == (int)eDOName.PORT1_MOT_RUN) + { + MotorRunStart[1] = DateTime.Now; + } + else if (e.ArrIDX == (int)eDOName.PORT2_MOT_RUN) + { + MotorRunStart[2] = DateTime.Now; + } + else if (e.ArrIDX == (int)eDOName.PORT0_MOT_DIR) + { + MotorRunStart[0] = DateTime.Now; + } + else if (e.ArrIDX == (int)eDOName.PORT1_MOT_DIR) + { + MotorRunStart[1] = DateTime.Now; + } + else if (e.ArrIDX == (int)eDOName.PORT2_MOT_DIR) + { + MotorRunStart[2] = DateTime.Now; + } + + + Console.WriteLine(string.Format("do change {0}:{1}", e.ArrIDX, e.NewValue.ToString())); + } + } + + DateTime[] MotorRunStart = new DateTime[] { DateTime.Now,DateTime.Now,DateTime.Now }; + + Boolean CheckTime(DateTime Start, int ElapSecond) + { + var ts = DateTime.Now - Start; + if (ts.TotalSeconds >= ElapSecond) return true; + else return false; + + } + private void timer1_Tick(object sender, EventArgs e) + { + for (int i = 0; i < axcount; i++) + { + //각 축별 데이터를 표시한다 + this.jobCtl[i].arIsOrg = devM.isOrg(i); + this.jobCtl[i].arIsInp = devM.isINp(i); + this.jobCtl[i].arIsAlm = devM.isAlm(i); + this.jobCtl[i].arIsLimN = devM.isLimM(i); + this.jobCtl[i].arIsLimP = devM.isLimP(i); + this.jobCtl[i].arIsSvON = devM.isSvOn(i); + + this.jobCtl[i].ardAct = devM.dAct[i]; + this.jobCtl[i].ardCmd = devM.dCmd[i]; + this.jobCtl[i].arIsInit = true;// MotionObject.IsInit; + //this.jobCtl[i].arIsHSet = devM.isHSet[i]; + + this.jobCtl[i].Invalidate(); + } + + + //포트용 모터가 켜져잇으ㅜ면 detect 작업을 자동으로 해준다 + if(checkBox1.Checked) + { + if (Util_DO.GetIOOutput(eDOName.PORT0_MOT_RUN)) //역방향으로 모터가 가동 중이다 + { + if (Util_DO.GetPortMotorDir(0) == eMotDir.CCW && CheckTime(MotorRunStart[0], 7)) + devIO.SetInput((int)eDIName.PORT0_LIM_DN, true); + if (Util_DO.GetPortMotorDir(0) == eMotDir.CCW && CheckTime(MotorRunStart[0], 1)) + devIO.SetInput((int)eDIName.PORT0_DET_UP, false); + + if (Util_DO.GetPortMotorDir(0) == eMotDir.CW && CheckTime(MotorRunStart[0], 5)) + devIO.SetInput((int)eDIName.PORT0_DET_UP, true); + if (Util_DO.GetPortMotorDir(0) == eMotDir.CW && CheckTime(MotorRunStart[0], 3)) + devIO.SetInput((int)eDIName.PORT0_LIM_DN, false); + } + if (Util_DO.GetIOOutput(eDOName.PORT1_MOT_RUN)) //역방향으로 모터가 가동 중이다 + { + if (Util_DO.GetPortMotorDir(1) == eMotDir.CCW && CheckTime(MotorRunStart[1], 7)) + devIO.SetInput((int)eDIName.PORT1_LIM_DN, true); + if (Util_DO.GetPortMotorDir(1) == eMotDir.CCW && CheckTime(MotorRunStart[1], 1)) + devIO.SetInput((int)eDIName.PORT1_DET_UP, false); + + if (Util_DO.GetPortMotorDir(1) == eMotDir.CW && CheckTime(MotorRunStart[1], 5)) + devIO.SetInput((int)eDIName.PORT1_DET_UP, true); + if (Util_DO.GetPortMotorDir(1) == eMotDir.CW && CheckTime(MotorRunStart[1], 3)) + devIO.SetInput((int)eDIName.PORT1_LIM_DN, false); + } + if (Util_DO.GetIOOutput(eDOName.PORT2_MOT_RUN)) //역방향으로 모터가 가동 중이다 + { + if (Util_DO.GetPortMotorDir(2) == eMotDir.CCW && CheckTime(MotorRunStart[2], 7)) + devIO.SetInput((int)eDIName.PORT2_LIM_DN, true); + if (Util_DO.GetPortMotorDir(2) == eMotDir.CCW && CheckTime(MotorRunStart[2], 1)) + devIO.SetInput((int)eDIName.PORT2_DET_UP, false); + + if (Util_DO.GetPortMotorDir(2) == eMotDir.CW && CheckTime(MotorRunStart[2], 5)) + devIO.SetInput((int)eDIName.PORT2_DET_UP, true); + if (Util_DO.GetPortMotorDir(2) == eMotDir.CW && CheckTime(MotorRunStart[2], 3)) + devIO.SetInput((int)eDIName.PORT2_LIM_DN, false); + } + } + //if (Util_DO.GetPortMotorDir(0) == eMotDir.CW && Util_DO.GetIOOutput(eDOName.PORT0_MOT_RUN) == true && checkBox1.Checked) + // this.devIO.SetInput((int)eDIName.PORT1_DET_UP, true); + + //if (Util_DO.GetPortMotorDir(1) == eMotDir.CW && Util_DO.GetIOOutput(eDOName.PORT1_MOT_RUN) == true && checkBox1.Checked) + // this.devIO.SetInput((int)eDIName.PORT2_DET_UP, true); + + + //백큠을 집는 행동 처리 + if (Pub.sm.Step == StateMachine.eSMStep.RUN) + { + //ZL이 집는 위치일경우 + if (Util_Mot.GetPKX_PosName() == ePickYPosition.PICKON) + { + if (checkBox2.Checked) + { + //if (devIO.Output[(int)eDOName.PICKF_VAC1]) this.devIO.SetInput((int)eDIName.PICKF_VAC_CHK1, true); + //if (devIO.Output[(int)eDOName.PICKF_VAC2]) this.devIO.SetInput((int)eDIName.PICKF_VAC_CHK2, true); + //if (devIO.Output[(int)eDOName.PICKF_VAC3]) this.devIO.SetInput((int)eDIName.PICKF_VAC_CHK3, true); + //if (devIO.Output[(int)eDOName.PICKF_VAC4]) this.devIO.SetInput((int)eDIName.PICKF_VAC_CHK4, true); + } + } + } + + //그룹박스내의 센서류 업데이트 + this.ctlContainer1.updateControl(); + + } + + + + private void toolStripButton1_Click(object sender, EventArgs e) + { + + Pub.mot.SetSVON(true); + + //emg on + devIO.SetInput((int)eDIName.BUT_EMGF, false); + // devIO.SetInput((int)eDIName.PICKF_OVERLOAD, true); + //devIO.SetInput((int)eDIName.PICKR_OVERLOAD, true); + + SLLimP.arPin.PinIndex = (int)eDIName.PORT1_LIM_UP; + SLDetU.arPin.PinIndex = (int)eDIName.PORT1_DET_UP; + SLLimN.arPin.PinIndex = (int)eDIName.PORT1_LIM_DN; + + SRLimP.arPin.PinIndex = (int)eDIName.PORT2_LIM_UP; + SRDetU.arPin.PinIndex = (int)eDIName.PORT2_DET_UP; + SRLimN.arPin.PinIndex = (int)eDIName.PORT2_LIM_DN; + + //타워램프 + ctlTowerLamp1.arPinRed.PinIndex = (int)eDOName.TWR_REDF; + ctlTowerLamp1.arPinYel.PinIndex = (int)eDOName.TWR_YELF; + ctlTowerLamp1.arPinGrn.PinIndex = (int)eDOName.TWR_GRNF; + ctlTowerLamp1.arPinBuz.PinIndex = (int)eDOName.BUZZER; + ctlTowerLamp1.arPinRed.Output = true; + ctlTowerLamp1.arPinYel.Output = true; + ctlTowerLamp1.arPinGrn.Output = true; + + //전면조작버 + sf1.arPin.PinIndex = (int)eDOName.SOL_AIR; + sf2.arPin.PinIndex = (int)eDOName.BUT_STARTF; + sf3.arPin.PinIndex = (int)eDOName.BUT_STOPF; + sf4.arPin.PinIndex = (int)eDOName.BUT_RESETF; + sf1.arPin.Output = true; + sf2.arPin.Output = true; + sf3.arPin.Output = true; + sf4.arPin.Output = true; + + //모터구동 + m1.Pin_Run.PinIndex = (int)eDOName.PORT0_MOT_RUN; + m2.Pin_Run.PinIndex = (int)eDOName.PORT1_MOT_RUN; + m1.Pin_Run.Output = true; + m2.Pin_Run.Output = true; + + devIO.SetOutput((int)eDOName.SOL_AIR, true); + + + } + + + + private void btAir_MouseDown(object sender, MouseEventArgs e) + { + var bt = sender as UIControl.CtlSensor; + switch (bt.Text.ToLower()) + { + case "air": + devIO.SetInput((int)eDIName.BUT_AIRF, true); + break; + case "stop": + devIO.SetInput((int)eDIName.BUT_STOPF, true); + break; + case "reset": + devIO.SetInput((int)eDIName.BUT_RESETF, true); + break; + case "start": + devIO.SetInput((int)eDIName.BUT_STARTF, true); + break; + } + } + + private void btAir_MouseUp(object sender, MouseEventArgs e) + { + var bt = sender as UIControl.CtlSensor; + switch (bt.Text.ToLower()) + { + case "air": + devIO.SetInput((int)eDIName.BUT_AIRF, false); + break; + case "stop": + devIO.SetInput((int)eDIName.BUT_STOPF, false); + break; + case "reset": + devIO.SetInput((int)eDIName.BUT_RESETF, false); + break; + case "start": + devIO.SetInput((int)eDIName.BUT_STARTF, false); + break; + } + } + + private void m1_Click(object sender, EventArgs e) + { + var cur = devIO.Output[(int)eDOName.PORT0_MOT_RUN]; + devIO.SetOutput((int)eDOName.PORT0_MOT_RUN, !cur); + } + + private void m2_Click(object sender, EventArgs e) + { + var cur = devIO.Output[(int)eDOName.PORT1_MOT_RUN]; + devIO.SetOutput((int)eDOName.PORT1_MOT_RUN, !cur); + } + + private void SLLimP_Click(object sender, EventArgs e) + { + var cur = devIO.Input[(int)eDIName.PORT1_LIM_UP]; + devIO.SetInput((int)eDIName.PORT1_LIM_UP, !cur); + } + + private void SRLimP_Click(object sender, EventArgs e) + { + var cur = devIO.Input[(int)eDIName.PORT2_LIM_UP]; + devIO.SetInput((int)eDIName.PORT2_LIM_UP, !cur); + } + + private void SLDetU_Click(object sender, EventArgs e) + { + var cur = devIO.Input[(int)eDIName.PORT1_DET_UP]; + devIO.SetInput((int)eDIName.PORT1_DET_UP, !cur); + } + + private void SRDetU_Click(object sender, EventArgs e) + { + var cur = devIO.Input[(int)eDIName.PORT2_DET_UP]; + devIO.SetInput((int)eDIName.PORT2_DET_UP, !cur); + } + + private void SLLimN_Click(object sender, EventArgs e) + { + var cur = devIO.Input[(int)eDIName.PORT1_LIM_DN]; + devIO.SetInput((int)eDIName.PORT1_LIM_DN, !cur); + } + + private void SRLimN_Click(object sender, EventArgs e) + { + var cur = devIO.Input[(int)eDIName.PORT2_LIM_DN]; + devIO.SetInput((int)eDIName.PORT2_LIM_DN, !cur); + } + + + private void toolStripButton3_Click(object sender, EventArgs e) + { + devM.TimerInterval = 50; + } + + private void toolStripButton2_Click(object sender, EventArgs e) + { + devM.TimerInterval = 100; + } + + private void toolStripButton4_Click(object sender, EventArgs e) + { + devM.TimerInterval = 10; + } + } +} diff --git a/Handler/Project_form2/Dialog/fEmulator.resx b/Handler/Project_form2/Dialog/fEmulator.resx new file mode 100644 index 0000000..1fa107f --- /dev/null +++ b/Handler/Project_form2/Dialog/fEmulator.resx @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 133, 17 + + + 250, 17 + + + 337, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fFinishJob.Designer.cs b/Handler/Project_form2/Dialog/fFinishJob.Designer.cs new file mode 100644 index 0000000..b9075ce --- /dev/null +++ b/Handler/Project_form2/Dialog/fFinishJob.Designer.cs @@ -0,0 +1,202 @@ +namespace Project.Dialog +{ + partial class fFinishJob + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fFinishJob)); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.lbCntL = new System.Windows.Forms.Label(); + this.lbCntR = new System.Windows.Forms.Label(); + this.button1 = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.lbSumQty = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.tableLayoutPanel1.SuspendLayout(); + this.SuspendLayout(); + // + // label2 + // + this.label2.Dock = System.Windows.Forms.DockStyle.Fill; + this.label2.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label2.Location = new System.Drawing.Point(4, 32); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(178, 84); + this.label2.TabIndex = 1; + this.label2.Text = "작업수량(L)"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label3 + // + this.label3.Dock = System.Windows.Forms.DockStyle.Fill; + this.label3.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label3.Location = new System.Drawing.Point(4, 117); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(178, 85); + this.label3.TabIndex = 1; + this.label3.Text = "작업수량(R)"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.Single; + this.tableLayoutPanel1.ColumnCount = 3; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 184F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 45F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 55F)); + this.tableLayoutPanel1.Controls.Add(this.label6, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.lbSumQty, 2, 1); + this.tableLayoutPanel1.Controls.Add(this.label2, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.label3, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.lbCntL, 1, 1); + this.tableLayoutPanel1.Controls.Add(this.lbCntR, 1, 2); + this.tableLayoutPanel1.Controls.Add(this.label7, 2, 0); + this.tableLayoutPanel1.Location = new System.Drawing.Point(26, 135); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 3; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(638, 203); + this.tableLayoutPanel1.TabIndex = 2; + // + // lbCntL + // + this.lbCntL.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbCntL.Font = new System.Drawing.Font("맑은 고딕", 40F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbCntL.Location = new System.Drawing.Point(189, 32); + this.lbCntL.Name = "lbCntL"; + this.lbCntL.Size = new System.Drawing.Size(196, 84); + this.lbCntL.TabIndex = 1; + this.lbCntL.Text = "000"; + this.lbCntL.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // lbCntR + // + this.lbCntR.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbCntR.Font = new System.Drawing.Font("맑은 고딕", 40F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbCntR.Location = new System.Drawing.Point(189, 117); + this.lbCntR.Name = "lbCntR"; + this.lbCntR.Size = new System.Drawing.Size(196, 85); + this.lbCntR.TabIndex = 1; + this.lbCntR.Text = "000"; + this.lbCntR.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // button1 + // + this.button1.BackColor = System.Drawing.Color.Gold; + this.button1.Font = new System.Drawing.Font("맑은 고딕", 50F, System.Drawing.FontStyle.Bold); + this.button1.Location = new System.Drawing.Point(26, 13); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(638, 105); + this.button1.TabIndex = 3; + this.button1.Text = "작업 완료"; + this.button1.UseVisualStyleBackColor = false; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(26, 350); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(50, 19); + this.label1.TabIndex = 4; + this.label1.Text = "label1"; + // + // lbSumQty + // + this.lbSumQty.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbSumQty.Font = new System.Drawing.Font("맑은 고딕", 40F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbSumQty.Location = new System.Drawing.Point(392, 32); + this.lbSumQty.Name = "lbSumQty"; + this.tableLayoutPanel1.SetRowSpan(this.lbSumQty, 2); + this.lbSumQty.Size = new System.Drawing.Size(242, 170); + this.lbSumQty.TabIndex = 5; + this.lbSumQty.Text = "000"; + this.lbSumQty.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label6 + // + this.label6.Dock = System.Windows.Forms.DockStyle.Fill; + this.label6.Location = new System.Drawing.Point(189, 1); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(196, 30); + this.label6.TabIndex = 5; + this.label6.Text = "REEL"; + this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label7 + // + this.label7.Dock = System.Windows.Forms.DockStyle.Fill; + this.label7.Location = new System.Drawing.Point(392, 1); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(242, 30); + this.label7.TabIndex = 5; + this.label7.Text = "QTY"; + this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // fFinishJob + // + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 17F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.White; + this.ClientSize = new System.Drawing.Size(678, 383); + this.Controls.Add(this.label1); + this.Controls.Add(this.button1); + this.Controls.Add(this.tableLayoutPanel1); + this.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Margin = new System.Windows.Forms.Padding(4); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fFinishJob"; + this.Padding = new System.Windows.Forms.Padding(10); + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "작업완료"; + this.Load += new System.EventHandler(this.@__LoaD); + this.tableLayoutPanel1.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Label lbCntL; + private System.Windows.Forms.Label lbCntR; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label lbSumQty; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label7; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fFinishJob.cs b/Handler/Project_form2/Dialog/fFinishJob.cs new file mode 100644 index 0000000..710fc95 --- /dev/null +++ b/Handler/Project_form2/Dialog/fFinishJob.cs @@ -0,0 +1,102 @@ +using System; +using System.Drawing; +using System.Windows.Forms; +using System.Linq; +using System.Collections.Generic; + +namespace Project.Dialog +{ + public partial class fFinishJob : Form + { + + + string jobseqDate = string.Empty; + string jobseqNo = string.Empty; + + Class.CHistoryJOB JObHistory = null; + List OUTHistory = null; + + //arCtl.arLabel[] lbl_seq; + //Dialog.fBlurPanel fb; + DateTime JobStartTime, JobEndTime; + + public string Command = string.Empty; + + public fFinishJob(DateTime JobStarttime_, DateTime JobEndtime_, string jobseqDate_, string jobseqNo_, + Class.CHistoryJOB histJ_, + DataSet1.SIDHistoryDataTable histS_, List histO) + { + InitializeComponent(); + JobStartTime = JobStarttime_; + JobEndTime = JobEndtime_; + this.JObHistory = histJ_; + this.OUTHistory = histO; + + this.KeyPreview = true; + this.KeyDown += (s1, e1) => + { + if (e1.KeyCode == Keys.Escape) + { + Close(); + } + }; + jobseqDate = jobseqDate_; + jobseqNo = jobseqNo_; + + + if (System.Diagnostics.Debugger.IsAttached == false) + { + //fb = new Dialog.fBlurPanel(); + //fb.Show(); + } + + + //Pub.flag.set(eFlag.SCR_JOBFINISH, true, "SCR_FINSHJOB"); + this.FormClosed += fFinishJob_FormClosed; + } + + void fFinishJob_FormClosed(object sender, FormClosedEventArgs e) + { + // Comm.WebService.Message -= WebService_Message; + } + + private void button1_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void __LoaD(object sender, EventArgs e) + { + this.Text = string.Format("금일 작업 목록 입니다({0})", DateTime.Now.ToShortDateString()); + + int cntl = 0; + int cntr = 0; + float qty = 0; + + if (Pub.setting.OnlineMode) + using (var db = new EEEntities()) + { + var sd = DateTime.Parse(DateTime.Now.ToShortDateString() + " 00:00:00"); + var ed = DateTime.Parse(DateTime.Now.ToShortDateString() + " 23:59:59"); + + if (Pub.Result.JobStartTime.Year != 1982) sd = Pub.Result.JobStartTime; + if (Pub.Result.JobEndTime.Year != 1982) ed = Pub.Result.JobEndTime; + + label1.Text = string.Format("작업기간 {0}~{1}", sd.ToString("HH:mm:ss"), ed.ToString("HH:mm:ss")); + + var list = db.Component_Reel_Result.Where(t => t.STIME >= sd && t.STIME <= ed && t.PRNVALID == true && t.PRNATTACH == true); + if (list != null && list.Count() > 0) + { + cntl = list.Where(t => t.LOC == "L").GroupBy(t => t.RID0).Count(); + cntr = list.Where(t => t.LOC == "R").GroupBy(t => t.RID0).Count(); + } + int? dbqty = list.Sum(t => t.QTY); + if (dbqty != null) qty = ((int)dbqty); + } + lbCntL.Text = cntl.ToString(); + lbCntR.Text = cntr.ToString(); + lbSumQty.Text = qty.ToString(); + } + + } +} diff --git a/Handler/Project_form2/Dialog/fFinishJob.resx b/Handler/Project_form2/Dialog/fFinishJob.resx new file mode 100644 index 0000000..c37210f --- /dev/null +++ b/Handler/Project_form2/Dialog/fFinishJob.resx @@ -0,0 +1,377 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAMAMDAAAAEAIACoJQAANgAAACAgAAABACAAqBAAAN4lAAAQEAAAAQAgAGgEAACGNgAAKAAAADAA + AABgAAAAAQAgAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgaZsA5C1 + fwOTuIIDkbaAA5K3gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3 + gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3 + gQOSt4EDkreBA5G2gAOTuIIDkLV/A4GmbAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAfaJmBAAAAAB6n2IdfaJmkoescoeIrnSDh61zhIitc4SIrXOEiK1zhIitc4SIrXOEiK1zhIit + c4SIrXOEiK1zhIitc4SIrXOEiK1zhIitc4SIrXOEiK1zhIitc4SIrXOEiK1zhIitc4SIrXOEiK1zhIit + c4SIrXOEiK1zhIitc4SIrXOEiK1zhIitc4SIrXOEiK1zhIetc4SIrnSDh6xyh32iZpJ6n2IdAAAAAH2i + ZgQAAAAAAAAAAAAAAAAAAAAAiKx0BwAAAACApWk1ia52/6DElP+kyJn9osaW/qLGl/+ixpf/osaX/6LG + l/+ixpf/osaX/6LGl/+ixpf/osaX/6LGl/+ixpf/osaX/6LGl/+ixpf/osaX/6LGl/+ixpf/osaX/6LG + l/+ixpf/osaX/6LGl/+ixpf/osaX/6LGl/+ixpf/osaX/6LGl/+ixpf/osaX/6LGlv6kyJn9oMSU/4mu + dv+ApWk1AAAAAIisdAcAAAAAAAAAAAAAAAAAAAAAl7uIBgAAAACIrXQrmr6M47/ivf3E58P8weS/+sLk + wPvC5MD7wuTA+8LkwPvC5MD7wuTA+8LkwPvC5MD7wuTA+8LkwPvC5MD7wuTA+8LkwPvB5MD7wuTA+8Lk + wPvC5MD7wuTA+8LkwPvC5MD7wuTA+8LkwPvC5MD7wuTA+8LkwPvC5MD7wuTA+8LkwPvC5MD7wuTA+8Hk + v/rE58P8v+K9/Zq+jOOIrXQrAAAAAJe7iAYAAAAAAAAAAAAAAAAAAAAAlLiEBgAAAACHq3Itl7uH67nc + tf++4bz+u964/bzfuf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzf + uf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzf + uf6837n+vN+5/rveuP2+4bz+udy1/5e7h+uHq3ItAAAAAJS4hAYAAAAAAAAAAAAAAAAAAAAAlLiEBgAA + AACHq3Isl7uI67rdtv+/4r3/vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzf + uf694Lr+vN+5/r3guv694Lr+vN+5/rzfuf694Lr+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzf + uf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJS4hAYAAAAAAAAAAAAA + AAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/73guv+94Lr/veC6/73g + uv+837n/veC6/73guv+73rf/weO//7ndtf+z163/weTA/7zfuf+837n/veC6/7zfuf+94Lr/veC6/73g + uv+94Lr/veC6/73guv+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5 + hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/73g + uv+94Lr/veC6/7zfuf+94Lr/vN+5/7veuP/C5MH/stet/6bHm/+oxpz/qc6h/7/ivf++4bz/u964/73g + uv+837n/veC6/73guv+94Lr/veC6/73guv+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7 + iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3g + uv+94Lr/veC6/73guv+94Lr/vN+5/73guv+837n/vd+5/8Djvv+02bD/p8ic/8LTt//R3cn/q8ef/67R + p/+94bv/v+K9/7veuP+94Lr/vN+5/73guv+94Lr/veC6/73guv+94Lr/veC6/73guv+94Lr/veC6/7zf + uf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rd + tv+/4r3/vN+5/r3guv+94Lr/veC6/73guv+837n/veC6/7zfuf+94Lr/vuG8/7fasv+mx5v/xte8//b4 + 9P/9/f3/3ObW/6zHoP+u0qf/veG7/77hvP+837n/veC6/73guv+94Lr/veC6/73guv+94Lr/veC6/73g + uv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAA + AACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/73guv+94Lr/vN+5/73guv++4bz/uNu0/6XH + mv/I2b7/9Pfy/////////////f39/9zm1v+tyKD/rtGm/7/ivf+94Lr/vN+5/7zfuf+94Lr/veC6/73g + uv+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAA + AAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/7zfuf+94Lr/u964/8Hj + v/+22bH/o8SX/83exv/2+fX///////39/P/+/f3///////7+/f/h69z/rsmh/6nNn//C5cH/vN+4/7zf + uf+94Lr/vN+5/73guv+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5 + hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/73g + uv+837j/wuTA/7LXrf+nx5z/zNvE//b49P//////+/v6/8bWvP+uxaH/7vLr//7+/v/+////4Oja/7LK + pv+ozJ//wuXB/73guv+837n/veC6/7zfuf+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7 + iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3g + uv+94Lr/vN+5/7zfuf++4Lv/t9uz/6rLoP/C1Lj//Pz7///////4+ff/zNvF/6fInP+kyJr/uM6t/+zw + 6P/+/v7///7//+Do2v+yy6f/qc2h/7/ivf++4bz/u964/73guv+837n/veC6/73guv+94Lr/veC6/7zf + uf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rd + tv+/4r3/vN+5/r3guv+94Lr/vN+5/7zfuf++4Lv/t9uz/6rKn//C07j//v7+//z8+//N28T/qMec/7ba + sv/B47//p8qd/7nOrv/q8Of///////7+/v/g6dv/rcih/63Rpf+94bv/v+K9/7veuP+94Lr/vN+5/73g + uv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAA + AACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/73guv+73rj/wuXB/7HVq/+pyJ7/z97I/9Pg + zf+ryZ//stas/8LkwP+94Lr/vuG8/6PGmP+90rT/6/Dn///////8/fv/3+rb/6/Ko/+u0ab/vOC5/7/h + vP+837n/veC6/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAA + AAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/7zfuf+94Lr/u964/7/j + vf+53LX/o8SY/6PFmP+53LX/wOO+/7veuP+837n/veC6/8Djvv+lyZv/uc+v/+rv5////////f79/+bs + 4f+tx6H/rNCl/8Djvv+837n/vN+5/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5 + hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/73g + uv+94Lr/vN+5/73guv+84Lr/ut22/7rdtv+84Lr/veC6/7zfuf+837n/veC6/73guv+/4rz/p8ue/7bO + q//r8ej///////7+/v/l7OH/ssun/6jNoP/B47//vN+5/7zfuf+94Lr/veC6/7zfuf6/4r3/ut22/5e7 + iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlLiEBgAAAACHq3Itl7uI67rdtv+/4r3/vN+5/r3g + uv+94Lr/veC6/73guv+837n/veC6/7zfuf+94Lr/vuG8/77hvP+94Lr/vN+5/73guv+94Lr/vN+5/7zf + uf+/4bz/vOC5/6jLnv+zy6j/7/Ps///////09vL/tcup/6PImf/C5MD/vN+5/7zfuf+94Lr/veC6/7zf + uf6/4r3/ut22/5e7iOuHq3ItAAAAAJS4hAYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3MsmLuI57rd + tv+/4r3/vN+5/r3guv+94Lr/veC6/73guv+94Lr/vN+5/73guv+837n/vN+5/7zfuf+837n/veC6/7zf + uf+837n/veC6/73guv+73rj/weO//7ndtf+qzKH/uc6t/9bhzv/A07b/sM+n/7fbs/++4Lv/vN+5/7zf + uf+94Lr/veC6/7zfuf6/4r3/ut22/5i7iOeHq3MsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAk7eDBgAA + AACGqnEwlbmG9rrdtv+/4r3+vN+5/r3guv+94Lr/veC6/73guv+94Lr/veC6/73guv+94Lr/veC6/73g + uv+94Lr/veC6/73guv+94Lr/veC6/7zfuf+94Lr/u963/8Djvv+94Lr/qMqe/6vHnv+nyJv/ttqy/8Hk + v/+83rj/veC6/73guv+94Lr/veC6/7zfuf6/4r3+ut22/5W5hvaGqnEwAAAAAJO3gwYAAAAAAAAAAAAA + AAAAAAAAkraCBwAAAACFqnI1lLiF/7nctf+/4r39vN+4/r3guv+94Lr/veC6/73guv+94Lr/veC6/73g + uv+94Lr/veC6/73guv+837n/veC6/7zfuf+837n/vN+5/7zfuf+837n/veC6/7veuP++4Lv/wOK+/7HV + q/+94Lr/v+K9/7veuP+94Lr/vN+5/73guv+94Lr/veC6/7zfuP6/4r39udy1/5S4hf+FqnI1AAAAAJK2 + ggcAAAAAAAAAAAAAAAAAAAAAlLmFBwAAAACIrXU0lruI/7ndtv+/4r39vN+5/r3guv+94Lr/veC6/73g + uv+94Lr/veC6/73guv+94Lr/veC6/73guv+84Lr/vN+5/73guv+94Lr/veC6/73guv+94Lr/veC6/73g + uv+837n/vN+5/73gu/+837n/vN+5/73guv+837n/veC6/73guv+94Lr/veC6/7zfuf6/4r39ud22/5a7 + iP+IrXU0AAAAAJS5hQcAAAAAAAAAAAAAAAAAAAAAlLmFBwAAAACHrXU0lruI/7ndtv+/4r39vN+5/r3g + uv+94Lr/veC6/73guv+94Lr/veC6/73guv+94Ln/veC6/73guv+837n/vN+5/7zfuf+94Lv/vuG8/77h + vP+94Lv/vN+5/7zfuf+837n/veC6/73guv+94Lr/vN+5/73guv+94Lr/veC6/73guv+94Lr/veC6/7zf + uf6/4r39ud22/5a7iP+HrXU0AAAAAJS5hQcAAAAAAAAAAAAAAAAAAAAAk7iEBwAAAACHrXU0lruH/7nd + tv+/4r39vN+5/r3guv+94Lr/veC6/73guv+94Lr/veC6/7zfuf+94Lr/vN+5/7zfuf+837n/weS//7zf + uf+sz6P/oMWW/6DFlv+sz6T/vN+5/8Hkv/+837n/vN+5/7zfuf+94Lr/veC6/7zfuf+94Lr/veC6/73g + uv+94Lr/veC6/7zfuf6/4r39ud22/5a7h/+HrXU0AAAAAJO4hAcAAAAAAAAAAAAAAAAAAAAAlLmFBwAA + AACHrXU0lruH/7ndtv+/4r39vN+5/r3guv+94Lr/veC6/73guv+94Lr/veC6/73guv+837n/veC6/77h + u/+63bf/qMyg/5vBkP+awpD/mMGP/5fBj/+awpH/m8GQ/6jMn/+63rf/vuG7/73guv+837n/veC6/73g + uv+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r39ud22/5a7h/+HrXU0AAAAAJS5hQcAAAAAAAAAAAAA + AAAAAAAAlLmFBwAAAACHrXU0lruH/7ndtv+/4r39vN+5/r3guv+94Lr/veC6/73guv+94Lr/vN+5/7zf + uf+837n/veC5/7rdtv+kyJr/krmF/5G7h/+ZxJL/n8qa/57Kmv+ZxJL/kbqG/5K5hf+kyZr/ut23/7zg + uf+84Ln/vN+5/7zfuf+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r39ud22/5a7h/+HrXU0AAAAAJS5 + hQcAAAAAAAAAAAAAAAAAAAAAk7iEBwAAAACHrXU0lruH/7nctf+/4r39u9+4/rzfuf+837n/vN+5/7zf + uf+837n/vN+5/7zfuP++4bv/vN+5/6XJm/+QuIL/mMOR/6POoP+eyZn/nciY/57ImP+eyZn/o86g/5jD + kf+QuIP/psmd/7zfuf++4bv/vN+4/7zfuf+837n/vN+5/7zfuf+837n/vN+5/7vfuP6/4r39udy1/5a7 + h/+HrXU0AAAAAJO4hAcAAAAAAAAAAAAAAAAAAAAAlLmFBwAAAACIrXU0lruI/7rdtv/A4779vN+5/r3g + uv+94Lr/veC6/73guv+94Lr/veC6/73guv/A4r7/uNu0/4+1gP+Yw5H/oMyd/53Hl/+dyJj/nciY/53I + mP+dyJj/nceX/6DMnf+Yw5H/j7WA/7nbtf/A4r7/vOC5/73guv+94Lr/veC6/73guv+94Lr/veC6/7zf + uf7A4779ut22/5a7iP+IrXU0AAAAAJS5hQcAAAAAAAAAAAAAAAAAAAAAlLmGBwAAAACIrnY0l7yJ/7ve + uP/B5MD9veG7/r7hvP++4bz/vuG8/77hvP++4bz/vuG7/8Djvv+837n/qc6h/5S9iv+axZT/n8qb/53I + mP+eyZn/nsmZ/57Jmf+eyZn/nciY/5/Km/+axZT/lLyJ/6rOof+837n/wOO+/77hu/++4bz/vuG8/77h + vP++4bz/vuG8/77hu/7B5MD9u964/5e8if+IrnY0AAAAAJS5hgcAAAAAAAAAAAAAAAAAAAAAh6tyBwAA + AACApGk1iKx0/53BkP+hxZX9n8OT/6DElP+gxJT/oMSU/6DElP+gxJT/n8OT/6LGl/+avo3/i7F7/5nE + kv+eyZn/nciY/53ImP+dyJj/nsmZ/57Jmf+dyJj/nciY/53ImP+eyZn/mcOS/4uxev+avo3/osaX/5/D + k/+gxJT/oMSU/6DElP+gxJT/oMSU/5/Dk/+gxJX9ncGQ/4isdP+ApGk1AAAAAIercwcAAAAAAAAAAAAA + AAAAAAAAia12BgAAAAB9oWYtjK957qrOov+iyZr+mMCO/pjBj/6YwY//mMGP/5jBj/+YwY//mMGP/5nC + kP+Wv4z/kruI/5zHl/+eyZn/nciY/53ImP+eyZn/nsmZ/57Jmf+eyZn/nciY/53ImP+eyZr/nMiX/5K7 + h/+Wv4z/mcKQ/5jBj/+YwY//mMGP/5jBj/+YwY//mMGP/pjBjv6jypr+qs6i/4yvee59oWUtAAAAAImt + dQYAAAAAAAAAAAAAAAAAAAAAjbJ8BQAAAAB1mlwhkraCwr/ivf613LT/os2e/Z7Kmv+gy5z/n8ub/5/L + m/+fy5v/n8ub/5/Lm/+gy5z/ocye/57Jmf+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+dyJj/nsmZ/6HMnv+gy5z/n8ub/5/Lm/+fy5v/n8ub/5/Lm/+gy5z/nsqa/6LNnv223LT/v+K9/pK2 + gcJ1mlwhAAAAAI6yfAUAAAAAAAAAAAAAAAAAAAAAgadsAwAAAABTfC8Phqxzfq7Sp/W427T/p8+i/JrG + lf6eyZn/nciY/53ImP+dyJj/nciY/53ImP+dyJj/nciY/53ImP+eyZn/nciY/57JmP+eyZn/nsmZ/57J + mf+eyZn/nsmY/53ImP+eyZn/nciY/53Il/+dyJj/nciY/53ImP+dyJj/nciY/53ImP+eyZn/msaV/qfP + ovy427P/rtGm9YetdH1UfDIPAAAAAIKobQMAAAAAAAAAAAAAAAAAAAAAAAAAANT33wEAAAAAfKFlIpe7 + itm32bH/r9ar/ZvGlf6eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/m8aV/q/Wq/232bH/lruH2XimZiEAAAAA1efOAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIyw + ewMAAAAAdZpeComtd7S016/9tty0/6HLnP2dyJj+nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+dyJj+ocuc/bfdtP+01679ia11tXWaWwoAAAAAjLB5AwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAIOpcAIAAAAAWYE6BX6kaXyv0afuut23/6nRpfubx5b/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+bx5b/qdGk+7rdtv+u0abugKRqeluAOwUAAAAAhalxAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHebWySbv47GtNau/7LYsPubx5b+nsmZ/p7I + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciZ/57Jmf6bx5b+stiv+7PWrf+bv43FeppfIwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMs3wBAAAAAAAAAACDq3GgrNGl/7vg + uf6gypv9nsmZ/53ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciY/57Jmf+gypv9u+C5/q3Q + pf+FqXCfAAAAAAAAAACOsnwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIq3IBAAAAAAAA + AAB7oWR0qM2f6Lzguf+q0aX8nciX/53ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciY/53I + l/+q0qX8u+C5/6nNoOd8oGZzAAAAAAAAAACIqnMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABojlAoncGRuLPWrf+02rH6nMeX/pzIl/6dyJj+nciY/p3ImP6dyJj+nciY/p3I + mP6dyJj+nciY/p3ImP6dyJj+nciY/p3ImP6dyJj+nciY/p3ImP6dyJj+nciY/p3ImP6dyJj+nciY/p3I + mP6dyJj+nMiX/pzHl/602rH6s9at/53BkbhpjEsnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJm6iAIAAAAAh6x0f6bJm/+74Lr8oMqc/pvHlv6bx5b+nMeW/pzH + lv6cx5b+nMeW/pzHlv6cx5b+nMeW/pzHlv6cx5b+nMeW/pzHlv6cx5b+nMeW/pzHlv6cx5b+nMeW/pzH + lv6cx5b+nMeW/pzHlv6bx5b+m8eW/qDLnP674Lr8psmb/4esdH8AAAAAmbqIAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIisdQIAAAAAd5xfZaHElebF6MX8u9+5+brf + uPq637j6ut+4+rrfuPq637j6ut+4+rrfuPq637j6ut+4+rrfuPq637j6ut+4+rrfuPq637j6ut+4+rrf + uPq637j6ut+4+rrfuPq637j6ut+4+rrfuPq637j6ut+4+rvgufnF6MX8ocSV5necXmQAAAAAiKx0AgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH+obAEAAAAAapRRJpG3 + gamixpb/qMuf/KnMn/6py5//qcuf/6nLn/+py5//qcuf/6nLn/+py5//qcuf/6nLn/+py5//qcuf/6nL + n/+py5//qcuf/6nLn/+py5//qcuf/6nLn/+py5//qcuf/6nLn/+py5//qcyf/qjLn/yixpb/kbaBqGuS + UCUAAAAAgKdsAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACet4sCAAAAAH2lZ0KGq3KVjrN+ho6yfYiNsn2IjrJ9iI6yfYiOsn2IjrJ9iI6yfYiOsn2IjrJ9iI6y + fYiOsn2IjrJ9iI6yfYiOsn2IjrJ9iI6yfYiOsn2IjrJ9iI6yfYiOsn2IjrJ9iI6yfYiNsn2IjrJ9iI6z + foaGq3KVfqRoQgAAAACWuoQCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIatcgGQtX8DmLyKA5i8igOXu4kDmLyKA5i8 + igOYvIoDmLyKA5i8igOYvIoDmLyKA5i8igOYvIoDmLyKA5i8igOYvIoDmLyKA5i8igOYvIoDmLyKA5i8 + igOYvIoDmLyKA5i8igOXu4kDmLyKA5i8igOQtX8DhqxzAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///////wAA////////AAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgA + AAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAf + AAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgA + AAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAf + AAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA/AAAAAA/AAD8AAAAAD8AAPwA + AAAAPwAA/gAAAAB/AAD+AAAAAH8AAP4AAAAAfwAA/wAAAAD/AAD/AAAAAP8AAP+AAAAB/wAA/4AAAAH/ + AAD/gAAAAf8AAP/AAAAD/wAA////////AAD///////8AACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/pGgBAAAAAHugZE6DqG1jhKpvW4Spbl2EqW5dhKluXYSp + bl2EqW5dhKluXYSpbl2EqW5dhKluXYSpbl2EqW5dhKluXYSpbl2EqW5dhKluXYSpbl2EqW5dhKluXYSp + bl2EqW5dhKpvW4OobWN7oGROAAAAAH+kaAEAAAAAAAAAAJq+jQQAAAAAjbF7vqjLnv+s0KP7qs6h/qvO + ov+rzqL/q86i/6vOov+rzqL/q86i/6vOov+qzqL/qs6i/6vOov+rzqL/q86i/6vOov+rzqL/q86i/6vO + ov+rzqL/q86i/6rOof6s0KP7qMue/42xe74AAAAAmr6NBAAAAAAAAAAArM+jBAAAAACZvYqtveC6/8Ll + wfjA4777weO//MDjv/vA47/7weO/+8Djv/vB47/7wOO++8Hjv/vA4777weO/+8Hjv/vB47/7wOO/+8Dj + v/vA47/7wOO/+8Djv/vB47/8wOO++8Llwfi94Lr/mb2KrQAAAACsz6MEAAAAAAAAAACny54EAAAAAJa6 + hrK427P/veC6+7ret/673rj+u964/rveuP673rf+u964/rrdt/6937r+u9+4/r3guv673rj+u963/rve + t/673rj+u964/rveuP673rj+u964/rveuP663rf+veC6+7jbs/+WuoayAAAAAKfLngQAAAAAAAAAAKjM + nwQAAAAAlrqHsbnctf++4bz7vN+5/r3guv+94Lr+veC6/7zfuf+73rj/vuG8/7ndtv+oyp7/rdCl/77i + vP+837r/vN+5/7zfuv+94Lr/veC6/73guv+94Lr+veC6/7zfuf6+4bz7udy1/5a6h7EAAAAAqMyfBAAA + AAAAAAAAqMyfBAAAAACWuoexudy0/77hu/u837n+veC6/7zfuf6837n+u964/r/hvP643bX+qsqg/tXf + zf7C1Lj+q8+j/r/ivf6837n+vN+5/r3guv6837n+vN+5/rzfuf694Lr/vN+5/r7hu/u53LT/lrqHsQAA + AACozJ8EAAAAAAAAAACozJ8EAAAAAJa6h7G53LT/vuG8+7zfuf694Lr/vN+5/rveuP+/4bz/uNy1/6vL + of/b5dX///////n6+f/C1bn/q8+j/7/ivf+837n/vN+5/73guv+94Lr/vN+5/r3guv+837n+vuG8+7nc + tP+WuoexAAAAAKjMnwQAAAAAAAAAAKjMnwQAAAAAlrqHsbnctP++4bz7vN+5/r3guv+837j+vuG8/7jc + tf+qyaD/3+nb///////n7eP/9ff0//3+/f/F17v/q86h/7/jvf+837n/vN+5/7zfuf+94Lr+veC6/7zf + uf6+4bz7udy0/5a6h7EAAAAAqMyfBAAAAAAAAAAAqMyfBAAAAACWuoexudy0/77hu/u837n+vN+5/73f + uv663rf/q8uh/+Ho2///////4ure/6TEmf+50K//9/j1//39/f/G1r3/q86j/7/ivf+837r/vN+4/7zf + uf694Lr/vN+5/r7hvPu53LT/lrqHsQAAAACozJ8EAAAAAAAAAACozJ8EAAAAAJa6h7G53LT/vuG7+7zf + uf6837n/vd+6/rret/+qyaD/5uzh/+ju5P+ryaD/u9+5/7DUqv+5z6//+Pn3//39/P/D1rr/q8+j/77i + vP+837n/vN+5/r3guv+837n+vuG8+7nctP+WuoexAAAAAKjMnwQAAAAAAAAAAKjMnwQAAAAAlrqHsbnc + tP++4bz7vN+5/r3guv+837j+vuG7/7jdtf+tzKT/rsyl/7ndtf++4Lv/v+K9/6/TqP+70bH/9ffz//3+ + /f/H177/rM+k/7/ivP+83rj+veC6/7zfuf6+4bz7udy0/5a6h7EAAAAAqMyfBAAAAAAAAAAAqMyfBAAA + AACWuoexudy0/77hu/u837n+veC6/7zfuf673rj/vuG7/7ndtv+53bb/vuG7/7veuP+837n/wOO+/67T + qP+40K7/9vn1///////A0rb/q9Ck/8Djvv673rj/vN+5/r7hu/u53LT/lrqHsQAAAACozJ8EAAAAAAAA + AACpzJ8EAAAAAJe6h6+53LX/vuG8+7zfuf694Lr/vN+5/rzfuf+837j/veC6/73gu/+837j/vN+5/7zf + uf+83rj/wOO+/63Spv+90rP/3+fY/7jRr/+z167/vuG8/rvfuP+837n+vuG8+7nctf+XuoevAAAAAKnM + nwQAAAAAAAAAAKfKngQAAAAAlLiFu7jbtP++4bv6vN+5/r3guv+94Lr+vN+5/7zguv+837n/vN+5/73f + uv+837n/vN+4/7veuP+73rj/wOO+/7LUq/+oyJz/tdiw/7/ivf+73rj+veC6/7zfuf6+4bv6uNu0/5S4 + hbsAAAAAp8qeBAAAAAAAAAAApsudBAAAAAGUuYbBuNu0/77hu/q837n/veC6/rzfuf694Lr/veC5/73g + uv+84Lr/u964/7zfuf++4bz/vuG8/7zfuf+73rj/vuG8/7vfuf++4bv/u964/7zfuf694Lr+vN+5/77h + u/q427T/lLmGwQAAAAGmy50EAAAAAAAAAACny50EAAAAAJW7h8G43LT/vuG8+rzfuf+94Lr+vN+5/rzf + uf+837n/vN+5/7veuP+/4rz/vuC7/7XYsP+12LD/veC7/7/ivf+73rj/vd+6/7zfuf+837n/veC6/r3g + uv6837n/vuG8+rjctP+Vu4fBAAAAAKfLnQQAAAAAAAAAAKfLnQQAAAAAlbqGwbjctP++4bz6vN+5/73g + uv694Lr+veC6/7zfuf+837n/vuG7/7LWrf+ix5j/mcGP/5nBkP+ix5j/stas/77hu/+837n/vN+5/7zf + uf+94Lr+veC6/rzfuf++4bz6uNy0/5W6hsEAAAAAp8udBAAAAAAAAAAAp8ucBAAAAACVuobBt9uz/73g + u/q73rj/vN+4/rzfuP673rj/u963/73guv+u0qf/k7uH/5XAjv+dyJj/nciY/5XAjf+Tu4f/r9Ko/73g + uv+73rf/u964/7zfuP6837j+u964/73gu/q327P/lbqGwQAAAACny5wEAAAAAAAAAACozKAEAAAAAJa7 + iMG73rf/wOO/+r7hu/++4bz/vuG8/r7hu//A477/vN64/5O6h/+axpX/oMuc/53Hl/+dx5f/oMuc/5rG + lf+Uuof/vN65/8Djvv++4bv/vuG8/r7hvP++4bv/wOO/+rvet/+Wu4jBAAAAAKjMnwQAAAAAAAAAAKDE + lAQAAAABkbWBwa/SqP+22bH6tNeu/7TXr/6016//tNeu/7bZsf+jx5n/lb+N/57Jmv+cx5f/nciY/53I + mP+cx5f/nsma/5W/jP+jx5n/ttmx/7TXrv+016//tNev/rTXrv+22bH6r9Ko/5G2gcEAAAABn8SVBAAA + AAAAAAAAl7uIBAAAAACKrXe5ocaX/5rBkPqYv43+mMCO/5jAjf6YwI7/mMCO/5C4hP+bxpb/nciY/53I + mP+dyJj/nciY/53ImP+dyJj/m8eW/5C4g/+YwI7/mMCO/5jAjf6YwI7/mL+N/prCkPqhxpf/iq13uQAA + AACXu4kEAAAAAAAAAACny58DAAAAAJC0f4i43LX/qNGl+5zIl/6eypr/ncmZ/p3Jmf+eyZn/n8qc/53I + mP+dyJj/nsmY/57Jmf+eyZn/nsmY/53ImP+dyJj/n8qb/57Jmf+dyZn/ncmZ/p7Kmv+cyJf+qNGl+7nc + tf+QtH6HAAAAAKjMngMAAAAAAAAAAJa7iQEAAAAAdZxeLKfKneix163/m8aV/Z7Imf+dyJj+nciY/53I + mP+dyJj/nciY/53ImP+dyJj/nsmZ/57Jmf+dyJj/nciY/53ImP+dyJj/nciY/53ImP+dyJj+nsiZ/5vG + lf2x163/psmb6HSeXiwAAAAAlryIAQAAAAAAAAAAAAAAAAAAAAAAAAADmLuKvbjctf+hy5z7nMiX/p7J + mf+eyZn+nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/p7J + mf+cyJf+ocuc+7jctf+Yu4m9AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAu924AgAAAACNsntlsdOq/arS + p/yaxpX9nsmZ/p3ImP6dyJj+nciY/p3ImP6dyJj+nciY/p3ImP6dyJj+nciY/p3ImP6dyJj+nciY/p3I + mP6dyJj+nsmZ/prGlf2q0qb8sNOp/I6yfGQAAAAAt9yzAgAAAAAAAAAAAAAAAAAAAACBqG0CAAAAAGWP + Syiix5jntduz/5zHl/yeyJn/nsmZ/p7Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf6eyJn/nMeX/LXbs/+jxpjnZ4xKKAAAAACDp20CAAAAAAAAAAAAAAAAAAAAAHSZ + WwEAAAAABC4AB5q/jZ+12bD/oMqb+5jEk/6bxpX+msaV/prGlf6axpX+msaV/prGlf6axpX+msaV/prG + lf6axpX+msaV/prGlf6axpX+m8aV/pjEk/6gy5v7tdmw/5u/jp4CJgAHAAAAAHSYWwEAAAAAAAAAAAAA + AAAAAAAAAAAAAIqudwIAAAAAfqNoWK7Rpv+027T6pM6g+6fRo/un0KP7p9Cj+6fQo/un0KP7p9Cj+6fQ + o/un0KP7p9Cj+6fQo/un0KP7p9Cj+6fQo/un0KP7pM6g+7TctPqu0ab/fqNoWAAAAACKrncCAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAeaBjAQAAAABnj0wmncGQz6/SqP+v0qf9r9Gn/6/Rp/+v0af/r9Gn/6/R + p/+v0af/r9Gn/6/Rp/+v0af/r9Gn/6/Rp/+v0af/r9Gn/6/Rp/+v0qf9r9Ko/53BkM9njUolAAAAAHqf + YgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8o2Y+iK12Zoywe12Lr3pfjK96X4yv + el+Mr3pfjK96X4yvel+Mr3pfjK96X4yvel+Mr3pfjK96X4yvel+Mr3pfi696X4ywe12IrXZmfaNmPgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///////////gAAAH4AAAB+AAAAfgAAAH4AAAB+AA + AAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AA + AAfwAAAP8AAAD/gAAB/4AAAf+AAAH/wAAD/8AAA///////////8oAAAAEAAAACAAAAABACAAAAAAAAAE + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAH2iZxiGq3E8iK1zNoesczeHrHM3h6xyN4arcTeHrHM3h6xzN4es + czeHrHM3iK1zNoarcTx9omcYAAAAAAAAAACUuIRer9Oo/7TXrvaz1q35s9at+bTXrvm12LD5s9at+bPW + rfmz1q35s9at+bTXrvav06j/lLiEXgAAAAAAAAAAm7+NXbrdtv+/4r77vuG7/r/ivf+737j/stas/73h + u/+/4b3/vuG8/77hvP6/4r77ut22/5u/jV0AAAAAAAAAAJm9i12427P/veC6+73guv623LP+wNq5/ubs + 4f631rH+ud63/r3guv6837n+veC7+7jbs/+ZvYtdAAAAAAAAAACZvYtduNu0/77hvPu43bX+wdq7/u3x + 6f7a5tX+6/Dn/rjWsf653rb+veC6/r3gu/u427T/mb2LXQAAAAAAAAAAmb2LXbjbtP++4bz7uN21/sLa + vP7F3L//rdSn/87gyf/t8er/vNm3/rret/6+4bv7uNu0/5m9i10AAAAAAAAAAJm9i12427T/veC7+73g + uv653bX+uN21/7/ivf+y2K3/z+HJ/9PgzP6z2K/+v+K9+7jbs/+ZvYtdAAAAAAAAAACXvIpjt9uz/77h + u/u837n/veC6/r7gu/++4bv/wOO+/7fbs/+117D+veC6/77hu/u327P/l7yKYwAAAAAAAAAAmL2KZbfa + s/+94Lv7u9+4/73guv663bb/qs+k/6rPo/+73rj/vuG7/rveuP+94Lv7t9qz/5i9imUAAAAAAAAAAJi9 + i2W53LX/wOK++7/hvP+937n+nsWV/5nEk/+ZxJL/nsWV/73fuf6/4bz/wOK++7nctf+YvYtlAAAAAAAA + AACTtoJlp8yf/6fNoPupzqH/oceY/pnEk/+fypr/n8qa/5nEk/+hx5j+qM6h/6fNoPuozJ//k7aCZQAA + AAAAAAAAkbN/NKjOovubx5b/msaV/pvHlv6eyJn+nciY/p3ImP6eyZn+m8eW/prGlf6bx5b/qM6i+5G0 + fjQAAAAAAAAAAAAAAACpzaHBpM2g/53ImPyeyZn+nsmZ/p7Jmf6eyZn+nsmZ/p7Jmf6dyJj8pM2f/6nN + oMEAAAAAAAAAAKvPowMAAAAAn8OTcKnRpf+bx5b8ncmY/p3ImP+dyJj/nciY/53ImP+dyJj+m8eW/KnR + pf+gwpNvAAAAAKvPowOMsXsBAAAAAIKlayKozaDrqc+j/ajOofmozqH6qM6h+qjOofqozqH6qM6h+anP + o/2ozaDqgqVrIgAAAACNsXsBAAAAAAAAAAAAAAAAiq93LZq7ijuauok4mrqJOZq6iTmauok5mrqJOZq6 + iTiau4o7iq53LQAAAAAAAAAAAAAAAP//AADAAwAAwAMAAMADAADAAwAAwAMAAMADAADAAwAAwAMAAMAD + AADAAwAAwAMAAMADAADgBwAA4AcAAP//AAA= + + + \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fImportSIDConv.Designer.cs b/Handler/Project_form2/Dialog/fImportSIDConv.Designer.cs new file mode 100644 index 0000000..ebd2df3 --- /dev/null +++ b/Handler/Project_form2/Dialog/fImportSIDConv.Designer.cs @@ -0,0 +1,366 @@ +namespace Project.Dialog +{ + partial class fImportSIDConv + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fImportSIDConv)); + this.dataSet1 = new Project.DataSet1(); + this.bs = new System.Windows.Forms.BindingSource(this.components); + this.ta = new Project.DataSet1TableAdapters.Component_Reel_SIDConvTableAdapter(); + this.tam = new Project.DataSet1TableAdapters.TableAdapterManager(); + this.bn = new System.Windows.Forms.BindingNavigator(this.components); + this.bindingNavigatorAddNewItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorCountItem = new System.Windows.Forms.ToolStripLabel(); + this.bindingNavigatorDeleteItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMoveFirstItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMovePreviousItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorPositionItem = new System.Windows.Forms.ToolStripTextBox(); + this.bindingNavigatorSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorMoveNextItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMoveLastItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.component_Reel_SIDConvBindingNavigatorSaveItem = new System.Windows.Forms.ToolStripButton(); + this.btImpo = new System.Windows.Forms.ToolStripButton(); + this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripLabel1 = new System.Windows.Forms.ToolStripLabel(); + this.tbFind = new System.Windows.Forms.ToolStripTextBox(); + this.component_Reel_SIDConvDataGridView = new System.Windows.Forms.DataGridView(); + this.progressBar1 = new System.Windows.Forms.ProgressBar(); + this.idxDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.m101DataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.m103DataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.m106DataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.remarkDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.m108DataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bs)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bn)).BeginInit(); + this.bn.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.component_Reel_SIDConvDataGridView)).BeginInit(); + this.SuspendLayout(); + // + // dataSet1 + // + this.dataSet1.DataSetName = "DataSet1"; + this.dataSet1.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + // + // bs + // + this.bs.DataMember = "Component_Reel_SIDConv"; + this.bs.DataSource = this.dataSet1; + // + // ta + // + this.ta.ClearBeforeFill = true; + // + // tam + // + this.tam.BackupDataSetBeforeUpdate = false; + this.tam.Component_Reel_SIDConvTableAdapter = this.ta; + this.tam.Component_Reel_SIDInfoTableAdapter = null; + this.tam.UpdateOrder = Project.DataSet1TableAdapters.TableAdapterManager.UpdateOrderOption.InsertUpdateDelete; + // + // bn + // + this.bn.AddNewItem = this.bindingNavigatorAddNewItem; + this.bn.BindingSource = this.bs; + this.bn.CountItem = this.bindingNavigatorCountItem; + this.bn.DeleteItem = this.bindingNavigatorDeleteItem; + this.bn.Dock = System.Windows.Forms.DockStyle.Bottom; + this.bn.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.bindingNavigatorMoveFirstItem, + this.bindingNavigatorMovePreviousItem, + this.bindingNavigatorSeparator, + this.bindingNavigatorPositionItem, + this.bindingNavigatorCountItem, + this.bindingNavigatorSeparator1, + this.bindingNavigatorMoveNextItem, + this.bindingNavigatorMoveLastItem, + this.bindingNavigatorSeparator2, + this.bindingNavigatorAddNewItem, + this.bindingNavigatorDeleteItem, + this.component_Reel_SIDConvBindingNavigatorSaveItem, + this.btImpo, + this.toolStripSeparator1, + this.toolStripLabel1, + this.tbFind}); + this.bn.Location = new System.Drawing.Point(0, 477); + this.bn.MoveFirstItem = this.bindingNavigatorMoveFirstItem; + this.bn.MoveLastItem = this.bindingNavigatorMoveLastItem; + this.bn.MoveNextItem = this.bindingNavigatorMoveNextItem; + this.bn.MovePreviousItem = this.bindingNavigatorMovePreviousItem; + this.bn.Name = "bn"; + this.bn.PositionItem = this.bindingNavigatorPositionItem; + this.bn.Size = new System.Drawing.Size(819, 25); + this.bn.TabIndex = 0; + this.bn.Text = "bindingNavigator1"; + // + // bindingNavigatorAddNewItem + // + this.bindingNavigatorAddNewItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorAddNewItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorAddNewItem.Image"))); + this.bindingNavigatorAddNewItem.Name = "bindingNavigatorAddNewItem"; + this.bindingNavigatorAddNewItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorAddNewItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorAddNewItem.Text = "새로 추가"; + // + // bindingNavigatorCountItem + // + this.bindingNavigatorCountItem.Name = "bindingNavigatorCountItem"; + this.bindingNavigatorCountItem.Size = new System.Drawing.Size(27, 22); + this.bindingNavigatorCountItem.Text = "/{0}"; + this.bindingNavigatorCountItem.ToolTipText = "전체 항목 수"; + // + // bindingNavigatorDeleteItem + // + this.bindingNavigatorDeleteItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorDeleteItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorDeleteItem.Image"))); + this.bindingNavigatorDeleteItem.Name = "bindingNavigatorDeleteItem"; + this.bindingNavigatorDeleteItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorDeleteItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorDeleteItem.Text = "삭제"; + // + // bindingNavigatorMoveFirstItem + // + this.bindingNavigatorMoveFirstItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveFirstItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveFirstItem.Image"))); + this.bindingNavigatorMoveFirstItem.Name = "bindingNavigatorMoveFirstItem"; + this.bindingNavigatorMoveFirstItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveFirstItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveFirstItem.Text = "처음으로 이동"; + // + // bindingNavigatorMovePreviousItem + // + this.bindingNavigatorMovePreviousItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMovePreviousItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMovePreviousItem.Image"))); + this.bindingNavigatorMovePreviousItem.Name = "bindingNavigatorMovePreviousItem"; + this.bindingNavigatorMovePreviousItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMovePreviousItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMovePreviousItem.Text = "이전으로 이동"; + // + // bindingNavigatorSeparator + // + this.bindingNavigatorSeparator.Name = "bindingNavigatorSeparator"; + this.bindingNavigatorSeparator.Size = new System.Drawing.Size(6, 25); + // + // bindingNavigatorPositionItem + // + this.bindingNavigatorPositionItem.AccessibleName = "위치"; + this.bindingNavigatorPositionItem.AutoSize = false; + this.bindingNavigatorPositionItem.Name = "bindingNavigatorPositionItem"; + this.bindingNavigatorPositionItem.Size = new System.Drawing.Size(50, 23); + this.bindingNavigatorPositionItem.Text = "0"; + this.bindingNavigatorPositionItem.ToolTipText = "현재 위치"; + // + // bindingNavigatorSeparator1 + // + this.bindingNavigatorSeparator1.Name = "bindingNavigatorSeparator1"; + this.bindingNavigatorSeparator1.Size = new System.Drawing.Size(6, 25); + // + // bindingNavigatorMoveNextItem + // + this.bindingNavigatorMoveNextItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveNextItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveNextItem.Image"))); + this.bindingNavigatorMoveNextItem.Name = "bindingNavigatorMoveNextItem"; + this.bindingNavigatorMoveNextItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveNextItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveNextItem.Text = "다음으로 이동"; + // + // bindingNavigatorMoveLastItem + // + this.bindingNavigatorMoveLastItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveLastItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveLastItem.Image"))); + this.bindingNavigatorMoveLastItem.Name = "bindingNavigatorMoveLastItem"; + this.bindingNavigatorMoveLastItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveLastItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveLastItem.Text = "마지막으로 이동"; + // + // bindingNavigatorSeparator2 + // + this.bindingNavigatorSeparator2.Name = "bindingNavigatorSeparator2"; + this.bindingNavigatorSeparator2.Size = new System.Drawing.Size(6, 25); + // + // component_Reel_SIDConvBindingNavigatorSaveItem + // + this.component_Reel_SIDConvBindingNavigatorSaveItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.component_Reel_SIDConvBindingNavigatorSaveItem.Image = ((System.Drawing.Image)(resources.GetObject("component_Reel_SIDConvBindingNavigatorSaveItem.Image"))); + this.component_Reel_SIDConvBindingNavigatorSaveItem.Name = "component_Reel_SIDConvBindingNavigatorSaveItem"; + this.component_Reel_SIDConvBindingNavigatorSaveItem.Size = new System.Drawing.Size(23, 22); + this.component_Reel_SIDConvBindingNavigatorSaveItem.Text = "데이터 저장"; + this.component_Reel_SIDConvBindingNavigatorSaveItem.Click += new System.EventHandler(this.component_Reel_SIDConvBindingNavigatorSaveItem_Click); + // + // btImpo + // + this.btImpo.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.btImpo.Image = ((System.Drawing.Image)(resources.GetObject("btImpo.Image"))); + this.btImpo.ImageTransparentColor = System.Drawing.Color.Magenta; + this.btImpo.Name = "btImpo"; + this.btImpo.Size = new System.Drawing.Size(118, 22); + this.btImpo.Text = "Import(101-103)"; + this.btImpo.Click += new System.EventHandler(this.btImpo_Click); + // + // toolStripSeparator1 + // + this.toolStripSeparator1.Name = "toolStripSeparator1"; + this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25); + // + // toolStripLabel1 + // + this.toolStripLabel1.Name = "toolStripLabel1"; + this.toolStripLabel1.Size = new System.Drawing.Size(45, 22); + this.toolStripLabel1.Text = "검색(&F)"; + // + // tbFind + // + this.tbFind.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.tbFind.Name = "tbFind"; + this.tbFind.Size = new System.Drawing.Size(100, 25); + this.tbFind.KeyDown += new System.Windows.Forms.KeyEventHandler(this.toolStripTextBox1_KeyDown); + // + // component_Reel_SIDConvDataGridView + // + this.component_Reel_SIDConvDataGridView.AutoGenerateColumns = false; + this.component_Reel_SIDConvDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.component_Reel_SIDConvDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.idxDataGridViewTextBoxColumn, + this.m101DataGridViewTextBoxColumn, + this.m103DataGridViewTextBoxColumn, + this.m106DataGridViewTextBoxColumn, + this.remarkDataGridViewTextBoxColumn, + this.m108DataGridViewTextBoxColumn}); + this.component_Reel_SIDConvDataGridView.DataSource = this.bs; + this.component_Reel_SIDConvDataGridView.Dock = System.Windows.Forms.DockStyle.Fill; + this.component_Reel_SIDConvDataGridView.Location = new System.Drawing.Point(0, 0); + this.component_Reel_SIDConvDataGridView.Name = "component_Reel_SIDConvDataGridView"; + this.component_Reel_SIDConvDataGridView.RowTemplate.Height = 23; + this.component_Reel_SIDConvDataGridView.Size = new System.Drawing.Size(819, 463); + this.component_Reel_SIDConvDataGridView.TabIndex = 1; + // + // progressBar1 + // + this.progressBar1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.progressBar1.Location = new System.Drawing.Point(0, 463); + this.progressBar1.Name = "progressBar1"; + this.progressBar1.Size = new System.Drawing.Size(819, 14); + this.progressBar1.TabIndex = 2; + // + // idxDataGridViewTextBoxColumn + // + this.idxDataGridViewTextBoxColumn.DataPropertyName = "idx"; + this.idxDataGridViewTextBoxColumn.HeaderText = "idx"; + this.idxDataGridViewTextBoxColumn.Name = "idxDataGridViewTextBoxColumn"; + this.idxDataGridViewTextBoxColumn.ReadOnly = true; + // + // m101DataGridViewTextBoxColumn + // + this.m101DataGridViewTextBoxColumn.DataPropertyName = "M101"; + this.m101DataGridViewTextBoxColumn.HeaderText = "M101"; + this.m101DataGridViewTextBoxColumn.Name = "m101DataGridViewTextBoxColumn"; + // + // m103DataGridViewTextBoxColumn + // + this.m103DataGridViewTextBoxColumn.DataPropertyName = "M103"; + this.m103DataGridViewTextBoxColumn.HeaderText = "M103"; + this.m103DataGridViewTextBoxColumn.Name = "m103DataGridViewTextBoxColumn"; + // + // m106DataGridViewTextBoxColumn + // + this.m106DataGridViewTextBoxColumn.DataPropertyName = "M106"; + this.m106DataGridViewTextBoxColumn.HeaderText = "M106"; + this.m106DataGridViewTextBoxColumn.Name = "m106DataGridViewTextBoxColumn"; + // + // remarkDataGridViewTextBoxColumn + // + this.remarkDataGridViewTextBoxColumn.DataPropertyName = "Remark"; + this.remarkDataGridViewTextBoxColumn.HeaderText = "Remark"; + this.remarkDataGridViewTextBoxColumn.Name = "remarkDataGridViewTextBoxColumn"; + // + // m108DataGridViewTextBoxColumn + // + this.m108DataGridViewTextBoxColumn.DataPropertyName = "M108"; + this.m108DataGridViewTextBoxColumn.HeaderText = "M108"; + this.m108DataGridViewTextBoxColumn.Name = "m108DataGridViewTextBoxColumn"; + // + // fImportSIDConv + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(819, 502); + this.Controls.Add(this.component_Reel_SIDConvDataGridView); + this.Controls.Add(this.progressBar1); + this.Controls.Add(this.bn); + this.Name = "fImportSIDConv"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "fImportSIDConv"; + this.Load += new System.EventHandler(this.fImportSIDConv_Load); + ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bs)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bn)).EndInit(); + this.bn.ResumeLayout(false); + this.bn.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.component_Reel_SIDConvDataGridView)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private DataSet1 dataSet1; + private System.Windows.Forms.BindingSource bs; + private DataSet1TableAdapters.Component_Reel_SIDConvTableAdapter ta; + private DataSet1TableAdapters.TableAdapterManager tam; + private System.Windows.Forms.BindingNavigator bn; + private System.Windows.Forms.ToolStripButton bindingNavigatorAddNewItem; + private System.Windows.Forms.ToolStripLabel bindingNavigatorCountItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorDeleteItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveFirstItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMovePreviousItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator; + private System.Windows.Forms.ToolStripTextBox bindingNavigatorPositionItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator1; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveNextItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveLastItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator2; + private System.Windows.Forms.ToolStripButton component_Reel_SIDConvBindingNavigatorSaveItem; + private System.Windows.Forms.DataGridView component_Reel_SIDConvDataGridView; + private System.Windows.Forms.ToolStripButton btImpo; + private System.Windows.Forms.ProgressBar progressBar1; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; + private System.Windows.Forms.ToolStripLabel toolStripLabel1; + private System.Windows.Forms.ToolStripTextBox tbFind; + private System.Windows.Forms.DataGridViewTextBoxColumn idxDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn m101DataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn m103DataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn m106DataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn remarkDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn m108DataGridViewTextBoxColumn; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fImportSIDConv.cs b/Handler/Project_form2/Dialog/fImportSIDConv.cs new file mode 100644 index 0000000..227e0b6 --- /dev/null +++ b/Handler/Project_form2/Dialog/fImportSIDConv.cs @@ -0,0 +1,152 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fImportSIDConv : Form + { + public fImportSIDConv() + { + InitializeComponent(); + } + + private void component_Reel_SIDConvBindingNavigatorSaveItem_Click(object sender, EventArgs e) + { + this.Validate(); + this.bs.EndEdit(); + this.tam.UpdateAll(this.dataSet1); + + } + + private void fImportSIDConv_Load(object sender, EventArgs e) + { + // TODO: 이 코드는 데이터를 'dataSet1.Component_Reel_SIDConv' 테이블에 로드합니다. 필요 시 이 코드를 이동하거나 제거할 수 있습니다. + this.ta.Fill(this.dataSet1.Component_Reel_SIDConv); + } + + private void btImpo_Click(object sender, EventArgs e) + { + //엑셀을 읽어와서 처리한다. + var od = new OpenFileDialog(); + od.RestoreDirectory = true; + od.Filter = "모든파일(*.*)|*.*"; + if (od.ShowDialog() != DialogResult.OK) return; + libxl.Book book; + var fi = new System.IO.FileInfo(od.FileName); + var ext = fi.Extension.ToLower(); + if (ext == ".xlsx") book = new libxl.XmlBook(); + else if (ext == ".xls") book = new libxl.BinBook(); + else + { + Util.MsgE("지원되지 않는 파일 입니다"); + return; + } + + var keyinfo = Properties.Settings.Default.libxl.Split('/'); + book.setKey(keyinfo[0], keyinfo[1]); + book.load(fi.FullName); + var sheet = book.getSheet(0); + + + var cs = sheet.firstCol(); + var ce = sheet.lastCol(); + var rs = sheet.firstRow(); + var re = sheet.lastRow(); + + this.progressBar1.Minimum = 0; + this.progressBar1.Maximum = re; + this.progressBar1.Value = 0; + + int cntA = 0; + int cntU = 0; + for (int row = rs; row <= re; row++) + { + if (this.progressBar1.Value < this.progressBar1.Maximum) + this.progressBar1.Value += 1; + var c1 = sheet.readStr(row, 0); + var c2 = sheet.readStr(row, 1); + if (c1.StartsWith("10") || c2.StartsWith("10")) + { + var M101 = string.Empty; + var M103 = string.Empty; + var M106 = string.Empty; + + if (c1.StartsWith("101")) M101 = c1.Trim(); + if (c1.StartsWith("103")) M103 = c1.Trim(); + if (c1.StartsWith("106")) M106 = c1.Trim(); + + if (c2.StartsWith("101")) M101 = c2.Trim(); + if (c2.StartsWith("103")) M103 = c2.Trim(); + if (c2.StartsWith("106")) M106 = c2.Trim(); + + if (M101.isEmpty() == false) + { + var plist = this.dataSet1.Component_Reel_SIDConv.Where(t => t.M101 == M101); + if (plist.Any() == false) + { + var newdr = this.dataSet1.Component_Reel_SIDConv.NewComponent_Reel_SIDConvRow(); + newdr.M101 = M101; + newdr.M103 = M103; + newdr.M106 = M106; + this.dataSet1.Component_Reel_SIDConv.AddComponent_Reel_SIDConvRow(newdr); + cntA += 1; + } + else + { + foreach (var item in plist) + { + if (M103.isEmpty() == false) item.M103 = M103; + if (M106.isEmpty() == false) item.M106 = M106; + item.EndEdit(); + cntU += 1; + } + } + } + } + else if (c1.isEmpty() && c2.isEmpty()) break; // + } + Util.MsgI(string.Format("추가:{0},변경:{1}", cntA, cntU)); + + } + + private void toolStripTextBox1_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + { + var search = this.tbFind.Text.Trim(); + if (search.isEmpty()) + { + this.bs.Filter = ""; + this.tbFind.BackColor = SystemColors.Window; + } + else + { + var list = new string[] { "M101", "M103", "M106" }; + var filter = string.Join(" like '%{0}%' or ", list); + filter += " like '%{0}%'"; + filter = string.Format(filter, search.Replace("'", "''")); + try + { + this.bs.Filter = filter; + this.tbFind.BackColor = Color.Lime; + this.tbFind.SelectAll(); + this.tbFind.Focus(); + } + catch (Exception ex) + { + this.tbFind.BackColor = Color.Tomato; + Pub.log.AddE("sid 변환 테이블 필터 오류 : " + ex.Message); + } + } + } + } + + } +} diff --git a/Handler/Project_form2/Dialog/fImportSIDConv.resx b/Handler/Project_form2/Dialog/fImportSIDConv.resx new file mode 100644 index 0000000..337b704 --- /dev/null +++ b/Handler/Project_form2/Dialog/fImportSIDConv.resx @@ -0,0 +1,222 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 117, 17 + + + 181, 17 + + + 243, 17 + + + 316, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC + pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++ + Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ + /5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA + zpX/v6RC8f/fWzFAjeH/p+Zp/J+QpfW/O0P3f3uq/v/mREPCYTIb6E+Qc//dCPjfk6FDWAM6APnz3w1/ + IPb735qsT7oB3em6YP+CcH2cEekGtCQZ/G+IN/xfE2v8vzLahHQD6AQYGAAkI9iedfyIaQAAAABJRU5E + rkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC + DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC + rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV + i9OIytR3EMNWcJ/BWH8A6j8/bOGFxwXNxYEvGbMQ9XnQ1/K78KfY3/VXzkMY0qFGG2H4RoLGQshJQNbG + 86CNhdrsX9a/uQZTPhQl4rMY4OLofbl3aX7I8uwPC7y/g1YdjyVJuEvT8e1tfwUYteHUxCCfHChDeHmG + QQvokjlOU+PbWA0x3pZnILVVI3uvQyHsbiLnqnGmRCF1NYD8pDhpRxOH7HQoAKZGkFKjceszQbpSrumX + bO+G80MFwKUTxgfgcO/b8D9IpXoFiiMDHIQm0skAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 + wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0 + v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg + UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA + Iu/O/9T+11gVGSSd+C+b9vW/bvA83AYYZt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPu + lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w + 5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f + Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+ + 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 + n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI + N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f + oAc0QjgAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// + h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B + twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA + kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG + WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9 + 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAExJREFUOE9joAr49u3bf1IxVCsEgAWC58Dxh/cf4RhZDETHTNiHaQgpBoAwzBCo + dtINAGGiDUDGyGpoawAxeNSAQWkAORiqnRLAwAAA9EMMU8Daa3MAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fImportSIDInfo.Designer.cs b/Handler/Project_form2/Dialog/fImportSIDInfo.Designer.cs new file mode 100644 index 0000000..f30e2f6 --- /dev/null +++ b/Handler/Project_form2/Dialog/fImportSIDInfo.Designer.cs @@ -0,0 +1,378 @@ +namespace Project.Dialog +{ + partial class fImportSIDInfo + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fImportSIDInfo)); + this.dataSet1 = new Project.DataSet1(); + this.bs = new System.Windows.Forms.BindingSource(this.components); + this.bn = new System.Windows.Forms.BindingNavigator(this.components); + this.bindingNavigatorAddNewItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorCountItem = new System.Windows.Forms.ToolStripLabel(); + this.bindingNavigatorDeleteItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMoveFirstItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMovePreviousItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorPositionItem = new System.Windows.Forms.ToolStripTextBox(); + this.bindingNavigatorSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorMoveNextItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMoveLastItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.component_Reel_SIDConvBindingNavigatorSaveItem = new System.Windows.Forms.ToolStripButton(); + this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripLabel1 = new System.Windows.Forms.ToolStripLabel(); + this.tbFind = new System.Windows.Forms.ToolStripTextBox(); + this.toolStripButton1 = new System.Windows.Forms.ToolStripButton(); + this.component_Reel_SIDConvDataGridView = new System.Windows.Forms.DataGridView(); + this.sIDDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.custCodeDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.custNameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.venderNameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.partNoDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.printPositionDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.remarkDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.progressBar1 = new System.Windows.Forms.ProgressBar(); + this.ta = new Project.DataSet1TableAdapters.Component_Reel_SIDInfoTableAdapter(); + this.toolStripButton2 = new System.Windows.Forms.ToolStripButton(); + ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bs)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bn)).BeginInit(); + this.bn.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.component_Reel_SIDConvDataGridView)).BeginInit(); + this.SuspendLayout(); + // + // dataSet1 + // + this.dataSet1.DataSetName = "DataSet1"; + this.dataSet1.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + // + // bs + // + this.bs.DataMember = "Component_Reel_SIDInfo"; + this.bs.DataSource = this.dataSet1; + // + // bn + // + this.bn.AddNewItem = this.bindingNavigatorAddNewItem; + this.bn.BindingSource = this.bs; + this.bn.CountItem = this.bindingNavigatorCountItem; + this.bn.DeleteItem = this.bindingNavigatorDeleteItem; + this.bn.Dock = System.Windows.Forms.DockStyle.Bottom; + this.bn.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.bindingNavigatorMoveFirstItem, + this.bindingNavigatorMovePreviousItem, + this.bindingNavigatorSeparator, + this.bindingNavigatorPositionItem, + this.bindingNavigatorCountItem, + this.bindingNavigatorSeparator1, + this.bindingNavigatorMoveNextItem, + this.bindingNavigatorMoveLastItem, + this.bindingNavigatorSeparator2, + this.bindingNavigatorAddNewItem, + this.bindingNavigatorDeleteItem, + this.component_Reel_SIDConvBindingNavigatorSaveItem, + this.toolStripSeparator1, + this.toolStripLabel1, + this.tbFind, + this.toolStripButton1, + this.toolStripButton2}); + this.bn.Location = new System.Drawing.Point(0, 477); + this.bn.MoveFirstItem = this.bindingNavigatorMoveFirstItem; + this.bn.MoveLastItem = this.bindingNavigatorMoveLastItem; + this.bn.MoveNextItem = this.bindingNavigatorMoveNextItem; + this.bn.MovePreviousItem = this.bindingNavigatorMovePreviousItem; + this.bn.Name = "bn"; + this.bn.PositionItem = this.bindingNavigatorPositionItem; + this.bn.Size = new System.Drawing.Size(819, 25); + this.bn.TabIndex = 0; + this.bn.Text = "bindingNavigator1"; + // + // bindingNavigatorAddNewItem + // + this.bindingNavigatorAddNewItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorAddNewItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorAddNewItem.Image"))); + this.bindingNavigatorAddNewItem.Name = "bindingNavigatorAddNewItem"; + this.bindingNavigatorAddNewItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorAddNewItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorAddNewItem.Text = "새로 추가"; + // + // bindingNavigatorCountItem + // + this.bindingNavigatorCountItem.Name = "bindingNavigatorCountItem"; + this.bindingNavigatorCountItem.Size = new System.Drawing.Size(27, 22); + this.bindingNavigatorCountItem.Text = "/{0}"; + this.bindingNavigatorCountItem.ToolTipText = "전체 항목 수"; + // + // bindingNavigatorDeleteItem + // + this.bindingNavigatorDeleteItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorDeleteItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorDeleteItem.Image"))); + this.bindingNavigatorDeleteItem.Name = "bindingNavigatorDeleteItem"; + this.bindingNavigatorDeleteItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorDeleteItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorDeleteItem.Text = "삭제"; + // + // bindingNavigatorMoveFirstItem + // + this.bindingNavigatorMoveFirstItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveFirstItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveFirstItem.Image"))); + this.bindingNavigatorMoveFirstItem.Name = "bindingNavigatorMoveFirstItem"; + this.bindingNavigatorMoveFirstItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveFirstItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveFirstItem.Text = "처음으로 이동"; + // + // bindingNavigatorMovePreviousItem + // + this.bindingNavigatorMovePreviousItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMovePreviousItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMovePreviousItem.Image"))); + this.bindingNavigatorMovePreviousItem.Name = "bindingNavigatorMovePreviousItem"; + this.bindingNavigatorMovePreviousItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMovePreviousItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMovePreviousItem.Text = "이전으로 이동"; + // + // bindingNavigatorSeparator + // + this.bindingNavigatorSeparator.Name = "bindingNavigatorSeparator"; + this.bindingNavigatorSeparator.Size = new System.Drawing.Size(6, 25); + // + // bindingNavigatorPositionItem + // + this.bindingNavigatorPositionItem.AccessibleName = "위치"; + this.bindingNavigatorPositionItem.AutoSize = false; + this.bindingNavigatorPositionItem.Name = "bindingNavigatorPositionItem"; + this.bindingNavigatorPositionItem.Size = new System.Drawing.Size(50, 23); + this.bindingNavigatorPositionItem.Text = "0"; + this.bindingNavigatorPositionItem.ToolTipText = "현재 위치"; + // + // bindingNavigatorSeparator1 + // + this.bindingNavigatorSeparator1.Name = "bindingNavigatorSeparator1"; + this.bindingNavigatorSeparator1.Size = new System.Drawing.Size(6, 25); + // + // bindingNavigatorMoveNextItem + // + this.bindingNavigatorMoveNextItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveNextItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveNextItem.Image"))); + this.bindingNavigatorMoveNextItem.Name = "bindingNavigatorMoveNextItem"; + this.bindingNavigatorMoveNextItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveNextItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveNextItem.Text = "다음으로 이동"; + // + // bindingNavigatorMoveLastItem + // + this.bindingNavigatorMoveLastItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveLastItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveLastItem.Image"))); + this.bindingNavigatorMoveLastItem.Name = "bindingNavigatorMoveLastItem"; + this.bindingNavigatorMoveLastItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveLastItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveLastItem.Text = "마지막으로 이동"; + // + // bindingNavigatorSeparator2 + // + this.bindingNavigatorSeparator2.Name = "bindingNavigatorSeparator2"; + this.bindingNavigatorSeparator2.Size = new System.Drawing.Size(6, 25); + // + // component_Reel_SIDConvBindingNavigatorSaveItem + // + this.component_Reel_SIDConvBindingNavigatorSaveItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.component_Reel_SIDConvBindingNavigatorSaveItem.Image = ((System.Drawing.Image)(resources.GetObject("component_Reel_SIDConvBindingNavigatorSaveItem.Image"))); + this.component_Reel_SIDConvBindingNavigatorSaveItem.Name = "component_Reel_SIDConvBindingNavigatorSaveItem"; + this.component_Reel_SIDConvBindingNavigatorSaveItem.Size = new System.Drawing.Size(23, 22); + this.component_Reel_SIDConvBindingNavigatorSaveItem.Text = "데이터 저장"; + this.component_Reel_SIDConvBindingNavigatorSaveItem.Click += new System.EventHandler(this.component_Reel_SIDConvBindingNavigatorSaveItem_Click); + // + // toolStripSeparator1 + // + this.toolStripSeparator1.Name = "toolStripSeparator1"; + this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25); + // + // toolStripLabel1 + // + this.toolStripLabel1.Name = "toolStripLabel1"; + this.toolStripLabel1.Size = new System.Drawing.Size(45, 22); + this.toolStripLabel1.Text = "검색(&F)"; + // + // tbFind + // + this.tbFind.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.tbFind.Name = "tbFind"; + this.tbFind.Size = new System.Drawing.Size(100, 25); + this.tbFind.KeyDown += new System.Windows.Forms.KeyEventHandler(this.toolStripTextBox1_KeyDown); + // + // toolStripButton1 + // + this.toolStripButton1.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image"))); + this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton1.Name = "toolStripButton1"; + this.toolStripButton1.Size = new System.Drawing.Size(63, 22); + this.toolStripButton1.Text = "Import"; + this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click); + // + // component_Reel_SIDConvDataGridView + // + this.component_Reel_SIDConvDataGridView.AutoGenerateColumns = false; + this.component_Reel_SIDConvDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.component_Reel_SIDConvDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.sIDDataGridViewTextBoxColumn, + this.custCodeDataGridViewTextBoxColumn, + this.custNameDataGridViewTextBoxColumn, + this.venderNameDataGridViewTextBoxColumn, + this.partNoDataGridViewTextBoxColumn, + this.printPositionDataGridViewTextBoxColumn, + this.remarkDataGridViewTextBoxColumn}); + this.component_Reel_SIDConvDataGridView.DataSource = this.bs; + this.component_Reel_SIDConvDataGridView.Dock = System.Windows.Forms.DockStyle.Fill; + this.component_Reel_SIDConvDataGridView.Location = new System.Drawing.Point(0, 0); + this.component_Reel_SIDConvDataGridView.Name = "component_Reel_SIDConvDataGridView"; + this.component_Reel_SIDConvDataGridView.RowTemplate.Height = 23; + this.component_Reel_SIDConvDataGridView.Size = new System.Drawing.Size(819, 463); + this.component_Reel_SIDConvDataGridView.TabIndex = 1; + // + // sIDDataGridViewTextBoxColumn + // + this.sIDDataGridViewTextBoxColumn.DataPropertyName = "SID"; + this.sIDDataGridViewTextBoxColumn.HeaderText = "SID"; + this.sIDDataGridViewTextBoxColumn.Name = "sIDDataGridViewTextBoxColumn"; + // + // custCodeDataGridViewTextBoxColumn + // + this.custCodeDataGridViewTextBoxColumn.DataPropertyName = "CustCode"; + this.custCodeDataGridViewTextBoxColumn.HeaderText = "CustCode"; + this.custCodeDataGridViewTextBoxColumn.Name = "custCodeDataGridViewTextBoxColumn"; + // + // custNameDataGridViewTextBoxColumn + // + this.custNameDataGridViewTextBoxColumn.DataPropertyName = "CustName"; + this.custNameDataGridViewTextBoxColumn.HeaderText = "CustName"; + this.custNameDataGridViewTextBoxColumn.Name = "custNameDataGridViewTextBoxColumn"; + // + // venderNameDataGridViewTextBoxColumn + // + this.venderNameDataGridViewTextBoxColumn.DataPropertyName = "VenderName"; + this.venderNameDataGridViewTextBoxColumn.HeaderText = "VenderName"; + this.venderNameDataGridViewTextBoxColumn.Name = "venderNameDataGridViewTextBoxColumn"; + // + // partNoDataGridViewTextBoxColumn + // + this.partNoDataGridViewTextBoxColumn.DataPropertyName = "PartNo"; + this.partNoDataGridViewTextBoxColumn.HeaderText = "PartNo"; + this.partNoDataGridViewTextBoxColumn.Name = "partNoDataGridViewTextBoxColumn"; + // + // printPositionDataGridViewTextBoxColumn + // + this.printPositionDataGridViewTextBoxColumn.DataPropertyName = "PrintPosition"; + this.printPositionDataGridViewTextBoxColumn.HeaderText = "PrintPosition"; + this.printPositionDataGridViewTextBoxColumn.Name = "printPositionDataGridViewTextBoxColumn"; + // + // remarkDataGridViewTextBoxColumn + // + this.remarkDataGridViewTextBoxColumn.DataPropertyName = "Remark"; + this.remarkDataGridViewTextBoxColumn.HeaderText = "Remark"; + this.remarkDataGridViewTextBoxColumn.Name = "remarkDataGridViewTextBoxColumn"; + // + // progressBar1 + // + this.progressBar1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.progressBar1.Location = new System.Drawing.Point(0, 463); + this.progressBar1.Name = "progressBar1"; + this.progressBar1.Size = new System.Drawing.Size(819, 14); + this.progressBar1.TabIndex = 2; + // + // ta + // + this.ta.ClearBeforeFill = true; + // + // toolStripButton2 + // + this.toolStripButton2.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.toolStripButton2.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton2.Image"))); + this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton2.Name = "toolStripButton2"; + this.toolStripButton2.Size = new System.Drawing.Size(108, 22); + this.toolStripButton2.Text = "Import(PartNo)"; + this.toolStripButton2.Click += new System.EventHandler(this.toolStripButton2_Click); + // + // fImportSIDInfo + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(819, 502); + this.Controls.Add(this.component_Reel_SIDConvDataGridView); + this.Controls.Add(this.progressBar1); + this.Controls.Add(this.bn); + this.Name = "fImportSIDInfo"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "fImportSIDConv"; + this.Load += new System.EventHandler(this.fImportSIDConv_Load); + ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bs)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bn)).EndInit(); + this.bn.ResumeLayout(false); + this.bn.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.component_Reel_SIDConvDataGridView)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private DataSet1 dataSet1; + private System.Windows.Forms.BindingSource bs; + private System.Windows.Forms.BindingNavigator bn; + private System.Windows.Forms.ToolStripButton bindingNavigatorAddNewItem; + private System.Windows.Forms.ToolStripLabel bindingNavigatorCountItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorDeleteItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveFirstItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMovePreviousItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator; + private System.Windows.Forms.ToolStripTextBox bindingNavigatorPositionItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator1; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveNextItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveLastItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator2; + private System.Windows.Forms.ToolStripButton component_Reel_SIDConvBindingNavigatorSaveItem; + private System.Windows.Forms.DataGridView component_Reel_SIDConvDataGridView; + private System.Windows.Forms.ProgressBar progressBar1; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; + private System.Windows.Forms.ToolStripLabel toolStripLabel1; + private System.Windows.Forms.ToolStripTextBox tbFind; + private System.Windows.Forms.ToolStripButton toolStripButton1; + private DataSet1TableAdapters.Component_Reel_SIDInfoTableAdapter ta; + private System.Windows.Forms.DataGridViewTextBoxColumn sIDDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn custCodeDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn custNameDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn venderNameDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn partNoDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn printPositionDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn remarkDataGridViewTextBoxColumn; + private System.Windows.Forms.ToolStripButton toolStripButton2; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fImportSIDInfo.cs b/Handler/Project_form2/Dialog/fImportSIDInfo.cs new file mode 100644 index 0000000..dbaae82 --- /dev/null +++ b/Handler/Project_form2/Dialog/fImportSIDInfo.cs @@ -0,0 +1,234 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fImportSIDInfo : Form + { + public fImportSIDInfo() + { + InitializeComponent(); + } + + private void component_Reel_SIDConvBindingNavigatorSaveItem_Click(object sender, EventArgs e) + { + this.Validate(); + this.bs.EndEdit(); + this.ta.Update(this.dataSet1.Component_Reel_SIDInfo); + + } + + private void fImportSIDConv_Load(object sender, EventArgs e) + { + // TODO: 이 코드는 데이터를 'dataSet1.Component_Reel_SIDInfo' 테이블에 로드합니다. 필요 시 이 코드를 이동하거나 제거할 수 있습니다. + this.ta.Fill(this.dataSet1.Component_Reel_SIDInfo); + // TODO: 이 코드는 데이터를 'dataSet1.Component_Reel_SIDConv' 테이블에 로드합니다. 필요 시 이 코드를 이동하거나 제거할 수 있습니다. + } + + private void toolStripTextBox1_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + { + var search = this.tbFind.Text.Trim(); + if (search.isEmpty()) + { + this.bs.Filter = ""; + this.tbFind.BackColor = SystemColors.Window; + } + else + { + var list = new string[] { "M101", "M103", "M106", "cust", "partno" }; + var filter = string.Join(" like '%{0}%' or ", list); + filter += " like '%{0}%'"; + filter = string.Format(filter, search.Replace("'", "''")); + try + { + this.bs.Filter = filter; + this.tbFind.BackColor = Color.Lime; + this.tbFind.SelectAll(); + this.tbFind.Focus(); + } + catch (Exception ex) + { + this.tbFind.BackColor = Color.Tomato; + Pub.log.AddE("sid 변환 테이블 필터 오류 : " + ex.Message); + } + } + } + } + + private void toolStripButton1_Click(object sender, EventArgs e) + { + //엑셀을 읽어와서 처리한다. + var od = new OpenFileDialog(); + if (od.ShowDialog() != DialogResult.OK) return; + libxl.Book book; + var fi = new System.IO.FileInfo(od.FileName); + var ext = fi.Extension.ToLower(); + if (ext == ".xlsx") book = new libxl.XmlBook(); + else if (ext == ".xls") book = new libxl.BinBook(); + else + { + Util.MsgE("지원되지 않는 파일 입니다"); + return; + } + + var keyinfo = Properties.Settings.Default.libxl.Split('/'); + book.setKey(keyinfo[0], keyinfo[1]); + book.load(fi.FullName); + var sheet = book.getSheet(0); + + + var cs = sheet.firstCol(); + var ce = sheet.lastCol(); + var rs = sheet.firstRow(); + var re = sheet.lastRow(); + + this.progressBar1.Minimum = 0; + this.progressBar1.Maximum = re; + this.progressBar1.Value = 0; + + int cntA = 0; + int cntU = 0; + for (int row = rs; row <= re; row++) + { + if (this.progressBar1.Value < this.progressBar1.Maximum) + this.progressBar1.Value += 1; + var cSID = sheet.readStr(row, 1); + var cCustCode = sheet.readStr(row, 2); + var cCustName = sheet.readStr(row, 3); + + if (cCustCode.isEmpty() == false && cCustCode.Length != 4) + cCustCode = cCustCode.PadLeft(4, '0'); + + if (cSID.StartsWith("10")) + { + + + EnumerableRowCollection plist = null; + plist = this.dataSet1.Component_Reel_SIDInfo.Where(t => t.SID == cSID); + + if (plist == null || plist.Any() == false) + { + //존재하지않으면 추가한다. + var newdr = this.dataSet1.Component_Reel_SIDInfo.NewComponent_Reel_SIDInfoRow(); + newdr.CustCode = cCustCode; + newdr.CustName = cCustName; + newdr.VenderName = string.Empty; + newdr.SID = cSID; + newdr.PartNo = string.Empty; + newdr.PrintPosition = string.Empty; + newdr.Remark = string.Empty; + this.dataSet1.Component_Reel_SIDInfo.AddComponent_Reel_SIDInfoRow(newdr); + cntA += 1; + } + else + { + //있다면 업데이트 해준다. + foreach (var item in plist) + { + if (cCustCode.isEmpty() == false) + { + item.CustCode = cCustCode; + item.CustName = cCustName; + } + item.EndEdit(); + cntU += 1; + } + } + } + else if (cSID.isEmpty() && cCustCode.isEmpty()) break; // + } + Util.MsgI(string.Format("추가:{0},변경:{1}", cntA, cntU)); + } + + private void toolStripButton2_Click(object sender, EventArgs e) + { + //엑셀을 읽어와서 처리한다. + var od = new OpenFileDialog(); + if (od.ShowDialog() != DialogResult.OK) return; + libxl.Book book; + var fi = new System.IO.FileInfo(od.FileName); + var ext = fi.Extension.ToLower(); + if (ext == ".xlsx") book = new libxl.XmlBook(); + else if (ext == ".xls") book = new libxl.BinBook(); + else + { + Util.MsgE("지원되지 않는 파일 입니다"); + return; + } + + var keyinfo = Properties.Settings.Default.libxl.Split('/'); + book.setKey(keyinfo[0], keyinfo[1]); + book.load(fi.FullName); + var sheet = book.getSheet(0); + + + var cs = sheet.firstCol(); + var ce = sheet.lastCol(); + var rs = sheet.firstRow(); + var re = sheet.lastRow(); + + this.progressBar1.Minimum = 0; + this.progressBar1.Maximum = re; + this.progressBar1.Value = 0; + + int cntA = 0; + int cntU = 0; + for (int row = rs; row <= re; row++) + { + if (this.progressBar1.Value < this.progressBar1.Maximum) + this.progressBar1.Value += 1; + + var cSID = sheet.readStr(row, 0).Trim(); + var cPart = sheet.readStr(row, 1).Trim(); //part + if (cPart == "N/A") cPart = string.Empty; + + if (cSID.StartsWith("10") && cPart.isEmpty()==false) + { + + + EnumerableRowCollection plist = null; + plist = this.dataSet1.Component_Reel_SIDInfo.Where(t => t.SID == cSID); + + if (plist == null || plist.Any() == false) + { + //존재하지않으면 추가한다. + var newdr = this.dataSet1.Component_Reel_SIDInfo.NewComponent_Reel_SIDInfoRow(); + newdr.CustCode = string.Empty; + newdr.CustName = string.Empty; + newdr.VenderName = string.Empty; + newdr.SID = cSID; + newdr.PartNo = cPart; + newdr.PrintPosition = string.Empty; + newdr.Remark = string.Empty; + this.dataSet1.Component_Reel_SIDInfo.AddComponent_Reel_SIDInfoRow(newdr); + cntA += 1; + } + else + { + //있다면 업데이트 해준다. + foreach (var item in plist) + { + if (cPart.isEmpty() == false) + { + item.PartNo = cPart; + } + item.EndEdit(); + cntU += 1; + } + } + } + else if (cSID.isEmpty() && cPart.isEmpty()) break; // + } + Util.MsgI(string.Format("추가:{0},변경:{1}", cntA, cntU)); + } + } +} diff --git a/Handler/Project_form2/Dialog/fImportSIDInfo.resx b/Handler/Project_form2/Dialog/fImportSIDInfo.resx new file mode 100644 index 0000000..09baca9 --- /dev/null +++ b/Handler/Project_form2/Dialog/fImportSIDInfo.resx @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 117, 17 + + + 316, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC + pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++ + Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ + /5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA + zpX/v6RC8f/fWzFAjeH/p+Zp/J+QpfW/O0P3f3uq/v/mREPCYTIb6E+Qc//dCPjfk6FDWAM6APnz3w1/ + IPb735qsT7oB3em6YP+CcH2cEekGtCQZ/G+IN/xfE2v8vzLahHQD6AQYGAAkI9iedfyIaQAAAABJRU5E + rkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC + DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC + rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV + i9OIytR3EMNWcJ/BWH8A6j8/bOGFxwXNxYEvGbMQ9XnQ1/K78KfY3/VXzkMY0qFGG2H4RoLGQshJQNbG + 86CNhdrsX9a/uQZTPhQl4rMY4OLofbl3aX7I8uwPC7y/g1YdjyVJuEvT8e1tfwUYteHUxCCfHChDeHmG + QQvokjlOU+PbWA0x3pZnILVVI3uvQyHsbiLnqnGmRCF1NYD8pDhpRxOH7HQoAKZGkFKjceszQbpSrumX + bO+G80MFwKUTxgfgcO/b8D9IpXoFiiMDHIQm0skAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 + wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0 + v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg + UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA + Iu/O/9T+11gVGSSd+C+b9vW/bvA83AYYZt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPu + lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w + 5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f + Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+ + 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 + n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI + N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f + oAc0QjgAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// + h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B + twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA + kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG + WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9 + 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAExJREFUOE9joAr49u3bf1IxVCsEgAWC58Dxh/cf4RhZDETHTNiHaQgpBoAwzBCo + dtINAGGiDUDGyGpoawAxeNSAQWkAORiqnRLAwAAA9EMMU8Daa3MAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + 382, 17 + + \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fLoaderInfo.Designer.cs b/Handler/Project_form2/Dialog/fLoaderInfo.Designer.cs new file mode 100644 index 0000000..e644518 --- /dev/null +++ b/Handler/Project_form2/Dialog/fLoaderInfo.Designer.cs @@ -0,0 +1,1186 @@ +namespace Project.Dialog +{ + partial class fLoaderInfo + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.tbSID = new System.Windows.Forms.TextBox(); + this.tbVLOT = new System.Windows.Forms.TextBox(); + this.tbQTY = new System.Windows.Forms.TextBox(); + this.tbDate = new System.Windows.Forms.TextBox(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.lvbcdList = new System.Windows.Forms.ListView(); + this.columnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.cmbarc = new System.Windows.Forms.ContextMenuStrip(this.components); + this.회전기준바코드로설정ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.lstErrmsg = new System.Windows.Forms.ListBox(); + this.btOK = new System.Windows.Forms.Button(); + this.panel3 = new System.Windows.Forms.Panel(); + this.label10 = new System.Windows.Forms.Label(); + this.label11 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.button2 = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.tbRID = new System.Windows.Forms.TextBox(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.button4 = new System.Windows.Forms.Button(); + this.btIDChk = new System.Windows.Forms.Button(); + this.tbSidFind = new System.Windows.Forms.Button(); + this.btPartChk = new System.Windows.Forms.Button(); + this.linkLabel7 = new System.Windows.Forms.LinkLabel(); + this.linkLabel5 = new System.Windows.Forms.LinkLabel(); + this.linkLabel4 = new System.Windows.Forms.LinkLabel(); + this.linkLabel3 = new System.Windows.Forms.LinkLabel(); + this.linkLabel2 = new System.Windows.Forms.LinkLabel(); + this.linkLabel1 = new System.Windows.Forms.LinkLabel(); + this.btDateSelecte = new System.Windows.Forms.Button(); + this.lbQTY0 = new System.Windows.Forms.Label(); + this.lbSID0 = new System.Windows.Forms.Label(); + this.tbpartno = new System.Windows.Forms.TextBox(); + this.btSidConv = new System.Windows.Forms.Button(); + this.btNewID = new System.Windows.Forms.Button(); + this.btChkQty = new System.Windows.Forms.Button(); + this.button9 = new System.Windows.Forms.Button(); + this.linkLabel8 = new System.Windows.Forms.LinkLabel(); + this.TbCustCode = new System.Windows.Forms.TextBox(); + this.button6 = new System.Windows.Forms.Button(); + this.panel4 = new System.Windows.Forms.Panel(); + this.tableLayoutPanel8 = new System.Windows.Forms.TableLayoutPanel(); + this.lbl8 = new System.Windows.Forms.Label(); + this.lbl2 = new System.Windows.Forms.Label(); + this.lbl4 = new System.Windows.Forms.Label(); + this.lbl6 = new System.Windows.Forms.Label(); + this.lbl7 = new System.Windows.Forms.Label(); + this.lbl9 = new System.Windows.Forms.Label(); + this.lbl3 = new System.Windows.Forms.Label(); + this.lbl1 = new System.Windows.Forms.Label(); + this.label17 = new System.Windows.Forms.Label(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.label2 = new System.Windows.Forms.Label(); + this.pb8 = new System.Windows.Forms.Label(); + this.pb2 = new System.Windows.Forms.Label(); + this.pb4 = new System.Windows.Forms.Label(); + this.pb6 = new System.Windows.Forms.Label(); + this.pb7 = new System.Windows.Forms.Label(); + this.pb9 = new System.Windows.Forms.Label(); + this.pb3 = new System.Windows.Forms.Label(); + this.pb1 = new System.Windows.Forms.Label(); + this.label26 = new System.Windows.Forms.Label(); + this.iv1 = new arCtl.ImageBox(); + this.linkLabel6 = new System.Windows.Forms.LinkLabel(); + this.tbVName = new System.Windows.Forms.TextBox(); + this.panel1 = new System.Windows.Forms.Panel(); + this.panel2 = new System.Windows.Forms.Panel(); + this.button3 = new System.Windows.Forms.Button(); + this.button1 = new System.Windows.Forms.Button(); + this.groupBox3 = new System.Windows.Forms.GroupBox(); + this.linkLabel9 = new System.Windows.Forms.LinkLabel(); + this.tbCustName = new System.Windows.Forms.TextBox(); + this.tmAutoConfirm = new System.Windows.Forms.Timer(this.components); + this.groupBox1.SuspendLayout(); + this.cmbarc.SuspendLayout(); + this.panel3.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.panel4.SuspendLayout(); + this.tableLayoutPanel8.SuspendLayout(); + this.tableLayoutPanel1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.iv1)).BeginInit(); + this.panel2.SuspendLayout(); + this.groupBox3.SuspendLayout(); + this.SuspendLayout(); + // + // tbSID + // + this.tbSID.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); + this.tbSID.Font = new System.Drawing.Font("맑은 고딕", 13F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tbSID.Location = new System.Drawing.Point(102, 70); + this.tbSID.Margin = new System.Windows.Forms.Padding(5, 8, 5, 8); + this.tbSID.Name = "tbSID"; + this.tbSID.Size = new System.Drawing.Size(135, 31); + this.tbSID.TabIndex = 1; + this.tbSID.Tag = "SID"; + this.tbSID.Click += new System.EventHandler(this.tbDate_Click); + // + // tbVLOT + // + this.tbVLOT.Font = new System.Drawing.Font("맑은 고딕", 13F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tbVLOT.Location = new System.Drawing.Point(102, 123); + this.tbVLOT.Margin = new System.Windows.Forms.Padding(5, 8, 5, 8); + this.tbVLOT.Name = "tbVLOT"; + this.tbVLOT.Size = new System.Drawing.Size(294, 31); + this.tbVLOT.TabIndex = 1; + this.tbVLOT.Tag = "VLOT"; + this.tbVLOT.Click += new System.EventHandler(this.tbDate_Click); + // + // tbQTY + // + this.tbQTY.Font = new System.Drawing.Font("맑은 고딕", 13F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tbQTY.Location = new System.Drawing.Point(288, 70); + this.tbQTY.Margin = new System.Windows.Forms.Padding(5, 8, 5, 8); + this.tbQTY.Name = "tbQTY"; + this.tbQTY.Size = new System.Drawing.Size(108, 31); + this.tbQTY.TabIndex = 1; + this.tbQTY.Tag = "QTY"; + this.tbQTY.Click += new System.EventHandler(this.tbDate_Click); + // + // tbDate + // + this.tbDate.Font = new System.Drawing.Font("맑은 고딕", 13F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tbDate.Location = new System.Drawing.Point(102, 156); + this.tbDate.Margin = new System.Windows.Forms.Padding(5, 8, 5, 8); + this.tbDate.Name = "tbDate"; + this.tbDate.Size = new System.Drawing.Size(294, 31); + this.tbDate.TabIndex = 3; + this.tbDate.Tag = "MFGDATE"; + this.tbDate.Click += new System.EventHandler(this.tbDate_Click); + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.lvbcdList); + this.groupBox1.Controls.Add(this.lstErrmsg); + this.groupBox1.Controls.Add(this.btOK); + this.groupBox1.Controls.Add(this.panel3); + this.groupBox1.Controls.Add(this.button2); + this.groupBox1.Controls.Add(this.label1); + this.groupBox1.Dock = System.Windows.Forms.DockStyle.Right; + this.groupBox1.Location = new System.Drawing.Point(806, 5); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Padding = new System.Windows.Forms.Padding(5); + this.groupBox1.Size = new System.Drawing.Size(373, 851); + this.groupBox1.TabIndex = 5; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Barcode Data List"; + // + // lvbcdList + // + this.lvbcdList.CheckBoxes = true; + this.lvbcdList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader4, + this.columnHeader1}); + this.lvbcdList.ContextMenuStrip = this.cmbarc; + this.lvbcdList.Dock = System.Windows.Forms.DockStyle.Fill; + this.lvbcdList.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lvbcdList.FullRowSelect = true; + this.lvbcdList.GridLines = true; + this.lvbcdList.HideSelection = false; + this.lvbcdList.Location = new System.Drawing.Point(5, 185); + this.lvbcdList.Name = "lvbcdList"; + this.lvbcdList.Size = new System.Drawing.Size(363, 417); + this.lvbcdList.TabIndex = 1; + this.lvbcdList.UseCompatibleStateImageBehavior = false; + this.lvbcdList.View = System.Windows.Forms.View.Details; + // + // columnHeader4 + // + this.columnHeader4.Text = "Ang"; + this.columnHeader4.Width = 80; + // + // columnHeader1 + // + this.columnHeader1.Text = "Value"; + this.columnHeader1.Width = 290; + // + // cmbarc + // + this.cmbarc.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.회전기준바코드로설정ToolStripMenuItem}); + this.cmbarc.Name = "cmbarc"; + this.cmbarc.Size = new System.Drawing.Size(207, 26); + // + // 회전기준바코드로설정ToolStripMenuItem + // + this.회전기준바코드로설정ToolStripMenuItem.Name = "회전기준바코드로설정ToolStripMenuItem"; + this.회전기준바코드로설정ToolStripMenuItem.Size = new System.Drawing.Size(206, 22); + this.회전기준바코드로설정ToolStripMenuItem.Text = "회전 기준 바코드로 설정"; + this.회전기준바코드로설정ToolStripMenuItem.Click += new System.EventHandler(this.회전기준바코드로설정ToolStripMenuItem_Click); + // + // lstErrmsg + // + this.lstErrmsg.Dock = System.Windows.Forms.DockStyle.Bottom; + this.lstErrmsg.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lstErrmsg.FormattingEnabled = true; + this.lstErrmsg.ItemHeight = 21; + this.lstErrmsg.Location = new System.Drawing.Point(5, 602); + this.lstErrmsg.Name = "lstErrmsg"; + this.lstErrmsg.Size = new System.Drawing.Size(363, 151); + this.lstErrmsg.TabIndex = 5; + // + // btOK + // + this.btOK.BackColor = System.Drawing.Color.DarkSeaGreen; + this.btOK.Dock = System.Windows.Forms.DockStyle.Bottom; + this.btOK.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btOK.Location = new System.Drawing.Point(5, 753); + this.btOK.Name = "btOK"; + this.btOK.Size = new System.Drawing.Size(363, 93); + this.btOK.TabIndex = 4; + this.btOK.Text = "◆ 입력 완료 ◆"; + this.btOK.UseVisualStyleBackColor = false; + this.btOK.Click += new System.EventHandler(this.btOK_Click); + // + // panel3 + // + this.panel3.Controls.Add(this.label10); + this.panel3.Controls.Add(this.label11); + this.panel3.Controls.Add(this.label9); + this.panel3.Dock = System.Windows.Forms.DockStyle.Top; + this.panel3.Location = new System.Drawing.Point(5, 157); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(363, 28); + this.panel3.TabIndex = 3; + // + // label10 + // + this.label10.BackColor = System.Drawing.Color.Gold; + this.label10.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label10.Dock = System.Windows.Forms.DockStyle.Fill; + this.label10.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label10.Location = new System.Drawing.Point(119, 0); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(125, 28); + this.label10.TabIndex = 1; + this.label10.Text = "QR"; + this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label11 + // + this.label11.BackColor = System.Drawing.Color.Lime; + this.label11.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label11.Dock = System.Windows.Forms.DockStyle.Right; + this.label11.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label11.Location = new System.Drawing.Point(244, 0); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(119, 28); + this.label11.TabIndex = 2; + this.label11.Text = "DataMatrix"; + this.label11.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label9 + // + this.label9.BackColor = System.Drawing.Color.WhiteSmoke; + this.label9.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label9.Dock = System.Windows.Forms.DockStyle.Left; + this.label9.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label9.Location = new System.Drawing.Point(0, 0); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(119, 28); + this.label9.TabIndex = 0; + this.label9.Text = "1D"; + this.label9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // button2 + // + this.button2.Dock = System.Windows.Forms.DockStyle.Top; + this.button2.ForeColor = System.Drawing.Color.DarkBlue; + this.button2.Location = new System.Drawing.Point(5, 107); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(363, 50); + this.button2.TabIndex = 2; + this.button2.Text = "◀ 바코드 출력정보에 \"입력\""; + this.button2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // label1 + // + this.label1.Dock = System.Windows.Forms.DockStyle.Top; + this.label1.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label1.ForeColor = System.Drawing.Color.DimGray; + this.label1.Location = new System.Drawing.Point(5, 33); + this.label1.Name = "label1"; + this.label1.Padding = new System.Windows.Forms.Padding(5); + this.label1.Size = new System.Drawing.Size(363, 74); + this.label1.TabIndex = 0; + this.label1.Text = "현재 바코드 리더기로 부터 읽은 데이터를 모두 표시합니다. \r\n1. 입력 하고자 하는 데이터 칸을 좌측에서 먼저 선택합니다\r\n2. 입력 데이터를 " + + "아래 목록에서 선택\r\n3. 하단의 \"입력\" 버튼을 누릅니다"; + // + // tbRID + // + this.tbRID.Font = new System.Drawing.Font("맑은 고딕", 13F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tbRID.Location = new System.Drawing.Point(102, 36); + this.tbRID.Margin = new System.Windows.Forms.Padding(5, 8, 5, 8); + this.tbRID.Name = "tbRID"; + this.tbRID.Size = new System.Drawing.Size(294, 31); + this.tbRID.TabIndex = 7; + this.tbRID.Tag = "ID"; + this.tbRID.Click += new System.EventHandler(this.tbDate_Click); + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.button4); + this.groupBox2.Controls.Add(this.btIDChk); + this.groupBox2.Controls.Add(this.tbSidFind); + this.groupBox2.Controls.Add(this.btPartChk); + this.groupBox2.Controls.Add(this.linkLabel7); + this.groupBox2.Controls.Add(this.linkLabel5); + this.groupBox2.Controls.Add(this.linkLabel4); + this.groupBox2.Controls.Add(this.linkLabel3); + this.groupBox2.Controls.Add(this.linkLabel2); + this.groupBox2.Controls.Add(this.linkLabel1); + this.groupBox2.Controls.Add(this.btDateSelecte); + this.groupBox2.Controls.Add(this.lbQTY0); + this.groupBox2.Controls.Add(this.lbSID0); + this.groupBox2.Controls.Add(this.tbpartno); + this.groupBox2.Controls.Add(this.btSidConv); + this.groupBox2.Controls.Add(this.btNewID); + this.groupBox2.Controls.Add(this.btChkQty); + this.groupBox2.Controls.Add(this.tbRID); + this.groupBox2.Controls.Add(this.tbVLOT); + this.groupBox2.Controls.Add(this.tbDate); + this.groupBox2.Controls.Add(this.tbSID); + this.groupBox2.Controls.Add(this.tbQTY); + this.groupBox2.Location = new System.Drawing.Point(10, 3); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(548, 228); + this.groupBox2.TabIndex = 8; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Barcode information"; + this.groupBox2.Enter += new System.EventHandler(this.groupBox2_Enter); + // + // button4 + // + this.button4.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.button4.Location = new System.Drawing.Point(344, 190); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(52, 31); + this.button4.TabIndex = 31; + this.button4.Text = "N/A"; + this.button4.UseVisualStyleBackColor = true; + this.button4.Click += new System.EventHandler(this.button4_Click_1); + // + // btIDChk + // + this.btIDChk.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btIDChk.Location = new System.Drawing.Point(484, 36); + this.btIDChk.Name = "btIDChk"; + this.btIDChk.Size = new System.Drawing.Size(57, 31); + this.btIDChk.TabIndex = 30; + this.btIDChk.Text = "검사"; + this.btIDChk.UseVisualStyleBackColor = true; + this.btIDChk.Click += new System.EventHandler(this.button8_Click); + // + // tbSidFind + // + this.tbSidFind.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tbSidFind.Location = new System.Drawing.Point(484, 69); + this.tbSidFind.Name = "tbSidFind"; + this.tbSidFind.Size = new System.Drawing.Size(57, 32); + this.tbSidFind.TabIndex = 29; + this.tbSidFind.Text = "찾기"; + this.tbSidFind.UseVisualStyleBackColor = true; + this.tbSidFind.Click += new System.EventHandler(this.button7_Click); + // + // btPartChk + // + this.btPartChk.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.btPartChk.Location = new System.Drawing.Point(399, 191); + this.btPartChk.Name = "btPartChk"; + this.btPartChk.Size = new System.Drawing.Size(142, 30); + this.btPartChk.TabIndex = 25; + this.btPartChk.Text = "자동입력"; + this.btPartChk.UseVisualStyleBackColor = true; + this.btPartChk.Click += new System.EventHandler(this.button5_Click); + // + // linkLabel7 + // + this.linkLabel7.AutoSize = true; + this.linkLabel7.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.linkLabel7.Location = new System.Drawing.Point(24, 196); + this.linkLabel7.Name = "linkLabel7"; + this.linkLabel7.Size = new System.Drawing.Size(73, 20); + this.linkLabel7.TabIndex = 23; + this.linkLabel7.TabStop = true; + this.linkLabel7.Text = "PART NO"; + this.linkLabel7.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel7_LinkClicked); + // + // linkLabel5 + // + this.linkLabel5.AutoSize = true; + this.linkLabel5.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.linkLabel5.Location = new System.Drawing.Point(14, 161); + this.linkLabel5.Name = "linkLabel5"; + this.linkLabel5.Size = new System.Drawing.Size(83, 20); + this.linkLabel5.TabIndex = 23; + this.linkLabel5.TabStop = true; + this.linkLabel5.Text = "MFG DATE"; + this.linkLabel5.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel5_LinkClicked); + // + // linkLabel4 + // + this.linkLabel4.AutoSize = true; + this.linkLabel4.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.linkLabel4.Location = new System.Drawing.Point(242, 75); + this.linkLabel4.Name = "linkLabel4"; + this.linkLabel4.Size = new System.Drawing.Size(40, 21); + this.linkLabel4.TabIndex = 23; + this.linkLabel4.TabStop = true; + this.linkLabel4.Text = "QTY"; + this.linkLabel4.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel4_LinkClicked); + // + // linkLabel3 + // + this.linkLabel3.AutoSize = true; + this.linkLabel3.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.linkLabel3.Location = new System.Drawing.Point(7, 126); + this.linkLabel3.Name = "linkLabel3"; + this.linkLabel3.Size = new System.Drawing.Size(90, 20); + this.linkLabel3.TabIndex = 23; + this.linkLabel3.TabStop = true; + this.linkLabel3.Text = "Vender LOT"; + this.linkLabel3.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel3_LinkClicked); + // + // linkLabel2 + // + this.linkLabel2.AutoSize = true; + this.linkLabel2.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.linkLabel2.Location = new System.Drawing.Point(65, 75); + this.linkLabel2.Name = "linkLabel2"; + this.linkLabel2.Size = new System.Drawing.Size(32, 20); + this.linkLabel2.TabIndex = 23; + this.linkLabel2.TabStop = true; + this.linkLabel2.Text = "SID"; + this.linkLabel2.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel2_LinkClicked); + // + // linkLabel1 + // + this.linkLabel1.AutoSize = true; + this.linkLabel1.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.linkLabel1.Location = new System.Drawing.Point(36, 41); + this.linkLabel1.Name = "linkLabel1"; + this.linkLabel1.Size = new System.Drawing.Size(61, 20); + this.linkLabel1.TabIndex = 23; + this.linkLabel1.TabStop = true; + this.linkLabel1.Text = "REEL ID"; + this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked); + // + // btDateSelecte + // + this.btDateSelecte.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.btDateSelecte.Location = new System.Drawing.Point(399, 156); + this.btDateSelecte.Name = "btDateSelecte"; + this.btDateSelecte.Size = new System.Drawing.Size(142, 31); + this.btDateSelecte.TabIndex = 22; + this.btDateSelecte.Text = "선택"; + this.btDateSelecte.UseVisualStyleBackColor = true; + this.btDateSelecte.Click += new System.EventHandler(this.button4_Click); + // + // lbQTY0 + // + this.lbQTY0.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.lbQTY0.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.lbQTY0.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbQTY0.ForeColor = System.Drawing.Color.White; + this.lbQTY0.Location = new System.Drawing.Point(288, 102); + this.lbQTY0.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); + this.lbQTY0.Name = "lbQTY0"; + this.lbQTY0.Size = new System.Drawing.Size(108, 19); + this.lbQTY0.TabIndex = 17; + this.lbQTY0.Tag = ""; + this.lbQTY0.Text = "-- Original Data --"; + this.lbQTY0.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // lbSID0 + // + this.lbSID0.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.lbSID0.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.lbSID0.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbSID0.ForeColor = System.Drawing.Color.White; + this.lbSID0.Location = new System.Drawing.Point(102, 102); + this.lbSID0.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0); + this.lbSID0.Name = "lbSID0"; + this.lbSID0.Size = new System.Drawing.Size(135, 19); + this.lbSID0.TabIndex = 16; + this.lbSID0.Tag = ""; + this.lbSID0.Text = "-- Original Data --"; + this.lbSID0.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // tbpartno + // + this.tbpartno.Font = new System.Drawing.Font("맑은 고딕", 13F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tbpartno.Location = new System.Drawing.Point(102, 191); + this.tbpartno.Margin = new System.Windows.Forms.Padding(5, 8, 5, 8); + this.tbpartno.Name = "tbpartno"; + this.tbpartno.Size = new System.Drawing.Size(239, 31); + this.tbpartno.TabIndex = 15; + this.tbpartno.Tag = "PARTNO"; + this.tbpartno.Click += new System.EventHandler(this.tbDate_Click); + // + // btSidConv + // + this.btSidConv.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btSidConv.Location = new System.Drawing.Point(399, 69); + this.btSidConv.Name = "btSidConv"; + this.btSidConv.Size = new System.Drawing.Size(82, 32); + this.btSidConv.TabIndex = 11; + this.btSidConv.Text = "SID전환"; + this.btSidConv.UseVisualStyleBackColor = true; + this.btSidConv.Click += new System.EventHandler(this.button3_Click); + // + // btNewID + // + this.btNewID.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btNewID.Location = new System.Drawing.Point(399, 36); + this.btNewID.Name = "btNewID"; + this.btNewID.Size = new System.Drawing.Size(82, 31); + this.btNewID.TabIndex = 9; + this.btNewID.Text = "생성"; + this.btNewID.UseVisualStyleBackColor = true; + this.btNewID.Click += new System.EventHandler(this.btNewID_Click); + // + // btChkQty + // + this.btChkQty.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btChkQty.Location = new System.Drawing.Point(399, 102); + this.btChkQty.Name = "btChkQty"; + this.btChkQty.Size = new System.Drawing.Size(142, 51); + this.btChkQty.TabIndex = 8; + this.btChkQty.Text = "서버 수량 체크"; + this.btChkQty.UseVisualStyleBackColor = true; + this.btChkQty.Click += new System.EventHandler(this.btReqQty_Click); + // + // button9 + // + this.button9.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button9.Location = new System.Drawing.Point(116, 193); + this.button9.Name = "button9"; + this.button9.Size = new System.Drawing.Size(96, 31); + this.button9.TabIndex = 31; + this.button9.Text = "선택"; + this.button9.UseVisualStyleBackColor = true; + this.button9.Click += new System.EventHandler(this.button9_Click); + // + // linkLabel8 + // + this.linkLabel8.AutoSize = true; + this.linkLabel8.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.linkLabel8.Location = new System.Drawing.Point(13, 76); + this.linkLabel8.Name = "linkLabel8"; + this.linkLabel8.Size = new System.Drawing.Size(126, 21); + this.linkLabel8.TabIndex = 28; + this.linkLabel8.TabStop = true; + this.linkLabel8.Text = "Customer Code"; + this.linkLabel8.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel8_LinkClicked); + // + // TbCustCode + // + this.TbCustCode.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.TbCustCode.Font = new System.Drawing.Font("맑은 고딕", 11F); + this.TbCustCode.Location = new System.Drawing.Point(13, 104); + this.TbCustCode.Margin = new System.Windows.Forms.Padding(5, 8, 5, 8); + this.TbCustCode.Name = "TbCustCode"; + this.TbCustCode.Size = new System.Drawing.Size(199, 27); + this.TbCustCode.TabIndex = 27; + this.TbCustCode.Tag = "SUPPLY"; + // + // button6 + // + this.button6.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.button6.Location = new System.Drawing.Point(13, 193); + this.button6.Name = "button6"; + this.button6.Size = new System.Drawing.Size(97, 31); + this.button6.TabIndex = 26; + this.button6.Text = "자동입력"; + this.button6.UseVisualStyleBackColor = true; + this.button6.Click += new System.EventHandler(this.button6_Click); + // + // panel4 + // + this.panel4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.panel4.Controls.Add(this.tableLayoutPanel8); + this.panel4.Controls.Add(this.tableLayoutPanel1); + this.panel4.Controls.Add(this.iv1); + this.panel4.Location = new System.Drawing.Point(10, 289); + this.panel4.Name = "panel4"; + this.panel4.Size = new System.Drawing.Size(774, 553); + this.panel4.TabIndex = 24; + // + // tableLayoutPanel8 + // + this.tableLayoutPanel8.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.tableLayoutPanel8.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.tableLayoutPanel8.ColumnCount = 3; + this.tableLayoutPanel8.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel8.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F)); + this.tableLayoutPanel8.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F)); + this.tableLayoutPanel8.Controls.Add(this.lbl8, 1, 1); + this.tableLayoutPanel8.Controls.Add(this.lbl2, 1, 3); + this.tableLayoutPanel8.Controls.Add(this.lbl4, 0, 2); + this.tableLayoutPanel8.Controls.Add(this.lbl6, 2, 2); + this.tableLayoutPanel8.Controls.Add(this.lbl7, 0, 1); + this.tableLayoutPanel8.Controls.Add(this.lbl9, 2, 1); + this.tableLayoutPanel8.Controls.Add(this.lbl3, 2, 3); + this.tableLayoutPanel8.Controls.Add(this.lbl1, 0, 3); + this.tableLayoutPanel8.Controls.Add(this.label17, 0, 0); + this.tableLayoutPanel8.Location = new System.Drawing.Point(645, 437); + this.tableLayoutPanel8.Name = "tableLayoutPanel8"; + this.tableLayoutPanel8.RowCount = 4; + this.tableLayoutPanel8.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel8.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel8.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel8.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel8.Size = new System.Drawing.Size(126, 113); + this.tableLayoutPanel8.TabIndex = 20; + // + // lbl8 + // + this.lbl8.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbl8.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl8.ForeColor = System.Drawing.Color.White; + this.lbl8.Location = new System.Drawing.Point(44, 20); + this.lbl8.Name = "lbl8"; + this.lbl8.Size = new System.Drawing.Size(36, 31); + this.lbl8.TabIndex = 0; + this.lbl8.Tag = "8"; + this.lbl8.Text = "↑"; + this.lbl8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl8.Click += new System.EventHandler(this.label13_Click); + // + // lbl2 + // + this.lbl2.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbl2.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl2.ForeColor = System.Drawing.Color.White; + this.lbl2.Location = new System.Drawing.Point(44, 82); + this.lbl2.Name = "lbl2"; + this.lbl2.Size = new System.Drawing.Size(36, 31); + this.lbl2.TabIndex = 0; + this.lbl2.Tag = "2"; + this.lbl2.Text = "↓"; + this.lbl2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl2.Click += new System.EventHandler(this.label13_Click); + // + // lbl4 + // + this.lbl4.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbl4.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl4.ForeColor = System.Drawing.Color.White; + this.lbl4.Location = new System.Drawing.Point(3, 51); + this.lbl4.Name = "lbl4"; + this.lbl4.Size = new System.Drawing.Size(35, 31); + this.lbl4.TabIndex = 0; + this.lbl4.Tag = "4"; + this.lbl4.Text = "←"; + this.lbl4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl4.Click += new System.EventHandler(this.label13_Click); + // + // lbl6 + // + this.lbl6.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbl6.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl6.ForeColor = System.Drawing.Color.White; + this.lbl6.Location = new System.Drawing.Point(86, 51); + this.lbl6.Name = "lbl6"; + this.lbl6.Size = new System.Drawing.Size(37, 31); + this.lbl6.TabIndex = 0; + this.lbl6.Tag = "6"; + this.lbl6.Text = "→"; + this.lbl6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl6.Click += new System.EventHandler(this.label13_Click); + // + // lbl7 + // + this.lbl7.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbl7.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl7.ForeColor = System.Drawing.Color.White; + this.lbl7.Location = new System.Drawing.Point(3, 20); + this.lbl7.Name = "lbl7"; + this.lbl7.Size = new System.Drawing.Size(35, 31); + this.lbl7.TabIndex = 0; + this.lbl7.Tag = "7"; + this.lbl7.Text = "↖"; + this.lbl7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl7.Click += new System.EventHandler(this.label13_Click); + // + // lbl9 + // + this.lbl9.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbl9.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl9.ForeColor = System.Drawing.Color.White; + this.lbl9.Location = new System.Drawing.Point(86, 20); + this.lbl9.Name = "lbl9"; + this.lbl9.Size = new System.Drawing.Size(37, 31); + this.lbl9.TabIndex = 0; + this.lbl9.Tag = "9"; + this.lbl9.Text = "↗"; + this.lbl9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl9.Click += new System.EventHandler(this.label13_Click); + // + // lbl3 + // + this.lbl3.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbl3.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl3.ForeColor = System.Drawing.Color.White; + this.lbl3.Location = new System.Drawing.Point(86, 82); + this.lbl3.Name = "lbl3"; + this.lbl3.Size = new System.Drawing.Size(37, 31); + this.lbl3.TabIndex = 0; + this.lbl3.Tag = "3"; + this.lbl3.Text = "↘"; + this.lbl3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl3.Click += new System.EventHandler(this.label13_Click); + // + // lbl1 + // + this.lbl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbl1.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl1.ForeColor = System.Drawing.Color.White; + this.lbl1.Location = new System.Drawing.Point(3, 82); + this.lbl1.Name = "lbl1"; + this.lbl1.Size = new System.Drawing.Size(35, 31); + this.lbl1.TabIndex = 0; + this.lbl1.Tag = "1"; + this.lbl1.Text = "↙"; + this.lbl1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbl1.Click += new System.EventHandler(this.label13_Click); + // + // label17 + // + this.label17.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.tableLayoutPanel8.SetColumnSpan(this.label17, 3); + this.label17.Dock = System.Windows.Forms.DockStyle.Fill; + this.label17.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label17.Location = new System.Drawing.Point(0, 0); + this.label17.Margin = new System.Windows.Forms.Padding(0); + this.label17.Name = "label17"; + this.label17.Size = new System.Drawing.Size(126, 20); + this.label17.TabIndex = 10; + this.label17.Text = "라벨위치"; + this.label17.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.tableLayoutPanel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.tableLayoutPanel1.ColumnCount = 3; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33332F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F)); + this.tableLayoutPanel1.Controls.Add(this.label2, 1, 2); + this.tableLayoutPanel1.Controls.Add(this.pb8, 1, 1); + this.tableLayoutPanel1.Controls.Add(this.pb2, 1, 3); + this.tableLayoutPanel1.Controls.Add(this.pb4, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.pb6, 2, 2); + this.tableLayoutPanel1.Controls.Add(this.pb7, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.pb9, 2, 1); + this.tableLayoutPanel1.Controls.Add(this.pb3, 2, 3); + this.tableLayoutPanel1.Controls.Add(this.pb1, 0, 3); + this.tableLayoutPanel1.Controls.Add(this.label26, 0, 0); + this.tableLayoutPanel1.Location = new System.Drawing.Point(580, 4); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 4; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 35F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(191, 191); + this.tableLayoutPanel1.TabIndex = 21; + // + // label2 + // + this.label2.Dock = System.Windows.Forms.DockStyle.Fill; + this.label2.Font = new System.Drawing.Font("Calibri", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label2.ForeColor = System.Drawing.Color.White; + this.label2.Location = new System.Drawing.Point(66, 87); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(57, 52); + this.label2.TabIndex = 22; + this.label2.Tag = "4"; + this.label2.Text = "♣"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.label2.Click += new System.EventHandler(this.label2_Click_1); + // + // pb8 + // + this.pb8.Dock = System.Windows.Forms.DockStyle.Fill; + this.pb8.Font = new System.Drawing.Font("Calibri", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.pb8.ForeColor = System.Drawing.Color.White; + this.pb8.Location = new System.Drawing.Point(66, 35); + this.pb8.Name = "pb8"; + this.pb8.Size = new System.Drawing.Size(57, 52); + this.pb8.TabIndex = 0; + this.pb8.Tag = "8"; + this.pb8.Text = "↑"; + this.pb8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.pb8.Click += new System.EventHandler(this.label22_Click); + // + // pb2 + // + this.pb2.Dock = System.Windows.Forms.DockStyle.Fill; + this.pb2.Font = new System.Drawing.Font("Calibri", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.pb2.ForeColor = System.Drawing.Color.White; + this.pb2.Location = new System.Drawing.Point(66, 139); + this.pb2.Name = "pb2"; + this.pb2.Size = new System.Drawing.Size(57, 52); + this.pb2.TabIndex = 0; + this.pb2.Tag = "2"; + this.pb2.Text = "↓"; + this.pb2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.pb2.Click += new System.EventHandler(this.label22_Click); + // + // pb4 + // + this.pb4.Dock = System.Windows.Forms.DockStyle.Fill; + this.pb4.Font = new System.Drawing.Font("Calibri", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.pb4.ForeColor = System.Drawing.Color.White; + this.pb4.Location = new System.Drawing.Point(3, 87); + this.pb4.Name = "pb4"; + this.pb4.Size = new System.Drawing.Size(57, 52); + this.pb4.TabIndex = 0; + this.pb4.Tag = "4"; + this.pb4.Text = "←"; + this.pb4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.pb4.Click += new System.EventHandler(this.label22_Click); + // + // pb6 + // + this.pb6.Dock = System.Windows.Forms.DockStyle.Fill; + this.pb6.Font = new System.Drawing.Font("Calibri", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.pb6.ForeColor = System.Drawing.Color.White; + this.pb6.Location = new System.Drawing.Point(129, 87); + this.pb6.Name = "pb6"; + this.pb6.Size = new System.Drawing.Size(59, 52); + this.pb6.TabIndex = 0; + this.pb6.Tag = "6"; + this.pb6.Text = "→"; + this.pb6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.pb6.Click += new System.EventHandler(this.label22_Click); + // + // pb7 + // + this.pb7.Dock = System.Windows.Forms.DockStyle.Fill; + this.pb7.Font = new System.Drawing.Font("Calibri", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.pb7.ForeColor = System.Drawing.Color.White; + this.pb7.Location = new System.Drawing.Point(3, 35); + this.pb7.Name = "pb7"; + this.pb7.Size = new System.Drawing.Size(57, 52); + this.pb7.TabIndex = 0; + this.pb7.Tag = "7"; + this.pb7.Text = "↖"; + this.pb7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.pb7.Click += new System.EventHandler(this.label22_Click); + // + // pb9 + // + this.pb9.Dock = System.Windows.Forms.DockStyle.Fill; + this.pb9.Font = new System.Drawing.Font("Calibri", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.pb9.ForeColor = System.Drawing.Color.White; + this.pb9.Location = new System.Drawing.Point(129, 35); + this.pb9.Name = "pb9"; + this.pb9.Size = new System.Drawing.Size(59, 52); + this.pb9.TabIndex = 0; + this.pb9.Tag = "9"; + this.pb9.Text = "↗"; + this.pb9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.pb9.Click += new System.EventHandler(this.label22_Click); + // + // pb3 + // + this.pb3.Dock = System.Windows.Forms.DockStyle.Fill; + this.pb3.Font = new System.Drawing.Font("Calibri", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.pb3.ForeColor = System.Drawing.Color.White; + this.pb3.Location = new System.Drawing.Point(129, 139); + this.pb3.Name = "pb3"; + this.pb3.Size = new System.Drawing.Size(59, 52); + this.pb3.TabIndex = 0; + this.pb3.Tag = "3"; + this.pb3.Text = "↘"; + this.pb3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.pb3.Click += new System.EventHandler(this.label22_Click); + // + // pb1 + // + this.pb1.Dock = System.Windows.Forms.DockStyle.Fill; + this.pb1.Font = new System.Drawing.Font("Calibri", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.pb1.ForeColor = System.Drawing.Color.White; + this.pb1.Location = new System.Drawing.Point(3, 139); + this.pb1.Name = "pb1"; + this.pb1.Size = new System.Drawing.Size(57, 52); + this.pb1.TabIndex = 0; + this.pb1.Tag = "1"; + this.pb1.Text = "↙"; + this.pb1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.pb1.Click += new System.EventHandler(this.label22_Click); + // + // label26 + // + this.label26.BackColor = System.Drawing.Color.Gold; + this.tableLayoutPanel1.SetColumnSpan(this.label26, 3); + this.label26.Dock = System.Windows.Forms.DockStyle.Fill; + this.label26.Font = new System.Drawing.Font("맑은 고딕", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label26.Location = new System.Drawing.Point(0, 0); + this.label26.Margin = new System.Windows.Forms.Padding(0); + this.label26.Name = "label26"; + this.label26.Size = new System.Drawing.Size(191, 35); + this.label26.TabIndex = 10; + this.label26.Text = "부착위치"; + this.label26.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.label26.Click += new System.EventHandler(this.label26_Click); + // + // iv1 + // + this.iv1.arDebugMessageColor = System.Drawing.Color.SkyBlue; + this.iv1.arInsertROI = false; + this.iv1.arROIDrawColor = System.Drawing.Color.Lime; + this.iv1.arSceanBColor = System.Drawing.Color.Black; + this.iv1.arSceanFColor = System.Drawing.Color.White; + this.iv1.arSceanMessage = null; + this.iv1.arShowDebugMessage = false; + this.iv1.arUseROIControl = false; + this.iv1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(0)))), ((int)(((byte)(64))))); + this.iv1.Dock = System.Windows.Forms.DockStyle.Fill; + this.iv1.ImageSize = new System.Drawing.Size(0, 0); + this.iv1.isRunZoomFit = false; + this.iv1.Location = new System.Drawing.Point(0, 0); + this.iv1.Name = "iv1"; + this.iv1.Size = new System.Drawing.Size(774, 553); + this.iv1.TabIndex = 2; + this.iv1.TabStop = false; + // + // linkLabel6 + // + this.linkLabel6.AutoSize = true; + this.linkLabel6.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.linkLabel6.Location = new System.Drawing.Point(13, 20); + this.linkLabel6.Name = "linkLabel6"; + this.linkLabel6.Size = new System.Drawing.Size(112, 21); + this.linkLabel6.TabIndex = 23; + this.linkLabel6.TabStop = true; + this.linkLabel6.Text = "Vender Name"; + this.linkLabel6.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel6_LinkClicked); + // + // tbVName + // + this.tbVName.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tbVName.Location = new System.Drawing.Point(13, 48); + this.tbVName.Margin = new System.Windows.Forms.Padding(5, 8, 5, 8); + this.tbVName.Name = "tbVName"; + this.tbVName.Size = new System.Drawing.Size(199, 27); + this.tbVName.TabIndex = 13; + this.tbVName.Tag = "SUPPLY"; + this.tbVName.Click += new System.EventHandler(this.tbDate_Click); + this.tbVName.TextChanged += new System.EventHandler(this.tbSupply_TextChanged); + // + // panel1 + // + this.panel1.Dock = System.Windows.Forms.DockStyle.Right; + this.panel1.Location = new System.Drawing.Point(801, 5); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(5, 851); + this.panel1.TabIndex = 9; + // + // panel2 + // + this.panel2.Controls.Add(this.button3); + this.panel2.Controls.Add(this.button1); + this.panel2.Controls.Add(this.groupBox3); + this.panel2.Controls.Add(this.groupBox2); + this.panel2.Controls.Add(this.panel4); + this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel2.Location = new System.Drawing.Point(5, 5); + this.panel2.Name = "panel2"; + this.panel2.Padding = new System.Windows.Forms.Padding(10); + this.panel2.Size = new System.Drawing.Size(796, 851); + this.panel2.TabIndex = 10; + // + // button3 + // + this.button3.Font = new System.Drawing.Font("맑은 고딕", 11.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button3.Location = new System.Drawing.Point(10, 235); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(393, 48); + this.button3.TabIndex = 34; + this.button3.Text = "작업 결과에서 데이터 자동 입력"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click_1); + // + // button1 + // + this.button1.Font = new System.Drawing.Font("맑은 고딕", 11.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button1.Location = new System.Drawing.Point(409, 235); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(375, 48); + this.button1.TabIndex = 33; + this.button1.Text = "작업 결과에서 데이터를 선택 합니다"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click_1); + // + // groupBox3 + // + this.groupBox3.Controls.Add(this.linkLabel9); + this.groupBox3.Controls.Add(this.tbCustName); + this.groupBox3.Controls.Add(this.tbVName); + this.groupBox3.Controls.Add(this.button9); + this.groupBox3.Controls.Add(this.linkLabel6); + this.groupBox3.Controls.Add(this.linkLabel8); + this.groupBox3.Controls.Add(this.TbCustCode); + this.groupBox3.Controls.Add(this.button6); + this.groupBox3.Location = new System.Drawing.Point(564, 3); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size(220, 228); + this.groupBox3.TabIndex = 32; + this.groupBox3.TabStop = false; + // + // linkLabel9 + // + this.linkLabel9.AutoSize = true; + this.linkLabel9.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.linkLabel9.Location = new System.Drawing.Point(13, 133); + this.linkLabel9.Name = "linkLabel9"; + this.linkLabel9.Size = new System.Drawing.Size(130, 21); + this.linkLabel9.TabIndex = 33; + this.linkLabel9.TabStop = true; + this.linkLabel9.Text = "Customer Name"; + this.linkLabel9.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel9_LinkClicked); + // + // tbCustName + // + this.tbCustName.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.tbCustName.Font = new System.Drawing.Font("맑은 고딕", 11F); + this.tbCustName.Location = new System.Drawing.Point(13, 161); + this.tbCustName.Margin = new System.Windows.Forms.Padding(5, 8, 5, 8); + this.tbCustName.Name = "tbCustName"; + this.tbCustName.Size = new System.Drawing.Size(199, 27); + this.tbCustName.TabIndex = 32; + this.tbCustName.Tag = "SUPPLY"; + // + // tmAutoConfirm + // + this.tmAutoConfirm.Interval = 500; + this.tmAutoConfirm.Tick += new System.EventHandler(this.tmAutoConfirm_Tick); + // + // fLoaderInfo + // + this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 30F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1184, 861); + this.Controls.Add(this.panel2); + this.Controls.Add(this.panel1); + this.Controls.Add(this.groupBox1); + this.Font = new System.Drawing.Font("맑은 고딕", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.Margin = new System.Windows.Forms.Padding(5, 8, 5, 8); + this.Name = "fLoaderInfo"; + this.Padding = new System.Windows.Forms.Padding(5); + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Barcode Data Element"; + this.Load += new System.EventHandler(this.fLoaderInfo_Load); + this.groupBox1.ResumeLayout(false); + this.cmbarc.ResumeLayout(false); + this.panel3.ResumeLayout(false); + this.groupBox2.ResumeLayout(false); + this.groupBox2.PerformLayout(); + this.panel4.ResumeLayout(false); + this.tableLayoutPanel8.ResumeLayout(false); + this.tableLayoutPanel1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.iv1)).EndInit(); + this.panel2.ResumeLayout(false); + this.groupBox3.ResumeLayout(false); + this.groupBox3.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + private System.Windows.Forms.TextBox tbSID; + private System.Windows.Forms.TextBox tbVLOT; + private System.Windows.Forms.TextBox tbQTY; + private System.Windows.Forms.TextBox tbDate; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.ListView lvbcdList; + private System.Windows.Forms.ColumnHeader columnHeader1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.TextBox tbRID; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.Button btChkQty; + private System.Windows.Forms.Button btNewID; + private arCtl.ImageBox iv1; + private System.Windows.Forms.Button btSidConv; + private System.Windows.Forms.TextBox tbVName; + private System.Windows.Forms.TextBox tbpartno; + private System.Windows.Forms.Label lbQTY0; + private System.Windows.Forms.Label lbSID0; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel8; + private System.Windows.Forms.Label lbl8; + private System.Windows.Forms.Label lbl2; + private System.Windows.Forms.Label lbl4; + private System.Windows.Forms.Label lbl6; + private System.Windows.Forms.Label lbl7; + private System.Windows.Forms.Label lbl9; + private System.Windows.Forms.Label lbl3; + private System.Windows.Forms.Label lbl1; + private System.Windows.Forms.Label label17; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Label pb8; + private System.Windows.Forms.Label pb2; + private System.Windows.Forms.Label pb4; + private System.Windows.Forms.Label pb6; + private System.Windows.Forms.Label pb7; + private System.Windows.Forms.Label pb9; + private System.Windows.Forms.Label pb3; + private System.Windows.Forms.Label pb1; + private System.Windows.Forms.Label label26; + private System.Windows.Forms.Panel panel3; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Button btDateSelecte; + private System.Windows.Forms.ColumnHeader columnHeader4; + private System.Windows.Forms.LinkLabel linkLabel1; + private System.Windows.Forms.LinkLabel linkLabel7; + private System.Windows.Forms.LinkLabel linkLabel6; + private System.Windows.Forms.LinkLabel linkLabel5; + private System.Windows.Forms.LinkLabel linkLabel4; + private System.Windows.Forms.LinkLabel linkLabel3; + private System.Windows.Forms.LinkLabel linkLabel2; + private System.Windows.Forms.Panel panel4; + private System.Windows.Forms.Button btPartChk; + private System.Windows.Forms.Button button6; + private System.Windows.Forms.LinkLabel linkLabel8; + private System.Windows.Forms.TextBox TbCustCode; + private System.Windows.Forms.Button tbSidFind; + private System.Windows.Forms.Button btIDChk; + private System.Windows.Forms.Button button9; + private System.Windows.Forms.GroupBox groupBox3; + private System.Windows.Forms.Button btOK; + private System.Windows.Forms.LinkLabel linkLabel9; + private System.Windows.Forms.TextBox tbCustName; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.ListBox lstErrmsg; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.Timer tmAutoConfirm; + private System.Windows.Forms.ContextMenuStrip cmbarc; + private System.Windows.Forms.ToolStripMenuItem 회전기준바코드로설정ToolStripMenuItem; + private System.Windows.Forms.Button button4; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fLoaderInfo.cs b/Handler/Project_form2/Dialog/fLoaderInfo.cs new file mode 100644 index 0000000..fc4cea5 --- /dev/null +++ b/Handler/Project_form2/Dialog/fLoaderInfo.cs @@ -0,0 +1,1737 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fLoaderInfo : Form + { + string PrintPos = ""; + + public fLoaderInfo(List errlist) + { + InitializeComponent(); + Pub.flag.set(eFlag.WAIT_LOADERINFO, true, "_LOAD"); + this.FormClosed += FLoaderInfo_FormClosed; + this.lstErrmsg.Items.Clear(); + + if (errlist != null) + { + + foreach (var item in errlist) + AddErrorMessage(item); + } + + } + + void AddErrorMessage(string msg) + { + if (this.lstErrmsg.InvokeRequired) + { + this.lstErrmsg.BeginInvoke(new Action(() => + { + //동일한 태그를 가진 항목이 존재하는가? + if (lstErrmsg.FindString(msg) < 0) + lstErrmsg.Items.Add(string.Format("{0}", msg)); + })); + } + else + { + //동일한 태그를 가진 항목이 존재하는가? + if (lstErrmsg.FindString(msg) < 0) + lstErrmsg.Items.Add(string.Format("{0}", msg)); + } + } + + private void FLoaderInfo_FormClosed(object sender, FormClosedEventArgs e) + { + //이미지해제 210329 + if (this.iv1.Image != null) + { + this.iv1.Image.Dispose(); + this.iv1.Image = null; + } + + Pub.flag.set(eFlag.WAIT_LOADERINFO, false, "_CLOSE"); + + //사용자가 정보를 정확히 입력하지 않고 닫았다 + if (Pub.Result.ItemData[1].VisionData.Confirm == false) + { + if (Pub.sm.Step == StateMachine.eSMStep.RUN) + { + Pub.Result.SetResultMessage(eResult.OPERATION, eECode.CAM_NOBARCODEL, eNextStep.pause, 1); + } + } + } + + private void fLoaderInfo_Load(object sender, EventArgs e) + { + //현재 바코드가 읽었단 자료를 모두 표시한다. + this.tbRID.Text = Pub.Result.ItemData[1].VisionData.RID; + this.tbRID.Tag = Pub.Result.ItemData[1].VisionData.RID0; + + //if (Pub.Result.JobType == "13" ) + //{ + // if (Pub.Result.ItemData[1].VisionData.SID.StartsWith("103")) + // { + // tbSID.Text = Pub.Result.ItemData[1].VisionData.SID; + // } + // else + // { + // var msg = $"13작업이나 입력된 SID가 103이 아니여서 적용하지 않습니다. sid:{Pub.Result.ItemData[1].VisionData.SID}"; + // Pub.AddSystemLog(Application.ProductVersion, "LoaderInfo", msg); + // Pub.log.AddAT(msg); + // } + //} + //else + { + tbSID.Text = Pub.Result.ItemData[1].VisionData.SID; + } + + + lbSID0.Text = Pub.Result.ItemData[1].VisionData.SID0; + tbVLOT.Text = Pub.Result.ItemData[1].VisionData.VLOT; + + if (lbSID0.Text.isEmpty() == false) + lbSID0.Tag = lbSID0.Text; + + //수량메뉴얼입력칸 + if (Pub.Result.Option_QtyUpdateM) + { + if (Pub.Result.ItemData[1].VisionData.QTYRQ == true) + { + //수동입력이나 바코드에서 RQ값이 들어있는 상태이니 그것을 사용한다. + //lock (Pub.Result.ItemData[1].VisionData.barcodelist) + { + var rqBcd = Pub.Result.ItemData[1].VisionData.barcodelist.Where(t => t.Data.StartsWith("RQ")).FirstOrDefault(); + if (rqBcd != null) + { + var newqty = rqBcd.Data.Substring(2).Trim(); + Pub.log.Add($"수량업데이트 {tbQTY.Text}->{newqty}"); + tbQTY.Text = newqty; + } + else + { + Pub.log.AddAT("RQ가 설정되어있었으나 해당 값이 코드 목록에 없어 수량을 채우지 않습니다"); + } + } + + + + } + else + { + //수량을 직접입력하는 경우이므로 수량값을 지워버린다. + Pub.log.Add($"수량업데이트 {tbQTY.Text}-> (직접입력으로인한삭제)"); + tbQTY.Text = string.Empty; + } + } + else + { + Pub.log.Add($"수량업데이트 {tbQTY.Text}->{Pub.Result.ItemData[1].VisionData.QTY}"); + tbQTY.Text = Pub.Result.ItemData[1].VisionData.QTY; + } + + lbQTY0.Text = Pub.Result.ItemData[1].VisionData.QTY0; + tbDate.Text = Pub.Result.ItemData[1].VisionData.MFGDATE; + tbVName.Text = Pub.Result.ItemData[1].VisionData.VNAME; + tbpartno.Text = Pub.Result.ItemData[1].VisionData.PARTNO; + + TbCustCode.Text = Pub.Result.ItemData[1].VisionData.temp_custcode; //210317 + tbCustName.Text = Pub.Result.ItemData[1].VisionData.temp_custname; + //라벨위치 정보표시 - 210127 + DisplayLabelPos(Pub.Result.ItemData[1].VisionData.LabelPositionData); + + //프린트정보표시 + this.PrintPos = Pub.Result.ItemData[1].VisionData.PrintPositionData; + DisplayPrintPos(Pub.Result.ItemData[1].VisionData.PrintPositionData); + + //이미지표시 210121 + this.iv1.Shapes.Clear(); + if (Pub.Result.ItemData[1].VisionData.image != null) + { + //이미지복사해서사용 210329 + var keyImage = Pub.Result.ItemData[1].VisionData.image.Clone(); + this.iv1.Image = keyImage; + } + + this.lvbcdList.Items.Clear(); + + //키엔스로부터 읽은 바코드 목록을 표시한다(우측) + func_displaybcdlist(); + + if (iv1.Image != null) + iv1.ZoomFit(); + + + selectInput(this.tbRID); + + //자동판단데이터 확인; (101-103d우선처리) + //이제 모든 sid변환은 1,3컬럼만 사용한다, 22-01-04 + if (Pub.Result.JobType2 == "13" && tbSID.Text.StartsWith("10")) func_sidconv(true); + + //릴아이디가 없는 경우 자동 생성해준다. + Boolean updaterid = false; + var custCode = TbCustCode.Text; + if (Pub.Result.Option_NewReelID) + { + + if (tbRID.Text.isEmpty()) + { + if (custCode.isEmpty() == false) updaterid = true; + else Pub.log.AddAT("릴 아이디를 생성해야하는데 커스터머 코드가 없습니다."); + } + else if (custCode.isEmpty() == false) + { + //릴id는 있는데. customer 코드값이 다르면 다시 만들어줘야한다. + if (tbRID.Text.StartsWith("RC" + custCode) == false) + { + Pub.log.Add("릴 ID의 cust 코드가 달라 다시 생성합니다"); + updaterid = true; + } + } + } + + if (updaterid) + { + var YY = DateTime.Now.Year.ToString().Substring(2); + var MM = DateTime.Now.Month.ToString("X"); + var datestr = YY + MM; + var newsn = AmkorReelID.GetNextSNbyYM(datestr); + + var data = "R"; + data += "C"; + data += custCode.Trim(); + data += "4"; + data += "A"; + data += YY; + data += MM; + data += newsn; + if (data.Length == 15) + { + this.tbRID.Text = data; + Pub.log.Add("기초자료가 있어 릴 id를 자동 생성했음" + data); + } + else + { + Util.MsgE("릴 ID생성했지만 15자리가 아님 프로그램 오류(" + data + ")"); + } + } + + + //자동완료이며, 사용자 확인이 off된상태, 수량입력도 false 된 상태여야함 + if (Pub.Result.Option_AutoConf && Pub.Result.Option_Confirm1 == false && Pub.Result.Option_QtyUpdateM == false && Pub.Result.JobFirst == false) + { + //자료가 모두 있는지 확인한다. + tmAutoConfirm.Start(); + } + + } + + void func_displaybcdlist() + { + var angok = Pub.Result.ItemData[1].VisionData.BaseAngle(out string msg, out Class.KeyenceBarcodeData bcd); + lock (Pub.Result.ItemData[1].VisionData.barcodelist) + { + var no = 1; + lvbcdList.Items.Clear(); //기존꺼 삭제 + foreach (var item in Pub.Result.ItemData[1].VisionData.barcodelist) + { + var lv = this.lvbcdList.Items.Add(item.Angle.ToString("N1")); + lv.SubItems.Add(item.Data); + //lv.SubItems.Add(item.CenterPX.X.ToString()); + //lv.SubItems.Add(item.CenterPX.Y.ToString()); + var c = new StdLabelPrint.CAmkorSTDBarcode(item.Data); + if (c.isValid) lv.ForeColor = Color.Blue; + else lv.ForeColor = Color.Black; + + if (item.sym == "1") lv.BackColor = Color.Gold; + else if (item.sym == "2") lv.BackColor = Color.Lime; + else lv.BackColor = Color.WhiteSmoke; + + //회전에 사용할 데이터라면 체크를 해준다. + if (angok && bcd.Data == item.Data) + { + if (this.lvbcdList.CheckedItems.Count == 0) + lv.Checked = true; + } + else lv.Checked = false; + + //vertext 표시 + var vt = item.vertex; + if (vt.Length == 4) + { + Color lcolor = no % 2 == 0 ? Color.Tomato : Color.Lime; + iv1.AddShapeLine(vt[0], vt[1], lcolor); + iv1.AddShapeLine(vt[1], vt[2], lcolor); + iv1.AddShapeLine(vt[2], vt[3], lcolor); + iv1.AddShapeLine(vt[3], vt[0], lcolor); + + iv1.AddShapeText(vt[0], no.ToString(), Color.Black); //210312 + } + + //가장우측상단에 번호를 표시한다. + + + no += 1; + } + } + } + private void button1_Click(object sender, EventArgs e) + { + + } + + private void label6_Click(object sender, EventArgs e) + { + + } + + string TagStr = string.Empty; + void selectInput(Control c) + { + TagStr = string.Empty; + if (c is TextBox) + { + var tb = c as TextBox; + TagStr = tb.Tag.ToString(); + } + else if (c is Label) + { + var lb = c as Label; + TagStr = lb.Tag.ToString(); + } + + //동일태그를 가진 textbox 의 배경색을 업데이트한다 + foreach (Control tb in groupBox2.Controls) + { + if (tb is TextBox) + { + if (tb.Tag.ToString() == TagStr) + { + tb.BackColor = Color.SkyBlue; + } + else tb.BackColor = SystemColors.Control; + } + } + } + + private void button2_Click(object sender, EventArgs e) + { + //if (this.listView1.FocusedItem == null) + //{ + // Util.MsgE("입력할 바코드 값을 먼저 선택하세요"); + // return; + //} + if (this.TagStr.isEmpty()) + { + Util.MsgE("데이터를 입력할 칸을 먼저 클릭 하세요"); + return; + } + var lvitem = this.lvbcdList.FocusedItem; + if (lvitem == null) return; + + var lvValue = lvitem.SubItems[1].Text.Trim(); + if (lvValue.isEmpty()) + { + Util.MsgE("선택한 자료에 값이 없습니다\n\n다른 자료를 선택하세요"); + return; + } + + //선택자료가 ; 으로 분류가능하면 추가로 팝업 + if (lvValue.Split(';').Length > 1) + { + var ff = new Dialog.fSelectDataList(lvValue.Split(';')); + if (ff.ShowDialog() == DialogResult.OK) + { + lvValue = ff.SelectedValue; + } + else return; + } + else if (lvValue.Split(',').Length > 1) + { + var ff = new Dialog.fSelectDataList(lvValue.Split(',')); + if (ff.ShowDialog() == DialogResult.OK) + { + lvValue = ff.SelectedValue; + } + else return; + } + + if (TagStr == "RID" || TagStr == "ID") + { + tbRID.Text = lvValue; + } + else if (TagStr == "SID") + { + tbSID.Text = lvValue; + + //sid값을 적용했다면 프린트 위치도 확인한.다. + if (this.PrintPos.isEmpty() || this.PrintPos == "5" && lvValue.isEmpty() == false) + { + try + { + using (var db = new EEEntities()) + { + var dr = db.Component_Reel_SIDInfo.Where(t => t.SID == lvValue).FirstOrDefault(); + if (dr != null) //자료가잇는 경우에만 적용 + { + this.PrintPos = dr.PrintPosition; + this.DisplayPrintPos(this.PrintPos); + } + } + } + catch (Exception ex) + { + Util.MsgE("SID:" + lvValue + " 의 인쇄위치값 불러오기 실패\n" + ex.Message); + } + } + } + else if (TagStr == "VLOT") + { + tbVLOT.Text = lvValue; + } + else if (TagStr == "QTY") + { + Pub.log.Add($"수량업데이트 {tbQTY.Text}->{lvValue}"); + tbQTY.Text = lvValue; + } + else if (TagStr == "MFGDATE") + { + tbDate.Text = lvValue; + } + else if (TagStr == "SUPPLY") + { + tbVName.Text = lvValue; + } + else if (TagStr == "PARTNO") + { + tbpartno.Text = lvValue; + } + } + + private void button3_Click(object sender, EventArgs e) + { + CancleAutoConfirm(); + //Pub.Result.JobEndTime + //sid를 변경했다면 원본값은 sid0에 넣는다 + func_sidconv(false); + } + + void CancleAutoConfirm() + { + if (Pub.Result.Option_AutoConf) + { + btOK.Text = "◆ 입력 완료 ◆"; + tmAutoConfirm.Stop(); + } + } + + void func_sidconv(Boolean auto) + { + var sid = tbSID.Text.Trim(); + var jobtype = Pub.Result.JobType2; + if (jobtype == "13") + { + if (auto) + { + //데이터베이스에서 조회한다. + try + { + using (var db = new EEEntities()) + { + var dr = db.Component_Reel_SIDConv.Where(t => t.SIDFrom == sid && string.IsNullOrEmpty(t.SIDTo) == false); + if (dr.Any() == true) //변환테이블자료가 있다. + { + if (dr.Count() == 1) + { + //원본에 값이 없는경우에만 생성한다 + if(lbSID0.Text.isEmpty()) + { + lbSID0.Tag = tbSID.Text; //변환정보가 있으니 현재 정보를 원본의 값에 넣는다 + lbSID0.Text = tbSID.Text; //원본값 + } + tbSID.Text = dr.First().SIDTo; //변환된 값을 현재 값에 넣는다. + Pub.log.Add(string.Format("다음 SID 자동변환 {0}->{1},작업:{2}", dr.First().SIDFrom, dr.First().SIDTo, jobtype)); + } + else Pub.log.AddE(string.Format("SID 자동변환실패 {0}, 발견 SID변환정보 수량:{1}", dr.First().SIDFrom, dr.Count())); + } + else Pub.log.Add(string.Format("SID자동변경실패 변환자료 없음 sid:{0},작업:{1}", sid, jobtype)); + } + } + catch (Exception ex) + { + Pub.log.AddE("SID변환작업실패 메세지:" + ex.Message); + } + } + else + { + var f = new Dialog.fNewSID(sid); + if (f.ShowDialog() != DialogResult.OK) return; + + if (lbSID0.Tag == null || lbSID0.Tag.ToString().isEmpty()) //기존에 변환된 정보가 있는가? + { + //원본값 백업 + lbSID0.Tag = tbSID.Text; + lbSID0.Text = tbSID.Text; + + //from & to + Pub.Result.LastSIDFrom = tbSID.Text.Trim(); + Pub.Result.LastSIDTo = f.NewSID.Trim(); + + Pub.log.Add($"sid수동선택으로 인해 마지막 기록을 입력합니다 from={Pub.Result.LastSIDFrom},to={Pub.Result.LastSIDTo}"); + } + + Pub.Result.LastSIDCnt = f.FindSIDCount; + tbSID.Text = f.NewSID; + } + + UpdateSID(auto); + makenewId(); + } + else + { + Util.MsgE("sid변환작업 불가 :작업형태가 일치하지 않습니다 값=" + Pub.Result.JobType2); + } + } + + void makenewId() + { + //ID가 잘못되었다. + if (Pub.Result.Option_NewReelID && CheckRID() == false) + { + //릴 아이디가 잘못되었다면 새로 갱신한다 + var yy = DateTime.Now.ToString("yy"); + var m = DateTime.Now.Month.ToString("X"); + if (TbCustCode.Text.isEmpty()) + { + Pub.log.AddAT("Customer 값이 없어 reelid를 새로 생성하지 못했습니다"); + } + else + { + var newrid = AmkorReelID.MakeReelID(TbCustCode.Text, yy + m); + Pub.log.Add($"RID값을 자동 변경 했습니다 {tbRID.Text} -> {newrid}"); + //if(tbRID.Text.isEmpty()==false) tbri + tbRID.Text = newrid; + } + } + } + + void UpdateSID(Boolean auto = false) + { + //고칠게 없다. + if (TbCustCode.Text.isEmpty() == false && tbpartno.Text.isEmpty() == false && this.PrintPos.isEmpty() == false) + { + return; + } + + //sid 가 변경되었으나 해당 sid 인쇄위치 및 customer / part no 값을 확인 합니다. + using (var db = new EEEntities()) + { + var sid = this.tbSID.Text.Trim(); + + var dr = db.Component_Reel_SIDInfo.Where(t => t.SID == sid).FirstOrDefault(); + if (dr == null) return; + + var msg = "SID 변경으로 인해 다음 자료를 입력할까요?"; + Boolean bupdate = false; + if (dr.CustCode.isEmpty() == false && dr.CustCode != TbCustCode.Text) + { + msg += "\nCustomer Code : " + dr.CustCode; + msg += "\nCustomer Name : " + dr.CustName; + bupdate = true; + } + + if (dr.PartNo.isEmpty() == false && dr.PartNo != tbpartno.Text)// tbpartno.Text.isEmpty()) + { + msg += "\nPart No : " + dr.PartNo; + bupdate = true; + } + + if (dr.PrintPosition.isEmpty() == false) + { + msg += "\nPrint Position : " + dr.PrintPosition; + bupdate = true; + } + if (bupdate == false) + { + //Util.MsgE("변경 가능한 자료가 없습니다"); + return; + } + + //화면에 표시 --자동화면일떄에는 묻지않고 적용한다 + if (auto == false && Util.MsgQ(msg) != DialogResult.Yes) return; + if (dr.CustCode.isEmpty() == false && TbCustCode.Text != dr.CustCode) + { + TbCustCode.Text = dr.CustCode; + tbCustName.Text = dr.CustName; + } + + if (dr.PartNo.isEmpty() == false && tbpartno.Text != dr.PartNo) + { + this.tbpartno.Text = dr.PartNo; + } + + if (dr.PrintPosition.isEmpty() == false) + { + this.PrintPos = dr.PrintPosition; + DisplayPrintPos(this.PrintPos); + } + + //이 SID의 최근 MFGDate 와 Qty 를 추가 체크한다 210326 + if (tbDate.Text.isEmpty() || tbQTY.Text.isEmpty()) + { + func_CheckDateQty(); + } + } + + } + + Boolean func_CheckDateQty() + { + Boolean bwarn = false; + using (var db2 = new EEEntities()) + { + var sid = this.tbSID.Text.Trim(); + if (sid.isEmpty()) return false; //sid가 없다. + + //최근 6시간안에서 동일한 데이터를 찾아서 제안 해준다 + var sd = DateTime.Now.AddHours(-1); + var preData = db2.Component_Reel_Result.AsNoTracking().Where(t => + t.JTYPE == Pub.Result.JobType2 && + t.SID == sid && + string.IsNullOrEmpty(t.QR) == false && + t.STIME >= sd).OrderByDescending(t => t.wdate).FirstOrDefault(); + + //기존자료가 없다면 취소 + if (preData == null) return false; + var amkorid = new StdLabelPrint.CAmkorSTDBarcode(preData.QR); + + if (preData.VNAME != tbVName.Text) + { + //해당 mfgdae 가 바코드목록에 잇다면 바로 적용 + //업다면 적용하고 적용 메세지 표시한다 + //Pub.log.Add(string.Format("이전결과에서 값 업데이트 sid:{0},mfgdata={1}", sid, amkorid.MFGDate)); + tbVName.Text = preData.VNAME; + bwarn = true; + //if (func_existbcddata(amkorid.MFGDate) == false) + { + AddErrorMessage("V.Name 이전 기록으로 업데이트"); + Pub.log.Add("'V.Name' 값을 이전 기록을 통해서 입력했습니다\n" + + "이전 작업시간 : " + ((DateTime)(preData.wdate)).ToString("yyyy-MM-dd HH:mm:ss") + "\n" + + "SID : " + preData.SID + "\n" + + "MFG Date : " + amkorid.MFGDate + "\n" + + "Part No : " + amkorid.PARTNO + "\n" + + "Vender Lot : " + amkorid.VLOT + "\n" + + "Vender Name : " + amkorid.VENDERNAME + "\n" + + "QTY : " + amkorid.QTY.ToString(), true); + } + } + + + if (amkorid.MFGDate.isEmpty() == false && tbDate.Text.isEmpty()) + { + //해당 mfgdae 가 바코드목록에 잇다면 바로 적용 + //업다면 적용하고 적용 메세지 표시한다 + //Pub.log.Add(string.Format("이전결과에서 값 업데이트 sid:{0},mfgdata={1}", sid, amkorid.MFGDate)); + tbDate.Text = amkorid.MFGDate; + bwarn = true; + if (func_existbcddata(amkorid.MFGDate) == false) + { + AddErrorMessage("MFG 이전 기록으로 업데이트"); + Pub.log.Add("'MFG Date' 값을 이전 기록을 통해서 입력했습니다\n" + + "이전 작업시간 : " + ((DateTime)(preData.wdate)).ToString("yyyy-MM-dd HH:mm:ss") + "\n" + + "SID : " + preData.SID + "\n" + + "MFG Date : " + amkorid.MFGDate + "\n" + + "Part No : " + amkorid.PARTNO + "\n" + + "Vender Lot : " + amkorid.VLOT + "\n" + + "Vender Name : " + amkorid.VENDERNAME + "\n" + + "QTY : " + amkorid.QTY.ToString(), true); + } + } + + if (amkorid.QTY > 0 && tbQTY.Text.isEmpty()) + { + //해당 mfgdae 가 바코드목록에 잇다면 바로 적용 + //업다면 적용하고 적용 메세지 표시한다 + Pub.log.Add($"수량업데이트 {tbQTY.Text}->{amkorid.QTY}"); + tbQTY.Text = amkorid.QTY.ToString(); + //Pub.log.Add(string.Format("이전결과에서 값 업데이트 sid:{0},qty={1}", sid, amkorid.QTY)); + bwarn = true; + if (func_existbcddata(amkorid.QTY.ToString()) == false) + { + AddErrorMessage("QTY 이전 기록으로 업데이트"); + Pub.log.Add("'Qty' 값을 이전 기록을 통해서 입력했습니다\n" + + "이전 작업시간 : " + ((DateTime)(preData.wdate)).ToString("yyyy-MM-dd HH:mm:ss") + "\n" + + "SID : " + preData.SID + "\n" + + "MFG Date : " + amkorid.MFGDate + "\n" + + "Part No : " + amkorid.PARTNO + "\n" + + "Vender Lot : " + amkorid.VLOT + "\n" + + "Vender Name : " + amkorid.VENDERNAME + "\n" + + "QTY : " + amkorid.QTY.ToString(), true); + } + + } + + if (amkorid.PARTNO.isEmpty() == false && tbpartno.Text.isEmpty()) + { + //해당 mfgdae 가 바코드목록에 잇다면 바로 적용 + //업다면 적용하고 적용 메세지 표시한다 + tbpartno.Text = amkorid.PARTNO; + bwarn = true; + //Pub.log.Add(string.Format("이전결과에서 값 업데이트 sid:{0},PARTNO={1}", sid, amkorid.PARTNO)); + if (func_existbcddata(amkorid.PARTNO) == false) + { + AddErrorMessage("PartNo 이전 기록으로 업데이트"); + Pub.log.Add("'Part No' 값을 이전 기록을 통해서 입력했습니다\n" + + "이전 작업시간 : " + ((DateTime)(preData.wdate)).ToString("yyyy-MM-dd HH:mm:ss") + "\n" + + "SID : " + preData.SID + "\n" + + "MFG Date : " + amkorid.MFGDate + "\n" + + "Part No : " + amkorid.PARTNO + "\n" + + "Vender Lot : " + amkorid.VLOT + "\n" + + "Vender Name : " + amkorid.VENDERNAME + "\n" + + "QTY : " + amkorid.QTY.ToString(), true); + } + + } + + //Customer + if (amkorid.RID.Length > 10 && amkorid.RID.Substring(2, 4) != TbCustCode.Text.Trim()) + { + //해당 mfgdae 가 바코드목록에 잇다면 바로 적용 + //업다면 적용하고 적용 메세지 표시한다 + TbCustCode.Text = amkorid.RID.Substring(2, 4); + bwarn = true; + //Pub.log.Add(string.Format("이전결과에서 값 업데이트 sid:{0},VLOT={1}", sid, amkorid.VLOT)); + if (func_existbcddata(TbCustCode.Text) == false) + { + AddErrorMessage("Customer Code 이전 기록으로 업데이트"); + Pub.log.Add("'Customer Code' 값을 이전 기록을 통해서 입력했습니다\n" + + "이전 작업시간 : " + ((DateTime)(preData.wdate)).ToString("yyyy-MM-dd HH:mm:ss") + "\n" + + "SID : " + preData.SID + "\n" + + "MFG Date : " + amkorid.MFGDate + "\n" + + "Part No : " + amkorid.PARTNO + "\n" + + "Vender Lot : " + amkorid.VLOT + "\n" + + "Vender Name : " + amkorid.VENDERNAME + "\n" + + "QTY : " + amkorid.QTY.ToString(), true); + + + } + button6.PerformClick(); + } + + + if (amkorid.VLOT.isEmpty() == false && tbVLOT.Text.isEmpty()) + { + //해당 mfgdae 가 바코드목록에 잇다면 바로 적용 + //업다면 적용하고 적용 메세지 표시한다 + tbVLOT.Text = amkorid.VLOT; + bwarn = true; + //Pub.log.Add(string.Format("이전결과에서 값 업데이트 sid:{0},VLOT={1}", sid, amkorid.VLOT)); + if (func_existbcddata(amkorid.VLOT) == false) + { + AddErrorMessage("VLOT 이전 기록으로 업데이트"); + Pub.log.Add("'Vender LOT' 값을 이전 기록을 통해서 입력했습니다\n" + + "이전 작업시간 : " + ((DateTime)(preData.wdate)).ToString("yyyy-MM-dd HH:mm:ss") + "\n" + + "SID : " + preData.SID + "\n" + + "MFG Date : " + amkorid.MFGDate + "\n" + + "Part No : " + amkorid.PARTNO + "\n" + + "Vender Lot : " + amkorid.VLOT + "\n" + + "Vender Name : " + amkorid.VENDERNAME + "\n" + + "QTY : " + amkorid.QTY.ToString(), true); + } + + } + + if (amkorid.VENDERNAME.isEmpty() == false && tbVName.Text.isEmpty()) + { + //해당 mfgdae 가 바코드목록에 잇다면 바로 적용 + //업다면 적용하고 적용 메세지 표시한다 + tbVName.Text = amkorid.VENDERNAME; + bwarn = true; + //Pub.log.Add(string.Format("이전결과에서 값 업데이트 sid:{0},VENDERNAME={1}", sid, amkorid.VENDERNAME)); + if (func_existbcddata(amkorid.VENDERNAME) == false) + { + AddErrorMessage("VNAME 이전 기록으로 업데이트"); + Pub.log.Add("'Vender Name' 값을 이전 기록을 통해서 입력했습니다\n" + + "이전 작업시간 : " + ((DateTime)(preData.wdate)).ToString("yyyy-MM-dd HH:mm:ss") + "\n" + + "SID : " + preData.SID + "\n" + + "MFG Date : " + amkorid.MFGDate + "\n" + + "Part No : " + amkorid.PARTNO + "\n" + + "Vender Lot : " + amkorid.VLOT + "\n" + + "Vender Name : " + amkorid.VENDERNAME + "\n" + + "QTY : " + amkorid.QTY.ToString(), true); + } + + } + } + return bwarn; + + } + /// + /// 키엔스 바코드 목록에서 해당 데이터가 있는지 체크합니다 + /// + /// + /// + Boolean func_existbcddata(string data) + { + var lv = lvbcdList.FindItemWithText(data); + return lv != null; + } + + private void btReqQty_Click(object sender, EventArgs e) + { + var msg = string.Empty; + var rid = tbRID.Text.Trim(); + if (rid.isEmpty()) + { + Util.MsgE("Reel ID 가 필요 합니다"); + return; + } + if (Pub.setting.OnlineMode == false) + { + Util.MsgE("오프라인 모드라 사용할 수 없습니다"); + return; + } + var cnt = (Amkor.RestfulService.get_stock_count(rid, out msg)); + if (cnt > 0) + { + var oldCnt = int.Parse(tbQTY.Text.Replace(",", "")); + var newCnt = (int)cnt; + if (oldCnt == newCnt) + { + //수량이 동일하니 처리하지 않는다 + } + else + { + //숫자가 달라지면? + if (Util.MsgQ(string.Format("수량을 변경하시겠습니까?\n현재:{0}\n서버:{1}", tbQTY.Text, newCnt)) == DialogResult.Yes) + { + Pub.log.Add($"수량업데이트 {tbQTY.Text}->{newCnt}"); + tbQTY.Text = newCnt.ToString(); + } + } + } + else + { + Util.MsgE("서버수량 확인 실패\n\n" + msg); + } + } + + private void tbSupply_TextChanged(object sender, EventArgs e) + { + + } + + + private void label13_Click(object sender, EventArgs e) + { + //라벨위치 + //라벨위치느느 클릭해서 고칠필요 없다 + } + + + private void label22_Click(object sender, EventArgs e) + { + //부착위치 + var lb = sender as Label; + PrintPos = lb.Tag.ToString(); + DisplayPrintPos(PrintPos); + } + + void DisplayPrintPos(string v) + { + var lbs = new Label[] { pb7, pb8, pb9, pb4, pb6, pb1, pb2, pb3 }; + foreach (Label item in lbs) + if (item.Tag.ToString() == v) item.BackColor = Color.Blue; + else item.BackColor = Color.FromArgb(64, 64, 64); + } + + + //라벨은 여러 위치에서 발견될 수 있다 + void DisplayLabelPos(byte[] labelpos) + { + var lbs = new Label[] { lbl1, lbl2, lbl3, lbl4, lbl6, lbl7, lbl8, lbl9 }; + for (int i = 0; i < labelpos.Length; i++) + lbs[i].BackColor = labelpos[i] > 0 ? Color.Blue : Color.FromArgb(64, 64, 64); + } + + private void btNewID_Click(object sender, EventArgs e) + { + var id = TbCustCode.Text; // string.Empty; + if (id.Length != 4) + { + Util.MsgE($"올바른 고객번호를 입력하세요\n" + + $"고객번호는 4자리여야 합니다\n" + + $"값 : {id}\n" + + $"길이 : {id.Length}"); + return; + } + //if (tbRID.Text.Length > 4) id = tbRID.Text.Substring(0, 4); + var f = new Dialog.fNewReelID(id); + if (f.ShowDialog() != DialogResult.OK) return; + this.tbRID.Text = f.NewID; + if (f.tbCustCode.Text.Trim() != "" && f.tbCustCode.Text.Trim() != this.TbCustCode.Text.Trim()) + this.TbCustCode.Text = f.tbCustCode.Text.Trim(); + } + + private void tbDate_Click(object sender, EventArgs e) + { + selectInput(sender as TextBox); + } + + private void button4_Click(object sender, EventArgs e) + { + DateTime dt = DateTime.Now; + var dtstr = this.tbDate.Text.Trim().Replace("-", "").Replace("/", ""); + if (dtstr.Length == 8) + { + dt = new DateTime( + int.Parse(dtstr.Substring(0, 4)), + int.Parse(dtstr.Substring(4, 2)), + int.Parse(dtstr.Substring(6, 2))); + } + + var f = new Dialog.fSelectDay(dt); + if (f.ShowDialog() == DialogResult.OK) + { + this.tbDate.Text = f.dt.ToShortDateString(); + } + } + + private void groupBox2_Enter(object sender, EventArgs e) + { + + } + + private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + //클릭하면 입력창을 띄운다 + Util.TouchKeyShow(tbRID, "Input REEL ID"); + } + + private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + Util.TouchKeyShow(tbSID, "INPUT SID"); + } + + private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + Util.TouchKeyShow(tbVLOT, "INPUT VENDER LOT"); + } + + private void linkLabel4_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + Util.TouchKeyShow(tbQTY, "INPUT QTY"); + } + + private void linkLabel5_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + Util.TouchKeyShow(tbDate, "INPUT MFG DATE"); + } + + private void linkLabel6_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + Util.TouchKeyShow(tbVName, "INPUT SUPPLY NAME"); + } + + private void linkLabel7_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + //tbpartno + Util.TouchKeyShow(tbpartno, "INPUT CUSTOMER PART NO."); + } + + private void button5_Click(object sender, EventArgs e) + { + //파트번호자동입력(sid 를 가지고 테이블에서 찾는다) + if (tbSID.Text.isEmpty()) + { + Util.MsgE("SID값이 필요 합니다", true); + return; + } + var sid = tbSID.Text.Trim(); + using (var db = new EEEntities()) + { + var dr = db.Component_Reel_SIDInfo.Where(t => + t.SID == sid).FirstOrDefault(); + if (dr == null) + { + Util.MsgE("해당 SID로 등록된 정보가 없습니다"); + return; + } + + //파트번호가 잇어야 한다. + if (dr.PartNo != null || dr.PartNo.isEmpty()) + { + Util.MsgE("해당 SID에 Part No 의 값이 입력되지 않았습니다"); + return; + } + + var partno = dr.PartNo.Trim(); + if (tbpartno.Text.isEmpty()) tbpartno.Text = partno; + else + { + var dlg = Util.MsgQ(string.Format("Part NO 값을 변경 할까요?\n" + + "기존 : " + tbpartno.Text + "\n" + + "신규 : " + partno)); + if (dlg == DialogResult.Yes) tbpartno.Text = dr.PartNo; + } + } + + } + + private void button6_Click(object sender, EventArgs e) + { + using (var db = new EEEntities()) + { + ////서플라이코드가 있다면 그 코드값으로 가져온다 + //var custCode = TbCustCode.Text.Trim(); + //if (custCode.isEmpty() == false) + //{ + // var drCustCode = db.Component_Reel_SIDConv.Where(t => t.cust == custCode).FirstOrDefault(); + // if (drCustCode != null && drCustCode.manu.isEmpty() == false) + // { + // Pub.log.Add(string.Format("서플라이네임을 가져옴 값={0},코드={1}", drCustCode.manu, custCode)); + // tbVName.Text = drCustCode.manu; + // return; + // } + //} + + var sid = tbSID.Text.Trim(); + if (sid.isEmpty()) + { + Util.MsgE("SID값이 필요 합니다", true); + return; + } + + var dr = db.Component_Reel_SIDInfo.AsNoTracking().Where(t => + t.SID == sid).FirstOrDefault(); + + + if (dr == null || dr.CustCode.isEmpty()) + { + Util.MsgE("해당 SID로 등록된 정보가 없습니다"); + return; + } + + //찾은데이터에서 값을 확인한다. + //Util.MsgI(string.Format("Customer/Vender 정보가 업데이트 되었습니다\n" + + // "Customer : {0}\n" + + // "Customer Name : {1}\n" + + // "Vender Name : {2}", dr.CustCode, dr.CustName, dr.VenderName)); + + //벤더네임은 vlot값을 가지고 한다. 210504 + var vlot = this.tbVLOT.Text.Trim(); + if (vlot.isEmpty() == false) + { + var dr2 = db.Component_Reel_Result.AsNoTracking().Where(t => t.VLOT == vlot).OrderByDescending(t => t.wdate).FirstOrDefault(); + if (dr2 != null) + { + tbVName.Text = dr2.VNAME; + } + } + TbCustCode.Text = dr.CustCode; + tbCustName.Text = dr.CustName; + + } + + + } + + private void linkLabel8_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + Util.TouchKeyShow(TbCustCode, "INPUT SUPPLY CODE"); + } + + private void button7_Click(object sender, EventArgs e) + { + //진수석님 데이터에서 찾아본다. + var custcode = TbCustCode.Text.Trim(); + var partno = tbpartno.Text.Trim(); + if (partno.isEmpty()) + { + Util.MsgE("SID 를 찾기 위해서는 다음 정보가 필요 합니다\n" + + "1. Part No"); + return; + } + + //각 상황에 따라 다르다. + using (var db = new EEEntities()) + { + var amksid = string.Empty; + + if (custcode.isEmpty() == false && partno.isEmpty() == false) + { + var dr = db.Component_Reel_SIDInfo.Where(t => t.CustCode == custcode && t.PartNo == partno && string.IsNullOrEmpty(t.SID) == false).FirstOrDefault(); + if (dr != null && dr.SID.isEmpty() == false) + { + amksid = dr.SID; + } + else + { + Util.MsgE("등록된 Customer Code /Part No 에 해당되는 SID를 확인할 수 없습니다\n" + + "Customer Code : " + custcode + "\n" + + "Part No : " + partno); + return; + } + } + else if (custcode.isEmpty() == false) + { + var drow = db.Component_Reel_SIDInfo.Where(t => t.CustCode == custcode && string.IsNullOrEmpty(t.SID) == false).ToList(); + if (drow == null || drow.Count < 1) + { + Util.MsgE("등록된 Customer Code 에 해당되는 SID를 확인할 수 없습니다\nCustomer : " + custcode); + return; + } + var f = new fSelectDataList(drow.Select(t => t.SID).ToArray()); + if (f.ShowDialog() == DialogResult.OK) + { + amksid = f.SelectedValue; + } + else + { + Util.MsgE("사용자 선택이 취소 되었습니다"); + return; + } + } + else if (partno.isEmpty() == false) + { + var drow = db.Component_Reel_SIDInfo.Where(t => t.PartNo == partno && string.IsNullOrEmpty(t.SID) == false).ToList(); + if (drow == null || drow.Count < 1) + { + Util.MsgE("등록된 Part No 에 해당되는 SID를 확인할 수 없습니다\n" + "Part No : " + partno); + return; + } + + var sidarr = drow.Select(t => t.SID).ToList(); + var lst = new List(); + foreach (var item in sidarr) + { + var m101 = string.Empty; + var m103 = item.Trim(); + var m106 = string.Empty; + lst.Add(m101 + ";" + m103 + ";" + m106); + } + var f = new Dialog.fSelectSID(lst); + if (f.ShowDialog() == DialogResult.OK) + { + var returndata = f.Value.Split(';'); + amksid = returndata[1].Trim(); + } + else + { + Util.MsgE("사용자 선택이 취소 되었습니다"); + return; + } + } + + if (amksid.isEmpty() == false) + { + Pub.log.Add(string.Format("amkor SId찾기 code={0},part={1},sid={2}", custcode, partno, amksid)); + tbSID.Text = amksid; + UpdateSID(); + makenewId(); + } + else + { + Pub.log.Add(string.Format("검색된 SID가 없어 sid찾기가 실패 했습니다\n" + + "Cust:{0}\n" + + "PartNo:{1}", custcode, partno)); + } + } + + + + + } + + private void button8_Click(object sender, EventArgs e) + { + //중복검사 + var rid = tbRID.Text.Trim(); + if (rid.isEmpty()) + { + Util.MsgE("Reel Id 값이 없습니다"); + return; + } + if (Pub.setting.OnlineMode == false) + { + Util.MsgE("오프라인 모드라 사용할 수 없습니다"); + return; + } + var result = Amkor.RestfulService.get_existed_matl_by_id(rid); + if (result.Complete == false) + { + Util.MsgE(result.Message); + } + else + { + if (result.Result == true) + { + Util.MsgE($"해당 ID는 중복된 ID 입니다\n값:{rid}"); + return; + } + else + { + Util.MsgI($"해당 ID는 중복되지 않았습니다\n{rid}"); + } + } + + } + + private void button9_Click(object sender, EventArgs e) + { + var f = new Dialog.fSelectCustInfo(); + if (f.ShowDialog() == DialogResult.OK) + { + this.tbCustName.Text = f.CustName; + this.TbCustCode.Text = f.CustCode; + Pub.log.Add(string.Format("사용자가 Customer 를 직접 선택함 {0}:{1}", tbCustName.Text, TbCustCode.Text)); + } + } + + Boolean CheckRID() + { + var rid = tbRID.Text.Trim(); + if (rid.Length < 10) return false; + var cut = TbCustCode.Text.Trim(); + if (rid.Substring(2, 4) != cut) + { + return false; + } + else return true; + } + Boolean autoconf = false; + Boolean warn = false; + Boolean samesidwarn = false; + private void btOK_Click(object sender, EventArgs e) + { + //manu 목록에 없다면 추가 해준다. + var manuName = tbVName.Text.Trim().ToLower(); + if (manuName.isEmpty() == false) + { + lock (Pub.Result.dsList) + { + if (Pub.Result.dsList.Supply.Where(t => t.TITLE.ToLower() == manuName).Any() == false) + { + //기존 manu 목록에 없으니 추가한다. + var newdr = Pub.Result.dsList.Supply.NewSupplyRow(); + newdr.TITLE = tbVName.Text.Trim(); + Pub.Result.dsList.Supply.AddSupplyRow(newdr); + Pub.Result.SaveListDB(); + } + } + } + + //회전용데이터가 여러개 있다면 처리하지 않는다. + if (this.lvbcdList.CheckedItems.Count != 1) + { + Pub.AddSystemLog(Application.ProductVersion, "MAIN", $"회전 기준데이터가 {this.lvbcdList.CheckedItems.Count}건 입니다"); + Util.MsgE("회전 기준데이터는 1개만 선택되어야 합니다"); + return; + } + if (this.lvbcdList.CheckedItems.Count == 1) + { + var bcddata = lvbcdList.CheckedItems[0].SubItems[1].Text; + lock (Pub.Result.ItemData[1].VisionData.barcodelist) + { + foreach (var item in Pub.Result.ItemData[1].VisionData.barcodelist) + { + if (item.Data == bcddata) + { + Pub.log.Add(string.Format("회전 기준 바코드값 {0}", item.Data)); + item.UserActive = true; + } + else item.UserActive = false; + } + } + } + + //마지막에 작업한 데이터와 비교 ?? 220104 + if (tbSID.Text == Pub.Result.LastSIDTo && tbVName.Text != Pub.Result.LastVName) + { + Pub.Result.LastVName = tbVName.Text; + Pub.log.Add($"Vname 값을 저장하여 연속작업시 사용합니다 sid:{tbSID.Text},vname:{tbVName.Text}"); + } + + if (tbSID.Text.isEmpty()) + { + Util.MsgE("SID 가 입력되지 않았습니다"); + tbSID.Focus(); + return; + } + if (tbVLOT.Text.isEmpty()) + { + Util.MsgE("VLOT 가 입력되지 않았습니다"); + tbVLOT.Focus(); + return; + } + if (tbQTY.Text.isEmpty()) + { + Util.MsgE("QTY 가 입력되지 않았습니다"); + tbQTY.Focus(); + return; + } + if (tbDate.Text.isEmpty()) + { + Util.MsgE("MFG-DATE 가 입력되지 않았습니다"); + tbDate.Focus(); + return; + } + if (tbRID.Text.isEmpty()) + { + Util.MsgE("REEL ID 가 입력되지 않았습니다"); + tbRID.Focus(); + return; + } + + //파트넘버 필수로 필요한 - 최준호s + if (this.tbpartno.Text.isEmpty()) + { + Util.MsgE("PART No 가 입력되지 않았습니다"); + tbpartno.Focus(); + return; + } + if (this.PrintPos.isEmpty()) + { + Util.MsgE("프린트 부착 위치가 지정되지 않았습니다"); + return; + } + + if (Pub.Result.Option_vname && this.tbVName.Text.isEmpty()) + { + Util.MsgE("Vender Name 이 입력되지 않았습니다"); + return; + } + + //현재 작업모드와 SID가 일치하는지 확인한다. + var sidNew = this.tbSID.Text.Trim(); + var sidOld = this.lbSID0.Text.Trim();//.Tag == null ? string.Empty : lbSID0.Text; + + + if (Pub.Result.Option_NewReelID && tbRID.Text.Length != 15) + { + Util.MsgE("신규 릴ID 생성모드 입니다.\n현재 릴ID는 15자리 가 아닙니다.\n릴ID를 확인하세요."); + return; + } + + if (CheckRID() == false) + { + Pub.AddSystemLog(Application.ProductVersion, "MAIN", $"Reel ID 의 Customer Code 값이 현재 값과 일치하지 않습니다(RID:{tbRID.Text}/CUST:{TbCustCode.Text})"); + Util.MsgE("Reel ID 의 Customer Code 값이 현재 값과 일치하지 않습니다"); + return; + } + + + + //SID별 부착위치를 결정시켜준다 - 210202 + try + { + if (Pub.setting.OnlineMode) + { + using (var db = new EEEntities()) + { + var drPrnPos = db.Component_Reel_SIDInfo.Where(t => t.SID == sidNew).FirstOrDefault(); + if (drPrnPos == null) + { + var newdrpos = new Component_Reel_SIDInfo() + { + SID = sidNew, + PrintPosition = this.PrintPos, + Remark = string.Empty + }; + db.Component_Reel_SIDInfo.Add(newdrpos); + db.SaveChanges(); + Pub.log.Add(string.Format("SId별 프린트 위치 정보 추가 sid:{0},위치:{1}", tbSID.Text, this.PrintPos)); + + + } + else if (drPrnPos.PrintPosition != this.PrintPos) + { + //기존에있는경우 내용이 다르면 업데이트한다 + drPrnPos.PrintPosition = this.PrintPos; + db.SaveChanges(); + Pub.log.Add(string.Format("SId별 프린트 위치 정보 추가 sid:{0},위치:{1}", tbSID.Text, this.PrintPos)); + } + } + } + + + + } + catch (Exception ex) + { + Pub.log.AddE(string.Format("sid별 프린트 위치 정보 추가 실패 sid:{0},메세지:{1}", tbSID.Text, ex.Message)); + } + + //sid lot 이름 검증 + //var sid = this.tbSID.Text.Trim(); + var lot = this.tbVLOT.Text.Trim(); + if (warn == false && autoconf == true) + { + if (Pub.setting.OnlineMode) + using (var db = new EEEntities()) + { + var predata = db.Component_Reel_Result.AsNoTracking().Where(t => t.SID == sidNew).OrderByDescending(t => t.wdate).FirstOrDefault(); + if (predata != null && predata.VLOT != lot) + { + Util.MsgE("이전 LOT 값이 일치 하지 않습니다. 자동 확인이 취소 됩니다"); + warn = true; + return; + } + } + } + + + //변환테이블의 데이터를 확인하고 업데이트한다. + if (Pub.setting.OnlineMode) + using (var db = new EEEntities()) + { + + //파트번호 업데이트 + bool dataUpdate = false; + var drsidInfo = db.Component_Reel_SIDInfo.Where(t => t.SID == sidNew).FirstOrDefault(); + if (drsidInfo.PartNo.isEmpty() && tbpartno.Text.isEmpty() == false && + drsidInfo.PartNo != tbpartno.Text) + { + if (Util.MsgQ("다음 SID의 PART NO를 기록할까요?\n기록을 진행하면 이후 작업에는 묻지 않고 진행 됩니다\n" + + "SID:" + sidNew + "\nPARTNO:" + tbpartno.Text) == DialogResult.Yes) + { + drsidInfo.PartNo = this.tbpartno.Text.Trim(); + dataUpdate = true; + } + } + if (drsidInfo.CustCode.isEmpty() && TbCustCode.Text.isEmpty() == false && + drsidInfo.CustCode != TbCustCode.Text) + { + if (Util.MsgQ("다음 SID의 Customer Code 를 기록할까요?\n기록을 진행하면 이후 작업에는 묻지 않고 진행 됩니다\n" + + "SID:" + sidNew + "\n" + "CUST:" + TbCustCode.Text) == DialogResult.Yes) + { + drsidInfo.CustCode = this.TbCustCode.Text.Trim(); + dataUpdate = true; + } + } + + //커스터머이름도 저장한다. 220108 + if (drsidInfo.CustName.isEmpty() && tbCustName.Text.isEmpty() == false && drsidInfo.CustName != tbCustName.Text) + { + if (Util.MsgQ("다음 SID의 Customer Name 을 기록할까요?\n기록을 진행하면 이후 작업에는 묻지 않고 진행 됩니다\n" + + "SID:" + sidNew + "\n" + "Cust Name:" + tbCustName.Text) == DialogResult.Yes) + { + drsidInfo.CustName = this.tbCustName.Text.Trim(); + dataUpdate = true; + } + } + + //SID변환테이블 -220104 + if (Pub.Result.JobType2 == "13" && sidOld != sidNew && sidOld.isEmpty() == false && sidNew.isEmpty() == false) + { + var drConvData = db.Component_Reel_SIDConv.Where(t => t.SIDFrom == sidOld && t.SIDTo == sidNew).Any(); + if (drConvData == false) + { + if (Util.MsgQ("다음 변환된 SID 정보를 저장할까요?\n기록을 진행하면 이후 작업에는 묻지 않고 진행 됩니다\n" + + "SID 원본 :" + sidOld + "\n" + "SID 대상:" + sidNew) == DialogResult.Yes) + { + //자료가 없다면 추가하고 + //var olist = db.Component_Reel_SIDConv.Where(t => t.M101 == lbSID0.Text).ToList(); + //if (olist.Count < 1) + //{ + try + { + var newdr = new Component_Reel_SIDConv(); + newdr.SIDFrom = sidOld; + newdr.SIDTo = sidNew; + newdr.Remark = "Auto Gen"; + //newdr.M106 = string.Empty; + //newdr.M108 = string.Empty; + db.Component_Reel_SIDConv.Add(newdr); + db.SaveChanges(); + } + catch (Exception ex) + { + Util.MsgE("SID변환 정보를 서버에 저장하지 못했습니다"); + Pub.log.Add("sid변환정보 저장 실패 : " + ex.Message); + } + + //} + //else + //{ + // //있긴이삳. + // foreach (var item in olist) + // item.M103 = sid; + // db.SaveChanges(); + //} + //있다면 업데이트 해준다. + } + } + } + + //벤더는 SID에 종속되지 않는다 + //if (drConv.VenderName.isEmpty() && tbVName.Text.isEmpty() == false && drConv.VenderName != tbVName.Text) + //{ + // if (Util.MsgQ("다음 SID의 Vender Name 를 기록할까요? 기록을 진행하면 이후 작업에는 묻지 않고 진행 됩니다") == DialogResult.Yes) + // { + // drConv.VenderName = this.tbVName.Text.Trim(); + // dataUpdate = true; + // } + //} + if (dataUpdate) + { + Pub.log.Add("Customer / Partno 의 SId연결 정보를 업데이트 합니다"); + db.SaveChanges(); + } + } + + + + //값을 설정해주고 빠져나간다 + + Pub.Result.ItemData[1].VisionData.SID = tbSID.Text.Trim(); + Pub.Result.ItemData[1].VisionData.SID0 = lbSID0.Text.Trim(); + Pub.Result.ItemData[1].VisionData.VLOT = tbVLOT.Text.Trim(); + Pub.Result.ItemData[1].VisionData.QTY = tbQTY.Text.Trim(); + Pub.Result.ItemData[1].VisionData.MFGDATE = tbDate.Text.Trim(); + Pub.Result.ItemData[1].VisionData.VNAME = tbVName.Text.Trim(); + Pub.Result.ItemData[1].VisionData.SetRID(tbRID.Text.Trim(), "USER CONFIRM");//.RID = tbRID.Text.Trim(); + + if (tbRID.Tag == null || tbRID.Text.isEmpty()) Pub.Result.ItemData[1].VisionData.RID0 = string.Empty; + else Pub.Result.ItemData[1].VisionData.RID0 = tbRID.Text.Trim();// tbRID.Tag.ToString(); //210429 + + Pub.Result.ItemData[1].VisionData.PARTNO = tbpartno.Text.Trim(); + + if (this.autoconf) Pub.Result.ItemData[1].VisionData.ConfirmAuto = true; + Pub.Result.ItemData[1].VisionData.ConfirmUser = true; //사용자가확인했다! + + Pub.Result.ItemData[1].VisionData.PrintPositionData = this.PrintPos; + Pub.Result.ItemData[1].VisionData.PrintPositionCheck = true; //사용자가 확인했다. + + this.DisplayLabelPos(Pub.Result.ItemData[1].VisionData.LabelPositionData); + + this.PrintPos = Pub.Result.ItemData[1].VisionData.PrintPositionData; + this.DisplayPrintPos(Pub.Result.ItemData[1].VisionData.PrintPositionData); + + this.Close(); + } + + private void label26_Click(object sender, EventArgs e) + { + var sid = this.tbSID.Text.Trim(); + if (sid.isEmpty()) return; + + var dlg = Util.MsgQ("SID 에서 인쇄 위치를 검색 할까요?"); + if (dlg != DialogResult.Yes) return; + + using (var db = new EEEntities()) + { + var dr = db.Component_Reel_SIDInfo.Where(t => t.SID == sid).FirstOrDefault(); + if (dr == null || dr.PrintPosition.isEmpty()) + { + Util.MsgE("입력된 SID에 저장된 인쇄 위치가 없습니다\n" + + "SID:" + sid); + return; + } + this.PrintPos = dr.PrintPosition; + DisplayPrintPos(this.PrintPos); + } + } + + private void button1_Click_1(object sender, EventArgs e) + { + //데이터베이스 결과에서 자료를 추가한다. + + List result = new List(); + + using (var db = new EEEntities()) + { + //1.sid sid를 먼저 검색한다. 이것이 확률이 제일 높음 + if (this.tbSID.Text.isEmpty() == false) + { + var list = db.Component_Reel_Result.AsNoTracking(). + OrderByDescending(t => t.wdate). + Where(t => t.SID == tbSID.Text.Trim()).Take(5).ToList(); + if (list != null && list.Count > 0) result.AddRange(list); + } + //2.파트번호 + if (result.Count == 0 && this.tbpartno.Text.isEmpty() == false) + { + var list = db.Component_Reel_Result.AsNoTracking(). + OrderByDescending(t => t.wdate). + Where(t => t.QR.Contains(";" + tbpartno.Text)).Take(5).ToList(); + if (list != null && list.Count > 0) result.AddRange(list); + } + //3.벤더LOT + if (result.Count == 0 && this.tbVLOT.Text.isEmpty() == false) + { + var list = db.Component_Reel_Result.AsNoTracking(). + OrderByDescending(t => t.wdate). + Where(t => t.QR.Contains(";" + tbVLOT.Text + ";")).Take(5).ToList(); + if (list != null && list.Count > 0) result.AddRange(list); + } + + //4.벤더이름 + if (result.Count == 0 && this.tbVName.Text.isEmpty() == false) + { + var list = db.Component_Reel_Result.AsNoTracking(). + OrderByDescending(t => t.wdate). + Where(t => t.QR.Contains(";" + tbVName.Text + ";")).Take(5).ToList(); + if (list != null && list.Count > 0) result.AddRange(list); + } + + } + + //customer code + + if (result.Count < 1) + { + Util.MsgE("검색된 결과가 없습니다\n검색 아이템\n" + + "1.SID\n" + + "2.LOT\n" + + "3.PARTNO\n"); + return; + } + var f = new fSelectResult(result); + if (f.ShowDialog() != DialogResult.OK) return; + + //값이 없는 것만 처리한다. + string msg = string.Empty; + var qr = f.SelectedValue.QR; + var amk = new StdLabelPrint.CAmkorSTDBarcode(qr); + if (this.tbSID.Text.isEmpty() && amk.SID.isEmpty() == false) + { + msg += (msg.isEmpty() ? "" : "\n") + string.Format("SID:{0}=>{1}", tbSID.Text, amk.SID); + tbSID.Text = amk.SID; + } + if (this.tbpartno.Text.isEmpty() && amk.PARTNO.isEmpty() == false) + { + msg += (msg.isEmpty() ? "" : "\n") + string.Format("Part No:{0}=>{1}", tbpartno.Text, amk.PARTNO); + tbpartno.Text = amk.PARTNO; + } + if (this.tbVLOT.Text.isEmpty() && amk.VLOT.isEmpty() == false) + { + msg += (msg.isEmpty() ? "" : "\n") + string.Format("Vender LOT:{0}=>{1}", tbVLOT.Text, amk.VLOT); + tbVLOT.Text = amk.VLOT; + } + if (this.tbVName.Text.isEmpty() && f.SelectedValue.VNAME.isEmpty() == false) + { + msg += (msg.isEmpty() ? "" : "\n") + string.Format("Vender Name:{0}=>{1}", tbVName.Text, f.SelectedValue.VNAME); + tbVName.Text = f.SelectedValue.VNAME; + } + if (this.tbDate.Text.isEmpty() && amk.MFGDate.isEmpty() == false) + { + msg += (msg.isEmpty() ? "" : "\n") + string.Format("MFG Date:{0}=>{1}", tbDate.Text, amk.MFGDate); + tbDate.Text = amk.MFGDate; + } + + if (Pub.Result.Option_QtyUpdateM == false && this.tbQTY.Text.isEmpty() && amk.QTY != 0) + { + msg += (msg.isEmpty() ? "" : "\n") + string.Format("QTY:{0}=>{1}", tbQTY.Text, amk.QTY); + + Pub.log.Add($"수량업데이트 {tbQTY.Text}->{amk.QTY}"); + tbQTY.Text = amk.QTY.ToString(); + } + + + var custcode = amk.RID.Substring(2, 4); + if (this.TbCustCode.Text.isEmpty() && custcode.isEmpty() == false) + { + msg += (msg.isEmpty() ? "" : "\n") + string.Format("QTY:{0}=>{1}", TbCustCode.Text, custcode); + TbCustCode.Text = custcode;// amk.QTY.ToString(); + } + + if (msg.isEmpty() == false) + { + Util.MsgI("다음 정보가 변경 되었습니다\n" + msg, true); + } + } + + private void label2_Click_1(object sender, EventArgs e) + { + var sid = this.tbSID.Text.Trim(); + if (sid.isEmpty()) return; + + + + using (var db = new EEEntities()) + { + var dr = db.Component_Reel_SIDInfo.Where(t => t.SID == sid).FirstOrDefault(); + if (dr == null || dr.PrintPosition.isEmpty()) + { + Util.MsgE("입력된 SID에 저장된 인쇄 위치가 없습니다\n" + + "SID:" + sid); + return; + } + this.PrintPos = dr.PrintPosition; + } + + DisplayPrintPos(this.PrintPos); + } + + private void button3_Click_1(object sender, EventArgs e) + { + var sid = this.tbSID.Text.Trim(); + if (sid.isEmpty()) + { + Util.MsgE("SID 값이 필요합니다"); + return; + } + func_CheckDateQty(); + } + + DateTime stime = DateTime.Now; + private void tmAutoConfirm_Tick(object sender, EventArgs e) + { + var ts = DateTime.Now - stime; + btOK.Text = string.Format("{0:N0}/{1:N0} 초후 자동 완료", ts.TotalSeconds, Pub.setting.Timeout_AutoConfirm); + if (ts.TotalSeconds >= Pub.setting.Timeout_AutoConfirm) + { + tmAutoConfirm.Stop(); + autoconf = true; + btOK.PerformClick(); + } + } + + private void 회전기준바코드로설정ToolStripMenuItem_Click(object sender, EventArgs e) + { + if (lvbcdList.FocusedItem == null) + { + Util.MsgE("포커스를 받은 항목이 없습니다"); + return; + } + var dataindex = lvbcdList.FocusedItem.Index; + foreach (ListViewItem item in this.lvbcdList.Items) + { + if (item.Index == dataindex) item.Checked = true; + else item.Checked = false; + } + } + + private void button4_Click_1(object sender, EventArgs e) + { + if (tbpartno.Text.isEmpty()) tbpartno.Text = "N/A"; + else + { + var dlg = Util.MsgQ("현재 Part No 값을 N/A로 변경 할까요?"); + if (dlg == DialogResult.Yes) tbpartno.Text = "N/A"; + } + } + + private void linkLabel9_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + Util.TouchKeyShow(this.tbCustName, "INPUT CUST NAME"); + } + + private void button5_Click_1(object sender, EventArgs e) + { + var a = 1; + var b = 0; + var c = a / b; + + } + } +} diff --git a/Handler/Project_form2/Dialog/fLoaderInfo.resx b/Handler/Project_form2/Dialog/fLoaderInfo.resx new file mode 100644 index 0000000..47f71c1 --- /dev/null +++ b/Handler/Project_form2/Dialog/fLoaderInfo.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 155, 17 + + + 17, 17 + + \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fNewReelID.Designer.cs b/Handler/Project_form2/Dialog/fNewReelID.Designer.cs new file mode 100644 index 0000000..2b88539 --- /dev/null +++ b/Handler/Project_form2/Dialog/fNewReelID.Designer.cs @@ -0,0 +1,412 @@ +namespace Project.Dialog +{ + partial class fNewReelID + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.linkLabel3 = new System.Windows.Forms.LinkLabel(); + this.linkLabel2 = new System.Windows.Forms.LinkLabel(); + this.linkLabel1 = new System.Windows.Forms.LinkLabel(); + this.tbDiv = new System.Windows.Forms.TextBox(); + this.btOK = new System.Windows.Forms.Button(); + this.tbRID = new System.Windows.Forms.TextBox(); + this.tbCustCode = new System.Windows.Forms.TextBox(); + this.tbYear = new System.Windows.Forms.TextBox(); + this.linkLabel4 = new System.Windows.Forms.LinkLabel(); + this.tbSeq = new System.Windows.Forms.TextBox(); + this.tb1 = new System.Windows.Forms.TextBox(); + this.tbtype = new System.Windows.Forms.TextBox(); + this.linkLabel5 = new System.Windows.Forms.LinkLabel(); + this.linkLabel6 = new System.Windows.Forms.LinkLabel(); + this.linkLabel7 = new System.Windows.Forms.LinkLabel(); + this.tbLoca = new System.Windows.Forms.TextBox(); + this.linkLabel8 = new System.Windows.Forms.LinkLabel(); + this.tbMon = new System.Windows.Forms.TextBox(); + this.button8 = new System.Windows.Forms.Button(); + this.lbLen = new System.Windows.Forms.Label(); + this.button1 = new System.Windows.Forms.Button(); + this.radNormal = new System.Windows.Forms.RadioButton(); + this.radReturn = new System.Windows.Forms.RadioButton(); + this.radDup = new System.Windows.Forms.RadioButton(); + this.SuspendLayout(); + // + // linkLabel3 + // + this.linkLabel3.AutoSize = true; + this.linkLabel3.Location = new System.Drawing.Point(58, 196); + this.linkLabel3.Margin = new System.Windows.Forms.Padding(8, 0, 8, 0); + this.linkLabel3.Name = "linkLabel3"; + this.linkLabel3.Size = new System.Drawing.Size(95, 32); + this.linkLabel3.TabIndex = 8; + this.linkLabel3.TabStop = true; + this.linkLabel3.Text = "분류(1)"; + this.linkLabel3.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel3_LinkClicked); + // + // linkLabel2 + // + this.linkLabel2.AutoSize = true; + this.linkLabel2.Location = new System.Drawing.Point(10, 104); + this.linkLabel2.Margin = new System.Windows.Forms.Padding(8, 0, 8, 0); + this.linkLabel2.Name = "linkLabel2"; + this.linkLabel2.Size = new System.Drawing.Size(143, 32); + this.linkLabel2.TabIndex = 4; + this.linkLabel2.TabStop = true; + this.linkLabel2.Text = "고객번호(4)"; + this.linkLabel2.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel2_LinkClicked); + // + // linkLabel1 + // + this.linkLabel1.AutoSize = true; + this.linkLabel1.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); + this.linkLabel1.Location = new System.Drawing.Point(58, 242); + this.linkLabel1.Margin = new System.Windows.Forms.Padding(8, 0, 8, 0); + this.linkLabel1.Name = "linkLabel1"; + this.linkLabel1.Size = new System.Drawing.Size(95, 32); + this.linkLabel1.TabIndex = 10; + this.linkLabel1.TabStop = true; + this.linkLabel1.Text = "년도(2)"; + this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked); + // + // tbDiv + // + this.tbDiv.Location = new System.Drawing.Point(160, 193); + this.tbDiv.Margin = new System.Windows.Forms.Padding(8, 13, 8, 13); + this.tbDiv.Name = "tbDiv"; + this.tbDiv.Size = new System.Drawing.Size(404, 39); + this.tbDiv.TabIndex = 9; + this.tbDiv.Text = "A/M/L"; + this.tbDiv.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.tbDiv.TextChanged += new System.EventHandler(this.tbCustCode_TextChanged); + // + // btOK + // + this.btOK.Dock = System.Windows.Forms.DockStyle.Bottom; + this.btOK.Location = new System.Drawing.Point(0, 458); + this.btOK.Margin = new System.Windows.Forms.Padding(8, 13, 8, 13); + this.btOK.Name = "btOK"; + this.btOK.Size = new System.Drawing.Size(573, 50); + this.btOK.TabIndex = 18; + this.btOK.Text = "확인"; + this.btOK.UseVisualStyleBackColor = true; + this.btOK.Click += new System.EventHandler(this.btOK_Click); + // + // tbRID + // + this.tbRID.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.tbRID.Font = new System.Drawing.Font("맑은 고딕", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tbRID.Location = new System.Drawing.Point(107, 417); + this.tbRID.Margin = new System.Windows.Forms.Padding(8, 13, 8, 13); + this.tbRID.Name = "tbRID"; + this.tbRID.ReadOnly = true; + this.tbRID.Size = new System.Drawing.Size(364, 32); + this.tbRID.TabIndex = 17; + this.tbRID.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // tbCustCode + // + this.tbCustCode.BackColor = System.Drawing.SystemColors.Window; + this.tbCustCode.Location = new System.Drawing.Point(160, 101); + this.tbCustCode.Margin = new System.Windows.Forms.Padding(8, 13, 8, 13); + this.tbCustCode.Name = "tbCustCode"; + this.tbCustCode.Size = new System.Drawing.Size(404, 39); + this.tbCustCode.TabIndex = 5; + this.tbCustCode.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.tbCustCode.TextChanged += new System.EventHandler(this.tbCustCode_TextChanged); + // + // tbYear + // + this.tbYear.BackColor = System.Drawing.SystemColors.Window; + this.tbYear.Location = new System.Drawing.Point(160, 239); + this.tbYear.Margin = new System.Windows.Forms.Padding(8, 13, 8, 13); + this.tbYear.Name = "tbYear"; + this.tbYear.Size = new System.Drawing.Size(404, 39); + this.tbYear.TabIndex = 11; + this.tbYear.Text = "21"; + this.tbYear.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.tbYear.TextChanged += new System.EventHandler(this.tbCustCode_TextChanged); + // + // linkLabel4 + // + this.linkLabel4.AutoSize = true; + this.linkLabel4.Location = new System.Drawing.Point(10, 334); + this.linkLabel4.Margin = new System.Windows.Forms.Padding(8, 0, 8, 0); + this.linkLabel4.Name = "linkLabel4"; + this.linkLabel4.Size = new System.Drawing.Size(143, 32); + this.linkLabel4.TabIndex = 14; + this.linkLabel4.TabStop = true; + this.linkLabel4.Text = "일련번호(4)"; + this.linkLabel4.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel4_LinkClicked); + // + // tbSeq + // + this.tbSeq.Location = new System.Drawing.Point(160, 331); + this.tbSeq.Margin = new System.Windows.Forms.Padding(8, 13, 8, 13); + this.tbSeq.Name = "tbSeq"; + this.tbSeq.Size = new System.Drawing.Size(289, 39); + this.tbSeq.TabIndex = 15; + this.tbSeq.Text = "R000,0001"; + this.tbSeq.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.tbSeq.TextChanged += new System.EventHandler(this.tbCustCode_TextChanged); + // + // tb1 + // + this.tb1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); + this.tb1.Location = new System.Drawing.Point(160, 9); + this.tb1.Margin = new System.Windows.Forms.Padding(8, 13, 8, 13); + this.tb1.Name = "tb1"; + this.tb1.Size = new System.Drawing.Size(404, 39); + this.tb1.TabIndex = 1; + this.tb1.Text = "R"; + this.tb1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.tb1.TextChanged += new System.EventHandler(this.tbCustCode_TextChanged); + // + // tbtype + // + this.tbtype.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); + this.tbtype.Location = new System.Drawing.Point(160, 55); + this.tbtype.Margin = new System.Windows.Forms.Padding(8, 13, 8, 13); + this.tbtype.Name = "tbtype"; + this.tbtype.Size = new System.Drawing.Size(404, 39); + this.tbtype.TabIndex = 3; + this.tbtype.Text = "I/C"; + this.tbtype.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.tbtype.TextChanged += new System.EventHandler(this.tbCustCode_TextChanged); + // + // linkLabel5 + // + this.linkLabel5.AutoSize = true; + this.linkLabel5.Location = new System.Drawing.Point(58, 12); + this.linkLabel5.Margin = new System.Windows.Forms.Padding(8, 0, 8, 0); + this.linkLabel5.Name = "linkLabel5"; + this.linkLabel5.Size = new System.Drawing.Size(95, 32); + this.linkLabel5.TabIndex = 0; + this.linkLabel5.TabStop = true; + this.linkLabel5.Text = "예약(1)"; + this.linkLabel5.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel5_LinkClicked); + // + // linkLabel6 + // + this.linkLabel6.AutoSize = true; + this.linkLabel6.Location = new System.Drawing.Point(58, 58); + this.linkLabel6.Margin = new System.Windows.Forms.Padding(8, 0, 8, 0); + this.linkLabel6.Name = "linkLabel6"; + this.linkLabel6.Size = new System.Drawing.Size(95, 32); + this.linkLabel6.TabIndex = 2; + this.linkLabel6.TabStop = true; + this.linkLabel6.Text = "종류(1)"; + this.linkLabel6.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel6_LinkClicked); + // + // linkLabel7 + // + this.linkLabel7.AutoSize = true; + this.linkLabel7.Location = new System.Drawing.Point(34, 150); + this.linkLabel7.Margin = new System.Windows.Forms.Padding(8, 0, 8, 0); + this.linkLabel7.Name = "linkLabel7"; + this.linkLabel7.Size = new System.Drawing.Size(119, 32); + this.linkLabel7.TabIndex = 6; + this.linkLabel7.TabStop = true; + this.linkLabel7.Text = "발행처(1)"; + this.linkLabel7.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel7_LinkClicked); + // + // tbLoca + // + this.tbLoca.BackColor = System.Drawing.SystemColors.Window; + this.tbLoca.Location = new System.Drawing.Point(160, 147); + this.tbLoca.Margin = new System.Windows.Forms.Padding(8, 13, 8, 13); + this.tbLoca.Name = "tbLoca"; + this.tbLoca.Size = new System.Drawing.Size(404, 39); + this.tbLoca.TabIndex = 7; + this.tbLoca.Text = "K3=3,K4=4,K5=5"; + this.tbLoca.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.tbLoca.TextChanged += new System.EventHandler(this.tbCustCode_TextChanged); + // + // linkLabel8 + // + this.linkLabel8.AutoSize = true; + this.linkLabel8.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); + this.linkLabel8.Location = new System.Drawing.Point(82, 288); + this.linkLabel8.Margin = new System.Windows.Forms.Padding(8, 0, 8, 0); + this.linkLabel8.Name = "linkLabel8"; + this.linkLabel8.Size = new System.Drawing.Size(71, 32); + this.linkLabel8.TabIndex = 12; + this.linkLabel8.TabStop = true; + this.linkLabel8.Text = "월(1)"; + this.linkLabel8.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel8_LinkClicked); + // + // tbMon + // + this.tbMon.BackColor = System.Drawing.SystemColors.Window; + this.tbMon.Location = new System.Drawing.Point(160, 285); + this.tbMon.Margin = new System.Windows.Forms.Padding(8, 13, 8, 13); + this.tbMon.Name = "tbMon"; + this.tbMon.Size = new System.Drawing.Size(404, 39); + this.tbMon.TabIndex = 13; + this.tbMon.Text = "10=A,11=B,12=C"; + this.tbMon.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.tbMon.TextChanged += new System.EventHandler(this.tbCustCode_TextChanged); + // + // button8 + // + this.button8.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.button8.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button8.Location = new System.Drawing.Point(477, 417); + this.button8.Name = "button8"; + this.button8.Size = new System.Drawing.Size(87, 32); + this.button8.TabIndex = 31; + this.button8.Text = "중복검사"; + this.button8.UseVisualStyleBackColor = true; + this.button8.Click += new System.EventHandler(this.button8_Click); + // + // lbLen + // + this.lbLen.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.lbLen.BackColor = System.Drawing.Color.Tomato; + this.lbLen.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.lbLen.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbLen.Location = new System.Drawing.Point(13, 417); + this.lbLen.Name = "lbLen"; + this.lbLen.Size = new System.Drawing.Size(89, 32); + this.lbLen.TabIndex = 33; + this.lbLen.Text = "길이"; + this.lbLen.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // button1 + // + this.button1.Font = new System.Drawing.Font("맑은 고딕", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button1.Location = new System.Drawing.Point(460, 331); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(104, 39); + this.button1.TabIndex = 34; + this.button1.Text = "생성"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click_1); + // + // radNormal + // + this.radNormal.AutoSize = true; + this.radNormal.Checked = true; + this.radNormal.Location = new System.Drawing.Point(160, 376); + this.radNormal.Name = "radNormal"; + this.radNormal.Size = new System.Drawing.Size(81, 36); + this.radNormal.TabIndex = 36; + this.radNormal.TabStop = true; + this.radNormal.Text = "일반"; + this.radNormal.UseVisualStyleBackColor = true; + this.radNormal.Click += new System.EventHandler(this.radNormal_Click); + // + // radReturn + // + this.radReturn.AutoSize = true; + this.radReturn.Location = new System.Drawing.Point(247, 376); + this.radReturn.Name = "radReturn"; + this.radReturn.Size = new System.Drawing.Size(81, 36); + this.radReturn.TabIndex = 36; + this.radReturn.Text = "반환"; + this.radReturn.UseVisualStyleBackColor = true; + this.radReturn.Click += new System.EventHandler(this.radNormal_Click); + // + // radDup + // + this.radDup.AutoSize = true; + this.radDup.Location = new System.Drawing.Point(334, 376); + this.radDup.Name = "radDup"; + this.radDup.Size = new System.Drawing.Size(81, 36); + this.radDup.TabIndex = 36; + this.radDup.Text = "중복"; + this.radDup.UseVisualStyleBackColor = true; + this.radDup.Click += new System.EventHandler(this.radNormal_Click); + // + // fNewReelID + // + this.AutoScaleDimensions = new System.Drawing.SizeF(14F, 32F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(573, 508); + this.Controls.Add(this.radDup); + this.Controls.Add(this.radReturn); + this.Controls.Add(this.radNormal); + this.Controls.Add(this.button1); + this.Controls.Add(this.lbLen); + this.Controls.Add(this.button8); + this.Controls.Add(this.linkLabel8); + this.Controls.Add(this.tbMon); + this.Controls.Add(this.linkLabel7); + this.Controls.Add(this.tbLoca); + this.Controls.Add(this.linkLabel6); + this.Controls.Add(this.linkLabel5); + this.Controls.Add(this.tbtype); + this.Controls.Add(this.tb1); + this.Controls.Add(this.linkLabel4); + this.Controls.Add(this.tbSeq); + this.Controls.Add(this.linkLabel3); + this.Controls.Add(this.linkLabel2); + this.Controls.Add(this.linkLabel1); + this.Controls.Add(this.tbDiv); + this.Controls.Add(this.btOK); + this.Controls.Add(this.tbRID); + this.Controls.Add(this.tbCustCode); + this.Controls.Add(this.tbYear); + this.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.Margin = new System.Windows.Forms.Padding(6, 8, 6, 8); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fNewReelID"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Make New Reel ID"; + this.Load += new System.EventHandler(this.fNewReelID_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.LinkLabel linkLabel3; + private System.Windows.Forms.LinkLabel linkLabel2; + private System.Windows.Forms.LinkLabel linkLabel1; + private System.Windows.Forms.Button btOK; + private System.Windows.Forms.LinkLabel linkLabel4; + public System.Windows.Forms.TextBox tbDiv; + public System.Windows.Forms.TextBox tbCustCode; + public System.Windows.Forms.TextBox tbYear; + public System.Windows.Forms.TextBox tbSeq; + private System.Windows.Forms.TextBox tbRID; + public System.Windows.Forms.TextBox tb1; + public System.Windows.Forms.TextBox tbtype; + private System.Windows.Forms.LinkLabel linkLabel5; + private System.Windows.Forms.LinkLabel linkLabel6; + private System.Windows.Forms.LinkLabel linkLabel7; + public System.Windows.Forms.TextBox tbLoca; + private System.Windows.Forms.LinkLabel linkLabel8; + public System.Windows.Forms.TextBox tbMon; + private System.Windows.Forms.Button button8; + private System.Windows.Forms.Label lbLen; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.RadioButton radNormal; + private System.Windows.Forms.RadioButton radReturn; + private System.Windows.Forms.RadioButton radDup; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fNewReelID.cs b/Handler/Project_form2/Dialog/fNewReelID.cs new file mode 100644 index 0000000..da9e8c6 --- /dev/null +++ b/Handler/Project_form2/Dialog/fNewReelID.cs @@ -0,0 +1,260 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fNewReelID : Form + { + public string NewID { get; set; } + public fNewReelID(string custcode) + { + InitializeComponent(); + this.NewID = string.Empty; + tbCustCode.Text = custcode; + + if (Pub.Result.JobType2 == "RET") + radReturn.Checked = true; + else + radNormal.Checked = false; + + + tbRID.TextChanged += (s1, e1) => + { + lbLen.Text = $"길이({tbRID.Text.Length})"; + lbLen.BackColor = tbRID.Text.Length == 15 ? Color.Lime : Color.Tomato; + }; + } + private void fNewReelID_Load(object sender, EventArgs e) + { + tbtype.Text = "C"; + tbLoca.Text = Pub.setting.ReelIdDeviceLoc; + tbDiv.Text = Pub.setting.ReelIdDeviceID; + tbYear.Text = DateTime.Now.Year.ToString().Substring(2); + tbMon.Text = DateTime.Now.Month.ToString("X"); + this.radNormal.Checked = true; + RefreshID(); + } + + private void btOK_Click(object sender, EventArgs e) + { + var codelen = 15; + this.NewID = tbRID.Text; + if (this.NewID.Length != codelen) + { + Util.MsgE($"Reel ID는 {codelen}자리 입니다"); + return; + } + + //db에서도 검색한다 + var db = new EEEntities(); + if (db.Component_Reel_Result.Where(t => t.RID == NewID).Any()) + { + Util.MsgE($"해당 ID는 발행 기록이 있는 ID 입니다\n값:{NewID}"); + return; + } + + //서버에서 중복검사실행 + if (Pub.setting.OnlineMode == false) + { + Util.MsgE("오프라인 모드라 사용할 수 없습니다"); + return; + } + + var rlt = Amkor.RestfulService.get_existed_matl_by_id(NewID); + if (rlt.Complete == false) + { + Util.MsgE("중복검사 실패\n" + rlt.Message); + return; + } + else if (rlt.Result == true) + { + Util.MsgE("REEL ID 가 중복되었습니다\n새로고침 하세요"); + return; + } + + ////데이터를 추가해준다. + //var db = new EEEntities(); + //db.Component_Reel_NewAssign.Add(new Component_Reel_NewAssign() + //{ + // bPrint = false, + // CUST = tbCustCode.Text.Trim(), + // TIME = tbYear.Text.Trim(), + // DIV = tbDiv.Text.Trim(), + // SEQ = tbSeq.Text, + // RID = tbRID.Text.Trim(), + // wdate = DateTime.Now, + // wuid = Pub.setting.Asset, + //}); + //db.SaveChanges(); + + DialogResult = DialogResult.OK; + } + void UpdateRID() + { + var data = tb1.Text.Trim(); + data += tbtype.Text.Trim(); + data += tbCustCode.Text.Trim(); + data += tbLoca.Text.Trim(); + data += tbDiv.Text.Trim(); + data += tbYear.Text.Trim(); + data += tbMon.Text.Trim(); + data += tbSeq.Text.Trim(); + this.tbRID.Text = data; + } + + private void tbCustCode_TextChanged(object sender, EventArgs e) + { + UpdateRID(); + } + + private void button1_Click(object sender, EventArgs e) + { + RefreshID(); + } + void RefreshID() + { + if (tbCustCode.Text.Length != 4) + { + tbCustCode.Focus(); + tbCustCode.SelectAll(); + } + + + //시간정보업데이트 + tbYear.Text = DateTime.Now.ToString("yy"); + tbDiv.Text = Pub.setting.ReelIdDeviceID; //라벨어태치용 + + UpdateSN(); + UpdateRID(); + } + + /// + /// 일련번호 업데이트 + /// + void UpdateSN() + { + var datestr = this.tbYear.Text + this.tbMon.Text; + if (datestr.Length != 3) + { + Util.MsgE("년도/월 값이 입력되지 않았습니다"); + return; + } + + var newsn = string.Empty; + + if (this.radReturn.Checked) + newsn = AmkorReelID.GetNextSNbyYM_Return(datestr); + else if (this.radDup.Checked) + newsn = AmkorReelID.GetNextSNbyYM_Dup(datestr); + else + newsn = AmkorReelID.GetNextSNbyYM(datestr); + + tbSeq.Text = newsn; + } + + private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + Util.TouchKeyShow(tbCustCode, "고객코드를 입력하세요"); + } + + private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + Util.TouchKeyShow(tbDiv, "장치 분류를 입력(L:Logistic/M:Manufacture,A:AutoLabel Attach)"); + } + + private void linkLabel4_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + Util.TouchKeyShow(tbSeq, "일련번호입력(001~999)"); + } + + private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + Util.TouchKeyShow(tbYear, "년도(2자리)"); + } + + private void linkLabel5_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + Util.TouchKeyShow(tb1, "예약됨(R)"); + } + + private void linkLabel6_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + Util.TouchKeyShow(tbtype, "예약됨(C/I)"); + } + + private void linkLabel7_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + Util.TouchKeyShow(tbLoca, "발행처(3/4/5)"); + } + + private void linkLabel8_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + Util.TouchKeyShow(tbMon, "월(1자리 10월=A,11월=B,12월=C"); + } + + private void button8_Click(object sender, EventArgs e) + { + //중복검사 + var rid = tbRID.Text.Trim(); + if (rid.isEmpty()) + { + Util.MsgE("Reel Id 값이 없습니다"); + return; + } + + //db에서도 검색한다 + if (Pub.setting.OnlineMode) + { + var db = new EEEntities(); + if (db.Component_Reel_Result.Where(t => t.RID == rid).Any()) + { + Util.MsgE($"해당 ID는 발행 기록이 있는 ID 입니다\n값:{rid}"); + return; + } + + var result = Amkor.RestfulService.get_existed_matl_by_id(rid); + if (result.Complete == false) + { + Util.MsgE("중복검사 서버 오류\n" + result.Message); + } + else + { + if (result.Result == true) + { + Util.MsgE($"해당 ID는 중복된 ID 입니다\n값:{rid}"); + return; + } + else + { + Util.MsgI($"해당 ID는 중복되지 않았습니다\n{rid}"); + } + } + } + + } + + private void chkReturn_CheckedChanged(object sender, EventArgs e) + { + UpdateSN(); + UpdateRID(); + } + + private void button1_Click_1(object sender, EventArgs e) + { + UpdateSN(); + } + + private void radNormal_Click(object sender, EventArgs e) + { + UpdateSN(); + UpdateRID(); + } + } +} diff --git a/Handler/Project_form2/Dialog/fNewReelID.resx b/Handler/Project_form2/Dialog/fNewReelID.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/Project_form2/Dialog/fNewReelID.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fNewSID.Designer.cs b/Handler/Project_form2/Dialog/fNewSID.Designer.cs new file mode 100644 index 0000000..21df56c --- /dev/null +++ b/Handler/Project_form2/Dialog/fNewSID.Designer.cs @@ -0,0 +1,121 @@ +namespace Project.Dialog +{ + partial class fNewSID + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.button1 = new System.Windows.Forms.Button(); + this.tbOldSid = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.tb1 = new System.Windows.Forms.TextBox(); + this.linkLabel3 = new System.Windows.Forms.LinkLabel(); + this.SuspendLayout(); + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.button1.Location = new System.Drawing.Point(10, 138); + this.button1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(694, 68); + this.button1.TabIndex = 4; + this.button1.Text = "확인"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // tbOldSid + // + this.tbOldSid.Location = new System.Drawing.Point(182, 17); + this.tbOldSid.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.tbOldSid.Name = "tbOldSid"; + this.tbOldSid.ReadOnly = true; + this.tbOldSid.Size = new System.Drawing.Size(518, 43); + this.tbOldSid.TabIndex = 2; + this.tbOldSid.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(55, 17); + this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(114, 37); + this.label3.TabIndex = 3; + this.label3.Text = "Old SID"; + // + // tb1 + // + this.tb1.Location = new System.Drawing.Point(182, 71); + this.tb1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.tb1.Name = "tb1"; + this.tb1.Size = new System.Drawing.Size(518, 43); + this.tb1.TabIndex = 6; + this.tb1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // linkLabel3 + // + this.linkLabel3.AutoSize = true; + this.linkLabel3.Location = new System.Drawing.Point(52, 71); + this.linkLabel3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.linkLabel3.Name = "linkLabel3"; + this.linkLabel3.Size = new System.Drawing.Size(127, 37); + this.linkLabel3.TabIndex = 8; + this.linkLabel3.TabStop = true; + this.linkLabel3.Text = "New SID"; + this.linkLabel3.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel3_LinkClicked); + // + // fNewSID + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(714, 216); + this.Controls.Add(this.linkLabel3); + this.Controls.Add(this.tb1); + this.Controls.Add(this.button1); + this.Controls.Add(this.label3); + this.Controls.Add(this.tbOldSid); + this.Font = new System.Drawing.Font("맑은 고딕", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fNewSID"; + this.Padding = new System.Windows.Forms.Padding(10); + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Find New SID"; + this.Load += new System.EventHandler(this.fNewSID_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private System.Windows.Forms.Button button1; + private System.Windows.Forms.TextBox tbOldSid; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox tb1; + private System.Windows.Forms.LinkLabel linkLabel3; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fNewSID.cs b/Handler/Project_form2/Dialog/fNewSID.cs new file mode 100644 index 0000000..882e14b --- /dev/null +++ b/Handler/Project_form2/Dialog/fNewSID.cs @@ -0,0 +1,101 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fNewSID : Form + { + public int FindSIDCount = -1; + public string NewSID { get; set; } + public fNewSID(string presid) + { + InitializeComponent(); + this.tbOldSid.Text = presid; + + } + + private void fNewSID_Load(object sender, EventArgs e) + { + //해당 sid 로 101,103,106 가능한 sid 목록을 표시한다 + var sid = tbOldSid.Text.Trim(); + var presid = this.tbOldSid.Text; + var db = new EEEntities(); + var dr = db.Component_Reel_SIDConv.AsNoTracking().Where(t => t.SIDFrom == presid).ToList(); + if (dr.Any()) + { + if (dr.Count() == 1) + { + tb1.Text = dr.First().SIDTo != null ? dr.First().SIDTo.Trim() : string.Empty; + } + else + { + //데이터가 여러개 있다. + FindSIDCount = dr.Count(); + //var befcolname = "101"; + //var aftcolname = "103"; + //if (Pub.Result.JobType == "16") { befcolname = "101"; aftcolname = "106"; } + //else if (Pub.Result.JobType == "13") { befcolname = "101"; aftcolname = "103"; } + //else if (Pub.Result.JobType == "31") { befcolname = "103"; aftcolname = "101"; } + //else if (Pub.Result.JobType == "61") { befcolname = "106"; aftcolname = "101"; } + //else if (Pub.Result.JobType == "18") { befcolname = "101"; aftcolname = "108"; } + //else if (Pub.Result.JobType == "81") { befcolname = "108"; aftcolname = "101"; } + + var lst = new List(); + foreach (var item in dr) + { + var msidto = string.Empty; + if (item.SIDTo != null) msidto = presid + ";" + item.SIDTo.Trim(); + lst.Add(msidto); + } + var f = new Dialog.fSelectSID(lst); + if (f.ShowDialog() == DialogResult.OK) + { + var v = f.Value.Split(';'); //0은 old .1=new + tb1.Text = v[1].Trim(); + } + } + + } + else + { + tb1.Text = string.Empty; + } + + } + + private void button1_Click(object sender, EventArgs e) + { + this.NewSID = tb1.Text.Trim(); + + if (NewSID.isEmpty()) + { + Util.MsgE("SID값이 입력(선택) 되지 않았습니다"); + return; + } + + if (NewSID == tbOldSid.Text) + { + Util.MsgE($"기존 SID와 동일한 SID값이 확인되었습니다\n\n" + + $"기존:{tbOldSid.Text}\n" + + $"신규:{NewSID}"); + return; + } + + DialogResult = DialogResult.OK; + } + + private void linkLabel3_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + Util.TouchKeyShow(tb1, "Input SID"); + } + + + } +} diff --git a/Handler/Project_form2/Dialog/fNewSID.resx b/Handler/Project_form2/Dialog/fNewSID.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/Project_form2/Dialog/fNewSID.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fPickerMove.Designer.cs b/Handler/Project_form2/Dialog/fPickerMove.Designer.cs new file mode 100644 index 0000000..7ad18cb --- /dev/null +++ b/Handler/Project_form2/Dialog/fPickerMove.Designer.cs @@ -0,0 +1,387 @@ +namespace Project.Dialog +{ + partial class fPickerMove + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.btlw = new System.Windows.Forms.Button(); + this.btc = new System.Windows.Forms.Button(); + this.btl = new System.Windows.Forms.Button(); + this.btrw = new System.Windows.Forms.Button(); + this.btr = new System.Windows.Forms.Button(); + this.button6 = new System.Windows.Forms.Button(); + this.button7 = new System.Windows.Forms.Button(); + this.button8 = new System.Windows.Forms.Button(); + this.button9 = new System.Windows.Forms.Button(); + this.button10 = new System.Windows.Forms.Button(); + this.button11 = new System.Windows.Forms.Button(); + this.button12 = new System.Windows.Forms.Button(); + this.button13 = new System.Windows.Forms.Button(); + this.timer1 = new System.Windows.Forms.Timer(this.components); + this.button1 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.button3 = new System.Windows.Forms.Button(); + this.button4 = new System.Windows.Forms.Button(); + this.button5 = new System.Windows.Forms.Button(); + this.tableLayoutPanel1.SuspendLayout(); + this.SuspendLayout(); + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 5; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel1.Controls.Add(this.btlw, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.btc, 2, 0); + this.tableLayoutPanel1.Controls.Add(this.btl, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.btrw, 3, 0); + this.tableLayoutPanel1.Controls.Add(this.btr, 4, 0); + this.tableLayoutPanel1.Controls.Add(this.button6, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.button7, 3, 1); + this.tableLayoutPanel1.Controls.Add(this.button8, 2, 1); + this.tableLayoutPanel1.Controls.Add(this.button9, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.button10, 4, 2); + this.tableLayoutPanel1.Controls.Add(this.button11, 1, 2); + this.tableLayoutPanel1.Controls.Add(this.button12, 2, 2); + this.tableLayoutPanel1.Controls.Add(this.button13, 3, 2); + this.tableLayoutPanel1.Controls.Add(this.button1, 0, 3); + this.tableLayoutPanel1.Controls.Add(this.button2, 1, 3); + this.tableLayoutPanel1.Controls.Add(this.button3, 2, 3); + this.tableLayoutPanel1.Controls.Add(this.button4, 3, 3); + this.tableLayoutPanel1.Controls.Add(this.button5, 4, 3); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 4; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(822, 465); + this.tableLayoutPanel1.TabIndex = 0; + // + // btlw + // + this.btlw.Dock = System.Windows.Forms.DockStyle.Fill; + this.btlw.Font = new System.Drawing.Font("맑은 고딕", 25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btlw.Location = new System.Drawing.Point(174, 10); + this.btlw.Margin = new System.Windows.Forms.Padding(10); + this.btlw.Name = "btlw"; + this.btlw.Size = new System.Drawing.Size(144, 96); + this.btlw.TabIndex = 0; + this.btlw.Text = "대기"; + this.btlw.UseVisualStyleBackColor = true; + this.btlw.Click += new System.EventHandler(this.button1_Click); + // + // btc + // + this.btc.Dock = System.Windows.Forms.DockStyle.Fill; + this.btc.Font = new System.Drawing.Font("맑은 고딕", 25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btc.ForeColor = System.Drawing.Color.ForestGreen; + this.btc.Location = new System.Drawing.Point(338, 10); + this.btc.Margin = new System.Windows.Forms.Padding(10); + this.btc.Name = "btc"; + this.btc.Size = new System.Drawing.Size(144, 96); + this.btc.TabIndex = 0; + this.btc.Text = "중앙"; + this.btc.UseVisualStyleBackColor = true; + this.btc.Click += new System.EventHandler(this.button2_Click); + // + // btl + // + this.btl.Dock = System.Windows.Forms.DockStyle.Fill; + this.btl.Font = new System.Drawing.Font("맑은 고딕", 25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btl.Location = new System.Drawing.Point(10, 10); + this.btl.Margin = new System.Windows.Forms.Padding(10); + this.btl.Name = "btl"; + this.btl.Size = new System.Drawing.Size(144, 96); + this.btl.TabIndex = 0; + this.btl.Text = "좌측"; + this.btl.UseVisualStyleBackColor = true; + this.btl.Click += new System.EventHandler(this.button3_Click); + // + // btrw + // + this.btrw.Dock = System.Windows.Forms.DockStyle.Fill; + this.btrw.Font = new System.Drawing.Font("맑은 고딕", 25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btrw.Location = new System.Drawing.Point(502, 10); + this.btrw.Margin = new System.Windows.Forms.Padding(10); + this.btrw.Name = "btrw"; + this.btrw.Size = new System.Drawing.Size(144, 96); + this.btrw.TabIndex = 0; + this.btrw.Text = "대기"; + this.btrw.UseVisualStyleBackColor = true; + this.btrw.Click += new System.EventHandler(this.button4_Click); + // + // btr + // + this.btr.Dock = System.Windows.Forms.DockStyle.Fill; + this.btr.Font = new System.Drawing.Font("맑은 고딕", 25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btr.Location = new System.Drawing.Point(666, 10); + this.btr.Margin = new System.Windows.Forms.Padding(10); + this.btr.Name = "btr"; + this.btr.Size = new System.Drawing.Size(146, 96); + this.btr.TabIndex = 0; + this.btr.Text = "우측"; + this.btr.UseVisualStyleBackColor = true; + this.btr.Click += new System.EventHandler(this.button5_Click); + // + // button6 + // + this.tableLayoutPanel1.SetColumnSpan(this.button6, 2); + this.button6.Dock = System.Windows.Forms.DockStyle.Fill; + this.button6.Font = new System.Drawing.Font("Consolas", 35F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.button6.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(64))))); + this.button6.Location = new System.Drawing.Point(10, 126); + this.button6.Margin = new System.Windows.Forms.Padding(10); + this.button6.Name = "button6"; + this.button6.Size = new System.Drawing.Size(308, 96); + this.button6.TabIndex = 1; + this.button6.Text = "<< JOG"; + this.button6.UseVisualStyleBackColor = true; + this.button6.Click += new System.EventHandler(this.button6_Click); + this.button6.MouseDown += new System.Windows.Forms.MouseEventHandler(this.button6_MouseDown); + this.button6.MouseUp += new System.Windows.Forms.MouseEventHandler(this.button6_MouseUp); + // + // button7 + // + this.tableLayoutPanel1.SetColumnSpan(this.button7, 2); + this.button7.Dock = System.Windows.Forms.DockStyle.Fill; + this.button7.Font = new System.Drawing.Font("Consolas", 35F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.button7.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(64))))); + this.button7.Location = new System.Drawing.Point(502, 126); + this.button7.Margin = new System.Windows.Forms.Padding(10); + this.button7.Name = "button7"; + this.button7.Size = new System.Drawing.Size(310, 96); + this.button7.TabIndex = 1; + this.button7.Text = "JOG >>"; + this.button7.UseVisualStyleBackColor = true; + this.button7.Click += new System.EventHandler(this.button7_Click); + this.button7.MouseDown += new System.Windows.Forms.MouseEventHandler(this.button6_MouseDown); + this.button7.MouseUp += new System.Windows.Forms.MouseEventHandler(this.button6_MouseUp); + // + // button8 + // + this.button8.Dock = System.Windows.Forms.DockStyle.Fill; + this.button8.Font = new System.Drawing.Font("Consolas", 45F, System.Drawing.FontStyle.Bold); + this.button8.ForeColor = System.Drawing.Color.Red; + this.button8.Location = new System.Drawing.Point(338, 126); + this.button8.Margin = new System.Windows.Forms.Padding(10); + this.button8.Name = "button8"; + this.button8.Size = new System.Drawing.Size(144, 96); + this.button8.TabIndex = 2; + this.button8.Text = "■"; + this.button8.UseVisualStyleBackColor = true; + this.button8.Click += new System.EventHandler(this.button8_Click); + // + // button9 + // + this.button9.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); + this.button9.Dock = System.Windows.Forms.DockStyle.Fill; + this.button9.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold); + this.button9.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.button9.Location = new System.Drawing.Point(10, 242); + this.button9.Margin = new System.Windows.Forms.Padding(10); + this.button9.Name = "button9"; + this.button9.Size = new System.Drawing.Size(144, 96); + this.button9.TabIndex = 3; + this.button9.Text = "비젼검증\r\n취소(L)"; + this.button9.UseVisualStyleBackColor = false; + this.button9.Click += new System.EventHandler(this.button9_Click); + // + // button10 + // + this.button10.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); + this.button10.Dock = System.Windows.Forms.DockStyle.Fill; + this.button10.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold); + this.button10.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.button10.Location = new System.Drawing.Point(666, 242); + this.button10.Margin = new System.Windows.Forms.Padding(10); + this.button10.Name = "button10"; + this.button10.Size = new System.Drawing.Size(146, 96); + this.button10.TabIndex = 4; + this.button10.Text = "비젼검증\r\n취소(R)"; + this.button10.UseVisualStyleBackColor = false; + this.button10.Click += new System.EventHandler(this.button10_Click); + // + // button11 + // + this.button11.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(255))))); + this.button11.Dock = System.Windows.Forms.DockStyle.Fill; + this.button11.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold); + this.button11.Location = new System.Drawing.Point(174, 242); + this.button11.Margin = new System.Windows.Forms.Padding(10); + this.button11.Name = "button11"; + this.button11.Size = new System.Drawing.Size(144, 96); + this.button11.TabIndex = 5; + this.button11.Text = "프린트관리\r\n위치(L)"; + this.button11.UseVisualStyleBackColor = false; + this.button11.Click += new System.EventHandler(this.button11_Click); + // + // button12 + // + this.button12.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(255))))); + this.button12.Dock = System.Windows.Forms.DockStyle.Fill; + this.button12.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold); + this.button12.Location = new System.Drawing.Point(338, 242); + this.button12.Margin = new System.Windows.Forms.Padding(10); + this.button12.Name = "button12"; + this.button12.Size = new System.Drawing.Size(144, 96); + this.button12.TabIndex = 5; + this.button12.Text = "관리위치\r\n복귀"; + this.button12.UseVisualStyleBackColor = false; + this.button12.Click += new System.EventHandler(this.button12_Click); + // + // button13 + // + this.button13.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(255))))); + this.button13.Dock = System.Windows.Forms.DockStyle.Fill; + this.button13.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold); + this.button13.Location = new System.Drawing.Point(502, 242); + this.button13.Margin = new System.Windows.Forms.Padding(10); + this.button13.Name = "button13"; + this.button13.Size = new System.Drawing.Size(144, 96); + this.button13.TabIndex = 5; + this.button13.Text = "프린트관리\r\n위치(R)"; + this.button13.UseVisualStyleBackColor = false; + this.button13.Click += new System.EventHandler(this.button13_Click); + // + // timer1 + // + this.timer1.Tick += new System.EventHandler(this.timer1_Tick); + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Fill; + this.button1.Enabled = false; + this.button1.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold); + this.button1.Location = new System.Drawing.Point(10, 358); + this.button1.Margin = new System.Windows.Forms.Padding(10); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(144, 97); + this.button1.TabIndex = 6; + this.button1.Text = "--"; + this.button1.UseVisualStyleBackColor = true; + // + // button2 + // + this.button2.Dock = System.Windows.Forms.DockStyle.Fill; + this.button2.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold); + this.button2.Location = new System.Drawing.Point(174, 358); + this.button2.Margin = new System.Windows.Forms.Padding(10); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(144, 97); + this.button2.TabIndex = 6; + this.button2.Text = "프린트\r\n(L)"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click_1); + // + // button3 + // + this.button3.Dock = System.Windows.Forms.DockStyle.Fill; + this.button3.Enabled = false; + this.button3.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold); + this.button3.Location = new System.Drawing.Point(338, 358); + this.button3.Margin = new System.Windows.Forms.Padding(10); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(144, 97); + this.button3.TabIndex = 6; + this.button3.Text = "--"; + this.button3.UseVisualStyleBackColor = true; + // + // button4 + // + this.button4.Dock = System.Windows.Forms.DockStyle.Fill; + this.button4.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold); + this.button4.Location = new System.Drawing.Point(502, 358); + this.button4.Margin = new System.Windows.Forms.Padding(10); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(144, 97); + this.button4.TabIndex = 6; + this.button4.Text = "프린트\r\n(R)"; + this.button4.UseVisualStyleBackColor = true; + this.button4.Click += new System.EventHandler(this.button4_Click_1); + // + // button5 + // + this.button5.Dock = System.Windows.Forms.DockStyle.Fill; + this.button5.Enabled = false; + this.button5.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Bold); + this.button5.Location = new System.Drawing.Point(666, 358); + this.button5.Margin = new System.Windows.Forms.Padding(10); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(146, 97); + this.button5.TabIndex = 6; + this.button5.Text = "--"; + this.button5.UseVisualStyleBackColor = true; + // + // fPickerMove + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(822, 465); + this.Controls.Add(this.tableLayoutPanel1); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fPickerMove"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "피커(X) 이동 및 관리"; + this.Load += new System.EventHandler(this.fPickerMove_Load); + this.tableLayoutPanel1.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Button btlw; + private System.Windows.Forms.Button btc; + private System.Windows.Forms.Button btl; + private System.Windows.Forms.Button btrw; + private System.Windows.Forms.Button btr; + private System.Windows.Forms.Button button6; + private System.Windows.Forms.Button button7; + private System.Windows.Forms.Button button8; + private System.Windows.Forms.Button button9; + private System.Windows.Forms.Button button10; + private System.Windows.Forms.Button button11; + private System.Windows.Forms.Button button12; + private System.Windows.Forms.Button button13; + private System.Windows.Forms.Timer timer1; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.Button button5; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fPickerMove.cs b/Handler/Project_form2/Dialog/fPickerMove.cs new file mode 100644 index 0000000..012a6d0 --- /dev/null +++ b/Handler/Project_form2/Dialog/fPickerMove.cs @@ -0,0 +1,330 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fPickerMove : Form + { + public fPickerMove() + { + InitializeComponent(); + this.FormClosing += FPickerMove_FormClosing; + } + private void fPickerMove_Load(object sender, EventArgs e) + { + Pub.flag.set(eFlag.MOVE_PICKER, true, "PICKERMOVE"); + timer1.Start(); + } + private void FPickerMove_FormClosing(object sender, FormClosingEventArgs e) + { + if(ManPosL) + { + Util.MsgE("프린터측 모션이 관리위치에 있습니다\n위치를 복귀 한 후 다시 시도하세요", true); + e.Cancel = true; + return; + } + Pub.flag.set(eFlag.MOVE_PICKER, false, "PICKERMOVE"); + timer1.Stop(); + } + + Boolean CheckSafty() + { + if (Util_DO.isSaftyDoorF() == false) + { + Util.MsgE("전면 도어가 열려 있습니다"); + return false; + } + + if (Pub.mot.hasHomeSetOff) + { + Util.MsgE("모션의 홈 작업이 완료되지 않았습니다"); + return false; + } + return true; + } + + private void button3_Click(object sender, EventArgs e) + { + if (CheckSafty() == false) return; + var p1 = Util_Mot.GetAxPXPos(eAxisPXPos.PICKOFFL); + Util_Mot.Move(eAxis.X_PICKER, p1.position, 250, p1.acc, false, false, false); + DialogResult = DialogResult.OK; + } + + private void button1_Click(object sender, EventArgs e) + { + if (CheckSafty() == false) return; + var p1 = Util_Mot.GetAxPXPos(eAxisPXPos.READYL); + Util_Mot.Move(eAxis.X_PICKER, p1.position, 250, p1.acc, false, false, false); + DialogResult = DialogResult.OK; + } + + private void button2_Click(object sender, EventArgs e) + { + if (CheckSafty() == false) return; + var p1 = Util_Mot.GetAxPXPos(eAxisPXPos.PICKON); + Util_Mot.Move(eAxis.X_PICKER, p1.position, 250, p1.acc, false, false, false); + DialogResult = DialogResult.OK; + } + + private void button4_Click(object sender, EventArgs e) + { + if (CheckSafty() == false) return; + var p1 = Util_Mot.GetAxPXPos(eAxisPXPos.READYR); + Util_Mot.Move(eAxis.X_PICKER, p1.position, 250, p1.acc, false, false, false); + DialogResult = DialogResult.OK; + } + + private void button5_Click(object sender, EventArgs e) + { + if (CheckSafty() == false) return; + var p1 = Util_Mot.GetAxPXPos(eAxisPXPos.PICKOFFR); + Util_Mot.Move(eAxis.X_PICKER, p1.position, 250, p1.acc, false, false, false); + DialogResult = DialogResult.OK; + } + + private void button8_Click(object sender, EventArgs e) + { + Pub.mot.MoveStop("pmove", (int)eAxis.X_PICKER); + } + + private void button6_Click(object sender, EventArgs e) + { + //jog left + } + + private void button7_Click(object sender, EventArgs e) + { + //jog right + } + + private void button6_MouseDown(object sender, MouseEventArgs e) + { + //조그시작 + var bt = sender as Button; + if (bt.Text.Contains( "<<")) Pub.mot.JOG((short)eAxis.X_PICKER, arDev.AzinAxt.eMotionDirection.Negative); + else Pub.mot.JOG((short)eAxis.X_PICKER, arDev.AzinAxt.eMotionDirection.Positive); + } + + private void button6_MouseUp(object sender, MouseEventArgs e) + { + //마우스 놓으면 멈춤 + Pub.mot.MoveStop("pmove", (short)eAxis.X_PICKER); + } + + private void button9_Click(object sender, EventArgs e) + { + + //왼쪽검증취소 + // if (Pub.flag.get(eFlag.RDY_VISION0) == false) return; + var dlg = Util.MsgQ("QR코드 검증을 취소할까요?"); + if (dlg != DialogResult.Yes) return; + + Pub.flag.set(eFlag.RDY_VISION0, false, "CANCEL"); + Pub.flag.set(eFlag.PORTL_ITEMON, false, "CANCEL"); + Pub.ResetRunStepSeq(eRunSequence.VISION0); + Pub.UpdaterunStepSeqStartTime(eRunSequence.COM_VS0); + Pub.log.Add(string.Format("QR검증({0}) 취소 JGUID={1}", "L", Pub.Result.ItemData[0].guid)); + UpdateDatabase(0); + DialogResult = DialogResult.OK; + } + + private void button10_Click(object sender, EventArgs e) + { + //왼쪽검증취소 + //if (Pub.flag.get(eFlag.RDY_VISION0) == false) return; + var dlg = Util.MsgQ("QR코드 검증을 취소할까요?"); + if (dlg != DialogResult.Yes) return; + + Pub.flag.set(eFlag.RDY_VISION2, false, "CANCEL"); + Pub.flag.set(eFlag.PORTR_ITEMON, false, "CANCEL"); + Pub.ResetRunStepSeq(eRunSequence.VISION2); + Pub.UpdaterunStepSeqStartTime(eRunSequence.COM_VS2); + Pub.log.Add(string.Format("QR검증({0}) 취소 JGUID={1}", "R", Pub.Result.ItemData[2].guid)); + + UpdateDatabase(2); + DialogResult = DialogResult.OK; + } + + void UpdateDatabase(int vidx) + { + //취소상태를 DB에도 남긴다. + using (var db = new EEEntities()) + { + var itemdata = Pub.Result.ItemData[vidx]; + var dr = db.Component_Reel_Result.AsNoTracking().Where(t => t.JGUID == itemdata.guid).FirstOrDefault(); + if (dr == null) + { + var ermsg = string.Format("다음 guid 를 찾을수 없어 검증취소 를 변경하지 못함 vidx={2},guid={0},sid={1}", itemdata.guid, itemdata.VisionData.SID, vidx); + Pub.AddDebugLog(ermsg, true); + Pub.log.AddE(ermsg); + } + else + { + dr.ANGLE = itemdata.VisionData.ApplyAngle; //210331 - 도중에 사용자 angle 이 있다면 그것이 적용되었음 + dr.PRNVALID = false; + dr.REMARK = "검증취소"; + db.SaveChanges(); + } + } + } + + private void button11_Click(object sender, EventArgs e) + { + //관리위치L + MoveMangePos(0); + } + + private void button13_Click(object sender, EventArgs e) + { + //관리위치 + MoveMangePos(2); + } + + Boolean ManPosL = false; + + void MoveMangePos(int vidx) + { + if (Pub.sm.Step != StateMachine.eSMStep.IDLE) + { + Util.MsgE("대기상태에서만 사용 가능 합니다"); + return; + } + var Xpos = Util_Mot.GetPKX_PosName(); + if (Xpos != ePickYPosition.PICKON) + { + Util.MsgE("피커위치가 중앙에서만 사용 가능 합니다"); + return; + } + + Task.Run(new Action(() => + { + //Z축을 Ready 위치로 이동한다. + if (vidx == 0) + { + var zPos = Util_Mot.GetAxPLZPos(eAxisPLUPDNPos.READY); + Util_Mot.Move(eAxis.PL_UPDN, zPos.position, zPos.speed, zPos.acc); + while (Util_Mot.GetPLZ_PosName() != ePrintZPosition.READY) + System.Threading.Thread.Sleep(10); + + var mPos = Util_Mot.GetAxPLMPos(eAxisPLMovePos.PRINTL07); + Util_Mot.Move(eAxis.PL_MOVE, mPos.position, mPos.speed, mPos.acc); + while (Util_Mot.GetPLM_PosName() != ePrintYPosition.PRINTL07) + System.Threading.Thread.Sleep(10); + + var zPos2 = Util_Mot.GetAxPLZPos(eAxisPLUPDNPos.PICKOFF); + var tPos = (zPos2.position / 2f); + Util_Mot.Move(eAxis.PL_UPDN, tPos, zPos.speed, zPos.acc); + ManPosL = true; + } + else + { + var zPos = Util_Mot.GetAxPRZPos(eAxisPRUPDNPos.READY); + Util_Mot.Move(eAxis.PR_UPDN, zPos.position, zPos.speed, zPos.acc); + while (Util_Mot.GetPRZ_PosName() != ePrintZPosition.READY) + System.Threading.Thread.Sleep(10); + + var mPos = Util_Mot.GetAxPRMPos(eAxisPRMovePos.PRINTL07); + Util_Mot.Move(eAxis.PR_MOVE, mPos.position, mPos.speed, mPos.acc); + while (Util_Mot.GetPRM_PosName() != ePrintYPosition.PRINTL07) + System.Threading.Thread.Sleep(10); + + var zPos2 = Util_Mot.GetAxPRZPos(eAxisPRUPDNPos.PICKOFF); + var tPos = (zPos2.position / 2f); + Util_Mot.Move(eAxis.PR_UPDN, tPos, zPos.speed, zPos.acc); + //ManPosR = true; + } + + })); + } + + private void button12_Click(object sender, EventArgs e) + { + var Xpos = Util_Mot.GetPKX_PosName(); + if (Xpos != ePickYPosition.PICKON) + { + Util.MsgE("피커위치가 중앙에서만 사용 가능 합니다"); + return; + } + + //위치복귀 + PosRecover(0); + PosRecover(2); + } + + void PosRecover(int vidx) + { + Task.Run(new Action(() => + { + //Z축을 Ready 위치로 이동한다. + if (vidx == 0) + { + var zPos = Util_Mot.GetAxPLZPos(eAxisPLUPDNPos.READY); + Util_Mot.Move(eAxis.PL_UPDN, zPos.position, zPos.speed, zPos.acc); + while (Util_Mot.GetPLZ_PosName() != ePrintZPosition.READY) + System.Threading.Thread.Sleep(10); + + var mPos = Util_Mot.GetAxPLMPos(eAxisPLMovePos.READY); + Util_Mot.Move(eAxis.PL_MOVE, mPos.position, mPos.speed, mPos.acc); + while (Util_Mot.GetPLM_PosName() != ePrintYPosition.READY) + System.Threading.Thread.Sleep(10); + + + ManPosL = false; + } + else + { + var zPos = Util_Mot.GetAxPRZPos(eAxisPRUPDNPos.READY); + Util_Mot.Move(eAxis.PR_UPDN, zPos.position, zPos.speed, zPos.acc); + while (Util_Mot.GetPRZ_PosName() != ePrintZPosition.READY) + System.Threading.Thread.Sleep(10); + + var mPos = Util_Mot.GetAxPRMPos(eAxisPRMovePos.READY); + Util_Mot.Move(eAxis.PR_MOVE, mPos.position, mPos.speed, mPos.acc); + while (Util_Mot.GetPRM_PosName() != ePrintYPosition.PRINTL07) + System.Threading.Thread.Sleep(10); + + //ManPosR = false; + } + + })); + } + + private void timer1_Tick(object sender, EventArgs e) + { + //모션홈이 안잡혀있다면 이동 기능은 OFf한다 + btl.Enabled = !Pub.mot.hasHomeSetOff; + btlw.Enabled = !Pub.mot.hasHomeSetOff; + btc.Enabled = !Pub.mot.hasHomeSetOff; + btrw.Enabled = !Pub.mot.hasHomeSetOff; + btr.Enabled = !Pub.mot.hasHomeSetOff; + + this.button11.Enabled = !Pub.mot.hasHomeSetOff; + this.button12.Enabled = !Pub.mot.hasHomeSetOff; + this.button13.Enabled = !Pub.mot.hasHomeSetOff; + + this.button8.BackColor = Util_DO.GetIOInput(eDIName.PICKER_SAFE) ? Color.Lime : Color.Tomato; + + + } + + private void button2_Click_1(object sender, EventArgs e) + { + Pub.PrinterL.TestPrint( Pub.setting.DrawOutbox,"","",Pub.setting.STDLabelFormat7); + Pub.log.Add("임시프린트L:" + Pub.PrinterL.LastPrintZPL); + } + + private void button4_Click_1(object sender, EventArgs e) + { + Pub.PrinterR.TestPrint(Pub.setting.DrawOutbox, "", "", Pub.setting.STDLabelFormat7); + Pub.log.Add("임시프린트R:" + Pub.PrinterR.LastPrintZPL); + } + } +} diff --git a/Handler/Project_form2/Dialog/fPickerMove.resx b/Handler/Project_form2/Dialog/fPickerMove.resx new file mode 100644 index 0000000..bb20d54 --- /dev/null +++ b/Handler/Project_form2/Dialog/fPickerMove.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + 17, 17 + + \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fSIDQty.Designer.cs b/Handler/Project_form2/Dialog/fSIDQty.Designer.cs new file mode 100644 index 0000000..22261ed --- /dev/null +++ b/Handler/Project_form2/Dialog/fSIDQty.Designer.cs @@ -0,0 +1,224 @@ +namespace Project.Dialog +{ + partial class fSIDQty + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.panel1 = new System.Windows.Forms.Panel(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.panel2 = new System.Windows.Forms.Panel(); + this.label3 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.listView1 = new System.Windows.Forms.ListView(); + this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); + this.deleteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.label5 = new System.Windows.Forms.Label(); + this.panel1.SuspendLayout(); + this.panel2.SuspendLayout(); + this.contextMenuStrip1.SuspendLayout(); + this.SuspendLayout(); + // + // panel1 + // + this.panel1.Controls.Add(this.label2); + this.panel1.Controls.Add(this.label1); + this.panel1.Dock = System.Windows.Forms.DockStyle.Top; + this.panel1.Location = new System.Drawing.Point(0, 0); + this.panel1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.panel1.Name = "panel1"; + this.panel1.Padding = new System.Windows.Forms.Padding(3); + this.panel1.Size = new System.Drawing.Size(327, 40); + this.panel1.TabIndex = 0; + // + // label1 + // + this.label1.Dock = System.Windows.Forms.DockStyle.Left; + this.label1.Location = new System.Drawing.Point(3, 3); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(75, 34); + this.label1.TabIndex = 0; + this.label1.Text = "DATE"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.label1.Click += new System.EventHandler(this.label1_Click); + // + // label2 + // + this.label2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(200)))), ((int)(((byte)(200))))); + this.label2.Dock = System.Windows.Forms.DockStyle.Fill; + this.label2.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label2.Location = new System.Drawing.Point(78, 3); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(246, 34); + this.label2.TabIndex = 1; + this.label2.Text = "label2"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.label2.Click += new System.EventHandler(this.label2_Click); + // + // panel2 + // + this.panel2.Controls.Add(this.label3); + this.panel2.Controls.Add(this.label5); + this.panel2.Controls.Add(this.label4); + this.panel2.Dock = System.Windows.Forms.DockStyle.Top; + this.panel2.Location = new System.Drawing.Point(0, 40); + this.panel2.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.panel2.Name = "panel2"; + this.panel2.Padding = new System.Windows.Forms.Padding(3); + this.panel2.Size = new System.Drawing.Size(327, 40); + this.panel2.TabIndex = 1; + // + // label3 + // + this.label3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(200)))), ((int)(((byte)(200))))); + this.label3.Dock = System.Windows.Forms.DockStyle.Fill; + this.label3.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label3.Location = new System.Drawing.Point(78, 3); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(171, 34); + this.label3.TabIndex = 1; + this.label3.Text = "label3"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label4 + // + this.label4.Dock = System.Windows.Forms.DockStyle.Left; + this.label4.Location = new System.Drawing.Point(3, 3); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(75, 34); + this.label4.TabIndex = 0; + this.label4.Text = "NO"; + this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // listView1 + // + this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader1, + this.columnHeader2, + this.columnHeader3}); + this.listView1.ContextMenuStrip = this.contextMenuStrip1; + this.listView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.listView1.FullRowSelect = true; + this.listView1.GridLines = true; + this.listView1.HideSelection = false; + this.listView1.Location = new System.Drawing.Point(0, 80); + this.listView1.MultiSelect = false; + this.listView1.Name = "listView1"; + this.listView1.Size = new System.Drawing.Size(327, 326); + this.listView1.TabIndex = 2; + this.listView1.UseCompatibleStateImageBehavior = false; + this.listView1.View = System.Windows.Forms.View.Details; + // + // columnHeader1 + // + this.columnHeader1.Text = "SID"; + this.columnHeader1.Width = 160; + // + // columnHeader2 + // + this.columnHeader2.Text = "KPC"; + this.columnHeader2.Width = 80; + // + // contextMenuStrip1 + // + this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.deleteToolStripMenuItem}); + this.contextMenuStrip1.Name = "contextMenuStrip1"; + this.contextMenuStrip1.Size = new System.Drawing.Size(109, 26); + // + // deleteToolStripMenuItem + // + this.deleteToolStripMenuItem.Name = "deleteToolStripMenuItem"; + this.deleteToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.deleteToolStripMenuItem.Text = "Delete"; + this.deleteToolStripMenuItem.Click += new System.EventHandler(this.deleteToolStripMenuItem_Click); + // + // columnHeader3 + // + this.columnHeader3.Text = "Rev"; + this.columnHeader3.Width = 80; + // + // label5 + // + this.label5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.label5.Dock = System.Windows.Forms.DockStyle.Right; + this.label5.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label5.ForeColor = System.Drawing.Color.White; + this.label5.Location = new System.Drawing.Point(249, 3); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(75, 34); + this.label5.TabIndex = 2; + this.label5.Text = "KPC"; + this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // fSIDQty + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(327, 406); + this.Controls.Add(this.listView1); + this.Controls.Add(this.panel2); + this.Controls.Add(this.panel1); + this.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.KeyPreview = true; + this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fSIDQty"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "SID QTY"; + this.TopMost = true; + this.Load += new System.EventHandler(this.fSIDQty_Load); + this.panel1.ResumeLayout(false); + this.panel2.ResumeLayout(false); + this.contextMenuStrip1.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.ListView listView1; + private System.Windows.Forms.ColumnHeader columnHeader1; + private System.Windows.Forms.ColumnHeader columnHeader2; + private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; + private System.Windows.Forms.ToolStripMenuItem deleteToolStripMenuItem; + private System.Windows.Forms.ColumnHeader columnHeader3; + private System.Windows.Forms.Label label5; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fSIDQty.cs b/Handler/Project_form2/Dialog/fSIDQty.cs new file mode 100644 index 0000000..3c1130a --- /dev/null +++ b/Handler/Project_form2/Dialog/fSIDQty.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fSIDQty : Form + { + public fSIDQty(string JobSeqDate, string JobSeqNo) + { + InitializeComponent(); + var SIDHistoryFiles = Pub.dbmSidHistory.Getfiles(JobSeqDate, JobSeqNo); + label2.Text = JobSeqDate; + label3.Text = JobSeqNo; + label5.Text = "--"; + this.listView1.Items.Clear(); + + if (SIDHistoryFiles != null) + foreach (var file in SIDHistoryFiles) + { + var DT = Pub.dbmSidHistory.GetDatas(new System.IO.FileInfo[] { file }); + var dr = DT.FirstOrDefault(); + label5.Text = dr.rev.ToString(); + var kpc = DT.Sum(t => t.qty) / 1000; + var lv = this.listView1.Items.Add(dr.sid); + lv.SubItems.Add(kpc.ToString()); + lv.SubItems.Add(dr.rev.ToString()); + lv.Tag = file.FullName; + if (dr.rev > 0 && kpc > dr.rev) lv.ForeColor = Color.Red; + } + + } + + private void fSIDQty_Load(object sender, EventArgs e) + { + this.KeyDown += FSIDQty_KeyDown; + } + + private void FSIDQty_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Escape) this.Close(); + } + + private void label1_Click(object sender, EventArgs e) + { + + } + + private void label2_Click(object sender, EventArgs e) + { + + } + + private void deleteToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.listView1.FocusedItem == null) return; + var file = this.listView1.FocusedItem.Tag.ToString(); + var dlg = Util.MsgQ(string.Format("다음 파일을 삭제 하시겠습니까?\n{0}", file)); + if (dlg != DialogResult.Yes) return; + System.IO.File.Delete(file); + this.listView1.Items.Remove(this.listView1.FocusedItem); + + } + } +} diff --git a/Handler/Project_form2/Dialog/fSIDQty.resx b/Handler/Project_form2/Dialog/fSIDQty.resx new file mode 100644 index 0000000..ad53752 --- /dev/null +++ b/Handler/Project_form2/Dialog/fSIDQty.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fSelectCustInfo.Designer.cs b/Handler/Project_form2/Dialog/fSelectCustInfo.Designer.cs new file mode 100644 index 0000000..aa2ad59 --- /dev/null +++ b/Handler/Project_form2/Dialog/fSelectCustInfo.Designer.cs @@ -0,0 +1,101 @@ +namespace Project.Dialog +{ + partial class fSelectCustInfo + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.listView1 = new System.Windows.Forms.ListView(); + this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.btOK = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // listView1 + // + this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader1, + this.columnHeader2}); + this.listView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.listView1.Font = new System.Drawing.Font("맑은 고딕", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.listView1.FullRowSelect = true; + this.listView1.GridLines = true; + this.listView1.Location = new System.Drawing.Point(0, 0); + this.listView1.MultiSelect = false; + this.listView1.Name = "listView1"; + this.listView1.Size = new System.Drawing.Size(499, 400); + this.listView1.TabIndex = 0; + this.listView1.UseCompatibleStateImageBehavior = false; + this.listView1.View = System.Windows.Forms.View.Details; + // + // columnHeader1 + // + this.columnHeader1.Text = "Code"; + this.columnHeader1.Width = 130; + // + // columnHeader2 + // + this.columnHeader2.Text = "Customer Name"; + this.columnHeader2.Width = 360; + // + // btOK + // + this.btOK.Dock = System.Windows.Forms.DockStyle.Bottom; + this.btOK.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); + this.btOK.Location = new System.Drawing.Point(0, 400); + this.btOK.Margin = new System.Windows.Forms.Padding(8, 13, 8, 13); + this.btOK.Name = "btOK"; + this.btOK.Size = new System.Drawing.Size(499, 50); + this.btOK.TabIndex = 19; + this.btOK.Text = "확인"; + this.btOK.UseVisualStyleBackColor = true; + this.btOK.Click += new System.EventHandler(this.btOK_Click); + // + // fSelectCustInfo + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(499, 450); + this.Controls.Add(this.listView1); + this.Controls.Add(this.btOK); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fSelectCustInfo"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Select Customer"; + this.Load += new System.EventHandler(this.fSelectCustInfo_Load); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.ListView listView1; + private System.Windows.Forms.ColumnHeader columnHeader1; + private System.Windows.Forms.ColumnHeader columnHeader2; + private System.Windows.Forms.Button btOK; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fSelectCustInfo.cs b/Handler/Project_form2/Dialog/fSelectCustInfo.cs new file mode 100644 index 0000000..bae6010 --- /dev/null +++ b/Handler/Project_form2/Dialog/fSelectCustInfo.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fSelectCustInfo : Form + { + public string CustCode, CustName; + public fSelectCustInfo() + { + InitializeComponent(); + } + + private void fSelectCustInfo_Load(object sender, EventArgs e) + { + this.Show(); + Application.DoEvents(); + + var db = new EEEntities(); + var list = db.vCustomerList.OrderBy(t => t.CustName).ToList(); // (t => t.manu).ToList(); + this.listView1.Items.Clear(); + foreach(var item in list) + { + var lv = this.listView1.Items.Add(item.CustCode); + lv.SubItems.Add(item.CustName); + } + } + + private void btOK_Click(object sender, EventArgs e) + { + if (this.listView1.FocusedItem == null) + return; + + this.CustCode = this.listView1.FocusedItem.SubItems[0].Text; + this.CustName = this.listView1.FocusedItem.SubItems[1].Text; + DialogResult = DialogResult.OK; + } + } +} diff --git a/Handler/Project_form2/Dialog/fSelectCustInfo.resx b/Handler/Project_form2/Dialog/fSelectCustInfo.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/Project_form2/Dialog/fSelectCustInfo.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fSelectDataList.Designer.cs b/Handler/Project_form2/Dialog/fSelectDataList.Designer.cs new file mode 100644 index 0000000..0027f36 --- /dev/null +++ b/Handler/Project_form2/Dialog/fSelectDataList.Designer.cs @@ -0,0 +1,78 @@ +namespace Project.Dialog +{ + partial class fSelectDataList + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.listBox1 = new System.Windows.Forms.ListBox(); + this.button1 = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // listBox1 + // + this.listBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.listBox1.FormattingEnabled = true; + this.listBox1.ItemHeight = 40; + this.listBox1.Location = new System.Drawing.Point(0, 0); + this.listBox1.Name = "listBox1"; + this.listBox1.Size = new System.Drawing.Size(398, 392); + this.listBox1.TabIndex = 0; + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.button1.Location = new System.Drawing.Point(0, 392); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(398, 55); + this.button1.TabIndex = 1; + this.button1.Text = "선택 확인"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // fSelectDataList + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(398, 447); + this.Controls.Add(this.listBox1); + this.Controls.Add(this.button1); + this.Font = new System.Drawing.Font("맑은 고딕", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fSelectDataList"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "목록을 선택하세요"; + this.Load += new System.EventHandler(this.fSelectDataList_Load); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.ListBox listBox1; + private System.Windows.Forms.Button button1; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fSelectDataList.cs b/Handler/Project_form2/Dialog/fSelectDataList.cs new file mode 100644 index 0000000..db9a5b7 --- /dev/null +++ b/Handler/Project_form2/Dialog/fSelectDataList.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fSelectDataList : Form + { + public string SelectedValue = string.Empty; + public fSelectDataList(string[] list) + { + InitializeComponent(); + this.listBox1.Items.Clear(); + foreach (var item in list) + this.listBox1.Items.Add(item); + this.KeyDown += FSelectDataList_KeyDown; + } + + private void FSelectDataList_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Escape) this.Close(); + } + + private void fSelectDataList_Load(object sender, EventArgs e) + { + + } + + private void button1_Click(object sender, EventArgs e) + { + if (this.listBox1.SelectedIndex < 0) + { + Util.MsgE("아이템을 선택하세요\n\n취소하려면 ESC키 혹은 닫기 버튼을 누르세요"); + return; + } + this.SelectedValue = this.listBox1.Items[this.listBox1.SelectedIndex].ToString(); + this.DialogResult = DialogResult.OK; + + } + } +} diff --git a/Handler/Project_form2/Dialog/fSelectDataList.resx b/Handler/Project_form2/Dialog/fSelectDataList.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/Project_form2/Dialog/fSelectDataList.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fSelectDay.Designer.cs b/Handler/Project_form2/Dialog/fSelectDay.Designer.cs new file mode 100644 index 0000000..bc73a2c --- /dev/null +++ b/Handler/Project_form2/Dialog/fSelectDay.Designer.cs @@ -0,0 +1,74 @@ +namespace Project.Dialog +{ + partial class fSelectDay + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.monthCalendar1 = new System.Windows.Forms.MonthCalendar(); + this.button1 = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // monthCalendar1 + // + this.monthCalendar1.CalendarDimensions = new System.Drawing.Size(3, 2); + this.monthCalendar1.Dock = System.Windows.Forms.DockStyle.Fill; + this.monthCalendar1.Location = new System.Drawing.Point(0, 0); + this.monthCalendar1.Name = "monthCalendar1"; + this.monthCalendar1.TabIndex = 0; + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.button1.Location = new System.Drawing.Point(0, 312); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(669, 61); + this.button1.TabIndex = 1; + this.button1.Text = "선택"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // fSelectDay + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(669, 373); + this.Controls.Add(this.button1); + this.Controls.Add(this.monthCalendar1); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fSelectDay"; + this.Text = "fSelectDay"; + this.Load += new System.EventHandler(this.fSelectDay_Load); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.MonthCalendar monthCalendar1; + private System.Windows.Forms.Button button1; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fSelectDay.cs b/Handler/Project_form2/Dialog/fSelectDay.cs new file mode 100644 index 0000000..0fc5704 --- /dev/null +++ b/Handler/Project_form2/Dialog/fSelectDay.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fSelectDay : Form + { + public DateTime dt { get; set; } + public fSelectDay(DateTime dt_) + { + InitializeComponent(); + this.dt = dt_; + this.StartPosition = FormStartPosition.CenterScreen; + } + + private void fSelectDay_Load(object sender, EventArgs e) + { + this.monthCalendar1.SelectionStart = this.dt; + this.monthCalendar1.SelectionEnd = this.dt; + } + + private void button1_Click(object sender, EventArgs e) + { + this.dt = this.monthCalendar1.SelectionStart; + DialogResult = DialogResult.OK; + } + } +} diff --git a/Handler/Project_form2/Dialog/fSelectDay.resx b/Handler/Project_form2/Dialog/fSelectDay.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/Project_form2/Dialog/fSelectDay.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fSelectJob.Designer.cs b/Handler/Project_form2/Dialog/fSelectJob.Designer.cs new file mode 100644 index 0000000..7b26665 --- /dev/null +++ b/Handler/Project_form2/Dialog/fSelectJob.Designer.cs @@ -0,0 +1,751 @@ +namespace Project.Dialog +{ + partial class fSelectJob + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fSelectJob)); + this.panTitleBar = new System.Windows.Forms.Panel(); + this.lbTitle = new arCtl.arLabel(); + this.panel2 = new System.Windows.Forms.Panel(); + this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); + this.btRe = new arCtl.arLabel(); + this.bt13 = new arCtl.arLabel(); + this.bt31 = new arCtl.arLabel(); + this.bt33 = new arCtl.arLabel(); + this.bt61 = new arCtl.arLabel(); + this.btManual = new arCtl.arLabel(); + this.label1 = new System.Windows.Forms.Label(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.chkQtyM = new System.Windows.Forms.CheckBox(); + this.chkVname = new System.Windows.Forms.CheckBox(); + this.chkAutoConfirm = new System.Windows.Forms.CheckBox(); + this.chkNew = new System.Windows.Forms.CheckBox(); + this.chkUpdatePart = new System.Windows.Forms.CheckBox(); + this.chkQty1 = new System.Windows.Forms.CheckBox(); + this.chkconfirm1 = new System.Windows.Forms.CheckBox(); + this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); + this.btOK = new arCtl.arLabel(); + this.btCancle = new arCtl.arLabel(); + this.cmbCustomer = new System.Windows.Forms.ComboBox(); + this.panel1 = new System.Windows.Forms.Panel(); + this.panel3 = new System.Windows.Forms.Panel(); + this.panTitleBar.SuspendLayout(); + this.panel2.SuspendLayout(); + this.tableLayoutPanel4.SuspendLayout(); + this.groupBox1.SuspendLayout(); + this.tableLayoutPanel3.SuspendLayout(); + this.SuspendLayout(); + // + // panTitleBar + // + this.panTitleBar.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); + this.panTitleBar.Controls.Add(this.lbTitle); + this.panTitleBar.Dock = System.Windows.Forms.DockStyle.Top; + this.panTitleBar.Location = new System.Drawing.Point(10, 10); + this.panTitleBar.Name = "panTitleBar"; + this.panTitleBar.Size = new System.Drawing.Size(878, 32); + this.panTitleBar.TabIndex = 134; + // + // lbTitle + // + this.lbTitle.BackColor = System.Drawing.Color.Transparent; + this.lbTitle.BackColor2 = System.Drawing.Color.Transparent; + this.lbTitle.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbTitle.BorderColor = System.Drawing.Color.Red; + this.lbTitle.BorderColorOver = System.Drawing.Color.Red; + this.lbTitle.BorderSize = new System.Windows.Forms.Padding(0); + this.lbTitle.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbTitle.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbTitle.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbTitle.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbTitle.ForeColor = System.Drawing.Color.LightSkyBlue; + this.lbTitle.GradientEnable = true; + this.lbTitle.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lbTitle.GradientRepeatBG = false; + this.lbTitle.isButton = false; + this.lbTitle.Location = new System.Drawing.Point(0, 0); + this.lbTitle.MouseDownColor = System.Drawing.Color.Yellow; + this.lbTitle.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbTitle.msg = null; + this.lbTitle.Name = "lbTitle"; + this.lbTitle.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lbTitle.ProgressBorderColor = System.Drawing.Color.Black; + this.lbTitle.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbTitle.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbTitle.ProgressEnable = false; + this.lbTitle.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbTitle.ProgressForeColor = System.Drawing.Color.Black; + this.lbTitle.ProgressMax = 100F; + this.lbTitle.ProgressMin = 0F; + this.lbTitle.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbTitle.ProgressValue = 0F; + this.lbTitle.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.lbTitle.Sign = ""; + this.lbTitle.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbTitle.SignColor = System.Drawing.Color.Yellow; + this.lbTitle.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbTitle.Size = new System.Drawing.Size(878, 32); + this.lbTitle.TabIndex = 60; + this.lbTitle.Text = "작업 방식을 선택 하세요!"; + this.lbTitle.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lbTitle.TextShadow = false; + this.lbTitle.TextVisible = true; + // + // panel2 + // + this.panel2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.panel2.Controls.Add(this.groupBox1); + this.panel2.Controls.Add(this.panel3); + this.panel2.Controls.Add(this.tableLayoutPanel4); + this.panel2.Controls.Add(this.label1); + this.panel2.Controls.Add(this.tableLayoutPanel3); + this.panel2.Controls.Add(this.panel1); + this.panel2.Controls.Add(this.cmbCustomer); + this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel2.Location = new System.Drawing.Point(10, 42); + this.panel2.Name = "panel2"; + this.panel2.Padding = new System.Windows.Forms.Padding(9, 5, 9, 7); + this.panel2.Size = new System.Drawing.Size(878, 751); + this.panel2.TabIndex = 136; + // + // tableLayoutPanel4 + // + this.tableLayoutPanel4.ColumnCount = 3; + this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel4.Controls.Add(this.btRe, 2, 0); + this.tableLayoutPanel4.Controls.Add(this.bt13, 0, 0); + this.tableLayoutPanel4.Controls.Add(this.bt31, 0, 1); + this.tableLayoutPanel4.Controls.Add(this.bt33, 1, 0); + this.tableLayoutPanel4.Controls.Add(this.bt61, 1, 1); + this.tableLayoutPanel4.Controls.Add(this.btManual, 2, 1); + this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Top; + this.tableLayoutPanel4.Location = new System.Drawing.Point(9, 60); + this.tableLayoutPanel4.Name = "tableLayoutPanel4"; + this.tableLayoutPanel4.RowCount = 2; + this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel4.Size = new System.Drawing.Size(860, 412); + this.tableLayoutPanel4.TabIndex = 22; + // + // btRe + // + this.btRe.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.btRe.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150))))); + this.btRe.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btRe.BorderColor = System.Drawing.Color.Gray; + this.btRe.BorderColorOver = System.Drawing.Color.Gray; + this.btRe.BorderSize = new System.Windows.Forms.Padding(5); + this.btRe.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btRe.Cursor = System.Windows.Forms.Cursors.Hand; + this.btRe.Dock = System.Windows.Forms.DockStyle.Fill; + this.btRe.Font = new System.Drawing.Font("맑은 고딕", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btRe.ForeColor = System.Drawing.Color.White; + this.btRe.GradientEnable = true; + this.btRe.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.btRe.GradientRepeatBG = false; + this.btRe.isButton = true; + this.btRe.Location = new System.Drawing.Point(575, 3); + this.btRe.MouseDownColor = System.Drawing.Color.Yellow; + this.btRe.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btRe.msg = null; + this.btRe.Name = "btRe"; + this.btRe.ProgressBorderColor = System.Drawing.Color.Black; + this.btRe.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btRe.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btRe.ProgressEnable = false; + this.btRe.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btRe.ProgressForeColor = System.Drawing.Color.Black; + this.btRe.ProgressMax = 100F; + this.btRe.ProgressMin = 0F; + this.btRe.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btRe.ProgressValue = 0F; + this.btRe.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.btRe.Sign = ""; + this.btRe.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btRe.SignColor = System.Drawing.Color.Yellow; + this.btRe.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btRe.Size = new System.Drawing.Size(282, 200); + this.btRe.TabIndex = 1; + this.btRe.Tag = "RE"; + this.btRe.Text = "RE.PRINT"; + this.btRe.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btRe.TextShadow = true; + this.btRe.TextVisible = true; + this.btRe.Click += new System.EventHandler(this.btMix_Click); + // + // bt13 + // + this.bt13.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.bt13.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150))))); + this.bt13.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.bt13.BorderColor = System.Drawing.Color.Gray; + this.bt13.BorderColorOver = System.Drawing.Color.Gray; + this.bt13.BorderSize = new System.Windows.Forms.Padding(5); + this.bt13.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.bt13.Cursor = System.Windows.Forms.Cursors.Hand; + this.bt13.Dock = System.Windows.Forms.DockStyle.Fill; + this.bt13.Font = new System.Drawing.Font("맑은 고딕", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.bt13.ForeColor = System.Drawing.Color.White; + this.bt13.GradientEnable = true; + this.bt13.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.bt13.GradientRepeatBG = false; + this.bt13.isButton = true; + this.bt13.Location = new System.Drawing.Point(3, 3); + this.bt13.MouseDownColor = System.Drawing.Color.Yellow; + this.bt13.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.bt13.msg = new string[] { + "101 ", + "TO", + "103"}; + this.bt13.Name = "bt13"; + this.bt13.ProgressBorderColor = System.Drawing.Color.Black; + this.bt13.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.bt13.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.bt13.ProgressEnable = false; + this.bt13.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.bt13.ProgressForeColor = System.Drawing.Color.Black; + this.bt13.ProgressMax = 100F; + this.bt13.ProgressMin = 0F; + this.bt13.ProgressPadding = new System.Windows.Forms.Padding(0); + this.bt13.ProgressValue = 0F; + this.bt13.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.bt13.Sign = ""; + this.bt13.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.bt13.SignColor = System.Drawing.Color.Yellow; + this.bt13.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.bt13.Size = new System.Drawing.Size(280, 200); + this.bt13.TabIndex = 1; + this.bt13.Tag = "13"; + this.bt13.Text = "SID변환"; + this.bt13.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.bt13.TextShadow = true; + this.bt13.TextVisible = true; + this.bt13.Click += new System.EventHandler(this.btMix_Click); + // + // bt31 + // + this.bt31.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.bt31.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150))))); + this.bt31.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.bt31.BorderColor = System.Drawing.Color.Gray; + this.bt31.BorderColorOver = System.Drawing.Color.Gray; + this.bt31.BorderSize = new System.Windows.Forms.Padding(5); + this.bt31.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.bt31.Cursor = System.Windows.Forms.Cursors.Hand; + this.bt31.Dock = System.Windows.Forms.DockStyle.Fill; + this.bt31.Font = new System.Drawing.Font("맑은 고딕", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.bt31.ForeColor = System.Drawing.Color.White; + this.bt31.GradientEnable = true; + this.bt31.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.bt31.GradientRepeatBG = false; + this.bt31.isButton = true; + this.bt31.Location = new System.Drawing.Point(3, 209); + this.bt31.MouseDownColor = System.Drawing.Color.Yellow; + this.bt31.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.bt31.msg = null; + this.bt31.Name = "bt31"; + this.bt31.ProgressBorderColor = System.Drawing.Color.Black; + this.bt31.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.bt31.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.bt31.ProgressEnable = false; + this.bt31.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.bt31.ProgressForeColor = System.Drawing.Color.Black; + this.bt31.ProgressMax = 100F; + this.bt31.ProgressMin = 0F; + this.bt31.ProgressPadding = new System.Windows.Forms.Padding(0); + this.bt31.ProgressValue = 0F; + this.bt31.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.bt31.Sign = ""; + this.bt31.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.bt31.SignColor = System.Drawing.Color.Yellow; + this.bt31.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.bt31.Size = new System.Drawing.Size(280, 200); + this.bt31.TabIndex = 1; + this.bt31.Tag = "--"; + this.bt31.Text = "--"; + this.bt31.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.bt31.TextShadow = true; + this.bt31.TextVisible = true; + this.bt31.Click += new System.EventHandler(this.btMix_Click); + // + // bt33 + // + this.bt33.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.bt33.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150))))); + this.bt33.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.bt33.BorderColor = System.Drawing.Color.Gray; + this.bt33.BorderColorOver = System.Drawing.Color.Gray; + this.bt33.BorderSize = new System.Windows.Forms.Padding(5); + this.bt33.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.bt33.Cursor = System.Windows.Forms.Cursors.Hand; + this.bt33.Dock = System.Windows.Forms.DockStyle.Fill; + this.bt33.Font = new System.Drawing.Font("맑은 고딕", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.bt33.ForeColor = System.Drawing.Color.White; + this.bt33.GradientEnable = true; + this.bt33.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.bt33.GradientRepeatBG = false; + this.bt33.isButton = true; + this.bt33.Location = new System.Drawing.Point(289, 3); + this.bt33.MouseDownColor = System.Drawing.Color.Yellow; + this.bt33.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.bt33.msg = new string[] { + "101 ", + "TO", + "103"}; + this.bt33.Name = "bt33"; + this.bt33.ProgressBorderColor = System.Drawing.Color.Black; + this.bt33.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.bt33.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.bt33.ProgressEnable = false; + this.bt33.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.bt33.ProgressForeColor = System.Drawing.Color.Black; + this.bt33.ProgressMax = 100F; + this.bt33.ProgressMin = 0F; + this.bt33.ProgressPadding = new System.Windows.Forms.Padding(0); + this.bt33.ProgressValue = 0F; + this.bt33.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.bt33.Sign = ""; + this.bt33.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.bt33.SignColor = System.Drawing.Color.Yellow; + this.bt33.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.bt33.Size = new System.Drawing.Size(280, 200); + this.bt33.TabIndex = 1; + this.bt33.Tag = "DRY"; + this.bt33.Text = "DRY-RUN"; + this.bt33.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.bt33.TextShadow = true; + this.bt33.TextVisible = true; + this.bt33.Click += new System.EventHandler(this.btMix_Click); + // + // bt61 + // + this.bt61.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.bt61.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150))))); + this.bt61.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.bt61.BorderColor = System.Drawing.Color.Gray; + this.bt61.BorderColorOver = System.Drawing.Color.Gray; + this.bt61.BorderSize = new System.Windows.Forms.Padding(5); + this.bt61.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.bt61.Cursor = System.Windows.Forms.Cursors.Hand; + this.bt61.Dock = System.Windows.Forms.DockStyle.Fill; + this.bt61.Font = new System.Drawing.Font("맑은 고딕", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.bt61.ForeColor = System.Drawing.Color.White; + this.bt61.GradientEnable = true; + this.bt61.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.bt61.GradientRepeatBG = false; + this.bt61.isButton = true; + this.bt61.Location = new System.Drawing.Point(289, 209); + this.bt61.MouseDownColor = System.Drawing.Color.Yellow; + this.bt61.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.bt61.msg = new string[] { + "101 ", + "TO", + "103"}; + this.bt61.Name = "bt61"; + this.bt61.ProgressBorderColor = System.Drawing.Color.Black; + this.bt61.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.bt61.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.bt61.ProgressEnable = false; + this.bt61.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.bt61.ProgressForeColor = System.Drawing.Color.Black; + this.bt61.ProgressMax = 100F; + this.bt61.ProgressMin = 0F; + this.bt61.ProgressPadding = new System.Windows.Forms.Padding(0); + this.bt61.ProgressValue = 0F; + this.bt61.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.bt61.Sign = ""; + this.bt61.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.bt61.SignColor = System.Drawing.Color.Yellow; + this.bt61.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.bt61.Size = new System.Drawing.Size(280, 200); + this.bt61.TabIndex = 1; + this.bt61.Tag = "--"; + this.bt61.Text = "--"; + this.bt61.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.bt61.TextShadow = true; + this.bt61.TextVisible = true; + this.bt61.Click += new System.EventHandler(this.btMix_Click); + // + // btManual + // + this.btManual.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); + this.btManual.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(150)))), ((int)(((byte)(150)))), ((int)(((byte)(150))))); + this.btManual.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btManual.BorderColor = System.Drawing.Color.Gray; + this.btManual.BorderColorOver = System.Drawing.Color.Gray; + this.btManual.BorderSize = new System.Windows.Forms.Padding(5); + this.btManual.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btManual.Cursor = System.Windows.Forms.Cursors.Hand; + this.btManual.Dock = System.Windows.Forms.DockStyle.Fill; + this.btManual.Font = new System.Drawing.Font("맑은 고딕", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btManual.ForeColor = System.Drawing.Color.White; + this.btManual.GradientEnable = true; + this.btManual.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.btManual.GradientRepeatBG = false; + this.btManual.isButton = true; + this.btManual.Location = new System.Drawing.Point(575, 209); + this.btManual.MouseDownColor = System.Drawing.Color.Yellow; + this.btManual.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btManual.msg = null; + this.btManual.Name = "btManual"; + this.btManual.ProgressBorderColor = System.Drawing.Color.Black; + this.btManual.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btManual.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btManual.ProgressEnable = false; + this.btManual.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btManual.ProgressForeColor = System.Drawing.Color.Black; + this.btManual.ProgressMax = 100F; + this.btManual.ProgressMin = 0F; + this.btManual.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btManual.ProgressValue = 0F; + this.btManual.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.btManual.Sign = ""; + this.btManual.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btManual.SignColor = System.Drawing.Color.Yellow; + this.btManual.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btManual.Size = new System.Drawing.Size(282, 200); + this.btManual.TabIndex = 1; + this.btManual.Tag = "M"; + this.btManual.Text = "MANUAL"; + this.btManual.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btManual.TextShadow = true; + this.btManual.TextVisible = true; + this.btManual.Click += new System.EventHandler(this.btMix_Click); + // + // label1 + // + this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("맑은 고딕", 10F); + this.label1.ForeColor = System.Drawing.Color.Orange; + this.label1.Location = new System.Drawing.Point(12, 618); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(491, 19); + this.label1.TabIndex = 21; + this.label1.Text = "SID가 확인되지 않거나 1D로 만 이뤄진 라벨은 사용자 확인창이 표시 됩니다"; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.chkQtyM); + this.groupBox1.Controls.Add(this.chkVname); + this.groupBox1.Controls.Add(this.chkAutoConfirm); + this.groupBox1.Controls.Add(this.chkNew); + this.groupBox1.Controls.Add(this.chkUpdatePart); + this.groupBox1.Controls.Add(this.chkQty1); + this.groupBox1.Controls.Add(this.chkconfirm1); + this.groupBox1.Dock = System.Windows.Forms.DockStyle.Top; + this.groupBox1.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Bold); + this.groupBox1.ForeColor = System.Drawing.Color.WhiteSmoke; + this.groupBox1.Location = new System.Drawing.Point(9, 482); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(860, 128); + this.groupBox1.TabIndex = 20; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "옵션"; + // + // chkQtyM + // + this.chkQtyM.AutoSize = true; + this.chkQtyM.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Bold); + this.chkQtyM.ForeColor = System.Drawing.Color.White; + this.chkQtyM.Location = new System.Drawing.Point(375, 89); + this.chkQtyM.Name = "chkQtyM"; + this.chkQtyM.Size = new System.Drawing.Size(157, 24); + this.chkQtyM.TabIndex = 27; + this.chkQtyM.Text = "수량입력(+Return)"; + this.chkQtyM.UseVisualStyleBackColor = true; + // + // chkVname + // + this.chkVname.AutoSize = true; + this.chkVname.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Bold); + this.chkVname.ForeColor = System.Drawing.Color.White; + this.chkVname.Location = new System.Drawing.Point(375, 56); + this.chkVname.Name = "chkVname"; + this.chkVname.Size = new System.Drawing.Size(160, 24); + this.chkVname.TabIndex = 26; + this.chkVname.Text = "Vender Name 사용"; + this.chkVname.UseVisualStyleBackColor = true; + // + // chkAutoConfirm + // + this.chkAutoConfirm.AutoSize = true; + this.chkAutoConfirm.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Bold); + this.chkAutoConfirm.ForeColor = System.Drawing.Color.White; + this.chkAutoConfirm.Location = new System.Drawing.Point(17, 89); + this.chkAutoConfirm.Name = "chkAutoConfirm"; + this.chkAutoConfirm.Size = new System.Drawing.Size(93, 24); + this.chkAutoConfirm.TabIndex = 25; + this.chkAutoConfirm.Text = "자동 확정"; + this.chkAutoConfirm.UseVisualStyleBackColor = true; + // + // chkNew + // + this.chkNew.AutoSize = true; + this.chkNew.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Bold); + this.chkNew.ForeColor = System.Drawing.Color.White; + this.chkNew.Location = new System.Drawing.Point(375, 26); + this.chkNew.Name = "chkNew"; + this.chkNew.Size = new System.Drawing.Size(149, 24); + this.chkNew.TabIndex = 24; + this.chkNew.Text = "신규 Reel ID 부여"; + this.chkNew.UseVisualStyleBackColor = true; + // + // chkUpdatePart + // + this.chkUpdatePart.AutoSize = true; + this.chkUpdatePart.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Bold); + this.chkUpdatePart.ForeColor = System.Drawing.Color.White; + this.chkUpdatePart.Location = new System.Drawing.Point(17, 56); + this.chkUpdatePart.Name = "chkUpdatePart"; + this.chkUpdatePart.Size = new System.Drawing.Size(342, 24); + this.chkUpdatePart.TabIndex = 23; + this.chkUpdatePart.Text = "서버에서 PartNo 를 업데이트 합니다(SID기준)"; + this.chkUpdatePart.UseVisualStyleBackColor = true; + // + // chkQty1 + // + this.chkQty1.AutoSize = true; + this.chkQty1.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Bold); + this.chkQty1.ForeColor = System.Drawing.Color.White; + this.chkQty1.Location = new System.Drawing.Point(17, 29); + this.chkQty1.Name = "chkQty1"; + this.chkQty1.Size = new System.Drawing.Size(128, 24); + this.chkQty1.TabIndex = 13; + this.chkQty1.Text = "서버 수량 적용"; + this.chkQty1.UseVisualStyleBackColor = true; + // + // chkconfirm1 + // + this.chkconfirm1.AutoSize = true; + this.chkconfirm1.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Bold); + this.chkconfirm1.ForeColor = System.Drawing.Color.White; + this.chkconfirm1.Location = new System.Drawing.Point(184, 26); + this.chkconfirm1.Name = "chkconfirm1"; + this.chkconfirm1.Size = new System.Drawing.Size(143, 24); + this.chkconfirm1.TabIndex = 13; + this.chkconfirm1.Text = "최종 사용자 확인"; + this.chkconfirm1.UseVisualStyleBackColor = true; + // + // tableLayoutPanel3 + // + this.tableLayoutPanel3.ColumnCount = 2; + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel3.Controls.Add(this.btOK, 1, 0); + this.tableLayoutPanel3.Controls.Add(this.btCancle, 0, 0); + this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Bottom; + this.tableLayoutPanel3.Location = new System.Drawing.Point(9, 643); + this.tableLayoutPanel3.Name = "tableLayoutPanel3"; + this.tableLayoutPanel3.RowCount = 1; + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel3.Size = new System.Drawing.Size(860, 101); + this.tableLayoutPanel3.TabIndex = 12; + // + // btOK + // + this.btOK.BackColor = System.Drawing.Color.Green; + this.btOK.BackColor2 = System.Drawing.Color.Lime; + this.btOK.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btOK.BorderColor = System.Drawing.Color.Gray; + this.btOK.BorderColorOver = System.Drawing.Color.Gray; + this.btOK.BorderSize = new System.Windows.Forms.Padding(5); + this.btOK.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btOK.Cursor = System.Windows.Forms.Cursors.Hand; + this.btOK.Dock = System.Windows.Forms.DockStyle.Fill; + this.btOK.Font = new System.Drawing.Font("맑은 고딕", 30F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btOK.ForeColor = System.Drawing.Color.White; + this.btOK.GradientEnable = true; + this.btOK.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.btOK.GradientRepeatBG = false; + this.btOK.isButton = true; + this.btOK.Location = new System.Drawing.Point(433, 3); + this.btOK.MouseDownColor = System.Drawing.Color.Yellow; + this.btOK.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btOK.msg = null; + this.btOK.Name = "btOK"; + this.btOK.ProgressBorderColor = System.Drawing.Color.Black; + this.btOK.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btOK.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btOK.ProgressEnable = false; + this.btOK.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btOK.ProgressForeColor = System.Drawing.Color.Black; + this.btOK.ProgressMax = 100F; + this.btOK.ProgressMin = 0F; + this.btOK.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btOK.ProgressValue = 0F; + this.btOK.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.btOK.Sign = ""; + this.btOK.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btOK.SignColor = System.Drawing.Color.Yellow; + this.btOK.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btOK.Size = new System.Drawing.Size(424, 95); + this.btOK.TabIndex = 1; + this.btOK.Text = "시작"; + this.btOK.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btOK.TextShadow = true; + this.btOK.TextVisible = true; + this.btOK.Click += new System.EventHandler(this.btOK_Click); + // + // btCancle + // + this.btCancle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.btCancle.BackColor2 = System.Drawing.Color.Gray; + this.btCancle.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btCancle.BorderColor = System.Drawing.Color.Gray; + this.btCancle.BorderColorOver = System.Drawing.Color.Gray; + this.btCancle.BorderSize = new System.Windows.Forms.Padding(5); + this.btCancle.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btCancle.Cursor = System.Windows.Forms.Cursors.Hand; + this.btCancle.Dock = System.Windows.Forms.DockStyle.Fill; + this.btCancle.Font = new System.Drawing.Font("맑은 고딕", 30F, System.Drawing.FontStyle.Bold); + this.btCancle.ForeColor = System.Drawing.Color.White; + this.btCancle.GradientEnable = true; + this.btCancle.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.btCancle.GradientRepeatBG = false; + this.btCancle.isButton = true; + this.btCancle.Location = new System.Drawing.Point(3, 3); + this.btCancle.MouseDownColor = System.Drawing.Color.Yellow; + this.btCancle.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btCancle.msg = null; + this.btCancle.Name = "btCancle"; + this.btCancle.ProgressBorderColor = System.Drawing.Color.Black; + this.btCancle.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btCancle.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btCancle.ProgressEnable = false; + this.btCancle.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btCancle.ProgressForeColor = System.Drawing.Color.Black; + this.btCancle.ProgressMax = 100F; + this.btCancle.ProgressMin = 0F; + this.btCancle.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btCancle.ProgressValue = 0F; + this.btCancle.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.btCancle.Sign = ""; + this.btCancle.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btCancle.SignColor = System.Drawing.Color.Yellow; + this.btCancle.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btCancle.Size = new System.Drawing.Size(424, 95); + this.btCancle.TabIndex = 0; + this.btCancle.Text = "취소"; + this.btCancle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btCancle.TextShadow = true; + this.btCancle.TextVisible = true; + this.btCancle.Click += new System.EventHandler(this.btCancle_Click); + // + // cmbCustomer + // + this.cmbCustomer.Dock = System.Windows.Forms.DockStyle.Top; + this.cmbCustomer.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbCustomer.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.cmbCustomer.FormattingEnabled = true; + this.cmbCustomer.Location = new System.Drawing.Point(9, 5); + this.cmbCustomer.Name = "cmbCustomer"; + this.cmbCustomer.Size = new System.Drawing.Size(860, 45); + this.cmbCustomer.TabIndex = 23; + // + // panel1 + // + this.panel1.Dock = System.Windows.Forms.DockStyle.Top; + this.panel1.Location = new System.Drawing.Point(9, 50); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(860, 10); + this.panel1.TabIndex = 24; + // + // panel3 + // + this.panel3.Dock = System.Windows.Forms.DockStyle.Top; + this.panel3.Location = new System.Drawing.Point(9, 472); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(860, 10); + this.panel3.TabIndex = 25; + // + // fSelectJob + // + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 17F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.White; + this.ClientSize = new System.Drawing.Size(898, 803); + this.Controls.Add(this.panel2); + this.Controls.Add(this.panTitleBar); + this.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Margin = new System.Windows.Forms.Padding(4); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fSelectJob"; + this.Padding = new System.Windows.Forms.Padding(10); + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "수동조작"; + this.TopMost = true; + this.Load += new System.EventHandler(this.@__LoaD); + this.panTitleBar.ResumeLayout(false); + this.panel2.ResumeLayout(false); + this.panel2.PerformLayout(); + this.tableLayoutPanel4.ResumeLayout(false); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.tableLayoutPanel3.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + public System.Windows.Forms.Panel panTitleBar; + private arCtl.arLabel lbTitle; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; + private arCtl.arLabel btOK; + private arCtl.arLabel btCancle; + private System.Windows.Forms.CheckBox chkconfirm1; + private System.Windows.Forms.CheckBox chkQty1; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; + private arCtl.arLabel bt13; + private arCtl.arLabel bt31; + private arCtl.arLabel btRe; + private arCtl.arLabel bt33; + private arCtl.arLabel bt61; + private arCtl.arLabel btManual; + private System.Windows.Forms.CheckBox chkUpdatePart; + private System.Windows.Forms.CheckBox chkNew; + private System.Windows.Forms.CheckBox chkAutoConfirm; + private System.Windows.Forms.CheckBox chkVname; + private System.Windows.Forms.CheckBox chkQtyM; + private System.Windows.Forms.Panel panel3; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.ComboBox cmbCustomer; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fSelectJob.cs b/Handler/Project_form2/Dialog/fSelectJob.cs new file mode 100644 index 0000000..17462ad --- /dev/null +++ b/Handler/Project_form2/Dialog/fSelectJob.cs @@ -0,0 +1,390 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fSelectJob : Form + { + public fSelectJob() + { + InitializeComponent(); + this.KeyPreview = true; + this.FormClosing += __Closing; + this.lbTitle.MouseMove += LbTitle_MouseMove; + this.lbTitle.MouseUp += LbTitle_MouseUp; + this.lbTitle.MouseDown += LbTitle_MouseDown; + this.KeyDown += (s1, e1) => + { + if (e1.KeyCode == Keys.Escape) this.Close(); + }; + + if (System.Diagnostics.Debugger.IsAttached == false) + { + //// = new Dialog.fBlurPanel(); + //fb.Show(); + } + + Pub.flag.set(eFlag.SCR_JOBSELECT, true, "selectjbo"); + Pub.dio.IOValueChanged += Dio_IOValueChanged; + + + //this.tableLayoutPanel1.Enabled = false; + // this.tableLayoutPanel2.Enabled = false; + } + + private void __LoaD(object sender, EventArgs e) + { + //210121 -101SID + this.chkQty1.Checked = Pub.uSetting.Option_QtyUpdate1; + // this.chkForce1.Checked = Pub.uSetting.Option_printforce1; + this.chkUpdatePart.Checked = Pub.uSetting.Option_PartUpdate; + this.chkconfirm1.Checked = Pub.uSetting.Option_Confirm1; + this.chkAutoConfirm.Checked = Pub.uSetting.Option_AutoConfirm; + this.chkVname.Checked = Pub.uSetting.Option_vname; + //this.chkfixprint1.Checked = Pub.uSetting.Option_FixPrint1; + //PrintPos1 = Pub.uSetting.Option_PrintPos1; + //DisplayPrintPos(PrintPos1); + + + //작업형태를 다시 시작해준다. - 210329 + Func_SelectJobType(Pub.Result.JobType2); + + //커스터머 목록을 선택 + cmbCustomer.Items.Clear(); + cmbCustomer.Items.Add("[0000] 선택안함"); + if (Pub.setting.OnlineMode) + { + var tacustinfo = new DataSet1TableAdapters.Component_Reel_CustInfoTableAdapter(); + var dtcustinfo = tacustinfo.GetData(); + foreach (var dr in dtcustinfo.Where(t => string.IsNullOrEmpty(t.name) == false)) + { + cmbCustomer.Items.Add($"[{dr.code}] {dr.name}"); + } + } + cmbCustomer.SelectedIndex = 0; + + + //210122 -103SID + //this.chkQty3.Checked = Pub.uSetting.Option_QtyUpdate3; + //this.chkForce3.Checked = Pub.uSetting.Option_printforce3; + //this.chkconfirm3.Checked = Pub.uSetting.Option_Confirm3; + //this.chkfixprint3.Checked = Pub.uSetting.Option_FixPrint3; + //PrintPos3 = Pub.uSetting.Option_PrintPos3; + //DisplayPrintPos(PrintPos3, 3); + + } + + + private void Dio_IOValueChanged(object sender, arDev.AzinAxt.DIO.IOValueEventArgs e) + { + if (Pub.setting.Enable_ButtonStart) + { + var pin = (eDIName)e.ArrIDX; + if (Util_DO.GetIOInput(pin) == true) + { + if (pin == eDIName.BUT_STARTF) this.Confirm(); + else if (pin == eDIName.BUT_STOPF || pin == eDIName.BUT_RESETF) this.Cancel(); + } + } + } + + + void Confirm() + { + if (this.InvokeRequired) + this.BeginInvoke(new MethodInvoker(Confirm), null); + else + { + this.Validate(); + + if (this.ModeData.isEmpty() || this.ModeData == "--") + { + Util.MsgE("작업 방식이 선택되지 않았습니다"); + return; + } + if (chkAutoConfirm.Checked && this.chkconfirm1.Checked) + { + Util.MsgE("자동확정과 / 사용자 확인 옵션은 동시에 사용할 수 없습니다"); + return; + } + if (this.ModeData == "--") + { + Util.MsgE("사용할 수 없는 작업방법 입니다"); + return; + } + + + //커스터머정보 확인 + Pub.Result.CustomerRule.Clear(); + var code = cmbCustomer.Text.Substring(1, 4); + var name = cmbCustomer.Text.Substring(6).Trim(); + if (Pub.setting.OnlineMode) + { + var taRule = new DataSet1TableAdapters.Component_Reel_CustRuleTableAdapter(); + var dtRule = taRule.GetData(code); + foreach (var dr in dtRule) + { + if (dr.pre.isEmpty() == false || dr.pos.isEmpty() == false) + { + Pub.Result.CustomerRule.Add(new CCustRule + { + Code = dr.code, + Name = name, + Expression = dr.exp, + Len = dr.len, + Post = dr.pos, + Pre = dr.pre, + }); ; + } + } + } + //if (chkfixprint1.Checked && this.PrintPos1.isEmpty()) + //{ + // Util.MsgE("프린트 위치 고정옵션이 켜져 있으나 위치가 지정되지 않았습니다"); + // return; + //} + + //if (chkfixprint3.Checked && this.PrintPos3.isEmpty()) + //{ + // Util.MsgE("103 SID 의 프린트 위치를 지정하세요"); + // return; + //} + + //작업형태 지정 + Pub.Result.JobType2 = this.ModeData; + Pub.Result.JobFirst = true; //처음시작 220117 + + //사용자 정보에 저장한다. 210219 - a모드별로 저장한다. + Pub.uSetting.Xml.set_Data("M" + ModeData, "qtysync", chkQty1.Checked ? "1" : "0"); + Pub.uSetting.Xml.set_Data("M" + ModeData, "qtyman", chkQtyM.Checked ? "1" : "0"); + Pub.uSetting.Xml.set_Data("M" + ModeData, "confirm", chkconfirm1.Checked ? "1" : "0"); + Pub.uSetting.Xml.set_Data("M" + ModeData, "partsync", chkUpdatePart.Checked ? "1" : "0"); + Pub.uSetting.Xml.set_Data("M" + ModeData, "newid", chkNew.Checked ? "1" : "0"); + Pub.uSetting.Xml.set_Data("M" + ModeData, "vname", chkVname.Checked ? "1" : "0"); + Pub.uSetting.Xml.set_Data("M" + ModeData, "autoconf", this.chkAutoConfirm.Checked ? "1" : "0"); + + Pub.uSetting.Save(); + + //옵션사항 설정 210121 + //if (ModeData == "DRY") Pub.setting.DryRun = true; + Pub.Result.Option_vname = chkVname.Checked; + Pub.Result.Option_Confirm1 = chkconfirm1.Checked; + Pub.Result.Option_QtyUpdate1 = chkQty1.Checked; + Pub.Result.Option_QtyUpdateM = chkQtyM.Checked; + Pub.Result.Option_partUpdate = chkUpdatePart.Checked; + Pub.Result.Option_NewReelID = chkNew.Checked; + Pub.Result.Option_AutoConf = chkAutoConfirm.Checked; + this.DialogResult = DialogResult.OK; + } + + } + void Cancel() + { + if (this.InvokeRequired) + this.BeginInvoke(new MethodInvoker(Cancel), null); + else + this.Close(); + } + + void __Closing(object sender, FormClosingEventArgs e) + { + // if (fb != null) fb.Dispose(); + Pub.dio.IOValueChanged -= Dio_IOValueChanged; + Pub.flag.set(eFlag.SCR_JOBSELECT, false, "selectjbo"); + } + + public string GetCntStr(uint cnt) + { + if (cnt > 1000000) + { + return (cnt * 1.0 / 1000000.0).ToString("N1") + "M"; + + } + else if (cnt > 1000) + { + return (cnt * 1.0 / 1000).ToString("N1") + "K"; + } + else return cnt.ToString(); + } + + #region "Mouse Form Move" + + private Boolean fMove = false; + private Point MDownPos; + private void LbTitle_MouseMove(object sender, MouseEventArgs e) + { + if (fMove) + { + Point offset = new Point(e.X - MDownPos.X, e.Y - MDownPos.Y); + this.Left += offset.X; + this.Top += offset.Y; + offset = new Point(0, 0); + } + } + private void LbTitle_MouseUp(object sender, MouseEventArgs e) + { + fMove = false; + } + private void LbTitle_MouseDown(object sender, MouseEventArgs e) + { + MDownPos = new Point(e.X, e.Y); + fMove = true; + } + + #endregion + + private void tbClose_Click_1(object sender, EventArgs e) + { + this.Close(); + } + + private void btOK_Click(object sender, EventArgs e) + { + Confirm(); + } + + private void btCancle_Click(object sender, EventArgs e) + { + Cancel(); + } + + + + private void arLabel1_Click(object sender, EventArgs e) + { + + + + } + + private void arLabel5_Click(object sender, EventArgs e) + { + var lbl = sender as arCtl.arLabel; + var lblValue = int.Parse(lbl.Tag.ToString()); + + } + + + private void arLabel18_Click(object sender, EventArgs e) + { + + } + + private void checkBox4_CheckedChanged(object sender, EventArgs e) + { + //선택에 따라서 라디오 박스 업데이트 + //tableLayoutPanel1.Enabled = chkfixprint1.Checked; + var chk = sender as CheckBox; + //label26.Text = this.chkfixprint1.Checked ? "부착위치(지정)" : "부착위치(자동)"; + + } + + + + //string PrintPos1 = string.Empty; + //string PrintPos3 = string.Empty; + private void pb7_Click(object sender, EventArgs e) + { + //부착위치 + var lb = sender as Label; + //PrintPos1 = lb.Tag.ToString(); + //DisplayPrintPos(PrintPos1); + //this.radO1.Checked = false; //직접선택했으니 해제 한다 + //label26.Text = this.chkfixprint1.Checked ? "부착위치(지정)" : "부착위치(자동)"; + } + private void label6_Click(object sender, EventArgs e) + { + //부착위치 + var lb = sender as Label; + //PrintPos3 = lb.Tag.ToString(); + //DisplayPrintPos(PrintPos3, 3); + //this.radO3.Checked = false; //직접선택했으니 해제 한다 + + //label10.Text = this.chkfixprint3.Checked ? "부착위치(지정)" : "부착위치(자동)"; + } + //void DisplayPrintPos(string v) + //{ + // Label[] lbs = null; + // lbs = new Label[] { pb7, pb8, pb9, pb4, pb5, pb6, pb1, pb2, pb3 }; + // //else lbs = new Label[] { pc7, pc8, pc9, pc4, pc5, pc6, pc1, pc2, pc3 }; + + // foreach (Label item in lbs) + // if (item.Tag.ToString() == v) item.BackColor = Color.Blue; + // else item.BackColor = Color.FromArgb(64, 64, 64); + //} + + private void btMix_Click(object sender, EventArgs e) + { + var lb = sender as arCtl.arLabel; + Func_SelectJobType(lb.Tag.ToString()); + } + + arCtl.arLabel[] btsMOD; + string ModeData = string.Empty; + void Func_SelectJobType(string mode) + { + ModeData = mode; + + if (btsMOD == null) + btsMOD = new arCtl.arLabel[] { bt33, bt61, bt13, bt31, btRe, btManual }; + + foreach (var lb in btsMOD) + { + if (lb.Tag.ToString() == mode) + { + lb.BackColor = Color.Green; + lb.BackColor2 = Color.Lime; + } + else + { + lb.BackColor = Color.FromArgb(0, 0, 0); + lb.BackColor2 = Color.FromArgb(150, 150, 150); + } + } + + //각 모드별 옵션값 확인 + if (mode == "M") //manual + { + this.chkQty1.Checked = false; + this.chkconfirm1.Checked = true; + this.chkNew.Checked = false; + this.chkUpdatePart.Checked = false; + this.chkAutoConfirm.Checked = false; + this.chkQtyM.Checked = false; + groupBox1.Enabled = true; + } + else if (mode == "DRY") + { + this.chkQty1.Checked = false; + this.chkconfirm1.Checked = false; + this.chkNew.Checked = false; + this.chkUpdatePart.Checked = false; + this.chkAutoConfirm.Checked = false; + this.chkQtyM.Checked = false; + groupBox1.Enabled = false; + } + else + { + this.chkQty1.Checked = Pub.uSetting.Xml.get_Data("M" + ModeData, "qtysync") == "1"; + this.chkUpdatePart.Checked = Pub.uSetting.Xml.get_Data("M" + ModeData, "partsync") == "1"; + this.chkQtyM.Checked = Pub.uSetting.Xml.get_Data("M" + ModeData, "qtyman") == "1"; + this.chkconfirm1.Checked = Pub.uSetting.Xml.get_Data("M" + ModeData, "confirm") == "1"; + //this.PrintPos1 = Pub.uSetting.Xml.get_Data("M" + ModeData, "printpos"); + this.chkNew.Checked = Pub.uSetting.Xml.get_Data("M" + ModeData, "newid") == "1"; + this.chkAutoConfirm.Checked = Pub.uSetting.Xml.get_Data("M" + ModeData, "autoconf") == "1"; + this.chkVname.Checked = Pub.uSetting.Xml.get_Data("M" + ModeData, "vname") == "1"; + this.groupBox1.Enabled = true; + } + + //DisplayPrintPos(this.PrintPos1); + //메뉴얼은 확인창을 꼭 사용한다 + } + } +} diff --git a/Handler/Project_form2/Dialog/fSelectJob.resx b/Handler/Project_form2/Dialog/fSelectJob.resx new file mode 100644 index 0000000..c37210f --- /dev/null +++ b/Handler/Project_form2/Dialog/fSelectJob.resx @@ -0,0 +1,377 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAMAMDAAAAEAIACoJQAANgAAACAgAAABACAAqBAAAN4lAAAQEAAAAQAgAGgEAACGNgAAKAAAADAA + AABgAAAAAQAgAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgaZsA5C1 + fwOTuIIDkbaAA5K3gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3 + gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3gQOSt4EDkreBA5K3 + gQOSt4EDkreBA5G2gAOTuIIDkLV/A4GmbAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAfaJmBAAAAAB6n2IdfaJmkoescoeIrnSDh61zhIitc4SIrXOEiK1zhIitc4SIrXOEiK1zhIit + c4SIrXOEiK1zhIitc4SIrXOEiK1zhIitc4SIrXOEiK1zhIitc4SIrXOEiK1zhIitc4SIrXOEiK1zhIit + c4SIrXOEiK1zhIitc4SIrXOEiK1zhIitc4SIrXOEiK1zhIetc4SIrnSDh6xyh32iZpJ6n2IdAAAAAH2i + ZgQAAAAAAAAAAAAAAAAAAAAAiKx0BwAAAACApWk1ia52/6DElP+kyJn9osaW/qLGl/+ixpf/osaX/6LG + l/+ixpf/osaX/6LGl/+ixpf/osaX/6LGl/+ixpf/osaX/6LGl/+ixpf/osaX/6LGl/+ixpf/osaX/6LG + l/+ixpf/osaX/6LGl/+ixpf/osaX/6LGl/+ixpf/osaX/6LGl/+ixpf/osaX/6LGlv6kyJn9oMSU/4mu + dv+ApWk1AAAAAIisdAcAAAAAAAAAAAAAAAAAAAAAl7uIBgAAAACIrXQrmr6M47/ivf3E58P8weS/+sLk + wPvC5MD7wuTA+8LkwPvC5MD7wuTA+8LkwPvC5MD7wuTA+8LkwPvC5MD7wuTA+8LkwPvB5MD7wuTA+8Lk + wPvC5MD7wuTA+8LkwPvC5MD7wuTA+8LkwPvC5MD7wuTA+8LkwPvC5MD7wuTA+8LkwPvC5MD7wuTA+8Hk + v/rE58P8v+K9/Zq+jOOIrXQrAAAAAJe7iAYAAAAAAAAAAAAAAAAAAAAAlLiEBgAAAACHq3Itl7uH67nc + tf++4bz+u964/bzfuf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzf + uf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzf + uf6837n+vN+5/rveuP2+4bz+udy1/5e7h+uHq3ItAAAAAJS4hAYAAAAAAAAAAAAAAAAAAAAAlLiEBgAA + AACHq3Isl7uI67rdtv+/4r3/vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzf + uf694Lr+vN+5/r3guv694Lr+vN+5/rzfuf694Lr+vN+5/rzfuf6837n+vN+5/rzfuf6837n+vN+5/rzf + uf6837n+vN+5/rzfuf6837n+vN+5/rzfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJS4hAYAAAAAAAAAAAAA + AAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/73guv+94Lr/veC6/73g + uv+837n/veC6/73guv+73rf/weO//7ndtf+z163/weTA/7zfuf+837n/veC6/7zfuf+94Lr/veC6/73g + uv+94Lr/veC6/73guv+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5 + hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/73g + uv+94Lr/veC6/7zfuf+94Lr/vN+5/7veuP/C5MH/stet/6bHm/+oxpz/qc6h/7/ivf++4bz/u964/73g + uv+837n/veC6/73guv+94Lr/veC6/73guv+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7 + iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3g + uv+94Lr/veC6/73guv+94Lr/vN+5/73guv+837n/vd+5/8Djvv+02bD/p8ic/8LTt//R3cn/q8ef/67R + p/+94bv/v+K9/7veuP+94Lr/vN+5/73guv+94Lr/veC6/73guv+94Lr/veC6/73guv+94Lr/veC6/7zf + uf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rd + tv+/4r3/vN+5/r3guv+94Lr/veC6/73guv+837n/veC6/7zfuf+94Lr/vuG8/7fasv+mx5v/xte8//b4 + 9P/9/f3/3ObW/6zHoP+u0qf/veG7/77hvP+837n/veC6/73guv+94Lr/veC6/73guv+94Lr/veC6/73g + uv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAA + AACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/73guv+94Lr/vN+5/73guv++4bz/uNu0/6XH + mv/I2b7/9Pfy/////////////f39/9zm1v+tyKD/rtGm/7/ivf+94Lr/vN+5/7zfuf+94Lr/veC6/73g + uv+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAA + AAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/7zfuf+94Lr/u964/8Hj + v/+22bH/o8SX/83exv/2+fX///////39/P/+/f3///////7+/f/h69z/rsmh/6nNn//C5cH/vN+4/7zf + uf+94Lr/vN+5/73guv+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5 + hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/73g + uv+837j/wuTA/7LXrf+nx5z/zNvE//b49P//////+/v6/8bWvP+uxaH/7vLr//7+/v/+////4Oja/7LK + pv+ozJ//wuXB/73guv+837n/veC6/7zfuf+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7 + iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3g + uv+94Lr/vN+5/7zfuf++4Lv/t9uz/6rLoP/C1Lj//Pz7///////4+ff/zNvF/6fInP+kyJr/uM6t/+zw + 6P/+/v7///7//+Do2v+yy6f/qc2h/7/ivf++4bz/u964/73guv+837n/veC6/73guv+94Lr/veC6/7zf + uf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rd + tv+/4r3/vN+5/r3guv+94Lr/vN+5/7zfuf++4Lv/t9uz/6rKn//C07j//v7+//z8+//N28T/qMec/7ba + sv/B47//p8qd/7nOrv/q8Of///////7+/v/g6dv/rcih/63Rpf+94bv/v+K9/7veuP+94Lr/vN+5/73g + uv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAA + AACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/73guv+73rj/wuXB/7HVq/+pyJ7/z97I/9Pg + zf+ryZ//stas/8LkwP+94Lr/vuG8/6PGmP+90rT/6/Dn///////8/fv/3+rb/6/Ko/+u0ab/vOC5/7/h + vP+837n/veC6/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAA + AAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/7zfuf+94Lr/u964/7/j + vf+53LX/o8SY/6PFmP+53LX/wOO+/7veuP+837n/veC6/8Djvv+lyZv/uc+v/+rv5////////f79/+bs + 4f+tx6H/rNCl/8Djvv+837n/vN+5/73guv+94Lr/veC6/7zfuf6/4r3/ut22/5e7iOuHq3IsAAAAAJW5 + hQYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3Isl7uI67rdtv+/4r3/vN+5/r3guv+94Lr/veC6/73g + uv+94Lr/vN+5/73guv+84Lr/ut22/7rdtv+84Lr/veC6/7zfuf+837n/veC6/73guv+/4rz/p8ue/7bO + q//r8ej///////7+/v/l7OH/ssun/6jNoP/B47//vN+5/7zfuf+94Lr/veC6/7zfuf6/4r3/ut22/5e7 + iOuHq3IsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAlLiEBgAAAACHq3Itl7uI67rdtv+/4r3/vN+5/r3g + uv+94Lr/veC6/73guv+837n/veC6/7zfuf+94Lr/vuG8/77hvP+94Lr/vN+5/73guv+94Lr/vN+5/7zf + uf+/4bz/vOC5/6jLnv+zy6j/7/Ps///////09vL/tcup/6PImf/C5MD/vN+5/7zfuf+94Lr/veC6/7zf + uf6/4r3/ut22/5e7iOuHq3ItAAAAAJS4hAYAAAAAAAAAAAAAAAAAAAAAlbmFBgAAAACHq3MsmLuI57rd + tv+/4r3/vN+5/r3guv+94Lr/veC6/73guv+94Lr/vN+5/73guv+837n/vN+5/7zfuf+837n/veC6/7zf + uf+837n/veC6/73guv+73rj/weO//7ndtf+qzKH/uc6t/9bhzv/A07b/sM+n/7fbs/++4Lv/vN+5/7zf + uf+94Lr/veC6/7zfuf6/4r3/ut22/5i7iOeHq3MsAAAAAJW5hQYAAAAAAAAAAAAAAAAAAAAAk7eDBgAA + AACGqnEwlbmG9rrdtv+/4r3+vN+5/r3guv+94Lr/veC6/73guv+94Lr/veC6/73guv+94Lr/veC6/73g + uv+94Lr/veC6/73guv+94Lr/veC6/7zfuf+94Lr/u963/8Djvv+94Lr/qMqe/6vHnv+nyJv/ttqy/8Hk + v/+83rj/veC6/73guv+94Lr/veC6/7zfuf6/4r3+ut22/5W5hvaGqnEwAAAAAJO3gwYAAAAAAAAAAAAA + AAAAAAAAkraCBwAAAACFqnI1lLiF/7nctf+/4r39vN+4/r3guv+94Lr/veC6/73guv+94Lr/veC6/73g + uv+94Lr/veC6/73guv+837n/veC6/7zfuf+837n/vN+5/7zfuf+837n/veC6/7veuP++4Lv/wOK+/7HV + q/+94Lr/v+K9/7veuP+94Lr/vN+5/73guv+94Lr/veC6/7zfuP6/4r39udy1/5S4hf+FqnI1AAAAAJK2 + ggcAAAAAAAAAAAAAAAAAAAAAlLmFBwAAAACIrXU0lruI/7ndtv+/4r39vN+5/r3guv+94Lr/veC6/73g + uv+94Lr/veC6/73guv+94Lr/veC6/73guv+84Lr/vN+5/73guv+94Lr/veC6/73guv+94Lr/veC6/73g + uv+837n/vN+5/73gu/+837n/vN+5/73guv+837n/veC6/73guv+94Lr/veC6/7zfuf6/4r39ud22/5a7 + iP+IrXU0AAAAAJS5hQcAAAAAAAAAAAAAAAAAAAAAlLmFBwAAAACHrXU0lruI/7ndtv+/4r39vN+5/r3g + uv+94Lr/veC6/73guv+94Lr/veC6/73guv+94Ln/veC6/73guv+837n/vN+5/7zfuf+94Lv/vuG8/77h + vP+94Lv/vN+5/7zfuf+837n/veC6/73guv+94Lr/vN+5/73guv+94Lr/veC6/73guv+94Lr/veC6/7zf + uf6/4r39ud22/5a7iP+HrXU0AAAAAJS5hQcAAAAAAAAAAAAAAAAAAAAAk7iEBwAAAACHrXU0lruH/7nd + tv+/4r39vN+5/r3guv+94Lr/veC6/73guv+94Lr/veC6/7zfuf+94Lr/vN+5/7zfuf+837n/weS//7zf + uf+sz6P/oMWW/6DFlv+sz6T/vN+5/8Hkv/+837n/vN+5/7zfuf+94Lr/veC6/7zfuf+94Lr/veC6/73g + uv+94Lr/veC6/7zfuf6/4r39ud22/5a7h/+HrXU0AAAAAJO4hAcAAAAAAAAAAAAAAAAAAAAAlLmFBwAA + AACHrXU0lruH/7ndtv+/4r39vN+5/r3guv+94Lr/veC6/73guv+94Lr/veC6/73guv+837n/veC6/77h + u/+63bf/qMyg/5vBkP+awpD/mMGP/5fBj/+awpH/m8GQ/6jMn/+63rf/vuG7/73guv+837n/veC6/73g + uv+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r39ud22/5a7h/+HrXU0AAAAAJS5hQcAAAAAAAAAAAAA + AAAAAAAAlLmFBwAAAACHrXU0lruH/7ndtv+/4r39vN+5/r3guv+94Lr/veC6/73guv+94Lr/vN+5/7zf + uf+837n/veC5/7rdtv+kyJr/krmF/5G7h/+ZxJL/n8qa/57Kmv+ZxJL/kbqG/5K5hf+kyZr/ut23/7zg + uf+84Ln/vN+5/7zfuf+94Lr/veC6/73guv+94Lr/veC6/7zfuf6/4r39ud22/5a7h/+HrXU0AAAAAJS5 + hQcAAAAAAAAAAAAAAAAAAAAAk7iEBwAAAACHrXU0lruH/7nctf+/4r39u9+4/rzfuf+837n/vN+5/7zf + uf+837n/vN+5/7zfuP++4bv/vN+5/6XJm/+QuIL/mMOR/6POoP+eyZn/nciY/57ImP+eyZn/o86g/5jD + kf+QuIP/psmd/7zfuf++4bv/vN+4/7zfuf+837n/vN+5/7zfuf+837n/vN+5/7vfuP6/4r39udy1/5a7 + h/+HrXU0AAAAAJO4hAcAAAAAAAAAAAAAAAAAAAAAlLmFBwAAAACIrXU0lruI/7rdtv/A4779vN+5/r3g + uv+94Lr/veC6/73guv+94Lr/veC6/73guv/A4r7/uNu0/4+1gP+Yw5H/oMyd/53Hl/+dyJj/nciY/53I + mP+dyJj/nceX/6DMnf+Yw5H/j7WA/7nbtf/A4r7/vOC5/73guv+94Lr/veC6/73guv+94Lr/veC6/7zf + uf7A4779ut22/5a7iP+IrXU0AAAAAJS5hQcAAAAAAAAAAAAAAAAAAAAAlLmGBwAAAACIrnY0l7yJ/7ve + uP/B5MD9veG7/r7hvP++4bz/vuG8/77hvP++4bz/vuG7/8Djvv+837n/qc6h/5S9iv+axZT/n8qb/53I + mP+eyZn/nsmZ/57Jmf+eyZn/nciY/5/Km/+axZT/lLyJ/6rOof+837n/wOO+/77hu/++4bz/vuG8/77h + vP++4bz/vuG8/77hu/7B5MD9u964/5e8if+IrnY0AAAAAJS5hgcAAAAAAAAAAAAAAAAAAAAAh6tyBwAA + AACApGk1iKx0/53BkP+hxZX9n8OT/6DElP+gxJT/oMSU/6DElP+gxJT/n8OT/6LGl/+avo3/i7F7/5nE + kv+eyZn/nciY/53ImP+dyJj/nsmZ/57Jmf+dyJj/nciY/53ImP+eyZn/mcOS/4uxev+avo3/osaX/5/D + k/+gxJT/oMSU/6DElP+gxJT/oMSU/5/Dk/+gxJX9ncGQ/4isdP+ApGk1AAAAAIercwcAAAAAAAAAAAAA + AAAAAAAAia12BgAAAAB9oWYtjK957qrOov+iyZr+mMCO/pjBj/6YwY//mMGP/5jBj/+YwY//mMGP/5nC + kP+Wv4z/kruI/5zHl/+eyZn/nciY/53ImP+eyZn/nsmZ/57Jmf+eyZn/nciY/53ImP+eyZr/nMiX/5K7 + h/+Wv4z/mcKQ/5jBj/+YwY//mMGP/5jBj/+YwY//mMGP/pjBjv6jypr+qs6i/4yvee59oWUtAAAAAImt + dQYAAAAAAAAAAAAAAAAAAAAAjbJ8BQAAAAB1mlwhkraCwr/ivf613LT/os2e/Z7Kmv+gy5z/n8ub/5/L + m/+fy5v/n8ub/5/Lm/+gy5z/ocye/57Jmf+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+dyJj/nsmZ/6HMnv+gy5z/n8ub/5/Lm/+fy5v/n8ub/5/Lm/+gy5z/nsqa/6LNnv223LT/v+K9/pK2 + gcJ1mlwhAAAAAI6yfAUAAAAAAAAAAAAAAAAAAAAAgadsAwAAAABTfC8Phqxzfq7Sp/W427T/p8+i/JrG + lf6eyZn/nciY/53ImP+dyJj/nciY/53ImP+dyJj/nciY/53ImP+eyZn/nciY/57JmP+eyZn/nsmZ/57J + mf+eyZn/nsmY/53ImP+eyZn/nciY/53Il/+dyJj/nciY/53ImP+dyJj/nciY/53ImP+eyZn/msaV/qfP + ovy427P/rtGm9YetdH1UfDIPAAAAAIKobQMAAAAAAAAAAAAAAAAAAAAAAAAAANT33wEAAAAAfKFlIpe7 + itm32bH/r9ar/ZvGlf6eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/m8aV/q/Wq/232bH/lruH2XimZiEAAAAA1efOAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIyw + ewMAAAAAdZpeComtd7S016/9tty0/6HLnP2dyJj+nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+dyJj+ocuc/bfdtP+01679ia11tXWaWwoAAAAAjLB5AwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAIOpcAIAAAAAWYE6BX6kaXyv0afuut23/6nRpfubx5b/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+bx5b/qdGk+7rdtv+u0abugKRqeluAOwUAAAAAhalxAgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHebWySbv47GtNau/7LYsPubx5b+nsmZ/p7I + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciZ/57Jmf6bx5b+stiv+7PWrf+bv43FeppfIwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMs3wBAAAAAAAAAACDq3GgrNGl/7vg + uf6gypv9nsmZ/53ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciY/57Jmf+gypv9u+C5/q3Q + pf+FqXCfAAAAAAAAAACOsnwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIq3IBAAAAAAAA + AAB7oWR0qM2f6Lzguf+q0aX8nciX/53ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciY/53I + l/+q0qX8u+C5/6nNoOd8oGZzAAAAAAAAAACIqnMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABojlAoncGRuLPWrf+02rH6nMeX/pzIl/6dyJj+nciY/p3ImP6dyJj+nciY/p3I + mP6dyJj+nciY/p3ImP6dyJj+nciY/p3ImP6dyJj+nciY/p3ImP6dyJj+nciY/p3ImP6dyJj+nciY/p3I + mP6dyJj+nMiX/pzHl/602rH6s9at/53BkbhpjEsnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJm6iAIAAAAAh6x0f6bJm/+74Lr8oMqc/pvHlv6bx5b+nMeW/pzH + lv6cx5b+nMeW/pzHlv6cx5b+nMeW/pzHlv6cx5b+nMeW/pzHlv6cx5b+nMeW/pzHlv6cx5b+nMeW/pzH + lv6cx5b+nMeW/pzHlv6bx5b+m8eW/qDLnP674Lr8psmb/4esdH8AAAAAmbqIAgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIisdQIAAAAAd5xfZaHElebF6MX8u9+5+brf + uPq637j6ut+4+rrfuPq637j6ut+4+rrfuPq637j6ut+4+rrfuPq637j6ut+4+rrfuPq637j6ut+4+rrf + uPq637j6ut+4+rrfuPq637j6ut+4+rrfuPq637j6ut+4+rvgufnF6MX8ocSV5necXmQAAAAAiKx0AgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH+obAEAAAAAapRRJpG3 + gamixpb/qMuf/KnMn/6py5//qcuf/6nLn/+py5//qcuf/6nLn/+py5//qcuf/6nLn/+py5//qcuf/6nL + n/+py5//qcuf/6nLn/+py5//qcuf/6nLn/+py5//qcuf/6nLn/+py5//qcyf/qjLn/yixpb/kbaBqGuS + UCUAAAAAgKdsAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACet4sCAAAAAH2lZ0KGq3KVjrN+ho6yfYiNsn2IjrJ9iI6yfYiOsn2IjrJ9iI6yfYiOsn2IjrJ9iI6y + fYiOsn2IjrJ9iI6yfYiOsn2IjrJ9iI6yfYiOsn2IjrJ9iI6yfYiOsn2IjrJ9iI6yfYiNsn2IjrJ9iI6z + foaGq3KVfqRoQgAAAACWuoQCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIatcgGQtX8DmLyKA5i8igOXu4kDmLyKA5i8 + igOYvIoDmLyKA5i8igOYvIoDmLyKA5i8igOYvIoDmLyKA5i8igOYvIoDmLyKA5i8igOYvIoDmLyKA5i8 + igOYvIoDmLyKA5i8igOXu4kDmLyKA5i8igOQtX8DhqxzAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///////wAA////////AAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgA + AAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAf + AAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgA + AAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAf + AAD4AAAAAB8AAPgAAAAAHwAA+AAAAAAfAAD4AAAAAB8AAPgAAAAAHwAA/AAAAAA/AAD8AAAAAD8AAPwA + AAAAPwAA/gAAAAB/AAD+AAAAAH8AAP4AAAAAfwAA/wAAAAD/AAD/AAAAAP8AAP+AAAAB/wAA/4AAAAH/ + AAD/gAAAAf8AAP/AAAAD/wAA////////AAD///////8AACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/pGgBAAAAAHugZE6DqG1jhKpvW4Spbl2EqW5dhKluXYSp + bl2EqW5dhKluXYSpbl2EqW5dhKluXYSpbl2EqW5dhKluXYSpbl2EqW5dhKluXYSpbl2EqW5dhKluXYSp + bl2EqW5dhKpvW4OobWN7oGROAAAAAH+kaAEAAAAAAAAAAJq+jQQAAAAAjbF7vqjLnv+s0KP7qs6h/qvO + ov+rzqL/q86i/6vOov+rzqL/q86i/6vOov+qzqL/qs6i/6vOov+rzqL/q86i/6vOov+rzqL/q86i/6vO + ov+rzqL/q86i/6rOof6s0KP7qMue/42xe74AAAAAmr6NBAAAAAAAAAAArM+jBAAAAACZvYqtveC6/8Ll + wfjA4777weO//MDjv/vA47/7weO/+8Djv/vB47/7wOO++8Hjv/vA4777weO/+8Hjv/vB47/7wOO/+8Dj + v/vA47/7wOO/+8Djv/vB47/8wOO++8Llwfi94Lr/mb2KrQAAAACsz6MEAAAAAAAAAACny54EAAAAAJa6 + hrK427P/veC6+7ret/673rj+u964/rveuP673rf+u964/rrdt/6937r+u9+4/r3guv673rj+u963/rve + t/673rj+u964/rveuP673rj+u964/rveuP663rf+veC6+7jbs/+WuoayAAAAAKfLngQAAAAAAAAAAKjM + nwQAAAAAlrqHsbnctf++4bz7vN+5/r3guv+94Lr+veC6/7zfuf+73rj/vuG8/7ndtv+oyp7/rdCl/77i + vP+837r/vN+5/7zfuv+94Lr/veC6/73guv+94Lr+veC6/7zfuf6+4bz7udy1/5a6h7EAAAAAqMyfBAAA + AAAAAAAAqMyfBAAAAACWuoexudy0/77hu/u837n+veC6/7zfuf6837n+u964/r/hvP643bX+qsqg/tXf + zf7C1Lj+q8+j/r/ivf6837n+vN+5/r3guv6837n+vN+5/rzfuf694Lr/vN+5/r7hu/u53LT/lrqHsQAA + AACozJ8EAAAAAAAAAACozJ8EAAAAAJa6h7G53LT/vuG8+7zfuf694Lr/vN+5/rveuP+/4bz/uNy1/6vL + of/b5dX///////n6+f/C1bn/q8+j/7/ivf+837n/vN+5/73guv+94Lr/vN+5/r3guv+837n+vuG8+7nc + tP+WuoexAAAAAKjMnwQAAAAAAAAAAKjMnwQAAAAAlrqHsbnctP++4bz7vN+5/r3guv+837j+vuG8/7jc + tf+qyaD/3+nb///////n7eP/9ff0//3+/f/F17v/q86h/7/jvf+837n/vN+5/7zfuf+94Lr+veC6/7zf + uf6+4bz7udy0/5a6h7EAAAAAqMyfBAAAAAAAAAAAqMyfBAAAAACWuoexudy0/77hu/u837n+vN+5/73f + uv663rf/q8uh/+Ho2///////4ure/6TEmf+50K//9/j1//39/f/G1r3/q86j/7/ivf+837r/vN+4/7zf + uf694Lr/vN+5/r7hvPu53LT/lrqHsQAAAACozJ8EAAAAAAAAAACozJ8EAAAAAJa6h7G53LT/vuG7+7zf + uf6837n/vd+6/rret/+qyaD/5uzh/+ju5P+ryaD/u9+5/7DUqv+5z6//+Pn3//39/P/D1rr/q8+j/77i + vP+837n/vN+5/r3guv+837n+vuG8+7nctP+WuoexAAAAAKjMnwQAAAAAAAAAAKjMnwQAAAAAlrqHsbnc + tP++4bz7vN+5/r3guv+837j+vuG7/7jdtf+tzKT/rsyl/7ndtf++4Lv/v+K9/6/TqP+70bH/9ffz//3+ + /f/H177/rM+k/7/ivP+83rj+veC6/7zfuf6+4bz7udy0/5a6h7EAAAAAqMyfBAAAAAAAAAAAqMyfBAAA + AACWuoexudy0/77hu/u837n+veC6/7zfuf673rj/vuG7/7ndtv+53bb/vuG7/7veuP+837n/wOO+/67T + qP+40K7/9vn1///////A0rb/q9Ck/8Djvv673rj/vN+5/r7hu/u53LT/lrqHsQAAAACozJ8EAAAAAAAA + AACpzJ8EAAAAAJe6h6+53LX/vuG8+7zfuf694Lr/vN+5/rzfuf+837j/veC6/73gu/+837j/vN+5/7zf + uf+83rj/wOO+/63Spv+90rP/3+fY/7jRr/+z167/vuG8/rvfuP+837n+vuG8+7nctf+XuoevAAAAAKnM + nwQAAAAAAAAAAKfKngQAAAAAlLiFu7jbtP++4bv6vN+5/r3guv+94Lr+vN+5/7zguv+837n/vN+5/73f + uv+837n/vN+4/7veuP+73rj/wOO+/7LUq/+oyJz/tdiw/7/ivf+73rj+veC6/7zfuf6+4bv6uNu0/5S4 + hbsAAAAAp8qeBAAAAAAAAAAApsudBAAAAAGUuYbBuNu0/77hu/q837n/veC6/rzfuf694Lr/veC5/73g + uv+84Lr/u964/7zfuf++4bz/vuG8/7zfuf+73rj/vuG8/7vfuf++4bv/u964/7zfuf694Lr+vN+5/77h + u/q427T/lLmGwQAAAAGmy50EAAAAAAAAAACny50EAAAAAJW7h8G43LT/vuG8+rzfuf+94Lr+vN+5/rzf + uf+837n/vN+5/7veuP+/4rz/vuC7/7XYsP+12LD/veC7/7/ivf+73rj/vd+6/7zfuf+837n/veC6/r3g + uv6837n/vuG8+rjctP+Vu4fBAAAAAKfLnQQAAAAAAAAAAKfLnQQAAAAAlbqGwbjctP++4bz6vN+5/73g + uv694Lr+veC6/7zfuf+837n/vuG7/7LWrf+ix5j/mcGP/5nBkP+ix5j/stas/77hu/+837n/vN+5/7zf + uf+94Lr+veC6/rzfuf++4bz6uNy0/5W6hsEAAAAAp8udBAAAAAAAAAAAp8ucBAAAAACVuobBt9uz/73g + u/q73rj/vN+4/rzfuP673rj/u963/73guv+u0qf/k7uH/5XAjv+dyJj/nciY/5XAjf+Tu4f/r9Ko/73g + uv+73rf/u964/7zfuP6837j+u964/73gu/q327P/lbqGwQAAAACny5wEAAAAAAAAAACozKAEAAAAAJa7 + iMG73rf/wOO/+r7hu/++4bz/vuG8/r7hu//A477/vN64/5O6h/+axpX/oMuc/53Hl/+dx5f/oMuc/5rG + lf+Uuof/vN65/8Djvv++4bv/vuG8/r7hvP++4bv/wOO/+rvet/+Wu4jBAAAAAKjMnwQAAAAAAAAAAKDE + lAQAAAABkbWBwa/SqP+22bH6tNeu/7TXr/6016//tNeu/7bZsf+jx5n/lb+N/57Jmv+cx5f/nciY/53I + mP+cx5f/nsma/5W/jP+jx5n/ttmx/7TXrv+016//tNev/rTXrv+22bH6r9Ko/5G2gcEAAAABn8SVBAAA + AAAAAAAAl7uIBAAAAACKrXe5ocaX/5rBkPqYv43+mMCO/5jAjf6YwI7/mMCO/5C4hP+bxpb/nciY/53I + mP+dyJj/nciY/53ImP+dyJj/m8eW/5C4g/+YwI7/mMCO/5jAjf6YwI7/mL+N/prCkPqhxpf/iq13uQAA + AACXu4kEAAAAAAAAAACny58DAAAAAJC0f4i43LX/qNGl+5zIl/6eypr/ncmZ/p3Jmf+eyZn/n8qc/53I + mP+dyJj/nsmY/57Jmf+eyZn/nsmY/53ImP+dyJj/n8qb/57Jmf+dyZn/ncmZ/p7Kmv+cyJf+qNGl+7nc + tf+QtH6HAAAAAKjMngMAAAAAAAAAAJa7iQEAAAAAdZxeLKfKneix163/m8aV/Z7Imf+dyJj+nciY/53I + mP+dyJj/nciY/53ImP+dyJj/nsmZ/57Jmf+dyJj/nciY/53ImP+dyJj/nciY/53ImP+dyJj+nsiZ/5vG + lf2x163/psmb6HSeXiwAAAAAlryIAQAAAAAAAAAAAAAAAAAAAAAAAAADmLuKvbjctf+hy5z7nMiX/p7J + mf+eyZn+nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/p7J + mf+cyJf+ocuc+7jctf+Yu4m9AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAu924AgAAAACNsntlsdOq/arS + p/yaxpX9nsmZ/p3ImP6dyJj+nciY/p3ImP6dyJj+nciY/p3ImP6dyJj+nciY/p3ImP6dyJj+nciY/p3I + mP6dyJj+nsmZ/prGlf2q0qb8sNOp/I6yfGQAAAAAt9yzAgAAAAAAAAAAAAAAAAAAAACBqG0CAAAAAGWP + Syiix5jntduz/5zHl/yeyJn/nsmZ/p7Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57J + mf+eyZn/nsmZ/57Jmf6eyJn/nMeX/LXbs/+jxpjnZ4xKKAAAAACDp20CAAAAAAAAAAAAAAAAAAAAAHSZ + WwEAAAAABC4AB5q/jZ+12bD/oMqb+5jEk/6bxpX+msaV/prGlf6axpX+msaV/prGlf6axpX+msaV/prG + lf6axpX+msaV/prGlf6axpX+m8aV/pjEk/6gy5v7tdmw/5u/jp4CJgAHAAAAAHSYWwEAAAAAAAAAAAAA + AAAAAAAAAAAAAIqudwIAAAAAfqNoWK7Rpv+027T6pM6g+6fRo/un0KP7p9Cj+6fQo/un0KP7p9Cj+6fQ + o/un0KP7p9Cj+6fQo/un0KP7p9Cj+6fQo/un0KP7pM6g+7TctPqu0ab/fqNoWAAAAACKrncCAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAeaBjAQAAAABnj0wmncGQz6/SqP+v0qf9r9Gn/6/Rp/+v0af/r9Gn/6/R + p/+v0af/r9Gn/6/Rp/+v0af/r9Gn/6/Rp/+v0af/r9Gn/6/Rp/+v0qf9r9Ko/53BkM9njUolAAAAAHqf + YgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8o2Y+iK12Zoywe12Lr3pfjK96X4yv + el+Mr3pfjK96X4yvel+Mr3pfjK96X4yvel+Mr3pfjK96X4yvel+Mr3pfi696X4ywe12IrXZmfaNmPgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///////////gAAAH4AAAB+AAAAfgAAAH4AAAB+AA + AAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AA + AAfwAAAP8AAAD/gAAB/4AAAf+AAAH/wAAD/8AAA///////////8oAAAAEAAAACAAAAABACAAAAAAAAAE + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAH2iZxiGq3E8iK1zNoesczeHrHM3h6xyN4arcTeHrHM3h6xzN4es + czeHrHM3iK1zNoarcTx9omcYAAAAAAAAAACUuIRer9Oo/7TXrvaz1q35s9at+bTXrvm12LD5s9at+bPW + rfmz1q35s9at+bTXrvav06j/lLiEXgAAAAAAAAAAm7+NXbrdtv+/4r77vuG7/r/ivf+737j/stas/73h + u/+/4b3/vuG8/77hvP6/4r77ut22/5u/jV0AAAAAAAAAAJm9i12427P/veC6+73guv623LP+wNq5/ubs + 4f631rH+ud63/r3guv6837n+veC7+7jbs/+ZvYtdAAAAAAAAAACZvYtduNu0/77hvPu43bX+wdq7/u3x + 6f7a5tX+6/Dn/rjWsf653rb+veC6/r3gu/u427T/mb2LXQAAAAAAAAAAmb2LXbjbtP++4bz7uN21/sLa + vP7F3L//rdSn/87gyf/t8er/vNm3/rret/6+4bv7uNu0/5m9i10AAAAAAAAAAJm9i12427T/veC7+73g + uv653bX+uN21/7/ivf+y2K3/z+HJ/9PgzP6z2K/+v+K9+7jbs/+ZvYtdAAAAAAAAAACXvIpjt9uz/77h + u/u837n/veC6/r7gu/++4bv/wOO+/7fbs/+117D+veC6/77hu/u327P/l7yKYwAAAAAAAAAAmL2KZbfa + s/+94Lv7u9+4/73guv663bb/qs+k/6rPo/+73rj/vuG7/rveuP+94Lv7t9qz/5i9imUAAAAAAAAAAJi9 + i2W53LX/wOK++7/hvP+937n+nsWV/5nEk/+ZxJL/nsWV/73fuf6/4bz/wOK++7nctf+YvYtlAAAAAAAA + AACTtoJlp8yf/6fNoPupzqH/oceY/pnEk/+fypr/n8qa/5nEk/+hx5j+qM6h/6fNoPuozJ//k7aCZQAA + AAAAAAAAkbN/NKjOovubx5b/msaV/pvHlv6eyJn+nciY/p3ImP6eyZn+m8eW/prGlf6bx5b/qM6i+5G0 + fjQAAAAAAAAAAAAAAACpzaHBpM2g/53ImPyeyZn+nsmZ/p7Jmf6eyZn+nsmZ/p7Jmf6dyJj8pM2f/6nN + oMEAAAAAAAAAAKvPowMAAAAAn8OTcKnRpf+bx5b8ncmY/p3ImP+dyJj/nciY/53ImP+dyJj+m8eW/KnR + pf+gwpNvAAAAAKvPowOMsXsBAAAAAIKlayKozaDrqc+j/ajOofmozqH6qM6h+qjOofqozqH6qM6h+anP + o/2ozaDqgqVrIgAAAACNsXsBAAAAAAAAAAAAAAAAiq93LZq7ijuauok4mrqJOZq6iTmauok5mrqJOZq6 + iTiau4o7iq53LQAAAAAAAAAAAAAAAP//AADAAwAAwAMAAMADAADAAwAAwAMAAMADAADAAwAAwAMAAMAD + AADAAwAAwAMAAMADAADgBwAA4AcAAP//AAA= + + + \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fSelectResult.Designer.cs b/Handler/Project_form2/Dialog/fSelectResult.Designer.cs new file mode 100644 index 0000000..add1e15 --- /dev/null +++ b/Handler/Project_form2/Dialog/fSelectResult.Designer.cs @@ -0,0 +1,137 @@ +namespace Project.Dialog +{ + partial class fSelectResult + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.button1 = new System.Windows.Forms.Button(); + this.lv1 = new System.Windows.Forms.ListView(); + this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader5 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader6 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader7 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.SuspendLayout(); + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.button1.Location = new System.Drawing.Point(0, 493); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(932, 55); + this.button1.TabIndex = 1; + this.button1.Text = "선택 확인"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // lv1 + // + this.lv1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader1, + this.columnHeader2, + this.columnHeader3, + this.columnHeader5, + this.columnHeader6, + this.columnHeader7, + this.columnHeader4}); + this.lv1.Dock = System.Windows.Forms.DockStyle.Fill; + this.lv1.Font = new System.Drawing.Font("맑은 고딕", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lv1.FullRowSelect = true; + this.lv1.GridLines = true; + this.lv1.Location = new System.Drawing.Point(0, 0); + this.lv1.Name = "lv1"; + this.lv1.Size = new System.Drawing.Size(932, 493); + this.lv1.TabIndex = 2; + this.lv1.UseCompatibleStateImageBehavior = false; + this.lv1.View = System.Windows.Forms.View.Details; + // + // columnHeader1 + // + this.columnHeader1.Text = "TIME"; + this.columnHeader1.Width = 120; + // + // columnHeader2 + // + this.columnHeader2.Text = "SID"; + this.columnHeader2.Width = 120; + // + // columnHeader3 + // + this.columnHeader3.Text = "RID"; + this.columnHeader3.Width = 130; + // + // columnHeader4 + // + this.columnHeader4.Text = "QTY"; + this.columnHeader4.Width = 80; + // + // columnHeader5 + // + this.columnHeader5.Text = "CUST"; + this.columnHeader5.Width = 100; + // + // columnHeader6 + // + this.columnHeader6.Text = "V.LOT"; + this.columnHeader6.Width = 140; + // + // columnHeader7 + // + this.columnHeader7.Text = "V.NAME"; + this.columnHeader7.Width = 130; + // + // fSelectResult + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(932, 548); + this.Controls.Add(this.lv1); + this.Controls.Add(this.button1); + this.Font = new System.Drawing.Font("맑은 고딕", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fSelectResult"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "값을 선택하세요 (실제 비어 있는 데이터만 선택값에서 추출 됩니다)"; + this.Load += new System.EventHandler(this.fSelectDataList_Load); + this.ResumeLayout(false); + + } + + #endregion + private System.Windows.Forms.Button button1; + private System.Windows.Forms.ListView lv1; + private System.Windows.Forms.ColumnHeader columnHeader1; + private System.Windows.Forms.ColumnHeader columnHeader2; + private System.Windows.Forms.ColumnHeader columnHeader3; + private System.Windows.Forms.ColumnHeader columnHeader4; + private System.Windows.Forms.ColumnHeader columnHeader5; + private System.Windows.Forms.ColumnHeader columnHeader6; + private System.Windows.Forms.ColumnHeader columnHeader7; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fSelectResult.cs b/Handler/Project_form2/Dialog/fSelectResult.cs new file mode 100644 index 0000000..29908d6 --- /dev/null +++ b/Handler/Project_form2/Dialog/fSelectResult.cs @@ -0,0 +1,60 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fSelectResult : Form + { + public Component_Reel_Result SelectedValue = null; + public fSelectResult(List list) + { + InitializeComponent(); + this.lv1.Items.Clear(); + foreach (var item in list) + { + var dt = (DateTime)item.wdate; + var lv = this.lv1.Items.Add(dt.ToString("dd HH:mm:ss")); + var std = new StdLabelPrint.CAmkorSTDBarcode(item.QR); + lv.SubItems.Add(item.SID); + lv.SubItems.Add(item.RID); + var custcode = item.RID.Substring(2, 4); + lv.SubItems.Add(custcode); + lv.SubItems.Add(std.VLOT); + lv.SubItems.Add(item.VNAME); + lv.SubItems.Add(item.QTY.ToString()); + lv.Tag = item; + } + + this.KeyDown += FSelectDataList_KeyDown; + } + + private void FSelectDataList_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Escape) this.Close(); + } + + private void fSelectDataList_Load(object sender, EventArgs e) + { + + } + + private void button1_Click(object sender, EventArgs e) + { + if (this.lv1.FocusedItem == null) + { + Util.MsgE("아이템을 선택하세요\n\n취소하려면 ESC키 혹은 닫기 버튼을 누르세요"); + return; + } + this.SelectedValue = this.lv1.FocusedItem.Tag as Component_Reel_Result; + this.DialogResult = DialogResult.OK; + + } + } +} diff --git a/Handler/Project_form2/Dialog/fSelectResult.resx b/Handler/Project_form2/Dialog/fSelectResult.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/Project_form2/Dialog/fSelectResult.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fSelectSID.Designer.cs b/Handler/Project_form2/Dialog/fSelectSID.Designer.cs new file mode 100644 index 0000000..b42b3ab --- /dev/null +++ b/Handler/Project_form2/Dialog/fSelectSID.Designer.cs @@ -0,0 +1,123 @@ + +namespace Project.Dialog +{ + partial class fSelectSID + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.label1 = new System.Windows.Forms.Label(); + this.listView1 = new System.Windows.Forms.ListView(); + this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.button1 = new System.Windows.Forms.Button(); + this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.SuspendLayout(); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("맑은 고딕", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label1.Location = new System.Drawing.Point(15, 21); + this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(633, 60); + this.label1.TabIndex = 0; + this.label1.Text = "복수개의 SID 변환 정보가 확인 되었습니다.\r\n아래 SID 목록에서 사용할 데이터를 선택하고 \"확인\" 을 누르세요."; + // + // listView1 + // + this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader2, + this.columnHeader1, + this.columnHeader3}); + this.listView1.FullRowSelect = true; + this.listView1.GridLines = true; + this.listView1.HideSelection = false; + this.listView1.Location = new System.Drawing.Point(16, 107); + this.listView1.Name = "listView1"; + this.listView1.Size = new System.Drawing.Size(652, 205); + this.listView1.TabIndex = 1; + this.listView1.UseCompatibleStateImageBehavior = false; + this.listView1.View = System.Windows.Forms.View.Details; + // + // columnHeader1 + // + this.columnHeader1.Text = "New SID"; + this.columnHeader1.Width = 200; + // + // columnHeader3 + // + this.columnHeader3.Text = "Cust#"; + this.columnHeader3.Width = 300; + // + // button1 + // + this.button1.Font = new System.Drawing.Font("맑은 고딕", 25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button1.Location = new System.Drawing.Point(16, 327); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(652, 66); + this.button1.TabIndex = 2; + this.button1.Text = "확인"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // columnHeader2 + // + this.columnHeader2.Text = "Old SID"; + this.columnHeader2.Width = 200; + // + // fSelectSID + // + this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 21F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(685, 413); + this.Controls.Add(this.button1); + this.Controls.Add(this.listView1); + this.Controls.Add(this.label1); + this.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fSelectSID"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "fSelectSID"; + this.Load += new System.EventHandler(this.fSelectSID_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.ListView listView1; + private System.Windows.Forms.ColumnHeader columnHeader1; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.ColumnHeader columnHeader3; + private System.Windows.Forms.ColumnHeader columnHeader2; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/Dialog/fSelectSID.cs b/Handler/Project_form2/Dialog/fSelectSID.cs new file mode 100644 index 0000000..1a347b4 --- /dev/null +++ b/Handler/Project_form2/Dialog/fSelectSID.cs @@ -0,0 +1,96 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fSelectSID : Form + { + + public string Value = string.Empty; + public fSelectSID(List list) + { + InitializeComponent(); + //this.listView1.Columns[1].Text = aftercolumnname; + + this.listView1.Columns[0].Text = "Old SID"; + this.listView1.Columns[1].Text = "New SID"; + //this.listView1.Columns[2].Text = "106"; + //this.listView1.Columns[3].Text = "--"; + + this.listView1.Items.Clear(); + foreach (var item in list) + { + var buf = item.Split(';'); + + var lv = this.listView1.Items.Add(buf[0].Trim()); //101 + if (buf.Length > 1) lv.SubItems.Add(buf[1].Trim()); //103; + else lv.SubItems.Add(string.Empty); + //if (buf.Length > 2) lv.SubItems.Add(buf[2].Trim()); //103; + //else lv.SubItems.Add(string.Empty); + //if (buf.Length > 3) lv.SubItems.Add(buf[3].Trim()); //103; + //lv.SubItems.Add(string.Empty); + } + this.listView1.FocusedItem = null; + } + + private void button1_Click(object sender, EventArgs e) + { + Value = string.Empty; + if (this.listView1.SelectedItems != null && this.listView1.SelectedItems.Count == 1) + { + var lv = this.listView1.SelectedItems[0]; + Value = string.Format("{0};{1}", lv.SubItems[0].Text, lv.SubItems[1].Text); + } + else if (this.listView1.FocusedItem != null) + { + var lv = this.listView1.FocusedItem; + Value = string.Format("{0};{1}", lv.SubItems[0].Text, lv.SubItems[1].Text); + } + + if (Value.isEmpty() == false) + DialogResult = DialogResult.OK; + } + + private void fSelectSID_Load(object sender, EventArgs e) + { + // 모든데이터를 확인하고 마지막 customer 정보를 확인하.ㄴㄷ + + foreach (ListViewItem lv in this.listView1.Items) + { + var sidNew = lv.SubItems[1].Text; + if (sidNew.isEmpty()) lv.SubItems.Add("--"); + else + { + using (var db = new EEEntities()) + { + var list = db.Component_Reel_SIDInfo.Where(t => t.SID == sidNew && string.IsNullOrEmpty(t.CustCode) == false).ToList(); + if (list.Any() == true) + { + var buffer = new System.Text.StringBuilder(); + foreach (var custinfo in list) + { + if (buffer.Length > 0) buffer.Append(","); + buffer.Append(string.Format("[{0}] {1}", custinfo.CustCode,custinfo.CustName)); + } + lv.SubItems.Add(buffer.ToString()); //cust info + } + else + { + ///자료가 없다 + lv.SubItems.Add("정보 없음"); + } + } + } + + } + + } + } +} diff --git a/Handler/Project_form2/Dialog/fSelectSID.resx b/Handler/Project_form2/Dialog/fSelectSID.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/Project_form2/Dialog/fSelectSID.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/Project_form2/Don't change it/Class/CFlag.cs b/Handler/Project_form2/Don't change it/Class/CFlag.cs new file mode 100644 index 0000000..682ce4e --- /dev/null +++ b/Handler/Project_form2/Don't change it/Class/CFlag.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Project +{ + public class Flag : CInterLock + { + public Boolean IsInit; //H/W설정이 안된경우에만 FALSE로 한다 + public int PortCount; + public string[] Name; + + public Flag() + { + this.Tag = "MAIN"; + PortCount = 64; + IsInit = true; + errorMessage = string.Empty; + _value = 0; + Name = new string[PortCount]; + for (int i = 0; i < Name.Length; i++) + { + Name[i] = string.Empty; + } + } + + public bool get(eFlag flag) + { + return get((int)flag); + } + public void set(eFlag flag, bool value, string reason) + { + var idx = (int)flag; + set(idx, value, reason); + } + + public void Toggle(eFlag flag) + { + Toggle((int)flag); + } + + + } + + +} diff --git a/Handler/Project_form2/Don't change it/Class/CInterLock.cs b/Handler/Project_form2/Don't change it/Class/CInterLock.cs new file mode 100644 index 0000000..79180d4 --- /dev/null +++ b/Handler/Project_form2/Don't change it/Class/CInterLock.cs @@ -0,0 +1,99 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Project +{ + public class CInterLock + { + UInt64 offsetValue = 0x01; + public object Tag { get; set; } + public string errorMessage; + protected UInt64 _value; + + public UInt64 Value { get { return _value; } set { _value = value; } } + + public event EventHandler ValueChanged; + public class ValueEventArgs : EventArgs + { + private int _arridx; + private Boolean _oldvalue; + private Boolean _newvalue; + private string _reason; + + public int ArrIDX { get { return _arridx; } } + public Boolean OldValue { get { return _oldvalue; } } + public Boolean NewValue { get { return _newvalue; } } + public string Reason { get { return _reason; } } + public Boolean NewOn { get; set; } + public Boolean NewOff { get; set; } + + public ValueEventArgs(int arridx, Boolean oldvalue, Boolean newvalue, string reason_, Boolean newon_, Boolean newof_) + { + _arridx = arridx; + _oldvalue = oldvalue; + _newvalue = newvalue; + _reason = reason_; + this.NewOn = newon_; + this.NewOff = newon_; + } + } + + public CInterLock(object tag = null) + { + errorMessage = string.Empty; + _value = 0; + this.Tag = tag; + } + + public Boolean get(int idx) + { + if (idx >= 64) + throw new Exception("flag는 최대 64개를 지원 합니다"); + + var offset = (UInt64)(offsetValue << idx); + return (_value & offset) != 0; + } + public void set(int idx, Boolean value, string reason) + { + if (idx >= 64) + throw new Exception("flag는 최대 64개를 지원 합니다"); + + var oldvalue = get(idx); + var raw_old = _value; + if (value) + { + var offset = (UInt64)(offsetValue << idx); + _value = _value | offset; + } + else + { + var shiftvalue = (UInt64)(offsetValue << idx); + UInt64 offset = ~shiftvalue; + _value = _value & offset; + } + + if (oldvalue != value) + { + Boolean NewOn = (raw_old == 0 && _value > 0); + Boolean NewOf = (raw_old != 0 && _value == 0); + if (ValueChanged != null) + ValueChanged(this, new ValueEventArgs(idx, oldvalue, value, reason, NewOn, NewOf)); + } + else + { + //Pub.log.Add(" >> SKIP"); + //if (string.IsNullOrEmpty(reason) == false) + //Pub.log.Add("#### FLAG변경(값이 같아서 처리 안함) : idx=" + idx.ToString() + ",값:" + value.ToString() + ",사유:" + reason); + } + } + public void Toggle(int idx, string reason = "") + { + var curValue = get(idx); + set(idx, !curValue, reason); + } + + } +} diff --git a/Handler/Project_form2/Don't change it/Dialog/SystemParameter.Designer.cs b/Handler/Project_form2/Don't change it/Dialog/SystemParameter.Designer.cs new file mode 100644 index 0000000..17120c8 --- /dev/null +++ b/Handler/Project_form2/Don't change it/Dialog/SystemParameter.Designer.cs @@ -0,0 +1,229 @@ +namespace Project.Dialog +{ + partial class SystemParameter + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.button1 = new System.Windows.Forms.Button(); + this.propertyGrid1 = new System.Windows.Forms.PropertyGrid(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.button9 = new System.Windows.Forms.Button(); + this.button8 = new System.Windows.Forms.Button(); + this.button7 = new System.Windows.Forms.Button(); + this.button6 = new System.Windows.Forms.Button(); + this.button5 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.button3 = new System.Windows.Forms.Button(); + this.button4 = new System.Windows.Forms.Button(); + this.tableLayoutPanel1.SuspendLayout(); + this.SuspendLayout(); + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.button1.Location = new System.Drawing.Point(0, 637); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(537, 51); + this.button1.TabIndex = 0; + this.button1.Text = "Save"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // propertyGrid1 + // + this.propertyGrid1.Dock = System.Windows.Forms.DockStyle.Fill; + this.propertyGrid1.Location = new System.Drawing.Point(0, 0); + this.propertyGrid1.Name = "propertyGrid1"; + this.propertyGrid1.Size = new System.Drawing.Size(537, 578); + this.propertyGrid1.TabIndex = 1; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 8; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 12.5F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 12.5F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 12.5F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 12.5F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 12.5F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 12.5F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 12.5F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 12.5F)); + this.tableLayoutPanel1.Controls.Add(this.button9, 7, 0); + this.tableLayoutPanel1.Controls.Add(this.button8, 6, 0); + this.tableLayoutPanel1.Controls.Add(this.button7, 5, 0); + this.tableLayoutPanel1.Controls.Add(this.button6, 4, 0); + this.tableLayoutPanel1.Controls.Add(this.button5, 3, 0); + this.tableLayoutPanel1.Controls.Add(this.button2, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.button3, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.button4, 2, 0); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 578); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 1; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(537, 59); + this.tableLayoutPanel1.TabIndex = 3; + // + // button9 + // + this.button9.Dock = System.Windows.Forms.DockStyle.Fill; + this.button9.Font = new System.Drawing.Font("굴림", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button9.Location = new System.Drawing.Point(472, 3); + this.button9.Name = "button9"; + this.button9.Size = new System.Drawing.Size(62, 53); + this.button9.TabIndex = 5; + this.button9.Tag = "7"; + this.button9.Text = "Motor 7"; + this.button9.UseVisualStyleBackColor = true; + this.button9.Click += new System.EventHandler(this.button2_Click_1); + // + // button8 + // + this.button8.Dock = System.Windows.Forms.DockStyle.Fill; + this.button8.Font = new System.Drawing.Font("굴림", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button8.Location = new System.Drawing.Point(405, 3); + this.button8.Name = "button8"; + this.button8.Size = new System.Drawing.Size(61, 53); + this.button8.TabIndex = 4; + this.button8.Tag = "6"; + this.button8.Text = "Motor 6"; + this.button8.UseVisualStyleBackColor = true; + this.button8.Click += new System.EventHandler(this.button2_Click_1); + // + // button7 + // + this.button7.Dock = System.Windows.Forms.DockStyle.Fill; + this.button7.Font = new System.Drawing.Font("굴림", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button7.Location = new System.Drawing.Point(338, 3); + this.button7.Name = "button7"; + this.button7.Size = new System.Drawing.Size(61, 53); + this.button7.TabIndex = 3; + this.button7.Tag = "5"; + this.button7.Text = "Motor 5"; + this.button7.UseVisualStyleBackColor = true; + this.button7.Click += new System.EventHandler(this.button2_Click_1); + // + // button6 + // + this.button6.Dock = System.Windows.Forms.DockStyle.Fill; + this.button6.Font = new System.Drawing.Font("굴림", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button6.Location = new System.Drawing.Point(271, 3); + this.button6.Name = "button6"; + this.button6.Size = new System.Drawing.Size(61, 53); + this.button6.TabIndex = 2; + this.button6.Tag = "4"; + this.button6.Text = "Motor 4"; + this.button6.UseVisualStyleBackColor = true; + this.button6.Click += new System.EventHandler(this.button2_Click_1); + // + // button5 + // + this.button5.Dock = System.Windows.Forms.DockStyle.Fill; + this.button5.Font = new System.Drawing.Font("굴림", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button5.Location = new System.Drawing.Point(204, 3); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(61, 53); + this.button5.TabIndex = 1; + this.button5.Tag = "3"; + this.button5.Text = "Motor 3"; + this.button5.UseVisualStyleBackColor = true; + this.button5.Click += new System.EventHandler(this.button2_Click_1); + // + // button2 + // + this.button2.Dock = System.Windows.Forms.DockStyle.Fill; + this.button2.Font = new System.Drawing.Font("굴림", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button2.Location = new System.Drawing.Point(3, 3); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(61, 53); + this.button2.TabIndex = 0; + this.button2.Tag = "0"; + this.button2.Text = "Motor 0"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click_1); + // + // button3 + // + this.button3.Dock = System.Windows.Forms.DockStyle.Fill; + this.button3.Font = new System.Drawing.Font("굴림", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button3.Location = new System.Drawing.Point(70, 3); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(61, 53); + this.button3.TabIndex = 0; + this.button3.Tag = "1"; + this.button3.Text = "Motor 1"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button2_Click_1); + // + // button4 + // + this.button4.Dock = System.Windows.Forms.DockStyle.Fill; + this.button4.Font = new System.Drawing.Font("굴림", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button4.Location = new System.Drawing.Point(137, 3); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(61, 53); + this.button4.TabIndex = 0; + this.button4.Tag = "2"; + this.button4.Text = "Motor 2"; + this.button4.UseVisualStyleBackColor = true; + this.button4.Click += new System.EventHandler(this.button2_Click_1); + // + // SystemParameter + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(537, 688); + this.Controls.Add(this.propertyGrid1); + this.Controls.Add(this.tableLayoutPanel1); + this.Controls.Add(this.button1); + this.KeyPreview = true; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "SystemParameter"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "SystemParameter"; + this.Load += new System.EventHandler(this.SystemParameter_Load); + this.tableLayoutPanel1.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button button1; + private System.Windows.Forms.PropertyGrid propertyGrid1; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Button button9; + private System.Windows.Forms.Button button8; + private System.Windows.Forms.Button button7; + private System.Windows.Forms.Button button6; + private System.Windows.Forms.Button button5; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.Button button4; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/Don't change it/Dialog/SystemParameter.cs b/Handler/Project_form2/Don't change it/Dialog/SystemParameter.cs new file mode 100644 index 0000000..250d555 --- /dev/null +++ b/Handler/Project_form2/Don't change it/Dialog/SystemParameter.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class SystemParameter : Form + { + public SystemParameter() + { + InitializeComponent(); + this.KeyDown += SystemParameter_KeyDown; + } + + void SystemParameter_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Escape) this.Close(); + } + + private void button1_Click(object sender, EventArgs e) + { + this.Invalidate(); + Pub.system.Save(); + DialogResult = System.Windows.Forms.DialogResult.OK; + } + + private void SystemParameter_Load(object sender, EventArgs e) + { + this.propertyGrid1.SelectedObject = Pub.system; + this.propertyGrid1.Invalidate(); + } + + private void button2_Click(object sender, EventArgs e) + { + } + + private void button2_Click_1(object sender, EventArgs e) + { + var but = sender as Button; + var idx = int.Parse(but.Tag.ToString()); + Pub.mot.ShowParameter(idx); + } + } +} diff --git a/Handler/Project_form2/Don't change it/Dialog/SystemParameter.resx b/Handler/Project_form2/Don't change it/Dialog/SystemParameter.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/Project_form2/Don't change it/Dialog/SystemParameter.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/Project_form2/Don't change it/Dialog/fErrorException.Designer.cs b/Handler/Project_form2/Don't change it/Dialog/fErrorException.Designer.cs new file mode 100644 index 0000000..ef06f47 --- /dev/null +++ b/Handler/Project_form2/Don't change it/Dialog/fErrorException.Designer.cs @@ -0,0 +1,247 @@ +namespace Project +{ + partial class fErrorException + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fErrorException)); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.panTitleBar = new System.Windows.Forms.Panel(); + this.lbTitle = new arCtl.arLabel(); + this.btTeach = new arCtl.arLabel(); + this.panel1 = new System.Windows.Forms.Panel(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.panTitleBar.SuspendLayout(); + this.panel1.SuspendLayout(); + this.SuspendLayout(); + // + // pictureBox1 + // + this.pictureBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); + this.pictureBox1.Location = new System.Drawing.Point(234, 19); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(80, 80); + this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; + this.pictureBox1.TabIndex = 0; + this.pictureBox1.TabStop = false; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.label1.Font = new System.Drawing.Font("맑은 고딕", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label1.ForeColor = System.Drawing.Color.White; + this.label1.Location = new System.Drawing.Point(28, 106); + this.label1.Name = "label1"; + this.label1.Padding = new System.Windows.Forms.Padding(10); + this.label1.Size = new System.Drawing.Size(488, 50); + this.label1.TabIndex = 3; + this.label1.Text = "미처리 오류로 인해 프로그램이 중단 되었습니다"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.label2.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label2.ForeColor = System.Drawing.Color.DodgerBlue; + this.label2.Location = new System.Drawing.Point(46, 159); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(386, 45); + this.label2.TabIndex = 4; + this.label2.Text = "오류보고를 위한 정보가 수집되었습니다.\r\n수집된 정보는 아래에 같습니다.\r\n발생전 상황을 포함하여 \"Chikyun.kim@amkor.co.kr\" " + + "로 보내주십시요."; + // + // textBox1 + // + this.textBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.textBox1.ForeColor = System.Drawing.Color.LightCoral; + this.textBox1.Location = new System.Drawing.Point(10, 218); + this.textBox1.Multiline = true; + this.textBox1.Name = "textBox1"; + this.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.textBox1.Size = new System.Drawing.Size(514, 346); + this.textBox1.TabIndex = 5; + this.textBox1.Text = "test"; + // + // panTitleBar + // + this.panTitleBar.BackColor = System.Drawing.Color.Maroon; + this.panTitleBar.Controls.Add(this.lbTitle); + this.panTitleBar.Dock = System.Windows.Forms.DockStyle.Top; + this.panTitleBar.Location = new System.Drawing.Point(1, 1); + this.panTitleBar.Name = "panTitleBar"; + this.panTitleBar.Size = new System.Drawing.Size(534, 32); + this.panTitleBar.TabIndex = 133; + // + // lbTitle + // + this.lbTitle.BackColor = System.Drawing.Color.Transparent; + this.lbTitle.BackColor2 = System.Drawing.Color.Transparent; + this.lbTitle.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbTitle.BorderColor = System.Drawing.Color.Red; + this.lbTitle.BorderColorOver = System.Drawing.Color.Red; + this.lbTitle.BorderSize = new System.Windows.Forms.Padding(0); + this.lbTitle.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbTitle.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbTitle.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbTitle.Font = new System.Drawing.Font("Cambria", 12F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbTitle.ForeColor = System.Drawing.Color.LightSkyBlue; + this.lbTitle.GradientEnable = true; + this.lbTitle.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lbTitle.GradientRepeatBG = false; + this.lbTitle.isButton = false; + this.lbTitle.Location = new System.Drawing.Point(0, 0); + this.lbTitle.MouseDownColor = System.Drawing.Color.Yellow; + this.lbTitle.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbTitle.msg = null; + this.lbTitle.Name = "lbTitle"; + this.lbTitle.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lbTitle.ProgressBorderColor = System.Drawing.Color.Black; + this.lbTitle.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbTitle.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbTitle.ProgressEnable = false; + this.lbTitle.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbTitle.ProgressForeColor = System.Drawing.Color.Black; + this.lbTitle.ProgressMax = 100F; + this.lbTitle.ProgressMin = 0F; + this.lbTitle.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbTitle.ProgressValue = 0F; + this.lbTitle.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.lbTitle.Sign = ""; + this.lbTitle.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbTitle.SignColor = System.Drawing.Color.Yellow; + this.lbTitle.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbTitle.Size = new System.Drawing.Size(534, 32); + this.lbTitle.TabIndex = 60; + this.lbTitle.Text = "UnhandledException"; + this.lbTitle.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lbTitle.TextShadow = false; + this.lbTitle.TextVisible = true; + // + // btTeach + // + this.btTeach.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btTeach.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.btTeach.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btTeach.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.btTeach.BorderColorOver = System.Drawing.Color.DarkBlue; + this.btTeach.BorderSize = new System.Windows.Forms.Padding(0); + this.btTeach.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btTeach.Cursor = System.Windows.Forms.Cursors.Hand; + this.btTeach.Dock = System.Windows.Forms.DockStyle.Bottom; + this.btTeach.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.btTeach.ForeColor = System.Drawing.Color.DeepPink; + this.btTeach.GradientEnable = false; + this.btTeach.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btTeach.GradientRepeatBG = false; + this.btTeach.isButton = true; + this.btTeach.Location = new System.Drawing.Point(1, 610); + this.btTeach.Margin = new System.Windows.Forms.Padding(0, 0, 5, 0); + this.btTeach.MouseDownColor = System.Drawing.Color.Yellow; + this.btTeach.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btTeach.msg = null; + this.btTeach.Name = "btTeach"; + this.btTeach.ProgressBorderColor = System.Drawing.Color.Black; + this.btTeach.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btTeach.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btTeach.ProgressEnable = false; + this.btTeach.ProgressFont = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btTeach.ProgressForeColor = System.Drawing.Color.Black; + this.btTeach.ProgressMax = 100F; + this.btTeach.ProgressMin = 0F; + this.btTeach.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btTeach.ProgressValue = 0F; + this.btTeach.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btTeach.Sign = ""; + this.btTeach.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btTeach.SignColor = System.Drawing.Color.Yellow; + this.btTeach.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btTeach.Size = new System.Drawing.Size(534, 61); + this.btTeach.TabIndex = 134; + this.btTeach.Text = "종 료"; + this.btTeach.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btTeach.TextShadow = true; + this.btTeach.TextVisible = true; + this.btTeach.Click += new System.EventHandler(this.btTeach_Click); + // + // panel1 + // + this.panel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.panel1.Controls.Add(this.pictureBox1); + this.panel1.Controls.Add(this.textBox1); + this.panel1.Controls.Add(this.label1); + this.panel1.Controls.Add(this.label2); + this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel1.Location = new System.Drawing.Point(1, 33); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(534, 577); + this.panel1.TabIndex = 135; + // + // fErrorException + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(15)))), ((int)(((byte)(15))))); + this.ClientSize = new System.Drawing.Size(536, 672); + this.Controls.Add(this.panel1); + this.Controls.Add(this.btTeach); + this.Controls.Add(this.panTitleBar); + this.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.KeyPreview = true; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fErrorException"; + this.Padding = new System.Windows.Forms.Padding(1); + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Error Report"; + this.TopMost = true; + this.Load += new System.EventHandler(this.fErrorException_Load); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.panTitleBar.ResumeLayout(false); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox textBox1; + public System.Windows.Forms.Panel panTitleBar; + private arCtl.arLabel lbTitle; + private arCtl.arLabel btTeach; + private System.Windows.Forms.Panel panel1; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/Don't change it/Dialog/fErrorException.cs b/Handler/Project_form2/Don't change it/Dialog/fErrorException.cs new file mode 100644 index 0000000..9e67bac --- /dev/null +++ b/Handler/Project_form2/Don't change it/Dialog/fErrorException.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Project +{ + public partial class fErrorException : Form + { + public fErrorException(string err) + { + InitializeComponent(); + System.Text.StringBuilder sb = new StringBuilder(); + sb.AppendLine("==============================="); + sb.AppendLine("개발 : ChiKyun.kim@amkor.co.kr"); + sb.AppendLine("소속 : ATK-4 EET 1P"); + sb.AppendLine("==============================="); + sb.AppendLine(); + sb.AppendLine(err); + this.textBox1.Text = sb.ToString(); + + this.lbTitle.MouseMove += LbTitle_MouseMove; + this.lbTitle.MouseUp += LbTitle_MouseUp; + this.lbTitle.MouseDown += LbTitle_MouseDown; + this.lbTitle.DoubleClick += LbTitle_DoubleClick; + } + + private void fErrorException_Load(object sender, EventArgs e) + { + + } + + #region "Mouse Form Move" + + private Boolean fMove = false; + private Point MDownPos; + + private void LbTitle_DoubleClick(object sender, EventArgs e) + { + if (this.WindowState == FormWindowState.Maximized) this.WindowState = FormWindowState.Normal; + else this.WindowState = FormWindowState.Maximized; + } + private void LbTitle_MouseMove(object sender, MouseEventArgs e) + { + if (fMove) + { + Point offset = new Point(e.X - MDownPos.X, e.Y - MDownPos.Y); + this.Left += offset.X; + this.Top += offset.Y; + offset = new Point(0, 0); + } + } + private void LbTitle_MouseUp(object sender, MouseEventArgs e) + { + fMove = false; + } + private void LbTitle_MouseDown(object sender, MouseEventArgs e) + { + MDownPos = new Point(e.X, e.Y); + fMove = true; + } + + #endregion + + private void btTeach_Click(object sender, EventArgs e) + { + this.Close(); + } + } +} diff --git a/Handler/Project_form2/Don't change it/Dialog/fErrorException.resx b/Handler/Project_form2/Don't change it/Dialog/fErrorException.resx new file mode 100644 index 0000000..3d91aed --- /dev/null +++ b/Handler/Project_form2/Don't change it/Dialog/fErrorException.resx @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAb + rwAAG68BXhqRHAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAPnSURBVHhe7dzJ + TttQFAbgdNFKnZ6GFWKDfCNGsWRRddO+ATwBo5g2iNdopU7LqlXVFgUa2LDoE7TbQoEIFpVw72/5EOdw + INO919fx/aVfiuwTD58chcFyJSQkJJu4Urm3H0Uv95Wq7VWrx2jyOopeYF06FiLlcGbmkQZ7v6dULFav + w0w6HpINYGpKfQbUj/Hx+Pf8fHy2thafra8nr7EsQYyiT7Xh4Yfp20KQLF59cjI+XlqKL7e3W4plWBcQ + WXZHRp5qkF3AHE5NxScrKzfwqFiHmRRxF+9NN1POdINHDYhpesGjlh6xHzxqaRE53t/VVRGok5YO0SQe + tTSINvCoLYhKfR84RJt41IFFdIFHxbYHCtElHpUjfhkdfZIeTrGS4OkTcIlHLTxinnjUwiLiQPPGoxYO + 0Sc8amEQTePxSDOd1ntEG1cejzTTTb1FbMGbnjaCh/JIM93WO0RbeCiPNNNLs4g1pb7lhmgTD+WRZnpt + 7oi28VAeaaaf5oaIHWGHNvFQHmmm3yaI+hycIbrCQ3mkGRN1hugSD+WRZkzVOqJrPJRHmjFZa4h54KE8 + 0ozpGkfMCw/lkWZs1BhinngojzRjq30j5o2H8kgzNptF3Ffqa8eIPuChPNKM7XaN6AseyiPNuChHPBob + e5xytQZ3f2q81xg80L/inCwvixt0VR5pxlVhAZMEsVp9Jd4pq1c+xwBuZMwbD+WRZlwWJnSTZy2KnqVs + zegVyR8Hfs3NiRtwXR5pxnVhAyN8lFO2ZvSKc6w839gQ3+y6PNKM68IGRrpnKVszemEjAN5d3K99F2D4 + CLdpu49w+BK5o22/RMKPMbcXFm1/jEEOh4bu68vzLQbrExPx8eKiuEEX5ZFmXBQGsICJ7hsYpVxyfEHk + kWZst2s8ik9XYl7tGY9SZsQsHgy6xqOUEdEYHqVMiMbxKGVAtIZHcYq4sxP/q9fjq9PTpHiNZeKsgVrH + o/ycnX3gAhFgPAmiMNtv/ywsuMGjuEC8ajRStmawTJrtp87xKEDUv/a9s4XoAjA3PIpNRNsfYY6Hc0lP + y22sIdKXyMVF0gTP0JeIN3gUjogDlA7ch3qHRykCYhYPx+oNHsVnRO/xKD4iFgaPggOkpw/ljVg4PIoP + iIXFo+SJWHg8Ch7PpE/iI07kAI90cvCPKuwD+8I+se/CPyLK5ZWYvfKwz8JeeTwuEAcWj2ITceDxKDYQ + S4NHMYlYOjyKCcTS4lESRKU+9IKI2etHgpYRj9ILYsBj6QYx4N2S8BBaA5Eeg9zY3IwbW1vhMcidBoj0 + 7SxWr8NMOh4iBXd/Xj8KXqlLNHkdHgUfEnIjlcp/1rPAKpMPkMkAAAAASUVORK5CYII= + + + \ No newline at end of file diff --git a/Handler/Project_form2/Don't change it/Dialog/fIOMonitor.Designer.cs b/Handler/Project_form2/Don't change it/Dialog/fIOMonitor.Designer.cs new file mode 100644 index 0000000..45b19d7 --- /dev/null +++ b/Handler/Project_form2/Don't change it/Dialog/fIOMonitor.Designer.cs @@ -0,0 +1,1551 @@ +namespace Project.Dialog +{ + partial class fIOMonitor + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + arFrame.Control.ColorListItem colorListItem1 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem2 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem3 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem4 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem5 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem6 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem7 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem8 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem9 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem10 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem11 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem12 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem13 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem14 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem15 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem16 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem17 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem18 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem19 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem20 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem21 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem22 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem23 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem24 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem25 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem26 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem27 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem28 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem29 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem30 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem31 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem32 = new arFrame.Control.ColorListItem(); + this.panel3 = new System.Windows.Forms.Panel(); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.panel2 = new System.Windows.Forms.Panel(); + this.tblDI = new arFrame.Control.GridView(); + this.lbTitle1 = new arCtl.arLabel(); + this.panel1 = new System.Windows.Forms.Panel(); + this.tblDO = new arFrame.Control.GridView(); + this.lbtitle2 = new arCtl.arLabel(); + this.tabPage2 = new System.Windows.Forms.TabPage(); + this.gridView1 = new arFrame.Control.GridView(); + this.lbTitle4 = new arCtl.arLabel(); + this.tblFG = new arFrame.Control.GridView(); + this.lbTitle3 = new arCtl.arLabel(); + this.tabPage3 = new System.Windows.Forms.TabPage(); + this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); + this.panel14 = new System.Windows.Forms.Panel(); + this.gviPRM = new arFrame.Control.GridView(); + this.label7 = new System.Windows.Forms.Label(); + this.panel13 = new System.Windows.Forms.Panel(); + this.gviPLM = new arFrame.Control.GridView(); + this.label6 = new System.Windows.Forms.Label(); + this.panel9 = new System.Windows.Forms.Panel(); + this.gviPRZ = new arFrame.Control.GridView(); + this.label3 = new System.Windows.Forms.Label(); + this.panel10 = new System.Windows.Forms.Panel(); + this.gviPLZ = new arFrame.Control.GridView(); + this.label4 = new System.Windows.Forms.Label(); + this.panel12 = new System.Windows.Forms.Panel(); + this.panel19 = new System.Windows.Forms.Panel(); + this.gviVS1 = new arFrame.Control.GridView(); + this.label2 = new System.Windows.Forms.Label(); + this.panel8 = new System.Windows.Forms.Panel(); + this.gviPKZ = new arFrame.Control.GridView(); + this.lbXR = new System.Windows.Forms.Label(); + this.panel5 = new System.Windows.Forms.Panel(); + this.gviPKX = new arFrame.Control.GridView(); + this.label1 = new System.Windows.Forms.Label(); + this.panel11 = new System.Windows.Forms.Panel(); + this.gviPKT = new arFrame.Control.GridView(); + this.label5 = new System.Windows.Forms.Label(); + this.panel15 = new System.Windows.Forms.Panel(); + this.gviPRL = new arFrame.Control.GridView(); + this.label8 = new System.Windows.Forms.Label(); + this.panel16 = new System.Windows.Forms.Panel(); + this.gviPRR = new arFrame.Control.GridView(); + this.label9 = new System.Windows.Forms.Label(); + this.panel17 = new System.Windows.Forms.Panel(); + this.gviVS0 = new arFrame.Control.GridView(); + this.label10 = new System.Windows.Forms.Label(); + this.panel18 = new System.Windows.Forms.Panel(); + this.gviVS2 = new arFrame.Control.GridView(); + this.label11 = new System.Windows.Forms.Label(); + this.panel4 = new System.Windows.Forms.Panel(); + this.panel6 = new System.Windows.Forms.Panel(); + this.panel7 = new System.Windows.Forms.Panel(); + this.tbClose = new System.Windows.Forms.Button(); + this.lbTitle = new arCtl.arLabel(); + this.tmDisplay = new System.Windows.Forms.Timer(this.components); + this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); + this.saveIOListToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.tabControl1.SuspendLayout(); + this.tabPage1.SuspendLayout(); + this.tableLayoutPanel1.SuspendLayout(); + this.panel2.SuspendLayout(); + this.panel1.SuspendLayout(); + this.tabPage2.SuspendLayout(); + this.tabPage3.SuspendLayout(); + this.tableLayoutPanel2.SuspendLayout(); + this.panel14.SuspendLayout(); + this.panel13.SuspendLayout(); + this.panel9.SuspendLayout(); + this.panel10.SuspendLayout(); + this.panel12.SuspendLayout(); + this.panel19.SuspendLayout(); + this.panel8.SuspendLayout(); + this.panel5.SuspendLayout(); + this.panel11.SuspendLayout(); + this.panel15.SuspendLayout(); + this.panel16.SuspendLayout(); + this.panel17.SuspendLayout(); + this.panel18.SuspendLayout(); + this.panel4.SuspendLayout(); + this.panel7.SuspendLayout(); + this.contextMenuStrip1.SuspendLayout(); + this.SuspendLayout(); + // + // panel3 + // + this.panel3.Dock = System.Windows.Forms.DockStyle.Right; + this.panel3.Location = new System.Drawing.Point(843, 37); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(300, 806); + this.panel3.TabIndex = 1; + // + // tabControl1 + // + this.tabControl1.Alignment = System.Windows.Forms.TabAlignment.Left; + this.tabControl1.Controls.Add(this.tabPage1); + this.tabControl1.Controls.Add(this.tabPage2); + this.tabControl1.Controls.Add(this.tabPage3); + this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tabControl1.Location = new System.Drawing.Point(5, 37); + this.tabControl1.Multiline = true; + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(838, 806); + this.tabControl1.TabIndex = 2; + // + // tabPage1 + // + this.tabPage1.Controls.Add(this.tableLayoutPanel1); + this.tabPage1.Location = new System.Drawing.Point(25, 4); + this.tabPage1.Margin = new System.Windows.Forms.Padding(0); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Size = new System.Drawing.Size(809, 798); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "I/O"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 1; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel1.Controls.Add(this.panel2, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.panel1, 0, 1); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(0); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 2; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(809, 798); + this.tableLayoutPanel1.TabIndex = 0; + // + // panel2 + // + this.panel2.BackColor = System.Drawing.Color.White; + this.panel2.Controls.Add(this.tblDI); + this.panel2.Controls.Add(this.lbTitle1); + this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel2.Location = new System.Drawing.Point(0, 0); + this.panel2.Margin = new System.Windows.Forms.Padding(0); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(809, 399); + this.panel2.TabIndex = 1; + // + // tblDI + // + this.tblDI.arVeriticalDraw = true; + this.tblDI.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.tblDI.BorderSize = 1; + colorListItem1.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem1.Remark = ""; + colorListItem2.BackColor1 = System.Drawing.Color.Green; + colorListItem2.BackColor2 = System.Drawing.Color.Green; + colorListItem2.Remark = ""; + this.tblDI.ColorList = new arFrame.Control.ColorListItem[] { + colorListItem1, + colorListItem2}; + this.tblDI.Cursor = System.Windows.Forms.Cursors.Arrow; + this.tblDI.Dock = System.Windows.Forms.DockStyle.Fill; + this.tblDI.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Bold); + this.tblDI.FontPin = new System.Drawing.Font("Consolas", 6.75F); + this.tblDI.ForeColor = System.Drawing.Color.WhiteSmoke; + this.tblDI.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.tblDI.Location = new System.Drawing.Point(0, 23); + this.tblDI.MatrixSize = new System.Drawing.Point(8, 8); + this.tblDI.MenuBorderSize = 1; + this.tblDI.MenuGap = 5; + this.tblDI.MinimumSize = new System.Drawing.Size(100, 50); + this.tblDI.Name = "tblDI"; + this.tblDI.Names = null; + this.tblDI.ShadowColor = System.Drawing.Color.Black; + this.tblDI.showDebugInfo = false; + this.tblDI.ShowIndexString = true; + this.tblDI.Size = new System.Drawing.Size(809, 376); + this.tblDI.TabIndex = 3; + this.tblDI.Tags = null; + this.tblDI.Text = "gridView2"; + this.tblDI.TextAttachToImage = true; + this.tblDI.Titles = null; + this.tblDI.Values = null; + // + // lbTitle1 + // + this.lbTitle1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(60)))), ((int)(((byte)(60))))); + this.lbTitle1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lbTitle1.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbTitle1.BorderColor = System.Drawing.Color.Cyan; + this.lbTitle1.BorderColorOver = System.Drawing.Color.Cyan; + this.lbTitle1.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); + this.lbTitle1.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbTitle1.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbTitle1.Dock = System.Windows.Forms.DockStyle.Top; + this.lbTitle1.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbTitle1.ForeColor = System.Drawing.Color.White; + this.lbTitle1.GradientEnable = true; + this.lbTitle1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lbTitle1.GradientRepeatBG = false; + this.lbTitle1.isButton = false; + this.lbTitle1.Location = new System.Drawing.Point(0, 0); + this.lbTitle1.MouseDownColor = System.Drawing.Color.Yellow; + this.lbTitle1.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbTitle1.msg = null; + this.lbTitle1.Name = "lbTitle1"; + this.lbTitle1.ProgressBorderColor = System.Drawing.Color.Black; + this.lbTitle1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbTitle1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbTitle1.ProgressEnable = false; + this.lbTitle1.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbTitle1.ProgressForeColor = System.Drawing.Color.Black; + this.lbTitle1.ProgressMax = 100F; + this.lbTitle1.ProgressMin = 0F; + this.lbTitle1.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbTitle1.ProgressValue = 0F; + this.lbTitle1.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.lbTitle1.Sign = ""; + this.lbTitle1.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbTitle1.SignColor = System.Drawing.Color.SkyBlue; + this.lbTitle1.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbTitle1.Size = new System.Drawing.Size(809, 23); + this.lbTitle1.TabIndex = 0; + this.lbTitle1.Text = "Digital Input"; + this.lbTitle1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbTitle1.TextShadow = false; + this.lbTitle1.TextVisible = true; + // + // panel1 + // + this.panel1.BackColor = System.Drawing.Color.White; + this.panel1.Controls.Add(this.tblDO); + this.panel1.Controls.Add(this.lbtitle2); + this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel1.Location = new System.Drawing.Point(0, 399); + this.panel1.Margin = new System.Windows.Forms.Padding(0); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(809, 399); + this.panel1.TabIndex = 0; + // + // tblDO + // + this.tblDO.arVeriticalDraw = true; + this.tblDO.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.tblDO.BorderSize = 1; + colorListItem3.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem3.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem3.Remark = ""; + colorListItem4.BackColor1 = System.Drawing.Color.OrangeRed; + colorListItem4.BackColor2 = System.Drawing.Color.OrangeRed; + colorListItem4.Remark = ""; + this.tblDO.ColorList = new arFrame.Control.ColorListItem[] { + colorListItem3, + colorListItem4}; + this.tblDO.Cursor = System.Windows.Forms.Cursors.Arrow; + this.tblDO.Dock = System.Windows.Forms.DockStyle.Fill; + this.tblDO.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tblDO.FontPin = new System.Drawing.Font("Consolas", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tblDO.ForeColor = System.Drawing.Color.WhiteSmoke; + this.tblDO.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.tblDO.Location = new System.Drawing.Point(0, 23); + this.tblDO.MatrixSize = new System.Drawing.Point(8, 8); + this.tblDO.MenuBorderSize = 1; + this.tblDO.MenuGap = 5; + this.tblDO.MinimumSize = new System.Drawing.Size(100, 50); + this.tblDO.Name = "tblDO"; + this.tblDO.Names = null; + this.tblDO.ShadowColor = System.Drawing.Color.Black; + this.tblDO.showDebugInfo = false; + this.tblDO.ShowIndexString = true; + this.tblDO.Size = new System.Drawing.Size(809, 376); + this.tblDO.TabIndex = 3; + this.tblDO.Tags = null; + this.tblDO.Text = "gridView3"; + this.tblDO.TextAttachToImage = true; + this.tblDO.Titles = null; + this.tblDO.Values = null; + // + // lbtitle2 + // + this.lbtitle2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(60)))), ((int)(((byte)(60))))); + this.lbtitle2.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lbtitle2.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbtitle2.BorderColor = System.Drawing.Color.Tomato; + this.lbtitle2.BorderColorOver = System.Drawing.Color.Tomato; + this.lbtitle2.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); + this.lbtitle2.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbtitle2.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbtitle2.Dock = System.Windows.Forms.DockStyle.Top; + this.lbtitle2.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbtitle2.ForeColor = System.Drawing.Color.White; + this.lbtitle2.GradientEnable = true; + this.lbtitle2.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lbtitle2.GradientRepeatBG = false; + this.lbtitle2.isButton = false; + this.lbtitle2.Location = new System.Drawing.Point(0, 0); + this.lbtitle2.MouseDownColor = System.Drawing.Color.Yellow; + this.lbtitle2.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbtitle2.msg = null; + this.lbtitle2.Name = "lbtitle2"; + this.lbtitle2.ProgressBorderColor = System.Drawing.Color.Black; + this.lbtitle2.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbtitle2.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbtitle2.ProgressEnable = false; + this.lbtitle2.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbtitle2.ProgressForeColor = System.Drawing.Color.Black; + this.lbtitle2.ProgressMax = 100F; + this.lbtitle2.ProgressMin = 0F; + this.lbtitle2.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbtitle2.ProgressValue = 0F; + this.lbtitle2.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.lbtitle2.Sign = ""; + this.lbtitle2.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbtitle2.SignColor = System.Drawing.Color.Yellow; + this.lbtitle2.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbtitle2.Size = new System.Drawing.Size(809, 23); + this.lbtitle2.TabIndex = 1; + this.lbtitle2.Text = "Digital Output"; + this.lbtitle2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbtitle2.TextShadow = false; + this.lbtitle2.TextVisible = true; + // + // tabPage2 + // + this.tabPage2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.tabPage2.Controls.Add(this.gridView1); + this.tabPage2.Controls.Add(this.lbTitle4); + this.tabPage2.Controls.Add(this.tblFG); + this.tabPage2.Controls.Add(this.lbTitle3); + this.tabPage2.Location = new System.Drawing.Point(22, 4); + this.tabPage2.Name = "tabPage2"; + this.tabPage2.Size = new System.Drawing.Size(812, 798); + this.tabPage2.TabIndex = 1; + this.tabPage2.Text = "Flag"; + // + // gridView1 + // + this.gridView1.arVeriticalDraw = false; + this.gridView1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.gridView1.BorderSize = 1; + colorListItem5.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem5.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem5.Remark = ""; + colorListItem6.BackColor1 = System.Drawing.Color.Orange; + colorListItem6.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem6.Remark = ""; + this.gridView1.ColorList = new arFrame.Control.ColorListItem[] { + colorListItem5, + colorListItem6}; + this.gridView1.Cursor = System.Windows.Forms.Cursors.Arrow; + this.gridView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.gridView1.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Bold); + this.gridView1.FontPin = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Bold); + this.gridView1.ForeColor = System.Drawing.Color.WhiteSmoke; + this.gridView1.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gridView1.Location = new System.Drawing.Point(0, 422); + this.gridView1.MatrixSize = new System.Drawing.Point(8, 8); + this.gridView1.MenuBorderSize = 1; + this.gridView1.MenuGap = 5; + this.gridView1.MinimumSize = new System.Drawing.Size(100, 50); + this.gridView1.Name = "gridView1"; + this.gridView1.Names = null; + this.gridView1.ShadowColor = System.Drawing.Color.Black; + this.gridView1.showDebugInfo = false; + this.gridView1.ShowIndexString = true; + this.gridView1.Size = new System.Drawing.Size(812, 376); + this.gridView1.TabIndex = 5; + this.gridView1.Tags = null; + this.gridView1.Text = "gridView3"; + this.gridView1.TextAttachToImage = true; + this.gridView1.Titles = null; + this.gridView1.Values = null; + // + // lbTitle4 + // + this.lbTitle4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(60)))), ((int)(((byte)(60))))); + this.lbTitle4.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lbTitle4.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbTitle4.BorderColor = System.Drawing.Color.Red; + this.lbTitle4.BorderColorOver = System.Drawing.Color.Red; + this.lbTitle4.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); + this.lbTitle4.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbTitle4.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbTitle4.Dock = System.Windows.Forms.DockStyle.Top; + this.lbTitle4.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbTitle4.ForeColor = System.Drawing.Color.White; + this.lbTitle4.GradientEnable = true; + this.lbTitle4.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lbTitle4.GradientRepeatBG = false; + this.lbTitle4.isButton = false; + this.lbTitle4.Location = new System.Drawing.Point(0, 399); + this.lbTitle4.MouseDownColor = System.Drawing.Color.Yellow; + this.lbTitle4.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbTitle4.msg = null; + this.lbTitle4.Name = "lbTitle4"; + this.lbTitle4.ProgressBorderColor = System.Drawing.Color.Black; + this.lbTitle4.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbTitle4.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbTitle4.ProgressEnable = false; + this.lbTitle4.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbTitle4.ProgressForeColor = System.Drawing.Color.Black; + this.lbTitle4.ProgressMax = 100F; + this.lbTitle4.ProgressMin = 0F; + this.lbTitle4.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbTitle4.ProgressValue = 0F; + this.lbTitle4.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.lbTitle4.Sign = ""; + this.lbTitle4.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbTitle4.SignColor = System.Drawing.Color.Yellow; + this.lbTitle4.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbTitle4.Size = new System.Drawing.Size(812, 23); + this.lbTitle4.TabIndex = 4; + this.lbTitle4.Text = "--"; + this.lbTitle4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbTitle4.TextShadow = false; + this.lbTitle4.TextVisible = true; + // + // tblFG + // + this.tblFG.arVeriticalDraw = false; + this.tblFG.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.tblFG.BorderSize = 1; + colorListItem7.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem7.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem7.Remark = ""; + colorListItem8.BackColor1 = System.Drawing.Color.Orange; + colorListItem8.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem8.Remark = ""; + this.tblFG.ColorList = new arFrame.Control.ColorListItem[] { + colorListItem7, + colorListItem8}; + this.tblFG.Cursor = System.Windows.Forms.Cursors.Arrow; + this.tblFG.Dock = System.Windows.Forms.DockStyle.Top; + this.tblFG.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Bold); + this.tblFG.FontPin = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Bold); + this.tblFG.ForeColor = System.Drawing.Color.WhiteSmoke; + this.tblFG.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.tblFG.Location = new System.Drawing.Point(0, 23); + this.tblFG.MatrixSize = new System.Drawing.Point(8, 8); + this.tblFG.MenuBorderSize = 1; + this.tblFG.MenuGap = 5; + this.tblFG.MinimumSize = new System.Drawing.Size(100, 50); + this.tblFG.Name = "tblFG"; + this.tblFG.Names = null; + this.tblFG.ShadowColor = System.Drawing.Color.Black; + this.tblFG.showDebugInfo = false; + this.tblFG.ShowIndexString = true; + this.tblFG.Size = new System.Drawing.Size(812, 376); + this.tblFG.TabIndex = 2; + this.tblFG.Tags = null; + this.tblFG.Text = "gridView1"; + this.tblFG.TextAttachToImage = true; + this.tblFG.Titles = null; + this.tblFG.Values = null; + // + // lbTitle3 + // + this.lbTitle3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(60)))), ((int)(((byte)(60))))); + this.lbTitle3.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lbTitle3.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbTitle3.BorderColor = System.Drawing.Color.Gold; + this.lbTitle3.BorderColorOver = System.Drawing.Color.Gold; + this.lbTitle3.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); + this.lbTitle3.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbTitle3.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbTitle3.Dock = System.Windows.Forms.DockStyle.Top; + this.lbTitle3.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbTitle3.ForeColor = System.Drawing.Color.White; + this.lbTitle3.GradientEnable = true; + this.lbTitle3.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lbTitle3.GradientRepeatBG = false; + this.lbTitle3.isButton = false; + this.lbTitle3.Location = new System.Drawing.Point(0, 0); + this.lbTitle3.MouseDownColor = System.Drawing.Color.Yellow; + this.lbTitle3.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbTitle3.msg = null; + this.lbTitle3.Name = "lbTitle3"; + this.lbTitle3.ProgressBorderColor = System.Drawing.Color.Black; + this.lbTitle3.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbTitle3.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbTitle3.ProgressEnable = false; + this.lbTitle3.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbTitle3.ProgressForeColor = System.Drawing.Color.Black; + this.lbTitle3.ProgressMax = 100F; + this.lbTitle3.ProgressMin = 0F; + this.lbTitle3.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbTitle3.ProgressValue = 0F; + this.lbTitle3.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.lbTitle3.Sign = ""; + this.lbTitle3.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbTitle3.SignColor = System.Drawing.Color.Yellow; + this.lbTitle3.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbTitle3.Size = new System.Drawing.Size(812, 23); + this.lbTitle3.TabIndex = 3; + this.lbTitle3.Text = "FLAG"; + this.lbTitle3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbTitle3.TextShadow = false; + this.lbTitle3.TextVisible = true; + // + // tabPage3 + // + this.tabPage3.Controls.Add(this.tableLayoutPanel2); + this.tabPage3.Location = new System.Drawing.Point(22, 4); + this.tabPage3.Name = "tabPage3"; + this.tabPage3.Size = new System.Drawing.Size(812, 798); + this.tabPage3.TabIndex = 2; + this.tabPage3.Text = "Lock"; + this.tabPage3.UseVisualStyleBackColor = true; + // + // tableLayoutPanel2 + // + this.tableLayoutPanel2.ColumnCount = 3; + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel2.Controls.Add(this.panel14, 1, 1); + this.tableLayoutPanel2.Controls.Add(this.panel13, 0, 1); + this.tableLayoutPanel2.Controls.Add(this.panel9, 1, 2); + this.tableLayoutPanel2.Controls.Add(this.panel10, 0, 2); + this.tableLayoutPanel2.Controls.Add(this.panel12, 1, 3); + this.tableLayoutPanel2.Controls.Add(this.panel8, 2, 1); + this.tableLayoutPanel2.Controls.Add(this.panel5, 2, 0); + this.tableLayoutPanel2.Controls.Add(this.panel11, 2, 2); + this.tableLayoutPanel2.Controls.Add(this.panel15, 0, 0); + this.tableLayoutPanel2.Controls.Add(this.panel16, 1, 0); + this.tableLayoutPanel2.Controls.Add(this.panel17, 0, 3); + this.tableLayoutPanel2.Controls.Add(this.panel18, 2, 3); + this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel2.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel2.Name = "tableLayoutPanel2"; + this.tableLayoutPanel2.RowCount = 4; + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel2.Size = new System.Drawing.Size(812, 798); + this.tableLayoutPanel2.TabIndex = 0; + // + // panel14 + // + this.panel14.Controls.Add(this.gviPRM); + this.panel14.Controls.Add(this.label7); + this.panel14.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel14.Location = new System.Drawing.Point(273, 202); + this.panel14.Name = "panel14"; + this.panel14.Size = new System.Drawing.Size(264, 193); + this.panel14.TabIndex = 2; + // + // gviPRM + // + this.gviPRM.arVeriticalDraw = false; + this.gviPRM.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.gviPRM.BorderSize = 1; + colorListItem9.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem9.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem9.Remark = ""; + colorListItem10.BackColor1 = System.Drawing.Color.Orange; + colorListItem10.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem10.Remark = ""; + this.gviPRM.ColorList = new arFrame.Control.ColorListItem[] { + colorListItem9, + colorListItem10}; + this.gviPRM.Cursor = System.Windows.Forms.Cursors.Arrow; + this.gviPRM.Dock = System.Windows.Forms.DockStyle.Fill; + this.gviPRM.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gviPRM.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gviPRM.ForeColor = System.Drawing.Color.White; + this.gviPRM.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gviPRM.Location = new System.Drawing.Point(0, 28); + this.gviPRM.MatrixSize = new System.Drawing.Point(4, 4); + this.gviPRM.MenuBorderSize = 1; + this.gviPRM.MenuGap = 5; + this.gviPRM.MinimumSize = new System.Drawing.Size(100, 50); + this.gviPRM.Name = "gviPRM"; + this.gviPRM.Names = null; + this.gviPRM.ShadowColor = System.Drawing.Color.Black; + this.gviPRM.showDebugInfo = false; + this.gviPRM.ShowIndexString = true; + this.gviPRM.Size = new System.Drawing.Size(264, 165); + this.gviPRM.TabIndex = 3; + this.gviPRM.Tag = "PRM"; + this.gviPRM.Tags = null; + this.gviPRM.Text = "gridView1"; + this.gviPRM.TextAttachToImage = true; + this.gviPRM.Titles = null; + this.gviPRM.Values = null; + // + // label7 + // + this.label7.Dock = System.Windows.Forms.DockStyle.Top; + this.label7.Location = new System.Drawing.Point(0, 0); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(264, 28); + this.label7.TabIndex = 4; + this.label7.Text = "PRINT-RIGHT-MOVE"; + this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel13 + // + this.panel13.Controls.Add(this.gviPLM); + this.panel13.Controls.Add(this.label6); + this.panel13.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel13.Location = new System.Drawing.Point(3, 202); + this.panel13.Name = "panel13"; + this.panel13.Size = new System.Drawing.Size(264, 193); + this.panel13.TabIndex = 1; + // + // gviPLM + // + this.gviPLM.arVeriticalDraw = false; + this.gviPLM.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.gviPLM.BorderSize = 1; + colorListItem11.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem11.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem11.Remark = ""; + colorListItem12.BackColor1 = System.Drawing.Color.Orange; + colorListItem12.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem12.Remark = ""; + this.gviPLM.ColorList = new arFrame.Control.ColorListItem[] { + colorListItem11, + colorListItem12}; + this.gviPLM.Cursor = System.Windows.Forms.Cursors.Arrow; + this.gviPLM.Dock = System.Windows.Forms.DockStyle.Fill; + this.gviPLM.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gviPLM.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gviPLM.ForeColor = System.Drawing.Color.White; + this.gviPLM.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gviPLM.Location = new System.Drawing.Point(0, 28); + this.gviPLM.MatrixSize = new System.Drawing.Point(4, 4); + this.gviPLM.MenuBorderSize = 1; + this.gviPLM.MenuGap = 5; + this.gviPLM.MinimumSize = new System.Drawing.Size(100, 50); + this.gviPLM.Name = "gviPLM"; + this.gviPLM.Names = null; + this.gviPLM.ShadowColor = System.Drawing.Color.Black; + this.gviPLM.showDebugInfo = false; + this.gviPLM.ShowIndexString = true; + this.gviPLM.Size = new System.Drawing.Size(264, 165); + this.gviPLM.TabIndex = 3; + this.gviPLM.Tag = "PLM"; + this.gviPLM.Tags = null; + this.gviPLM.Text = "gridView1"; + this.gviPLM.TextAttachToImage = true; + this.gviPLM.Titles = null; + this.gviPLM.Values = null; + // + // label6 + // + this.label6.Dock = System.Windows.Forms.DockStyle.Top; + this.label6.Location = new System.Drawing.Point(0, 0); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(264, 28); + this.label6.TabIndex = 4; + this.label6.Text = "PRINT-LEFT-MOVE"; + this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel9 + // + this.panel9.Controls.Add(this.gviPRZ); + this.panel9.Controls.Add(this.label3); + this.panel9.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel9.Location = new System.Drawing.Point(273, 401); + this.panel9.Name = "panel9"; + this.panel9.Size = new System.Drawing.Size(264, 193); + this.panel9.TabIndex = 0; + // + // gviPRZ + // + this.gviPRZ.arVeriticalDraw = false; + this.gviPRZ.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.gviPRZ.BorderSize = 1; + colorListItem13.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem13.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem13.Remark = ""; + colorListItem14.BackColor1 = System.Drawing.Color.Orange; + colorListItem14.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem14.Remark = ""; + this.gviPRZ.ColorList = new arFrame.Control.ColorListItem[] { + colorListItem13, + colorListItem14}; + this.gviPRZ.Cursor = System.Windows.Forms.Cursors.Arrow; + this.gviPRZ.Dock = System.Windows.Forms.DockStyle.Fill; + this.gviPRZ.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gviPRZ.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gviPRZ.ForeColor = System.Drawing.Color.White; + this.gviPRZ.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gviPRZ.Location = new System.Drawing.Point(0, 28); + this.gviPRZ.MatrixSize = new System.Drawing.Point(4, 4); + this.gviPRZ.MenuBorderSize = 1; + this.gviPRZ.MenuGap = 5; + this.gviPRZ.MinimumSize = new System.Drawing.Size(100, 50); + this.gviPRZ.Name = "gviPRZ"; + this.gviPRZ.Names = null; + this.gviPRZ.ShadowColor = System.Drawing.Color.Black; + this.gviPRZ.showDebugInfo = false; + this.gviPRZ.ShowIndexString = true; + this.gviPRZ.Size = new System.Drawing.Size(264, 165); + this.gviPRZ.TabIndex = 3; + this.gviPRZ.Tag = "PRZ"; + this.gviPRZ.Tags = null; + this.gviPRZ.Text = "gridView1"; + this.gviPRZ.TextAttachToImage = true; + this.gviPRZ.Titles = null; + this.gviPRZ.Values = null; + // + // label3 + // + this.label3.Dock = System.Windows.Forms.DockStyle.Top; + this.label3.Location = new System.Drawing.Point(0, 0); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(264, 28); + this.label3.TabIndex = 4; + this.label3.Text = "PRINT-RIGHT-UP/DOWN"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel10 + // + this.panel10.Controls.Add(this.gviPLZ); + this.panel10.Controls.Add(this.label4); + this.panel10.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel10.Location = new System.Drawing.Point(3, 401); + this.panel10.Name = "panel10"; + this.panel10.Size = new System.Drawing.Size(264, 193); + this.panel10.TabIndex = 0; + // + // gviPLZ + // + this.gviPLZ.arVeriticalDraw = false; + this.gviPLZ.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.gviPLZ.BorderSize = 1; + colorListItem15.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem15.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem15.Remark = ""; + colorListItem16.BackColor1 = System.Drawing.Color.Orange; + colorListItem16.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem16.Remark = ""; + this.gviPLZ.ColorList = new arFrame.Control.ColorListItem[] { + colorListItem15, + colorListItem16}; + this.gviPLZ.Cursor = System.Windows.Forms.Cursors.Arrow; + this.gviPLZ.Dock = System.Windows.Forms.DockStyle.Fill; + this.gviPLZ.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gviPLZ.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gviPLZ.ForeColor = System.Drawing.Color.White; + this.gviPLZ.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gviPLZ.Location = new System.Drawing.Point(0, 28); + this.gviPLZ.MatrixSize = new System.Drawing.Point(4, 4); + this.gviPLZ.MenuBorderSize = 1; + this.gviPLZ.MenuGap = 5; + this.gviPLZ.MinimumSize = new System.Drawing.Size(100, 50); + this.gviPLZ.Name = "gviPLZ"; + this.gviPLZ.Names = null; + this.gviPLZ.ShadowColor = System.Drawing.Color.Black; + this.gviPLZ.showDebugInfo = false; + this.gviPLZ.ShowIndexString = true; + this.gviPLZ.Size = new System.Drawing.Size(264, 165); + this.gviPLZ.TabIndex = 3; + this.gviPLZ.Tag = "PLZ"; + this.gviPLZ.Tags = null; + this.gviPLZ.Text = "gridView1"; + this.gviPLZ.TextAttachToImage = true; + this.gviPLZ.Titles = null; + this.gviPLZ.Values = null; + // + // label4 + // + this.label4.Dock = System.Windows.Forms.DockStyle.Top; + this.label4.Location = new System.Drawing.Point(0, 0); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(264, 28); + this.label4.TabIndex = 4; + this.label4.Text = "PRINT-LEFT-UP/DOWN"; + this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel12 + // + this.panel12.Controls.Add(this.panel19); + this.panel12.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel12.Location = new System.Drawing.Point(273, 600); + this.panel12.Name = "panel12"; + this.panel12.Size = new System.Drawing.Size(264, 195); + this.panel12.TabIndex = 0; + // + // panel19 + // + this.panel19.Controls.Add(this.gviVS1); + this.panel19.Controls.Add(this.label2); + this.panel19.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel19.Location = new System.Drawing.Point(0, 0); + this.panel19.Name = "panel19"; + this.panel19.Size = new System.Drawing.Size(264, 195); + this.panel19.TabIndex = 0; + // + // gviVS1 + // + this.gviVS1.arVeriticalDraw = false; + this.gviVS1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.gviVS1.BorderSize = 1; + colorListItem17.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem17.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem17.Remark = ""; + colorListItem18.BackColor1 = System.Drawing.Color.Orange; + colorListItem18.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem18.Remark = ""; + this.gviVS1.ColorList = new arFrame.Control.ColorListItem[] { + colorListItem17, + colorListItem18}; + this.gviVS1.Cursor = System.Windows.Forms.Cursors.Arrow; + this.gviVS1.Dock = System.Windows.Forms.DockStyle.Fill; + this.gviVS1.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gviVS1.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gviVS1.ForeColor = System.Drawing.Color.White; + this.gviVS1.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gviVS1.Location = new System.Drawing.Point(0, 28); + this.gviVS1.MatrixSize = new System.Drawing.Point(4, 4); + this.gviVS1.MenuBorderSize = 1; + this.gviVS1.MenuGap = 5; + this.gviVS1.MinimumSize = new System.Drawing.Size(100, 50); + this.gviVS1.Name = "gviVS1"; + this.gviVS1.Names = null; + this.gviVS1.ShadowColor = System.Drawing.Color.Black; + this.gviVS1.showDebugInfo = false; + this.gviVS1.ShowIndexString = true; + this.gviVS1.Size = new System.Drawing.Size(264, 167); + this.gviVS1.TabIndex = 3; + this.gviVS1.Tag = "VS1"; + this.gviVS1.Tags = null; + this.gviVS1.Text = "gridView1"; + this.gviVS1.TextAttachToImage = true; + this.gviVS1.Titles = null; + this.gviVS1.Values = null; + // + // label2 + // + this.label2.Dock = System.Windows.Forms.DockStyle.Top; + this.label2.ForeColor = System.Drawing.Color.Brown; + this.label2.Location = new System.Drawing.Point(0, 0); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(264, 28); + this.label2.TabIndex = 4; + this.label2.Text = "VISION 1"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel8 + // + this.panel8.Controls.Add(this.gviPKZ); + this.panel8.Controls.Add(this.lbXR); + this.panel8.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel8.Location = new System.Drawing.Point(543, 202); + this.panel8.Name = "panel8"; + this.panel8.Size = new System.Drawing.Size(266, 193); + this.panel8.TabIndex = 0; + // + // gviPKZ + // + this.gviPKZ.arVeriticalDraw = false; + this.gviPKZ.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.gviPKZ.BorderSize = 1; + colorListItem19.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem19.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem19.Remark = ""; + colorListItem20.BackColor1 = System.Drawing.Color.Orange; + colorListItem20.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem20.Remark = ""; + this.gviPKZ.ColorList = new arFrame.Control.ColorListItem[] { + colorListItem19, + colorListItem20}; + this.gviPKZ.Cursor = System.Windows.Forms.Cursors.Arrow; + this.gviPKZ.Dock = System.Windows.Forms.DockStyle.Fill; + this.gviPKZ.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gviPKZ.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gviPKZ.ForeColor = System.Drawing.Color.White; + this.gviPKZ.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gviPKZ.Location = new System.Drawing.Point(0, 28); + this.gviPKZ.MatrixSize = new System.Drawing.Point(4, 4); + this.gviPKZ.MenuBorderSize = 1; + this.gviPKZ.MenuGap = 5; + this.gviPKZ.MinimumSize = new System.Drawing.Size(100, 50); + this.gviPKZ.Name = "gviPKZ"; + this.gviPKZ.Names = null; + this.gviPKZ.ShadowColor = System.Drawing.Color.Black; + this.gviPKZ.showDebugInfo = false; + this.gviPKZ.ShowIndexString = true; + this.gviPKZ.Size = new System.Drawing.Size(266, 165); + this.gviPKZ.TabIndex = 3; + this.gviPKZ.Tag = "PKZ"; + this.gviPKZ.Tags = null; + this.gviPKZ.Text = "gridView1"; + this.gviPKZ.TextAttachToImage = true; + this.gviPKZ.Titles = null; + this.gviPKZ.Values = null; + // + // lbXR + // + this.lbXR.Dock = System.Windows.Forms.DockStyle.Top; + this.lbXR.ForeColor = System.Drawing.Color.Fuchsia; + this.lbXR.Location = new System.Drawing.Point(0, 0); + this.lbXR.Name = "lbXR"; + this.lbXR.Size = new System.Drawing.Size(266, 28); + this.lbXR.TabIndex = 4; + this.lbXR.Text = "PICKER-Z"; + this.lbXR.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel5 + // + this.panel5.Controls.Add(this.gviPKX); + this.panel5.Controls.Add(this.label1); + this.panel5.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel5.Location = new System.Drawing.Point(543, 3); + this.panel5.Name = "panel5"; + this.panel5.Size = new System.Drawing.Size(266, 193); + this.panel5.TabIndex = 0; + // + // gviPKX + // + this.gviPKX.arVeriticalDraw = false; + this.gviPKX.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.gviPKX.BorderSize = 1; + colorListItem21.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem21.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem21.Remark = ""; + colorListItem22.BackColor1 = System.Drawing.Color.Orange; + colorListItem22.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem22.Remark = ""; + this.gviPKX.ColorList = new arFrame.Control.ColorListItem[] { + colorListItem21, + colorListItem22}; + this.gviPKX.Cursor = System.Windows.Forms.Cursors.Arrow; + this.gviPKX.Dock = System.Windows.Forms.DockStyle.Fill; + this.gviPKX.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gviPKX.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gviPKX.ForeColor = System.Drawing.Color.White; + this.gviPKX.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gviPKX.Location = new System.Drawing.Point(0, 26); + this.gviPKX.MatrixSize = new System.Drawing.Point(4, 4); + this.gviPKX.MenuBorderSize = 1; + this.gviPKX.MenuGap = 5; + this.gviPKX.MinimumSize = new System.Drawing.Size(100, 50); + this.gviPKX.Name = "gviPKX"; + this.gviPKX.Names = null; + this.gviPKX.ShadowColor = System.Drawing.Color.Black; + this.gviPKX.showDebugInfo = false; + this.gviPKX.ShowIndexString = true; + this.gviPKX.Size = new System.Drawing.Size(266, 167); + this.gviPKX.TabIndex = 3; + this.gviPKX.Tag = "PKX"; + this.gviPKX.Tags = null; + this.gviPKX.Text = "gridView1"; + this.gviPKX.TextAttachToImage = true; + this.gviPKX.Titles = null; + this.gviPKX.Values = null; + // + // label1 + // + this.label1.Dock = System.Windows.Forms.DockStyle.Top; + this.label1.ForeColor = System.Drawing.Color.Fuchsia; + this.label1.Location = new System.Drawing.Point(0, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(266, 26); + this.label1.TabIndex = 4; + this.label1.Text = "PICKER-Y"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel11 + // + this.panel11.Controls.Add(this.gviPKT); + this.panel11.Controls.Add(this.label5); + this.panel11.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel11.Location = new System.Drawing.Point(543, 401); + this.panel11.Name = "panel11"; + this.panel11.Size = new System.Drawing.Size(266, 193); + this.panel11.TabIndex = 0; + // + // gviPKT + // + this.gviPKT.arVeriticalDraw = false; + this.gviPKT.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.gviPKT.BorderSize = 1; + colorListItem23.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem23.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem23.Remark = ""; + colorListItem24.BackColor1 = System.Drawing.Color.Orange; + colorListItem24.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem24.Remark = ""; + this.gviPKT.ColorList = new arFrame.Control.ColorListItem[] { + colorListItem23, + colorListItem24}; + this.gviPKT.Cursor = System.Windows.Forms.Cursors.Arrow; + this.gviPKT.Dock = System.Windows.Forms.DockStyle.Fill; + this.gviPKT.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gviPKT.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gviPKT.ForeColor = System.Drawing.Color.White; + this.gviPKT.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gviPKT.Location = new System.Drawing.Point(0, 28); + this.gviPKT.MatrixSize = new System.Drawing.Point(4, 4); + this.gviPKT.MenuBorderSize = 1; + this.gviPKT.MenuGap = 5; + this.gviPKT.MinimumSize = new System.Drawing.Size(100, 50); + this.gviPKT.Name = "gviPKT"; + this.gviPKT.Names = null; + this.gviPKT.ShadowColor = System.Drawing.Color.Black; + this.gviPKT.showDebugInfo = false; + this.gviPKT.ShowIndexString = true; + this.gviPKT.Size = new System.Drawing.Size(266, 165); + this.gviPKT.TabIndex = 3; + this.gviPKT.Tag = "PKT"; + this.gviPKT.Tags = null; + this.gviPKT.Text = "gridView1"; + this.gviPKT.TextAttachToImage = true; + this.gviPKT.Titles = null; + this.gviPKT.Values = null; + // + // label5 + // + this.label5.Dock = System.Windows.Forms.DockStyle.Top; + this.label5.ForeColor = System.Drawing.Color.Fuchsia; + this.label5.Location = new System.Drawing.Point(0, 0); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(266, 28); + this.label5.TabIndex = 4; + this.label5.Text = "THETA(ANGLE)"; + this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel15 + // + this.panel15.Controls.Add(this.gviPRL); + this.panel15.Controls.Add(this.label8); + this.panel15.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel15.Location = new System.Drawing.Point(3, 3); + this.panel15.Name = "panel15"; + this.panel15.Size = new System.Drawing.Size(264, 193); + this.panel15.TabIndex = 0; + // + // gviPRL + // + this.gviPRL.arVeriticalDraw = false; + this.gviPRL.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.gviPRL.BorderSize = 1; + colorListItem25.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem25.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem25.Remark = ""; + colorListItem26.BackColor1 = System.Drawing.Color.Orange; + colorListItem26.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem26.Remark = ""; + this.gviPRL.ColorList = new arFrame.Control.ColorListItem[] { + colorListItem25, + colorListItem26}; + this.gviPRL.Cursor = System.Windows.Forms.Cursors.Arrow; + this.gviPRL.Dock = System.Windows.Forms.DockStyle.Fill; + this.gviPRL.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gviPRL.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gviPRL.ForeColor = System.Drawing.Color.White; + this.gviPRL.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gviPRL.Location = new System.Drawing.Point(0, 28); + this.gviPRL.MatrixSize = new System.Drawing.Point(4, 4); + this.gviPRL.MenuBorderSize = 1; + this.gviPRL.MenuGap = 5; + this.gviPRL.MinimumSize = new System.Drawing.Size(100, 50); + this.gviPRL.Name = "gviPRL"; + this.gviPRL.Names = null; + this.gviPRL.ShadowColor = System.Drawing.Color.Black; + this.gviPRL.showDebugInfo = false; + this.gviPRL.ShowIndexString = true; + this.gviPRL.Size = new System.Drawing.Size(264, 165); + this.gviPRL.TabIndex = 3; + this.gviPRL.Tag = "PRL"; + this.gviPRL.Tags = null; + this.gviPRL.Text = "gridView1"; + this.gviPRL.TextAttachToImage = true; + this.gviPRL.Titles = null; + this.gviPRL.Values = null; + // + // label8 + // + this.label8.Dock = System.Windows.Forms.DockStyle.Top; + this.label8.ForeColor = System.Drawing.Color.Blue; + this.label8.Location = new System.Drawing.Point(0, 0); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(264, 28); + this.label8.TabIndex = 4; + this.label8.Text = "PRINTER - LEFT"; + this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel16 + // + this.panel16.Controls.Add(this.gviPRR); + this.panel16.Controls.Add(this.label9); + this.panel16.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel16.Location = new System.Drawing.Point(273, 3); + this.panel16.Name = "panel16"; + this.panel16.Size = new System.Drawing.Size(264, 193); + this.panel16.TabIndex = 0; + // + // gviPRR + // + this.gviPRR.arVeriticalDraw = false; + this.gviPRR.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.gviPRR.BorderSize = 1; + colorListItem27.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem27.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem27.Remark = ""; + colorListItem28.BackColor1 = System.Drawing.Color.Orange; + colorListItem28.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem28.Remark = ""; + this.gviPRR.ColorList = new arFrame.Control.ColorListItem[] { + colorListItem27, + colorListItem28}; + this.gviPRR.Cursor = System.Windows.Forms.Cursors.Arrow; + this.gviPRR.Dock = System.Windows.Forms.DockStyle.Fill; + this.gviPRR.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gviPRR.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gviPRR.ForeColor = System.Drawing.Color.White; + this.gviPRR.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gviPRR.Location = new System.Drawing.Point(0, 28); + this.gviPRR.MatrixSize = new System.Drawing.Point(4, 4); + this.gviPRR.MenuBorderSize = 1; + this.gviPRR.MenuGap = 5; + this.gviPRR.MinimumSize = new System.Drawing.Size(100, 50); + this.gviPRR.Name = "gviPRR"; + this.gviPRR.Names = null; + this.gviPRR.ShadowColor = System.Drawing.Color.Black; + this.gviPRR.showDebugInfo = false; + this.gviPRR.ShowIndexString = true; + this.gviPRR.Size = new System.Drawing.Size(264, 165); + this.gviPRR.TabIndex = 3; + this.gviPRR.Tag = "PRR"; + this.gviPRR.Tags = null; + this.gviPRR.Text = "gridView1"; + this.gviPRR.TextAttachToImage = true; + this.gviPRR.Titles = null; + this.gviPRR.Values = null; + // + // label9 + // + this.label9.Dock = System.Windows.Forms.DockStyle.Top; + this.label9.ForeColor = System.Drawing.Color.Blue; + this.label9.Location = new System.Drawing.Point(0, 0); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(264, 28); + this.label9.TabIndex = 4; + this.label9.Text = "PRINTER - RIGHT"; + this.label9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel17 + // + this.panel17.Controls.Add(this.gviVS0); + this.panel17.Controls.Add(this.label10); + this.panel17.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel17.Location = new System.Drawing.Point(3, 600); + this.panel17.Name = "panel17"; + this.panel17.Size = new System.Drawing.Size(264, 195); + this.panel17.TabIndex = 0; + // + // gviVS0 + // + this.gviVS0.arVeriticalDraw = false; + this.gviVS0.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.gviVS0.BorderSize = 1; + colorListItem29.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem29.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem29.Remark = ""; + colorListItem30.BackColor1 = System.Drawing.Color.Orange; + colorListItem30.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem30.Remark = ""; + this.gviVS0.ColorList = new arFrame.Control.ColorListItem[] { + colorListItem29, + colorListItem30}; + this.gviVS0.Cursor = System.Windows.Forms.Cursors.Arrow; + this.gviVS0.Dock = System.Windows.Forms.DockStyle.Fill; + this.gviVS0.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gviVS0.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gviVS0.ForeColor = System.Drawing.Color.White; + this.gviVS0.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gviVS0.Location = new System.Drawing.Point(0, 28); + this.gviVS0.MatrixSize = new System.Drawing.Point(4, 4); + this.gviVS0.MenuBorderSize = 1; + this.gviVS0.MenuGap = 5; + this.gviVS0.MinimumSize = new System.Drawing.Size(100, 50); + this.gviVS0.Name = "gviVS0"; + this.gviVS0.Names = null; + this.gviVS0.ShadowColor = System.Drawing.Color.Black; + this.gviVS0.showDebugInfo = false; + this.gviVS0.ShowIndexString = true; + this.gviVS0.Size = new System.Drawing.Size(264, 167); + this.gviVS0.TabIndex = 3; + this.gviVS0.Tag = "VS0"; + this.gviVS0.Tags = null; + this.gviVS0.Text = "gridView1"; + this.gviVS0.TextAttachToImage = true; + this.gviVS0.Titles = null; + this.gviVS0.Values = null; + // + // label10 + // + this.label10.Dock = System.Windows.Forms.DockStyle.Top; + this.label10.ForeColor = System.Drawing.Color.Brown; + this.label10.Location = new System.Drawing.Point(0, 0); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(264, 28); + this.label10.TabIndex = 4; + this.label10.Text = "VISION 0"; + this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel18 + // + this.panel18.Controls.Add(this.gviVS2); + this.panel18.Controls.Add(this.label11); + this.panel18.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel18.Location = new System.Drawing.Point(543, 600); + this.panel18.Name = "panel18"; + this.panel18.Size = new System.Drawing.Size(266, 195); + this.panel18.TabIndex = 0; + // + // gviVS2 + // + this.gviVS2.arVeriticalDraw = false; + this.gviVS2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.gviVS2.BorderSize = 1; + colorListItem31.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + colorListItem31.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + colorListItem31.Remark = ""; + colorListItem32.BackColor1 = System.Drawing.Color.Orange; + colorListItem32.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem32.Remark = ""; + this.gviVS2.ColorList = new arFrame.Control.ColorListItem[] { + colorListItem31, + colorListItem32}; + this.gviVS2.Cursor = System.Windows.Forms.Cursors.Arrow; + this.gviVS2.Dock = System.Windows.Forms.DockStyle.Fill; + this.gviVS2.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gviVS2.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.gviVS2.ForeColor = System.Drawing.Color.White; + this.gviVS2.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.gviVS2.Location = new System.Drawing.Point(0, 28); + this.gviVS2.MatrixSize = new System.Drawing.Point(4, 4); + this.gviVS2.MenuBorderSize = 1; + this.gviVS2.MenuGap = 5; + this.gviVS2.MinimumSize = new System.Drawing.Size(100, 50); + this.gviVS2.Name = "gviVS2"; + this.gviVS2.Names = null; + this.gviVS2.ShadowColor = System.Drawing.Color.Black; + this.gviVS2.showDebugInfo = false; + this.gviVS2.ShowIndexString = true; + this.gviVS2.Size = new System.Drawing.Size(266, 167); + this.gviVS2.TabIndex = 3; + this.gviVS2.Tag = "VS2"; + this.gviVS2.Tags = null; + this.gviVS2.Text = "gridView1"; + this.gviVS2.TextAttachToImage = true; + this.gviVS2.Titles = null; + this.gviVS2.Values = null; + // + // label11 + // + this.label11.Dock = System.Windows.Forms.DockStyle.Top; + this.label11.ForeColor = System.Drawing.Color.Brown; + this.label11.Location = new System.Drawing.Point(0, 0); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(266, 28); + this.label11.TabIndex = 4; + this.label11.Text = "VISION 2"; + this.label11.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel4 + // + this.panel4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.panel4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.panel4.Controls.Add(this.tabControl1); + this.panel4.Controls.Add(this.panel3); + this.panel4.Controls.Add(this.panel6); + this.panel4.Controls.Add(this.panel7); + this.panel4.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel4.Location = new System.Drawing.Point(0, 0); + this.panel4.Name = "panel4"; + this.panel4.Padding = new System.Windows.Forms.Padding(5); + this.panel4.Size = new System.Drawing.Size(1150, 850); + this.panel4.TabIndex = 74; + // + // panel6 + // + this.panel6.Dock = System.Windows.Forms.DockStyle.Top; + this.panel6.Location = new System.Drawing.Point(5, 32); + this.panel6.Name = "panel6"; + this.panel6.Size = new System.Drawing.Size(1138, 5); + this.panel6.TabIndex = 74; + // + // panel7 + // + this.panel7.Controls.Add(this.tbClose); + this.panel7.Controls.Add(this.lbTitle); + this.panel7.Dock = System.Windows.Forms.DockStyle.Top; + this.panel7.Location = new System.Drawing.Point(5, 5); + this.panel7.Name = "panel7"; + this.panel7.Size = new System.Drawing.Size(1138, 27); + this.panel7.TabIndex = 73; + // + // tbClose + // + this.tbClose.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.tbClose.Dock = System.Windows.Forms.DockStyle.Right; + this.tbClose.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.tbClose.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.tbClose.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tbClose.ForeColor = System.Drawing.Color.White; + this.tbClose.Location = new System.Drawing.Point(1094, 0); + this.tbClose.Name = "tbClose"; + this.tbClose.Size = new System.Drawing.Size(44, 27); + this.tbClose.TabIndex = 59; + this.tbClose.Text = "X"; + this.tbClose.UseVisualStyleBackColor = false; + this.tbClose.Click += new System.EventHandler(this.tbClose_Click); + // + // lbTitle + // + this.lbTitle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + this.lbTitle.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(70)))), ((int)(((byte)(70)))), ((int)(((byte)(70))))); + this.lbTitle.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbTitle.BorderColor = System.Drawing.Color.Red; + this.lbTitle.BorderColorOver = System.Drawing.Color.Red; + this.lbTitle.BorderSize = new System.Windows.Forms.Padding(0); + this.lbTitle.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbTitle.ContextMenuStrip = this.contextMenuStrip1; + this.lbTitle.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbTitle.Font = new System.Drawing.Font("Cambria", 12F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbTitle.ForeColor = System.Drawing.Color.LightSkyBlue; + this.lbTitle.GradientEnable = true; + this.lbTitle.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lbTitle.GradientRepeatBG = false; + this.lbTitle.isButton = false; + this.lbTitle.Location = new System.Drawing.Point(0, 0); + this.lbTitle.MouseDownColor = System.Drawing.Color.Yellow; + this.lbTitle.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbTitle.msg = null; + this.lbTitle.Name = "lbTitle"; + this.lbTitle.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lbTitle.ProgressBorderColor = System.Drawing.Color.Black; + this.lbTitle.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbTitle.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbTitle.ProgressEnable = false; + this.lbTitle.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbTitle.ProgressForeColor = System.Drawing.Color.Black; + this.lbTitle.ProgressMax = 100F; + this.lbTitle.ProgressMin = 0F; + this.lbTitle.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbTitle.ProgressValue = 0F; + this.lbTitle.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.lbTitle.Sign = ""; + this.lbTitle.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbTitle.SignColor = System.Drawing.Color.Yellow; + this.lbTitle.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbTitle.Size = new System.Drawing.Size(1138, 27); + this.lbTitle.TabIndex = 60; + this.lbTitle.Text = "USER CONTROL"; + this.lbTitle.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lbTitle.TextShadow = false; + this.lbTitle.TextVisible = true; + // + // tmDisplay + // + this.tmDisplay.Interval = 25; + this.tmDisplay.Tick += new System.EventHandler(this.tmDisplay_Tick); + // + // contextMenuStrip1 + // + this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.saveIOListToolStripMenuItem}); + this.contextMenuStrip1.Name = "contextMenuStrip1"; + this.contextMenuStrip1.Size = new System.Drawing.Size(181, 48); + // + // saveIOListToolStripMenuItem + // + this.saveIOListToolStripMenuItem.Name = "saveIOListToolStripMenuItem"; + this.saveIOListToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.saveIOListToolStripMenuItem.Text = "Export IO List"; + this.saveIOListToolStripMenuItem.Click += new System.EventHandler(this.saveIOListToolStripMenuItem_Click); + // + // fIOMonitor + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.ClientSize = new System.Drawing.Size(1150, 850); + this.Controls.Add(this.panel4); + this.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.KeyPreview = true; + this.Name = "fIOMonitor"; + this.Opacity = 0.95D; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "I/O Monitor"; + this.Load += new System.EventHandler(this.fIOMonitor_Load); + this.tabControl1.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + this.tableLayoutPanel1.ResumeLayout(false); + this.panel2.ResumeLayout(false); + this.panel1.ResumeLayout(false); + this.tabPage2.ResumeLayout(false); + this.tabPage3.ResumeLayout(false); + this.tableLayoutPanel2.ResumeLayout(false); + this.panel14.ResumeLayout(false); + this.panel13.ResumeLayout(false); + this.panel9.ResumeLayout(false); + this.panel10.ResumeLayout(false); + this.panel12.ResumeLayout(false); + this.panel19.ResumeLayout(false); + this.panel8.ResumeLayout(false); + this.panel5.ResumeLayout(false); + this.panel11.ResumeLayout(false); + this.panel15.ResumeLayout(false); + this.panel16.ResumeLayout(false); + this.panel17.ResumeLayout(false); + this.panel18.ResumeLayout(false); + this.panel4.ResumeLayout(false); + this.panel7.ResumeLayout(false); + this.contextMenuStrip1.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Panel panel3; + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Panel panel2; + private arFrame.Control.GridView tblDI; + private arCtl.arLabel lbTitle1; + private System.Windows.Forms.Panel panel1; + private arFrame.Control.GridView tblDO; + private arCtl.arLabel lbtitle2; + private System.Windows.Forms.TabPage tabPage2; + private arFrame.Control.GridView tblFG; + private arCtl.arLabel lbTitle3; + private arCtl.arLabel lbTitle4; + public System.Windows.Forms.Panel panel4; + public System.Windows.Forms.Panel panel6; + public System.Windows.Forms.Panel panel7; + private System.Windows.Forms.Button tbClose; + private arCtl.arLabel lbTitle; + private arFrame.Control.GridView gridView1; + private System.Windows.Forms.TabPage tabPage3; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; + private arFrame.Control.GridView gviPLZ; + private arFrame.Control.GridView gviPRZ; + private arFrame.Control.GridView gviPKT; + private System.Windows.Forms.Panel panel5; + private System.Windows.Forms.Panel panel8; + private System.Windows.Forms.Panel panel9; + private System.Windows.Forms.Panel panel10; + private System.Windows.Forms.Panel panel11; + private System.Windows.Forms.Panel panel12; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label lbXR; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Timer tmDisplay; + private arFrame.Control.GridView gviPKX; + private arFrame.Control.GridView gviPKZ; + private System.Windows.Forms.Panel panel14; + private arFrame.Control.GridView gviPRM; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Panel panel13; + private arFrame.Control.GridView gviPLM; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Panel panel19; + private arFrame.Control.GridView gviVS1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Panel panel15; + private arFrame.Control.GridView gviPRL; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Panel panel16; + private arFrame.Control.GridView gviPRR; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Panel panel17; + private arFrame.Control.GridView gviVS0; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Panel panel18; + private arFrame.Control.GridView gviVS2; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; + private System.Windows.Forms.ToolStripMenuItem saveIOListToolStripMenuItem; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/Don't change it/Dialog/fIOMonitor.cs b/Handler/Project_form2/Don't change it/Dialog/fIOMonitor.cs new file mode 100644 index 0000000..de73888 --- /dev/null +++ b/Handler/Project_form2/Don't change it/Dialog/fIOMonitor.cs @@ -0,0 +1,620 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using arDev.AzinAxt; + +namespace Project.Dialog +{ + public partial class fIOMonitor : Form + { + + public fIOMonitor() + { + InitializeComponent(); + this.FormClosed += fIOMonitor_FormClosed; + + this.Opacity = 1.0; + + this.tblDI.SuspendLayout(); + this.tblDO.SuspendLayout(); + this.tblFG.SuspendLayout(); + + tblDI.setTitle(Pub.dio.DIName); + tblDO.setTitle(Pub.dio.DOName); + tblFG.setTitle(Pub.flag.Name); + + var pinNameI = new string[Pub.dio.DIName.Length]; + var pinNameO = new string[Pub.dio.DOName.Length]; + for (int i = 0; i < pinNameI.Length; i++) + pinNameI[i] = Enum.GetName(typeof(eDIPin), i); + for (int i = 0; i < pinNameO.Length; i++) + pinNameO[i] = Enum.GetName(typeof(eDOPin), i); + + tblDI.setNames(pinNameI); + tblDO.setNames(pinNameO); + + tblDI.setItemTextAlign(ContentAlignment.BottomLeft); + tblDO.setItemTextAlign(ContentAlignment.BottomLeft); + tblFG.setItemTextAlign(ContentAlignment.BottomLeft); + + var NamePKY = new string[16]; + var NamePKZ = new string[16]; + var NamePKT = new string[16]; + var NamePLM = new string[16]; + var NamePLZ = new string[16]; + var NamePRM = new string[16]; + var NamePRZ = new string[16]; + var NamePRL = new string[16]; + var NamePRR = new string[16]; + var NameVS0 = new string[16]; + var NameVS1 = new string[16]; + var NameVS2 = new string[16]; + + for (int i = 0; i < NamePKY.Length; i++) + NamePKY[i] = Enum.GetName(typeof(eILockPKX), i); + for (int i = 0; i < NamePKZ.Length; i++) + NamePKZ[i] = Enum.GetName(typeof(eILockPKZ), i); + for (int i = 0; i < NamePKT.Length; i++) + NamePKT[i] = Enum.GetName(typeof(eILockPKT), i); + for (int i = 0; i < NamePLM.Length; i++) + NamePLM[i] = Enum.GetName(typeof(eILockPRM), i); + for (int i = 0; i < NamePLZ.Length; i++) + NamePLZ[i] = Enum.GetName(typeof(eILockPRZ), i); + for (int i = 0; i < NamePRM.Length; i++) + NamePRM[i] = Enum.GetName(typeof(eILockPRM), i); + for (int i = 0; i < NamePRZ.Length; i++) + NamePRZ[i] = Enum.GetName(typeof(eILockPRZ), i); + for (int i = 0; i < NamePRL.Length; i++) + NamePRL[i] = Enum.GetName(typeof(eILockPRL), i); + for (int i = 0; i < NamePRR.Length; i++) + NamePRR[i] = Enum.GetName(typeof(eILockPRR), i); + for (int i = 0; i < NameVS0.Length; i++) + NameVS0[i] = Enum.GetName(typeof(eILockVS0), i); + for (int i = 0; i < NameVS1.Length; i++) + NameVS1[i] = Enum.GetName(typeof(eILockVS1), i); + for (int i = 0; i < NameVS2.Length; i++) + NameVS2[i] = Enum.GetName(typeof(eILockVS2), i); + + + gviPKX.setTitle(NamePKY); + gviPKZ.setTitle(NamePKZ); + gviPKT.setTitle(NamePKT); + gviPLM.setTitle(NamePLM); + gviPLZ.setTitle(NamePLZ); + gviPRM.setTitle(NamePRM); + gviPRZ.setTitle(NamePRZ); + gviPRL.setTitle(NamePRL); + gviPRR.setTitle(NamePRR); + gviVS0.setTitle(NameVS0); + gviVS1.setTitle(NameVS1); + gviVS2.setTitle(NameVS2); + + gviPKX.setItemTextAlign(ContentAlignment.MiddleCenter); + gviPKZ.setItemTextAlign(ContentAlignment.MiddleCenter); + gviPKT.setItemTextAlign(ContentAlignment.MiddleCenter); + gviPLM.setItemTextAlign(ContentAlignment.MiddleCenter); + gviPLZ.setItemTextAlign(ContentAlignment.MiddleCenter); + gviPRM.setItemTextAlign(ContentAlignment.MiddleCenter); + gviPRZ.setItemTextAlign(ContentAlignment.MiddleCenter); + gviPRL.setItemTextAlign(ContentAlignment.MiddleCenter); + gviPRR.setItemTextAlign(ContentAlignment.MiddleCenter); + gviVS0.setItemTextAlign(ContentAlignment.MiddleCenter); + gviVS1.setItemTextAlign(ContentAlignment.MiddleCenter); + gviVS2.setItemTextAlign(ContentAlignment.MiddleCenter); + + gviPKX.ColorList[1].BackColor1 = Color.IndianRed; gviPKX.ColorList[1].BackColor2 = Color.LightCoral; + gviPKZ.ColorList[1].BackColor1 = Color.IndianRed; gviPKZ.ColorList[1].BackColor2 = Color.LightCoral; + gviPKT.ColorList[1].BackColor1 = Color.IndianRed; gviPKT.ColorList[1].BackColor2 = Color.LightCoral; + gviPLM.ColorList[1].BackColor1 = Color.IndianRed; gviPLM.ColorList[1].BackColor2 = Color.LightCoral; + gviPLZ.ColorList[1].BackColor1 = Color.IndianRed; gviPLZ.ColorList[1].BackColor2 = Color.LightCoral; + gviPRM.ColorList[1].BackColor1 = Color.IndianRed; gviPRM.ColorList[1].BackColor2 = Color.LightCoral; + gviPRZ.ColorList[1].BackColor1 = Color.IndianRed; gviPRZ.ColorList[1].BackColor2 = Color.LightCoral; + gviPRL.ColorList[1].BackColor1 = Color.IndianRed; gviPRL.ColorList[1].BackColor2 = Color.LightCoral; + gviPRR.ColorList[1].BackColor1 = Color.IndianRed; gviPRR.ColorList[1].BackColor2 = Color.LightCoral; + gviVS0.ColorList[1].BackColor1 = Color.IndianRed; gviVS0.ColorList[1].BackColor2 = Color.LightCoral; + gviVS1.ColorList[1].BackColor1 = Color.IndianRed; gviVS1.ColorList[1].BackColor2 = Color.LightCoral; + gviVS2.ColorList[1].BackColor1 = Color.IndianRed; gviVS2.ColorList[1].BackColor2 = Color.LightCoral; + + //값확인 + List diValue = new List(); + for (int i = 0; i < Pub.dio.PIN_I; i++) + diValue.Add(Pub.dio.getDIValue(i)); + List doValue = new List(); + for (int i = 0; i < Pub.dio.PIN_O; i++) + doValue.Add(Pub.dio.getDOValue(i)); + List fgValue = new List(); + for (int i = 0; i < Pub.flag.PortCount; i++) + fgValue.Add(Pub.flag.get(i)); + + tblDI.setValue(diValue.ToArray()); + tblDO.setValue(doValue.ToArray()); + tblFG.setValue(fgValue.ToArray()); + + + List PKXValue = new List(); + List PKZValue = new List(); + List PKTValue = new List(); + List PLMValue = new List(); + List PLZValue = new List(); + List PRMValue = new List(); + List PRZValue = new List(); + List PRLValue = new List(); + List PRRValue = new List(); + List VS0Value = new List(); + List VS1Value = new List(); + List VS2Value = new List(); + for (int i = 0; i < 16; i++) + { + PKXValue.Add(Pub.LockPKX.get(i)); + PKZValue.Add(Pub.LockPKZ.get(i)); + PKTValue.Add(Pub.LockPKT.get(i)); + PLMValue.Add(Pub.LockPLM.get(i)); + PLZValue.Add(Pub.LockPLZ.get(i)); + PRMValue.Add(Pub.LockPRM.get(i)); + PRZValue.Add(Pub.LockPRZ.get(i)); + PRLValue.Add(Pub.LockPRL.get(i)); + PRRValue.Add(Pub.LockPRR.get(i)); + VS0Value.Add(Pub.LockVS0.get(i)); + VS1Value.Add(Pub.LockVS1.get(i)); + VS2Value.Add(Pub.LockVS2.get(i)); + } + gviPKX.setValue(PKXValue.ToArray()); + gviPKZ.setValue(PKZValue.ToArray()); + gviPKT.setValue(PKTValue.ToArray()); + gviPLM.setValue(PLMValue.ToArray()); + gviPLZ.setValue(PLZValue.ToArray()); + gviPRM.setValue(PRMValue.ToArray()); + gviPRZ.setValue(PRZValue.ToArray()); + gviPRL.setValue(PRLValue.ToArray()); + gviPRR.setValue(PRRValue.ToArray()); + gviVS0.setValue(VS0Value.ToArray()); + gviVS1.setValue(VS1Value.ToArray()); + gviVS2.setValue(VS2Value.ToArray()); + + Pub.dio.IOValueChanged += dio_IOValueChanged; + Pub.flag.ValueChanged += flag_ValueChanged; + + Pub.LockPKX.ValueChanged += LockXF_ValueChanged; + Pub.LockPKZ.ValueChanged += LockXF_ValueChanged; + Pub.LockPKT.ValueChanged += LockXF_ValueChanged; + Pub.LockPLM.ValueChanged += LockXF_ValueChanged; + Pub.LockPLZ.ValueChanged += LockXF_ValueChanged; + Pub.LockPRM.ValueChanged += LockXF_ValueChanged; + Pub.LockPRZ.ValueChanged += LockXF_ValueChanged; + Pub.LockPRL.ValueChanged += LockXF_ValueChanged; + Pub.LockPRR.ValueChanged += LockXF_ValueChanged; + Pub.LockVS0.ValueChanged += LockXF_ValueChanged; + Pub.LockVS1.ValueChanged += LockXF_ValueChanged; + Pub.LockVS2.ValueChanged += LockXF_ValueChanged; + + if (Pub.sm.Step != StateMachine.eSMStep.RUN) + { + this.tblDI.ItemClick += tblDI_ItemClick; + this.tblDO.ItemClick += tblDO_ItemClick; + this.tblFG.ItemClick += tblFG_ItemClick; + + this.gviPKX.ItemClick += gvILXF_ItemClick; + this.gviPKZ.ItemClick += gvILXF_ItemClick; + this.gviPKT.ItemClick += gvILXF_ItemClick; + this.gviPLM.ItemClick += gvILXF_ItemClick; + this.gviPLZ.ItemClick += gvILXF_ItemClick; + this.gviPRM.ItemClick += gvILXF_ItemClick; + this.gviPRZ.ItemClick += gvILXF_ItemClick; + this.gviPRL.ItemClick += gvILXF_ItemClick; + this.gviPRR.ItemClick += gvILXF_ItemClick; + this.gviVS0.ItemClick += gvILXF_ItemClick; + this.gviVS1.ItemClick += gvILXF_ItemClick; + this.gviVS2.ItemClick += gvILXF_ItemClick; + } + + + this.tblDI.Invalidate(); + this.tblDO.Invalidate(); + this.tblFG.Invalidate(); + + this.gviPKX.Invalidate(); + this.gviPKZ.Invalidate(); + this.gviPKT.Invalidate(); + this.gviPLM.Invalidate(); + this.gviPLZ.Invalidate(); + this.gviPRM.Invalidate(); + this.gviPRZ.Invalidate(); + this.gviPRL.Invalidate(); + this.gviPRR.Invalidate(); + this.gviVS0.Invalidate(); + this.gviVS1.Invalidate(); + this.gviVS2.Invalidate(); + + this.lbTitle.MouseMove += LbTitle_MouseMove; + this.lbTitle.MouseUp += LbTitle_MouseUp; + this.lbTitle.MouseDown += LbTitle_MouseDown; + this.lbTitle.DoubleClick += lbTitle_DoubleClick; + + this.KeyDown += fIOMonitor_KeyDown; + } + + + void fIOMonitor_FormClosed(object sender, FormClosedEventArgs e) + { + Pub.dio.IOValueChanged -= dio_IOValueChanged; + Pub.flag.ValueChanged -= flag_ValueChanged; + + + Pub.LockPKX.ValueChanged -= LockXF_ValueChanged; + Pub.LockPKZ.ValueChanged -= LockXF_ValueChanged; + Pub.LockPKT.ValueChanged -= LockXF_ValueChanged; + Pub.LockPLM.ValueChanged -= LockXF_ValueChanged; + Pub.LockPLZ.ValueChanged -= LockXF_ValueChanged; + Pub.LockPRM.ValueChanged -= LockXF_ValueChanged; + Pub.LockPRZ.ValueChanged -= LockXF_ValueChanged; + Pub.LockPRL.ValueChanged -= LockXF_ValueChanged; + Pub.LockPRR.ValueChanged -= LockXF_ValueChanged; + Pub.LockVS0.ValueChanged -= LockXF_ValueChanged; + Pub.LockVS1.ValueChanged -= LockXF_ValueChanged; + Pub.LockVS2.ValueChanged -= LockXF_ValueChanged; + + if (Pub.isRunning == false) + { + this.tblDI.ItemClick -= tblDI_ItemClick; + this.tblDO.ItemClick -= tblDO_ItemClick; + this.tblFG.ItemClick -= tblFG_ItemClick; + + this.gviPKX.ItemClick -= gvILXF_ItemClick; + this.gviPKZ.ItemClick -= gvILXF_ItemClick; + this.gviPKT.ItemClick -= gvILXF_ItemClick; + this.gviPLM.ItemClick -= gvILXF_ItemClick; + this.gviPLZ.ItemClick -= gvILXF_ItemClick; + this.gviPRM.ItemClick -= gvILXF_ItemClick; + this.gviPRZ.ItemClick -= gvILXF_ItemClick; + this.gviPRL.ItemClick -= gvILXF_ItemClick; + this.gviPRR.ItemClick -= gvILXF_ItemClick; + this.gviVS0.ItemClick -= gvILXF_ItemClick; + this.gviVS1.ItemClick -= gvILXF_ItemClick; + this.gviVS2.ItemClick -= gvILXF_ItemClick; + } + + this.lbTitle.MouseMove -= LbTitle_MouseMove; + this.lbTitle.MouseUp -= LbTitle_MouseUp; + this.lbTitle.MouseDown -= LbTitle_MouseDown; + this.lbTitle.DoubleClick -= lbTitle_DoubleClick; + + this.KeyDown -= fIOMonitor_KeyDown; + } + + void LockXF_ValueChanged(object sender, CInterLock.ValueEventArgs e) + { + var item = sender as CInterLock; + var tagStr = item.Tag.ToString(); + + if (tagStr == "PKX") + { + if (gviPKX.setValue(e.ArrIDX, e.NewValue)) gviPKX.Invalidate(); + } + else if (tagStr == "PKZ") + { + if (gviPKZ.setValue(e.ArrIDX, e.NewValue)) gviPKZ.Invalidate(); + } + else if (tagStr == "PKT") + { + if (gviPKT.setValue(e.ArrIDX, e.NewValue)) gviPKT.Invalidate(); + } + else if (tagStr == "PLM") + { + if (gviPLM.setValue(e.ArrIDX, e.NewValue)) gviPLM.Invalidate(); + } + else if (tagStr == "PLZ") + { + if (gviPLZ.setValue(e.ArrIDX, e.NewValue)) gviPLZ.Invalidate(); + } + else if (tagStr == "PRM") + { + if (gviPRM.setValue(e.ArrIDX, e.NewValue)) gviPRM.Invalidate(); + } + else if (tagStr == "PRZ") + { + if (gviPRZ.setValue(e.ArrIDX, e.NewValue)) gviPRZ.Invalidate(); + } + else if (tagStr == "PRL") + { + if (gviPRL.setValue(e.ArrIDX, e.NewValue)) gviPRL.Invalidate(); + } + else if (tagStr == "PRR") + { + if (gviPRR.setValue(e.ArrIDX, e.NewValue)) gviPRR.Invalidate(); + } + else if (tagStr == "VS0") + { + if (gviVS0.setValue(e.ArrIDX, e.NewValue)) gviVS0.Invalidate(); + } + else if (tagStr == "VS1") + { + if (gviVS1.setValue(e.ArrIDX, e.NewValue)) gviVS1.Invalidate(); + } + else if (tagStr == "VS2") + { + if (gviVS2.setValue(e.ArrIDX, e.NewValue)) gviVS2.Invalidate(); + } + } + + void gvILXF_ItemClick(object sender, arFrame.Control.GridView.ItemClickEventArgs e) + { + var gv = sender as arFrame.Control.GridView; + var tagStr = gv.Tag.ToString(); + if (tagStr == "PKX") + { + var curValue = Pub.LockPKX.get(e.idx); + Pub.LockPKX.set(e.idx, !curValue, "IOMONITOR"); + } + else if (tagStr == "PKZ") + { + var curValue = Pub.LockPKZ.get(e.idx); + Pub.LockPKZ.set(e.idx, !curValue, "IOMONITOR"); + } + else if (tagStr == "PKT") + { + var curValue = Pub.LockPKT.get(e.idx); + Pub.LockPKT.set(e.idx, !curValue, "IOMONITOR"); + } + else if (tagStr == "PLM") + { + var curValue = Pub.LockPKT.get(e.idx); + Pub.LockPLM.set(e.idx, !curValue, "IOMONITOR"); + } + else if (tagStr == "PLZ") + { + var curValue = Pub.LockPKT.get(e.idx); + Pub.LockPLZ.set(e.idx, !curValue, "IOMONITOR"); + } + else if (tagStr == "PRM") + { + var curValue = Pub.LockPKT.get(e.idx); + Pub.LockPRM.set(e.idx, !curValue, "IOMONITOR"); + } + else if (tagStr == "PRZ") + { + var curValue = Pub.LockPKT.get(e.idx); + Pub.LockPRZ.set(e.idx, !curValue, "IOMONITOR"); + } + + + else if (tagStr == "PRL") + { + var curValue = Pub.LockPRL.get(e.idx); + Pub.LockPRL.set(e.idx, !curValue, "IOMONITOR"); + } + else if (tagStr == "PRR") + { + var curValue = Pub.LockPRR.get(e.idx); + Pub.LockPRR.set(e.idx, !curValue, "IOMONITOR"); + } + else if (tagStr == "VS0") + { + var curValue = Pub.LockVS0.get(e.idx); + Pub.LockVS0.set(e.idx, !curValue, "IOMONITOR"); + } + else if (tagStr == "VS1") + { + var curValue = Pub.LockVS1.get(e.idx); + Pub.LockVS1.set(e.idx, !curValue, "IOMONITOR"); + } + else if (tagStr == "VS2") + { + var curValue = Pub.LockVS2.get(e.idx); + Pub.LockVS2.set(e.idx, !curValue, "IOMONITOR"); + } + + } + + void lbTitle_DoubleClick(object sender, EventArgs e) + { + if (this.WindowState == FormWindowState.Maximized) this.WindowState = FormWindowState.Normal; + else this.WindowState = FormWindowState.Maximized; + } + + void fIOMonitor_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Escape) this.Close(); + else if (e.KeyCode == Keys.D && e.Control) + { + this.tblDO.showDebugInfo = !this.tblDO.showDebugInfo; + this.tblDI.showDebugInfo = this.tblDO.showDebugInfo; + this.tblFG.showDebugInfo = this.tblDO.showDebugInfo; + } + } + + private void fIOMonitor_Load(object sender, EventArgs e) + { + this.Text = "I/O Monitor"; + this.Show(); + //'Application.DoEvents(); + + Dialog.QuickControl fctl = new QuickControl(); + fctl.TopLevel = false; + fctl.Visible = true; + this.panel3.Controls.Add(fctl); + fctl.Dock = DockStyle.Top; + fctl.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + + fctl.FormBorderStyle = FormBorderStyle.None;//.panTitleBar.Visible = false; + // fctl.panTopMenuDiv.Visible = false; + fctl.panBG.BackColor = this.BackColor; + fctl.panBG.BorderStyle = BorderStyle.None; + fctl.Show(); + fctl.Dock = DockStyle.Fill; + + this.tmDisplay.Start(); + } + + #region "Mouse Form Move" + + private Boolean fMove = false; + private Point MDownPos; + private void LbTitle_MouseMove(object sender, MouseEventArgs e) + { + if (fMove) + { + Point offset = new Point(e.X - MDownPos.X, e.Y - MDownPos.Y); + this.Left += offset.X; + this.Top += offset.Y; + offset = new Point(0, 0); + } + } + private void LbTitle_MouseUp(object sender, MouseEventArgs e) + { + fMove = false; + } + private void LbTitle_MouseDown(object sender, MouseEventArgs e) + { + MDownPos = new Point(e.X, e.Y); + fMove = true; + } + + #endregion + + void tblFG_ItemClick(object sender, arFrame.Control.GridView.ItemClickEventArgs e) + { + var curValue = Pub.flag.get(e.idx); + Pub.flag.set(e.idx, !curValue, "IOMONITOR"); + } + + void tblDO_ItemClick(object sender, arFrame.Control.GridView.ItemClickEventArgs e) + { + var newValue = !Pub.dio.getDOValue(e.idx); + if (Pub.dio.IsInit == false) + { + //임시시그널 + var dlg = Util.MsgQ("가상 시그널을 생성하시겠습니까?"); + if (dlg == System.Windows.Forms.DialogResult.Yes) + { + Pub.dio.RaiseEvent(eIOPINDIR.OUTPUT, e.idx, newValue); + Pub.log.Add("fake do : " + e.idx.ToString() + ",val=" + newValue.ToString()); + } + } + else + { + Pub.dio.SetOutput(e.idx, newValue); + Pub.log.Add(string.Format("set output(iomonitor-userclick) idx={0},val={1}", e.idx, newValue)); + } + } + + void tblDI_ItemClick(object sender, arFrame.Control.GridView.ItemClickEventArgs e) + { + var newValue = !Pub.dio.getDIValue(e.idx); + if (Pub.dio.IsInit == false || Pub.flag.get(eFlag.DEBUG) == true) + { + //임시시그널 + var dlg = Util.MsgQ("가상 시그널을 생성하시겠습니까?"); + if (dlg == System.Windows.Forms.DialogResult.Yes) + { + Pub.dio.RaiseEvent(eIOPINDIR.INPUT, e.idx, newValue); + Pub.log.Add("fake di : " + e.idx.ToString() + ",val=" + newValue.ToString()); + } + } + } + + void flag_ValueChanged(object sender, Flag.ValueEventArgs e) + { + //var butIndex = getControlIndex(e.ArrIDX); + //if (butIndex >= this.tblFG.Controls.Count) return; + + //해당 아이템의 값을 변경하고 다시 그린다. + if (tblFG.setValue(e.ArrIDX, e.NewValue)) + tblFG.Invalidate();//.drawItem(e.ArrIDX); + } + + + void dio_IOValueChanged(object sender, arDev.AzinAxt.DIO.IOValueEventArgs e) + { + //var butIndex = getControlIndex(e.ArrIDX); + if (e.Direction == eIOPINDIR.INPUT) + { + //해당 아이템의 값을 변경하고 다시 그린다. + if (tblDI.setValue(e.ArrIDX, e.NewValue)) + tblDI.Invalidate();//.drawItem(e.ArrIDX); + } + else + { + //해당 아이템의 값을 변경하고 다시 그린다. + if (tblDO.setValue(e.ArrIDX, e.NewValue)) + tblDO.Invalidate();//.drawItem(e.ArrIDX); + } + } + + private void tbClose_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void tmDisplay_Tick(object sender, EventArgs e) + { + //flg update + lbTitle3.Text = "FLAG(" + Pub.flag.Value.ToString() + ")"; + //var jobend = Pub.flag.get(32); + for (int i = 0; i < 64; i++) + tblFG.setValue(i, Pub.flag.get(i)); + tblFG.Invalidate(); + + this.label1.Text = string.Format("PICKER-X({0})", Pub.LockPKX.Value); + this.lbXR.Text = string.Format("PICKER-Z({0})", Pub.LockPKZ.Value); + this.label5.Text = string.Format("THETA({0})", Pub.LockPKT.Value); + this.label10.Text = string.Format("VISION-0({0})", Pub.LockVS0.Value); + this.label2.Text = string.Format("VISION-1({0})", Pub.LockVS1.Value); + this.label11.Text = string.Format("VISION-2({0})", Pub.LockVS2.Value); + + //8,9,6,7,4,3 + this.label8.Text = string.Format("PRINTER-LEFT({0})", Pub.LockPRL.Value); + this.label9.Text = string.Format("PRINTER-RIGHT({0})", Pub.LockPRR.Value); + this.label6.Text = string.Format("PRINTER-LEFT-MOVE({0})", Pub.LockPLM.Value); + this.label7.Text = string.Format("PRINTER-RIGHT-MOVE({0})", Pub.LockPRM.Value); + this.label4.Text = string.Format("PRINTER-LEFT-UP/DN({0})", Pub.LockPLZ.Value); + this.label3.Text = string.Format("PRINTER-RIGHT-UP/DN({0})", Pub.LockPRZ.Value); + } + + private void saveIOListToolStripMenuItem_Click(object sender, EventArgs e) + { + var namelist = Enum.GetNames(typeof(eDIName)); + var vlist = Enum.GetValues(typeof(eDIName)); + var pinlist = Enum.GetNames(typeof(eDIPin)); + + System.Text.StringBuilder sb = new StringBuilder(); + sb.AppendLine("#DI"); + sb.AppendLine("IDX,PIN,DESCRIPTION"); + for(int i = 0; i < 64;i++) + { + var ev = (eDIName)i; + var val = (int)(ev); + var ep = (eDIPin)val; + var desc = ev.ToString() == val.ToString() ? string.Empty : ev.ToString(); + sb.AppendLine(string.Format("{0},{1},{2}", val, ep, desc)); + } + sb.AppendLine(); + sb.AppendLine("#DO"); + sb.AppendLine("IDX,PIN,DESCRIPTION"); + vlist = Enum.GetValues(typeof(eDOName)); + + for (int i = 0; i < 64; i++) + { + var ev = (eDOName)i; + var val = (int)(ev); + var ep = (eDOPin)val; + var desc = ev.ToString() == val.ToString() ? string.Empty : ev.ToString(); + sb.AppendLine(string.Format("{0},{1},{2}", val, ep, desc)); + } + + SaveFileDialog sd = new SaveFileDialog(); + sd.Filter = "csv|*.csv"; + sd.FileName = "iolist.csv"; + if (sd.ShowDialog() == DialogResult.OK) + { + System.IO.File.WriteAllText(sd.FileName, sb.ToString(), System.Text.Encoding.Default); + Util.RunExplorer(sd.FileName); + } + + } + } +} diff --git a/Handler/Project_form2/Don't change it/Dialog/fIOMonitor.resx b/Handler/Project_form2/Don't change it/Dialog/fIOMonitor.resx new file mode 100644 index 0000000..8100324 --- /dev/null +++ b/Handler/Project_form2/Don't change it/Dialog/fIOMonitor.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 124, 17 + + + 17, 17 + + \ No newline at end of file diff --git a/Handler/Project_form2/Don't change it/Dialog/fInput.Designer.cs b/Handler/Project_form2/Don't change it/Dialog/fInput.Designer.cs new file mode 100644 index 0000000..b8ec58f --- /dev/null +++ b/Handler/Project_form2/Don't change it/Dialog/fInput.Designer.cs @@ -0,0 +1,78 @@ +namespace Project.Dialog +{ + partial class fInput + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.tbInput = new System.Windows.Forms.TextBox(); + this.touchKey1 = new arCtl.TouchKey(); + this.SuspendLayout(); + // + // tbInput + // + this.tbInput.Font = new System.Drawing.Font("Calibri", 20.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tbInput.Location = new System.Drawing.Point(26, 21); + this.tbInput.Name = "tbInput"; + this.tbInput.Size = new System.Drawing.Size(479, 40); + this.tbInput.TabIndex = 1; + this.tbInput.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // touchKey1 + // + this.touchKey1.Location = new System.Drawing.Point(18, 75); + this.touchKey1.Margin = new System.Windows.Forms.Padding(9, 21, 9, 21); + this.touchKey1.Name = "touchKey1"; + this.touchKey1.Size = new System.Drawing.Size(503, 381); + this.touchKey1.TabIndex = 5; + this.touchKey1.keyClick += new arCtl.TouchKey.KeyClickHandler(this.touchKey1_keyClick); + // + // fInput + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(539, 486); + this.Controls.Add(this.touchKey1); + this.Controls.Add(this.tbInput); + this.Font = new System.Drawing.Font("Calibri", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.KeyPreview = true; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fInput"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Input Value"; + this.TopMost = true; + this.Load += new System.EventHandler(this.fInput_Load); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + public System.Windows.Forms.TextBox tbInput; + private arCtl.TouchKey touchKey1; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/Don't change it/Dialog/fInput.cs b/Handler/Project_form2/Don't change it/Dialog/fInput.cs new file mode 100644 index 0000000..f69c577 --- /dev/null +++ b/Handler/Project_form2/Don't change it/Dialog/fInput.cs @@ -0,0 +1,98 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fInput : Form + { + public fInput(string value,string title="") + { + InitializeComponent(); + + if (title.isEmpty() == false) this.Text = title; + this.tbInput.KeyDown += (s1, e1) => { if (e1.KeyCode == Keys.Enter) Confirm(); }; + this.KeyPreview = true; + this.KeyDown += (s1, e1) => { + if (e1.KeyCode == Keys.Escape) this.Close(); + }; + this.tbInput.Text = value; + } + + private void Confirm() + { + string id = tbInput.Text.Trim(); + if (id.isEmpty()) + { + tbInput.Focus(); + return; + } + DialogResult = DialogResult.OK; + } + + private void touchKey1_keyClick(string key) + { + if (key == "BACK" || key == "◁") + { + if (!tbInput.Text.isEmpty()) + { + if (tbInput.Text.Length == 1) tbInput.Text = ""; + else tbInput.Text = tbInput.Text.Substring(0, tbInput.Text.Length - 1); + } + //if (tbInput.Text == "") tbInput.Text = "0"; + } + else if(key == "-") + { + if (tbInput.Text.StartsWith("-") == false) + tbInput.Text = "-" + tbInput.Text; + else tbInput.Text = tbInput.Text.Substring(1); + } + else if (key == "CLEAR" || key == "RESET" || key == "◀") + { + tbInput.Text = "0"; + } + else if (key == "ENTER" || key == "ENT") + { + Confirm(); + } + else if(key == ".") + { + if (tbInput.Text != "" && tbInput.Text.IndexOf(".") == -1) tbInput.Text += "."; + } + else + { + if (tbInput.SelectionLength > 0 && tbInput.Text.Length == tbInput.SelectionLength) + { + tbInput.Text = key; + } + else if (tbInput.SelectionLength > 0) + { + //선택된 영역을 대체해준다. + tbInput.SelectedText = key; + } + else + { + //if(tbInput.Text.IndexOf(".") == -1) + tbInput.Text += key; + } + + } + + tbInput.SelectionLength = 0; + if (!tbInput.Text.isEmpty()) + tbInput.SelectionStart = tbInput.Text.Length; + } + + private void fInput_Load(object sender, EventArgs e) + { + this.Show(); + this.tbInput.SelectAll(); + this.tbInput.Focus(); + } + } +} diff --git a/Handler/Project_form2/Don't change it/Dialog/fInput.resx b/Handler/Project_form2/Don't change it/Dialog/fInput.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/Project_form2/Don't change it/Dialog/fInput.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/Project_form2/Don't change it/Dialog/fLog.Designer.cs b/Handler/Project_form2/Don't change it/Dialog/fLog.Designer.cs new file mode 100644 index 0000000..bb6da7c --- /dev/null +++ b/Handler/Project_form2/Don't change it/Dialog/fLog.Designer.cs @@ -0,0 +1,200 @@ +namespace Project.Dialog +{ + partial class fLog + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.panLog = new System.Windows.Forms.Panel(); + this.chkVision = new System.Windows.Forms.CheckBox(); + this.chkDebug = new System.Windows.Forms.CheckBox(); + this.chkILStop = new System.Windows.Forms.CheckBox(); + this.chkKen = new System.Windows.Forms.CheckBox(); + this.chkILock = new System.Windows.Forms.CheckBox(); + this.chkFlag = new System.Windows.Forms.CheckBox(); + this.chkMain = new System.Windows.Forms.CheckBox(); + this.logTextBox1 = new arCtl.LogTextBox(); + this.button1 = new System.Windows.Forms.Button(); + this.panLog.SuspendLayout(); + this.SuspendLayout(); + // + // panLog + // + this.panLog.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.panLog.Controls.Add(this.chkVision); + this.panLog.Controls.Add(this.chkDebug); + this.panLog.Controls.Add(this.chkILStop); + this.panLog.Controls.Add(this.chkKen); + this.panLog.Controls.Add(this.chkILock); + this.panLog.Controls.Add(this.chkFlag); + this.panLog.Controls.Add(this.chkMain); + this.panLog.Dock = System.Windows.Forms.DockStyle.Top; + this.panLog.Location = new System.Drawing.Point(0, 0); + this.panLog.Margin = new System.Windows.Forms.Padding(0); + this.panLog.Name = "panLog"; + this.panLog.Padding = new System.Windows.Forms.Padding(5); + this.panLog.Size = new System.Drawing.Size(735, 31); + this.panLog.TabIndex = 6; + // + // chkVision + // + this.chkVision.Dock = System.Windows.Forms.DockStyle.Left; + this.chkVision.Location = new System.Drawing.Point(435, 5); + this.chkVision.Name = "chkVision"; + this.chkVision.Size = new System.Drawing.Size(70, 17); + this.chkVision.TabIndex = 4; + this.chkVision.Text = "Vision"; + this.chkVision.UseVisualStyleBackColor = true; + // + // chkDebug + // + this.chkDebug.Dock = System.Windows.Forms.DockStyle.Left; + this.chkDebug.Location = new System.Drawing.Point(365, 5); + this.chkDebug.Name = "chkDebug"; + this.chkDebug.Size = new System.Drawing.Size(70, 17); + this.chkDebug.TabIndex = 3; + this.chkDebug.Text = "Debug"; + this.chkDebug.UseVisualStyleBackColor = true; + // + // chkILStop + // + this.chkILStop.Dock = System.Windows.Forms.DockStyle.Left; + this.chkILStop.Location = new System.Drawing.Point(295, 5); + this.chkILStop.Name = "chkILStop"; + this.chkILStop.Size = new System.Drawing.Size(70, 17); + this.chkILStop.TabIndex = 2; + this.chkILStop.Text = "IL-Stop"; + this.chkILStop.UseVisualStyleBackColor = true; + // + // chkKen + // + this.chkKen.Dock = System.Windows.Forms.DockStyle.Left; + this.chkKen.Location = new System.Drawing.Point(215, 5); + this.chkKen.Name = "chkKen"; + this.chkKen.Size = new System.Drawing.Size(80, 17); + this.chkKen.TabIndex = 1; + this.chkKen.Text = "Keyence"; + this.chkKen.UseVisualStyleBackColor = true; + // + // chkILock + // + this.chkILock.Dock = System.Windows.Forms.DockStyle.Left; + this.chkILock.Location = new System.Drawing.Point(145, 5); + this.chkILock.Name = "chkILock"; + this.chkILock.Size = new System.Drawing.Size(70, 17); + this.chkILock.TabIndex = 0; + this.chkILock.Text = "ILock"; + this.chkILock.UseVisualStyleBackColor = true; + this.chkILock.Click += new System.EventHandler(this.chkMain_Click); + // + // chkFlag + // + this.chkFlag.Dock = System.Windows.Forms.DockStyle.Left; + this.chkFlag.Location = new System.Drawing.Point(75, 5); + this.chkFlag.Name = "chkFlag"; + this.chkFlag.Size = new System.Drawing.Size(70, 17); + this.chkFlag.TabIndex = 0; + this.chkFlag.Text = "Flag"; + this.chkFlag.UseVisualStyleBackColor = true; + this.chkFlag.Click += new System.EventHandler(this.chkMain_Click); + // + // chkMain + // + this.chkMain.Checked = true; + this.chkMain.CheckState = System.Windows.Forms.CheckState.Checked; + this.chkMain.Dock = System.Windows.Forms.DockStyle.Left; + this.chkMain.Location = new System.Drawing.Point(5, 5); + this.chkMain.Name = "chkMain"; + this.chkMain.Size = new System.Drawing.Size(70, 17); + this.chkMain.TabIndex = 0; + this.chkMain.Text = "Main"; + this.chkMain.UseVisualStyleBackColor = true; + this.chkMain.Click += new System.EventHandler(this.chkMain_Click); + // + // logTextBox1 + // + this.logTextBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(24)))), ((int)(((byte)(24)))), ((int)(((byte)(24))))); + this.logTextBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.logTextBox1.ColorList = new arCtl.sLogMessageColor[0]; + this.logTextBox1.DateFormat = "mm:ss.fff"; + this.logTextBox1.DefaultColor = System.Drawing.Color.LightGray; + this.logTextBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.logTextBox1.EnableDisplayTimer = false; + this.logTextBox1.EnableGubunColor = true; + this.logTextBox1.Font = new System.Drawing.Font("맑은 고딕", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.logTextBox1.ListFormat = "[{0}] {1}"; + this.logTextBox1.Location = new System.Drawing.Point(0, 31); + this.logTextBox1.MaxListCount = ((ushort)(200)); + this.logTextBox1.MaxTextLength = ((uint)(4000u)); + this.logTextBox1.MessageInterval = 50; + this.logTextBox1.Name = "logTextBox1"; + this.logTextBox1.Size = new System.Drawing.Size(735, 469); + this.logTextBox1.TabIndex = 4; + this.logTextBox1.Text = ""; + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.button1.Location = new System.Drawing.Point(0, 500); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(735, 40); + this.button1.TabIndex = 5; + this.button1.Text = "Load File"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // fLog + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(735, 540); + this.Controls.Add(this.logTextBox1); + this.Controls.Add(this.button1); + this.Controls.Add(this.panLog); + this.Name = "fLog"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Log Display"; + this.TopMost = true; + this.Load += new System.EventHandler(this.fLog_Load); + this.panLog.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Panel panLog; + private arCtl.LogTextBox logTextBox1; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.CheckBox chkMain; + private System.Windows.Forms.CheckBox chkILock; + private System.Windows.Forms.CheckBox chkFlag; + private System.Windows.Forms.CheckBox chkKen; + private System.Windows.Forms.CheckBox chkDebug; + private System.Windows.Forms.CheckBox chkILStop; + private System.Windows.Forms.CheckBox chkVision; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/Don't change it/Dialog/fLog.cs b/Handler/Project_form2/Don't change it/Dialog/fLog.cs new file mode 100644 index 0000000..fdae76e --- /dev/null +++ b/Handler/Project_form2/Don't change it/Dialog/fLog.cs @@ -0,0 +1,104 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fLog : Form + { + public fLog() + { + InitializeComponent(); + Pub.log.RaiseMsg += log_RaiseMsg; + Pub.logFlag.RaiseMsg += LogFlag_RaiseMsg; + Pub.logILock.RaiseMsg += LogILock_RaiseMsg; + Pub.logKeyence.RaiseMsg += LogKeyence_RaiseMsg; + Pub.logILStop.RaiseMsg += LogIL_RaiseMsg; + Pub.logDbg.RaiseMsg += LogDebug_RaiseMsg; + Pub.logVision.RaiseMsg += LogVision_RaiseMsg; + //this.FormClosed += (s1, e1) => { this.timer1.Stop(); }; + } + + private void LogVision_RaiseMsg(DateTime LogTime, string TypeStr, string Message) + { + if (this.chkVision.Checked) this.logTextBox1.AddMsg(LogTime, "DEBUG", TypeStr + ":" + Message); + } + + private void fLog_Load(object sender, EventArgs e) + { + this.logTextBox1.ColorList = new arCtl.sLogMessageColor[] { + new arCtl.sLogMessageColor("FLAG",Color.SkyBlue), + new arCtl.sLogMessageColor("ILOCK", Color.Gold), + new arCtl.sLogMessageColor("ERR",Color.Red), + new arCtl.sLogMessageColor("ATT", Color.Tomato), + new arCtl.sLogMessageColor("NORM", Color.WhiteSmoke), + }; + //timer1.Start(); + } + private void button1_Click(object sender, EventArgs e) + { + var od = new OpenFileDialog(); + od.InitialDirectory = Pub.log.BaseDirectory; + if (od.ShowDialog() == System.Windows.Forms.DialogResult.OK) + { + this.logTextBox1.Text = System.IO.File.ReadAllText(od.FileName, System.Text.Encoding.Default); + } + } + + private void chkMain_Click(object sender, EventArgs e) + { + + } + private void LogDebug_RaiseMsg(DateTime LogTime, string TypeStr, string Message) + { + if (this.chkDebug.Checked) this.logTextBox1.AddMsg(LogTime, "DEBUG", TypeStr + ":" + Message); + } + + private void LogIL_RaiseMsg(DateTime LogTime, string TypeStr, string Message) + { + if (this.chkILStop.Checked) this.logTextBox1.AddMsg(LogTime, "IL-STOP", TypeStr + ":" + Message); + } + + private void LogFlag_RaiseMsg(DateTime LogTime, string TypeStr, string Message) + { + if (this.chkFlag.Checked) this.logTextBox1.AddMsg(LogTime, "FLAG", TypeStr + ":" + Message); + } + + private void LogILock_RaiseMsg(DateTime LogTime, string TypeStr, string Message) + { + if (this.chkILock.Checked) this.logTextBox1.AddMsg(LogTime, "ILCK", TypeStr + ":" + Message); + } + + private void LogKeyence_RaiseMsg(DateTime LogTime, string TypeStr, string Message) + { + if (this.chkKen.Checked) this.logTextBox1.AddMsg(LogTime, "KEYE", TypeStr + ":" + Message); + } + + + void log_RaiseMsg(DateTime LogTime, string TypeStr, string Message) + { + if (this.chkMain.Checked) this.logTextBox1.AddMsg(LogTime, TypeStr, Message); + } + + private void timer1_Tick(object sender, EventArgs e) + { + //this.textBox1.Text = + // "PX:" + Pub.WaitMessage[(int)eWaitMessage.PX] + "\r\n" + + // "PZ:" + Pub.WaitMessage[(int)eWaitMessage.PZ] + "\r\n" + + // "LMOVE:" + Pub.WaitMessage[(int)eWaitMessage.LMOVE] + "\r\n" + + // "LUPDN:" + Pub.WaitMessage[(int)eWaitMessage.LUPDN] + "\r\n" + + // "RMOVE:" + Pub.WaitMessage[(int)eWaitMessage.RMOVE] + "\r\n" + + // "RUPDN:" + Pub.WaitMessage[(int)eWaitMessage.RUPDN] + "\r\n" + + // "LPRINT:" + Pub.WaitMessage[(int)eWaitMessage.LPRINT] + "\r\n" + + // "RPRINT:" + Pub.WaitMessage[(int)eWaitMessage.RPRINT] + "\r\n" + + // "VIS0:" + Pub.WaitMessage[(int)eWaitMessage.VIS0] + "\r\n" + + // "VIS1:" + Pub.WaitMessage[(int)eWaitMessage.VIS1] + "\r\n" + + // "VIS2:" + Pub.WaitMessage[(int)eWaitMessage.VIS2]; + } + } +} diff --git a/Handler/Project_form2/Don't change it/Dialog/fLog.resx b/Handler/Project_form2/Don't change it/Dialog/fLog.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/Project_form2/Don't change it/Dialog/fLog.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/Project_form2/Don't change it/Dialog/fMessageBox.Designer.cs b/Handler/Project_form2/Don't change it/Dialog/fMessageBox.Designer.cs new file mode 100644 index 0000000..a2ab3c9 --- /dev/null +++ b/Handler/Project_form2/Don't change it/Dialog/fMessageBox.Designer.cs @@ -0,0 +1,715 @@ +namespace Project +{ + partial class fMsgQuestion + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.tmBlink = new System.Windows.Forms.Timer(this.components); + this.arPanel1 = new arCtl.arPanel(); + this.panel10 = new System.Windows.Forms.Panel(); + this.btYes = new arCtl.arLabel(); + this.panSplite = new System.Windows.Forms.Panel(); + this.btNo = new arCtl.arLabel(); + this.panel8 = new System.Windows.Forms.Panel(); + this.lb7 = new arCtl.arLabel(); + this.panel7 = new System.Windows.Forms.Panel(); + this.lb6 = new arCtl.arLabel(); + this.panel6 = new System.Windows.Forms.Panel(); + this.lb5 = new arCtl.arLabel(); + this.panel5 = new System.Windows.Forms.Panel(); + this.lb4 = new arCtl.arLabel(); + this.panel4 = new System.Windows.Forms.Panel(); + this.lb3 = new arCtl.arLabel(); + this.panel3 = new System.Windows.Forms.Panel(); + this.lb2 = new arCtl.arLabel(); + this.panel2 = new System.Windows.Forms.Panel(); + this.lb1 = new arCtl.arLabel(); + this.panel1 = new System.Windows.Forms.Panel(); + this.lbTitle = new arCtl.arLabel(); + this.panel9 = new System.Windows.Forms.Panel(); + this.arPanel1.SuspendLayout(); + this.panel10.SuspendLayout(); + this.panel9.SuspendLayout(); + this.SuspendLayout(); + // + // tmBlink + // + this.tmBlink.Enabled = true; + this.tmBlink.Interval = 300; + this.tmBlink.Tick += new System.EventHandler(this.tmBlink_Tick); + // + // arPanel1 + // + this.arPanel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arPanel1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arPanel1.BorderColor = System.Drawing.Color.DimGray; + this.arPanel1.BorderSize = new System.Windows.Forms.Padding(0); + this.arPanel1.Controls.Add(this.panel10); + this.arPanel1.Controls.Add(this.panel8); + this.arPanel1.Controls.Add(this.lb7); + this.arPanel1.Controls.Add(this.panel7); + this.arPanel1.Controls.Add(this.lb6); + this.arPanel1.Controls.Add(this.panel6); + this.arPanel1.Controls.Add(this.lb5); + this.arPanel1.Controls.Add(this.panel5); + this.arPanel1.Controls.Add(this.lb4); + this.arPanel1.Controls.Add(this.panel4); + this.arPanel1.Controls.Add(this.lb3); + this.arPanel1.Controls.Add(this.panel3); + this.arPanel1.Controls.Add(this.lb2); + this.arPanel1.Controls.Add(this.panel2); + this.arPanel1.Controls.Add(this.lb1); + this.arPanel1.Controls.Add(this.panel1); + this.arPanel1.Controls.Add(this.lbTitle); + this.arPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.arPanel1.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Italic); + this.arPanel1.ForeColor = System.Drawing.Color.Khaki; + this.arPanel1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arPanel1.GradientRepeatBG = false; + this.arPanel1.Location = new System.Drawing.Point(10, 10); + this.arPanel1.Name = "arPanel1"; + this.arPanel1.Padding = new System.Windows.Forms.Padding(8); + this.arPanel1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arPanel1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arPanel1.ProgressMax = 100F; + this.arPanel1.ProgressMin = 0F; + this.arPanel1.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arPanel1.ProgressValue = 0F; + this.arPanel1.ShadowColor = System.Drawing.Color.Black; + this.arPanel1.ShowBorder = true; + this.arPanel1.Size = new System.Drawing.Size(706, 542); + this.arPanel1.TabIndex = 4; + this.arPanel1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.arPanel1.TextShadow = false; + this.arPanel1.UseProgressBar = false; + this.arPanel1.Paint += new System.Windows.Forms.PaintEventHandler(this.arPanel1_Paint); + // + // panel10 + // + this.panel10.Controls.Add(this.btYes); + this.panel10.Controls.Add(this.panSplite); + this.panel10.Controls.Add(this.btNo); + this.panel10.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel10.Location = new System.Drawing.Point(8, 465); + this.panel10.Name = "panel10"; + this.panel10.Size = new System.Drawing.Size(690, 69); + this.panel10.TabIndex = 19; + // + // btYes + // + this.btYes.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.btYes.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.btYes.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btYes.BorderColor = System.Drawing.Color.DimGray; + this.btYes.BorderColorOver = System.Drawing.Color.DimGray; + this.btYes.BorderSize = new System.Windows.Forms.Padding(1); + this.btYes.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btYes.Cursor = System.Windows.Forms.Cursors.Hand; + this.btYes.Dock = System.Windows.Forms.DockStyle.Fill; + this.btYes.Font = new System.Drawing.Font("맑은 고딕", 30F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btYes.ForeColor = System.Drawing.Color.Lime; + this.btYes.GradientEnable = true; + this.btYes.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.btYes.GradientRepeatBG = false; + this.btYes.isButton = true; + this.btYes.Location = new System.Drawing.Point(0, 0); + this.btYes.Margin = new System.Windows.Forms.Padding(6, 3, 3, 6); + this.btYes.MouseDownColor = System.Drawing.Color.Yellow; + this.btYes.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btYes.msg = null; + this.btYes.Name = "btYes"; + this.btYes.ProgressBorderColor = System.Drawing.Color.Black; + this.btYes.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btYes.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btYes.ProgressEnable = false; + this.btYes.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btYes.ProgressForeColor = System.Drawing.Color.Black; + this.btYes.ProgressMax = 100F; + this.btYes.ProgressMin = 0F; + this.btYes.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btYes.ProgressValue = 0F; + this.btYes.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(10)))), ((int)(((byte)(10)))), ((int)(((byte)(10))))); + this.btYes.Sign = ""; + this.btYes.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btYes.SignColor = System.Drawing.Color.Yellow; + this.btYes.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btYes.Size = new System.Drawing.Size(368, 69); + this.btYes.TabIndex = 0; + this.btYes.Text = "YES"; + this.btYes.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btYes.TextShadow = true; + this.btYes.TextVisible = true; + this.btYes.Click += new System.EventHandler(this.btYes_Click); + // + // panSplite + // + this.panSplite.Dock = System.Windows.Forms.DockStyle.Right; + this.panSplite.Location = new System.Drawing.Point(368, 0); + this.panSplite.Name = "panSplite"; + this.panSplite.Size = new System.Drawing.Size(5, 69); + this.panSplite.TabIndex = 1; + // + // btNo + // + this.btNo.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.btNo.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.btNo.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btNo.BorderColor = System.Drawing.Color.DimGray; + this.btNo.BorderColorOver = System.Drawing.Color.DimGray; + this.btNo.BorderSize = new System.Windows.Forms.Padding(1); + this.btNo.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btNo.Cursor = System.Windows.Forms.Cursors.Hand; + this.btNo.Dock = System.Windows.Forms.DockStyle.Right; + this.btNo.Font = new System.Drawing.Font("맑은 고딕", 30F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btNo.ForeColor = System.Drawing.Color.Tomato; + this.btNo.GradientEnable = true; + this.btNo.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.btNo.GradientRepeatBG = false; + this.btNo.isButton = true; + this.btNo.Location = new System.Drawing.Point(373, 0); + this.btNo.Margin = new System.Windows.Forms.Padding(3, 3, 6, 6); + this.btNo.MouseDownColor = System.Drawing.Color.Yellow; + this.btNo.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btNo.msg = null; + this.btNo.Name = "btNo"; + this.btNo.ProgressBorderColor = System.Drawing.Color.Black; + this.btNo.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btNo.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btNo.ProgressEnable = false; + this.btNo.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btNo.ProgressForeColor = System.Drawing.Color.Black; + this.btNo.ProgressMax = 100F; + this.btNo.ProgressMin = 0F; + this.btNo.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btNo.ProgressValue = 0F; + this.btNo.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(10)))), ((int)(((byte)(10)))), ((int)(((byte)(10))))); + this.btNo.Sign = ""; + this.btNo.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btNo.SignColor = System.Drawing.Color.Yellow; + this.btNo.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btNo.Size = new System.Drawing.Size(317, 69); + this.btNo.TabIndex = 0; + this.btNo.Text = "NO"; + this.btNo.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btNo.TextShadow = true; + this.btNo.TextVisible = true; + this.btNo.Click += new System.EventHandler(this.btNo_Click); + // + // panel8 + // + this.panel8.Dock = System.Windows.Forms.DockStyle.Top; + this.panel8.Location = new System.Drawing.Point(8, 460); + this.panel8.Name = "panel8"; + this.panel8.Size = new System.Drawing.Size(690, 5); + this.panel8.TabIndex = 18; + // + // lb7 + // + this.lb7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lb7.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lb7.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb7.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb7.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lb7.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb7.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 2); + this.lb7.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb7.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb7.Dock = System.Windows.Forms.DockStyle.Top; + this.lb7.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); + this.lb7.ForeColor = System.Drawing.Color.Orange; + this.lb7.GradientEnable = true; + this.lb7.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lb7.GradientRepeatBG = false; + this.lb7.isButton = false; + this.lb7.Location = new System.Drawing.Point(8, 410); + this.lb7.MouseDownColor = System.Drawing.Color.Yellow; + this.lb7.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb7.msg = null; + this.lb7.Name = "lb7"; + this.lb7.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb7.ProgressBorderColor = System.Drawing.Color.Black; + this.lb7.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb7.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb7.ProgressEnable = false; + this.lb7.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb7.ProgressForeColor = System.Drawing.Color.Black; + this.lb7.ProgressMax = 100F; + this.lb7.ProgressMin = 0F; + this.lb7.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb7.ProgressValue = 0F; + this.lb7.ShadowColor = System.Drawing.Color.Black; + this.lb7.Sign = ""; + this.lb7.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb7.SignColor = System.Drawing.Color.Yellow; + this.lb7.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb7.Size = new System.Drawing.Size(690, 50); + this.lb7.TabIndex = 9; + this.lb7.Text = "*"; + this.lb7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb7.TextShadow = true; + this.lb7.TextVisible = true; + // + // panel7 + // + this.panel7.Dock = System.Windows.Forms.DockStyle.Top; + this.panel7.Location = new System.Drawing.Point(8, 405); + this.panel7.Name = "panel7"; + this.panel7.Size = new System.Drawing.Size(690, 5); + this.panel7.TabIndex = 17; + // + // lb6 + // + this.lb6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lb6.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lb6.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb6.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb6.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lb6.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb6.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 2); + this.lb6.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb6.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb6.Dock = System.Windows.Forms.DockStyle.Top; + this.lb6.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); + this.lb6.ForeColor = System.Drawing.Color.Orange; + this.lb6.GradientEnable = true; + this.lb6.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lb6.GradientRepeatBG = false; + this.lb6.isButton = false; + this.lb6.Location = new System.Drawing.Point(8, 355); + this.lb6.MouseDownColor = System.Drawing.Color.Yellow; + this.lb6.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb6.msg = null; + this.lb6.Name = "lb6"; + this.lb6.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb6.ProgressBorderColor = System.Drawing.Color.Black; + this.lb6.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb6.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb6.ProgressEnable = false; + this.lb6.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb6.ProgressForeColor = System.Drawing.Color.Black; + this.lb6.ProgressMax = 100F; + this.lb6.ProgressMin = 0F; + this.lb6.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb6.ProgressValue = 0F; + this.lb6.ShadowColor = System.Drawing.Color.Black; + this.lb6.Sign = ""; + this.lb6.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb6.SignColor = System.Drawing.Color.Yellow; + this.lb6.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb6.Size = new System.Drawing.Size(690, 50); + this.lb6.TabIndex = 8; + this.lb6.Text = "*"; + this.lb6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb6.TextShadow = true; + this.lb6.TextVisible = true; + // + // panel6 + // + this.panel6.Dock = System.Windows.Forms.DockStyle.Top; + this.panel6.Location = new System.Drawing.Point(8, 350); + this.panel6.Name = "panel6"; + this.panel6.Size = new System.Drawing.Size(690, 5); + this.panel6.TabIndex = 16; + // + // lb5 + // + this.lb5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lb5.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lb5.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb5.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb5.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lb5.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb5.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 2); + this.lb5.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb5.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb5.Dock = System.Windows.Forms.DockStyle.Top; + this.lb5.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); + this.lb5.ForeColor = System.Drawing.Color.Orange; + this.lb5.GradientEnable = true; + this.lb5.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lb5.GradientRepeatBG = false; + this.lb5.isButton = false; + this.lb5.Location = new System.Drawing.Point(8, 300); + this.lb5.MouseDownColor = System.Drawing.Color.Yellow; + this.lb5.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb5.msg = null; + this.lb5.Name = "lb5"; + this.lb5.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb5.ProgressBorderColor = System.Drawing.Color.Black; + this.lb5.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb5.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb5.ProgressEnable = false; + this.lb5.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb5.ProgressForeColor = System.Drawing.Color.Black; + this.lb5.ProgressMax = 100F; + this.lb5.ProgressMin = 0F; + this.lb5.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb5.ProgressValue = 0F; + this.lb5.ShadowColor = System.Drawing.Color.Black; + this.lb5.Sign = ""; + this.lb5.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb5.SignColor = System.Drawing.Color.Yellow; + this.lb5.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb5.Size = new System.Drawing.Size(690, 50); + this.lb5.TabIndex = 7; + this.lb5.Text = "*"; + this.lb5.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb5.TextShadow = true; + this.lb5.TextVisible = true; + // + // panel5 + // + this.panel5.Dock = System.Windows.Forms.DockStyle.Top; + this.panel5.Location = new System.Drawing.Point(8, 295); + this.panel5.Name = "panel5"; + this.panel5.Size = new System.Drawing.Size(690, 5); + this.panel5.TabIndex = 15; + // + // lb4 + // + this.lb4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lb4.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lb4.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb4.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb4.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lb4.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb4.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 2); + this.lb4.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb4.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb4.Dock = System.Windows.Forms.DockStyle.Top; + this.lb4.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); + this.lb4.ForeColor = System.Drawing.Color.Orange; + this.lb4.GradientEnable = true; + this.lb4.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lb4.GradientRepeatBG = false; + this.lb4.isButton = false; + this.lb4.Location = new System.Drawing.Point(8, 245); + this.lb4.MouseDownColor = System.Drawing.Color.Yellow; + this.lb4.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb4.msg = null; + this.lb4.Name = "lb4"; + this.lb4.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb4.ProgressBorderColor = System.Drawing.Color.Black; + this.lb4.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb4.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb4.ProgressEnable = false; + this.lb4.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb4.ProgressForeColor = System.Drawing.Color.Black; + this.lb4.ProgressMax = 100F; + this.lb4.ProgressMin = 0F; + this.lb4.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb4.ProgressValue = 0F; + this.lb4.ShadowColor = System.Drawing.Color.Black; + this.lb4.Sign = ""; + this.lb4.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb4.SignColor = System.Drawing.Color.Yellow; + this.lb4.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb4.Size = new System.Drawing.Size(690, 50); + this.lb4.TabIndex = 6; + this.lb4.Text = "*"; + this.lb4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb4.TextShadow = true; + this.lb4.TextVisible = true; + // + // panel4 + // + this.panel4.Dock = System.Windows.Forms.DockStyle.Top; + this.panel4.Location = new System.Drawing.Point(8, 240); + this.panel4.Name = "panel4"; + this.panel4.Size = new System.Drawing.Size(690, 5); + this.panel4.TabIndex = 14; + // + // lb3 + // + this.lb3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lb3.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lb3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb3.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb3.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lb3.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb3.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 2); + this.lb3.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb3.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb3.Dock = System.Windows.Forms.DockStyle.Top; + this.lb3.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); + this.lb3.ForeColor = System.Drawing.Color.Orange; + this.lb3.GradientEnable = true; + this.lb3.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lb3.GradientRepeatBG = false; + this.lb3.isButton = false; + this.lb3.Location = new System.Drawing.Point(8, 190); + this.lb3.MouseDownColor = System.Drawing.Color.Yellow; + this.lb3.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb3.msg = null; + this.lb3.Name = "lb3"; + this.lb3.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb3.ProgressBorderColor = System.Drawing.Color.Black; + this.lb3.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb3.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb3.ProgressEnable = false; + this.lb3.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb3.ProgressForeColor = System.Drawing.Color.Black; + this.lb3.ProgressMax = 100F; + this.lb3.ProgressMin = 0F; + this.lb3.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb3.ProgressValue = 0F; + this.lb3.ShadowColor = System.Drawing.Color.Black; + this.lb3.Sign = ""; + this.lb3.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb3.SignColor = System.Drawing.Color.Yellow; + this.lb3.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb3.Size = new System.Drawing.Size(690, 50); + this.lb3.TabIndex = 5; + this.lb3.Text = "*"; + this.lb3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb3.TextShadow = true; + this.lb3.TextVisible = true; + // + // panel3 + // + this.panel3.Dock = System.Windows.Forms.DockStyle.Top; + this.panel3.Location = new System.Drawing.Point(8, 185); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(690, 5); + this.panel3.TabIndex = 13; + // + // lb2 + // + this.lb2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lb2.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lb2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb2.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lb2.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb2.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 2); + this.lb2.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb2.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb2.Dock = System.Windows.Forms.DockStyle.Top; + this.lb2.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); + this.lb2.ForeColor = System.Drawing.Color.Orange; + this.lb2.GradientEnable = true; + this.lb2.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lb2.GradientRepeatBG = false; + this.lb2.isButton = false; + this.lb2.Location = new System.Drawing.Point(8, 135); + this.lb2.MouseDownColor = System.Drawing.Color.Yellow; + this.lb2.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb2.msg = null; + this.lb2.Name = "lb2"; + this.lb2.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb2.ProgressBorderColor = System.Drawing.Color.Black; + this.lb2.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb2.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb2.ProgressEnable = false; + this.lb2.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb2.ProgressForeColor = System.Drawing.Color.Black; + this.lb2.ProgressMax = 100F; + this.lb2.ProgressMin = 0F; + this.lb2.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb2.ProgressValue = 0F; + this.lb2.ShadowColor = System.Drawing.Color.Black; + this.lb2.Sign = ""; + this.lb2.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb2.SignColor = System.Drawing.Color.Yellow; + this.lb2.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb2.Size = new System.Drawing.Size(690, 50); + this.lb2.TabIndex = 4; + this.lb2.Text = "*"; + this.lb2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb2.TextShadow = true; + this.lb2.TextVisible = true; + // + // panel2 + // + this.panel2.Dock = System.Windows.Forms.DockStyle.Top; + this.panel2.Location = new System.Drawing.Point(8, 130); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(690, 5); + this.panel2.TabIndex = 12; + // + // lb1 + // + this.lb1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lb1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lb1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb1.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lb1.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb1.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 2); + this.lb1.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb1.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb1.Dock = System.Windows.Forms.DockStyle.Top; + this.lb1.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold); + this.lb1.ForeColor = System.Drawing.Color.Orange; + this.lb1.GradientEnable = true; + this.lb1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lb1.GradientRepeatBG = false; + this.lb1.isButton = false; + this.lb1.Location = new System.Drawing.Point(8, 80); + this.lb1.MouseDownColor = System.Drawing.Color.Yellow; + this.lb1.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb1.msg = null; + this.lb1.Name = "lb1"; + this.lb1.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb1.ProgressBorderColor = System.Drawing.Color.Black; + this.lb1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb1.ProgressEnable = false; + this.lb1.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb1.ProgressForeColor = System.Drawing.Color.Black; + this.lb1.ProgressMax = 100F; + this.lb1.ProgressMin = 0F; + this.lb1.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb1.ProgressValue = 0F; + this.lb1.ShadowColor = System.Drawing.Color.Black; + this.lb1.Sign = ""; + this.lb1.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb1.SignColor = System.Drawing.Color.Yellow; + this.lb1.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb1.Size = new System.Drawing.Size(690, 50); + this.lb1.TabIndex = 2; + this.lb1.Text = "*"; + this.lb1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb1.TextShadow = true; + this.lb1.TextVisible = true; + // + // panel1 + // + this.panel1.Dock = System.Windows.Forms.DockStyle.Top; + this.panel1.Location = new System.Drawing.Point(8, 75); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(690, 5); + this.panel1.TabIndex = 11; + // + // lbTitle + // + this.lbTitle.BackColor = System.Drawing.Color.DeepSkyBlue; + this.lbTitle.BackColor2 = System.Drawing.Color.DodgerBlue; + this.lbTitle.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lbTitle.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbTitle.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbTitle.BorderColorOver = System.Drawing.Color.Gray; + this.lbTitle.BorderSize = new System.Windows.Forms.Padding(1); + this.lbTitle.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbTitle.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbTitle.Dock = System.Windows.Forms.DockStyle.Top; + this.lbTitle.Font = new System.Drawing.Font("맑은 고딕", 30F, System.Drawing.FontStyle.Bold); + this.lbTitle.ForeColor = System.Drawing.Color.WhiteSmoke; + this.lbTitle.GradientEnable = true; + this.lbTitle.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lbTitle.GradientRepeatBG = false; + this.lbTitle.isButton = false; + this.lbTitle.Location = new System.Drawing.Point(8, 8); + this.lbTitle.MouseDownColor = System.Drawing.Color.Yellow; + this.lbTitle.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbTitle.msg = null; + this.lbTitle.Name = "lbTitle"; + this.lbTitle.ProgressBorderColor = System.Drawing.Color.Black; + this.lbTitle.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbTitle.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbTitle.ProgressEnable = false; + this.lbTitle.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbTitle.ProgressForeColor = System.Drawing.Color.Black; + this.lbTitle.ProgressMax = 100F; + this.lbTitle.ProgressMin = 0F; + this.lbTitle.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbTitle.ProgressValue = 0F; + this.lbTitle.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.lbTitle.Sign = ""; + this.lbTitle.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbTitle.SignColor = System.Drawing.Color.Yellow; + this.lbTitle.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbTitle.Size = new System.Drawing.Size(690, 67); + this.lbTitle.TabIndex = 3; + this.lbTitle.Text = "TITLE"; + this.lbTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbTitle.TextShadow = true; + this.lbTitle.TextVisible = true; + this.lbTitle.Click += new System.EventHandler(this.lbTitle_Click); + // + // panel9 + // + this.panel9.BackColor = System.Drawing.Color.White; + this.panel9.Controls.Add(this.arPanel1); + this.panel9.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel9.Location = new System.Drawing.Point(1, 1); + this.panel9.Name = "panel9"; + this.panel9.Padding = new System.Windows.Forms.Padding(10); + this.panel9.Size = new System.Drawing.Size(726, 562); + this.panel9.TabIndex = 5; + // + // fMsgQuestion + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.Black; + this.ClientSize = new System.Drawing.Size(728, 564); + this.Controls.Add(this.panel9); + this.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.KeyPreview = true; + this.MaximizeBox = false; + this.Name = "fMsgQuestion"; + this.Padding = new System.Windows.Forms.Padding(1); + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Message Window"; + this.TopMost = true; + this.Load += new System.EventHandler(this.fMsg_Load); + this.arPanel1.ResumeLayout(false); + this.panel10.ResumeLayout(false); + this.panel9.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + public arCtl.arLabel lb1; + private arCtl.arPanel arPanel1; + public arCtl.arLabel lbTitle; + public arCtl.arLabel lb7; + public arCtl.arLabel lb6; + public arCtl.arLabel lb5; + public arCtl.arLabel lb4; + public arCtl.arLabel lb3; + public arCtl.arLabel lb2; + private System.Windows.Forms.Timer tmBlink; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.Panel panel4; + private System.Windows.Forms.Panel panel3; + private System.Windows.Forms.Panel panel5; + private System.Windows.Forms.Panel panel6; + private System.Windows.Forms.Panel panel7; + private System.Windows.Forms.Panel panel8; + private System.Windows.Forms.Panel panel9; + private System.Windows.Forms.Panel panel10; + private System.Windows.Forms.Panel panSplite; + public arCtl.arLabel btYes; + public arCtl.arLabel btNo; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/Don't change it/Dialog/fMessageBox.cs b/Handler/Project_form2/Don't change it/Dialog/fMessageBox.cs new file mode 100644 index 0000000..edfd873 --- /dev/null +++ b/Handler/Project_form2/Don't change it/Dialog/fMessageBox.cs @@ -0,0 +1,181 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project +{ + public partial class fMsgQuestion : Form + { + private Boolean fMove = false; + private Point MDownPos; + private string _msg = string.Empty; + public Boolean DialogMode = false; + + public fMsgQuestion(string msg,string but1Text,string but2Text, string filename = "") + { + EnableUserClose = true; + InitializeComponent(); + this.FormClosing += fMsgWindow_FormClosing; + this.KeyDown += (s1, e1) => { if (EnableUserClose && e1.KeyCode == Keys.Escape) this.Close(); }; + this._msg = msg; + + + if (filename != "") + { + string fullname = AppDomain.CurrentDomain.BaseDirectory + "Image\\" + filename; + if (System.IO.File.Exists(fullname)) + { + var img = this.lb1.BackgroundImage; + this.lb1.BackgroundImage = Image.FromFile(fullname); + if (img != null) img.Dispose(); + } + else + { + msg += "\nNo Image File\n" + filename; + } + } + else + { + var img = this.lb1.BackgroundImage; + this.lb1.BackgroundImage = null; + if (img != null) img.Dispose(); + } + + btYes.Text = but1Text; + if (but2Text.isEmpty()) + { + btNo.Visible = false; + panSplite.Visible = false; + } + + setMessage(msg); + this.lbTitle.MouseMove += label1_MouseMove; + lbTitle.MouseUp += label1_MouseUp; + lbTitle.MouseDown += label1_MouseDown; + lbTitle.MouseDoubleClick += label1_MouseDoubleClick; + //btClose.Click += arLabel1_Click; + } + + void fMsgWindow_FormClosing(object sender, FormClosingEventArgs e) + { + if (DialogMode == false) + { + e.Cancel = true; + return; + } + } + + private void fMsg_Load(object sender, EventArgs e) + { + + } + + + /// + /// 사용자가 이 창을 닫을수 있는가? + /// + public Boolean EnableUserClose + { + get { return _enableuserclose; } + set + { + _enableuserclose = value; + // if (!EnableUserClose) btClose.Visible = false; + } + } + private Boolean _enableuserclose = true; + + public void setMessage(string msg) + { + //msg를 분리해서 표시를 한다. + var lbs = new arCtl.arLabel[] { lbTitle, lb1, lb2, lb3, lb4, lb5, lb6, lb7 }; + var lineBuf = msg.Replace("\r", "").Replace("\n\n", "\n").Split('\n'); + int maxLine = Math.Min(lbs.Length, lineBuf.Length); + + for (int i = 0; i < lbs.Length; i++) //최대줄을 넘어가는건 표시불가 + { + if (i >= lineBuf.Length) + { + lbs[i].Text = string.Empty; + } + else + { + if (i > 0) lbs[i].Text = string.Format("{1}", i, lineBuf[i]); + else lbs[i].Text = lineBuf[i]; + } + + } + } + + private void label1_MouseMove(object sender, MouseEventArgs e) + { + if (fMove) + { + Point offset = new Point(e.X - MDownPos.X, e.Y - MDownPos.Y); + this.Left += offset.X; + this.Top += offset.Y; + offset = new Point(0, 0); + } + } + + private void label1_MouseUp(object sender, MouseEventArgs e) + { + fMove = false; + } + + private void label1_MouseDown(object sender, MouseEventArgs e) + { + MDownPos = new Point(e.X, e.Y); + fMove = true; + } + + private void label1_MouseDoubleClick(object sender, MouseEventArgs e) + { + if (EnableUserClose) + { + if (DialogMode == false) this.Visible = false; + else this.Close(); + } + + } + + + private void lbTitle_Click(object sender, EventArgs e) + { + if (EnableUserClose) + { + if (DialogMode == false) this.Visible = false; + else this.Close(); + } + } + + private void tmBlink_Tick(object sender, EventArgs e) + { + var bg1 = lbTitle.BackColor; + var bg2 = lbTitle.BackColor2; + lbTitle.BackColor = bg2; + lbTitle.BackColor2 = bg1; + } + + private void btYes_Click(object sender, EventArgs e) + { + this.DialogResult = System.Windows.Forms.DialogResult.Yes; + } + + private void btNo_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void arPanel1_Paint(object sender, PaintEventArgs e) + { + + } + } +} diff --git a/Handler/Project_form2/Don't change it/Dialog/fMessageBox.resx b/Handler/Project_form2/Don't change it/Dialog/fMessageBox.resx new file mode 100644 index 0000000..eedca23 --- /dev/null +++ b/Handler/Project_form2/Don't change it/Dialog/fMessageBox.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Handler/Project_form2/Don't change it/Dialog/fPassword.Designer.cs b/Handler/Project_form2/Don't change it/Dialog/fPassword.Designer.cs new file mode 100644 index 0000000..68cfaac --- /dev/null +++ b/Handler/Project_form2/Don't change it/Dialog/fPassword.Designer.cs @@ -0,0 +1,94 @@ +namespace Project.Dialog +{ + partial class fPassword + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fPassword)); + this.tbInput = new System.Windows.Forms.TextBox(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.touchKey1 = new arCtl.TouchKey(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.SuspendLayout(); + // + // tbInput + // + this.tbInput.Font = new System.Drawing.Font("Calibri", 20.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tbInput.Location = new System.Drawing.Point(26, 140); + this.tbInput.Name = "tbInput"; + this.tbInput.PasswordChar = '●'; + this.tbInput.Size = new System.Drawing.Size(235, 40); + this.tbInput.TabIndex = 1; + this.tbInput.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // pictureBox1 + // + this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); + this.pictureBox1.Location = new System.Drawing.Point(91, 23); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(96, 96); + this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; + this.pictureBox1.TabIndex = 3; + this.pictureBox1.TabStop = false; + // + // touchKey1 + // + this.touchKey1.Location = new System.Drawing.Point(26, 194); + this.touchKey1.Margin = new System.Windows.Forms.Padding(6, 11, 6, 11); + this.touchKey1.Name = "touchKey1"; + this.touchKey1.Size = new System.Drawing.Size(235, 260); + this.touchKey1.TabIndex = 5; + this.touchKey1.keyClick += new arCtl.TouchKey.KeyClickHandler(this.touchKey1_keyClick); + // + // fPassword + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(284, 470); + this.Controls.Add(this.touchKey1); + this.Controls.Add(this.pictureBox1); + this.Controls.Add(this.tbInput); + this.Font = new System.Drawing.Font("Calibri", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.KeyPreview = true; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fPassword"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Enter Password"; + this.TopMost = true; + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.PictureBox pictureBox1; + public System.Windows.Forms.TextBox tbInput; + private arCtl.TouchKey touchKey1; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/Don't change it/Dialog/fPassword.cs b/Handler/Project_form2/Don't change it/Dialog/fPassword.cs new file mode 100644 index 0000000..0ced34e --- /dev/null +++ b/Handler/Project_form2/Don't change it/Dialog/fPassword.cs @@ -0,0 +1,74 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fPassword : Form + { + public fPassword() + { + InitializeComponent(); + this.tbInput.KeyDown += (s1, e1) => { if (e1.KeyCode == Keys.Enter) Confirm(); }; + this.KeyPreview = true; + this.KeyDown += (s1, e1) => { + if (e1.KeyCode == Keys.Escape) this.Close(); + }; + } + + private void Confirm() + { + string id = tbInput.Text.Trim(); + if (id.isEmpty()) + { + tbInput.Focus(); + return; + } + DialogResult = DialogResult.OK; + } + + private void touchKey1_keyClick(string key) + { + if (key == "BACK" || key == "◁") + { + if (!tbInput.Text.isEmpty()) + { + if (tbInput.Text.Length == 1) tbInput.Text = ""; + else tbInput.Text = tbInput.Text.Substring(0, tbInput.Text.Length - 1); + } + //if (tbInput.Text == "") tbInput.Text = "0"; + } + else if (key == "CLEAR" || key == "RESET" || key == "◀") + { + tbInput.Text = "0"; + } + else if (key == "ENTER" || key == "ENT") + { + Confirm(); + } + else + { + if (tbInput.SelectionLength > 0 && tbInput.Text.Length == tbInput.SelectionLength) + { + tbInput.Text = key; + } + else if (tbInput.SelectionLength > 0) + { + //선택된 영역을 대체해준다. + tbInput.SelectedText = key; + } + else tbInput.Text += key; + + } + + tbInput.SelectionLength = 0; + if (!tbInput.Text.isEmpty()) + tbInput.SelectionStart = tbInput.Text.Length; + } + } +} diff --git a/Handler/Project_form2/Don't change it/Dialog/fPassword.resx b/Handler/Project_form2/Don't change it/Dialog/fPassword.resx new file mode 100644 index 0000000..76d5ac7 --- /dev/null +++ b/Handler/Project_form2/Don't change it/Dialog/fPassword.resx @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAb + rwAAG68BXhqRHAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAeoSURBVHhe7Z1r + bBRVFMfr+xHf8RUTHx/UoHwpLDMLLdHtzBSosWoijSZCq9GCRAN+I+oXwgfBqIgYXzF+gMT4KIoRgloM + RhOQLbRSQSyoLZYIhEcpnZ3u0u7u9Zzd0wDT41Z2753O7s4/+aWb3TvnnvPf2bkzd6YzFYECBQoUKFCg + QIECBQrkJ/VPn36tbYZrHFOfHzP1N4ANMUvfAX+7gAPwui8Dvsb3sp9tiJnh1x0rPM+2pkYwBoULNJaO + VldfCYbPdgx9FRjZCaQAUSAYYyd8KW/ZVvjRI5HIFdRdIJSIRC60Db0BTFoPJMg0lSQcS//cMbR67JvS + KD+JhokXw5r+DBiy12WQl3TB5u1pzIXSKn2JadMuixnhF6B43G5zpowHvbapLcTcKM3SFAySjVDsQVfx + PkL7B3OkdEtHcaPqdijw69EF+xPb1NcNztBupfSLW7D3sQiKGnQXWQQMwC9iDpVRfMLdPfg5r2EKKy6g + hqLbdbVnVN1IB0V8UUVHODoQCV1P5flbA6Z+NyTdM7qIoqf7ZG34LirTn4Kj2HszexJ8AaXAAduaeg+V + 6y/h2hEz9CNM0qXGwXhk6h1Utj8E28ib4IjyTybZksSx9D+wZip/fCXq7rwE9pu3cImWOD/5YgoDzH+f + Sa4scMzwO2TD+AgPVLjEygvtCbLDW+FABAn0j06ozLD0vrgVuo1s8U7wzbeyCZUn35It3sg2tceYJMoa + PNtG9qhVZo7H1HvdCXiB83i9OPXBKpFs2yrSfcdFemAgC7zG9/AzbMMt6wH7RX3ocrJJnRxDf5npXC0z + q8RQy8dCDA+LMQVtsC0uw8ZSiaEvJpvUiNb+Y6M6VojzkCGSne3k7v9Xcmd7ZlkupkIOKz2rRnP7XMdq + sMIi2bGdLD13JTvaMjHY2IqwzfBzZJdciSUV50MH3e4OVZJ4cxlZeVrpQwdFYuVyMdg0WziPmBnwNb6H + n7mVWPEKG1sVOE0hKirOI9vkKWZpFtehMmZNF+n+E2RjVqk9uzKGs+0B/Cy1Zze1zird3wfjQTXbXhV4 + QRjZJk8QeLW7I5Uklr5EFmaVjtmwh/Mg2/ZMsE3aidFSWSWWvsi2VchHZJsc0eAbc3WilOFNG8m+rIY+ + Wc224xj6dA0tldVw60a2nUJOSt0ldazww0wnSkn19pB9WcUXNrPtOOKLmmmprFJ/97DtVOLUhB8g+woX + XavJdqSK9OAg2ZeVU1/DtuPA3c8zlXYctp1SDH0F2Ve4INguthOFuMW1yYVbXBvF7CT7ChNeDQDB0q7g + ynGLa5MLt7g2ikmdnDntOrIxf8VMbRYTXCrx+Y0i2dIi0lujQrT/qpT0lmimr3jzXDYXuYRrycb8pfro + N77gKSF2dLJmKQX6jM9vYnOShW3oz5ON+QsG4He54LJIrfuKN8gDkl98yeYkCzgqfptszF8wAH/PBZeF + 2NbOmuMJ23awOUnD0r8jG/MXBNo9KrBEWGM8hMtJIp1kY/6CIPtdQaXCmeIlXE4S6SYb8xcEOe4KKhXO + FC/hcpLIUbIxf0GQU66gUuFM8RIuJ4kkyMb8BUGGXEGlwpkyFonWzaJrbpNo07QMXXMaRXxjK9t2LLic + JCLlC/DVJgjNbwuFxNYJE84C3zu16Qd2mVxwOUlEyibIV4Mwrvlu80fY2/Qku0wuuJwkImEQVjwRx5mS + i2jlJNZ8JDp5MrtMLricJFL4hJzyAzHGlFxEKytZ85HoJJ99ATIOxPBwmg0uCc6UXHTNmcuaj/hvE6St + JBvzF04o8cHlwJmSi8H13/zHIDzFd4OwbWkLyMb8hVOqXHBZcKaMxchuKI4HuNnZ29iUl/kIl5MsYOU1 + yMb8pfqEDGeKl3A5SULOCRkUBPvFFVwanClewuUkie1kX+HCE8xMB1LgTPESLidJvEr2FS6Vl6VwpngJ + l5MMpF6WIiKRSyHoCXcnMsCTIpwxnvDzdjYnCRyT/h+Utql/yHRUMHhakDXHA5Ita9mcCsW29PfINnmy + De0+rrNCic9rHL+T8oqujBgwtCqyTZ7w8nT4FfzFdVgomctS8JfQ1sGbJRPoA/tSZb6yy9NRjqE/y3Ua + cBrH0prJLvkSodBF0InS6ekipxs9IrvUSPXcUDGDWwiySZ3wn9BUjQVFzj68cQnZpFaqJ+iKklrNJHu8 + kWNqa9lEyhFD/4xs8U7BzTqI8bpZBwrnOyAJz/93wEekHGNKHdkxPopZ2mtMYuWBpS8nG8ZPwS3LfKDj + deGrICFlJ218SAc+bILK94ec2upbILFSvGGrm3123aQbqGx/KXvjVl89F0A2vb69ceuIYhHt5piptTPJ + FzeZe2H75F6hYwmfXARJ/ziqiOJlc58VuprKKw6JhoYLbEtfAsnLeBLSeJGEo9zFyub3vRBenASFHHYV + VgwcwmeYURnFreARJj4R3sgICvzNXbCP2G3XavdTuqWp4DFWPpEvHuRmhH8vuwe5cbJrtIk4sQWmePGM + sR7cO8M+qftAI8I1MXO2LftltAHJM4zLF4gRjsLavgxvPFj2a/u56ESk8hrcFTzrcbbZo+xuPBFCBmdO + imTey3521uNsMQaFCxQoUKBAgQIFChQoUCAfqKLiXwYEOVtR8EleAAAAAElFTkSuQmCC + + + \ No newline at end of file diff --git a/Handler/Project_form2/Don't change it/Dialog/fTouchKey.Designer.cs b/Handler/Project_form2/Don't change it/Dialog/fTouchKey.Designer.cs new file mode 100644 index 0000000..5178070 --- /dev/null +++ b/Handler/Project_form2/Don't change it/Dialog/fTouchKey.Designer.cs @@ -0,0 +1,61 @@ +namespace Project.Dialog +{ + partial class fTouchKey + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.touchKeyCalc1 = new arCtl.TouchKeyCalc(); + this.SuspendLayout(); + // + // touchKeyCalc1 + // + this.touchKeyCalc1.Dock = System.Windows.Forms.DockStyle.Fill; + this.touchKeyCalc1.Font = new System.Drawing.Font("Consolas", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.touchKeyCalc1.Location = new System.Drawing.Point(0, 0); + this.touchKeyCalc1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.touchKeyCalc1.Name = "touchKeyCalc1"; + this.touchKeyCalc1.Size = new System.Drawing.Size(374, 330); + this.touchKeyCalc1.TabIndex = 0; + this.touchKeyCalc1.Load += new System.EventHandler(this.touchKeyCalc1_Load); + // + // fTouchKey + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(374, 330); + this.Controls.Add(this.touchKeyCalc1); + this.Name = "fTouchKey"; + this.Text = "fTouchKey"; + this.ResumeLayout(false); + + } + + #endregion + + private arCtl.TouchKeyCalc touchKeyCalc1; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/Don't change it/Dialog/fTouchKey.cs b/Handler/Project_form2/Don't change it/Dialog/fTouchKey.cs new file mode 100644 index 0000000..17efa39 --- /dev/null +++ b/Handler/Project_form2/Don't change it/Dialog/fTouchKey.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fTouchKey : Form + { + public fTouchKey() + { + InitializeComponent(); + } + + private void touchKeyCalc1_Load(object sender, EventArgs e) + { + + } + } +} diff --git a/Handler/Project_form2/Don't change it/Dialog/fTouchKey.resx b/Handler/Project_form2/Don't change it/Dialog/fTouchKey.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/Project_form2/Don't change it/Dialog/fTouchKey.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/Project_form2/Don't change it/Dialog/fTouchKeyFull.Designer.cs b/Handler/Project_form2/Don't change it/Dialog/fTouchKeyFull.Designer.cs new file mode 100644 index 0000000..083640b --- /dev/null +++ b/Handler/Project_form2/Don't change it/Dialog/fTouchKeyFull.Designer.cs @@ -0,0 +1,187 @@ +namespace Project.Dialog +{ + partial class fTouchKeyFull + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.touchKeyFull1 = new arCtl.TouchKeyFull(); + this.tbInput = new System.Windows.Forms.TextBox(); + this.lbTitle = new arCtl.arLabel(); + this.button1 = new System.Windows.Forms.Button(); + this.panel1 = new System.Windows.Forms.Panel(); + this.button3 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.panel1.SuspendLayout(); + this.SuspendLayout(); + // + // touchKeyFull1 + // + this.touchKeyFull1.Dock = System.Windows.Forms.DockStyle.Fill; + this.touchKeyFull1.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.touchKeyFull1.Location = new System.Drawing.Point(6, 96); + this.touchKeyFull1.Name = "touchKeyFull1"; + this.touchKeyFull1.Size = new System.Drawing.Size(1088, 359); + this.touchKeyFull1.TabIndex = 0; + this.touchKeyFull1.keyClick += new arCtl.TouchKeyFull.KeyClickHandler(this.touchKeyFull1_keyClick); + // + // tbInput + // + this.tbInput.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.tbInput.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.tbInput.Dock = System.Windows.Forms.DockStyle.Fill; + this.tbInput.Font = new System.Drawing.Font("맑은 고딕", 21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tbInput.ForeColor = System.Drawing.Color.White; + this.tbInput.Location = new System.Drawing.Point(100, 0); + this.tbInput.Name = "tbInput"; + this.tbInput.Size = new System.Drawing.Size(888, 46); + this.tbInput.TabIndex = 0; + this.tbInput.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // lbTitle + // + this.lbTitle.BackColor = System.Drawing.Color.Gray; + this.lbTitle.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.lbTitle.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbTitle.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbTitle.BorderColorOver = System.Drawing.Color.DarkBlue; + this.lbTitle.BorderSize = new System.Windows.Forms.Padding(1); + this.lbTitle.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbTitle.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbTitle.Dock = System.Windows.Forms.DockStyle.Top; + this.lbTitle.Font = new System.Drawing.Font("Consolas", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbTitle.ForeColor = System.Drawing.Color.White; + this.lbTitle.GradientEnable = true; + this.lbTitle.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbTitle.GradientRepeatBG = false; + this.lbTitle.isButton = false; + this.lbTitle.Location = new System.Drawing.Point(6, 5); + this.lbTitle.MouseDownColor = System.Drawing.Color.Yellow; + this.lbTitle.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbTitle.msg = null; + this.lbTitle.Name = "lbTitle"; + this.lbTitle.ProgressBorderColor = System.Drawing.Color.Black; + this.lbTitle.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbTitle.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbTitle.ProgressEnable = false; + this.lbTitle.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbTitle.ProgressForeColor = System.Drawing.Color.Black; + this.lbTitle.ProgressMax = 100F; + this.lbTitle.ProgressMin = 0F; + this.lbTitle.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbTitle.ProgressValue = 0F; + this.lbTitle.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lbTitle.Sign = ""; + this.lbTitle.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbTitle.SignColor = System.Drawing.Color.Yellow; + this.lbTitle.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbTitle.Size = new System.Drawing.Size(1088, 44); + this.lbTitle.TabIndex = 2; + this.lbTitle.Text = "INPUT"; + this.lbTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbTitle.TextShadow = true; + this.lbTitle.TextVisible = true; + // + // button1 + // + this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.button1.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.button1.Location = new System.Drawing.Point(1028, 11); + this.button1.Margin = new System.Windows.Forms.Padding(0); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(60, 34); + this.button1.TabIndex = 3; + this.button1.Text = "닫기"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // panel1 + // + this.panel1.Controls.Add(this.tbInput); + this.panel1.Controls.Add(this.button3); + this.panel1.Controls.Add(this.button2); + this.panel1.Dock = System.Windows.Forms.DockStyle.Top; + this.panel1.Location = new System.Drawing.Point(6, 49); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(1088, 47); + this.panel1.TabIndex = 4; + // + // button3 + // + this.button3.Dock = System.Windows.Forms.DockStyle.Right; + this.button3.Location = new System.Drawing.Point(988, 0); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(100, 47); + this.button3.TabIndex = 1; + this.button3.Text = "1문자 삭제"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click); + // + // button2 + // + this.button2.Dock = System.Windows.Forms.DockStyle.Left; + this.button2.Location = new System.Drawing.Point(0, 0); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(100, 47); + this.button2.TabIndex = 0; + this.button2.Text = "1문자 삭제"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // fTouchKeyFull + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + this.ClientSize = new System.Drawing.Size(1100, 460); + this.Controls.Add(this.touchKeyFull1); + this.Controls.Add(this.panel1); + this.Controls.Add(this.button1); + this.Controls.Add(this.lbTitle); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.KeyPreview = true; + this.Name = "fTouchKeyFull"; + this.Padding = new System.Windows.Forms.Padding(6, 5, 6, 5); + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "fTouchKeyFull"; + this.Load += new System.EventHandler(this.fTouchKeyFull_Load); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private arCtl.TouchKeyFull touchKeyFull1; + private arCtl.arLabel lbTitle; + public System.Windows.Forms.TextBox tbInput; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.Button button2; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/Don't change it/Dialog/fTouchKeyFull.cs b/Handler/Project_form2/Don't change it/Dialog/fTouchKeyFull.cs new file mode 100644 index 0000000..c34cc00 --- /dev/null +++ b/Handler/Project_form2/Don't change it/Dialog/fTouchKeyFull.cs @@ -0,0 +1,142 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fTouchKeyFull : Form + { + public fTouchKeyFull(string title, string value) + { + InitializeComponent(); + this.lbTitle.Text = title; + this.tbInput.Text = value; + this.KeyDown += (s1, e1) => + { + if (e1.KeyCode == Keys.Escape) + this.Close(); + }; + this.lbTitle.MouseMove += LbTitle_MouseMove; + this.lbTitle.MouseUp += LbTitle_MouseUp; + this.lbTitle.MouseDown += LbTitle_MouseDown; + } + + private void fTouchKeyFull_Load(object sender, EventArgs e) + { + this.Show(); + //'Application.DoEvents(); + this.tbInput.SelectAll(); + this.tbInput.Focus(); + } + #region "Mouse Form Move" + + private Boolean fMove = false; + private Point MDownPos; + private void LbTitle_MouseMove(object sender, MouseEventArgs e) + { + if (fMove) + { + Point offset = new Point(e.X - MDownPos.X, e.Y - MDownPos.Y); + this.Left += offset.X; + this.Top += offset.Y; + offset = new Point(0, 0); + } + } + private void LbTitle_MouseUp(object sender, MouseEventArgs e) + { + fMove = false; + } + private void LbTitle_MouseDown(object sender, MouseEventArgs e) + { + MDownPos = new Point(e.X, e.Y); + fMove = true; + } + + #endregion + + private void touchKeyFull1_keyClick(string key) + { + switch (key) + { + case "CLR": + this.tbInput.Text = string.Empty; + break; + case "BACK": + + if (this.tbInput.SelectionLength > 0) + { + //특정영역이 선택되었다 + var head = tbInput.Text.Substring(0, tbInput.SelectionStart); + var tail = tbInput.Text.Substring(tbInput.SelectionLength + tbInput.SelectionStart); + tbInput.Text = head + tail; + tbInput.SelectionStart = head.Length; + tbInput.SelectionLength = 0; + } + else + { + var si = this.tbInput.SelectionStart - 1; + var sl = this.tbInput.SelectionLength; + if(si >= 0) + { + var head = tbInput.Text.Substring(0, si); + var tail = tbInput.Text.Substring(si + 1); + + tbInput.Text = head + tail; + tbInput.SelectionStart = head.Length; + tbInput.SelectionLength = 0; + } + } + + break; + case "ENTER": + this.DialogResult = DialogResult.OK; + break; + default: + var si2 = this.tbInput.SelectionStart ; + var head2 = tbInput.Text.Substring(0, si2); + var tail2 = tbInput.Text.Substring(si2 ); + + tbInput.Text = head2 + key + tail2; + tbInput.SelectionStart = head2.Length+1; + tbInput.SelectionLength = 0; + + + //this.tbInput.Text += key; + //this.tbInput.SelectionStart = this.tbInput.TextLength; + + break; + } + this.tbInput.Focus(); + } + + private void button1_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void button2_Click(object sender, EventArgs e) + { + //앞에서 삭제 + if (this.tbInput.Text.Length < 1) return; + if (this.tbInput.Text.Length < 2) tbInput.Text = string.Empty; + else tbInput.Text = tbInput.Text.Substring(1); + tbInput.SelectionStart = 0;// this.tbInput.TextLength; + tbInput.Focus(); + } + + private void button3_Click(object sender, EventArgs e) + { + //두에서 삭제 + if (this.tbInput.Text.Length < 1) return; + if (this.tbInput.Text.Length < 2) tbInput.Text = string.Empty; + else tbInput.Text = tbInput.Text.Substring(0, tbInput.Text.Length - 1); + tbInput.SelectionStart = this.tbInput.TextLength; + tbInput.Focus(); + } + } +} diff --git a/Handler/Project_form2/Don't change it/Dialog/fTouchKeyFull.resx b/Handler/Project_form2/Don't change it/Dialog/fTouchKeyFull.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/Project_form2/Don't change it/Dialog/fTouchKeyFull.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/Project_form2/Don't change it/Dialog/fTouchNumDot.Designer.cs b/Handler/Project_form2/Don't change it/Dialog/fTouchNumDot.Designer.cs new file mode 100644 index 0000000..0768370 --- /dev/null +++ b/Handler/Project_form2/Don't change it/Dialog/fTouchNumDot.Designer.cs @@ -0,0 +1,850 @@ +namespace Project.Dialog +{ + partial class fTouchNumDot + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.arLabel1 = new arCtl.arLabel(); + this.arLabel2 = new arCtl.arLabel(); + this.arLabel3 = new arCtl.arLabel(); + this.arLabel4 = new arCtl.arLabel(); + this.arLabel5 = new arCtl.arLabel(); + this.arLabel6 = new arCtl.arLabel(); + this.arLabel7 = new arCtl.arLabel(); + this.arLabel8 = new arCtl.arLabel(); + this.arLabel9 = new arCtl.arLabel(); + this.arLabel11 = new arCtl.arLabel(); + this.arLabel12 = new arCtl.arLabel(); + this.arLabel13 = new arCtl.arLabel(); + this.arLabel14 = new arCtl.arLabel(); + this.arLabel15 = new arCtl.arLabel(); + this.arLabel10 = new arCtl.arLabel(); + this.tbInput = new System.Windows.Forms.TextBox(); + this.panel1 = new System.Windows.Forms.Panel(); + this.tableLayoutPanel1.SuspendLayout(); + this.SuspendLayout(); + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 4; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.Controls.Add(this.arLabel1, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.arLabel2, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.arLabel3, 2, 0); + this.tableLayoutPanel1.Controls.Add(this.arLabel4, 2, 1); + this.tableLayoutPanel1.Controls.Add(this.arLabel5, 1, 1); + this.tableLayoutPanel1.Controls.Add(this.arLabel6, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.arLabel7, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.arLabel8, 1, 2); + this.tableLayoutPanel1.Controls.Add(this.arLabel9, 2, 2); + this.tableLayoutPanel1.Controls.Add(this.arLabel11, 1, 3); + this.tableLayoutPanel1.Controls.Add(this.arLabel12, 3, 0); + this.tableLayoutPanel1.Controls.Add(this.arLabel13, 2, 3); + this.tableLayoutPanel1.Controls.Add(this.arLabel14, 0, 3); + this.tableLayoutPanel1.Controls.Add(this.arLabel15, 3, 1); + this.tableLayoutPanel1.Controls.Add(this.arLabel10, 3, 2); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(5, 50); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 4; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(324, 265); + this.tableLayoutPanel1.TabIndex = 1; + // + // arLabel1 + // + this.arLabel1.BackColor = System.Drawing.Color.SkyBlue; + this.arLabel1.BackColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel1.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel1.BorderColor = System.Drawing.Color.SteelBlue; + this.arLabel1.BorderColorOver = System.Drawing.Color.Red; + this.arLabel1.BorderSize = new System.Windows.Forms.Padding(2); + this.arLabel1.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel1.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel1.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel1.ForeColor = System.Drawing.Color.White; + this.arLabel1.GradientEnable = false; + this.arLabel1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arLabel1.GradientRepeatBG = false; + this.arLabel1.isButton = true; + this.arLabel1.Location = new System.Drawing.Point(0, 0); + this.arLabel1.Margin = new System.Windows.Forms.Padding(0); + this.arLabel1.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel1.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel1.msg = null; + this.arLabel1.Name = "arLabel1"; + this.arLabel1.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel1.ProgressEnable = false; + this.arLabel1.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel1.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel1.ProgressMax = 100F; + this.arLabel1.ProgressMin = 0F; + this.arLabel1.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel1.ProgressValue = 0F; + this.arLabel1.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.arLabel1.Sign = ""; + this.arLabel1.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel1.SignColor = System.Drawing.Color.Yellow; + this.arLabel1.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel1.Size = new System.Drawing.Size(81, 66); + this.arLabel1.TabIndex = 0; + this.arLabel1.Tag = "1"; + this.arLabel1.Text = "1"; + this.arLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel1.TextShadow = false; + this.arLabel1.TextVisible = true; + this.arLabel1.Click += new System.EventHandler(this.arLabel1_Click); + // + // arLabel2 + // + this.arLabel2.BackColor = System.Drawing.Color.SkyBlue; + this.arLabel2.BackColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel2.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel2.BorderColor = System.Drawing.Color.SteelBlue; + this.arLabel2.BorderColorOver = System.Drawing.Color.Red; + this.arLabel2.BorderSize = new System.Windows.Forms.Padding(2); + this.arLabel2.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel2.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel2.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel2.ForeColor = System.Drawing.Color.White; + this.arLabel2.GradientEnable = false; + this.arLabel2.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arLabel2.GradientRepeatBG = false; + this.arLabel2.isButton = true; + this.arLabel2.Location = new System.Drawing.Point(81, 0); + this.arLabel2.Margin = new System.Windows.Forms.Padding(0); + this.arLabel2.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel2.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel2.msg = null; + this.arLabel2.Name = "arLabel2"; + this.arLabel2.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel2.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel2.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel2.ProgressEnable = false; + this.arLabel2.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel2.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel2.ProgressMax = 100F; + this.arLabel2.ProgressMin = 0F; + this.arLabel2.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel2.ProgressValue = 0F; + this.arLabel2.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.arLabel2.Sign = ""; + this.arLabel2.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel2.SignColor = System.Drawing.Color.Yellow; + this.arLabel2.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel2.Size = new System.Drawing.Size(81, 66); + this.arLabel2.TabIndex = 0; + this.arLabel2.Tag = "2"; + this.arLabel2.Text = "2"; + this.arLabel2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel2.TextShadow = false; + this.arLabel2.TextVisible = true; + this.arLabel2.Click += new System.EventHandler(this.arLabel1_Click); + // + // arLabel3 + // + this.arLabel3.BackColor = System.Drawing.Color.SkyBlue; + this.arLabel3.BackColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel3.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel3.BorderColor = System.Drawing.Color.SteelBlue; + this.arLabel3.BorderColorOver = System.Drawing.Color.Red; + this.arLabel3.BorderSize = new System.Windows.Forms.Padding(2); + this.arLabel3.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel3.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel3.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel3.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel3.ForeColor = System.Drawing.Color.White; + this.arLabel3.GradientEnable = false; + this.arLabel3.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arLabel3.GradientRepeatBG = false; + this.arLabel3.isButton = true; + this.arLabel3.Location = new System.Drawing.Point(162, 0); + this.arLabel3.Margin = new System.Windows.Forms.Padding(0); + this.arLabel3.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel3.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel3.msg = null; + this.arLabel3.Name = "arLabel3"; + this.arLabel3.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel3.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel3.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel3.ProgressEnable = false; + this.arLabel3.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel3.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel3.ProgressMax = 100F; + this.arLabel3.ProgressMin = 0F; + this.arLabel3.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel3.ProgressValue = 0F; + this.arLabel3.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.arLabel3.Sign = ""; + this.arLabel3.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel3.SignColor = System.Drawing.Color.Yellow; + this.arLabel3.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel3.Size = new System.Drawing.Size(81, 66); + this.arLabel3.TabIndex = 0; + this.arLabel3.Tag = "3"; + this.arLabel3.Text = "3"; + this.arLabel3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel3.TextShadow = false; + this.arLabel3.TextVisible = true; + this.arLabel3.Click += new System.EventHandler(this.arLabel1_Click); + // + // arLabel4 + // + this.arLabel4.BackColor = System.Drawing.Color.SkyBlue; + this.arLabel4.BackColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel4.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel4.BorderColor = System.Drawing.Color.SteelBlue; + this.arLabel4.BorderColorOver = System.Drawing.Color.Red; + this.arLabel4.BorderSize = new System.Windows.Forms.Padding(2); + this.arLabel4.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel4.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel4.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel4.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel4.ForeColor = System.Drawing.Color.White; + this.arLabel4.GradientEnable = false; + this.arLabel4.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arLabel4.GradientRepeatBG = false; + this.arLabel4.isButton = true; + this.arLabel4.Location = new System.Drawing.Point(162, 66); + this.arLabel4.Margin = new System.Windows.Forms.Padding(0); + this.arLabel4.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel4.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel4.msg = null; + this.arLabel4.Name = "arLabel4"; + this.arLabel4.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel4.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel4.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel4.ProgressEnable = false; + this.arLabel4.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel4.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel4.ProgressMax = 100F; + this.arLabel4.ProgressMin = 0F; + this.arLabel4.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel4.ProgressValue = 0F; + this.arLabel4.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.arLabel4.Sign = ""; + this.arLabel4.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel4.SignColor = System.Drawing.Color.Yellow; + this.arLabel4.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel4.Size = new System.Drawing.Size(81, 66); + this.arLabel4.TabIndex = 0; + this.arLabel4.Tag = "6"; + this.arLabel4.Text = "6"; + this.arLabel4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel4.TextShadow = false; + this.arLabel4.TextVisible = true; + this.arLabel4.Click += new System.EventHandler(this.arLabel1_Click); + // + // arLabel5 + // + this.arLabel5.BackColor = System.Drawing.Color.SkyBlue; + this.arLabel5.BackColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel5.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel5.BorderColor = System.Drawing.Color.SteelBlue; + this.arLabel5.BorderColorOver = System.Drawing.Color.Red; + this.arLabel5.BorderSize = new System.Windows.Forms.Padding(2); + this.arLabel5.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel5.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel5.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel5.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel5.ForeColor = System.Drawing.Color.White; + this.arLabel5.GradientEnable = false; + this.arLabel5.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arLabel5.GradientRepeatBG = false; + this.arLabel5.isButton = true; + this.arLabel5.Location = new System.Drawing.Point(81, 66); + this.arLabel5.Margin = new System.Windows.Forms.Padding(0); + this.arLabel5.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel5.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel5.msg = null; + this.arLabel5.Name = "arLabel5"; + this.arLabel5.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel5.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel5.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel5.ProgressEnable = false; + this.arLabel5.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel5.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel5.ProgressMax = 100F; + this.arLabel5.ProgressMin = 0F; + this.arLabel5.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel5.ProgressValue = 0F; + this.arLabel5.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.arLabel5.Sign = ""; + this.arLabel5.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel5.SignColor = System.Drawing.Color.Yellow; + this.arLabel5.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel5.Size = new System.Drawing.Size(81, 66); + this.arLabel5.TabIndex = 0; + this.arLabel5.Tag = "5"; + this.arLabel5.Text = "5"; + this.arLabel5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel5.TextShadow = false; + this.arLabel5.TextVisible = true; + this.arLabel5.Click += new System.EventHandler(this.arLabel1_Click); + // + // arLabel6 + // + this.arLabel6.BackColor = System.Drawing.Color.SkyBlue; + this.arLabel6.BackColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel6.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel6.BorderColor = System.Drawing.Color.SteelBlue; + this.arLabel6.BorderColorOver = System.Drawing.Color.Red; + this.arLabel6.BorderSize = new System.Windows.Forms.Padding(2); + this.arLabel6.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel6.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel6.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel6.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel6.ForeColor = System.Drawing.Color.White; + this.arLabel6.GradientEnable = false; + this.arLabel6.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arLabel6.GradientRepeatBG = false; + this.arLabel6.isButton = true; + this.arLabel6.Location = new System.Drawing.Point(0, 66); + this.arLabel6.Margin = new System.Windows.Forms.Padding(0); + this.arLabel6.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel6.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel6.msg = null; + this.arLabel6.Name = "arLabel6"; + this.arLabel6.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel6.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel6.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel6.ProgressEnable = false; + this.arLabel6.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel6.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel6.ProgressMax = 100F; + this.arLabel6.ProgressMin = 0F; + this.arLabel6.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel6.ProgressValue = 0F; + this.arLabel6.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.arLabel6.Sign = ""; + this.arLabel6.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel6.SignColor = System.Drawing.Color.Yellow; + this.arLabel6.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel6.Size = new System.Drawing.Size(81, 66); + this.arLabel6.TabIndex = 0; + this.arLabel6.Tag = "4"; + this.arLabel6.Text = "4"; + this.arLabel6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel6.TextShadow = false; + this.arLabel6.TextVisible = true; + this.arLabel6.Click += new System.EventHandler(this.arLabel1_Click); + // + // arLabel7 + // + this.arLabel7.BackColor = System.Drawing.Color.SkyBlue; + this.arLabel7.BackColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel7.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel7.BorderColor = System.Drawing.Color.SteelBlue; + this.arLabel7.BorderColorOver = System.Drawing.Color.Red; + this.arLabel7.BorderSize = new System.Windows.Forms.Padding(2); + this.arLabel7.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel7.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel7.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel7.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel7.ForeColor = System.Drawing.Color.White; + this.arLabel7.GradientEnable = false; + this.arLabel7.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arLabel7.GradientRepeatBG = false; + this.arLabel7.isButton = true; + this.arLabel7.Location = new System.Drawing.Point(0, 132); + this.arLabel7.Margin = new System.Windows.Forms.Padding(0); + this.arLabel7.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel7.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel7.msg = null; + this.arLabel7.Name = "arLabel7"; + this.arLabel7.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel7.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel7.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel7.ProgressEnable = false; + this.arLabel7.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel7.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel7.ProgressMax = 100F; + this.arLabel7.ProgressMin = 0F; + this.arLabel7.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel7.ProgressValue = 0F; + this.arLabel7.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.arLabel7.Sign = ""; + this.arLabel7.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel7.SignColor = System.Drawing.Color.Yellow; + this.arLabel7.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel7.Size = new System.Drawing.Size(81, 66); + this.arLabel7.TabIndex = 0; + this.arLabel7.Tag = "7"; + this.arLabel7.Text = "7"; + this.arLabel7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel7.TextShadow = false; + this.arLabel7.TextVisible = true; + this.arLabel7.Click += new System.EventHandler(this.arLabel1_Click); + // + // arLabel8 + // + this.arLabel8.BackColor = System.Drawing.Color.SkyBlue; + this.arLabel8.BackColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel8.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel8.BorderColor = System.Drawing.Color.SteelBlue; + this.arLabel8.BorderColorOver = System.Drawing.Color.Red; + this.arLabel8.BorderSize = new System.Windows.Forms.Padding(2); + this.arLabel8.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel8.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel8.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel8.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel8.ForeColor = System.Drawing.Color.White; + this.arLabel8.GradientEnable = false; + this.arLabel8.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arLabel8.GradientRepeatBG = false; + this.arLabel8.isButton = true; + this.arLabel8.Location = new System.Drawing.Point(81, 132); + this.arLabel8.Margin = new System.Windows.Forms.Padding(0); + this.arLabel8.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel8.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel8.msg = null; + this.arLabel8.Name = "arLabel8"; + this.arLabel8.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel8.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel8.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel8.ProgressEnable = false; + this.arLabel8.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel8.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel8.ProgressMax = 100F; + this.arLabel8.ProgressMin = 0F; + this.arLabel8.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel8.ProgressValue = 0F; + this.arLabel8.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.arLabel8.Sign = ""; + this.arLabel8.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel8.SignColor = System.Drawing.Color.Yellow; + this.arLabel8.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel8.Size = new System.Drawing.Size(81, 66); + this.arLabel8.TabIndex = 0; + this.arLabel8.Tag = "8"; + this.arLabel8.Text = "8"; + this.arLabel8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel8.TextShadow = false; + this.arLabel8.TextVisible = true; + this.arLabel8.Click += new System.EventHandler(this.arLabel1_Click); + // + // arLabel9 + // + this.arLabel9.BackColor = System.Drawing.Color.SkyBlue; + this.arLabel9.BackColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel9.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel9.BorderColor = System.Drawing.Color.SteelBlue; + this.arLabel9.BorderColorOver = System.Drawing.Color.Red; + this.arLabel9.BorderSize = new System.Windows.Forms.Padding(2); + this.arLabel9.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel9.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel9.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel9.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel9.ForeColor = System.Drawing.Color.White; + this.arLabel9.GradientEnable = false; + this.arLabel9.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arLabel9.GradientRepeatBG = false; + this.arLabel9.isButton = true; + this.arLabel9.Location = new System.Drawing.Point(162, 132); + this.arLabel9.Margin = new System.Windows.Forms.Padding(0); + this.arLabel9.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel9.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel9.msg = null; + this.arLabel9.Name = "arLabel9"; + this.arLabel9.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel9.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel9.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel9.ProgressEnable = false; + this.arLabel9.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel9.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel9.ProgressMax = 100F; + this.arLabel9.ProgressMin = 0F; + this.arLabel9.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel9.ProgressValue = 0F; + this.arLabel9.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.arLabel9.Sign = ""; + this.arLabel9.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel9.SignColor = System.Drawing.Color.Yellow; + this.arLabel9.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel9.Size = new System.Drawing.Size(81, 66); + this.arLabel9.TabIndex = 0; + this.arLabel9.Tag = "9"; + this.arLabel9.Text = "9"; + this.arLabel9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel9.TextShadow = false; + this.arLabel9.TextVisible = true; + this.arLabel9.Click += new System.EventHandler(this.arLabel1_Click); + // + // arLabel11 + // + this.arLabel11.BackColor = System.Drawing.Color.SkyBlue; + this.arLabel11.BackColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel11.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel11.BorderColor = System.Drawing.Color.SteelBlue; + this.arLabel11.BorderColorOver = System.Drawing.Color.Red; + this.arLabel11.BorderSize = new System.Windows.Forms.Padding(2); + this.arLabel11.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel11.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel11.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel11.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel11.ForeColor = System.Drawing.Color.White; + this.arLabel11.GradientEnable = false; + this.arLabel11.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arLabel11.GradientRepeatBG = false; + this.arLabel11.isButton = true; + this.arLabel11.Location = new System.Drawing.Point(81, 198); + this.arLabel11.Margin = new System.Windows.Forms.Padding(0); + this.arLabel11.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel11.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel11.msg = null; + this.arLabel11.Name = "arLabel11"; + this.arLabel11.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel11.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel11.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel11.ProgressEnable = false; + this.arLabel11.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel11.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel11.ProgressMax = 100F; + this.arLabel11.ProgressMin = 0F; + this.arLabel11.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel11.ProgressValue = 0F; + this.arLabel11.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.arLabel11.Sign = ""; + this.arLabel11.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel11.SignColor = System.Drawing.Color.Yellow; + this.arLabel11.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel11.Size = new System.Drawing.Size(81, 67); + this.arLabel11.TabIndex = 0; + this.arLabel11.Tag = "0"; + this.arLabel11.Text = "0"; + this.arLabel11.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel11.TextShadow = false; + this.arLabel11.TextVisible = true; + this.arLabel11.Click += new System.EventHandler(this.arLabel1_Click); + // + // arLabel12 + // + this.arLabel12.BackColor = System.Drawing.Color.Gray; + this.arLabel12.BackColor2 = System.Drawing.Color.Gold; + this.arLabel12.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel12.BorderColor = System.Drawing.Color.SteelBlue; + this.arLabel12.BorderColorOver = System.Drawing.Color.Red; + this.arLabel12.BorderSize = new System.Windows.Forms.Padding(2); + this.arLabel12.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel12.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel12.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel12.Font = new System.Drawing.Font("Consolas", 12F); + this.arLabel12.ForeColor = System.Drawing.Color.White; + this.arLabel12.GradientEnable = true; + this.arLabel12.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arLabel12.GradientRepeatBG = false; + this.arLabel12.isButton = true; + this.arLabel12.Location = new System.Drawing.Point(243, 0); + this.arLabel12.Margin = new System.Windows.Forms.Padding(0); + this.arLabel12.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel12.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel12.msg = null; + this.arLabel12.Name = "arLabel12"; + this.arLabel12.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel12.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel12.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel12.ProgressEnable = false; + this.arLabel12.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel12.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel12.ProgressMax = 100F; + this.arLabel12.ProgressMin = 0F; + this.arLabel12.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel12.ProgressValue = 0F; + this.arLabel12.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.arLabel12.Sign = ""; + this.arLabel12.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel12.SignColor = System.Drawing.Color.Yellow; + this.arLabel12.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel12.Size = new System.Drawing.Size(81, 66); + this.arLabel12.TabIndex = 0; + this.arLabel12.Tag = "B"; + this.arLabel12.Text = "BACK"; + this.arLabel12.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel12.TextShadow = false; + this.arLabel12.TextVisible = true; + this.arLabel12.Click += new System.EventHandler(this.arLabel1_Click); + // + // arLabel13 + // + this.arLabel13.BackColor = System.Drawing.Color.SkyBlue; + this.arLabel13.BackColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel13.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel13.BorderColor = System.Drawing.Color.SteelBlue; + this.arLabel13.BorderColorOver = System.Drawing.Color.Red; + this.arLabel13.BorderSize = new System.Windows.Forms.Padding(2); + this.arLabel13.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel13.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel13.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel13.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel13.ForeColor = System.Drawing.Color.White; + this.arLabel13.GradientEnable = false; + this.arLabel13.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arLabel13.GradientRepeatBG = false; + this.arLabel13.isButton = true; + this.arLabel13.Location = new System.Drawing.Point(162, 198); + this.arLabel13.Margin = new System.Windows.Forms.Padding(0); + this.arLabel13.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel13.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel13.msg = null; + this.arLabel13.Name = "arLabel13"; + this.arLabel13.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel13.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel13.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel13.ProgressEnable = false; + this.arLabel13.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel13.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel13.ProgressMax = 100F; + this.arLabel13.ProgressMin = 0F; + this.arLabel13.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel13.ProgressValue = 0F; + this.arLabel13.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.arLabel13.Sign = ""; + this.arLabel13.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel13.SignColor = System.Drawing.Color.Yellow; + this.arLabel13.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel13.Size = new System.Drawing.Size(81, 67); + this.arLabel13.TabIndex = 0; + this.arLabel13.Tag = "."; + this.arLabel13.Text = "."; + this.arLabel13.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel13.TextShadow = false; + this.arLabel13.TextVisible = true; + this.arLabel13.Click += new System.EventHandler(this.arLabel1_Click); + // + // arLabel14 + // + this.arLabel14.BackColor = System.Drawing.Color.SkyBlue; + this.arLabel14.BackColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel14.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel14.BorderColor = System.Drawing.Color.SteelBlue; + this.arLabel14.BorderColorOver = System.Drawing.Color.Red; + this.arLabel14.BorderSize = new System.Windows.Forms.Padding(2); + this.arLabel14.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel14.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel14.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel14.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel14.ForeColor = System.Drawing.Color.White; + this.arLabel14.GradientEnable = false; + this.arLabel14.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arLabel14.GradientRepeatBG = false; + this.arLabel14.isButton = true; + this.arLabel14.Location = new System.Drawing.Point(0, 198); + this.arLabel14.Margin = new System.Windows.Forms.Padding(0); + this.arLabel14.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel14.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel14.msg = null; + this.arLabel14.Name = "arLabel14"; + this.arLabel14.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel14.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel14.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel14.ProgressEnable = false; + this.arLabel14.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel14.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel14.ProgressMax = 100F; + this.arLabel14.ProgressMin = 0F; + this.arLabel14.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel14.ProgressValue = 0F; + this.arLabel14.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.arLabel14.Sign = ""; + this.arLabel14.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel14.SignColor = System.Drawing.Color.Yellow; + this.arLabel14.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel14.Size = new System.Drawing.Size(81, 67); + this.arLabel14.TabIndex = 0; + this.arLabel14.Tag = "-"; + this.arLabel14.Text = "-"; + this.arLabel14.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel14.TextShadow = false; + this.arLabel14.TextVisible = true; + this.arLabel14.Click += new System.EventHandler(this.arLabel1_Click); + // + // arLabel15 + // + this.arLabel15.BackColor = System.Drawing.Color.Gray; + this.arLabel15.BackColor2 = System.Drawing.Color.SteelBlue; + this.arLabel15.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel15.BorderColor = System.Drawing.Color.SteelBlue; + this.arLabel15.BorderColorOver = System.Drawing.Color.Red; + this.arLabel15.BorderSize = new System.Windows.Forms.Padding(2); + this.arLabel15.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel15.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel15.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel15.Font = new System.Drawing.Font("Consolas", 12F); + this.arLabel15.ForeColor = System.Drawing.Color.White; + this.arLabel15.GradientEnable = true; + this.arLabel15.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arLabel15.GradientRepeatBG = false; + this.arLabel15.isButton = true; + this.arLabel15.Location = new System.Drawing.Point(243, 66); + this.arLabel15.Margin = new System.Windows.Forms.Padding(0); + this.arLabel15.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel15.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel15.msg = null; + this.arLabel15.Name = "arLabel15"; + this.arLabel15.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel15.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel15.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel15.ProgressEnable = false; + this.arLabel15.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel15.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel15.ProgressMax = 100F; + this.arLabel15.ProgressMin = 0F; + this.arLabel15.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel15.ProgressValue = 0F; + this.arLabel15.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.arLabel15.Sign = ""; + this.arLabel15.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel15.SignColor = System.Drawing.Color.Yellow; + this.arLabel15.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel15.Size = new System.Drawing.Size(81, 66); + this.arLabel15.TabIndex = 0; + this.arLabel15.Tag = "C"; + this.arLabel15.Text = "CLEAR"; + this.arLabel15.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel15.TextShadow = false; + this.arLabel15.TextVisible = true; + this.arLabel15.Click += new System.EventHandler(this.arLabel1_Click); + // + // arLabel10 + // + this.arLabel10.BackColor = System.Drawing.Color.CadetBlue; + this.arLabel10.BackColor2 = System.Drawing.Color.Lime; + this.arLabel10.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel10.BorderColor = System.Drawing.Color.SteelBlue; + this.arLabel10.BorderColorOver = System.Drawing.Color.Red; + this.arLabel10.BorderSize = new System.Windows.Forms.Padding(2); + this.arLabel10.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel10.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel10.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel10.Font = new System.Drawing.Font("Consolas", 12F); + this.arLabel10.ForeColor = System.Drawing.Color.White; + this.arLabel10.GradientEnable = true; + this.arLabel10.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arLabel10.GradientRepeatBG = false; + this.arLabel10.isButton = true; + this.arLabel10.Location = new System.Drawing.Point(243, 132); + this.arLabel10.Margin = new System.Windows.Forms.Padding(0); + this.arLabel10.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel10.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel10.msg = null; + this.arLabel10.Name = "arLabel10"; + this.arLabel10.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel10.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel10.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel10.ProgressEnable = false; + this.arLabel10.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel10.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel10.ProgressMax = 100F; + this.arLabel10.ProgressMin = 0F; + this.arLabel10.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel10.ProgressValue = 0F; + this.tableLayoutPanel1.SetRowSpan(this.arLabel10, 2); + this.arLabel10.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.arLabel10.Sign = ""; + this.arLabel10.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel10.SignColor = System.Drawing.Color.Yellow; + this.arLabel10.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel10.Size = new System.Drawing.Size(81, 133); + this.arLabel10.TabIndex = 0; + this.arLabel10.Tag = "E"; + this.arLabel10.Text = "ENTER"; + this.arLabel10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel10.TextShadow = false; + this.arLabel10.TextVisible = true; + this.arLabel10.Click += new System.EventHandler(this.arLabel1_Click); + // + // tbInput + // + this.tbInput.Dock = System.Windows.Forms.DockStyle.Top; + this.tbInput.Font = new System.Drawing.Font("Calibri", 20.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tbInput.Location = new System.Drawing.Point(5, 5); + this.tbInput.Name = "tbInput"; + this.tbInput.Size = new System.Drawing.Size(324, 40); + this.tbInput.TabIndex = 2; + this.tbInput.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // panel1 + // + this.panel1.Dock = System.Windows.Forms.DockStyle.Top; + this.panel1.Location = new System.Drawing.Point(5, 45); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(324, 5); + this.panel1.TabIndex = 3; + // + // fTouchNumDot + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.ClientSize = new System.Drawing.Size(334, 320); + this.Controls.Add(this.tableLayoutPanel1); + this.Controls.Add(this.panel1); + this.Controls.Add(this.tbInput); + this.Name = "fTouchNumDot"; + this.Padding = new System.Windows.Forms.Padding(5); + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Input Value"; + this.Load += new System.EventHandler(this.fTouchNumDot_Load); + this.tableLayoutPanel1.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private arCtl.arLabel arLabel1; + private arCtl.arLabel arLabel2; + private arCtl.arLabel arLabel3; + private arCtl.arLabel arLabel4; + private arCtl.arLabel arLabel5; + private arCtl.arLabel arLabel6; + private arCtl.arLabel arLabel7; + private arCtl.arLabel arLabel8; + private arCtl.arLabel arLabel9; + private arCtl.arLabel arLabel10; + private arCtl.arLabel arLabel11; + private arCtl.arLabel arLabel12; + public System.Windows.Forms.TextBox tbInput; + private System.Windows.Forms.Panel panel1; + private arCtl.arLabel arLabel13; + private arCtl.arLabel arLabel14; + private arCtl.arLabel arLabel15; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/Don't change it/Dialog/fTouchNumDot.cs b/Handler/Project_form2/Don't change it/Dialog/fTouchNumDot.cs new file mode 100644 index 0000000..6dbf1e6 --- /dev/null +++ b/Handler/Project_form2/Don't change it/Dialog/fTouchNumDot.cs @@ -0,0 +1,85 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Project.Dialog +{ + public partial class fTouchNumDot : Form + { + public fTouchNumDot(string value) + { + InitializeComponent(); + this.tbInput.KeyDown += (s1, e1) => { if (e1.KeyCode == Keys.Enter) Confirm(); }; + this.KeyPreview = true; + this.tbInput.Text = value; + this.KeyDown += (s1, e1) => + { + if (e1.KeyCode == Keys.Escape) this.Close(); + }; + } + + private void fTouchNumDot_Load(object sender, EventArgs e) + { + this.tbInput.SelectAll(); + this.tbInput.Focus(); + } + private void Confirm() + { + string id = tbInput.Text.Trim(); + if (id.isEmpty()) + { + tbInput.Focus(); + return; + } + DialogResult = DialogResult.OK; + } + + + public void ProcessKey(ref TextBox cmb_rfid, string key) + { + if (key == "B") + { + if (cmb_rfid.Text != "") + cmb_rfid.Text = cmb_rfid.Text.Substring(0, cmb_rfid.Text.Length - 1); + } + else if (key == "C") + { + cmb_rfid.Text = ""; + } + else if (key == "E") + { + Confirm(); + } + else + { + if (cmb_rfid.SelectionLength > 0 && cmb_rfid.TextLength == cmb_rfid.SelectionLength) + { + cmb_rfid.Text = key; + } + else if (cmb_rfid.SelectionLength > 0) + { + //선택된 영역을 대체해준다. + cmb_rfid.SelectedText = key; + } + else cmb_rfid.Text += key; + } + + cmb_rfid.SelectionLength = 0; + if (cmb_rfid.Text != "") + cmb_rfid.SelectionStart = cmb_rfid.Text.Length; + + } + + private void arLabel1_Click(object sender, EventArgs e) + { + var ctl = sender as arCtl.arLabel; + ProcessKey(ref tbInput, ctl.Tag.ToString()); + } + + } +} diff --git a/Handler/Project_form2/Don't change it/Dialog/fTouchNumDot.resx b/Handler/Project_form2/Don't change it/Dialog/fTouchNumDot.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/Project_form2/Don't change it/Dialog/fTouchNumDot.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/Project_form2/Don't change it/MessageWindow/CMessageData.cs b/Handler/Project_form2/Don't change it/MessageWindow/CMessageData.cs new file mode 100644 index 0000000..d40c25e --- /dev/null +++ b/Handler/Project_form2/Don't change it/MessageWindow/CMessageData.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Project +{ + public partial class MessageWindow + { + public class CMessageData + { + public string Tag { get; set; } + public string Message { get; set; } + public eWindowType WindowType { get; set; } + public System.Drawing.Size WindowSize { get; set; } + public Boolean EnableClose { get; set; } + public System.Drawing.Font FontTitle { get; set; } + public System.Drawing.Font FontContent { get; set; } + // public System.Windows.Forms.Form msgForm { get; set; } + public CMessageData() + { + Tag = string.Empty; + WindowType = eWindowType.information; + WindowSize = new System.Drawing.Size(900, 500); + EnableClose = true; + FontContent = null; + FontTitle = null; + // msgForm = null; + } + ~CMessageData() + { + // if (msgForm != null) msgForm.Dispose(); + if (FontTitle != null) FontTitle.Dispose(); + if (FontContent != null) FontContent.Dispose(); + } + } + } + +} diff --git a/Handler/Project_form2/Don't change it/MessageWindow/MessageWindow.cs b/Handler/Project_form2/Don't change it/MessageWindow/MessageWindow.cs new file mode 100644 index 0000000..17c2481 --- /dev/null +++ b/Handler/Project_form2/Don't change it/MessageWindow/MessageWindow.cs @@ -0,0 +1,219 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Drawing; +using System.Windows.Forms; + +namespace Project +{ + public partial class MessageWindow + { + public enum eWindowPosition + { + center = 0, + top = 1, + bottom = 2 + } + + public enum eWindowType + { + information, + error, + attention, + } + + fMsgWindow msgwin; + + public MessageWindow() + { + msgwin = new fMsgWindow(""); + msgwin.VisibleChanged += msgwin_VisibleChanged; + } + + public bool needClose = false; + public Boolean needShow = false; + private CMessageData msgBuffer = new CMessageData(); + + public void setMessage(CMessageData msgData) + { + //마지막데잍와 동일하고 버퍼에 데이터가 있다면 처리하지 않는다. + if (msgBuffer == msgData) return; + + //신규 메세지를 추가 + msgBuffer = msgData; + + //화면이 표시되어야하므로 플래그 설정 + needShow = true; + } + + public void setMessage(string msg,string tag, + eWindowType winType = eWindowType.error, + int width = 900, int height = 500, + Boolean enbClose = true, + Font fontTitle = null, + Font fontBody = null) + { + setMessage(new CMessageData() + { + Tag = tag, + EnableClose = enbClose, + FontContent = fontBody, + FontTitle = fontTitle, + Message = msg, + WindowSize = new Size(width, height), + WindowType = winType + }); + } + + + public void setMessage(string msg, + eWindowType winType = eWindowType.error, + int width = 900, int height = 500, + Boolean enbClose = true, + Font fontTitle = null, + Font fontBody = null) + { + setMessage(new CMessageData() + { + EnableClose = enbClose, + FontContent = fontBody, + FontTitle = fontTitle, + Message = msg, + WindowSize = new Size(width, height), + WindowType = winType + }); + } + + /// + /// 메세지 버퍼의 내용을 폼으로 표시합니다. + /// UI 쓰레드를 사용하므로 invoke 를 이용해 호출 하거나 + /// UI 쓰레드내에서 실행 하시기 바랍니다. + /// + public void showMessage() + { + //개체가 없어졌다면 새로생성해서 사용한다 + if (msgwin == null || msgwin.Disposing || msgwin.IsDisposed) + { + msgwin = new fMsgWindow(""); + msgwin.VisibleChanged += msgwin_VisibleChanged; + } + + + //등록된 메세지 버퍼의 내용을 화면에 표시한다. + msgwin.TopMost = true; + // msgwin.Disposed += (s1, e1) => { CloseMsg(item.Key); }; + msgwin.Width = this.msgBuffer.WindowSize.Width; + msgwin.Height = msgBuffer.WindowSize.Height; + msgwin.BackColor = Color.FromArgb(200, 200, 200); + msgwin.StartPosition = FormStartPosition.CenterScreen; + + msgwin.setMessage(msgBuffer.Message); + //set font + if (msgBuffer.FontTitle != null) msgwin.lbTitle.Font = msgBuffer.FontTitle; + if (msgBuffer.FontContent != null) + { + msgwin.lb1.Font = msgBuffer.FontContent; + msgwin.lb2.Font = msgBuffer.FontContent; + msgwin.lb3.Font = msgBuffer.FontContent; + msgwin.lb4.Font = msgBuffer.FontContent; + msgwin.lb5.Font = msgBuffer.FontContent; + msgwin.lb6.Font = msgBuffer.FontContent; + msgwin.lb7.Font = msgBuffer.FontContent; + } + + switch (msgBuffer.WindowType) + { + case eWindowType.attention: + msgwin.lbTitle.BackColor = Color.Gold; + msgwin.lbTitle.BackColor2 = Color.Khaki; + msgwin.lbTitle.ShadowColor = Color.FromArgb(150, 150, 150); + msgwin.lbTitle.ForeColor = Color.FromArgb(50, 50, 50); + break; + case eWindowType.error: + msgwin.lbTitle.BackColor = Color.Tomato; + msgwin.lbTitle.BackColor2 = Color.Red; + msgwin.lbTitle.ShadowColor = Color.FromArgb(50, 50, 50); + msgwin.lbTitle.ForeColor = Color.WhiteSmoke; + break; + default: + msgwin.lbTitle.BackColor = Color.DarkTurquoise; + msgwin.lbTitle.BackColor2 = Color.LightSkyBlue; + msgwin.lbTitle.ShadowColor = Color.FromArgb(50, 50, 50); + msgwin.lbTitle.ForeColor = Color.WhiteSmoke; + break; + } + + if (!msgBuffer.EnableClose) msgwin.EnableUserClose = false; + if (msgwin.Visible == false) msgwin.Show(); + else + { + msgwin.Visible = true; + msgwin.Activate(); + } + + needShow = false; + needClose = false; //닫히게되어잇다면 그것을 off해줘야 다시 닫히지 않음 200923 + } + + /// + /// sende는 CMessageData + /// + public event EventHandler WindowClose; + /// + /// sender는 CMessageData + /// + public event EventHandler WindowOpen; + void msgwin_VisibleChanged(object sender, EventArgs e) + { + var f = sender as Form; + if (f.Visible == false) + { + if (WindowClose != null) WindowClose(msgBuffer, new EventArgs()); + } + else + { + if (WindowOpen != null) WindowOpen(msgBuffer, new EventArgs()); + } + } + + public Boolean Visible + { + get + { + if (msgwin == null || msgwin.Disposing || msgwin.IsDisposed) return false; + return msgwin.Visible; + } + set + { + if (msgwin == null || msgwin.Disposing || msgwin.IsDisposed) + { + needShow = false; + needClose = false; + return; + } + + if (value == true) + { + if (msgwin.Visible == false) + { + msgwin.Show(); + msgwin.Activate(); + } + else + { + msgwin.Activate(); + } + needShow = false; + } + else + { + msgwin.Visible = false; + needClose = false; + } + + } + } + + } +} diff --git a/Handler/Project_form2/Don't change it/MessageWindow/fMsgWindow.Designer.cs b/Handler/Project_form2/Don't change it/MessageWindow/fMsgWindow.Designer.cs new file mode 100644 index 0000000..9e0a604 --- /dev/null +++ b/Handler/Project_form2/Don't change it/MessageWindow/fMsgWindow.Designer.cs @@ -0,0 +1,472 @@ +namespace Project +{ + partial class fMsgWindow + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.lb1 = new arCtl.arLabel(); + this.arPanel1 = new arCtl.arPanel(); + this.lb7 = new arCtl.arLabel(); + this.lb6 = new arCtl.arLabel(); + this.lb5 = new arCtl.arLabel(); + this.lb4 = new arCtl.arLabel(); + this.lb3 = new arCtl.arLabel(); + this.lb2 = new arCtl.arLabel(); + this.lbTitle = new arCtl.arLabel(); + this.tmBlink = new System.Windows.Forms.Timer(this.components); + this.arPanel1.SuspendLayout(); + this.SuspendLayout(); + // + // lb1 + // + this.lb1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lb1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lb1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb1.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb1.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb1.BorderSize = new System.Windows.Forms.Padding(1); + this.lb1.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb1.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb1.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold); + this.lb1.ForeColor = System.Drawing.Color.White; + this.lb1.GradientEnable = true; + this.lb1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lb1.GradientRepeatBG = false; + this.lb1.isButton = false; + this.lb1.Location = new System.Drawing.Point(8, 85); + this.lb1.MouseDownColor = System.Drawing.Color.Yellow; + this.lb1.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb1.msg = null; + this.lb1.Name = "lb1"; + this.lb1.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb1.ProgressEnable = false; + this.lb1.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb1.ProgressForeColor = System.Drawing.Color.Black; + this.lb1.ProgressMax = 100F; + this.lb1.ProgressMin = 0F; + this.lb1.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb1.ProgressValue = 0F; + this.lb1.ShadowColor = System.Drawing.Color.Black; + this.lb1.Sign = ""; + this.lb1.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb1.SignColor = System.Drawing.Color.Yellow; + this.lb1.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb1.Size = new System.Drawing.Size(874, 50); + this.lb1.TabIndex = 2; + this.lb1.Text = "*"; + this.lb1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb1.TextShadow = true; + this.lb1.TextVisible = true; + // + // arPanel1 + // + this.arPanel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arPanel1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arPanel1.BorderColor = System.Drawing.Color.DimGray; + this.arPanel1.BorderSize = new System.Windows.Forms.Padding(1); + this.arPanel1.Controls.Add(this.lb7); + this.arPanel1.Controls.Add(this.lb6); + this.arPanel1.Controls.Add(this.lb5); + this.arPanel1.Controls.Add(this.lb4); + this.arPanel1.Controls.Add(this.lb3); + this.arPanel1.Controls.Add(this.lb2); + this.arPanel1.Controls.Add(this.lbTitle); + this.arPanel1.Controls.Add(this.lb1); + this.arPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.arPanel1.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Italic); + this.arPanel1.ForeColor = System.Drawing.Color.Khaki; + this.arPanel1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arPanel1.GradientRepeatBG = false; + this.arPanel1.Location = new System.Drawing.Point(1, 1); + this.arPanel1.Name = "arPanel1"; + this.arPanel1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arPanel1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arPanel1.ProgressMax = 100F; + this.arPanel1.ProgressMin = 0F; + this.arPanel1.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arPanel1.ProgressValue = 0F; + this.arPanel1.ShadowColor = System.Drawing.Color.Black; + this.arPanel1.ShowBorder = true; + this.arPanel1.Size = new System.Drawing.Size(892, 488); + this.arPanel1.TabIndex = 4; + this.arPanel1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.arPanel1.TextShadow = false; + this.arPanel1.UseProgressBar = false; + // + // lb7 + // + this.lb7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lb7.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lb7.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb7.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb7.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb7.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb7.BorderSize = new System.Windows.Forms.Padding(1); + this.lb7.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb7.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb7.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold); + this.lb7.ForeColor = System.Drawing.Color.White; + this.lb7.GradientEnable = true; + this.lb7.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lb7.GradientRepeatBG = false; + this.lb7.isButton = false; + this.lb7.Location = new System.Drawing.Point(8, 427); + this.lb7.MouseDownColor = System.Drawing.Color.Yellow; + this.lb7.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb7.msg = null; + this.lb7.Name = "lb7"; + this.lb7.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb7.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb7.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb7.ProgressEnable = false; + this.lb7.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb7.ProgressForeColor = System.Drawing.Color.Black; + this.lb7.ProgressMax = 100F; + this.lb7.ProgressMin = 0F; + this.lb7.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb7.ProgressValue = 0F; + this.lb7.ShadowColor = System.Drawing.Color.Black; + this.lb7.Sign = ""; + this.lb7.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb7.SignColor = System.Drawing.Color.Yellow; + this.lb7.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb7.Size = new System.Drawing.Size(874, 50); + this.lb7.TabIndex = 9; + this.lb7.Text = "*"; + this.lb7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb7.TextShadow = true; + this.lb7.TextVisible = true; + // + // lb6 + // + this.lb6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lb6.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lb6.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb6.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb6.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb6.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb6.BorderSize = new System.Windows.Forms.Padding(1); + this.lb6.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb6.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb6.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold); + this.lb6.ForeColor = System.Drawing.Color.White; + this.lb6.GradientEnable = true; + this.lb6.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lb6.GradientRepeatBG = false; + this.lb6.isButton = false; + this.lb6.Location = new System.Drawing.Point(8, 370); + this.lb6.MouseDownColor = System.Drawing.Color.Yellow; + this.lb6.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb6.msg = null; + this.lb6.Name = "lb6"; + this.lb6.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb6.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb6.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb6.ProgressEnable = false; + this.lb6.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb6.ProgressForeColor = System.Drawing.Color.Black; + this.lb6.ProgressMax = 100F; + this.lb6.ProgressMin = 0F; + this.lb6.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb6.ProgressValue = 0F; + this.lb6.ShadowColor = System.Drawing.Color.Black; + this.lb6.Sign = ""; + this.lb6.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb6.SignColor = System.Drawing.Color.Yellow; + this.lb6.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb6.Size = new System.Drawing.Size(874, 50); + this.lb6.TabIndex = 8; + this.lb6.Text = "*"; + this.lb6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb6.TextShadow = true; + this.lb6.TextVisible = true; + // + // lb5 + // + this.lb5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lb5.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lb5.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb5.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb5.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb5.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb5.BorderSize = new System.Windows.Forms.Padding(1); + this.lb5.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb5.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb5.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold); + this.lb5.ForeColor = System.Drawing.Color.White; + this.lb5.GradientEnable = true; + this.lb5.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lb5.GradientRepeatBG = false; + this.lb5.isButton = false; + this.lb5.Location = new System.Drawing.Point(8, 313); + this.lb5.MouseDownColor = System.Drawing.Color.Yellow; + this.lb5.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb5.msg = null; + this.lb5.Name = "lb5"; + this.lb5.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb5.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb5.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb5.ProgressEnable = false; + this.lb5.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb5.ProgressForeColor = System.Drawing.Color.Black; + this.lb5.ProgressMax = 100F; + this.lb5.ProgressMin = 0F; + this.lb5.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb5.ProgressValue = 0F; + this.lb5.ShadowColor = System.Drawing.Color.Black; + this.lb5.Sign = ""; + this.lb5.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb5.SignColor = System.Drawing.Color.Yellow; + this.lb5.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb5.Size = new System.Drawing.Size(874, 50); + this.lb5.TabIndex = 7; + this.lb5.Text = "*"; + this.lb5.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb5.TextShadow = true; + this.lb5.TextVisible = true; + // + // lb4 + // + this.lb4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lb4.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lb4.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb4.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb4.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb4.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb4.BorderSize = new System.Windows.Forms.Padding(1); + this.lb4.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb4.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb4.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold); + this.lb4.ForeColor = System.Drawing.Color.White; + this.lb4.GradientEnable = true; + this.lb4.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lb4.GradientRepeatBG = false; + this.lb4.isButton = false; + this.lb4.Location = new System.Drawing.Point(8, 256); + this.lb4.MouseDownColor = System.Drawing.Color.Yellow; + this.lb4.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb4.msg = null; + this.lb4.Name = "lb4"; + this.lb4.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb4.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb4.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb4.ProgressEnable = false; + this.lb4.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb4.ProgressForeColor = System.Drawing.Color.Black; + this.lb4.ProgressMax = 100F; + this.lb4.ProgressMin = 0F; + this.lb4.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb4.ProgressValue = 0F; + this.lb4.ShadowColor = System.Drawing.Color.Black; + this.lb4.Sign = ""; + this.lb4.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb4.SignColor = System.Drawing.Color.Yellow; + this.lb4.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb4.Size = new System.Drawing.Size(874, 50); + this.lb4.TabIndex = 6; + this.lb4.Text = "*"; + this.lb4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb4.TextShadow = true; + this.lb4.TextVisible = true; + // + // lb3 + // + this.lb3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lb3.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lb3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb3.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb3.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb3.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb3.BorderSize = new System.Windows.Forms.Padding(1); + this.lb3.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb3.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb3.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold); + this.lb3.ForeColor = System.Drawing.Color.White; + this.lb3.GradientEnable = true; + this.lb3.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lb3.GradientRepeatBG = false; + this.lb3.isButton = false; + this.lb3.Location = new System.Drawing.Point(8, 199); + this.lb3.MouseDownColor = System.Drawing.Color.Yellow; + this.lb3.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb3.msg = null; + this.lb3.Name = "lb3"; + this.lb3.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb3.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb3.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb3.ProgressEnable = false; + this.lb3.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb3.ProgressForeColor = System.Drawing.Color.Black; + this.lb3.ProgressMax = 100F; + this.lb3.ProgressMin = 0F; + this.lb3.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb3.ProgressValue = 0F; + this.lb3.ShadowColor = System.Drawing.Color.Black; + this.lb3.Sign = ""; + this.lb3.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb3.SignColor = System.Drawing.Color.Yellow; + this.lb3.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb3.Size = new System.Drawing.Size(874, 50); + this.lb3.TabIndex = 5; + this.lb3.Text = "*"; + this.lb3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb3.TextShadow = true; + this.lb3.TextVisible = true; + // + // lb2 + // + this.lb2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lb2.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lb2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lb2.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lb2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb2.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lb2.BorderSize = new System.Windows.Forms.Padding(1); + this.lb2.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lb2.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lb2.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold); + this.lb2.ForeColor = System.Drawing.Color.White; + this.lb2.GradientEnable = true; + this.lb2.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lb2.GradientRepeatBG = false; + this.lb2.isButton = false; + this.lb2.Location = new System.Drawing.Point(8, 142); + this.lb2.MouseDownColor = System.Drawing.Color.Yellow; + this.lb2.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lb2.msg = null; + this.lb2.Name = "lb2"; + this.lb2.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lb2.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lb2.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lb2.ProgressEnable = false; + this.lb2.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lb2.ProgressForeColor = System.Drawing.Color.Black; + this.lb2.ProgressMax = 100F; + this.lb2.ProgressMin = 0F; + this.lb2.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lb2.ProgressValue = 0F; + this.lb2.ShadowColor = System.Drawing.Color.Black; + this.lb2.Sign = ""; + this.lb2.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lb2.SignColor = System.Drawing.Color.Yellow; + this.lb2.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lb2.Size = new System.Drawing.Size(874, 50); + this.lb2.TabIndex = 4; + this.lb2.Text = "*"; + this.lb2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lb2.TextShadow = true; + this.lb2.TextVisible = true; + // + // lbTitle + // + this.lbTitle.BackColor = System.Drawing.Color.Red; + this.lbTitle.BackColor2 = System.Drawing.Color.Red; + this.lbTitle.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.lbTitle.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbTitle.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbTitle.BorderColorOver = System.Drawing.Color.Gray; + this.lbTitle.BorderSize = new System.Windows.Forms.Padding(1); + this.lbTitle.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbTitle.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbTitle.Font = new System.Drawing.Font("맑은 고딕", 30F, System.Drawing.FontStyle.Bold); + this.lbTitle.ForeColor = System.Drawing.Color.WhiteSmoke; + this.lbTitle.GradientEnable = true; + this.lbTitle.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbTitle.GradientRepeatBG = false; + this.lbTitle.isButton = false; + this.lbTitle.Location = new System.Drawing.Point(8, 9); + this.lbTitle.MouseDownColor = System.Drawing.Color.Yellow; + this.lbTitle.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbTitle.msg = null; + this.lbTitle.Name = "lbTitle"; + this.lbTitle.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbTitle.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbTitle.ProgressEnable = false; + this.lbTitle.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbTitle.ProgressForeColor = System.Drawing.Color.Black; + this.lbTitle.ProgressMax = 100F; + this.lbTitle.ProgressMin = 0F; + this.lbTitle.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbTitle.ProgressValue = 0F; + this.lbTitle.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.lbTitle.Sign = ""; + this.lbTitle.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbTitle.SignColor = System.Drawing.Color.Yellow; + this.lbTitle.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbTitle.Size = new System.Drawing.Size(874, 67); + this.lbTitle.TabIndex = 3; + this.lbTitle.Text = "TITLE"; + this.lbTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbTitle.TextShadow = true; + this.lbTitle.TextVisible = true; + this.lbTitle.Click += new System.EventHandler(this.lbTitle_Click); + // + // tmBlink + // + this.tmBlink.Enabled = true; + this.tmBlink.Interval = 300; + this.tmBlink.Tick += new System.EventHandler(this.tmBlink_Tick); + // + // fMsgWindow + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(200)))), ((int)(((byte)(200))))); + this.ClientSize = new System.Drawing.Size(894, 490); + this.Controls.Add(this.arPanel1); + this.Font = new System.Drawing.Font("Consolas", 21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.KeyPreview = true; + this.MaximizeBox = false; + this.Name = "fMsgWindow"; + this.Padding = new System.Windows.Forms.Padding(1); + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Message Window"; + this.TopMost = true; + this.Load += new System.EventHandler(this.fMsg_Load); + this.arPanel1.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + public arCtl.arLabel lb1; + private arCtl.arPanel arPanel1; + public arCtl.arLabel lbTitle; + public arCtl.arLabel lb7; + public arCtl.arLabel lb6; + public arCtl.arLabel lb5; + public arCtl.arLabel lb4; + public arCtl.arLabel lb3; + public arCtl.arLabel lb2; + private System.Windows.Forms.Timer tmBlink; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/Don't change it/MessageWindow/fMsgWindow.cs b/Handler/Project_form2/Don't change it/MessageWindow/fMsgWindow.cs new file mode 100644 index 0000000..4052705 --- /dev/null +++ b/Handler/Project_form2/Don't change it/MessageWindow/fMsgWindow.cs @@ -0,0 +1,190 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Project +{ + public partial class fMsgWindow : Form + { + private Boolean fMove = false; + private Point MDownPos; + private string _msg = string.Empty; + public Boolean DialogMode = false; + + /// + /// 사용자가 이 창을 닫을수 있는가? + /// + public Boolean EnableUserClose + { + get { return _enableuserclose; } + set + { + _enableuserclose = value; + // if (!EnableUserClose) btClose.Visible = false; + } + } + private Boolean _enableuserclose = true; + + public void setMessage(string msg) + { + //msg를 분리해서 표시를 한다. + var lbs = new arCtl.arLabel[] { lbTitle, lb1, lb2, lb3, lb4, lb5, lb6, lb7 }; + var lineBuf = msg.Replace("\r", "").Split('\n'); + int maxLine = Math.Min(lbs.Length, lineBuf.Length); + + for (int i = 0; i < lbs.Length; i++) //최대줄을 넘어가는건 표시불가 + { + if (i >= lineBuf.Length) + { + lbs[i].Text = string.Empty; + } + else + { + if (i > 0) lbs[i].Text = string.Format("{1}", i, lineBuf[i]); + else lbs[i].Text = lineBuf[i]; + } + + } + } + //Dialog.fBlurPanel fb; + public fMsgWindow(string msg, string filename = "") + { + EnableUserClose = true; + InitializeComponent(); + + if (System.Diagnostics.Debugger.IsAttached == false) + { + //fb = new Dialog.fBlurPanel(); + //fb.Show(); + } + + + this.FormClosing += fMsgWindow_FormClosing; + this.KeyDown += (s1, e1) => { if (EnableUserClose && e1.KeyCode == Keys.Escape) this.Close(); }; + this._msg = msg; + + + if (filename != "") + { + string fullname = AppDomain.CurrentDomain.BaseDirectory + "Image\\" + filename; + if (System.IO.File.Exists(fullname)) + { + var img = this.lb1.BackgroundImage; + this.lb1.BackgroundImage = Image.FromFile(fullname); + if (img != null) img.Dispose(); + } + else + { + msg += "\nNo Image File\n" + filename; + } + } + else + { + var img = this.lb1.BackgroundImage; + this.lb1.BackgroundImage = null; + if (img != null) img.Dispose(); + } + setMessage(msg); + this.lbTitle.MouseMove += label1_MouseMove; + lbTitle.MouseUp += label1_MouseUp; + lbTitle.MouseDown += label1_MouseDown; + lbTitle.MouseDoubleClick += label1_MouseDoubleClick; + this.VisibleChanged += FMsgWindow_VisibleChanged; + //btClose.Click += arLabel1_Click; + } + + private void FMsgWindow_VisibleChanged(object sender, EventArgs e) + { + //if (fb != null) + //{ + // if (this.Visible) fb.Show(); + // else fb.Hide(); + //} + } + + private void FMsgWindow_Shown(object sender, EventArgs e) + { + + } + + void fMsgWindow_FormClosing(object sender, FormClosingEventArgs e) + { + //if (fb != null) fb.Dispose(); + //if (DialogMode==false) + //{ + // e.Cancel = true; + // return; + //} + } + + private void fMsg_Load(object sender, EventArgs e) + { + + } + + private void label1_MouseMove(object sender, MouseEventArgs e) + { + if (fMove) + { + Point offset = new Point(e.X - MDownPos.X, e.Y - MDownPos.Y); + this.Left += offset.X; + this.Top += offset.Y; + offset = new Point(0, 0); + } + } + + private void label1_MouseUp(object sender, MouseEventArgs e) + { + fMove = false; + } + + private void label1_MouseDown(object sender, MouseEventArgs e) + { + MDownPos = new Point(e.X, e.Y); + fMove = true; + } + + private void label1_MouseDoubleClick(object sender, MouseEventArgs e) + { + if (EnableUserClose) + { + if (DialogMode == false) + { + //if (fb != null) fb.Visible = false; + this.Visible = false; + } + else this.Close(); + } + + } + + + private void lbTitle_Click(object sender, EventArgs e) + { + if (EnableUserClose) + { + if (DialogMode == false) + { + //if (fb != null) fb.Visible = false; + this.Visible = false; + + } + else this.Close(); + } + } + + private void tmBlink_Tick(object sender, EventArgs e) + { + var bg1 = lbTitle.BackColor; + var bg2 = lbTitle.BackColor2; + lbTitle.BackColor = bg2; + lbTitle.BackColor2 = bg1; + } + } +} diff --git a/Handler/Project_form2/Don't change it/MessageWindow/fMsgWindow.resx b/Handler/Project_form2/Don't change it/MessageWindow/fMsgWindow.resx new file mode 100644 index 0000000..eedca23 --- /dev/null +++ b/Handler/Project_form2/Don't change it/MessageWindow/fMsgWindow.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Handler/Project_form2/Don't change it/StateMachine/StateMachine.cs b/Handler/Project_form2/Don't change it/StateMachine/StateMachine.cs new file mode 100644 index 0000000..400a9c8 --- /dev/null +++ b/Handler/Project_form2/Don't change it/StateMachine/StateMachine.cs @@ -0,0 +1,233 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Project +{ + public partial class StateMachine + { + public DateTime UpdateTime; + private Boolean bLoop = true; + private DateTime StepStartTime; + private byte _messageOption; + private Boolean _isRun; + private System.Threading.Thread worker; + private Boolean firstRun = false; + public Boolean isRun { get { return _isRun; } } + public double Loop_ms { get; set; } + // private IMCResult MCResult = null; + + public StateMachine() + { + UpdateTime = DateTime.Now; + _messageOption = 0xFF; //모든메세지가 오도록 한다. + worker = new System.Threading.Thread(new System.Threading.ThreadStart(Loop)); + worker.IsBackground = false; + StepStartTime = DateTime.Parse("1982-11-23"); + Loop_ms = 0; + } + + //public void attachMCResult(IMCResult item) + //{ + // MCResult = item; + // if (GetMsgOpt(eMsgOpt.NORMAL)) + // RaiseMessage("ATTACH", string.Format("MCResult")); + //} + + public void Stop() + { + bLoop = false; + worker.Abort(); + } + public void Start() + { + worker.Start(); + } + + void Loop() + { + _isRun = true; + RaiseMessage("SM", "Start"); + while (bLoop) + { + + //Console.WriteLine("LOOP-START => 11111111111 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")); + + + //이전업데이트타임과의 시간차를 기록한다 + Loop_ms = (DateTime.Now - UpdateTime).TotalMilliseconds; + + UpdateTime = DateTime.Now; + + //항상 작동하는 경우 + if (SPS != null) + { + //try + //{ + SPS(this,new EventArgs()); + //} + //catch (Exception ex) + //{ + // Console.WriteLine("ERROR:SM:SPS:" + ex.Message); + //} + } + + + + // Console.WriteLine("LOOP-START => 2222222222 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")); + + //작동스텝이 변경되었다면 그것을 알림 처리한다. + if (getNewStep != Step) + { + if (GetMsgOpt(eMsgOpt.STEPCHANGE)) + RaiseMessage("SM-STEP", string.Format("Step Changed {0} >> {1}", Step, getNewStep)); + + StepApply(); + firstRun = true; + StepStartTime = DateTime.Now; + } + else firstRun = false; + + // Console.WriteLine("LOOP-START => 3333333333 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")); + + //동작중에 발생하는 이벤트 + if (Running != null) + { + + //try + //{ + Running(this,new RunningEventArgs(Step, firstRun, StepRunTime)); + //} + //catch (Exception ex) + //{ + // //오류보고는 3초에 한번씩 동작한다 + // if(Pub.GetVarRunTime(eVarTime.SMRUNERROR).TotalSeconds > 3) + // { + // Pub.SetVarTime(eVarTime.SMRUNERROR, DateTime.Now); + // Pub.log.AddE("상태머신 RUN 오류:" + ex.Message); + // } + //} + } + + System.Threading.Thread.Sleep(1); + + // Console.WriteLine("LOOP-END => 4444444444444 " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")); + + } + _isRun = false; + if (GetMsgOpt(eMsgOpt.NORMAL)) RaiseMessage("SM", "Stop"); + } + + + + eSMStep prebackupstepo = eSMStep.NOTSET; + eSMStep prebackupstepn = eSMStep.NOTSET; + public void PushStep() + { + prebackupstepo = OldStep; + prebackupstepn = _step; + } + public void PopStep() + { + if (prebackupstepn != eSMStep.NOTSET) + { + _step = prebackupstepn; + OldStep = prebackupstepo; + prebackupstepn = eSMStep.NOTSET; + } + } + /// + /// 상태머신의 작동상태 + /// + public eSMStep Step { get { return _step; } } + + /// + /// 상태머신값을 숫자로 반환 합니다. (20이하는 시스템상태이고 그 이상은 사용자 상태) + /// + public byte StepValue + { + get + { + return (byte)this._step; + } + } + + public void setNewStep(eSMStep newstep_, Boolean force = false) + { + if (Step != newstep_) //현재스텝과 새로운 스텝이 다른경우 + { + if (NewStep != newstep_) + { + if (force == false && NewStep == eSMStep.EMERGENCY && newstep_ != eSMStep.RESET) + { + //스텝을 변경해야하는데. 예약된 스텝이 비상정지라면 처리하지 않는다 + RaiseMessage("SM-STEP", string.Format("비상정지가 예약되어 있으므로 이 스텝({0})은 취소 됩니다", newstep_)); + } + else + { + //바뀌도록 예약을 한다. + NewStep = newstep_; + if (GetMsgOpt(eMsgOpt.STEPCHANGE)) + RaiseMessage("SM-STEP", string.Format("Step Reserve {0} -> {1}", Step, NewStep)); + } + } + else + { + //예약은 되어있는데 아직 바뀐것은 아니다. + if (GetMsgOpt(eMsgOpt.STEPCHANGE)) + RaiseMessage("SM-STEP", string.Format("Step Already Reserve {0} -> {1}", Step, NewStep)); + } + } + } + public eSMStep getNewStep + { + get + { + return NewStep; + } + } + private eSMStep NewStep = eSMStep.NOTSET; + public eSMStep OldStep = eSMStep.NOTSET; //171214 + private eSMStep _step; + + /// + /// newstep 의 값을 step 에 적용합니다. + /// + private void StepApply() + { + var ostep = _step; + OldStep = _step; _step = NewStep; + if (StepChanged != null) StepChanged(this, new StepChangeEventArgs(ostep, _step)); + } //171214 + + /// + /// 메세지 출력옵션을 변경 합니다. + /// + /// + /// + public void SetMsgOpt(eMsgOpt opt, Boolean value) + { + byte pos = (byte)opt; + if (value) + _messageOption = (byte)(_messageOption | (1 << pos)); + else + _messageOption = (byte)(_messageOption & ~(1 << pos)); + } + public void SetMegOptOn() { _messageOption = 0xFF; } + public void SetMsgOptOff() { _messageOption = 0; } + public Boolean GetMsgOpt(eMsgOpt opt) + { + byte pos = (byte)opt; + return (_messageOption & (1 << pos)) > 0; + } + public TimeSpan StepRunTime + { + get + { + if (StepStartTime.Year == 1982) return new TimeSpan(0); + else return DateTime.Now - StepStartTime; + } + } + } +} diff --git a/Handler/Project_form2/Don't change it/StateMachine/_SM_RUN.cs b/Handler/Project_form2/Don't change it/StateMachine/_SM_RUN.cs new file mode 100644 index 0000000..d886fe9 --- /dev/null +++ b/Handler/Project_form2/Don't change it/StateMachine/_SM_RUN.cs @@ -0,0 +1,153 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; + +namespace Project +{ + public partial class fMain + { + #region "Common Utility" + + /// + /// 지정한 출력핀의 상태를 변경하고 최대 10초간 상태를 모니터링 합니다. + /// + /// + /// + /// + /// + /// + /// + /// + bool checkDigitalO(int shutIdx, eDOName doPin, Boolean isFirst, TimeSpan stepTime, Boolean checkValue, int sendIntervalMs = 1000, int timeoutSec = 0) + { + + //eIOCheckResult result = eIOCheckResult.Complete; + var retval = false; + if (timeoutSec == 0) timeoutSec = Pub.setting.Timeout_DIOCommand; + + if (isFirst) + { + Pub.Result.doCheckTime[shutIdx, (int)doPin] = DateTime.Now.AddDays(-1); + } + + + + //지정한 출력핀이 조건에 맞지 않을 경우ㅍ + var curValue = Util_DO.GetIOOutput(doPin); + if (curValue != checkValue) + { + //Offt신호는 1초에 1번씩 전송하게 한다. + var ts = DateTime.Now - Pub.Result.doCheckTime[shutIdx, (int)doPin]; + if (ts.TotalMilliseconds >= sendIntervalMs) + { + Pub.dio.SetOutput((int)doPin, checkValue); + Pub.Result.doCheckTime[shutIdx, (int)doPin] = DateTime.Now; + } + + //전체 시간이 10초를 넘어가면 오류로 처리함 + if (stepTime.TotalSeconds >= timeoutSec) + Pub.Result.SetResultTimeOutMessage(doPin, checkValue, eNextStep.pause); + } + else retval = true; + return retval; + } + + bool checkDigitalO(int shutIdx, eDIName doPin, Boolean isFirst, TimeSpan stepTime, Boolean checkValue, int timeoutSec = 0) + { + //eIOCheckResult result = eIOCheckResult.Complete; + var retval = false; + if (timeoutSec == 0) timeoutSec = (int)Pub.setting.Timeout_DIOCommand; + + //지정한 출력핀이 조건에 맞지 않을 경우ㅍ + var curValue = Util_DO.GetIOInput(doPin); + if (curValue != checkValue) + { + //전체 시간이 10초를 넘어가면 오류로 처리함 + //var diRunTime = DateTime.Now - Pub.Result.diCheckTime[shutIdx, (int)doPin]; + if (stepTime.TotalSeconds >= timeoutSec) + { + //result = eIOCheckResult.Timeout; + Pub.Result.SetResultTimeOutMessage(doPin, checkValue, eNextStep.pause); + } + } + else retval = true; + return retval; + } + + Boolean CheckMotionPos(int seqIdx, eAxis Motaxis, TimeSpan stepTime, double pos, double speed, double acc, double dcc, string source, Boolean useInterLocak=true, int timeoutSec = 0) + { + var axis = (int)Motaxis; + + //타임아웃 적용 191213 + if (timeoutSec == 0) timeoutSec = Pub.setting.Timeout_MotionCommand; + + + //X축을 그립위치까지 이동함 + if (Pub.mot.isINP[axis] && Pub.mot.isMotion[axis] == false) + { + var offset = Math.Abs(Pub.mot.dCMDPOS[axis] - pos); + var offsetReal = Math.Abs(Pub.mot.dCMDPOS[axis] - Pub.mot.dACTPOS[axis]); + if (offset > 0.01 || offsetReal > 0.1) + { + + if (Util_Mot.Move(Motaxis, pos, speed, acc, false, true, useInterLocak) == false) + Console.WriteLine("move error {0},pos={1} => {2}",Motaxis,pos,Pub.mot.errorMessage); + + + //모션을 옴겨야하는 상황인데 최대시간을 초과했다면 오류로 처리한다 + if (timeoutSec != -1 && stepTime.TotalSeconds >= timeoutSec) + { + Pub.Result.SetResultTimeOutMessage(Motaxis, eECode.MOT_CMD, eNextStep.pause, source); + } + + //모션을 이동시켰으니 False 처리한다 + //return false; + } + } + + //축이 이동중이면 처리하지 않는다. + if (Pub.mot.isINP[axis] == false || Pub.mot.isMotion[axis] == true) + { + return false; + } + + //X축실위치값 확인 + if (Util_Mot.getPositionMatch(axis, pos) == false) + { + return false; + } + + return true; + } + + + /// + /// 지정된 시간만큼 대기하며 완료되면 true를 반환합니다. + /// + /// + /// + Boolean WaitForSeconds(eWaitType wait, double timems) + { + var idx = (byte)wait; + if (Pub.Result.WaitForVar[idx] == null || Pub.Result.WaitForVar[idx].Year == 1982) + { + Pub.Result.WaitForVar[idx] = Pub.Result.WaitForVar[idx] = DateTime.Now; + //Pub.log.Add(string.Format("Wait for [{0}], Wait Time:{1}ms", wait, timems)); + } + var ts = DateTime.Now - Pub.Result.WaitForVar[idx]; + if (ts.TotalSeconds >= timems) return true; + else return false; + } + + void ResetWaitForSeconds(eWaitType wait) + { + var idx = (byte)wait; + Pub.Result.WaitForVar[idx] = DateTime.Parse("1982-11-23"); + } + + #endregion + + }//cvass +} diff --git a/Handler/Project_form2/Don't change it/Util/Util_DO.cs b/Handler/Project_form2/Don't change it/Util/Util_DO.cs new file mode 100644 index 0000000..2b6faa7 --- /dev/null +++ b/Handler/Project_form2/Don't change it/Util/Util_DO.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Project +{ + public static partial class Util_DO + { + + } +} diff --git a/Handler/Project_form2/Don't change it/Util/Util_Mot.cs b/Handler/Project_form2/Don't change it/Util/Util_Mot.cs new file mode 100644 index 0000000..05a1714 --- /dev/null +++ b/Handler/Project_form2/Don't change it/Util/Util_Mot.cs @@ -0,0 +1,249 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Project +{ + + public static partial class Util_Mot + { + #region "Common Util" + + //지정한 옵셋범위에 들어있는지 체크합니다. + static Boolean MatchPosition(double cpos, double tpos, double diff = 0.1) + { + var offset = Math.Abs(tpos - cpos); + return offset <= diff; + } + public static double getPositionOffset(eAxis axis, double cmdPos) + { + return getPositionOffset((int)axis, cmdPos); + } + public static double getPositionOffset(eAxisPXPos point) + { + var axis = eAxis.X_PICKER; + var pos = GetAxPXPos(point); + return getPositionOffset(axis, pos.position); + } + public static double getPositionOffset(eAxisPZPos point) + { + var axis = eAxis.Z_PICKER; + var pos = GetAxPZPos(point); + return getPositionOffset(axis, pos.position); + } + public static double getPositionOffset(eAxisPLMovePos point) + { + var axis = eAxis.PL_MOVE; + var pos = GetAxPLMPos(point); + return getPositionOffset(axis, pos.position); + } + public static double getPositionOffset(eAxisPRMovePos point) + { + var axis = eAxis.PR_MOVE; + var pos = GetAxPRMPos(point); + return getPositionOffset(axis, pos.position); + } + public static double getPositionOffset(eAxisPLUPDNPos point) + { + var axis = eAxis.PL_UPDN; + var pos = GetAxPLZPos(point); + return getPositionOffset(axis, pos.position); + } + public static double getPositionOffset(eAxisPRUPDNPos point) + { + var axis = eAxis.PR_UPDN; + var pos = GetAxPRZPos(point); + return getPositionOffset(axis, pos.position); + } + + /// + /// 현재위치에서 지정된 위치를 뺀 값입니다. +가 반환되면 현재 위치가 지정위치보다 멀리 있다는 뜻입니다. + /// + /// + /// + /// + public static double getPositionOffset(int axis, double cmdPos) + { + var coffset = (Pub.mot.dACTPOS[(int)axis] - cmdPos); + return coffset;// return coffset < offset; + } + + public static bool getPositionMatch(eAxis axis, double cmdPos, double offset = 0.1) + { + return getPositionMatch((int)axis, cmdPos, offset); + } + + public static bool getPositionMatch(int axis, double cmdPos, double offset = 0.1) + { + var coffset = Math.Abs(Pub.mot.dACTPOS[(int)axis] - cmdPos); + return coffset < offset; + } + + public static List GetActiveLockList(eAxis axis, CInterLock Lck) + { + var locklist = new List(); + + if (Lck.Value > 0) + { + for (int i = 0; i < 64; i++) + { + if (Lck.get(i)) + { + var vStr = $"[{i}]"; + if (axis == eAxis.X_PICKER) vStr = ((eILockPKX)i).ToString(); + else if (axis == eAxis.Z_PICKER) vStr = ((eILockPKZ)i).ToString(); + else if (axis == eAxis.Z_THETA) vStr = ((eILockPKT)i).ToString(); + else if (axis == eAxis.PL_MOVE) vStr = ((eILockPRM)i).ToString(); + else if (axis == eAxis.PL_UPDN) vStr = ((eILockPRZ)i).ToString(); + else if (axis == eAxis.PR_MOVE) vStr = ((eILockPRM)i).ToString(); + else if (axis == eAxis.PR_UPDN) vStr = ((eILockPRZ)i).ToString(); + locklist.Add(vStr); + } + } + } + return locklist; + } + + public static Boolean Home(string reason, eAxis axis_, Boolean useValidcheck = true) + { + string Message; + int axis = (int)axis_; + if (useValidcheck == true && !Home_Validation(axis_, out Message)) + { + Pub.mot.RaiseMessage(string.Format("[{0}-Axis] Move Error : {1}", axis, Message), true); + return false; + } + + var HomespdH = new double[] { + Pub.system.HSpeed0H, Pub.system.HSpeed1H, Pub.system.HSpeed2H, + Pub.system.HSpeed3H, Pub.system.HSpeed4H, Pub.system.HSpeed5H, + Pub.system.HSpeed6H,Pub.system.HSpeed7H + }; + var HomespdL = new double[] { + Pub.system.HSpeed0L, Pub.system.HSpeed1L, Pub.system.HSpeed2L, + Pub.system.HSpeed3L, Pub.system.HSpeed4L, Pub.system.HSpeed5L, + Pub.system.HSpeed6L, Pub.system.HSpeed7L + }; + var homespdA = new double[] { + Pub.system.HAcc0, Pub.system.HAcc1, Pub.system.HAcc2, + Pub.system.HAcc3, Pub.system.HAcc4, Pub.system.HAcc5, + Pub.system.HAcc6,Pub.system.HAcc7 + }; + + var disable_org = new Boolean[] { + Pub.system.axis0_disable_orgsensor, Pub.system.axis1_disable_orgsensor,Pub.system.axis2_disable_orgsensor, + Pub.system.axis3_disable_orgsensor, Pub.system.axis4_disable_orgsensor,Pub.system.axis5_disable_orgsensor, + Pub.system.axis6_disable_orgsensor,Pub.system.axis7_disable_orgsensor + }; + + //Pub.mot.Home(1, arDev.AzinAxt.eMotionDirection.Negative, arDev.AzinAxt.eSoftLimitStopMode.SStop, Pub.setting.HZSpeed, Pub.setting.HZAcc); + Boolean useOrgSensor = !disable_org[axis]; // (axis_ != eAxis.Marking); //A센서는 ORG가 없으므로 NE센서만으로 처리해야 함 + return Pub.mot.Home(reason, (short)axis, arDev.AzinAxt.eMotionDirection.Negative, + arDev.AzinAxt.eSoftLimitStopMode.EStop, + HomespdH[axis], + HomespdL[axis], + homespdA[axis], + useOrgSensor); + } + + + private static DateTime[] MotCmdtime = new DateTime[] { DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now }; + private static double[] MotCmdPos = new double[] { 0, 0, 0, 0, 0, 0, 0, 0 }; + + public static Boolean Move(eAxis axis, double pos_mm, double speed, double acc = 1000, Boolean relative = false, Boolean validchk = true, Boolean UserInterLock = true) + { + + //너무빠른시간 동작하지 못하게 한다 + if (MotCmdPos[(int)axis] == pos_mm) + { + var ts = DateTime.Now - MotCmdtime[(int)axis]; + if (ts.TotalMilliseconds < 1000) + { + //너무 빠르게 재시도하지 않게 한다 210115 + Console.WriteLine("mot command skip : " + axis.ToString() + "pos:" + pos_mm.ToString() + " too short"); + MotCmdtime[(int)axis] = DateTime.Now.AddMilliseconds(-1500); + return true; + } + else + { + MotCmdtime[(int)axis] = DateTime.Now; + MotCmdPos[(int)axis] = pos_mm; + } + } + else + { + MotCmdtime[(int)axis] = DateTime.Now; + MotCmdPos[(int)axis] = pos_mm; + } + + //웨이퍼가 감지되는 상태일때 OPEN 되어있다면 이동하지 못하게 한다 + string Message; + if (validchk == true) + { + if (!Move_Validation(axis, out Message)) + { + Pub.log.AddE(string.Format("[{0}-Axis] Move Error : {1}", axis, Message)); + //Pub.mot.RaiseMessage(, true); + return false; + } + } + + //해당 축 ILOCK체크 + if (UserInterLock) + { + //lock이 걸린경우 lock 걸린 항목을 모두 확인하면 좋다 + if (axis == eAxis.X_PICKER && Pub.LockPKX.Value > 0) + { + var locklist = Util_Mot.GetActiveLockList(axis, Pub.LockPKX); + Pub.mot.errorMessage = "X_PICKER Interlock(" + string.Join(",", locklist) + ")"; + return false; + } + else if (axis == eAxis.Z_PICKER && Pub.LockPKZ.Value > 0) + { + var locklist = Util_Mot.GetActiveLockList(axis, Pub.LockPKZ); + Pub.mot.errorMessage = "Z_PICKER Interlock(" + string.Join(",", locklist) + ")"; + return false; + } + else if (axis == eAxis.Z_THETA && Pub.LockPKT.Value > 0) + { + var locklist = Util_Mot.GetActiveLockList(axis, Pub.LockPKT); + Pub.mot.errorMessage = "Z_THETA Interlock(" + string.Join(",", locklist) + ")"; + return false; + } + else if (axis == eAxis.PL_MOVE && Pub.LockPLM.Value > 0) + { + var locklist = Util_Mot.GetActiveLockList(axis, Pub.LockPLM); + Pub.mot.errorMessage = "PL_MOVE Interlock(" + string.Join(",", locklist) + ")"; + return false; + } + else if (axis == eAxis.PL_UPDN && Pub.LockPLZ.Value > 0) + { + var locklist = Util_Mot.GetActiveLockList(axis, Pub.LockPLZ); + Pub.mot.errorMessage = "PL_UPDN Interlock(" + string.Join(",", locklist) + ")"; + return false; + } + else if (axis == eAxis.PR_MOVE && Pub.LockPRM.Value > 0) + { + var locklist = Util_Mot.GetActiveLockList(axis, Pub.LockPRM); + Pub.mot.errorMessage = "PR_MOVE Interlock(" + string.Join(",", locklist) + ")"; + return false; + } + else if (axis == eAxis.PR_UPDN && Pub.LockPRZ.Value > 0) + { + var locklist = Util_Mot.GetActiveLockList(axis, Pub.LockPRZ); + Pub.mot.errorMessage = "PR_UPDN Interlock(" + string.Join(",", locklist) + ")"; + return false; + } + } + + var pos_pulse = pos_mm;// *10; + var result = Pub.mot.Move((short)axis, pos_pulse, speed, acc, acc, relative, false, validchk); + if (!result) Pub.mot.RaiseMessage("Move(X) Error : " + Pub.mot.errorMessage, true); + return result; + } + + + #endregion + } +} diff --git a/Handler/Project_form2/History.txt b/Handler/Project_form2/History.txt new file mode 100644 index 0000000..5e9f686 --- /dev/null +++ b/Handler/Project_form2/History.txt @@ -0,0 +1,126 @@ +컨트롤버튼이 안보인다 +모션초기화 오류가 게속 나온다 어딘가에서 off하는듯 +비젼 acq를 항상 유지하는 것으로 한다 (작업시작시 on , 작업 종료시 off); + +축 정보 + +-피치- +프린터Z : 10mm 피치 +프린터Y : 한바퀴가 49.5mm +피커Z : 10mm +피커X : 20mm +Theta : 1/50 + +0 : Picker X +1 : Picker Z +2 : Print Left - Y : 0.00325 +3 : Print Left Up/Dn +4 : Print Right - Y : 0.00325 +5 : Print Right Up/Dn +6 : Theta + + +//특정좌표가 기준점으로부터 몇도 틀어져 있는가? +math.atan2(PY-CY,PX-CX) + +//회전후좌표계산 +x = root( (px - cx)^2 + (py-cy)^2 ) * cos@ + cx +y = root( px^2 + py^2 ) * sin@ + cy + + +1. 카트교환시 - 가장 아래로 내리고 마그넷을 푸는 방식 확인 필요 / 동작중에도 교환을 누르면 / 교환프로세서를 port 시퀀스에 집어넣어야할듯 함. +2. SID변환등의 작업을 완료했을 떄 DB에도 해당 내용을 업데이트 해준다. SID별 Part no 와 customer Code 등 +3. 릴 ID는 신규생성이 필요하다 101=>103 변환 테이블 확인 필요 +4. 초반 시작시에 . 중앙에 너무 머무리는 경향이 있다. 아이템을 잡은 후 바로 가지않고, 중앙포트가 안정되면 그떄서야 움직인다. +5. 추가로 검증 할 수 있는 프로그램을 개발하여 제대로 붙었는지 체크한다. +검증 완료시 해당 비젼쪽에 검증 확인 메세지를 추가한다.(잘 보이게) + + + +미처리내역 +[h/w] + port0,2번 detect 센서 + 릴 카트 + 피커 진공패드 +[s/w] + 비젼 관련 (바코드) + port0,2번 센서가 없어서 해당 기능 oFF됨 + 최초 작업 실행 , 촬영작업 없이 실행 됨 + history 저장 기능 + 간헐적으로 진행중에 멈추는 현상 + 카메라 live 활성화시 해당 카메라만 활성화할 수 잇도록 context menu 에서 호출 인덱스 확인 필요 + 카트크기정보 및 카드관련 코드 추가 + 에러메세지 잡아야 함 + 작업완료시 데이터 저장하는 기능 추가 + JOBEND 화면 정리 + 작업시작 화면 멘트도 변경한다 + QR코드 읽는 명령에 유레시스의 것도 넣는다. + QR코드 읽기 실패시에 밝기를 += 3% 처리를 한다. + 릴 원형 감지하고 마스킹영역을 설정한다 + 중앙만 작업 완료 전에 limit 센서 터치되면 최하단으로 이동 : + + RDR 처리된 sid 로 변경된 것들 + 인쇄위치의 자동 결정 및 관련 UI 에 반영하기 (인쇄위치는 총 4면만 지원한다 N,E,W,S); + 인쇄위치에 따른 모션의 좌표 관련 처리 ( 모든 영역을 지정하거나 미리 계산해서 입력하거나 -> 비젼의 scale 값은 미리 계산해도 가능할 듯) + 티칭화면에서 길이(px) 값 확인하는 ruller 모드 추가 + 티칭화면에서 Mask 이미지 생성하는 화면 추가 (흑백 배경에 백색 원 추가하기) + 비젼 진행시 마스크 이미지 적용기능 (각 크기에 따름) + 릴 ID 생성기 추가 + + + +* 바코드 +101 -> 103붙이는 거다. +돌릴수 있는거고 +1D -> 101, 103 (작업자 선택) +1D -> +2D -> +고객(103) -> + +211201 chi offline mode 와, dry run 정의 +210414 chi 작업완료시 모든 포트를 아래로 내린다. + 포트가 하단 리밋에 걸리면 "포트잠금"을 해제 한다 + 로더포트의 오버로드 확인시 작업 시작 안됨 + 좌/우 활성화 여부에 따라서 포트의 동작 on/off 결정 + 비활성화된 축에 이동이 금지 되도록 코드 추가 + 최초 실행시 "포트잠금" 해제 기능이 1회 동작하지 않는 현상 수정 + +210325 chi 위치리셋후에 오른쪽으로 비키게 됨 +210302 chi 작업형태에 return 항목 추가 return 시에는 신규 생성시 return 이 기본 체크되게 함 + 모션작업시 timeout 항목에 -1을 입력한 데이터는 timeout 을 적용하지 않게함 + 바코드 검증 실패 메세지 변경 (mfg date 항목을 추가하고 rid는 줄을 분리 함) + +210112 chi 감지된 카트크기 화면에 표시함 + 비젼 외각 인식 관련 코드 추가 중 + +201229 chi + 비젼촬영횟수도 저장하자 + 이미지파일 저장하기 + PRINTR_AIRON , PRINTL_AIRON 핀이 서로 바뀜 + 프린트 횟수 추가 해서 보여주기 + 비젼촬영작업시 0,2번의 경우에는 프린터의Y축 값도 확인해야함 + 비젼iLOCK 이름중 PY 를 피커X로 변경 해야 함 + 프린트 출력이 다량 발생하는 오류 있음( 이거 해결하면 시퀀스는 일단 됨) + 비젼의 lock 정보도 loader 컨트롤에 전달하고 화면에 표시한다 + 전면에 카드 감지센서가 들어오고 몇초있다가 마그넷을 활성화 해준다. + +201224 chi X축의 안전위치를 화면에 표시해준다. + 마그넷 활성화를 화면에 표시해준다. + Theta는 홈 안잡음 + +201223* chi Loader 컨트롤의 모터 표시 방향 변경 + 인터락제한조건 수정 + 로더컨트롤에 safezone 과 포트 magnet 상태 표시함 + ILock 상태 display + +201223 chi [O]피커 Z축 - Limit 동작 안함 + [O]Printer Y 축 떨림 해결 + +201222 chi 모션화면에서 SVON 이 제대로 표시되지 않는 현상 수정 + 포트 up/dn 위치 확인 및 limit 센서 위치 조정 + 모션의 limit 센서 및 org 위치 동작 확인 (피커 z는 n-lim 은 동작 안함) + 모션화면에서 svon 과 p.clr 버튼 추가 + Y-PICKER -> X-PICKER 명칭 변경 + 카메라3대 확인 라이브 영상 확인 +201005 chi 시작시 카메라 연결확인 +200915 chi 프로젝트초기화 \ No newline at end of file diff --git a/Handler/Project_form2/Language/Lang.cs b/Handler/Project_form2/Language/Lang.cs new file mode 100644 index 0000000..7d09dc1 --- /dev/null +++ b/Handler/Project_form2/Language/Lang.cs @@ -0,0 +1,259 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Project +{ + public static class Lang + { + ////main + public static string OK { get; set; } + public static string Q_EXIT { get; set; } + public static string ERROR { get; set; } + public static string NO { get; set; } + public static string YES { get; set; } + + public static string MENU_RESET { get; set; } + public static string MENU_LOGIN { get; set; } + public static string MENU_LOGOUT { get; set; } + public static string MENU_RESULT { get; set; } + public static string MENU_MODELEDIT { get; set; } + public static string MENU_SETUP { get; set; } + + public static string RESULT { get; set; } + public static string LOG { get; set; } + public static string HISTORY { get; set; } + + public static string NOT_READY { get; set; } + public static string CAN_NOT_RUN_AUTOMODE { get; set; } + + public static string m_오류_AIROFF { get; set; } + public static string m_오류_AIRDETECT { get; set; } + public static string m_오류_SAFTYAREA { get; set; } + public static string m_오류_REQUIRELOTLIST { get; set; } + public static string m_진행중 { get; set; } + public static string m_준비완료 { get; set; } + + public static string m_트레이로드 { get; set; } + public static string m_시작조건검사 { get; set; } + public static string m_시작조건프로그램 { get; set; } + public static string m_시작조건장치 { get; set; } + public static string m_카메라촬영 { get; set; } + public static string m_이미지수집 { get; set; } + public static string m_비젼검사_원점 { get; set; } + public static string m_비젼검사_DOT { get; set; } + public static string m_LASERMARKING { get; set; } + public static string m_AIRBLOW { get; set; } + public static string m_트레이언로드 { get; set; } + + public static void CreateFile() + { + //utf8파일로 파일을 생성한다. + //if (System.IO.File.Exists(FileName)) System.IO.File.Delete(FileName); + iniHelper.CreateFile(); //System.IO.File.WriteAllText(FileName, "//INI FILE", System.Text.Encoding.Unicode); + + int i = 1; + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.Q_EXIT); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.OK); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.ERROR); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.NO); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.YES); + + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.MENU_RESULT); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.MENU_LOGOUT); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.MENU_LOGIN); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.MENU_MODELEDIT); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.MENU_SETUP); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.MENU_RESET); + + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.RESULT); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.LOG); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.HISTORY); + + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.NOT_READY); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.CAN_NOT_RUN_AUTOMODE); + + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_오류_AIROFF); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_오류_AIRDETECT); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_오류_SAFTYAREA); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_오류_REQUIRELOTLIST); + + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_진행중); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_준비완료); + + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_트레이로드); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_시작조건검사); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_시작조건프로그램); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_시작조건장치); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_카메라촬영); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_이미지수집); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_비젼검사_원점 ); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_비젼검사_DOT ); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_LASERMARKING ); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_AIRBLOW); + SetINIValue(string.Format("MSG{0:0000}", i++), Lang.m_트레이언로드); + + iniHelper.Flush(); + } + + public static bool Loading(string langName) + { + Lang.SelectedLang = langName; + iniHelper = new arUtil.INIHelper(FileName); + + int i = 1; + + Lang.Q_EXIT = GetINIValue(string.Format("MSG{0:0000}", i++), "종료하시겠습니까?"); + Lang.OK = GetINIValue(string.Format("MSG{0:0000}", i++), "확인"); + Lang.ERROR = GetINIValue(string.Format("MSG{0:0000}", i++), "오류"); + Lang.NO = GetINIValue(string.Format("MSG{0:0000}", i++), "아니오"); + Lang.YES = GetINIValue(string.Format("MSG{0:0000}", i++), "예"); + + Lang.MENU_RESULT = GetINIValue(string.Format("MSG{0:0000}", i++), "History"); + Lang.MENU_LOGOUT = GetINIValue(string.Format("MSG{0:0000}", i++), "Logout"); + Lang.MENU_LOGIN = GetINIValue(string.Format("MSG{0:0000}", i++), "Login"); + Lang.MENU_MODELEDIT = GetINIValue(string.Format("MSG{0:0000}", i++), "Model Editor"); + Lang.MENU_SETUP = GetINIValue(string.Format("MSG{0:0000}", i++), "Setting"); + Lang.MENU_RESET = GetINIValue(string.Format("MSG{0:0000}", i++), "Clear"); + + Lang.RESULT = GetINIValue(string.Format("MSG{0:0000}", i++), "Result"); + Lang.LOG = GetINIValue(string.Format("MSG{0:0000}", i++), "Log"); + Lang.HISTORY = GetINIValue(string.Format("MSG{0:0000}", i++), "History"); + Lang.NOT_READY = GetINIValue(string.Format("MSG{0:0000}", i++), "Input sensor condition not completed."); + + Lang.CAN_NOT_RUN_AUTOMODE = "AUTO-RUN MODE{n}[자동실행] 중에는 사용할 수 없습니다{n}중지 후 다시 시도하세요"; + Lang.m_오류_AIROFF = GetINIValue(string.Format("MSG{0:0000}", i++), "AIR OFF{n}AIR 공급상태가 [OFF] 입니다{n}전면의 [AIR S/W]를 누르세요{n}출력포트 : Y004"); + Lang.m_오류_AIRDETECT = GetINIValue(string.Format("MSG{0:0000}", i++), "AIR NOT DETECTED{n}장비 전면커버를 열고 AIR 감지 센서의 출력을 확인합니다{n}감지센서 : X005"); + Lang.m_오류_SAFTYAREA = GetINIValue(string.Format("MSG{0:0000}", i++), "SAFTY AREA SENSOR ERROR{n}매거진 투입구 안전 센서가 감지되었습니다{n}감지센서 : X00A"); + Lang.m_오류_REQUIRELOTLIST = GetINIValue(string.Format("MSG{0:0000}", i++), "REQUIRE LOT-LIST{n}LOT 목록이 조회 되어야 합니다{n}바코드를 이용하여 A/L TAG를 입력하세요"); + Lang.m_진행중 = GetINIValue(string.Format("MSG{0:0000}", i++), "진행 중"); + Lang.m_준비완료 = GetINIValue(string.Format("MSG{0:0000}", i++), "준비 완료"); + + Lang.m_트레이로드 = GetINIValue(string.Format("MSG{0:0000}", i++), "TRAY LOAD"); + Lang.m_시작조건검사 = GetINIValue(string.Format("MSG{0:0000}", i++), "CHECK INIT"); + Lang.m_시작조건프로그램 = GetINIValue(string.Format("MSG{0:0000}", i++), "CHECK S/W"); + Lang.m_시작조건장치 = GetINIValue(string.Format("MSG{0:0000}", i++), "CHECK H/W"); + Lang.m_카메라촬영 = GetINIValue(string.Format("MSG{0:0000}", i++), "CAMERA ON"); + Lang.m_이미지수집 = GetINIValue(string.Format("MSG{0:0000}", i++), "GRAB IMAGE"); + Lang.m_비젼검사_원점 = GetINIValue(string.Format("MSG{0:0000}", i++), "IMAGE(ORIGNE)"); + Lang.m_비젼검사_DOT = GetINIValue(string.Format("MSG{0:0000}", i++), "IMAGE(DOT)"); + Lang.m_LASERMARKING = GetINIValue(string.Format("MSG{0:0000}", i++), "LASER MARKING"); + Lang.m_AIRBLOW = GetINIValue(string.Format("MSG{0:0000}", i++), "AIR BLOW"); + Lang.m_트레이언로드 = GetINIValue(string.Format("MSG{0:0000}", i++), "TRAY UNLOAD"); + + Type thClass = typeof(Lang); + + foreach (var method in thClass.GetMethods()) + { + var parameters = method.GetParameters(); + if (method.Name.StartsWith("get_m_")==false) continue; + //set은 사용하지 않는다. + + //key + string keyname = method.Name.Substring(4); + string methodName = method.Name; + string valuetype = method.ReturnType.Name.ToLower(); + var odata = thClass.GetMethod(methodName).Invoke(null, null).ToString(); + if(odata.Contains("{n}")) + { + var ndata = odata.Replace("{n}", "\n"); + thClass.GetMethod("set_" + keyname).Invoke(thClass, new object[] { ndata }); + } + } + //171104 없다면 생성 + if (!isExist()) CreateFile(); + return true; + } + + #region "Common " + + public static Boolean ReLoad() + { + return Loading(SelectedLang); + } + private static arUtil.INIHelper iniHelper; + private static string GetINIValue(string key, string def = "") + { + if (!System.IO.File.Exists(Lang.FileName)) + return def; + + string retval = iniHelper.get_Data("lang", key, def); + return retval; + } + private static void SetINIValue(string key, string value) + { + iniHelper.set_Data("lang", key, value); + } + public static Boolean isExist() + { + return System.IO.File.Exists(FileName); + } + + ////local data + private static string _path = ""; + private static string _selectedLang = ""; + public static string SelectedLang + { + get + { + if ((string.IsNullOrWhiteSpace(_selectedLang))) + { + return "kor"; + } + else + { + string fullname = Path + "\\" + _selectedLang + ".ini"; + //if ((!System.IO.File.Exists(fullname))) + //{ + // CreateFile(); + //} + return _selectedLang; + } + } + set { _selectedLang = value; } + } + public static string Path + { + get + { + if (string.IsNullOrWhiteSpace(_path)) + { + _path = AppDomain.CurrentDomain.BaseDirectory + "\\Language"; + if (!System.IO.Directory.Exists(_path)) System.IO.Directory.CreateDirectory(_path); + } + return _path; + } + set { _path = value; } + } + public static List LangList + { + get + { + List retval = new List(); + if ((System.IO.Directory.Exists(Path))) + { + string[] files = System.IO.Directory.GetFiles(Path, "*.ini"); + foreach (string file in files) + { + retval.Add(file.Substring(file.LastIndexOf("\\") + 1)); + } + } + return retval; + } + } + public static string FileName + { + get + { + string fn = Path + "\\" + SelectedLang; + if(fn.ToLower().LastIndexOf(".ini") == -1) fn += ".ini"; + return fn.Replace("\\\\", "\\"); + } + } + #endregion + + + } +} + diff --git a/Handler/Project_form2/Manager/DataBaseManagerCount.cs b/Handler/Project_form2/Manager/DataBaseManagerCount.cs new file mode 100644 index 0000000..0b00218 --- /dev/null +++ b/Handler/Project_form2/Manager/DataBaseManagerCount.cs @@ -0,0 +1,432 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Project.Manager +{ + public class DatabaseManagerCount + { + /// + /// 파일검색방법 + /// + public enum eFileSearchMode + { + Normal, + Project, + Model, + MCCode, + Barcode, + All, + } + + public enum eStripSearchResult + { + None, + OK, + NG, + } + + /// + /// 최종파일 + /// + private String LastFileName; + public string dataPath = string.Empty; + + /// + /// 파일디비초기화작업(클라이언트 갯수만큼 버퍼를 확보한다) + /// + public DatabaseManagerCount() + { + LastFileName = string.Empty; + } + + public Boolean UpdateCountDate(DateTime jobStartTime, int shutIndex, int slotIndex, int count = 1) + { + //대상파일을 설정한다. + var fileName = System.IO.Path.Combine(Pub.setting.Path_Data, "Count", + jobStartTime.Year.ToString("0000"), + jobStartTime.Month.ToString("00"), + jobStartTime.Day.ToString("00"), + "S" + (shutIndex == 0 ? "F" : "B") + "_" + slotIndex.ToString("0000") + ".xml"); + return UpdateCount(fileName, "", count); + } + + public Boolean UpdateCountDM(string DataMatrix, int count = 1) + { + string ww, seq; + Util.splitID(DataMatrix, out ww, out seq); + + //대상파일을 설정한다. + try + { + var fileName = ""; + if (seq.Length > 2) + { + fileName = System.IO.Path.Combine(this.dataPath, "Count", ww, seq.Substring(0, 2), seq + ".xml"); + } + else + fileName = System.IO.Path.Combine(this.dataPath, "Count", ww, seq + ".xml"); + + return UpdateCount(fileName, DataMatrix, count); + } + catch (Exception ex) + { + Pub.log.AddE("UpdateCountDM(" + DataMatrix + ") " + ex.Message); + return false; + } + } + + public enum eCountTarget + { + Year = 0, + Month, + Day + } + + + /// + /// 전체수량을 업데이트 합니다. + /// + public void AddTotalCount(UInt32 New, UInt32 Good, UInt32 Over, UInt32 Err, UInt32 Empty, string modelName) + { + AddTotalCount(eCountTarget.Year, New, Good, Over, Err, Empty, ""); + AddTotalCount(eCountTarget.Month, New, Good, Over, Err, Empty, ""); + AddTotalCount(eCountTarget.Day, New, Good, Over, Err, Empty, ""); + + //모델별로 추가 기록을 해준다 + if (modelName != "") + { + AddTotalCount(eCountTarget.Year, New, Good, Over, Err, Empty, modelName); + AddTotalCount(eCountTarget.Month, New, Good, Over, Err, Empty, modelName); + AddTotalCount(eCountTarget.Day, New, Good, Over, Err, Empty, modelName); + } + + //기존값에 해당값을 누적만 시킨다. + } + private void AddTotalCount(eCountTarget target, UInt32 New, UInt32 good, UInt32 Over, UInt32 Err, UInt32 Empty, string modelName) + { + DateTime dt = DateTime.Now; + var filename = ""; + if (target == eCountTarget.Year) + { + filename = System.IO.Path.Combine(this.dataPath, "Count", + dt.Year.ToString("0000"), "count.xml"); + } + else if (target == eCountTarget.Month) + { + filename = System.IO.Path.Combine(this.dataPath, "Count", + dt.Year.ToString("0000"), + dt.Month.ToString("00"), "count.xml"); + } + else if (target == eCountTarget.Day) + { + filename = System.IO.Path.Combine(this.dataPath, "Count", + dt.Year.ToString("0000"), + dt.Month.ToString("00"), + dt.Day.ToString("00"), "count.xml"); + } + + var keyname = modelName == "" ? "userdata" : modelName; + + //파일이 없다면 생성한다 + var fi = new System.IO.FileInfo(filename); + if (fi.Directory.Exists == false) fi.Directory.Create(); + var xml = new arUtil.XMLHelper(fi.FullName); + if (xml.Exist() == false) xml.CreateFile(); + + var str_new = xml.get_Data(keyname,"cnt_new"); + var str_good = xml.get_Data(keyname, "cnt_good"); + var str_over = xml.get_Data(keyname, "cnt_over"); + var str_empty = xml.get_Data(keyname, "cnt_empty"); + var str_err = xml.get_Data(keyname, "cnt_error"); + if (str_new == "") str_new = "0"; + if (str_good == "") str_good = "0"; + if (str_over == "") str_over = "0"; + if (str_empty == "") str_empty = "0"; + if (str_err == "") str_err = "0"; + + var cnt_New = UInt32.Parse(str_new); + var cnt_good = UInt32.Parse(str_good); + var cnt_Over = UInt32.Parse(str_over); + var cnt_Empty = UInt32.Parse(str_empty); + var cnt_Err = UInt32.Parse(str_err); + + //기존수량에 누적 + cnt_New += New; + cnt_good += good; + cnt_Over += Over; + cnt_Empty += Empty; + cnt_Err += Err; + + //값을 더해서 다시 기록해준다. + xml.set_Data(keyname, "cnt_new", (cnt_New).ToString()); + xml.set_Data(keyname, "cnt_good", cnt_good.ToString()); + xml.set_Data(keyname, "cnt_over", cnt_Over.ToString()); + xml.set_Data(keyname, "cnt_empty", cnt_Empty.ToString()); + xml.set_Data(keyname, "cnt_error", cnt_Err.ToString()); + string msg; + xml.Save(out msg); + } + + public struct eCountData + { + public UInt32 NewCount; + public UInt32 GoodCount; + public UInt32 OverCount; + public UInt32 EmptyCount; + public UInt32 ErrorCount; + public UInt32 TotalCount + { + get + { + return NewCount + GoodCount + OverCount + EmptyCount + ErrorCount; + } + } + public void clear() + { + NewCount = 0; + GoodCount = 0; + OverCount = 0; + EmptyCount = 0; + ErrorCount = 0; + } + } + + public eCountData ReadTotalCount(eCountTarget target,string modelName) + { + var cnt = new eCountData(); + cnt.clear(); + + DateTime dt = DateTime.Now; + var fi = ""; + if (target == eCountTarget.Year) + { + fi = System.IO.Path.Combine(this.dataPath, "Count", + dt.Year.ToString("0000"), "count.xml"); + } + else if (target == eCountTarget.Month) + { + fi = System.IO.Path.Combine(this.dataPath, "Count", + dt.Year.ToString("0000"), + dt.Month.ToString("00"), "count.xml"); + } + else if (target == eCountTarget.Day) + { + fi = System.IO.Path.Combine(this.dataPath, "Count", + dt.Year.ToString("0000"), + dt.Month.ToString("00"), + dt.Day.ToString("00"), "count.xml"); + } + + var appkey = modelName == "" ? "userdata" : modelName; + + //년도데이터가없다면 처리안함 + if (System.IO.File.Exists(fi)) + { + var xmlYear = new arUtil.XMLHelper(fi); + var str_new = xmlYear.get_Data(appkey,"cnt_new"); + var str_good = xmlYear.get_Data(appkey, "cnt_good"); + var str_over = xmlYear.get_Data(appkey, "cnt_over"); + var str_empty = xmlYear.get_Data(appkey, "cnt_empty"); + var str_err = xmlYear.get_Data(appkey, "cnt_error"); + + if (str_new == "") str_new = "0"; + if (str_good == "") str_good = "0"; + if (str_over == "") str_over = "0"; + if (str_empty == "") str_empty = "0"; + if (str_err == "") str_err = "0"; + + cnt.NewCount = UInt32.Parse(str_new); + cnt.GoodCount = UInt32.Parse(str_good); + cnt.OverCount = UInt32.Parse(str_over); + cnt.EmptyCount = UInt32.Parse(str_empty); + cnt.ErrorCount = UInt32.Parse(str_err); + } + + return cnt; + } + + //해다 자료가 있다면 수량을 올려주고, 그렇지 않다면 파일을 생성해준다. + private Boolean UpdateCount(string fileName, string DataMatrix, int count = 1) + { + var fi = new System.IO.FileInfo(fileName); + + try + { + arUtil.XMLHelper xml = new arUtil.XMLHelper(fileName); + var newCount = count; + if (fi.Exists == false) + { + //신규이다 + if (fi.Directory.Exists == false) fi.Directory.Create(); + + //생성해서 추가한다 + xml.CreateFile(); + xml.set_Data("id", DataMatrix); + newCount = 2; + } + else + { + //기존에 있으므로 수량을 읽어서 증가시킨다. + int curCnt; + var cntStr = xml.get_Data("count"); + if (int.TryParse(cntStr, out curCnt) == false) + { + curCnt = 2; + Pub.log.AddE("기존 사용수량 읽기 실패 카운트문자=" + cntStr + "기본값(1)으로 설정"); + } + newCount = curCnt + newCount; + } + xml.set_Data("count", newCount.ToString()); + + //이수량입력되는 시점의 데이터를 기록한다 200117 + string saveMssage; + xml.set_Data("History" + newCount.ToString("000"), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); + xml.Save(out saveMssage); + + LastFileName = fileName; + return true; + } + catch + { + return false; + } + } + public int GetCount(string DataMatrix) + { + if (DataMatrix == "") return 0; + if (DataMatrix.Length > 20) DataMatrix = DataMatrix.Substring(0, 20); + + string ww, seq; + Util.splitID(DataMatrix, out ww, out seq); + if (ww == "") + { + Pub.log.AddAT("데이터매트릭스 값 오류로인해 최대값을 반환함 dm=" + DataMatrix + ",ww=" + ww.ToString() + ",seq=" + seq.ToString()); + return Pub.Result.vModel.LimitCount; + } + + //대상파일을 설정한다. + var fileName = ""; + try + { + if (seq.Length > 2) + { + fileName = System.IO.Path.Combine(this.dataPath, "Count", ww, seq.Substring(0, 2), seq + ".xml"); + } + else + fileName = System.IO.Path.Combine(this.dataPath, "Count", ww, seq + ".xml"); + } + catch (Exception ex) + { + Pub.log.AddE(ex.Message); + fileName = ""; + } + + if (fileName.Trim() == "") + { + Pub.log.AddE("수량확인불가 파일명 실패 내용: " + DataMatrix); + return Pub.Result.vModel.LimitCount; + } + + var fi = new System.IO.FileInfo(fileName); + + try + { + arUtil.XMLHelper xml = new arUtil.XMLHelper(fileName); + if (fi.Exists == false) + { + return 1; + } + else + { + //기존에 있으므로 수량을 읽어서 증가시킨다. + int curCnt; + var cntStr = xml.get_Data("count"); + if (int.TryParse(cntStr, out curCnt) == false) + { + curCnt = 1; + Pub.log.AddE("기존 사용수량 읽기 실패 카운트문자=" + cntStr + "기본값(1)으로 설정"); + } + return curCnt; + } + } + catch (Exception ex) + { + Pub.log.AddE("db count error:getcount:" + ex.Message); + return 1; + } + } + + /// + /// 지정된 파일의 모든 내용을 읽어서 DataTable 로 반환합니다. + /// + /// + /// + public Dictionary GetDatas(int sYear, int sWorkWeek, int eYear, int eWorkWeek, string searchDataMatrix = "") + { + var retval = new Dictionary(); + //모든파일을 대상으로한다. + + List retfiles = new List(); + + //날짜사이의 모든 파일을 대상으로해야함 + int sy = sYear; + int ey = eYear; + int sw = sWorkWeek; + int ew = eWorkWeek; + + int eym = ey * 100 + ew; + int sym = sy * 100 + sw; + + Boolean endtast = false; + for (int y = sy; y <= ey; y++) + { + var yPath = System.IO.Path.Combine(dataPath, "Count", y.ToString("0000")); + if (System.IO.Directory.Exists(yPath) == false) continue; + + for (int w = 1; w <= 50; w++) + { + var ym = y * 100 + w; + if (ym == eym) endtast = true; //마지막 날짜이다. + if (ym < sym) continue; //이전 WW는 넘어간다 + + var path = new System.IO.DirectoryInfo(System.IO.Path.Combine(yPath, w.ToString("00"))); + if (path.Exists == false) continue; //경로가 없다면 처리하지 않음 + + //검색할 파일 혹은 조건을 생성 + var searchFileName = (searchDataMatrix == "") ? "*.xml" : (searchDataMatrix + ".xml"); + + var files = path.GetFiles(searchFileName, System.IO.SearchOption.TopDirectoryOnly); + foreach (var file in files) + { + try + { + var xml = new arUtil.XMLHelper(file.FullName); + var id = xml.get_Data("id"); + int curCnt; + var cntStr = xml.get_Data("count"); + if (int.TryParse(cntStr, out curCnt) == false) + { + curCnt = 1; + Pub.log.AddE("기존 사용수량 읽기 실패 카운트문자=" + cntStr + "기본값(1)으로 설정"); + } + retval.Add(id, curCnt); + } + catch (Exception ex) + { + Pub.log.AddE("database count getdata" + ex.Message); + } + } + + if (endtast) + break; // TODO: might not be correct. Was : Exit For + } + if (endtast) + break; // TODO: might not be correct. Was : Exit For + } + return retval; + } + + } +} diff --git a/Handler/Project_form2/Manager/DatabaseManagerHistory.cs b/Handler/Project_form2/Manager/DatabaseManagerHistory.cs new file mode 100644 index 0000000..896a23a --- /dev/null +++ b/Handler/Project_form2/Manager/DatabaseManagerHistory.cs @@ -0,0 +1,333 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Project.Manager +{ + //public class DatabaseManagerHistory + //{ + // /// + // /// 최종파일 + // /// + // private String LastFileName; + // // private DataSet1.ResultDataDataTable dt; + // private string baseDirName = "History"; + + // /// + // /// 파일디비초기화작업(클라이언트 갯수만큼 버퍼를 확보한다) + // /// + // public DatabaseManagerHistory(string basedirbname = "History") + // { + // LastFileName = string.Empty; + // //dt = new DataSet1.ResultDataDataTable(); + // baseDirName = basedirbname; + // } + + // /// + // /// JOB데이터를 작업기록에 추가한다 + // /// + // /// + // /// + // public Boolean Add(Class.JobData job) + // { + // //작업기록은 별도 xml 에 데이터를 넣는다 + // var newdr = this.dt.NewResultDataRow(); + + + // newdr.model_motion = Pub.Result.mModel.Title; + // newdr.model_device = Pub.Result.vModel.Title; + // newdr.time_jobs = job.JobStart; + // newdr.time_jobe = job.JobEnd; + // newdr.runtime_job = job.JobRun.TotalSeconds; + + // newdr.info_filename = string.Empty; //이 값을 파일불러올떄 자동생성됨 + + // newdr.info_message = job.Message; + // newdr.info_imagel = job.VisionData.FileNameL; + // newdr.info_imageu = job.VisionData.FileNameU; + // newdr.info_portpos = job.PortPos; + // newdr.info_printpos = job.PrintPos; + // newdr.info_angle = job.VisionData.Angle; + // newdr.info_inputraw = job.VisionData.QRInputRaw; + // newdr.info_outputraw = job.VisionData.QROutRaw; + // newdr.info_rid = job.VisionData.RID; + // newdr.info_sid = job.VisionData.SID; + // newdr.info_lot = job.VisionData.VLOT; + // newdr.info_mfgdate = job.VisionData.MFGDATE; + // newdr.info_manu = job.VisionData.MANU; + // if (job.VisionData.QTY.isEmpty()) newdr.info_qty = -1; + // else newdr.info_qty = int.Parse(job.VisionData.QTY); + + // this.dt.AddResultDataRow(newdr); + // try + // { + // Flush(); //파일에 실제저장한다. + // return true; + // } + // catch (Exception ex) + // { + // Pub.log.AddE("history data add" + ex.Message); + // return false; + // } + // } + + // //해당 결과를 버퍼에 추가한다. + // public Boolean Add(DataSet1.ResultDataRow dataRow, Boolean autoFlush = false) + // { + // //입력된 자료를 복사해서 버퍼에 넣는다. + // var newdr = this.dt.NewResultDataRow(); + // foreach (string col in getDataColumnList()) + // { + // if (col.ToLower() == "idx") continue; + // newdr[col] = dataRow[col]; + // } + // this.dt.AddResultDataRow(newdr); + + // try + // { + // Flush(); //파일에 실제저장한다. + // return true; + // } + // catch (Exception ex) + // { + // Pub.log.AddE("history data add" + ex.Message); + // return false; + // } + + // } + + // /// + // /// 신규파일을 생성합니다. + // /// + // /// + // void MakeFile(string filename) + // { + // //파일이없다면 헤더를 만들어준다. + // var cols = getDataColumnList(); + // var headerstr = string.Join("\t", cols); + // System.IO.File.WriteAllText(filename, headerstr, System.Text.Encoding.UTF8); + // } + + // /// + // /// 저장해야할 컬럼명을 반환한다.(idx는 제외한다) + // /// + // /// + // public string[] getDataColumnList() + // { + // //저장하고자하는 순서를 미리 지정한다.(지정안된 자료는 알아서 저장된다) + // string[] reserveCols = new string[] { }; + // List cols = new List(); + // cols.AddRange(reserveCols); + + // for (int i = 0; i < this.dt.Columns.Count; i++) + // { + // string colname = dt.Columns[i].ColumnName; + // if (colname.ToLower() == "idx") continue; //제외한다 + // if (reserveCols.Contains(colname)) continue; + // cols.Add(colname); + // } + // return cols.ToArray(); + // } + + // public string GetFileName(DateTime time_jobs, string jobseqdate, string jobseqno) + // { + // var saveFileName = System.IO.Path.Combine(Pub.setting.Path_Data, baseDirName, + // time_jobs.Year.ToString("0000"), + // time_jobs.Month.ToString("00"), + // time_jobs.Day.ToString("00"), + // string.Format("{0}_{1}_{2}", jobseqdate, jobseqno, time_jobs.ToString("HHmmss"))); + // return saveFileName; + // } + + // public void Flush() + // { + // //데이터가없다면 처리하지 않음 + // if (this.dt.Rows.Count < 1) return; + + // //쓸데이터를 모두 버퍼에 밀어넣는다. + + // foreach (DataSet1.ResultDataRow dr in dt.Rows) + // { + // if (dr.RowState == System.Data.DataRowState.Deleted || dr.RowState == System.Data.DataRowState.Detached) continue; + + // //lot date check + // //if (dr.time_lotstart.Year == 1982) dr.time_lotstart = DateTime.Now; + + // //작업이 종료된 시간을 기준으로 파일을 생성한다. + // // if (dr.info_lot.isEmpty()) dr.info_lot = "NoLot"; + // //if (dr.info_stripid.isEmpty()) dr.info_stripid = "S" + dr.time_pcbstart.ToString("yyyyMMddHHmmss"); + + // //string curdatestr = string.Format("{0:0000}\\{1:00}\\{2:00}\\{3}\\{4}", + // // dr.time_lotstart.Year, dr.time_lotstart.Month, dr.time_lotstart.Day, dr.info_lot,dr.info_stripid); + + // //작업이 시작한 시간으로 데이터 파일을 저장해야함 + // var saveFileName = System.IO.Path.Combine(Pub.setting.Path_Data, baseDirName, + // dr.time_jobs.Year.ToString("0000"), + // dr.time_jobs.Month.ToString("00"), + // dr.time_jobs.Day.ToString("00"), + // string.Format("{0}.tab", dr.time_jobs.ToString("HH"))); + + // dr.info_filename = saveFileName; + // dr.EndEdit(); + + // //저장할 파일 체크 + // System.IO.FileInfo fi = new System.IO.FileInfo(saveFileName); + + // //폴더새엇ㅇ + // if (!fi.Directory.Exists) fi.Directory.Create(); + + // //파일없는경우 헤더생성 + // if (!fi.Exists) MakeFile(fi.FullName); + + // //파일에기록 + // try + // { + // //general info + // //파일의 내용을 탭으로 분리되게 저장한다 + // //var xml = new arUtil.XMLHelper(fi.FullName); + // var cols = this.getDataColumnList(); + // List buffer = new List(); + // foreach (var col in cols) + // { + // var dc = dt.Columns[col]; + // if (dc.ColumnName.ToLower() == "idx") continue; + // if (dc.ColumnName.ToLower() == "info_filename") continue; + // var colname = dc.ColumnName.Split('_'); + // var data = dr[dc.ColumnName]; + // if (colname[0].ToLower() == "time") + // { + // string date_value = ""; + // if (data != null && data != DBNull.Value) + // date_value = ((DateTime)data).ToString("yyyy-MM-dd HH:mm:ss"); + // buffer.Add(date_value); //xml.set_Data(colname[0], colname[1], date_value); + // } + // else + // { + // if (data != null && data != DBNull.Value) + // buffer.Add(data.ToString());// xml.set_Data(colname[0], colname[1], data.ToString()); + // else + // buffer.Add("");// xml.set_Data(colname[0], colname[1], ""); + // } + // } + // string savemsg; + // // xml.Save(out savemsg); + // System.IO.File.AppendAllText(fi.FullName, "\r\n" + string.Join("\t", buffer), System.Text.Encoding.UTF8); + // } + // catch (Exception ex) + // { + // Pub.log.AddE("DBMAN:FLUSH:" + ex.Message); + // return; + // } + + // Pub.log.Add("DATABASE", string.Format("◆ Data Saved : {0}", fi.Name)); + // } + + // dt.Clear(); + // dt.AcceptChanges(); + // } + + // /// + // /// 지정된 파일의 모든 내용을 읽어서 DataTable 로 반환합니다. + // /// + // /// + // /// + // public DataSet1.ResultDataDataTable GetDatas(List files) + // { + // DataSet1.ResultDataDataTable retval = new DataSet1.ResultDataDataTable(); + // //모든파일을 대상으로한다. + + // foreach (var file in files) + // { + // var newdr = retval.NewResultDataRow(); + + // arUtil.XMLHelper xml = new arUtil.XMLHelper(file.FullName); + // foreach (System.Data.DataColumn col in retval.Columns) + // { + // if (col.ColumnName.ToLower() == "idx") continue; + // if (col.ColumnName.ToLower() == "filename") continue; + // var colbuf = col.ColumnName.Split('_'); + + // var readstr = xml.get_Data(colbuf[0], colbuf[1]); + // if (col.DataType == typeof(DateTime)) + // { + // if (readstr != "") + // { + // DateTime dt; + // if (DateTime.TryParse(readstr, out dt)) + // newdr[col.ColumnName] = dt; + // } + // } + // else + // { + // if (readstr.isEmpty() == false) + // newdr[col.ColumnName] = readstr; + // } + // } + // newdr.info_filename = file.FullName; + // retval.AddResultDataRow(newdr); + // } + + + // retval.AcceptChanges(); + // return retval; + // } + + + + // /// + // /// 지정된 기간사이의 파일명을 반환합니다. + // /// + // /// 검색시작일(시간은 적용안함) + // /// 검색종료일(시간은 적용안함) + // /// 검색필터 + // /// 장치번호 + // /// 검색바코드 + // /// + // public List Getfiles(DateTime sdate, DateTime edate) + // { + // List retfiles = new List(); + // //날짜사이의 모든 파일을 대상으로해야함 + + // string sd = sdate.ToShortDateString(); + // string ed = edate.ToShortDateString(); + + // int sy = sdate.Year; + // int ey = edate.Year; + // int sm = sdate.Month; + // int em = edate.Month; + // int sday = sdate.Day; + // int eday = edate.Day; + + // Boolean endtast = false; + // for (int y = sy; y <= ey; y++) + // { + // for (int m = 1; m <= 12; m++) + // { + // for (int d = 1; d <= 31; d++) + // { + // string daystr = string.Format("{0:0000}-{1:00}-{2:00}", y, m, d); + // if (ed == daystr) endtast = true; //마지막 날짜이다. + + // if (y == sy && m < sm) continue; //시작년도 시작월 이전의 자료라면 넘어간다. + // else if (y == sy && m == sm && d < sday) continue; //시작년도 시작월 시작일 이전의 자료라면 넘어간다. + + // var path = new System.IO.DirectoryInfo( + // System.IO.Path.Combine(Pub.setting.Path_Data, baseDirName, daystr.Replace("-", "\\"))); + // if (path.Exists == false) continue; + // var files = path.GetFiles("*.xml", System.IO.SearchOption.TopDirectoryOnly); + // if (files != null && files.Length > 0) retfiles.AddRange(files.OrderBy(t => t.Name).ToList()); + + // if (endtast) + // break; // TODO: might not be correct. Was : Exit For + // } + // if (endtast) + // break; // TODO: might not be correct. Was : Exit For + // } + // if (endtast) + // break; // TODO: might not be correct. Was : Exit For + // } + // return retfiles; + // } + //} +} diff --git a/Handler/Project_form2/Manager/DatabaseManagerSIDHistory.cs b/Handler/Project_form2/Manager/DatabaseManagerSIDHistory.cs new file mode 100644 index 0000000..b5353e3 --- /dev/null +++ b/Handler/Project_form2/Manager/DatabaseManagerSIDHistory.cs @@ -0,0 +1,276 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Project.Manager +{ + public class DatabaseManagerSIDHistory + { + /// + /// 최종파일 + /// + private String LastFileName; + private DataSet1.SIDHistoryDataTable dt; + private string baseDirName; + + /// + /// 파일디비초기화작업(클라이언트 갯수만큼 버퍼를 확보한다) + /// + public DatabaseManagerSIDHistory(string basedirbname = "HistorySID") + { + LastFileName = string.Empty; + dt = new DataSet1.SIDHistoryDataTable(); + baseDirName = basedirbname; + } + + //해당 결과를 버퍼에 추가한다. + public Boolean Add(DataSet1.SIDHistoryRow dataRow, Boolean autoFlush = false) + { + //입력된 자료를 복사해서 버퍼에 넣는다. + var newdr = this.dt.NewSIDHistoryRow(); + foreach (string col in getDataColumnList()) + { + if (col.ToLower() == "idx") continue; + newdr[col] = dataRow[col]; + } + this.dt.AddSIDHistoryRow(newdr); + + try + { + Flush(); //파일에 실제저장한다. + return true; + } + catch (Exception ex) + { + Pub.log.AddE("history data add" + ex.Message); + return false; + } + + } + + /// + /// 신규파일을 생성합니다. + /// + /// + void MakeFile(string filename) + { + //파일이없다면 헤더를 만들어준다. + arUtil.XMLHelper xml = new arUtil.XMLHelper(filename); + xml.CreateFile(); + } + + /// + /// 저장해야할 컬럼명을 반환한다.(idx는 제외한다) + /// + /// + public string[] getDataColumnList() + { + //저장하고자하는 순서를 미리 지정한다.(지정안된 자료는 알아서 저장된다) + string[] reserveCols = new string[] { }; + List cols = new List(); + cols.AddRange(reserveCols); + + for (int i = 0; i < this.dt.Columns.Count; i++) + { + string colname = dt.Columns[i].ColumnName; + if (reserveCols.Contains(colname)) continue; + cols.Add(colname); + } + return cols.ToArray(); + } + + public string GetFileName(string jobseqdate, string jobseqno, string sid) + { + var saveFileName = System.IO.Path.Combine(Pub.setting.Path_Data, baseDirName, + jobseqdate.Substring(0, 4), + jobseqdate.Substring(4, 2), + jobseqdate.Substring(6, 2), + string.Format("{0}_{1}_{2}", jobseqdate, jobseqno, sid)); + return saveFileName; + } + + public void Flush() + { + //데이터가없다면 처리하지 않음 + if (this.dt.Rows.Count < 1) return; + + //쓸데이터를 모두 버퍼에 밀어넣는다. + + foreach (DataSet1.SIDHistoryRow dr in dt.Rows) + { + if (dr.RowState == System.Data.DataRowState.Deleted || dr.RowState == System.Data.DataRowState.Detached) continue; + + //lot date check + //if (dr.time_lotstart.Year == 1982) dr.time_lotstart = DateTime.Now; + + //작업이 종료된 시간을 기준으로 파일을 생성한다. + // if (dr.info_lot.isEmpty()) dr.info_lot = "NoLot"; + //if (dr.info_stripid.isEmpty()) dr.info_stripid = "S" + dr.time_pcbstart.ToString("yyyyMMddHHmmss"); + + //string curdatestr = string.Format("{0:0000}\\{1:00}\\{2:00}\\{3}\\{4}", + // dr.time_lotstart.Year, dr.time_lotstart.Month, dr.time_lotstart.Day, dr.info_lot,dr.info_stripid); + + //작업이 시작한 시간으로 데이터 파일을 저장해야함 + var saveFileName = System.IO.Path.Combine(Pub.setting.Path_Data, baseDirName, + dr.seqdate.Substring(0, 4), + dr.seqdate.Substring(4, 2), + dr.seqdate.Substring(6, 2), + string.Format("{0}_{1}_{2}.csv", dr.seqdate, dr.seqno, dr.sid)); + + + dr.EndEdit(); + + //저장할 파일 체크 + System.IO.FileInfo fi = new System.IO.FileInfo(saveFileName); + + //폴더새엇ㅇ + if (!fi.Directory.Exists) fi.Directory.Create(); + + //파일없는경우 헤더생성 + // if (!fi.Exists) MakeFile(fi.FullName); + + //파일에기록 + try + { + //general info + //데이터는 csv 형태로 저장한다 + var line = string.Format("{2},{0},{1},{3}\r\n", dr.rid, dr.qty, dr.time.ToString("yyyy-MM-dd HH:mm:ss"), dr.rev); + System.IO.File.AppendAllText(fi.FullName, line, System.Text.Encoding.UTF8); + } + catch (Exception ex) + { + Pub.log.AddE("DBMAN:FLUSH:" + ex.Message); + return; + } + + Pub.log.Add("DATABASE", string.Format("◆ Data Saved : {0}", fi.Name)); + } + + dt.Clear(); + dt.AcceptChanges(); + } + + + /// + /// 지정된 파일의 모든 내용을 읽어서 DataTable 로 반환합니다. + /// + /// + /// + public DataSet1.SIDHistoryDataTable GetDatas(System.IO.FileInfo[] files) + { + DataSet1.SIDHistoryDataTable retval = new DataSet1.SIDHistoryDataTable(); + //모든파일을 대상으로한다. + + if (files != null && files.Count() > 0) + { + foreach (var file in files) + { + + + var lines = System.IO.File.ReadAllLines(file.FullName, System.Text.Encoding.UTF8); + foreach (var line in lines) + { + var onlyName = file.Name.Replace(file.Extension, "").Split('_'); + if (String.IsNullOrEmpty(line.Trim())) continue; + var buf = line.Split(','); + + var newdr = retval.NewSIDHistoryRow(); + newdr.seqdate = onlyName[0]; + newdr.seqno = onlyName[1]; + newdr.sid = onlyName[2]; + + newdr.time = DateTime.Parse(buf[0]); + newdr.rid = buf[1]; + + int qty, rev; + if (int.TryParse(buf[2], out qty)) newdr.qty = qty; + else newdr.qty = 0; + if (buf.Length > 3 && int.TryParse(buf[3], out rev)) newdr.rev = rev; + else newdr.rev = 0; + + //newdr.qty = int.Parse(buf[2]); + //newdr.rev = int.Parse(buf[3]); + + retval.AddSIDHistoryRow(newdr); + } + + } + + } + + + retval.AcceptChanges(); + return retval; + } + + public System.IO.FileInfo[] Getfiles(string seqdate, string seqno) + { + var path = System.IO.Path.Combine(Pub.setting.Path_Data, baseDirName, + seqdate.Substring(0, 4), + seqdate.Substring(4, 2), + seqdate.Substring(6, 2)); + + var di = new System.IO.DirectoryInfo(path); + if (di.Exists == false) return null; + else return di.GetFiles(string.Format("{0}_{1}_*.csv", seqdate, seqno)); + } + + + + /// + /// 지정된 기간사이의 파일명을 반환합니다. + /// + /// 검색시작일(시간은 적용안함) + /// 검색종료일(시간은 적용안함) + /// 검색필터 + /// 장치번호 + /// 검색바코드 + /// + //public List Getfiles(DateTime sdate, DateTime edate) + //{ + // List retfiles = new List(); + // //날짜사이의 모든 파일을 대상으로해야함 + + // string sd = sdate.ToShortDateString(); + // string ed = edate.ToShortDateString(); + + // int sy = sdate.Year; + // int ey = edate.Year; + // int sm = sdate.Month; + // int em = edate.Month; + // int sday = sdate.Day; + // int eday = edate.Day; + + // Boolean endtast = false; + // for (int y = sy; y <= ey; y++) + // { + // for (int m = 1; m <= 12; m++) + // { + // for (int d = 1; d <= 31; d++) + // { + // string daystr = string.Format("{0:0000}-{1:00}-{2:00}", y, m, d); + // if (ed == daystr) endtast = true; //마지막 날짜이다. + + // if (y == sy && m < sm) continue; //시작년도 시작월 이전의 자료라면 넘어간다. + // else if (y == sy && m == sm && d < sday) continue; //시작년도 시작월 시작일 이전의 자료라면 넘어간다. + + // var path = new System.IO.DirectoryInfo( + // System.IO.Path.Combine(Pub.setting.Path_Data, baseDirName, daystr.Replace("-", "\\"))); + // if (path.Exists == false) continue; + // var files = path.GetFiles("*.csv", System.IO.SearchOption.TopDirectoryOnly); + // if (files != null && files.Length > 0) retfiles.AddRange(files.OrderBy(t => t.Name).ToList()); + + // if (endtast) + // break; // TODO: might not be correct. Was : Exit For + // } + // if (endtast) + // break; // TODO: might not be correct. Was : Exit For + // } + // if (endtast) + // break; // TODO: might not be correct. Was : Exit For + // } + // return retfiles; + //} + } +} diff --git a/Handler/Project_form2/Manager/ModelManager.cs b/Handler/Project_form2/Manager/ModelManager.cs new file mode 100644 index 0000000..dc66415 --- /dev/null +++ b/Handler/Project_form2/Manager/ModelManager.cs @@ -0,0 +1,463 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.IO; + +namespace Project.Manager +{ + public class ModelManager + { + public DataSet1 dataSet; + readonly private string fn_ModelV; + readonly private string fn_ModelM; + + public ModelManager(string fnVision, string fnMachine) + { + this.fn_ModelV = fnVision; + this.fn_ModelM = fnMachine; + dataSet = new DataSet1(); + } + + public void LoadModelV() + { + //set filename + string filename = fn_ModelV; + int lineCount = 0; + string buffer = string.Empty; + + //read file + var fi = new FileInfo(filename); + if (fi.Exists == false) + { + Pub.log.AddE("▣ No Load Model(Vision)-Data)"); + return; + } + + lineCount = 0; + try + { + buffer = System.IO.File.ReadAllText(fi.FullName, System.Text.Encoding.Default); + } + catch (Exception ex) + { + buffer = string.Empty; + Pub.log.AddE(string.Format("Model(Vision) Error File={0},Message={1}", filename, ex.Message)); + return; + } + + //존재하는 컬럼확인을 위해 미리 저장함 + List dbCols = new List(); + foreach (System.Data.DataColumn col in dataSet.Model.Columns) + dbCols.Add(col.ColumnName); + + List Cols = new List(); + foreach (string items in buffer.Split('\r')) + { + lineCount += 1; + var line = items.Replace("\r", "").Replace("\n", ""); + if (line.Trim() == "" || line.StartsWith("ver")) continue; //빈줄과 버젼표기는 제거한다. + string[] buf = line.Split(','); + + //첫줄에는 컬럼명이 들어있다. + if (Cols.Count < 1) + { + foreach (string colname in buf) + { + if (colname.isEmpty()) continue; //비어있는값은 처리하지 않는다. + Cols.Add(colname); + } + continue; + } + + //데이터를 각 컬럼에 넣는다. + DataSet1.ModelRow dr = dataSet.Model.NewModelRow(); + + //비젼속성은 컬럼명이 v_로 시작한다. + for (int i = 0; i < Cols.Count; i++) //0번은 Mccode이므로 제외한다. + { + try + { + if (dbCols.IndexOf(Cols[i]) == -1) continue; //존재하지 않는 컬럼은 제외한다. + if (Cols[i].ToUpper() == "IDX") continue; + dr[Cols[i]] = buf[i]; + } + catch (Exception ex) + { + Pub.log.AddE("Model(Vision) Load Error:" + ex.Message); + } + } + + //if (dr.TagBarcode.isEmpty()) dr.Delete(); + try + { + if (dr.RowState == System.Data.DataRowState.Detached) dataSet.Model.AddModelRow(dr);//신규자료일경우에는 추가함 + else if (dr.RowState != System.Data.DataRowState.Deleted) dr.EndEdit(); + } + catch (Exception ex) + { + Pub.log.AddE("Load Model(Vision) file" + ex.Message); + } + } + + dataSet.Model.AcceptChanges(); + } + public void LoadModelM() + { + //set filename + string filename = fn_ModelM; + int lineCount = 0; + string buffer = string.Empty; + + //read file + var fi = new FileInfo(filename); + if (fi.Exists == false) + { + Pub.log.AddE("▣ No Load M/C Model-Data)"); + return; + } + + lineCount = 0; + try + { + buffer = System.IO.File.ReadAllText(fi.FullName, System.Text.Encoding.Default); + } + catch (Exception ex) + { + buffer = string.Empty; + Pub.log.AddE(string.Format("M/C ModelData Error File={0},Message={1}", filename, ex.Message)); + return; + } + + //존재하는 컬럼확인을 위해 미리 저장함 + List dbCols = new List(); + foreach (System.Data.DataColumn col in dataSet.MCModel.Columns) + dbCols.Add(col.ColumnName); + + List Cols = new List(); + foreach (string items in buffer.Split('\r')) + { + lineCount += 1; + var line = items.Replace("\r", "").Replace("\n", ""); + if (line.Trim() == "" || line.StartsWith("ver")) continue; //빈줄과 버젼표기는 제거한다. + string[] buf = line.Split('\t'); + + //첫줄에는 컬럼명이 들어있다. + if (Cols.Count < 1) + { + foreach (string colname in buf) + { + if (colname.isEmpty()) continue; //비어있는값은 처리하지 않는다. + Cols.Add(colname); + } + continue; + } + + //데이터를 각 컬럼에 넣는다. + var dr = dataSet.MCModel.NewMCModelRow(); + + //비젼속성은 컬럼명이 v_로 시작한다. + for (int i = 0; i < Cols.Count; i++) //0번은 Mccode이므로 제외한다. + { + try + { + if (dbCols.IndexOf(Cols[i]) == -1) continue; //존재하지 않는 컬럼은 제외한다. + // if (Cols[i].ToUpper() == "IDX") continue; + dr[Cols[i]] = buf[i]; + } + catch (Exception ex) + { + Pub.log.AddE("M/C Model Load Error:" + ex.Message); + } + } + + //if (dr.TagBarcode.isEmpty()) dr.Delete(); + try + { + if (dr.RowState == System.Data.DataRowState.Detached) dataSet.MCModel.AddMCModelRow(dr);//신규자료일경우에는 추가함 + else if (dr.RowState != System.Data.DataRowState.Deleted) dr.EndEdit(); + } + catch (Exception ex) + { + Pub.log.AddE("Load M/C Model Data file" + ex.Message); + } + } + + //자료중 보정 + foreach (var dr in this.dataSet.MCModel) + { + if (dr.IsSpeedAccNull()) dr.SpeedAcc = 100; + if (dr.IsSpeedDccNull()) dr.SpeedDcc = 0; + if (dr.IsSpeedNull()) dr.Speed = 50; + } + dataSet.Model.AcceptChanges(); + + } + + /// + /// project , model read from file + /// + public void Load() + { + //데이터셋 초기화 + if (dataSet == null) dataSet = new DataSet1(); + else dataSet.Clear(); + + //파일로부터 데이터를 읽어들인다. + this.LoadModelV(); + this.LoadModelM(); + this.dataSet.AcceptChanges(); + + int cnt2 = dataSet.Model.Rows.Count; + int cnt1 = dataSet.MCModel.Rows.Count; + Pub.log.AddI(string.Format("※ Model Manager : {0}/{1}", cnt1, cnt2)); + } + + public void Save() + { + this.dataSet.AcceptChanges(); + System.IO.DirectoryInfo di = new DirectoryInfo(modelPath); + if (!di.Exists) di.Create(); + SaveModelM(); + SaveModelV(); + } + + public string modelPath + { + get + { + return System.IO.Path.Combine(Util.CurrentPath, "Model"); + } + + } + + public void SaveModelM() + { + this.dataSet.MCModel.AcceptChanges(); + var data = new StringBuilder(); + data.AppendLine("ver\t" + "1"); //version + // data.Append("Title"); //첫열에는 Mccode를 넣는다. + + List cols = new List(); + //cols.AddRange(new string[] { "title","idx","pidx"}); + + foreach (System.Data.DataColumn col in this.dataSet.MCModel.Columns) + { + string colname = col.ColumnName.ToLower(); + if (cols.Contains(colname) == true) continue; //이미 존재하면 처리하지 않음 + // if (colname == "idx") continue; //기본열은 제외한다. + cols.Add(col.ColumnName); + } + + //열을 정렬해서 추가한다. + //var bb = cols.OrderBy(t => t); + for (int i = 0; i < cols.Count; i++) + { + var colname = cols[i]; + if (i > 0) data.Append("\t"); + data.Append(colname); + } + data.AppendLine(); + + //output data(글로벌 셋팅하고 MC코드값만 취한다) + foreach (var list in dataSet.MCModel.Rows) + { + var dr = list as DataSet1.MCModelRow; + //bb = cols.OrderBy(t => t); + for (int i = 0; i < cols.Count; i++) + { + var colname = cols[i]; + if (i > 0) data.Append("\t"); + + if (dr[colname] != DBNull.Value) data.Append(dr[colname].ToString()); + else if (dataSet.MCModel.Columns[colname].DataType == typeof(double) || + dataSet.MCModel.Columns[colname].DataType == typeof(Int32) || + dataSet.MCModel.Columns[colname].DataType == typeof(UInt32) || + dataSet.MCModel.Columns[colname].DataType == typeof(Single) || + dataSet.MCModel.Columns[colname].DataType == typeof(byte) || + dataSet.MCModel.Columns[colname].DataType == typeof(Boolean) || + dataSet.MCModel.Columns[colname].DataType == typeof(Int16) || + dataSet.MCModel.Columns[colname].DataType == typeof(UInt16)) + { + if (dataSet.MCModel.Columns[colname].DataType == typeof(Boolean)) data.Append("False"); + else data.Append("0"); + } + else data.Append(""); + } + data.AppendLine(); + } + try + { + var mfile = new System.IO.FileInfo(fn_ModelM); + var bakfile = new System.IO.FileInfo(System.IO.Path.Combine(mfile.Directory.FullName, "Backup", "m" + DateTime.Now.ToString("yyyyMMddHHmmss") + mfile.Extension)); + if (bakfile.Exists) bakfile.Delete(); + if (bakfile.Directory.Exists == false) bakfile.Directory.Create(); + if (mfile.Exists) System.IO.File.Copy(mfile.FullName, bakfile.FullName, true); + Pub.log.Add("model backup(motion) : " + bakfile.FullName); + + System.IO.File.WriteAllText(fn_ModelM, data.ToString(), System.Text.Encoding.Default); + Pub.log.AddAT("Save M/C Model Parameter - OK"); + } + catch (Exception ex) + { + Util.MsgE("M/C Model Save Error\r\n" + ex.Message); + Pub.log.AddE("M/C Model Save Error :: " + ex.Message); + } + } + + public void SaveModelV() + { + this.dataSet.Model.AcceptChanges(); + var data = new StringBuilder(); + data.AppendLine("ver,:" + "1"); //version + data.Append("Title"); //첫열에는 Mccode를 넣는다. + + List cols = new List(); + foreach (System.Data.DataColumn col in this.dataSet.Model.Columns) + { + string colname = col.ColumnName.ToLower(); + if (colname == "Memo" || colname == "idx") continue; //기본열은 제외한다. + cols.Add(col.ColumnName); + } + cols.Add("Memo"); + + //열을 정렬해서 추가한다. + var bb = cols.OrderBy(t => t); + foreach (string colname in bb) + data.Append("," + colname); + data.AppendLine(); + + //output data(글로벌 셋팅하고 MC코드값만 취한다) + foreach (var list in dataSet.Model.Select("isnull(Title,'') <> ''", "Title")) + { + var dr = list as DataSet1.ModelRow; + data.Append(dr.Title); //일반셋팅은 mccode 값 그대로 넣는다. + bb = cols.OrderBy(t => t); + foreach (string colname in bb) //지정된 열제목의 데이터를 가져온다. + { + data.Append(","); + if (dr[colname] != DBNull.Value) data.Append(dr[colname].ToString()); + else if (dataSet.Model.Columns[colname].DataType == typeof(double) || + dataSet.Model.Columns[colname].DataType == typeof(Int32) || + dataSet.Model.Columns[colname].DataType == typeof(UInt32) || + dataSet.Model.Columns[colname].DataType == typeof(Single) || + dataSet.Model.Columns[colname].DataType == typeof(byte) || + dataSet.Model.Columns[colname].DataType == typeof(Boolean) || + dataSet.Model.Columns[colname].DataType == typeof(Int16) || + dataSet.Model.Columns[colname].DataType == typeof(UInt16)) + { + if (dataSet.Model.Columns[colname].DataType == typeof(Boolean)) data.Append("False"); + else data.Append("0"); + } + else data.Append("0"); + } + data.AppendLine(); + } + try + { + //기존파일은 백업을 한다. + var mfile = new System.IO.FileInfo(fn_ModelV); + var bakfile = new System.IO.FileInfo(System.IO.Path.Combine(mfile.Directory.FullName, "Backup", "v" + DateTime.Now.ToString("yyyyMMddHHmmss") + mfile.Extension)); + if (bakfile.Exists) bakfile.Delete(); + if (bakfile.Directory.Exists == false) bakfile.Directory.Create(); + if (mfile.Exists) System.IO.File.Copy(mfile.FullName, bakfile.FullName, true); + Pub.log.Add("model backup(vision) : " + bakfile.FullName); + System.IO.File.WriteAllText(fn_ModelV, data.ToString(), System.Text.Encoding.Default); + Pub.log.AddAT("Save Model(Vision) Parameter - OK"); + } + catch (Exception ex) + { + Util.MsgE(" Model(Vision) Save Error\r\n" + ex.Message); + Pub.log.AddE(" Model(Vision) Save Error :: " + ex.Message); + } + } + + /// + /// 지정된 mccode 의 개체를 반환합니다. (없거나 중복일경우 mccode 가 비어있습니다) + /// + /// + /// + public DataSet1.MCModelRow GetDataM(string title) + { + if (title.isEmpty()) return null; + if (dataSet.Model == null || dataSet.MCModel.Rows.Count < 1) return null; + var datas = dataSet.MCModel.Where(t => t.Title == title).ToArray(); + if (datas.Length != 1) return null; + return datas[0]; + } + public DataSet1.ModelRow GetDataV(string title) + { + if (title.isEmpty()) return null; + if (dataSet.Model == null || dataSet.Model.Rows.Count < 1) return null; + var datas = dataSet.Model.Where(t => t.Title == title).ToArray(); + if (datas.Length != 1) return null; + return datas[0]; + } + /// + /// 0번 모델을 가져옵니다. + /// + /// + public DataSet1.MCModelRow GetDataM(int idx) + { + if (dataSet.MCModel == null || dataSet.MCModel.Rows.Count < 1) return null; + return dataSet.MCModel[idx]; + } + public DataSet1.ModelRow GetDataV(int idx) + { + if (dataSet.Model == null || dataSet.Model.Rows.Count < 1) return null; + return dataSet.Model[idx]; + } + public DataSet1.ModelRow GetDataVbyMidx(int midx) + { + if (dataSet.Model == null || dataSet.Model.Rows.Count < 1) return null; + return dataSet.Model.Where(t => t.Midx == midx).FirstOrDefault(); + } + public int GetMoelCountM + { + get + { + return this.dataSet.Model.Select("isnull(Title,'') <> '' ").Length; + } + } + public int GetMoelCountV + { + get + { + return this.dataSet.MCModel.Select("isnull(Title,'') <> '' ").Length; + } + } + + public Boolean AddData(DataSet1.ModelRow data) + { + if (data.Title.Trim() == "") return false; + var item = this.GetDataV(data.Title); + if (item != null) return false; //존재한다면 넘어감 + dataSet.Model.AddModelRow(data); + return true; + } + public Boolean AddData(DataSet1.MCModelRow data) + { + if (data.Title.Trim() == "") return false; + var item = this.GetDataM(data.Title); + if (item != null) return false; //존재한다면 넘어감 + dataSet.MCModel.AddMCModelRow(data); + return true; + } + public Boolean DeleteDataM(string _mccode) + { + var item = GetDataM(_mccode); + if (item == null) return false; //없는자료라면 넘어감 + dataSet.MCModel.RemoveMCModelRow(item); + return true; + } + public Boolean DeleteDataV(string _mccode) + { + var item = GetDataV(_mccode); + if (item == null) return false; //없는자료라면 넘어감 + dataSet.Model.RemoveModelRow(item); + return true; + } + + } + +} diff --git a/Handler/Project_form2/MethodExtentions.cs b/Handler/Project_form2/MethodExtentions.cs new file mode 100644 index 0000000..0d8daeb --- /dev/null +++ b/Handler/Project_form2/MethodExtentions.cs @@ -0,0 +1,243 @@ + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; + +namespace Project +{ + + + /// + /// generic method Extension + /// + public static class MethodExtensions + { + + //public static void SafeRaise(this Delegate evt, System.EventArgs e) + //{ + // if (evt == null) return; + + // foreach (Delegate singleCast in evt.GetInvocationList()) + // { + // var syncInvoke = singleCast.Target as ISynchronizeInvoke; + + // if (syncInvoke != null && syncInvoke.InvokeRequired) + // syncInvoke.BeginInvoke(singleCast, new object[] { e }); + // else + // singleCast.DynamicInvoke(e); + // } + //} + public static int toInt(this string param) + { + int a = 0; + int.TryParse(param, out a); + return a; + } + + public static string ToString(this System.Drawing.Rectangle rect) + { + return string.Format("X={0},Y={1},W={2},H={3}", rect.X, rect.Y, rect.Width, rect.Height); + } + public static string ToString(this System.Drawing.RectangleF rect) + { + return string.Format("X={0},Y={1},W={2},H={3}", rect.X, rect.Y, rect.Width, rect.Height); + } + + //public static void SetBGColor(this System.Windows.Forms.Label ctl,System.Drawing.Color color1) + //{ + // ctl.BackColor = System.Drawing.Color.Red; + //} + + /// + /// 0101이 반복되는 문자열 형태로 전환합니다. + /// + /// + /// + public static string BitString(this System.Collections.BitArray arr) + { + System.Text.StringBuilder sb = new System.Text.StringBuilder(); + for (int i = arr.Length; i > 0; i--) + sb.Append(arr[i - 1] ? "1" : "0"); + return sb.ToString(); + } + + /// + /// int 값으로 변환합니다. + /// + /// + /// + public static int ValueI(this System.Collections.BitArray arr) + { + byte[] buf = new byte[4]; + arr.CopyTo(buf, 0); + return BitConverter.ToInt32(buf, 0); + } + + /// + /// 숫자인지 검사합니다. + /// + /// + /// + public static bool IsNumeric(this string input) + { + double data; + return double.TryParse(input, out data); + //return Regex.IsMatch(input, @"^\d+$"); + } + + /// + /// isnullorempty 를 수행합니다. + /// + /// + /// + public static Boolean isEmpty(this string input) + { + if (input == null) return true; + if (string.IsNullOrWhiteSpace(input) || string.IsNullOrEmpty(input)) return true; + else return false; + } + + /// + /// default 인코딩을 사용하여 문자열로 반환합니다. + /// + /// + /// + public static string GetString(this Byte[] input) + { + return System.Text.Encoding.Default.GetString(input); + } + + /// + /// 16진수 문자열 형태로 반환합니다. + /// + /// + /// + public static string GetHexString(this Byte[] input) + { + System.Text.StringBuilder sb = new System.Text.StringBuilder(); + foreach (byte b in input) + sb.Append(" " + b.ToString("X2")); + return sb.ToString(); + } + + public static string Base64Encode(this string src) + { + string base64enc = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(src)); + return base64enc; + } + public static string Base64Decode(this string src) + { + var base64dec = Convert.FromBase64String(src); + return System.Text.Encoding.UTF8.GetString(base64dec); + } + public static string UrlPathEncode(this string src) + { + string data = System.Web.HttpUtility.UrlPathEncode(src); + return data; + } + public static string UrlEncode(this string src) + { + string data = System.Web.HttpUtility.UrlEncode(src, System.Text.Encoding.UTF8); + return data; + } + public static string UrlDecode(this string src) + { + string data = System.Web.HttpUtility.UrlDecode(src, System.Text.Encoding.UTF8); + return data; + } + public static string toSizeStr(this Size rect) + { + return string.Format("{0};{1}", rect.Width, rect.Height); + } + public static string toPointStr(this PointF rect) + { + return string.Format("{0};{1}", rect.X, rect.Y); + } + public static string toPointStr(this Point rect) + { + return string.Format("{0};{1}", rect.X, rect.Y); + } + public static string toRectStr(this Rectangle rect) + { + return string.Format("{0};{1};{2};{3}", rect.X, rect.Top, rect.Width, rect.Height); + } + public static string toRectStr(this RectangleF rect) + { + return string.Format("{0};{1};{2};{3}", rect.X, rect.Top, rect.Width, rect.Height); + } + public static RectangleF toRectF(this string str) + { + var buffer = str.Split(';'); + if (buffer.Length != 4) return RectangleF.Empty; + for (int i = 0; i < buffer.Length; i++) + if (buffer[i] == "") buffer[i] = "0"; + return new RectangleF(float.Parse(buffer[0]), float.Parse(buffer[1]), float.Parse(buffer[2]), float.Parse(buffer[3])); + } + public static Rectangle toRect(this string str) + { + var buffer = str.Split(';'); + if (buffer.Length != 4) return Rectangle.Empty; + for (int i = 0; i < buffer.Length; i++) + if (buffer[i] == "") buffer[i] = "0"; + return new Rectangle(int.Parse(buffer[0]), int.Parse(buffer[1]), int.Parse(buffer[2]), int.Parse(buffer[3])); + } + public static Point toPoint(this string str) + { + str = str.Replace(",", ";").Replace("*", ";").Replace("x", ";").Replace(":", ";"); + + var buffer = str.Split(';'); + if (buffer.Length != 2) return Point.Empty; + for (int i = 0; i < buffer.Length; i++) + if (buffer[i] == "") buffer[i] = "0"; + return new Point(int.Parse(buffer[0]), int.Parse(buffer[1])); + } + public static Size toSize(this string str) + { + str = str.Replace(",", ";").Replace("*", ";").Replace("x", ";").Replace(":", ";"); + + var buffer = str.Split(';'); + if (buffer.Length != 2) return Size.Empty; + for (int i = 0; i < buffer.Length; i++) + if (buffer[i] == "") buffer[i] = "0"; + return new Size(int.Parse(buffer[0]), int.Parse(buffer[1])); + } + public static PointF toPointF(this string str) + { + str = str.Replace(",", ";").Replace("*", ";").Replace("x", ";").Replace(":", ";"); + + var buffer = str.Split(';'); + if (buffer.Length != 2) return PointF.Empty; + for (int i = 0; i < buffer.Length; i++) + if (buffer[i] == "") buffer[i] = "0"; + return new PointF(float.Parse(buffer[0]), float.Parse(buffer[1])); + } + public static Rectangle Fix(this Rectangle rect, Size imgsize) + { + //영역보정 + if (rect.Left < 1) rect.X = 1; + if (rect.Top < 1) rect.Y = 1; + if (rect.Right > imgsize.Width) rect.Width = imgsize.Width - rect.Left - 1; + if (rect.Bottom > imgsize.Height) rect.Height = imgsize.Height - rect.Top - 1; + if (rect.Width < 2 || rect.Height < 2) rect = Rectangle.Empty; + return rect; + } + public static RectangleF FixRoi(this RectangleF rect, Size imgsize) + { + //영역보정 + if (rect.Left < 1) rect.X = 1; + if (rect.Top < 1) rect.Y = 1; + if (rect.Right > imgsize.Width) rect.Width = imgsize.Width - rect.Left - 1; + if (rect.Bottom > imgsize.Height) rect.Height = imgsize.Height - rect.Top - 1; + if (rect.Width < 2 || rect.Height < 2) rect = Rectangle.Empty; + return rect; + } + + } +} + diff --git a/Handler/Project_form2/Model1.Context.cs b/Handler/Project_form2/Model1.Context.cs new file mode 100644 index 0000000..ca67c70 --- /dev/null +++ b/Handler/Project_form2/Model1.Context.cs @@ -0,0 +1,36 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 템플릿에서 생성되었습니다. +// +// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다. +// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다. +// +//------------------------------------------------------------------------------ + +namespace Project +{ + using System; + using System.Data.Entity; + using System.Data.Entity.Infrastructure; + + public partial class EEEntities : DbContext + { + public EEEntities() + : base("name=EEEntities") + { + } + + protected override void OnModelCreating(DbModelBuilder modelBuilder) + { + throw new UnintentionalCodeFirstException(); + } + + public virtual DbSet Component_Reel_Info { get; set; } + public virtual DbSet vCustomerList { get; set; } + public virtual DbSet Component_Reel_Result { get; set; } + public virtual DbSet Component_Reel_SIDConv { get; set; } + public virtual DbSet Component_Reel_CustInfo { get; set; } + public virtual DbSet Component_Reel_CustRule { get; set; } + public virtual DbSet Component_Reel_SIDInfo { get; set; } + } +} diff --git a/Handler/Project_form2/Model1.Context.tt b/Handler/Project_form2/Model1.Context.tt new file mode 100644 index 0000000..7b8920f --- /dev/null +++ b/Handler/Project_form2/Model1.Context.tt @@ -0,0 +1,636 @@ +<#@ template language="C#" debug="false" hostspecific="true"#> +<#@ include file="EF6.Utility.CS.ttinclude"#><#@ + output extension=".cs"#><# + +const string inputFile = @"Model1.edmx"; +var textTransform = DynamicTextTransformation.Create(this); +var code = new CodeGenerationTools(this); +var ef = new MetadataTools(this); +var typeMapper = new TypeMapper(code, ef, textTransform.Errors); +var loader = new EdmMetadataLoader(textTransform.Host, textTransform.Errors); +var itemCollection = loader.CreateEdmItemCollection(inputFile); +var modelNamespace = loader.GetModelNamespace(inputFile); +var codeStringGenerator = new CodeStringGenerator(code, typeMapper, ef); + +var container = itemCollection.OfType().FirstOrDefault(); +if (container == null) +{ + return string.Empty; +} +#> +//------------------------------------------------------------------------------ +// +// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine1")#> +// +// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine2")#> +// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine3")#> +// +//------------------------------------------------------------------------------ + +<# + +var codeNamespace = code.VsNamespaceSuggestion(); +if (!String.IsNullOrEmpty(codeNamespace)) +{ +#> +namespace <#=code.EscapeNamespace(codeNamespace)#> +{ +<# + PushIndent(" "); +} + +#> +using System; +using System.Data.Entity; +using System.Data.Entity.Infrastructure; +<# +if (container.FunctionImports.Any()) +{ +#> +using System.Data.Entity.Core.Objects; +using System.Linq; +<# +} +#> + +<#=Accessibility.ForType(container)#> partial class <#=code.Escape(container)#> : DbContext +{ + public <#=code.Escape(container)#>() + : base("name=<#=container.Name#>") + { +<# +if (!loader.IsLazyLoadingEnabled(container)) +{ +#> + this.Configuration.LazyLoadingEnabled = false; +<# +} + +foreach (var entitySet in container.BaseEntitySets.OfType()) +{ + // Note: the DbSet members are defined below such that the getter and + // setter always have the same accessibility as the DbSet definition + if (Accessibility.ForReadOnlyProperty(entitySet) != "public") + { +#> + <#=codeStringGenerator.DbSetInitializer(entitySet)#> +<# + } +} +#> + } + + protected override void OnModelCreating(DbModelBuilder modelBuilder) + { + throw new UnintentionalCodeFirstException(); + } + +<# + foreach (var entitySet in container.BaseEntitySets.OfType()) + { +#> + <#=codeStringGenerator.DbSet(entitySet)#> +<# + } + + foreach (var edmFunction in container.FunctionImports) + { + WriteFunctionImport(typeMapper, codeStringGenerator, edmFunction, modelNamespace, includeMergeOption: false); + } +#> +} +<# + +if (!String.IsNullOrEmpty(codeNamespace)) +{ + PopIndent(); +#> +} +<# +} +#> +<#+ + +private void WriteFunctionImport(TypeMapper typeMapper, CodeStringGenerator codeStringGenerator, EdmFunction edmFunction, string modelNamespace, bool includeMergeOption) +{ + if (typeMapper.IsComposable(edmFunction)) + { +#> + + [DbFunction("<#=edmFunction.NamespaceName#>", "<#=edmFunction.Name#>")] + <#=codeStringGenerator.ComposableFunctionMethod(edmFunction, modelNamespace)#> + { +<#+ + codeStringGenerator.WriteFunctionParameters(edmFunction, WriteFunctionParameter); +#> + <#=codeStringGenerator.ComposableCreateQuery(edmFunction, modelNamespace)#> + } +<#+ + } + else + { +#> + + <#=codeStringGenerator.FunctionMethod(edmFunction, modelNamespace, includeMergeOption)#> + { +<#+ + codeStringGenerator.WriteFunctionParameters(edmFunction, WriteFunctionParameter); +#> + <#=codeStringGenerator.ExecuteFunction(edmFunction, modelNamespace, includeMergeOption)#> + } +<#+ + if (typeMapper.GenerateMergeOptionFunction(edmFunction, includeMergeOption)) + { + WriteFunctionImport(typeMapper, codeStringGenerator, edmFunction, modelNamespace, includeMergeOption: true); + } + } +} + +public void WriteFunctionParameter(string name, string isNotNull, string notNullInit, string nullInit) +{ +#> + var <#=name#> = <#=isNotNull#> ? + <#=notNullInit#> : + <#=nullInit#>; + +<#+ +} + +public const string TemplateId = "CSharp_DbContext_Context_EF6"; + +public class CodeStringGenerator +{ + private readonly CodeGenerationTools _code; + private readonly TypeMapper _typeMapper; + private readonly MetadataTools _ef; + + public CodeStringGenerator(CodeGenerationTools code, TypeMapper typeMapper, MetadataTools ef) + { + ArgumentNotNull(code, "code"); + ArgumentNotNull(typeMapper, "typeMapper"); + ArgumentNotNull(ef, "ef"); + + _code = code; + _typeMapper = typeMapper; + _ef = ef; + } + + public string Property(EdmProperty edmProperty) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2} {{ {3}get; {4}set; }}", + Accessibility.ForProperty(edmProperty), + _typeMapper.GetTypeName(edmProperty.TypeUsage), + _code.Escape(edmProperty), + _code.SpaceAfter(Accessibility.ForGetter(edmProperty)), + _code.SpaceAfter(Accessibility.ForSetter(edmProperty))); + } + + public string NavigationProperty(NavigationProperty navProp) + { + var endType = _typeMapper.GetTypeName(navProp.ToEndMember.GetEntityType()); + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2} {{ {3}get; {4}set; }}", + AccessibilityAndVirtual(Accessibility.ForNavigationProperty(navProp)), + navProp.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many ? ("ICollection<" + endType + ">") : endType, + _code.Escape(navProp), + _code.SpaceAfter(Accessibility.ForGetter(navProp)), + _code.SpaceAfter(Accessibility.ForSetter(navProp))); + } + + public string AccessibilityAndVirtual(string accessibility) + { + return accessibility + (accessibility != "private" ? " virtual" : ""); + } + + public string EntityClassOpening(EntityType entity) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1}partial class {2}{3}", + Accessibility.ForType(entity), + _code.SpaceAfter(_code.AbstractOption(entity)), + _code.Escape(entity), + _code.StringBefore(" : ", _typeMapper.GetTypeName(entity.BaseType))); + } + + public string EnumOpening(SimpleType enumType) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} enum {1} : {2}", + Accessibility.ForType(enumType), + _code.Escape(enumType), + _code.Escape(_typeMapper.UnderlyingClrType(enumType))); + } + + public void WriteFunctionParameters(EdmFunction edmFunction, Action writeParameter) + { + var parameters = FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef); + foreach (var parameter in parameters.Where(p => p.NeedsLocalVariable)) + { + var isNotNull = parameter.IsNullableOfT ? parameter.FunctionParameterName + ".HasValue" : parameter.FunctionParameterName + " != null"; + var notNullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", " + parameter.FunctionParameterName + ")"; + var nullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", typeof(" + TypeMapper.FixNamespaces(parameter.RawClrTypeName) + "))"; + writeParameter(parameter.LocalVariableName, isNotNull, notNullInit, nullInit); + } + } + + public string ComposableFunctionMethod(EdmFunction edmFunction, string modelNamespace) + { + var parameters = _typeMapper.GetParameters(edmFunction); + + return string.Format( + CultureInfo.InvariantCulture, + "{0} IQueryable<{1}> {2}({3})", + AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)), + _typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace), + _code.Escape(edmFunction), + string.Join(", ", parameters.Select(p => TypeMapper.FixNamespaces(p.FunctionParameterType) + " " + p.FunctionParameterName).ToArray())); + } + + public string ComposableCreateQuery(EdmFunction edmFunction, string modelNamespace) + { + var parameters = _typeMapper.GetParameters(edmFunction); + + return string.Format( + CultureInfo.InvariantCulture, + "return ((IObjectContextAdapter)this).ObjectContext.CreateQuery<{0}>(\"[{1}].[{2}]({3})\"{4});", + _typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace), + edmFunction.NamespaceName, + edmFunction.Name, + string.Join(", ", parameters.Select(p => "@" + p.EsqlParameterName).ToArray()), + _code.StringBefore(", ", string.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray()))); + } + + public string FunctionMethod(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption) + { + var parameters = _typeMapper.GetParameters(edmFunction); + var returnType = _typeMapper.GetReturnType(edmFunction); + + var paramList = String.Join(", ", parameters.Select(p => TypeMapper.FixNamespaces(p.FunctionParameterType) + " " + p.FunctionParameterName).ToArray()); + if (includeMergeOption) + { + paramList = _code.StringAfter(paramList, ", ") + "MergeOption mergeOption"; + } + + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2}({3})", + AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)), + returnType == null ? "int" : "ObjectResult<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">", + _code.Escape(edmFunction), + paramList); + } + + public string ExecuteFunction(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption) + { + var parameters = _typeMapper.GetParameters(edmFunction); + var returnType = _typeMapper.GetReturnType(edmFunction); + + var callParams = _code.StringBefore(", ", String.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray())); + if (includeMergeOption) + { + callParams = ", mergeOption" + callParams; + } + + return string.Format( + CultureInfo.InvariantCulture, + "return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction{0}(\"{1}\"{2});", + returnType == null ? "" : "<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">", + edmFunction.Name, + callParams); + } + + public string DbSet(EntitySet entitySet) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} virtual DbSet<{1}> {2} {{ get; set; }}", + Accessibility.ForReadOnlyProperty(entitySet), + _typeMapper.GetTypeName(entitySet.ElementType), + _code.Escape(entitySet)); + } + + public string DbSetInitializer(EntitySet entitySet) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} = Set<{1}>();", + _code.Escape(entitySet), + _typeMapper.GetTypeName(entitySet.ElementType)); + } + + public string UsingDirectives(bool inHeader, bool includeCollections = true) + { + return inHeader == string.IsNullOrEmpty(_code.VsNamespaceSuggestion()) + ? string.Format( + CultureInfo.InvariantCulture, + "{0}using System;{1}" + + "{2}", + inHeader ? Environment.NewLine : "", + includeCollections ? (Environment.NewLine + "using System.Collections.Generic;") : "", + inHeader ? "" : Environment.NewLine) + : ""; + } +} + +public class TypeMapper +{ + private const string ExternalTypeNameAttributeName = @"http://schemas.microsoft.com/ado/2006/04/codegeneration:ExternalTypeName"; + + private readonly System.Collections.IList _errors; + private readonly CodeGenerationTools _code; + private readonly MetadataTools _ef; + + public static string FixNamespaces(string typeName) + { + return typeName.Replace("System.Data.Spatial.", "System.Data.Entity.Spatial."); + } + + public TypeMapper(CodeGenerationTools code, MetadataTools ef, System.Collections.IList errors) + { + ArgumentNotNull(code, "code"); + ArgumentNotNull(ef, "ef"); + ArgumentNotNull(errors, "errors"); + + _code = code; + _ef = ef; + _errors = errors; + } + + public string GetTypeName(TypeUsage typeUsage) + { + return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace: null); + } + + public string GetTypeName(EdmType edmType) + { + return GetTypeName(edmType, isNullable: null, modelNamespace: null); + } + + public string GetTypeName(TypeUsage typeUsage, string modelNamespace) + { + return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace); + } + + public string GetTypeName(EdmType edmType, string modelNamespace) + { + return GetTypeName(edmType, isNullable: null, modelNamespace: modelNamespace); + } + + public string GetTypeName(EdmType edmType, bool? isNullable, string modelNamespace) + { + if (edmType == null) + { + return null; + } + + var collectionType = edmType as CollectionType; + if (collectionType != null) + { + return String.Format(CultureInfo.InvariantCulture, "ICollection<{0}>", GetTypeName(collectionType.TypeUsage, modelNamespace)); + } + + var typeName = _code.Escape(edmType.MetadataProperties + .Where(p => p.Name == ExternalTypeNameAttributeName) + .Select(p => (string)p.Value) + .FirstOrDefault()) + ?? (modelNamespace != null && edmType.NamespaceName != modelNamespace ? + _code.CreateFullName(_code.EscapeNamespace(edmType.NamespaceName), _code.Escape(edmType)) : + _code.Escape(edmType)); + + if (edmType is StructuralType) + { + return typeName; + } + + if (edmType is SimpleType) + { + var clrType = UnderlyingClrType(edmType); + if (!IsEnumType(edmType)) + { + typeName = _code.Escape(clrType); + } + + typeName = FixNamespaces(typeName); + + return clrType.IsValueType && isNullable == true ? + String.Format(CultureInfo.InvariantCulture, "Nullable<{0}>", typeName) : + typeName; + } + + throw new ArgumentException("edmType"); + } + + public Type UnderlyingClrType(EdmType edmType) + { + ArgumentNotNull(edmType, "edmType"); + + var primitiveType = edmType as PrimitiveType; + if (primitiveType != null) + { + return primitiveType.ClrEquivalentType; + } + + if (IsEnumType(edmType)) + { + return GetEnumUnderlyingType(edmType).ClrEquivalentType; + } + + return typeof(object); + } + + public object GetEnumMemberValue(MetadataItem enumMember) + { + ArgumentNotNull(enumMember, "enumMember"); + + var valueProperty = enumMember.GetType().GetProperty("Value"); + return valueProperty == null ? null : valueProperty.GetValue(enumMember, null); + } + + public string GetEnumMemberName(MetadataItem enumMember) + { + ArgumentNotNull(enumMember, "enumMember"); + + var nameProperty = enumMember.GetType().GetProperty("Name"); + return nameProperty == null ? null : (string)nameProperty.GetValue(enumMember, null); + } + + public System.Collections.IEnumerable GetEnumMembers(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + var membersProperty = enumType.GetType().GetProperty("Members"); + return membersProperty != null + ? (System.Collections.IEnumerable)membersProperty.GetValue(enumType, null) + : Enumerable.Empty(); + } + + public bool EnumIsFlags(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + var isFlagsProperty = enumType.GetType().GetProperty("IsFlags"); + return isFlagsProperty != null && (bool)isFlagsProperty.GetValue(enumType, null); + } + + public bool IsEnumType(GlobalItem edmType) + { + ArgumentNotNull(edmType, "edmType"); + + return edmType.GetType().Name == "EnumType"; + } + + public PrimitiveType GetEnumUnderlyingType(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + return (PrimitiveType)enumType.GetType().GetProperty("UnderlyingType").GetValue(enumType, null); + } + + public string CreateLiteral(object value) + { + if (value == null || value.GetType() != typeof(TimeSpan)) + { + return _code.CreateLiteral(value); + } + + return string.Format(CultureInfo.InvariantCulture, "new TimeSpan({0})", ((TimeSpan)value).Ticks); + } + + public bool VerifyCaseInsensitiveTypeUniqueness(IEnumerable types, string sourceFile) + { + ArgumentNotNull(types, "types"); + ArgumentNotNull(sourceFile, "sourceFile"); + + var hash = new HashSet(StringComparer.InvariantCultureIgnoreCase); + if (types.Any(item => !hash.Add(item))) + { + _errors.Add( + new CompilerError(sourceFile, -1, -1, "6023", + String.Format(CultureInfo.CurrentCulture, CodeGenerationTools.GetResourceString("Template_CaseInsensitiveTypeConflict")))); + return false; + } + return true; + } + + public IEnumerable GetEnumItemsToGenerate(IEnumerable itemCollection) + { + return GetItemsToGenerate(itemCollection) + .Where(e => IsEnumType(e)); + } + + public IEnumerable GetItemsToGenerate(IEnumerable itemCollection) where T: EdmType + { + return itemCollection + .OfType() + .Where(i => !i.MetadataProperties.Any(p => p.Name == ExternalTypeNameAttributeName)) + .OrderBy(i => i.Name); + } + + public IEnumerable GetAllGlobalItems(IEnumerable itemCollection) + { + return itemCollection + .Where(i => i is EntityType || i is ComplexType || i is EntityContainer || IsEnumType(i)) + .Select(g => GetGlobalItemName(g)); + } + + public string GetGlobalItemName(GlobalItem item) + { + if (item is EdmType) + { + return ((EdmType)item).Name; + } + else + { + return ((EntityContainer)item).Name; + } + } + + public IEnumerable GetSimpleProperties(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type); + } + + public IEnumerable GetSimpleProperties(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type); + } + + public IEnumerable GetComplexProperties(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type); + } + + public IEnumerable GetComplexProperties(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type); + } + + public IEnumerable GetPropertiesWithDefaultValues(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null); + } + + public IEnumerable GetPropertiesWithDefaultValues(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null); + } + + public IEnumerable GetNavigationProperties(EntityType type) + { + return type.NavigationProperties.Where(np => np.DeclaringType == type); + } + + public IEnumerable GetCollectionNavigationProperties(EntityType type) + { + return type.NavigationProperties.Where(np => np.DeclaringType == type && np.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many); + } + + public FunctionParameter GetReturnParameter(EdmFunction edmFunction) + { + ArgumentNotNull(edmFunction, "edmFunction"); + + var returnParamsProperty = edmFunction.GetType().GetProperty("ReturnParameters"); + return returnParamsProperty == null + ? edmFunction.ReturnParameter + : ((IEnumerable)returnParamsProperty.GetValue(edmFunction, null)).FirstOrDefault(); + } + + public bool IsComposable(EdmFunction edmFunction) + { + ArgumentNotNull(edmFunction, "edmFunction"); + + var isComposableProperty = edmFunction.GetType().GetProperty("IsComposableAttribute"); + return isComposableProperty != null && (bool)isComposableProperty.GetValue(edmFunction, null); + } + + public IEnumerable GetParameters(EdmFunction edmFunction) + { + return FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef); + } + + public TypeUsage GetReturnType(EdmFunction edmFunction) + { + var returnParam = GetReturnParameter(edmFunction); + return returnParam == null ? null : _ef.GetElementType(returnParam.TypeUsage); + } + + public bool GenerateMergeOptionFunction(EdmFunction edmFunction, bool includeMergeOption) + { + var returnType = GetReturnType(edmFunction); + return !includeMergeOption && returnType != null && returnType.EdmType.BuiltInTypeKind == BuiltInTypeKind.EntityType; + } +} + +public static void ArgumentNotNull(T arg, string name) where T : class +{ + if (arg == null) + { + throw new ArgumentNullException(name); + } +} +#> \ No newline at end of file diff --git a/Handler/Project_form2/Model1.Context1.cs b/Handler/Project_form2/Model1.Context1.cs new file mode 100644 index 0000000..ca67c70 --- /dev/null +++ b/Handler/Project_form2/Model1.Context1.cs @@ -0,0 +1,36 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 템플릿에서 생성되었습니다. +// +// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다. +// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다. +// +//------------------------------------------------------------------------------ + +namespace Project +{ + using System; + using System.Data.Entity; + using System.Data.Entity.Infrastructure; + + public partial class EEEntities : DbContext + { + public EEEntities() + : base("name=EEEntities") + { + } + + protected override void OnModelCreating(DbModelBuilder modelBuilder) + { + throw new UnintentionalCodeFirstException(); + } + + public virtual DbSet Component_Reel_Info { get; set; } + public virtual DbSet vCustomerList { get; set; } + public virtual DbSet Component_Reel_Result { get; set; } + public virtual DbSet Component_Reel_SIDConv { get; set; } + public virtual DbSet Component_Reel_CustInfo { get; set; } + public virtual DbSet Component_Reel_CustRule { get; set; } + public virtual DbSet Component_Reel_SIDInfo { get; set; } + } +} diff --git a/Handler/Project_form2/Model1.Designer.cs b/Handler/Project_form2/Model1.Designer.cs new file mode 100644 index 0000000..a655568 --- /dev/null +++ b/Handler/Project_form2/Model1.Designer.cs @@ -0,0 +1,10 @@ +// 모델 'D:\Source\##### 완료아이템\(4576) 물류 Amkor Reel ID Print & Attach 장비 개발 (STD)\Source\Handler(EV)(UniConv)\Project\Model1.edmx'에 대해 T4 코드 생성이 사용됩니다. +// 레거시 코드 생성을 사용하려면 '코드 생성 전략' 디자이너 속성의 값을 +// 'Legacy ObjectContext'로 변경하십시오. 이 속성은 모델이 디자이너에서 열릴 때 +// 속성 창에서 사용할 수 있습니다. + +// 컨텍스트 및 엔터티 클래스가 생성되지 않은 경우 빈 모델을 만들었기 때문일 수도 있지만 +// 사용할 Entity Framework 버전을 선택하지 않았기 때문일 수도 있습니다. 모델에 맞는 컨텍스트 클래스 및 +// 엔터티 클래스를 생성하려면 디자이너에서 모델을 열고 디자이너 화면에서 마우스 오른쪽 단추를 클릭한 +// 다음 '데이터베이스에서 모델 업데이트...', '모델에서 데이터베이스 생성...' 또는 '코드 생성 항목 추가...'를 +// 선택하십시오. \ No newline at end of file diff --git a/Handler/Project_form2/Model1.cs b/Handler/Project_form2/Model1.cs new file mode 100644 index 0000000..593fb34 --- /dev/null +++ b/Handler/Project_form2/Model1.cs @@ -0,0 +1,9 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 템플릿에서 생성되었습니다. +// +// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다. +// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다. +// +//------------------------------------------------------------------------------ + diff --git a/Handler/Project_form2/Model1.edmx b/Handler/Project_form2/Model1.edmx new file mode 100644 index 0000000..c6ce67c --- /dev/null +++ b/Handler/Project_form2/Model1.edmx @@ -0,0 +1,363 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT + [vCustomerList].[CustCode] AS [CustCode], + [vCustomerList].[CustName] AS [CustName] + FROM [dbo].[vCustomerList] AS [vCustomerList] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Handler/Project_form2/Model1.edmx.diagram b/Handler/Project_form2/Model1.edmx.diagram new file mode 100644 index 0000000..81b8e13 --- /dev/null +++ b/Handler/Project_form2/Model1.edmx.diagram @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Handler/Project_form2/Model1.tt b/Handler/Project_form2/Model1.tt new file mode 100644 index 0000000..b0e43c7 --- /dev/null +++ b/Handler/Project_form2/Model1.tt @@ -0,0 +1,733 @@ +<#@ template language="C#" debug="false" hostspecific="true"#> +<#@ include file="EF6.Utility.CS.ttinclude"#><#@ + output extension=".cs"#><# + +const string inputFile = @"Model1.edmx"; +var textTransform = DynamicTextTransformation.Create(this); +var code = new CodeGenerationTools(this); +var ef = new MetadataTools(this); +var typeMapper = new TypeMapper(code, ef, textTransform.Errors); +var fileManager = EntityFrameworkTemplateFileManager.Create(this); +var itemCollection = new EdmMetadataLoader(textTransform.Host, textTransform.Errors).CreateEdmItemCollection(inputFile); +var codeStringGenerator = new CodeStringGenerator(code, typeMapper, ef); + +if (!typeMapper.VerifyCaseInsensitiveTypeUniqueness(typeMapper.GetAllGlobalItems(itemCollection), inputFile)) +{ + return string.Empty; +} + +WriteHeader(codeStringGenerator, fileManager); + +foreach (var entity in typeMapper.GetItemsToGenerate(itemCollection)) +{ + fileManager.StartNewFile(entity.Name + ".cs"); + BeginNamespace(code); +#> +<#=codeStringGenerator.UsingDirectives(inHeader: false)#> +<#=codeStringGenerator.EntityClassOpening(entity)#> +{ +<# + var propertiesWithDefaultValues = typeMapper.GetPropertiesWithDefaultValues(entity); + var collectionNavigationProperties = typeMapper.GetCollectionNavigationProperties(entity); + var complexProperties = typeMapper.GetComplexProperties(entity); + + if (propertiesWithDefaultValues.Any() || collectionNavigationProperties.Any() || complexProperties.Any()) + { +#> + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")] + public <#=code.Escape(entity)#>() + { +<# + foreach (var edmProperty in propertiesWithDefaultValues) + { +#> + this.<#=code.Escape(edmProperty)#> = <#=typeMapper.CreateLiteral(edmProperty.DefaultValue)#>; +<# + } + + foreach (var navigationProperty in collectionNavigationProperties) + { +#> + this.<#=code.Escape(navigationProperty)#> = new HashSet<<#=typeMapper.GetTypeName(navigationProperty.ToEndMember.GetEntityType())#>>(); +<# + } + + foreach (var complexProperty in complexProperties) + { +#> + this.<#=code.Escape(complexProperty)#> = new <#=typeMapper.GetTypeName(complexProperty.TypeUsage)#>(); +<# + } +#> + } + +<# + } + + var simpleProperties = typeMapper.GetSimpleProperties(entity); + if (simpleProperties.Any()) + { + foreach (var edmProperty in simpleProperties) + { +#> + <#=codeStringGenerator.Property(edmProperty)#> +<# + } + } + + if (complexProperties.Any()) + { +#> + +<# + foreach(var complexProperty in complexProperties) + { +#> + <#=codeStringGenerator.Property(complexProperty)#> +<# + } + } + + var navigationProperties = typeMapper.GetNavigationProperties(entity); + if (navigationProperties.Any()) + { +#> + +<# + foreach (var navigationProperty in navigationProperties) + { + if (navigationProperty.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many) + { +#> + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] +<# + } +#> + <#=codeStringGenerator.NavigationProperty(navigationProperty)#> +<# + } + } +#> +} +<# + EndNamespace(code); +} + +foreach (var complex in typeMapper.GetItemsToGenerate(itemCollection)) +{ + fileManager.StartNewFile(complex.Name + ".cs"); + BeginNamespace(code); +#> +<#=codeStringGenerator.UsingDirectives(inHeader: false, includeCollections: false)#> +<#=Accessibility.ForType(complex)#> partial class <#=code.Escape(complex)#> +{ +<# + var complexProperties = typeMapper.GetComplexProperties(complex); + var propertiesWithDefaultValues = typeMapper.GetPropertiesWithDefaultValues(complex); + + if (propertiesWithDefaultValues.Any() || complexProperties.Any()) + { +#> + public <#=code.Escape(complex)#>() + { +<# + foreach (var edmProperty in propertiesWithDefaultValues) + { +#> + this.<#=code.Escape(edmProperty)#> = <#=typeMapper.CreateLiteral(edmProperty.DefaultValue)#>; +<# + } + + foreach (var complexProperty in complexProperties) + { +#> + this.<#=code.Escape(complexProperty)#> = new <#=typeMapper.GetTypeName(complexProperty.TypeUsage)#>(); +<# + } +#> + } + +<# + } + + var simpleProperties = typeMapper.GetSimpleProperties(complex); + if (simpleProperties.Any()) + { + foreach(var edmProperty in simpleProperties) + { +#> + <#=codeStringGenerator.Property(edmProperty)#> +<# + } + } + + if (complexProperties.Any()) + { +#> + +<# + foreach(var edmProperty in complexProperties) + { +#> + <#=codeStringGenerator.Property(edmProperty)#> +<# + } + } +#> +} +<# + EndNamespace(code); +} + +foreach (var enumType in typeMapper.GetEnumItemsToGenerate(itemCollection)) +{ + fileManager.StartNewFile(enumType.Name + ".cs"); + BeginNamespace(code); +#> +<#=codeStringGenerator.UsingDirectives(inHeader: false, includeCollections: false)#> +<# + if (typeMapper.EnumIsFlags(enumType)) + { +#> +[Flags] +<# + } +#> +<#=codeStringGenerator.EnumOpening(enumType)#> +{ +<# + var foundOne = false; + + foreach (MetadataItem member in typeMapper.GetEnumMembers(enumType)) + { + foundOne = true; +#> + <#=code.Escape(typeMapper.GetEnumMemberName(member))#> = <#=typeMapper.GetEnumMemberValue(member)#>, +<# + } + + if (foundOne) + { + this.GenerationEnvironment.Remove(this.GenerationEnvironment.Length - 3, 1); + } +#> +} +<# + EndNamespace(code); +} + +fileManager.Process(); + +#> +<#+ + +public void WriteHeader(CodeStringGenerator codeStringGenerator, EntityFrameworkTemplateFileManager fileManager) +{ + fileManager.StartHeader(); +#> +//------------------------------------------------------------------------------ +// +// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine1")#> +// +// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine2")#> +// <#=CodeGenerationTools.GetResourceString("Template_GeneratedCodeCommentLine3")#> +// +//------------------------------------------------------------------------------ +<#=codeStringGenerator.UsingDirectives(inHeader: true)#> +<#+ + fileManager.EndBlock(); +} + +public void BeginNamespace(CodeGenerationTools code) +{ + var codeNamespace = code.VsNamespaceSuggestion(); + if (!String.IsNullOrEmpty(codeNamespace)) + { +#> +namespace <#=code.EscapeNamespace(codeNamespace)#> +{ +<#+ + PushIndent(" "); + } +} + +public void EndNamespace(CodeGenerationTools code) +{ + if (!String.IsNullOrEmpty(code.VsNamespaceSuggestion())) + { + PopIndent(); +#> +} +<#+ + } +} + +public const string TemplateId = "CSharp_DbContext_Types_EF6"; + +public class CodeStringGenerator +{ + private readonly CodeGenerationTools _code; + private readonly TypeMapper _typeMapper; + private readonly MetadataTools _ef; + + public CodeStringGenerator(CodeGenerationTools code, TypeMapper typeMapper, MetadataTools ef) + { + ArgumentNotNull(code, "code"); + ArgumentNotNull(typeMapper, "typeMapper"); + ArgumentNotNull(ef, "ef"); + + _code = code; + _typeMapper = typeMapper; + _ef = ef; + } + + public string Property(EdmProperty edmProperty) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2} {{ {3}get; {4}set; }}", + Accessibility.ForProperty(edmProperty), + _typeMapper.GetTypeName(edmProperty.TypeUsage), + _code.Escape(edmProperty), + _code.SpaceAfter(Accessibility.ForGetter(edmProperty)), + _code.SpaceAfter(Accessibility.ForSetter(edmProperty))); + } + + public string NavigationProperty(NavigationProperty navProp) + { + var endType = _typeMapper.GetTypeName(navProp.ToEndMember.GetEntityType()); + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2} {{ {3}get; {4}set; }}", + AccessibilityAndVirtual(Accessibility.ForNavigationProperty(navProp)), + navProp.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many ? ("ICollection<" + endType + ">") : endType, + _code.Escape(navProp), + _code.SpaceAfter(Accessibility.ForGetter(navProp)), + _code.SpaceAfter(Accessibility.ForSetter(navProp))); + } + + public string AccessibilityAndVirtual(string accessibility) + { + return accessibility + (accessibility != "private" ? " virtual" : ""); + } + + public string EntityClassOpening(EntityType entity) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1}partial class {2}{3}", + Accessibility.ForType(entity), + _code.SpaceAfter(_code.AbstractOption(entity)), + _code.Escape(entity), + _code.StringBefore(" : ", _typeMapper.GetTypeName(entity.BaseType))); + } + + public string EnumOpening(SimpleType enumType) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} enum {1} : {2}", + Accessibility.ForType(enumType), + _code.Escape(enumType), + _code.Escape(_typeMapper.UnderlyingClrType(enumType))); + } + + public void WriteFunctionParameters(EdmFunction edmFunction, Action writeParameter) + { + var parameters = FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef); + foreach (var parameter in parameters.Where(p => p.NeedsLocalVariable)) + { + var isNotNull = parameter.IsNullableOfT ? parameter.FunctionParameterName + ".HasValue" : parameter.FunctionParameterName + " != null"; + var notNullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", " + parameter.FunctionParameterName + ")"; + var nullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", typeof(" + TypeMapper.FixNamespaces(parameter.RawClrTypeName) + "))"; + writeParameter(parameter.LocalVariableName, isNotNull, notNullInit, nullInit); + } + } + + public string ComposableFunctionMethod(EdmFunction edmFunction, string modelNamespace) + { + var parameters = _typeMapper.GetParameters(edmFunction); + + return string.Format( + CultureInfo.InvariantCulture, + "{0} IQueryable<{1}> {2}({3})", + AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)), + _typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace), + _code.Escape(edmFunction), + string.Join(", ", parameters.Select(p => TypeMapper.FixNamespaces(p.FunctionParameterType) + " " + p.FunctionParameterName).ToArray())); + } + + public string ComposableCreateQuery(EdmFunction edmFunction, string modelNamespace) + { + var parameters = _typeMapper.GetParameters(edmFunction); + + return string.Format( + CultureInfo.InvariantCulture, + "return ((IObjectContextAdapter)this).ObjectContext.CreateQuery<{0}>(\"[{1}].[{2}]({3})\"{4});", + _typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace), + edmFunction.NamespaceName, + edmFunction.Name, + string.Join(", ", parameters.Select(p => "@" + p.EsqlParameterName).ToArray()), + _code.StringBefore(", ", string.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray()))); + } + + public string FunctionMethod(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption) + { + var parameters = _typeMapper.GetParameters(edmFunction); + var returnType = _typeMapper.GetReturnType(edmFunction); + + var paramList = String.Join(", ", parameters.Select(p => TypeMapper.FixNamespaces(p.FunctionParameterType) + " " + p.FunctionParameterName).ToArray()); + if (includeMergeOption) + { + paramList = _code.StringAfter(paramList, ", ") + "MergeOption mergeOption"; + } + + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2}({3})", + AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)), + returnType == null ? "int" : "ObjectResult<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">", + _code.Escape(edmFunction), + paramList); + } + + public string ExecuteFunction(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption) + { + var parameters = _typeMapper.GetParameters(edmFunction); + var returnType = _typeMapper.GetReturnType(edmFunction); + + var callParams = _code.StringBefore(", ", String.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray())); + if (includeMergeOption) + { + callParams = ", mergeOption" + callParams; + } + + return string.Format( + CultureInfo.InvariantCulture, + "return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction{0}(\"{1}\"{2});", + returnType == null ? "" : "<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">", + edmFunction.Name, + callParams); + } + + public string DbSet(EntitySet entitySet) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} virtual DbSet<{1}> {2} {{ get; set; }}", + Accessibility.ForReadOnlyProperty(entitySet), + _typeMapper.GetTypeName(entitySet.ElementType), + _code.Escape(entitySet)); + } + + public string UsingDirectives(bool inHeader, bool includeCollections = true) + { + return inHeader == string.IsNullOrEmpty(_code.VsNamespaceSuggestion()) + ? string.Format( + CultureInfo.InvariantCulture, + "{0}using System;{1}" + + "{2}", + inHeader ? Environment.NewLine : "", + includeCollections ? (Environment.NewLine + "using System.Collections.Generic;") : "", + inHeader ? "" : Environment.NewLine) + : ""; + } +} + +public class TypeMapper +{ + private const string ExternalTypeNameAttributeName = @"http://schemas.microsoft.com/ado/2006/04/codegeneration:ExternalTypeName"; + + private readonly System.Collections.IList _errors; + private readonly CodeGenerationTools _code; + private readonly MetadataTools _ef; + + public TypeMapper(CodeGenerationTools code, MetadataTools ef, System.Collections.IList errors) + { + ArgumentNotNull(code, "code"); + ArgumentNotNull(ef, "ef"); + ArgumentNotNull(errors, "errors"); + + _code = code; + _ef = ef; + _errors = errors; + } + + public static string FixNamespaces(string typeName) + { + return typeName.Replace("System.Data.Spatial.", "System.Data.Entity.Spatial."); + } + + public string GetTypeName(TypeUsage typeUsage) + { + return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace: null); + } + + public string GetTypeName(EdmType edmType) + { + return GetTypeName(edmType, isNullable: null, modelNamespace: null); + } + + public string GetTypeName(TypeUsage typeUsage, string modelNamespace) + { + return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace); + } + + public string GetTypeName(EdmType edmType, string modelNamespace) + { + return GetTypeName(edmType, isNullable: null, modelNamespace: modelNamespace); + } + + public string GetTypeName(EdmType edmType, bool? isNullable, string modelNamespace) + { + if (edmType == null) + { + return null; + } + + var collectionType = edmType as CollectionType; + if (collectionType != null) + { + return String.Format(CultureInfo.InvariantCulture, "ICollection<{0}>", GetTypeName(collectionType.TypeUsage, modelNamespace)); + } + + var typeName = _code.Escape(edmType.MetadataProperties + .Where(p => p.Name == ExternalTypeNameAttributeName) + .Select(p => (string)p.Value) + .FirstOrDefault()) + ?? (modelNamespace != null && edmType.NamespaceName != modelNamespace ? + _code.CreateFullName(_code.EscapeNamespace(edmType.NamespaceName), _code.Escape(edmType)) : + _code.Escape(edmType)); + + if (edmType is StructuralType) + { + return typeName; + } + + if (edmType is SimpleType) + { + var clrType = UnderlyingClrType(edmType); + if (!IsEnumType(edmType)) + { + typeName = _code.Escape(clrType); + } + + typeName = FixNamespaces(typeName); + + return clrType.IsValueType && isNullable == true ? + String.Format(CultureInfo.InvariantCulture, "Nullable<{0}>", typeName) : + typeName; + } + + throw new ArgumentException("edmType"); + } + + public Type UnderlyingClrType(EdmType edmType) + { + ArgumentNotNull(edmType, "edmType"); + + var primitiveType = edmType as PrimitiveType; + if (primitiveType != null) + { + return primitiveType.ClrEquivalentType; + } + + if (IsEnumType(edmType)) + { + return GetEnumUnderlyingType(edmType).ClrEquivalentType; + } + + return typeof(object); + } + + public object GetEnumMemberValue(MetadataItem enumMember) + { + ArgumentNotNull(enumMember, "enumMember"); + + var valueProperty = enumMember.GetType().GetProperty("Value"); + return valueProperty == null ? null : valueProperty.GetValue(enumMember, null); + } + + public string GetEnumMemberName(MetadataItem enumMember) + { + ArgumentNotNull(enumMember, "enumMember"); + + var nameProperty = enumMember.GetType().GetProperty("Name"); + return nameProperty == null ? null : (string)nameProperty.GetValue(enumMember, null); + } + + public System.Collections.IEnumerable GetEnumMembers(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + var membersProperty = enumType.GetType().GetProperty("Members"); + return membersProperty != null + ? (System.Collections.IEnumerable)membersProperty.GetValue(enumType, null) + : Enumerable.Empty(); + } + + public bool EnumIsFlags(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + var isFlagsProperty = enumType.GetType().GetProperty("IsFlags"); + return isFlagsProperty != null && (bool)isFlagsProperty.GetValue(enumType, null); + } + + public bool IsEnumType(GlobalItem edmType) + { + ArgumentNotNull(edmType, "edmType"); + + return edmType.GetType().Name == "EnumType"; + } + + public PrimitiveType GetEnumUnderlyingType(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + return (PrimitiveType)enumType.GetType().GetProperty("UnderlyingType").GetValue(enumType, null); + } + + public string CreateLiteral(object value) + { + if (value == null || value.GetType() != typeof(TimeSpan)) + { + return _code.CreateLiteral(value); + } + + return string.Format(CultureInfo.InvariantCulture, "new TimeSpan({0})", ((TimeSpan)value).Ticks); + } + + public bool VerifyCaseInsensitiveTypeUniqueness(IEnumerable types, string sourceFile) + { + ArgumentNotNull(types, "types"); + ArgumentNotNull(sourceFile, "sourceFile"); + + var hash = new HashSet(StringComparer.InvariantCultureIgnoreCase); + if (types.Any(item => !hash.Add(item))) + { + _errors.Add( + new CompilerError(sourceFile, -1, -1, "6023", + String.Format(CultureInfo.CurrentCulture, CodeGenerationTools.GetResourceString("Template_CaseInsensitiveTypeConflict")))); + return false; + } + return true; + } + + public IEnumerable GetEnumItemsToGenerate(IEnumerable itemCollection) + { + return GetItemsToGenerate(itemCollection) + .Where(e => IsEnumType(e)); + } + + public IEnumerable GetItemsToGenerate(IEnumerable itemCollection) where T: EdmType + { + return itemCollection + .OfType() + .Where(i => !i.MetadataProperties.Any(p => p.Name == ExternalTypeNameAttributeName)) + .OrderBy(i => i.Name); + } + + public IEnumerable GetAllGlobalItems(IEnumerable itemCollection) + { + return itemCollection + .Where(i => i is EntityType || i is ComplexType || i is EntityContainer || IsEnumType(i)) + .Select(g => GetGlobalItemName(g)); + } + + public string GetGlobalItemName(GlobalItem item) + { + if (item is EdmType) + { + return ((EdmType)item).Name; + } + else + { + return ((EntityContainer)item).Name; + } + } + + public IEnumerable GetSimpleProperties(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type); + } + + public IEnumerable GetSimpleProperties(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type); + } + + public IEnumerable GetComplexProperties(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type); + } + + public IEnumerable GetComplexProperties(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type); + } + + public IEnumerable GetPropertiesWithDefaultValues(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null); + } + + public IEnumerable GetPropertiesWithDefaultValues(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null); + } + + public IEnumerable GetNavigationProperties(EntityType type) + { + return type.NavigationProperties.Where(np => np.DeclaringType == type); + } + + public IEnumerable GetCollectionNavigationProperties(EntityType type) + { + return type.NavigationProperties.Where(np => np.DeclaringType == type && np.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many); + } + + public FunctionParameter GetReturnParameter(EdmFunction edmFunction) + { + ArgumentNotNull(edmFunction, "edmFunction"); + + var returnParamsProperty = edmFunction.GetType().GetProperty("ReturnParameters"); + return returnParamsProperty == null + ? edmFunction.ReturnParameter + : ((IEnumerable)returnParamsProperty.GetValue(edmFunction, null)).FirstOrDefault(); + } + + public bool IsComposable(EdmFunction edmFunction) + { + ArgumentNotNull(edmFunction, "edmFunction"); + + var isComposableProperty = edmFunction.GetType().GetProperty("IsComposableAttribute"); + return isComposableProperty != null && (bool)isComposableProperty.GetValue(edmFunction, null); + } + + public IEnumerable GetParameters(EdmFunction edmFunction) + { + return FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef); + } + + public TypeUsage GetReturnType(EdmFunction edmFunction) + { + var returnParam = GetReturnParameter(edmFunction); + return returnParam == null ? null : _ef.GetElementType(returnParam.TypeUsage); + } + + public bool GenerateMergeOptionFunction(EdmFunction edmFunction, bool includeMergeOption) + { + var returnType = GetReturnType(edmFunction); + return !includeMergeOption && returnType != null && returnType.EdmType.BuiltInTypeKind == BuiltInTypeKind.EntityType; + } +} + +public static void ArgumentNotNull(T arg, string name) where T : class +{ + if (arg == null) + { + throw new ArgumentNullException(name); + } +} +#> \ No newline at end of file diff --git a/Handler/Project_form2/Model11.Designer.cs b/Handler/Project_form2/Model11.Designer.cs new file mode 100644 index 0000000..a655568 --- /dev/null +++ b/Handler/Project_form2/Model11.Designer.cs @@ -0,0 +1,10 @@ +// 모델 'D:\Source\##### 완료아이템\(4576) 물류 Amkor Reel ID Print & Attach 장비 개발 (STD)\Source\Handler(EV)(UniConv)\Project\Model1.edmx'에 대해 T4 코드 생성이 사용됩니다. +// 레거시 코드 생성을 사용하려면 '코드 생성 전략' 디자이너 속성의 값을 +// 'Legacy ObjectContext'로 변경하십시오. 이 속성은 모델이 디자이너에서 열릴 때 +// 속성 창에서 사용할 수 있습니다. + +// 컨텍스트 및 엔터티 클래스가 생성되지 않은 경우 빈 모델을 만들었기 때문일 수도 있지만 +// 사용할 Entity Framework 버전을 선택하지 않았기 때문일 수도 있습니다. 모델에 맞는 컨텍스트 클래스 및 +// 엔터티 클래스를 생성하려면 디자이너에서 모델을 열고 디자이너 화면에서 마우스 오른쪽 단추를 클릭한 +// 다음 '데이터베이스에서 모델 업데이트...', '모델에서 데이터베이스 생성...' 또는 '코드 생성 항목 추가...'를 +// 선택하십시오. \ No newline at end of file diff --git a/Handler/Project_form2/Model11.cs b/Handler/Project_form2/Model11.cs new file mode 100644 index 0000000..593fb34 --- /dev/null +++ b/Handler/Project_form2/Model11.cs @@ -0,0 +1,9 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 템플릿에서 생성되었습니다. +// +// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다. +// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다. +// +//------------------------------------------------------------------------------ + diff --git a/Handler/Project_form2/Program.cs b/Handler/Project_form2/Program.cs new file mode 100644 index 0000000..af33069 --- /dev/null +++ b/Handler/Project_form2/Program.cs @@ -0,0 +1,128 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; +using System.Reflection; +using System.Runtime.InteropServices; +using System.Resources; +using System.Threading; + +namespace Project +{ + static class Program + { + /// + /// 해당 응용 프로그램의 주 진입점입니다. + /// + [STAThread] + static void Main() + { + //중복실행방지 + var guidAttr = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(GuidAttribute), true); + if (guidAttr != null) + { + var guida = (GuidAttribute)guidAttr[0]; + var guidstr = guida.Value; + Mutex mtx = new Mutex(true, guidstr); + var success = mtx.WaitOne(new TimeSpan(0, 0, 1)); + if (success == false) + { + //MessageBox.Show("중복실행 불가\n\n프로그램이 실행 중 입니다"); + + //"※ Amkor Standard Label Attach" + var list = System.Diagnostics.Process.GetProcesses(); + var prc = list.Where(t => t.ProcessName == "Amkor" && t.MainModule.FileVersionInfo.FileDescription.Contains("Amkor Standard Label")).FirstOrDefault(); + if (prc != null) + { + var dlg = MessageBox.Show( + "중복 실행이 감지 되었습니다.\r\n" + + "현재 실행중인 프로그램을 종료 할까요?\r\n" + + "프로그램은 다시 실행하세요", "중복실행", MessageBoxButtons.YesNo, + MessageBoxIcon.Question); + + if (dlg == DialogResult.Yes) + { + prc.Kill(); + } + } + + return; + } + } + + //string y, m; + //var rid = Pub.IsAmkorReelID("RC00004A2130001", out y, out m); + + //var firstsn = "QQZ1"; + //for (int i = 0; i < 1000; i++) + //{ + // firstsn = Pub.GetNextSNbySN(firstsn); + // Console.WriteLine(string.Format("{0}\t{1}",i, firstsn)); + //} + + //var list = Enum.GetNames(typeof(eDIPin)); + //for(int i = 0; i < list.Length; i++) + //{ + // var ediName = (eDIName)i; + // Console.WriteLine(string.Format("{0}\t{1}",list[i], ediName)); + //} + + // list = Enum.GetNames(typeof(eDOPin)); + //for (int i = 0; i < list.Length; i++) + //{ + // var ediName = (eDOName)i; + // Console.WriteLine(string.Format("{0}\t{1}", list[i], ediName)); + //} + + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException); + AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); + Application.Run(new fMain()); + } + + + + + + static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) + { + + string emsg = "Fatal Error(UHE)\n\n" + e.ExceptionObject.ToString(); + Pub.log.AddE(emsg); + Pub.log.Flush(); + Util.SaveBugReport(emsg); + Shutdown(); + var f = new fErrorException(emsg); + f.ShowDialog(); + Application.ExitThread(); + } + + static void Shutdown() + { + Pub.dio.SetOutput(false); //모두끄기 + Pub.sm.setNewStep(StateMachine.eSMStep.IDLE, true); + Pub.flag.set(eFlag.UserStepCheck, false, "shutdown"); + Pub.log.Add("Program Close"); + Pub.log.Flush(); + Pub.dio.StopMonitor(); + Pub.mot.StopMonitor(); + Pub.sm.Stop(); + + } + + static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e) + { + + string emsg = "Fatal Error(ATE)\n\n" + e.Exception.ToString(); + //emsg += "stack:" + e.Exception.StackTrace; + Pub.log.AddE(emsg); + Pub.log.Flush(); + Util.SaveBugReport(emsg); + Shutdown(); + var f = new fErrorException(emsg); + f.ShowDialog(); + Application.ExitThread(); + } + } +} diff --git a/Handler/Project_form2/Properties/AssemblyInfo.cs b/Handler/Project_form2/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..5c61e22 --- /dev/null +++ b/Handler/Project_form2/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("※ Amkor Standard Label Attach (Receiving)")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Amkor K4")] +[assembly: AssemblyProduct("※ Amkor Standard Label Attach (Receiving)")] +[assembly: AssemblyCopyright("Copyright ©Amkor-EET 2020")] +[assembly: AssemblyTrademark("EET")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("65f3e762-800c-772e-1111-b444642ec666")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로 +// 지정되도록 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("22.01.20.2200")] +[assembly: AssemblyFileVersion("22.01.20.2200")] diff --git a/Handler/Project_form2/Properties/Resources.Designer.cs b/Handler/Project_form2/Properties/Resources.Designer.cs new file mode 100644 index 0000000..6b0ac2c --- /dev/null +++ b/Handler/Project_form2/Properties/Resources.Designer.cs @@ -0,0 +1,173 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +namespace Project.Properties { + using System; + + + /// + /// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다. + /// + // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder + // 클래스에서 자동으로 생성되었습니다. + // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을 + // 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Project.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을 + /// 재정의합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_cancel_40 { + get { + object obj = ResourceManager.GetObject("icons8-cancel-40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_checked_40 { + get { + object obj = ResourceManager.GetObject("icons8-checked-40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_checked_radio_button_48 { + get { + object obj = ResourceManager.GetObject("icons8-checked-radio-button-48", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_copy_40 { + get { + object obj = ResourceManager.GetObject("icons8-copy-40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_exercise_40 { + get { + object obj = ResourceManager.GetObject("icons8-exercise-40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_new_40 { + get { + object obj = ResourceManager.GetObject("icons8-new-40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_no_running_40 { + get { + object obj = ResourceManager.GetObject("icons8-no-running-40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_plus_40 { + get { + object obj = ResourceManager.GetObject("icons8-plus-40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_running_40 { + get { + object obj = ResourceManager.GetObject("icons8-running-40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_save_40 { + get { + object obj = ResourceManager.GetObject("icons8-save-40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// System.Drawing.Bitmap 형식의 지역화된 리소스를 찾습니다. + /// + internal static System.Drawing.Bitmap icons8_unavailable_40 { + get { + object obj = ResourceManager.GetObject("icons8-unavailable-40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Handler/Project_form2/Properties/Resources.resx b/Handler/Project_form2/Properties/Resources.resx new file mode 100644 index 0000000..946ae84 --- /dev/null +++ b/Handler/Project_form2/Properties/Resources.resx @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\icons8-plus-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-no-running-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-save-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-unavailable-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-new-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-checked-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-exercise-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-running-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-checked-radio-button-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-cancel-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-copy-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Handler/Project_form2/Properties/Settings.Designer.cs b/Handler/Project_form2/Properties/Settings.Designer.cs new file mode 100644 index 0000000..7e8ad04 --- /dev/null +++ b/Handler/Project_form2/Properties/Settings.Designer.cs @@ -0,0 +1,181 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +namespace Project.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)] + [global::System.Configuration.DefaultSettingValueAttribute("Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=ee" + + "user;Password=Amkor123!")] + public string CS { + get { + return ((string)(this["CS"])); + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.WebServiceUrl)] + [global::System.Configuration.DefaultSettingValueAttribute("http://k1xip00.amkor.co.kr:50000/XISOAPAdapter/MessageServlet?senderParty=&sender" + + "Service=eCIM_ATK&receiverParty=&receiverService=&interface=ZK_RFID_TRANS_SEQ&int" + + "erfaceNamespace=urn%3Asap-com%3Adocument%3Asap%3Arfc%3Afunctions")] + public string Logistics_Vision_wr_ZK_RFID_TRANS_SEQService { + get { + return ((string)(this["Logistics_Vision_wr_ZK_RFID_TRANS_SEQService"])); + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("K9OE1zaaQEPD8jE33YK1vDdDS4JBz1DB")] + public string Softtek { + get { + return ((string)(this["Softtek"])); + } + set { + this["Softtek"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("101410653;AG64B3W;SAMSUNG;20000;AG64B3W0031;19000101;")] + public string BcdDemo { + get { + return ((string)(this["BcdDemo"])); + } + set { + this["BcdDemo"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("Amkor Technology/windows-242f240302c3e50d6cb1686ba2q4k0o9")] + public string libxl { + get { + return ((string)(this["libxl"])); + } + set { + this["libxl"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute(@"^XA~TA000~JSN^LT0^MNW^MTT^PON^PMN^LH0,0^JMA^PR6,6~SD15^JUS^LRN^CI0^XZ +^XA +^MMT +^PW519 +^LL0200 +^LS25 +^FO205,5^GB305,186,4^FS +^FT25,170^BQN,2,4 +^FDLA, +{qrData} +^FS +^FO205,9^GB0,183,4^FS +^FO250,9^GB0,183,4^FS +^FO209,34^GB299,0,4^FS +^FO209,65^GB299,0,4^FS +^FO207,95^GB300,0,4^FS +^FO207,126^GB303,0,4^FS +^FT211,30^A0N,23,24^FDSID^FS +^FT210,59^A0N,23,24^FDLOT^FS +^FT215,91^A0N,23,24^FDPN^FS +^FT212,153^A0N,23,24^FDRID^FS +^FT210,120^A0N,23,24^FDQ'ty^FS +^FT260,31^A0N,23,24^FD +{sid} +^FS +^FT260,60^A0N,23,24^FD +{lot} +^FS +^FT258,93^A0N,27,16^FD +{partnum} +^FS +^FT256,150^A0N,21,19^FD +{rid} +^FS +^FT259,121^A0N,23,24^FD +{qty} +^FS +^FO207,157^GB303,0,4^FS +^FT212,182^A0N,20,19^FDDate^FS +^FT260,183^A0N,23,24^FD +{mfg} +^FS +^PQ1,0,1,Y^XZ")] + public string ZPL { + get { + return ((string)(this["ZPL"])); + } + set { + this["ZPL"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute(@"^XA +^MMT +^PW519 +^LL0200 +^LS0 +^FO207,5^GB303,186,4^FS +^FT10,190^BQN,2,4 +^FH\^FDLA,{qrData}^FS +^FO250,8^GB0,183,4^FS +^FO209,29^GB299,0,4^FS +^FO209,56^GB299,0,4^FS +^FO207,81^GB300,0,4^FS +^FO207,108^GB303,0,4^FS +^FT212,27^A0N,20,19^FH\^FDSID^FS +^FT212,52^A0N,20,19^FH\^FDLOT^FS +^FT211,132^A0N,20,19^FH\^FDRID^FS +^FT212,104^A0N,20,19^FH\^FDQ'ty^FS +^FT256,27^A0N,20,19^FH\^FD{sid}^FS +^FT257,53^A0N,20,19^FH\^FD{lot}^FS +^FT257,184^A0N,17,16^FH\^FD{partnum}^FS +^FT258,131^A0N,20,19^FH\^FD{rid}^FS +^FT257,104^A0N,20,19^FH\^FD{qty}^FS +^FO207,162^GB303,0,4^FS +^FO207,135^GB303,0,4^FS +^FT211,158^A0N,20,19^FH\^FDDate^FS +^FT258,158^A0N,20,19^FH\^FD{mfg}^FS +^FT212,183^A0N,17,16^FH\^FDPN#^FS +^FT212,79^A0N,20,19^FH\^FDSPY^FS +^FT256,79^A0N,20,19^FH\^FD{supply}^FS +^PQ1,0,1,Y^XZ +")] + public string ZPL7 { + get { + return ((string)(this["ZPL7"])); + } + set { + this["ZPL7"] = value; + } + } + } +} diff --git a/Handler/Project_form2/Properties/Settings.settings b/Handler/Project_form2/Properties/Settings.settings new file mode 100644 index 0000000..ae13733 --- /dev/null +++ b/Handler/Project_form2/Properties/Settings.settings @@ -0,0 +1,104 @@ + + + + + + <?xml version="1.0" encoding="utf-16"?> +<SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <ConnectionString>Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!</ConnectionString> + <ProviderName>System.Data.SqlClient</ProviderName> +</SerializableConnectionString> + Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123! + + + http://k1xip00.amkor.co.kr:50000/XISOAPAdapter/MessageServlet?senderParty=&senderService=eCIM_ATK&receiverParty=&receiverService=&interface=ZK_RFID_TRANS_SEQ&interfaceNamespace=urn%3Asap-com%3Adocument%3Asap%3Arfc%3Afunctions + + + K9OE1zaaQEPD8jE33YK1vDdDS4JBz1DB + + + 101410653;AG64B3W;SAMSUNG;20000;AG64B3W0031;19000101; + + + Amkor Technology/windows-242f240302c3e50d6cb1686ba2q4k0o9 + + + ^XA~TA000~JSN^LT0^MNW^MTT^PON^PMN^LH0,0^JMA^PR6,6~SD15^JUS^LRN^CI0^XZ +^XA +^MMT +^PW519 +^LL0200 +^LS25 +^FO205,5^GB305,186,4^FS +^FT25,170^BQN,2,4 +^FDLA, +{qrData} +^FS +^FO205,9^GB0,183,4^FS +^FO250,9^GB0,183,4^FS +^FO209,34^GB299,0,4^FS +^FO209,65^GB299,0,4^FS +^FO207,95^GB300,0,4^FS +^FO207,126^GB303,0,4^FS +^FT211,30^A0N,23,24^FDSID^FS +^FT210,59^A0N,23,24^FDLOT^FS +^FT215,91^A0N,23,24^FDPN^FS +^FT212,153^A0N,23,24^FDRID^FS +^FT210,120^A0N,23,24^FDQ'ty^FS +^FT260,31^A0N,23,24^FD +{sid} +^FS +^FT260,60^A0N,23,24^FD +{lot} +^FS +^FT258,93^A0N,27,16^FD +{partnum} +^FS +^FT256,150^A0N,21,19^FD +{rid} +^FS +^FT259,121^A0N,23,24^FD +{qty} +^FS +^FO207,157^GB303,0,4^FS +^FT212,182^A0N,20,19^FDDate^FS +^FT260,183^A0N,23,24^FD +{mfg} +^FS +^PQ1,0,1,Y^XZ + + + ^XA +^MMT +^PW519 +^LL0200 +^LS0 +^FO207,5^GB303,186,4^FS +^FT10,190^BQN,2,4 +^FH\^FDLA,{qrData}^FS +^FO250,8^GB0,183,4^FS +^FO209,29^GB299,0,4^FS +^FO209,56^GB299,0,4^FS +^FO207,81^GB300,0,4^FS +^FO207,108^GB303,0,4^FS +^FT212,27^A0N,20,19^FH\^FDSID^FS +^FT212,52^A0N,20,19^FH\^FDLOT^FS +^FT211,132^A0N,20,19^FH\^FDRID^FS +^FT212,104^A0N,20,19^FH\^FDQ'ty^FS +^FT256,27^A0N,20,19^FH\^FD{sid}^FS +^FT257,53^A0N,20,19^FH\^FD{lot}^FS +^FT257,184^A0N,17,16^FH\^FD{partnum}^FS +^FT258,131^A0N,20,19^FH\^FD{rid}^FS +^FT257,104^A0N,20,19^FH\^FD{qty}^FS +^FO207,162^GB303,0,4^FS +^FO207,135^GB303,0,4^FS +^FT211,158^A0N,20,19^FH\^FDDate^FS +^FT258,158^A0N,20,19^FH\^FD{mfg}^FS +^FT212,183^A0N,17,16^FH\^FDPN#^FS +^FT212,79^A0N,20,19^FH\^FDSPY^FS +^FT256,79^A0N,20,19^FH\^FD{supply}^FS +^PQ1,0,1,Y^XZ + + + + \ No newline at end of file diff --git a/Handler/Project_form2/Pub.cs b/Handler/Project_form2/Pub.cs new file mode 100644 index 0000000..4304281 --- /dev/null +++ b/Handler/Project_form2/Pub.cs @@ -0,0 +1,901 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.IO; +using System.Runtime.Serialization.Formatters.Binary; +using System.Text; +using System.Management; +using System.Data.SqlClient; +using System.Data; +using System.Threading.Tasks; +using System.Net.NetworkInformation; +using System.Net; +using System.Runtime.CompilerServices; + +namespace Project +{ + public static class Pub + { + public static string[] WaitMessage = new string[] { "", "", "", "", "", "", "", "", "", "", "" }; + + public static StdLabelPrint.LabelPrint PrinterL = null; + public static StdLabelPrint.LabelPrint PrinterR = null; + + //공용변수(시간) + private static DateTime[] Var_dateTime;//총64개의 가변용 변수 + public static void SetVarTime(eVarTime idx, DateTime value) + { + Pub.log.Add("VAR_TIME", "Set Time " + idx.ToString() + " : " + value.ToString("yyyy-MM-dd HH:mm:ss.fff")); + Var_dateTime[(int)idx] = value; + } + public static void SetVarTime(eVarTime idx) { SetVarTime(idx, DateTime.Now); } + public static DateTime GetVarTime(eVarTime idx) { return Var_dateTime[(int)idx]; } + public static TimeSpan GetVarRunTime(eVarTime idx) { return DateTime.Now - Var_dateTime[(int)idx]; } + + public static arDev.AzinAxt.DIO dio; //Ajin + public static arDev.AzinAxt.MOT mot; //Ajin + public static arDev.RS232 remocon; + public static WatsonWebsocket.WatsonWsClient wsL; + public static WatsonWebsocket.WatsonWsClient wsR; + + public static int uploadcount = 0; + public static DateTime BuzzerTime; + public static DateTime MGZRunTime; + + public static CounterSetting counter; + + public static Flag flag; + public static MessageWindow popup; + + //interlock check + public static CInterLock LockPKX; + public static CInterLock LockPKZ; + public static CInterLock LockPKT; + public static CInterLock LockPLM; + public static CInterLock LockPLZ; + public static CInterLock LockPRM; + public static CInterLock LockPRZ; + public static CInterLock LockPRL; //printer -left + public static CInterLock LockPRR; //printer -right + public static CInterLock LockVS0; //visoin - 0 + public static CInterLock LockVS1; //vision - 1 + public static CInterLock LockVS2; //vision - 2 + + public static arDev.Joystick.JoystickRaw joystick; + + /// + /// database manager + /// + //public static Manager.DatabaseManagerHistory dbmHistory; //트레이기록(날짜기준) + public static Manager.DatabaseManagerCount dbmCount; //수량기록(ID기준) + public static Manager.DatabaseManagerSIDHistory dbmSidHistory; + + //public static Manager.DataBaseMSSQL dbSQL; + + /// + /// model manager + /// + public static Manager.ModelManager mdm; + + public static SystemSetting system; + public static UserSetting uSetting; + public static CSetting setting; + + public static arUtil.Log logVision; + public static arUtil.Log log; + public static arUtil.Log logILStop; + public static arUtil.Log logDbg; + public static arUtil.Log logFlag; + public static arUtil.Log logILock; + public static arUtil.Log logWS; + public static arUtil.Log logKeyence; + // public static arUtil.Log logCV; + public static arUtil.Log logbarcode; + + public static DataSet1.UsersDataTable userList; + public static DataSet1.MailRecipientDataTable mailList; + public static DataSet1.MailFormatDataTable mailForm; + + public static DateTime LastInputTime = DateTime.Now; + public static CResult Result; + + #region "runstep 1" + private static byte[] _runStepSeq = new byte[64]; + + //public static eRunStep getOtherStep(int idx) { return runStep(idx == 0 ? 1 : 0); } + private static DateTime[] _runStepSeqStartTime = new DateTime[] { DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now }; + private static eRunStep[] _runstepn = new eRunStep[] { eRunStep.NOTSET, eRunStep.NOTSET, eRunStep.NOTSET, eRunStep.NOTSET, eRunStep.NOTSET, eRunStep.NOTSET }; + private static eRunStep[] _runstepo = new eRunStep[] { eRunStep.NOTSET, eRunStep.NOTSET, eRunStep.NOTSET, eRunStep.NOTSET, eRunStep.NOTSET, eRunStep.NOTSET }; + public static eRunStep runStep(int idx) { return _runstepo[idx]; } + public static eRunStep runStepNew(int idx) { return _runstepn[idx]; } + public static int runStepSeq(int idx) + { + return _runStepSeq[idx]; + } + public static int runStepSeq(eRunSequence idx = eRunSequence.COMMON) + { + return _runStepSeq[(int)idx]; + } + public static void setNewRunStep(int idx, eRunStep newStep) + { + if (_runstepn[idx] != newStep) + { + _runstepn[idx] = newStep; + } + } + public static void applyRunStep(int idx) + { + if (_runstepn[idx] != _runstepo[idx]) + { + _runStepSeq[idx] = 0; + _runstepo[idx] = _runstepn[idx]; + + //상태머신의 작업 상태가 바뀌면 모든 SEQ번호를 초기화한다 - 201217 + var StepSeqList = Enum.GetValues(typeof(eRunSequence)); + foreach (var item in StepSeqList) + updateRunStepSeq((eRunSequence)item, -1); + } + } + public static void ClearRunStepSeqTime() + { + for (int i = 0; i < _runStepSeqStartTime.Length; i++) + _runStepSeqStartTime[i] = DateTime.Now; + } + + public static TimeSpan getRunStepSeqtime(int idx) + { + return DateTime.Now - _runStepSeqStartTime[idx]; + } + public static TimeSpan getRunStepSeqtime(eRunSequence idx) + { + return getRunStepSeqtime((int)idx); + } + + + + public static void SetStepSeq(eRunSequence idx, byte value) + { + _runStepSeq[(int)idx] = value; + Pub.log.AddI(string.Format("Step [{2}] Sequence Jump {0} to {1}", + _runStepSeq[(int)idx], + value, idx)); + } + public static void UpdaterunStepSeqStartTime(eRunSequence idx = eRunSequence.COMMON) + { + _runStepSeqStartTime[(int)idx] = DateTime.Now; + // Pub.log.Add("Update RunStep Start Time"); + } + public static void updateRunStepSeq(eRunSequence idx = eRunSequence.COMMON, int newseq = -1) + { + //seq값을 지정하면 해당 값으로 사용하고 없다면 증가 시킨다. + if (newseq == -1) + { + _runStepSeq[(int)idx] += 1; + } + else + { + _runStepSeq[(int)idx] = (byte)newseq; + } + + UpdaterunStepSeqStartTime(idx); + // Pub.log.Add(string.Format("스텝({0}) 시퀀스증가 신규값={1}", runStep, _runStepSeq)); + } + public static void ResetRunStepSeq(eRunSequence idx = eRunSequence.COMMON) + { + _runStepSeq[(int)idx] = 1; + UpdaterunStepSeqStartTime(idx); + } + public static void ClearRunStep(int idx) + { + _runStepSeq[idx] = 0; + _runStepSeqStartTime[idx] = DateTime.Now; + _runstepn[idx] = eRunStep.NOTSET; + _runstepo[idx] = eRunStep.NOTSET; + } + #endregion + + public static StateMachine sm; //상태머신분리 190529 + public static Boolean isRunning + { + get + { + return (Pub.sm.Step == StateMachine.eSMStep.RUN); + } + } + + public static void AddDebugLog(string div, string msg, Boolean iserr = false) + { + if (Pub.setting.Log_Debug == false) return; + if (iserr) Pub.logDbg.AddE(msg); + else Pub.logDbg.Add(div, msg); + } + public static void AddDebugLog(string msg, Boolean iserr = false) + { + Pub.logDbg.Add("NORMAL", msg, iserr); + } + + public static void ApplyZplCode() + { + string zplfil = string.Empty; + if (Pub.setting.STDLabelFormat7) + { + zplfil = System.IO.Path.Combine(Util.CurrentPath, "zpl7.txt"); + } + else + { + zplfil = System.IO.Path.Combine(Util.CurrentPath, "zpl.txt"); + } + + if (System.IO.File.Exists(zplfil)) + { + Pub.PrinterL.baseZPL = System.IO.File.ReadAllText(zplfil, System.Text.Encoding.Default); + Pub.PrinterR.baseZPL = System.IO.File.ReadAllText(zplfil, System.Text.Encoding.Default); + } + else + { + Pub.log.AddAT("기본 ZPL파일이 없어 설정파일의 내용을 사용합니다"); + if(Pub.setting.STDLabelFormat7) + { + Pub.PrinterL.baseZPL = Properties.Settings.Default.ZPL7; + Pub.PrinterR.baseZPL = Properties.Settings.Default.ZPL7; + } + else + { + Pub.PrinterL.baseZPL = Properties.Settings.Default.ZPL; + Pub.PrinterR.baseZPL = Properties.Settings.Default.ZPL; + } + + //파일이 없으므로 파일을 생성하도록 한다 + Pub.log.Add("기본 zpl 파일을 생성합니다. filename=" + zplfil); + System.IO.File.WriteAllText(zplfil, Pub.PrinterL.baseZPL, System.Text.Encoding.Default); + } + } + + /// + /// 전체 작업목록을 별도파일에 저장한다 + /// + /// + /// + /// + public static void AddJobList(string seqdate, string seqno, string file) + { + //저장된 파일은 아래와같은 데이터를 가지고 있다 + //sb.AppendLine("#Time\tSID\tRID\tRAW"); + + //해당 차수로 저장된 파일이 잇는지 체크한다. + var savepath = System.IO.Path.Combine(Pub.setting.Path_Data, "JobData", seqdate.Substring(0, 6), seqdate + "-" + seqno + ".txt"); + var fi = new System.IO.FileInfo(savepath); + if (fi.Directory.Exists == false) fi.Directory.Create(); //폴더가 없다면 생성 + + //신규파일이므로, 해당 내용을 모두 옴겨놓는다(번호는 중요치않다) + List savedList = new List(); + if (fi.Exists) + { + var oldlist = System.IO.File.ReadAllLines(fi.FullName, System.Text.Encoding.UTF8); + savedList.AddRange(oldlist); + } + + //기존목록을 불러와서 없는 데이터만 추가해준다. + var newbuffer = System.IO.File.ReadAllLines(file, System.Text.Encoding.UTF8); + foreach (var line in newbuffer) + { + if (line.isEmpty() || line.StartsWith("#")) continue; + var buffer = line.Split('\t'); + var raw = buffer[3].Trim(); + if (savedList.Where(t => t == raw).Count() == 0) + savedList.Add(raw); + } + + //전체목록을 저장한다 + System.IO.File.WriteAllLines(fi.FullName, savedList.ToArray(), System.Text.Encoding.UTF8); + } + + public static int RemoveCache(string basefile) + { + var fi = new System.IO.FileInfo(basefile); + //해당폴더에서 해당 차수의 파일 및 다른 확장자 모두를 삭제한다. + var fisearch = fi.Name.Replace(fi.Extension, ".*"); + var delFiles = fi.Directory.GetFiles(fisearch, System.IO.SearchOption.TopDirectoryOnly); + if (delFiles.Count() < 1) return 0; + else + { + //파일을 삭제한다. + var cnt = 0; + try + { + foreach (var delFile in delFiles) + { + Pub.log.Add("보관파일삭제: " + delFile.FullName); + delFile.Delete(); + cnt += 1; + } + } + catch (Exception ex) + { + Pub.log.AddE(ex.Message); + } + return cnt; + } + } + public static void initDIOSensitive() + { + //인식 딜레이를 건다 + Pub.dio.SetInputSensitivity((int)eDIName.PORT0_DET_UP, Pub.setting.PortDetectFall, Pub.setting.PortDetectRise); + Pub.dio.SetInputSensitivity((int)eDIName.PORT1_DET_UP, Pub.setting.PortDetectFall, Pub.setting.PortDetectRise); + Pub.dio.SetInputSensitivity((int)eDIName.PORT2_DET_UP, Pub.setting.PortDetectFall, Pub.setting.PortDetectRise); + + Pub.dio.SetInputSensitivity((int)eDIName.BUT_AIRF, Pub.setting.AirChange); + + Pub.dio.SetInputSensitivity((int)eDIName.DOORF1, Pub.setting.SaftyDetectFall, Pub.setting.SaftyDetectRise); + Pub.dio.SetInputSensitivity((int)eDIName.DOORF2, Pub.setting.SaftyDetectFall, Pub.setting.SaftyDetectRise); + Pub.dio.SetInputSensitivity((int)eDIName.DOORF3, Pub.setting.SaftyDetectFall, Pub.setting.SaftyDetectRise); + Pub.dio.SetInputSensitivity((int)eDIName.DOORR1, Pub.setting.SaftyDetectFall, Pub.setting.SaftyDetectRise); + Pub.dio.SetInputSensitivity((int)eDIName.DOORR2, Pub.setting.SaftyDetectFall, Pub.setting.SaftyDetectRise); + Pub.dio.SetInputSensitivity((int)eDIName.DOORR3, Pub.setting.SaftyDetectFall, Pub.setting.SaftyDetectRise); + + Pub.log.AddAT("DIO 센서 감도 설정"); + } + + public static void initCore() + { + //system parameter + system = new SystemSetting(); + system.Load(); + + //setting + setting = new CSetting(); + setting.Load(); + + //user setting + uSetting = new UserSetting(); + uSetting.Load(); + + //counter setting + counter = new CounterSetting(); + counter.Load(); + + + //log + log = new arUtil.Log(); + logDbg = new arUtil.Log(); logDbg.FileNameFormat = "{yyyyMMdd}_DEBUG"; + logFlag = new arUtil.Log(); logFlag.FileNameFormat = "{yyyyMMdd}_FG"; + logILock = new arUtil.Log(); logILock.FileNameFormat = "{yyyyMMdd}_IL"; + logbarcode = new arUtil.Log(); logbarcode.FileNameFormat = "{yyyyMMdd}_BC"; + logWS = new arUtil.Log(); logWS.FileNameFormat = "{yyyyMMdd}_WS"; + logKeyence = new arUtil.Log(); logKeyence.FileNameFormat = "{yyyyMMdd}_KEY"; + logILStop = new arUtil.Log(); logKeyence.FileNameFormat = "{yyyyMMdd}_ILOCK"; + logVision = new arUtil.Log(); logVision.FileNameFormat = "{yyyyMMdd}_VISION"; + + //popupmessage + popup = new MessageWindow(); + popup.WindowClose += popup_WindowClose; + popup.WindowOpen += popup_WindowOpen; + + + //스텝관련 변수 초기화 - 201228 + var stepLen = 255; + _runStepSeq = new byte[stepLen]; + _runStepSeqStartTime = new DateTime[stepLen];// { DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now }; + _runstepn = new eRunStep[stepLen];// { eRunStep.NOTSET, eRunStep.NOTSET, eRunStep.NOTSET, eRunStep.NOTSET, eRunStep.NOTSET, eRunStep.NOTSET }; + _runstepo = new eRunStep[stepLen];// { eRunStep.NOTSET, eRunStep.NOTSET, eRunStep.NOTSET, eRunStep.NOTSET, eRunStep.NOTSET, eRunStep.NOTSET }; + for (int i = 0; i < stepLen; i++) + { + _runStepSeq[i] = 0; + _runStepSeqStartTime[i] = DateTime.Now; + _runstepn[i] = eRunStep.NOTSET; + _runstepo[i] = eRunStep.NOTSET; + } + + //zpl파일 만든다. + var fn = System.IO.Path.Combine(Util.CurrentPath, "zpl.txt"); + if (System.IO.File.Exists(fn) == false) + { + System.IO.File.WriteAllText(fn, Properties.Settings.Default.ZPL, System.Text.Encoding.Default); + } + + } + + + + static void popup_WindowOpen(object sender, EventArgs e) + { + var msgdata = sender as MessageWindow.CMessageData; + Console.WriteLine("window open : " + msgdata.Tag); + } + + static void popup_WindowClose(object sender, EventArgs e) + { + var msgdata = sender as MessageWindow.CMessageData; + Console.WriteLine("window close : " + msgdata.Tag); + } + public static void LogFlush() + { + Pub.log.Flush(); + Pub.logbarcode.Flush(); + Pub.logDbg.Flush(); + Pub.logFlag.Flush(); + Pub.logILock.Flush(); + Pub.logKeyence.Flush(); + Pub.logILStop.Flush(); + Pub.logVision.Flush(); + } + + public static void init() + { + Result = new CResult(); + + //state machine + sm = new StateMachine(); + + //database + mdm = new Manager.ModelManager( + Util.CurrentPath + "Model\\modelv.csv", + Util.CurrentPath + "Model\\modelc.csv"); + + //dbSQL = new Manager.DataBaseMSSQL(); + //dbmHistory = new Manager.DatabaseManagerHistory(); + dbmSidHistory = new Manager.DatabaseManagerSIDHistory(); + + dbmCount = new Manager.DatabaseManagerCount(); + dbmCount.dataPath = Pub.setting.Path_Data; //200113 + + dio = new arDev.AzinAxt.DIO(); + mot = new arDev.AzinAxt.MOT(); + + flag = new Flag(); + LockPKX = new CInterLock("PKX"); + LockPKZ = new CInterLock("PKZ"); + LockPKT = new CInterLock("PKT"); + LockPLM = new CInterLock("PLM"); + LockPLZ = new CInterLock("PLZ"); + LockPRM = new CInterLock("PRM"); + LockPRZ = new CInterLock("PRZ"); + LockPRL = new CInterLock("PRL"); + LockPRR = new CInterLock("PRR"); + LockVS0 = new CInterLock("VS0"); + LockVS1 = new CInterLock("VS1"); + LockVS2 = new CInterLock("VS2"); + + //가변 데이트타임변수 + Var_dateTime = new DateTime[64]; + for (int i = 0; i < Var_dateTime.Length; i++) + Var_dateTime[i] = DateTime.Parse("1982-11-23"); + + //language + Lang.Loading(Pub.setting.Language + ".ini"); + + LoadDataTable(); + + //allow list + userList = new DataSet1.UsersDataTable(); + string fn = AppDomain.CurrentDomain.BaseDirectory + "users.xml"; + if (System.IO.File.Exists(fn)) userList.ReadXml(fn); + else userList.WriteXml(fn, true); + + BuzzerTime = DateTime.Parse("1982-11-23"); + MGZRunTime = DateTime.Parse("1982-11-23"); + LoadSIDList(); //사용자sid목록 가져옴 + } + + + public static void CheckNRegister3(string prgmName, string develop, string prgmVersion) + { + if (prgmName.Length > 50) prgmName = prgmName.Substring(0, 50); //길이제한 + var task = Task.Factory.StartNew(() => + { + try + { + string ip = ""; + string mac = ""; + // string prgmName = Application.ProductName; + + var nif = NetworkInterface.GetAllNetworkInterfaces(); + var host = Dns.GetHostEntry(Dns.GetHostName()); + string fullname = System.Net.Dns.GetHostEntry("").HostName; + foreach (IPAddress r in host.AddressList) + { + string str = r.ToString(); + + if (str != "" && str.Substring(0, 3) == "10.") + { + ip = str; + break; + } + } + + string rtn = string.Empty; + ObjectQuery oq = new System.Management.ObjectQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled='TRUE'"); + ManagementObjectSearcher query1 = new ManagementObjectSearcher(oq); + foreach (ManagementObject mo in query1.Get()) + { + string[] address = (string[])mo["IPAddress"]; + if (address[0] == ip && mo["MACAddress"] != null) + { + mac = mo["MACAddress"].ToString(); + break; + } + } + + if (ip == "" || mac == "") + { + return; + } + + + SqlConnection conn = new SqlConnection("Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!"); + conn.Open(); + string ProcName = "AddPrgmUser3"; + SqlCommand cmd = new SqlCommand(ProcName, conn); + cmd.CommandType = CommandType.StoredProcedure; + + SqlParameter param = cmd.Parameters.Add("@mac", SqlDbType.NVarChar, 50); + param.Value = mac; + + param = cmd.Parameters.Add("@ip", SqlDbType.NVarChar, 50); + param.Value = ip; + + param = cmd.Parameters.Add("@pgrm", SqlDbType.NVarChar, 50); + param.Value = prgmName; + + param = cmd.Parameters.Add("@develop", SqlDbType.NVarChar, 50); + param.Value = develop; + + param = cmd.Parameters.Add("@pgver", SqlDbType.NVarChar, 50); + param.Value = prgmVersion; + + param = cmd.Parameters.Add("@prgmLogin", SqlDbType.VarChar, 20); + param.Value = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + + param = cmd.Parameters.Add("@account", SqlDbType.NVarChar, 50); + param.Value = System.Environment.UserName; + + param = cmd.Parameters.Add("@hostname", SqlDbType.NVarChar, 100); + param.Value = fullname; + + cmd.ExecuteNonQuery(); + conn.Close(); + } + catch (Exception ex) + { + Pub.log.AddE(ex.Message); + } + + }); + } + + /// + /// 디버깅정보르를 포함한 시스템 로그를 넣습니다. + /// + /// + /// + /// + /// + public static void AddSystemLog(string prgmVersion, string Screen, string Message, + [CallerFilePath] string filenpath = null, + [CallerLineNumber] int linenumer = -1, + [CallerMemberName] string callMember = null) + { + + var stackFrame = new System.Diagnostics.StackTrace(1).GetFrame(1); + string fileName = stackFrame.GetFileName(); + if (fileName.isEmpty()) fileName = filenpath; + + string methodName = stackFrame.GetMethod().ToString(); + if (methodName.isEmpty()) methodName = callMember; + + int lineNumber = stackFrame.GetFileLineNumber(); + if (linenumer != -1) lineNumber = linenumer; + + var maxlen = 100; + if (Screen.Length > maxlen) Screen = Screen.Substring(0, maxlen - 1); //길이제한 + maxlen = 255; + if (Message.Length > maxlen) Message = Message.Substring(0, maxlen - 1); //길이제한 + maxlen = 3000; + + var TraceInfo = stackFrame.ToString(); + if (TraceInfo.Length > maxlen) TraceInfo = TraceInfo.Substring(0, maxlen - 1); //길이제한 + + + var task = Task.Factory.StartNew(() => + { + try + { + string HostName = System.Net.Dns.GetHostEntry("").HostName; + + SqlConnection conn = new SqlConnection("Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!"); + conn.Open(); + string ProcName = "insert into SystemLog_STDLabelAttach(HostName,Version,Screen,Message,TraceInfo,wdate,FileName,LineNumber) values(@p1,@p2,@p3,@p4,@p5,@p6,@p7,@p8)"; + SqlCommand cmd = new SqlCommand(ProcName, conn); + cmd.CommandType = CommandType.Text; + var param = cmd.Parameters.Add("@p1", SqlDbType.VarChar, 50); + param.Value = HostName; + + param = cmd.Parameters.Add("@p2", SqlDbType.VarChar, 20); + param.Value = prgmVersion; + + param = cmd.Parameters.Add("@p3", SqlDbType.VarChar, 100); + param.Value = Screen; + + param = cmd.Parameters.Add("@p4", SqlDbType.VarChar, 255); + param.Value = Message; + + param = cmd.Parameters.Add("@p5", SqlDbType.VarChar); + param.Value = TraceInfo; + + param = cmd.Parameters.Add("@p6", SqlDbType.DateTime); + param.Value = DateTime.Now; + + param = cmd.Parameters.Add("@p7", SqlDbType.VarChar, 1000); + param.Value = fileName; + + param = cmd.Parameters.Add("@p8", SqlDbType.Int); + param.Value = lineNumber; + + var cnt = cmd.ExecuteNonQuery(); + conn.Close(); + } + catch (Exception ex) + { + Pub.log.AddE(ex.Message); + } + + }); + } + + public static void LoadDataTable() + { + mailForm = new DataSet1.MailFormatDataTable(); + string fn = AppDomain.CurrentDomain.BaseDirectory + "mailForm.xml"; + if (System.IO.File.Exists(fn)) mailForm.ReadXml(fn); + else + { + var nr = mailForm.NewMailFormatRow(); + nr.subject = ""; + nr.content = ""; + mailForm.AddMailFormatRow(nr); + mailForm.AcceptChanges(); + mailForm.WriteXml(fn, true); + } + mailList = new DataSet1.MailRecipientDataTable(); + string fn1 = AppDomain.CurrentDomain.BaseDirectory + "mailList.xml"; + if (System.IO.File.Exists(fn1)) mailList.ReadXml(fn1); + else mailList.WriteXml(fn, true); + } + public static Rectangle GetVisionOrientSearchArea( + Rectangle baserect, + int offsetX, + int offsetY, + out string VisionOrientMessage) + { + VisionOrientMessage = ""; + var newORectW = baserect.Width + offsetX; + var newORectH = baserect.Height + offsetY; + + var newORectX = baserect.X - ((newORectW - baserect.Width) / 2.0); + var newORectY = baserect.Y - ((newORectH - baserect.Height) / 2.0); + if (newORectX < 1) + { + newORectW += (int)newORectY; + newORectX = 1; + } + if (newORectY < 1) + { + newORectH += (int)newORectY; + newORectY = 1; + } + if (newORectW < 4) newORectW = 0; + if (newORectH < 4) newORectH = 0; + var newORect = new Rectangle((int)newORectX, (int)newORectY, (int)newORectW, (int)newORectH); + if (newORect.Width < 1 || newORect.Height < 1) + { + VisionOrientMessage = string.Format("기준영역 크기 오류({0},{1},{2},{3})", newORect.Left, newORect.Top, newORect.Width, newORect.Height); + return Rectangle.Empty; + } + else return newORect; + } + + public static void GetJobColor(Class.JobData.ErrorCode result, Color baseBack, out Color fColor, out Color bColor) + { + if (result == Class.JobData.ErrorCode.BarcodeRead) + { + //배출됫엇다면 색상을 변경한다. + fColor = Color.Tomato; + bColor = baseBack; + } + else + { + fColor = Color.WhiteSmoke; + bColor = baseBack; + } + } + + public static DataSet1.UserSIDDataTable DTUserSID; + public static void LoadSIDList() + { + if (DTUserSID == null) DTUserSID = new DataSet1.UserSIDDataTable(); + else DTUserSID.Clear(); + var fi = new System.IO.FileInfo(Util.CurrentPath + "Data\\UserSID.csv"); + + + if (fi.Exists == true) + { + string[] lines = null; + try + { + lines = System.IO.File.ReadAllLines(fi.FullName, System.Text.Encoding.UTF8); + } + catch (Exception ex) + { + Util.MsgE(ex.Message, true); + lines = new string[] { }; + } + foreach (var line in lines) + { + if (line.isEmpty()) continue; + if (line.StartsWith("#")) continue; //주석문 + var buffer = line.Split(','); + if (buffer.Length < 2) continue; + var port = buffer[0]; + var sid = buffer[1]; + if (sid.isEmpty()) continue; + if (port == "0") port = "11"; + if (port == "1") port = "12"; + if (port == "2") port = "21"; + if (port == "3") port = "22"; + if (port == "4") port = "31"; + if (port == "5") port = "32"; + if (port == "6") port = "41"; + if (port == "7") port = "42"; + + //중복체크 + var Exist = DTUserSID.Where(t => t.SID == sid && t.Port == port).Count() > 0; + if (Exist == false) + { + var newdr = DTUserSID.NewUserSIDRow(); + newdr.Port = port; + newdr.SID = sid; + DTUserSID.AddUserSIDRow(newdr); + } + } + } + else if (fi.Directory.Exists == false) fi.Directory.Create(); + + DTUserSID.AcceptChanges(); + Pub.log.Add("사용자 SID 목록 : " + DTUserSID.Count.ToString() + " 건 불러옴"); + } + public static void SaveSIDList() + { + if (DTUserSID == null) return; + var fi = new System.IO.FileInfo(Util.CurrentPath + "Data\\UserSID.csv"); + if (fi.Directory.Exists == false) fi.Directory.Create(); + + if (DTUserSID.Count < 1) fi.Delete(); + else + { + //자료를 저장한다. + var sb = new System.Text.StringBuilder(); + sb.AppendLine("#PORT,SID"); + var orderlist = from m in DTUserSID + orderby m.Port + orderby m.SID + select m; + + var cnt = 0; + foreach (DataSet1.UserSIDRow dr in orderlist) + { + if (dr.SID.isEmpty() || dr.Port.isEmpty()) continue; + sb.AppendLine(string.Format("{0},{1}", dr.Port, dr.SID)); + cnt += 1; + } + System.IO.File.WriteAllText(fi.FullName, sb.ToString(), System.Text.Encoding.UTF8); + Pub.log.Add(string.Format("{0}건의 사용자 sid가 저장되었습니다", cnt)); + } + } + + public static double GetFreeSpace(string driveletter) + { + try + { + var di = new System.IO.DriveInfo(driveletter); + var freespace = di.TotalFreeSpace; + var totalspace = di.TotalSize; + var freeSpaceRate = (freespace * 1.0 / totalspace) * 100.0; + return freeSpaceRate; + } + catch + { + return 100.0; + } + } + + public static string getSavePath(out double freespace) + { + Boolean path1Exist = false; + double freespace1 = 100.0; + string savePath1 = ""; + + freespace = 100.0; + + savePath1 = System.IO.Path.Combine(Pub.setting.Path_Data, "Images"); + if (savePath1 != "" && System.IO.Directory.Exists(savePath1)) + { + path1Exist = true; + //이폴더를 사용 + if (savePath1.StartsWith("\\")) return savePath1; + //남은잔량을 체크한다. + freespace1 = GetFreeSpace(savePath1.Substring(0, 1)); + if (freespace1 >= Pub.setting.AutoDeleteThreshold) return savePath1; + } + + if (path1Exist) + { + freespace = freespace1; + return savePath1; + } + + //이제 문제가 좀 심각? (폴더가 없다) + var savePath = System.IO.Path.Combine(Util.CurrentPath, "Images"); + if (System.IO.Directory.Exists(savePath) == false) + System.IO.Directory.CreateDirectory(savePath); + + freespace = GetFreeSpace(savePath.Substring(0, 1)); + return savePath; + } + public static double ChangeValuePopup(double value, string title) + { + Dialog.fInput f = new Dialog.fInput(value.ToString(), title); + if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK) + { + var val = double.Parse(f.tbInput.Text); + return val; + } + else return value; + + } + + public static UInt16[] SIDtoUInt16(string sid) + { + var sidstr = sid.PadLeft(10, '0'); //총 10자리로 만들어놓는다 + var getbytes = System.Text.Encoding.Default.GetBytes(sidstr); + + var c1 = getbytes[1].ToString("X2") + getbytes[0].ToString("x2"); + var c2 = getbytes[3].ToString("X2") + getbytes[2].ToString("x2"); + var c3 = getbytes[5].ToString("X2") + getbytes[4].ToString("x2"); + var c4 = getbytes[7].ToString("X2") + getbytes[6].ToString("x2"); + var c5 = getbytes[9].ToString("X2") + getbytes[8].ToString("x2"); + + var Buffer = new UInt16[5]; + var index = 0; + Buffer[index++] = Convert.ToUInt16(c1, 16); + Buffer[index++] = Convert.ToUInt16(c2, 16); + Buffer[index++] = Convert.ToUInt16(c3, 16); + Buffer[index++] = Convert.ToUInt16(c4, 16); + Buffer[index++] = Convert.ToUInt16(c5, 16); + return Buffer; + } + + public static void ChangeUIPopup(System.Windows.Forms.NumericUpDown valueCtl) + { + var value = valueCtl.Value.ToString(); + Dialog.fInput f = new Dialog.fInput(value); + if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK) + { + var val = decimal.Parse(f.tbInput.Text); + if (val < valueCtl.Minimum) + { + Util.MsgE(string.Format("최소 입력값은 {0} 입니다.", valueCtl.Minimum)); + val = valueCtl.Minimum; + } + if (val > valueCtl.Maximum) + { + Util.MsgE(string.Format("최대 입력값은 {0} 입니다.", valueCtl.Maximum)); + val = valueCtl.Maximum; + } + valueCtl.Value = val; + } + + } + + } +} diff --git a/Handler/Project_form2/Resources/icons8-cancel-40.png b/Handler/Project_form2/Resources/icons8-cancel-40.png new file mode 100644 index 0000000..7d1f298 Binary files /dev/null and b/Handler/Project_form2/Resources/icons8-cancel-40.png differ diff --git a/Handler/Project_form2/Resources/icons8-checked-40.png b/Handler/Project_form2/Resources/icons8-checked-40.png new file mode 100644 index 0000000..8d08969 Binary files /dev/null and b/Handler/Project_form2/Resources/icons8-checked-40.png differ diff --git a/Handler/Project_form2/Resources/icons8-checked-radio-button-48.png b/Handler/Project_form2/Resources/icons8-checked-radio-button-48.png new file mode 100644 index 0000000..7130e2f Binary files /dev/null and b/Handler/Project_form2/Resources/icons8-checked-radio-button-48.png differ diff --git a/Handler/Project_form2/Resources/icons8-copy-40.png b/Handler/Project_form2/Resources/icons8-copy-40.png new file mode 100644 index 0000000..29c6ef5 Binary files /dev/null and b/Handler/Project_form2/Resources/icons8-copy-40.png differ diff --git a/Handler/Project_form2/Resources/icons8-exercise-40.png b/Handler/Project_form2/Resources/icons8-exercise-40.png new file mode 100644 index 0000000..ee72597 Binary files /dev/null and b/Handler/Project_form2/Resources/icons8-exercise-40.png differ diff --git a/Handler/Project_form2/Resources/icons8-new-40.png b/Handler/Project_form2/Resources/icons8-new-40.png new file mode 100644 index 0000000..85f3a28 Binary files /dev/null and b/Handler/Project_form2/Resources/icons8-new-40.png differ diff --git a/Handler/Project_form2/Resources/icons8-no-running-40.png b/Handler/Project_form2/Resources/icons8-no-running-40.png new file mode 100644 index 0000000..be7c877 Binary files /dev/null and b/Handler/Project_form2/Resources/icons8-no-running-40.png differ diff --git a/Handler/Project_form2/Resources/icons8-plus-40.png b/Handler/Project_form2/Resources/icons8-plus-40.png new file mode 100644 index 0000000..aab1bc3 Binary files /dev/null and b/Handler/Project_form2/Resources/icons8-plus-40.png differ diff --git a/Handler/Project_form2/Resources/icons8-running-40.png b/Handler/Project_form2/Resources/icons8-running-40.png new file mode 100644 index 0000000..6329e3a Binary files /dev/null and b/Handler/Project_form2/Resources/icons8-running-40.png differ diff --git a/Handler/Project_form2/Resources/icons8-save-40.png b/Handler/Project_form2/Resources/icons8-save-40.png new file mode 100644 index 0000000..a096fb1 Binary files /dev/null and b/Handler/Project_form2/Resources/icons8-save-40.png differ diff --git a/Handler/Project_form2/Resources/icons8-unavailable-40.png b/Handler/Project_form2/Resources/icons8-unavailable-40.png new file mode 100644 index 0000000..ecf2604 Binary files /dev/null and b/Handler/Project_form2/Resources/icons8-unavailable-40.png differ diff --git a/Handler/Project_form2/STDLabelAttach_Recv.csproj b/Handler/Project_form2/STDLabelAttach_Recv.csproj new file mode 100644 index 0000000..7fe1b14 --- /dev/null +++ b/Handler/Project_form2/STDLabelAttach_Recv.csproj @@ -0,0 +1,938 @@ + + + + + Debug + AnyCPU + {65F3E762-800C-499E-862F-A535642EC54F} + WinExe + Project + Amkor + v4.7 + 512 + false + False + False + OnBuildSuccess + False + False + False + obj\$(Configuration)\ + + + + 게시\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + x64 + true + Full + False + ..\..\..\..\..\Amkor\BulkReelReader\ + DEBUG;TRACE + prompt + 4 + false + + + AnyCPU + pdbonly + true + ..\..\..\ManualMapEditor\ + TRACE + prompt + 4 + false + + + icons8-split-64.ico + + + LocalIntranet + + + false + + + + true + ..\..\..\STDLabelAttach%28Recv%29\ + DEBUG;TRACE + full + x64 + prompt + MinimumRecommendedRules.ruleset + false + + + bin\ + TRACE + true + pdbonly + x86 + prompt + MinimumRecommendedRules.ruleset + false + + + Project + False + obj\ + + + 4194304 + False + Auto + + + + + + + ..\DLL\ArLog.Net4.dll + + + False + ..\DLL\ArSetting.Net4.dll + + + ..\packages\chilkat-x64.9.5.0.77\lib\net47\ChilkatDotNet47.dll + + + False + ..\..\..\Library\SR_SDK\SDK\x64\Communication.dll + + + C:\Emgu\emgucv-windesktop 3.2.0.2682\bin\Emgu.CV.DebuggerVisualizers.VS2017.dll + + + C:\Emgu\emgucv-windesktop 3.2.0.2682\bin\Emgu.CV.UI.dll + + + C:\Emgu\emgucv-windesktop 3.2.0.2682\bin\Emgu.CV.World.dll + + + ..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll + + + ..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.SqlServer.dll + + + ..\packages\HidSharp.2.1.0\lib\net35\HidSharp.dll + + + False + ..\..\..\Library\SR_SDK\SDK\x64\Keyence.AutoID.SDK.dll + + + False + ..\DLL\libxl\libxl.net.dll + + + ..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll + + + C:\Program Files (x86)\Euresys\Open eVision 2.11\Bin64\Open_eVision_NetApi_2_11.dll + + + False + .\SoftekBarcodeNet.dll + + + + + + + ..\packages\System.Drawing.Common.5.0.0\lib\net461\System.Drawing.Common.dll + + + ..\packages\System.Drawing.Primitives.4.3.0\lib\net45\System.Drawing.Primitives.dll + + + + + + + + + + + + + + + + + + + False + ..\..\..\Library\SR_SDK\SDK\x64\VncClientControlCommon.dll + + + False + ..\..\..\Library\SR_SDK\SDK\x64\VncClientControlCommonLib.dll + + + ..\DLL\WatsonWebsocket.dll + + + + + StateMachine\DisplayTextHandler.cs + Form + + + StateMachine\EnumStruct.cs + + + StateMachine\EventArgs.cs + + + StateMachine\Loop\OVERLOAD.cs + Form + + + StateMachine\Loop\RUN.cs + Form + + + StateMachine\Loop\SM_LIVEVIEW.cs + Form + + + StateMachine\Main\_SM_MAIN_ERROR.cs + Form + + + StateMachine\Main\_SM_MAIN_POSRESET.cs + Form + + + StateMachine\Run\_RUN_MOT_PL_Move.cs + Form + + + StateMachine\Run\_RUN_MOT_PL_UpDn.cs + Form + + + StateMachine\Run\_RUN_MOT_PORT.cs + Form + + + StateMachine\Run\_RUN_MOT_PX.cs + Form + + + StateMachine\Run\_RUN_MOT_PZ.cs + Form + + + StateMachine\Run\_RUN_PRINTER.cs + Form + + + StateMachine\Run\_RUN_VISION.cs + Form + + + StateMachine\Run\_SM_RUN_00_INIT.cs + Form + + + StateMachine\Run\_SM_RUN_10_STARTCHKSW.cs + Form + + + StateMachine\Run\_SM_RUN_11_STARTCHKHW.cs + Form + + + StateMachine\Run\_SM_RUN_12_INITIALHW.cs + Form + + + StateMachine\Run\_SM_RUN_50_ITEM_PICKOF.cs + Form + + + StateMachine\Run\_SM_RUN_51_ITEM_PICKON.cs + Form + + + StateMachine\Run\_SM_RUN_60_PRINTER_PICKOF.cs + Form + + + StateMachine\Run\_SM_RUN_61_PRINTER_PICKON.cs + Form + + + StateMachine\Run\_SM_RUN_99_SAVEDATA.cs + Form + + + StateMachine\Run\_SM_RUN_Z0_QUICK_HOME.cs + Form + + + StateMachine\Run\_SM_RUN_Z0_SAFTY_HOME.cs + Form + + + StateMachine\_Close.cs + Form + + + StateMachine\_Dio.cs + Form + + + StateMachine\_Flag.cs + Form + + + StateMachine\_Joystick.cs + Form + + + StateMachine\_Keyence.cs + Form + + + StateMachine\_Keyence_Rule_ReturnReel.cs + Form + + + StateMachine\_Loop.cs + Form + + + StateMachine\_Motion.cs + Form + + + StateMachine\_SM_RUN.cs + Form + + + StateMachine\_SPS.cs + Form + + + StateMachine\_TMDisplay.cs + Form + + + StateMachine\_Vision.cs + Form + + + + + + + + + + Model1.tt + + + Model1.tt + + + Model1.tt + + + Model1.tt + + + Model1.tt + + + Model1.tt + + + Form + + + Form + + + fDataBufferSIDRef.cs + + + Form + + + fEmulator.cs + + + Form + + + fImportSIDInfo.cs + + + Form + + + fImportSIDConv.cs + + + Form + + + fLoaderInfo.cs + + + Form + + + fNewReelID.cs + + + Form + + + fNewSID.cs + + + Form + + + fPickerMove.cs + + + Form + + + fSelectCustInfo.cs + + + Form + + + fSelectResult.cs + + + Form + + + fSelectDataList.cs + + + Form + + + fSelectDay.cs + + + Form + + + fSelectJob.cs + + + Form + + + fSelectSID.cs + + + + + + + + + Form + + + fDebug.cs + + + Form + + + fFinishJob.cs + + + Form + + + fSIDQty.cs + + + Form + + + + + DataSet1.xsd + + + True + True + DataSet1.xsd + + + + Form + + + QuickControl.cs + + + Form + + + fIOMonitor.cs + + + Form + + + fInput.cs + + + Form + + + fLog.cs + + + Form + + + fMessageBox.cs + + + Form + + + fTouchKey.cs + + + Form + + + fTouchKeyFull.cs + + + Form + + + fTouchNumDot.cs + + + Form + + + fPassword.cs + + + Form + + + fErrorException.cs + + + Form + + + SystemParameter.cs + + + DSList.xsd + + + DSList.xsd + True + True + + + Form + + + fMain.cs + + + Form + + + fModelV.cs + + + Form + + + fModelM.cs + + + + True + True + Model1.Context.tt + + + True + True + Model1.tt + + + True + True + Model1.edmx + + + + Form + + + fSetting.cs + + + + + + + + + Form + + + fMsgWindow.cs + + + + + + + + + + Form + + + + CtlBase.cs + + + Component + + + CtlContainer.cs + + + Component + + + CtlCylinder.cs + + + Component + + + CtlMotor.cs + + + Component + + + CtlSensor.cs + + + Component + + + CtlTowerLamp.cs + + + + Form + + + Form + + + + + + + Model1.tt + + + fDataBufferSIDRef.cs + + + fEmulator.cs + + + fImportSIDInfo.cs + + + fImportSIDConv.cs + + + fLoaderInfo.cs + + + fNewReelID.cs + + + fNewSID.cs + + + fPickerMove.cs + + + fSelectCustInfo.cs + + + fSelectResult.cs + + + fSelectDataList.cs + + + fSelectDay.cs + + + fSelectJob.cs + + + fDebug.cs + + + fFinishJob.cs + + + QuickControl.cs + + + fSelectSID.cs + + + fIOMonitor.cs + + + fInput.cs + + + fLog.cs + + + fMessageBox.cs + + + fSIDQty.cs + + + fTouchKey.cs + + + fTouchKeyFull.cs + + + fTouchNumDot.cs + + + fPassword.cs + + + fErrorException.cs + + + SystemParameter.cs + + + fMain.cs + Designer + + + fModelV.cs + + + fModelM.cs + + + fSetting.cs + + + fMsgWindow.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + CtlMotor.cs + + + + DataSet1.xsd + + + Designer + MSDataSetGenerator + DataSet1.Designer.cs + + + DataSet1.xsd + Designer + + + EntityModelCodeGenerator + Model1.Designer.cs + + + DSList.xsd + + + MSDataSetGenerator + DSList.Designer.cs + Designer + + + DSList.xsd + + + Model1.edmx + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + PreserveNewest + + + PreserveNewest + + + + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + TextTemplatingFileGenerator + Model1.Context.cs + Model1.edmx + + + TextTemplatingFileGenerator + Model1.edmx + Model1.cs + + + + + + + + + + + + + + + + + False + Microsoft .NET Framework 4%28x86 및 x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 4.5 + true + + + + + {9264cd2e-7cf8-4237-a69f-dcda984e0613} + UIControl + + + {58cfc90c-5068-46a2-a8de-0e92ee9e0990} + AmkorRestfulService + + + {4f457e76-bf83-4b98-8565-ae87d7d16744} + arAzinAxt + + + {f31c242c-1b15-4518-9733-48558499fe4b} + arControl + + + {a16c9667-5241-4313-888e-548375f85d29} + arFrameControl + + + {ed0d4179-fc0d-48d5-8bb3-cbf0f03d170c} + arImageViewer.Emgu + + + {802df40d-660e-4d72-b982-2fe5e6a7df1a} + arRS232 + + + {b18d3b96-2fdf-4ed9-9a49-d9b8cee4ed6d} + StdLabelPrint + + + + + + + + + + \ No newline at end of file diff --git a/Handler/Project_form2/Setting/CSetting.cs b/Handler/Project_form2/Setting/CSetting.cs new file mode 100644 index 0000000..57c5ccc --- /dev/null +++ b/Handler/Project_form2/Setting/CSetting.cs @@ -0,0 +1,548 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel; + +namespace Project +{ + public class CSetting : arUtil.Setting + { + #region "log" + + [Category("System Log - Main")] + public Boolean Log_CameraConn { get; set; } + [Category("System Log - Main"), DisplayName("Digital Input"), + Description("입/출력 장치의 상태 변화를 기록 합니다.")] + public Boolean Log_DI { get; set; } + [Category("System Log - Main"), DisplayName("Digital Output"), + Description("입/출력 장치의 상태 변화를 기록 합니다.")] + public Boolean Log_DO { get; set; } + [Category("System Log - Main"), DisplayName("Network Alive Check(Ping)"), + Description("디버그 메세지 사용")] + public Boolean Log_Debug { get; set; } + [Category("System Log - Main"), DisplayName("S/M Step Change"), + Description("상태머신의 변화 상태를 기록 합니다.")] + public Boolean Log_StepChange { get; set; } + [Category("System Log - Main"), DisplayName("Motion State Change"), + Description("모션 상태 변화를 기록 합니다.")] + public Boolean Log_motState { get; set; } + [Category("System Log - Main")] + public Boolean Log_flag { get; set; } + [Category("System Log - Main")] + public Boolean Log_ILock { get; set; } + [Category("System Log - Function"), DisplayName("Inter Lock")] + public Boolean Enable_Log_ILock { get; set; } + [Category("System Log - Function"), DisplayName("Flag")] + public Boolean Enable_Log_Flag { get; set; } + [Category("System Log - Function"), DisplayName("Motor Stop Message")] + public Boolean Enable_Log_MotStopReason { get; set; } + + + #endregion + + #region "Communication" + + + + [Category("Communication"), DisplayName("키엔스바코드IP"), Description("키엔스 바코드 프로그램의 접속 IP Address")] + public string IP_Barcode { get; set; } + + + + #endregion + + #region "Time Out" + + [Category("Timeout Setting"), DisplayName()] + public int Timeout_AutoConfirm { get; set; } + + [Category("Timeout Setting"), DisplayName("작업 완료 대기시간(단위:초)")] + public int Timeout_JOBEnd { get; set; } + + [Category("Timeout Setting"), DisplayName("최대비젼분석시간(로더)")] + public int Timeout_VisionProcessL { get; set; } + + [Category("Timeout Setting"), DisplayName("최대비젼분석시간(언로더)")] + public int Timeout_VisionProcessU { get; set; } + + [Category("Timeout Setting"), DisplayName("장비 초기화 대기시간(단위:초)")] + public int Timeout_HomeSearch { get; set; } + + [Category("Timeout Setting"), DisplayName("개별 동작의 대기시간(단위:초)")] + public double Timeout_StepMaxTime { get; set; } + + [Category("Timeout Setting"), DisplayName("모션의 최대 동작시간(단위:초)")] + public int Timeout_MotionCommand { get; set; } + + [Category("Timeout Setting"), DisplayName("DIO의 최대 동작시간(단위:초)")] + public int Timeout_DIOCommand { get; set; } + + + + #endregion + + #region "Advanced Parameter" + [Category("Advanced Parameter"), DisplayName("Remote Contoller Port"), Description("디버그 포트 정보(시리얼통신), 입력 예) COM1:9600")] + public string Serial_Remocon { get; set; } + [Category("Advanced Parameter"), Browsable(false)] + public Boolean Disable_PrinterL { get; set; } + [Category("Advanced Parameter"), Browsable(false)] + public Boolean Disable_PrinterR { get; set; } + + [Category("Advanced Parameter"), Browsable(false)] + public Boolean Disable_PLVac { get; set; } + [Category("Advanced Parameter"), Browsable(false)] + public Boolean Disable_PRVac { get; set; } + [Category("Advanced Parameter"), Browsable(false)] + public Boolean Disable_PKVac { get; set; } + + [Category("Advanced Parameter"), Browsable(false)] + public Boolean Disable_Port0 { get; set; } + [Category("Advanced Parameter")] + public Boolean Disable_Port1 { get; set; } + [Category("Advanced Parameter"), Browsable(false)] + public Boolean Disable_Port2 { get; set; } + + [Category("Advanced Parameter")] + public Boolean Disable_SIDReferenceCheck { get; set; } + + [Category("Advanced Parameter")] + public Boolean Enable_ButtonStart { get; set; } + [Category("Advanced Parameter")] + public Boolean Disable_RequestJobSeqNo { get; set; } + [Category("Advanced Parameter")] + public Boolean DisableSensor_AIRCheck { get; set; } + + [Category("Advanced Parameter"), Browsable(false)] + public Boolean Disable_TowerLamp { get; set; } + + [Category("Advanced Parameter"), Browsable(false)] + public Boolean Disable_RoomLight { get; set; } + + + [Category("Advanced Parameter")] + public bool Disable_vacum { get; set; } + + [Category("Advanced Parameter"), DisplayName("*.속도제한")] + public Boolean Enable_SpeedLimit { get; set; } + [Category("Advanced Parameter"), DisplayName("*.최대속도")] + public int LimitSpeed { get; set; } + + [Category("Advanced Parameter"), Browsable(false)] + public Boolean Disable_SidQtyCheck { get; set; } + + + [Category("Advanced Parameter")] + public Boolean Disable_Axis0 { get; set; } + [Category("Advanced Parameter")] + public Boolean Disable_Axis1 { get; set; } + [Category("Advanced Parameter")] + public Boolean Disable_Axis2 { get; set; } + [Category("Advanced Parameter")] + public Boolean Disable_Axis3 { get; set; } + [Category("Advanced Parameter")] + public Boolean Disable_Axis4 { get; set; } + [Category("Advanced Parameter")] + public Boolean Disable_Axis5 { get; set; } + [Category("Advanced Parameter")] + public Boolean Disable_Axis6 { get; set; } + [Category("Advanced Parameter")] + public Boolean EnableDebugMode { get; set; } + + #endregion + + #region "function" + + [Browsable(false)] + public Boolean Disable_safty_F0 { get; set; } + [Browsable(false)] + public Boolean Disable_safty_F1 { get; set; } + [Browsable(false)] + public Boolean Disable_safty_F2 { get; set; } + [Browsable(false)] + public Boolean Disable_safty_R0 { get; set; } + [Browsable(false)] + public Boolean Disable_safty_R1 { get; set; } + [Browsable(false)] + public Boolean Disable_safty_R2 { get; set; } + + [Browsable(false)] + public Boolean Disable_Buzzer { get; set; } + + [Browsable(false)] + public Boolean Enable_RQAuto { get; set; } + + [Browsable(false)] + public Boolean Enable_Magnet0 { get; set; } + + [Browsable(false)] + public Boolean Enable_Magnet1 { get; set; } + + [Browsable(false)] + public Boolean Enable_Magnet2 { get; set; } + + [Browsable(false)] + public Boolean Disable_Left { get; set; } + + [Browsable(false)] + public Boolean Disable_Right { get; set; } + + + public string GetPathData() + { + if (Path_Data.isEmpty()) return System.IO.Path.Combine(Util.CurrentPath, "SaveData"); + else return Path_Data; + } + + [Category("Function"), DisplayName("라벨QR코드검증"), Description("부착된 라벨의 QR코드를 인쇄데이터와 검증 합니다")] + public Boolean Enable_Unloader_QRValidation { get; set; } + + [Category("Function"), DisplayName("촬영이미지저장")] + public Boolean Save_Image { get; set; } + + [Category("Function"), DisplayName("피커자동이동(전면도어)")] + public Boolean PickerAutoMoveForDoor { get; set; } + + [Category("Function"), DisplayName("Data Save Path")] + public string Path_Data { get; set; } + + [Category("Function"), Browsable(false), DisplayName("실내등 자동 제어"), + Description("도어 상태에 따라서 내부 조명을 자동 ON/OFF 합니다")] + public Boolean Enable_AutoLight { get; set; } + + //[Category("Function"), DisplayName("AIR OFF Timer(ms)"), + //Description("공압 OFF시 유지 시간(ms), 지정 시간 동안 스위치를 ON 시켜야 공압이 OFF 됩니다.")] + //public int AirOFFTimer { get; set; } + + [Category("Function"), DisplayName("부저 동작시간(ms)"), + Description("부저 발생시 지정된 시간(ms) 동안 부저가 울립니다")] + public int buzz_run_ms { get; set; } + + #endregion + + #region "Vision" + [Category("Vision"), DisplayName("13' 이미지 중앙 위치"), Description("키엔스 이미지의 회전축 좌표")] + public System.Drawing.Point CenterPosition13 { get; set; } + [Category("Vision"), DisplayName("7' 이미지 중앙 위치"), Description("키엔트 이미지의 회전축 좌표")] + public System.Drawing.Point CenterPosition7 { get; set; } + + [Category("Vision"), DisplayName("Vision Refresh Time"), Description("좌/우 비젼의 갱신 시간(ms)")] + public int Vis_Liveview_Interval { get; set; } + [Category("Vision"), DisplayName("카메라사용안함(좌)")] + public Boolean DisableCamera0 { get; set; } + [Category("Vision"), DisplayName("카메라사용안함(우)")] + public Boolean DisableCamera2 { get; set; } + + public float RosRectScale { get; set; } + + + [Category("Vision")] + public float AngleOffsetL { get; set; } + [Category("Vision")] + public float AngleOffsetR { get; set; } + + public Boolean DisableCamera(int idx) + { + if (idx == 0) return DisableCamera0; + else if (idx == 1) return false; + else return DisableCamera2; + } + #endregion + + #region "Vision Processing" + //[Category("Vision Processing")] + //public int processCount { get; set; } + [Category("Vision Processing")] + public string erodevaluestr { get; set; } + [Category("Vision Processing")] + public uint blob_area_min { get; set; } + [Category("Vision Processing")] + public uint blob_area_max { get; set; } + [Category("Vision Processing")] + public float blob_sigmaxy { get; set; } + [Category("Vision Processing")] + public float blob_sigmayy { get; set; } + [Category("Vision Processing")] + public float blob_sigmaxx { get; set; } + //[Category("Vision Processing")] + //public Boolean SaveErrorImage { get; set; } + [Category("Vision Processing")] + public string GainOffsetListStr { get; set; } + + #endregion + + #region "Count Reset Setting" + + [Category("Count Reset Setting"), Browsable(false), DisplayName("A/M Clear Enable"), + Description("오전 초기화 여부\n작업수량을 초기화 하려면 True 로 설정하세요")] + public Boolean datetime_Check_1 { get; set; } + [Category("Count Reset Setting"), Browsable(false), DisplayName("P/M Clear Enable"), + Description("오후 초기화 여부\n작업수량을 초기화 하려면 True 로 설정하세요")] + public Boolean datetime_Check_2 { get; set; } + [Category("Count Reset Setting"), Browsable(false), DisplayName("A/M Clear Time(HH:mm)"), + Description("오전 초기화 시간(시:분)\n예) 09:00")] + public string datetime_Reset_1 { get; set; } + [Category("Count Reset Setting"), Browsable(false), DisplayName("P/M Clear Time(HH:mm)"), + Description("오후 초기화 시간(시:분)\n예) 19:00")] + public string datetime_Reset_2 { get; set; } + + #endregion + + #region "Sensitive" + [Category("Sensitive"), DisplayName("언/로더포트 감지(fall)")] + public ushort PortDetectFall { get; set; } + [Category("Sensitive"), DisplayName("언/로더포트 감지(rise)")] + public ushort PortDetectRise { get; set; } + [Category("Sensitive"), DisplayName("도어 감지센서(rise)")] + public ushort SaftyDetectRise { get; set; } + [Category("Sensitive"), DisplayName("도어 감지센서(rise)")] + public ushort SaftyDetectFall { get; set; } + [Category("Sensitive"), DisplayName("AIR 버튼(rise/fall)")] + public ushort AirChange { get; set; } + + #endregion + + #region "Operation Delay" + [Category("Operation Delay(sec)"), DisplayName("라벨 붙인 후 대기 시간"), Description("라벨 부착 후 PURGE 대기 시간")] + public float PrintVacOffPurgesec { get; set; } + [Category("Operation Delay(sec)"), DisplayName("카트감지대기시간(좌)"), Description("지정된 시간 이후에 카트가 HOLD 됩니다- ms")] + public ushort WaitTime_Magnet0 { get; set; } + [Category("Operation Delay(sec)"), DisplayName("카트감지대기시간(중앙)"), Description("지정된 시간 이후에 카트가 HOLD 됩니다- ms")] + public ushort WaitTime_Magnet1 { get; set; } + [Category("Operation Delay(sec)"), DisplayName("카트감지대기시간(우)"), Description("지정된 시간 이후에 카트가 HOLD 됩니다 - ms")] + public ushort WaitTime_Magnet2 { get; set; } + [Category("Operation Delay(sec)"), DisplayName("프린트후대기시간(좌s)"), Description("프린터 라벨 출력 후 대기 시간(좌)- ms")] + public int PrintLWaitMS { get; set; } + [Category("Operation Delay(sec)"), DisplayName("프린트후대기시간(우)"), Description("프린터 라벨 출력 후 대기 시간(우)- ms")] + public int PrintRWaitMS { get; set; } + [Category("Operation Delay(sec)"), DisplayName("포트 하강 시간(Unloader)"), Description("포트 정렬시 지정된 시간동안 하강 합니다")] + public float PortAlignDownTimeU { get; set; } + [Category("Operation Delay(sec)"), DisplayName("포트 하강 시간(Loader)"), Description("포트 정렬시 지정된 시간동안 하강 합니다")] + public float PortAlignDownTimeL { get; set; } + [Category("Operation Delay(sec)"), DisplayName("Loder포트 하강 시간(Finish)"), Description("작업 완료 후 지정된 시간(ms) 만큼 하강 합니다")] + public ushort Port1FisnishDownTime { get; set; } + #endregion + + + [Category("General Setting"), DisplayName("장비 자산 번호")] + public string Asset { get; set; } + + [Category("General Setting"), DisplayName("무시바코드"), Description("입려된 값으로 시작하는 바코드를 무시합니다. 여러개 입력하려면 콤마(,) 로 구분 하세요")] + public string IgnoreBarcode { get; set; } + + [Category("General Setting")] + public string ReelIdDeviceID { get; set; } + [Category("General Setting")] + public string ReelIdDeviceLoc { get; set; } + + public Boolean MoveYForPaperVaccume { get; set; } + public float MoveYForPaperVaccumeValue { get; set; } + + public uint MoveYForPaperVaccumeVel { get; set; } + + public uint MoveYForPaperVaccumeAcc { get; set; } + + public Boolean OnlineMode { get; set; } + + + public string HostIPL { get; set; } + public string HostIPR { get; set; } + public int HostPortL { get; set; } + public int HostPortR { get; set; } + + public string CameraLFile { get; set; } + public string CameraRFile { get; set; } + + public Boolean STDLabelFormat7 { get; set; } + #region "Printer" + [Category("Printer"), DisplayName("프린트이름(좌)"), Description("프린트 장치 이름")] + public string PrintLeftName { get; set; } + [Category("Printer"), DisplayName("프린트이름(우)"), Description("프린트 장치 이름")] + public string PrintRightName { get; set; } + [Category("Printer"), DisplayName("바코드 외곽 박스 그리기")] + public Boolean DrawOutbox { get; set; } + + #endregion + + [Category("Joystick")] + public int Jostick_vid { get; set; } + [Category("Joystick")] + public int Jostick_pid { get; set; } + + #region "general" + + + + + [Category("General Setting"), Browsable(false), + Description("데이터 자동 소거 기간(일) 비활성=0")] + public int AutoDeleteDay { get; set; } + [Category("General Setting"), Browsable(false), + Description("데이터 자동 소거 조건(남은용량 %)")] + public int AutoDeleteThreshold { get; set; } + + [Category("General Setting"), Browsable(false)] + public string Password_Setup { get; set; } + + [Category("General Setting"), Browsable(false)] + public string Language { get; set; } + + [Category("General Setting"), DisplayName("Full Screen Window State"), + Description("화면을 전체화면으로 사용 합니다.")] + public Boolean FullScreen { get; set; } + + + #region "표시안함" + [Category("Sensor Detect"), Browsable(false)] + public Boolean Detect_CartL { get; set; } + [Category("Sensor Detect"), Browsable(false)] + public Boolean Detect_CartC { get; set; } + [Category("Sensor Detect"), Browsable(false)] + public Boolean Detect_CartR { get; set; } + [Category("Sensor Detect"), Browsable(false)] + public Boolean Detect_PrintL { get; set; } + [Category("Sensor Detect"), Browsable(false)] + public Boolean Detect_PrintR { get; set; } + [Category("Sensor Detect"), Browsable(false)] + public Boolean Detect_CenterSafty { get; set; } + #endregion + + #endregion + + public override void AfterLoad() + { + if (HostIPL.isEmpty() && HostPortL < 1) + { + HostIPL = "127.0.0.1"; + HostPortL = 7979; + } + if (HostIPR.isEmpty() && HostPortR < 1) + { + HostIPR = "127.0.0.1"; + HostPortR = 7980; + } + if (ReelIdDeviceLoc.isEmpty()) ReelIdDeviceLoc = "4"; + if (ReelIdDeviceID.isEmpty()) ReelIdDeviceID = "A"; + if (IgnoreBarcode.isEmpty()) IgnoreBarcode = "{{{"; + if (Timeout_AutoConfirm == 0) Timeout_AutoConfirm = 5; + if (PrintVacOffPurgesec <= 0.0) PrintVacOffPurgesec = 1.1f; + if (MoveYForPaperVaccumeVel == 0) MoveYForPaperVaccumeVel = 10; + if (MoveYForPaperVaccumeAcc == 0) MoveYForPaperVaccumeAcc = 1000; + if (blob_area_max == 0 && blob_area_min == 0) + { + //processCount = 6; + erodevaluestr = "3,1"; + blob_area_min = 5000; + blob_area_max = 50000; + blob_sigmaxy = 500f; + blob_sigmaxx = 5000f; + blob_sigmayy = 500f; + } + + if (RosRectScale == 0f) + RosRectScale = 1.5f; + + //포트얼라인시간 210401 + if (PortAlignDownTimeU == 0f && + PortAlignDownTimeL == 0f) + { + PortAlignDownTimeL = 1.5f; + PortAlignDownTimeU = 1.0f; + } + + //if (Port1FisnishDownTime == 0) + // Port1FisnishDownTime = 5000; + + if (GainOffsetListStr.isEmpty()) + { + GainOffsetListStr = "1,0;1.3,0;1,50;1,-50;3,50;0.5,-20;2.5,150;2,0"; + } + + if (Jostick_vid == 0) Jostick_vid = 121; + if (Jostick_pid == 0) Jostick_pid = 17; + + if (PrintLWaitMS == 0) PrintLWaitMS = 1500; + if (PrintRWaitMS == 0) PrintRWaitMS = 1500; + + if (WaitTime_Magnet0 == 0) WaitTime_Magnet0 = 3000; + if (WaitTime_Magnet1 == 0) WaitTime_Magnet1 = 3000; + if (WaitTime_Magnet2 == 0) WaitTime_Magnet2 = 3000; + + if (PrintLeftName.isEmpty()) PrintLeftName = "PrinterL"; + if (PrintRightName.isEmpty()) PrintRightName = "PrinterR"; + + if (Vis_Liveview_Interval < 0) Vis_Liveview_Interval = 100; + if (SaftyDetectRise == 0) SaftyDetectRise = 20; + if (SaftyDetectFall == 0) SaftyDetectFall = 1000; //안전센서는 느리게 해제 한다 + + if (Timeout_JOBEnd == 0) Timeout_JOBEnd = 10; + + if (Timeout_VisionProcessL == 0) Timeout_VisionProcessL = 3000; + if (Timeout_VisionProcessU == 0) Timeout_VisionProcessU = 10000; + if (PortDetectFall == 0) PortDetectFall = 50; + if (PortDetectRise == 0) PortDetectRise = 10; + + if (AirChange == 0) AirChange = 3000; + + if (IP_Barcode.isEmpty()) IP_Barcode = "192.168.100.100"; + + //데이터베이스 + if (IP_Barcode.isEmpty() == true) IP_Barcode = "net.pipe://127.0.0.1/barcode"; + if (Timeout_MotionCommand == 0) Timeout_MotionCommand = 10; + if (Timeout_DIOCommand == 0) Timeout_DIOCommand = 10; + + if (AutoDeleteThreshold == 0) AutoDeleteThreshold = 20; + if (Timeout_HomeSearch == 0) Timeout_HomeSearch = 50; + //if (AirOFFTimer == 0) AirOFFTimer = 3000; //181226 + if (Asset == "") Asset = "DEV_SPLIT"; + if (Language.isEmpty()) Language = "Kor"; + if (Password_Setup.isEmpty()) Password_Setup = "0000"; + + if (Path_Data == "") + Path_Data = System.IO.Path.Combine(Util.CurrentPath, "SaveData"); + + try + { + if (System.IO.Directory.Exists(Path_Data) == false) + System.IO.Directory.CreateDirectory(Path_Data); + + } + catch + { + + } + + //if (Password_User.isEmpty()) Password_User = "9999"; + + + } + public override void AfterSave() + { + //throw new NotImplementedException(); + } + + public void CopyTo(CSetting dest) + { + //이곳의 모든 쓰기가능한 속성값을 대상에 써준다. + Type thClass = this.GetType(); + foreach (var method in thClass.GetMethods()) + { + var parameters = method.GetParameters(); + if (!method.Name.StartsWith("get_")) continue; + + string keyname = method.Name.Substring(4); + string methodName = method.Name; + + object odata = GetType().GetMethod(methodName).Invoke(this, null); + var wMethod = dest.GetType().GetMethod(Convert.ToString("set_") + keyname); + if (wMethod != null) wMethod.Invoke(dest, new object[] { odata }); + } + } + } + + + + + +} diff --git a/Handler/Project_form2/Setting/CounterSetting.cs b/Handler/Project_form2/Setting/CounterSetting.cs new file mode 100644 index 0000000..fdd0cb3 --- /dev/null +++ b/Handler/Project_form2/Setting/CounterSetting.cs @@ -0,0 +1,81 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel; + + +namespace Project +{ + public class CounterSetting : arUtil.Setting + { + public int seq { get; set; } + public string DateStr { get; set; } + + + + public void ClearP() + { + CountV0 = CountV1 = CountV2 = CountE = CountP0 = CountP1 = CountP2 = CountPrint0 = CountPrint1 = 0; + Pub.log.Add("Count(Port) Clear"); + this.Save(); + } + + public void ClearDay() + { + DateStr = string.Empty; + CountDP0 = CountDP1 = CountDP2 = CountDP3 = CountDP4 = 0; + Pub.log.Add("Count(Day) Clear"); + this.Save(); + } + + public int CountD + { + get + { + return CountDP0 + CountDP1 + CountDP2 + CountDP3 + CountDP4; + } + } + public int Count + { + get + { + return CountP0 + CountP1 + CountP2 + CountPrint0 + CountPrint1; + } + } + + public int CountDP0 { get; set; } + public int CountDP1 { get; set; } + public int CountDP2 { get; set; } + public int CountDP3 { get; set; } + public int CountDP4 { get; set; } + + + + + //메인카운터 + public int CountP0 { get; set; } + public int CountP1 { get; set; } + public int CountP2 { get; set; } + public int CountPrint0 { get; set; } + public int CountPrint1 { get; set; } + public int CountE { get; set; } + public int CountV0 { get; set; } + public int CountV1 { get; set; } + public int CountV2 { get; set; } + + + public CounterSetting() + { + this.filename = Util.CurrentPath + "counter.xml"; + } + public override void AfterLoad() + { + //if (CountReset == null) CountReset = DateTime.Parse("1982-11-23"); + } + public override void AfterSave() + { + //throw new NotImplementedException(); + } + } +} diff --git a/Handler/Project_form2/Setting/SystemSetting.cs b/Handler/Project_form2/Setting/SystemSetting.cs new file mode 100644 index 0000000..bea16fa --- /dev/null +++ b/Handler/Project_form2/Setting/SystemSetting.cs @@ -0,0 +1,239 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel; + + +namespace Project +{ + + public class SystemSetting : arUtil.Setting + { + public int SaftySensor_Threshold { get; set; } + + + #region "System Setting" + public int MotaxisCount { get; set; } + #endregion + + + + #region "Signal Reverse" + + + [Category("Signal Reverse")] + public Boolean ReverseSIG_Emgergency { get; set; } + [Category("Signal Reverse")] + public Boolean ReverseSIG_ButtonAir { get; set; } + [Category("Signal Reverse")] + public Boolean ReverseSIG_DoorF { get; set; } + [Category("Signal Reverse")] + public Boolean ReverseSIG_DoorR { get; set; } + [Category("Signal Reverse")] + public Boolean ReverseSIG_AirCheck { get; set; } + [Category("Signal Reverse")] + public Boolean ReverseSIG_PortLimitUp { get; set; } + [Category("Signal Reverse")] + public Boolean ReverseSIG_PortLimitDn { get; set; } + [Category("Signal Reverse")] + public Boolean ReverseSIG_PortDetect0Up { get; set; } + [Category("Signal Reverse")] + public Boolean ReverseSIG_PortDetect1Up { get; set; } + [Category("Signal Reverse")] + public Boolean ReverseSIG_PortDetect2Up { get; set; } + [Category("Signal Reverse")] + public Boolean ReverseSIG_PickerSafe { get; set; } + + #endregion + + #region "Axis-0 Setting (Y-Picker)" + + [Category("Axis-0 Setting (Y-Picker)")] + public Boolean axis0_disable_orgsensor { get; set; } + + [Category("Axis-0 Setting (Y-Picker)"), DisplayName("Home Speed (High)")] + public double HSpeed0H { get; set; } + [Category("Axis-0 Setting (Y-Picker)"), DisplayName("Home Speed (Low)")] + public double HSpeed0L { get; set; } + [Category("Axis-0 Setting (Y-Picker)"), DisplayName("Home Speed (Acc/Dcc)")] + public double HAcc0 { get; set; } + [Category("Axis-0 Setting (Y-Picker)")] + public double SWLimitP0 { get; set; } + #endregion + + #region "Axis-1 Setting" + + [Category("Axis-1 Setting"), DisplayName("★ Disable Origin Sensor")] + public Boolean axis1_disable_orgsensor { get; set; } + + [Category("Axis-1 Setting"), DisplayName("Home Speed (High)")] + public double HSpeed1H { get; set; } + [Category("Axis-1 Setting"), DisplayName("Home Speed (Low)")] + public double HSpeed1L { get; set; } + [Category("Axis-1 Setting"), DisplayName("Home Speed (Acc/Dcc)")] + public double HAcc1 { get; set; } + [Category("Axis-1 Setting")] + public double SWLimitP1 { get; set; } + #endregion + + #region "Axis-2 Setting" + + [Category("Axis-2 Setting"), DisplayName("★ Disable Origin Sensor")] + public Boolean axis2_disable_orgsensor { get; set; } + + [Category("Axis-2 Setting"), DisplayName("Home Speed (High)")] + public double HSpeed2H { get; set; } + [Category("Axis-2 Setting"), DisplayName("Home Speed (Low)")] + public double HSpeed2L { get; set; } + [Category("Axis-2 Setting"), DisplayName("Home Speed (Acc/Dcc)")] + public double HAcc2 { get; set; } + [Category("Axis-2 Setting")] + public double SWLimitP2 { get; set; } + #endregion + + #region "Axis-3 Setting" + + [Category("Axis-3 Setting"), DisplayName("★ Disable Origin Sensor")] + public Boolean axis3_disable_orgsensor { get; set; } + + [Category("Axis-3 Setting"), DisplayName("Home Speed (High)")] + public double HSpeed3H { get; set; } + [Category("Axis-3 Setting"), DisplayName("Home Speed (Low)")] + public double HSpeed3L { get; set; } + [Category("Axis-3 Setting"), DisplayName("Home Speed (Acc/Dcc)")] + public double HAcc3 { get; set; } + [Category("Axis-3 Setting")] + public double SWLimitP3 { get; set; } + #endregion + + #region "Axis-4 Setting" + + [Category("Axis-4 Setting"), DisplayName("★ Disable Origin Sensor")] + public Boolean axis4_disable_orgsensor { get; set; } + + [Category("Axis-4 Setting"), DisplayName("Home Speed (High)")] + public double HSpeed4H { get; set; } + [Category("Axis-4 Setting"), DisplayName("Home Speed (Low)")] + public double HSpeed4L { get; set; } + [Category("Axis-4 Setting"), DisplayName("Home Speed (Acc/Dcc)")] + public double HAcc4 { get; set; } + [Category("Axis-4 Setting")] + public double SWLimitP4 { get; set; } + #endregion + + #region "Axis-5 Setting" + + [Category("Axis-5 Setting"), DisplayName("★ Disable Origin Sensor")] + public Boolean axis5_disable_orgsensor { get; set; } + + [Category("Axis-5 Setting"), DisplayName("Home Speed (High)")] + public double HSpeed5H { get; set; } + [Category("Axis-5 Setting"), DisplayName("Home Speed (Low)")] + public double HSpeed5L { get; set; } + [Category("Axis-5 Setting"), DisplayName("Home Speed (Acc/Dcc)")] + public double HAcc5 { get; set; } + [Category("Axis-5 Setting")] + public double SWLimitP5 { get; set; } + #endregion + + #region "Axis-6 Setting" + + [Category("Axis-6 Setting"), DisplayName("★ Disable Origin Sensor")] + public Boolean axis6_disable_orgsensor { get; set; } + + [Category("Axis-6 Setting"), DisplayName("Home Speed (High)")] + public double HSpeed6H { get; set; } + [Category("Axis-6 Setting"), DisplayName("Home Speed (Low)")] + public double HSpeed6L { get; set; } + [Category("Axis-6 Setting"), DisplayName("Home Speed (Acc/Dcc)")] + public double HAcc6 { get; set; } + [Category("Axis-6 Setting")] + public double SWLimitP6 { get; set; } + #endregion + + #region "Axis-7 Setting" + + [Category("Axis-7 Setting"), DisplayName("★ Disable Origin Sensor")] + public Boolean axis7_disable_orgsensor { get; set; } + + [Category("Axis-7 Setting"), DisplayName("Home Speed (High)")] + public double HSpeed7H { get; set; } + [Category("Axis-7 Setting"), DisplayName("Home Speed (Low)")] + public double HSpeed7L { get; set; } + [Category("Axis-7 Setting"), DisplayName("Home Speed (Acc/Dcc)")] + public double HAcc7 { get; set; } + [Category("Axis-7 Setting")] + public double SWLimitP7 { get; set; } + #endregion + + #region "disalbe axis" + + [Category("Disable Axis")] + public Boolean Disable_Axis0 { get; set; } + [Category("Disable Axis")] + public Boolean Disable_Axis1 { get; set; } + [Category("Disable Axis")] + public Boolean Disable_Axis2 { get; set; } + [Category("Disable Axis")] + public Boolean Disable_Axis3 { get; set; } + [Category("Disable Axis")] + public Boolean Disable_Axis4 { get; set; } + [Category("Disable Axis")] + public Boolean Disable_Axis5 { get; set; } + [Category("Disable Axis")] + public Boolean Disable_Axis6 { get; set; } + [Category("Disable Axis")] + public Boolean Disable_Axis7 { get; set; } + + #endregion + + + public SystemSetting() + { + this.filename = Util.CurrentPath + "system.xml"; + } + public override void AfterLoad() + { + MotaxisCount = 7; + + if (HSpeed0H == 0) HSpeed0H = 10; + if (HSpeed0L == 0) HSpeed0L = 5; + if (HAcc0 == 0) HAcc0 = 100; + + if (HSpeed1H == 0) HSpeed1H = 10; + if (HSpeed1L == 0) HSpeed1L = 5; + if (HAcc1 == 0) HAcc1 = 100; + + if (HSpeed2H == 0) HSpeed2H = 10; + if (HSpeed2L == 0) HSpeed2L = 5; + if (HAcc2 == 0) HAcc2 = 100; + + if (HSpeed3H == 0) HSpeed3H = 10; + if (HSpeed3L == 0) HSpeed3L = 5; + if (HAcc3 == 0) HAcc3 = 100; + + if (HSpeed4H == 0) HSpeed4H = 10; + if (HSpeed4L == 0) HSpeed4L = 5; + if (HAcc4 == 0) HAcc4 = 100; + + if (HSpeed5H == 0) HSpeed5H = 10; + if (HSpeed5L == 0) HSpeed5L = 5; + if (HAcc5 == 0) HAcc5 = 100; + + if (HSpeed6H == 0) HSpeed6H = 10; + if (HSpeed6L == 0) HSpeed6L = 5; + if (HAcc6 == 0) HAcc6 = 100; + + if (HSpeed7H == 0) HSpeed7H = 10; + if (HSpeed7L == 0) HSpeed7L = 5; + if (HAcc7 == 0) HAcc7 = 100; + + + } + public override void AfterSave() + { + //throw new NotImplementedException(); + } + } +} diff --git a/Handler/Project_form2/Setting/UserSetting.cs b/Handler/Project_form2/Setting/UserSetting.cs new file mode 100644 index 0000000..1995837 --- /dev/null +++ b/Handler/Project_form2/Setting/UserSetting.cs @@ -0,0 +1,72 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel; + + +namespace Project +{ + public class UserSetting : arUtil.Setting + { + public Boolean Option_QtyUpdate1 { get; set; } + public Boolean Option_PartUpdate { get; set; } + public Boolean Option_printforce1 { get; set; } + public Boolean Option_Confirm1 { get; set; } + public Boolean Option_AutoConfirm { get; set; } + public Boolean Option_vname { get; set; } + public Boolean Option_FixPrint1 { get; set; } + public string Option_PrintPos1 { get; set; } + + + //public Boolean Option_QtyUpdate3 { get; set; } + //public Boolean Option_printforce3 { get; set; } + //public Boolean Option_Confirm3 { get; set; } + //public Boolean Option_FixPrint3 { get; set; } + //public string Option_PrintPos3 { get; set; } + + + + public string LastJobUnP11 { get; set; } + public string LastJobUnP12 { get; set; } + public string LastJobUnP21 { get; set; } + public string LastJobUnP22 { get; set; } + public string LastJobUnP31 { get; set; } + public string LastJobUnP32 { get; set; } + public string LastJobUnP41 { get; set; } + public string LastJobUnP42 { get; set; } + + + public string LastLot { get; set; } + public string LastAltag { get; set; } + public string LastModelM { get; set; } + public string LastModelV { get; set; } + + public string LastMC { get; set; } + + public int jobtype { get; set; } + public int scantype { get; set; } + public UserSetting() + { + this.filename = AppDomain.CurrentDomain.BaseDirectory + "UserSet.xml"; + } + + public override void AfterLoad() + { + + if (Pub.uSetting.LastJobUnP11.isEmpty()) Pub.uSetting.LastJobUnP11 = "AUTO"; + if (Pub.uSetting.LastJobUnP12.isEmpty()) Pub.uSetting.LastJobUnP12 = "AUTO"; + if (Pub.uSetting.LastJobUnP21.isEmpty()) Pub.uSetting.LastJobUnP21 = "AUTO"; + if (Pub.uSetting.LastJobUnP22.isEmpty()) Pub.uSetting.LastJobUnP22 = "AUTO"; + if (Pub.uSetting.LastJobUnP31.isEmpty()) Pub.uSetting.LastJobUnP31 = "AUTO"; + if (Pub.uSetting.LastJobUnP32.isEmpty()) Pub.uSetting.LastJobUnP32 = "AUTO"; + if (Pub.uSetting.LastJobUnP41.isEmpty()) Pub.uSetting.LastJobUnP41 = "AUTO"; + if (Pub.uSetting.LastJobUnP42.isEmpty()) Pub.uSetting.LastJobUnP42 = "AUTO"; + + } + public override void AfterSave() + { + //throw new NotImplementedException(); + } + } +} diff --git a/Handler/Project_form2/Setting/fSetting.Designer.cs b/Handler/Project_form2/Setting/fSetting.Designer.cs new file mode 100644 index 0000000..1da58a7 --- /dev/null +++ b/Handler/Project_form2/Setting/fSetting.Designer.cs @@ -0,0 +1,827 @@ +namespace Project +{ + partial class fSetting + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fSetting)); + this.button1 = new System.Windows.Forms.Button(); + this.panel1 = new System.Windows.Forms.Panel(); + this.propertyGrid1 = new System.Windows.Forms.PropertyGrid(); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPage2 = new System.Windows.Forms.TabPage(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.btDetectPrintR = new System.Windows.Forms.Button(); + this.btDetectPrintL = new System.Windows.Forms.Button(); + this.btCartDetR = new System.Windows.Forms.Button(); + this.btCartDetL = new System.Windows.Forms.Button(); + this.btCartDetC = new System.Windows.Forms.Button(); + this.btdoorr3 = new System.Windows.Forms.Button(); + this.btdoorr1 = new System.Windows.Forms.Button(); + this.btdoorf3 = new System.Windows.Forms.Button(); + this.btdoorr2 = new System.Windows.Forms.Button(); + this.btdoorf1 = new System.Windows.Forms.Button(); + this.btdoorf2 = new System.Windows.Forms.Button(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.button9 = new System.Windows.Forms.Button(); + this.button3 = new System.Windows.Forms.Button(); + this.btmag2 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.button6 = new System.Windows.Forms.Button(); + this.btPickerVac = new System.Windows.Forms.Button(); + this.btPort1 = new System.Windows.Forms.Button(); + this.btmag1 = new System.Windows.Forms.Button(); + this.btTWLamp = new System.Windows.Forms.Button(); + this.btBuz = new System.Windows.Forms.Button(); + this.btmag0 = new System.Windows.Forms.Button(); + this.button5 = new System.Windows.Forms.Button(); + this.btPort0 = new System.Windows.Forms.Button(); + this.btPort2 = new System.Windows.Forms.Button(); + this.btLeftVac = new System.Windows.Forms.Button(); + this.btPrintR = new System.Windows.Forms.Button(); + this.btPrintL = new System.Windows.Forms.Button(); + this.btRightVac = new System.Windows.Forms.Button(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.tabPage3 = new System.Windows.Forms.TabPage(); + this.dataGridView1 = new System.Windows.Forms.DataGridView(); + this.keyDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.valueDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.bsLang = new System.Windows.Forms.BindingSource(this.components); + this.dataSet1 = new Project.DataSet1(); + this.statusStrip2 = new System.Windows.Forms.StatusStrip(); + this.lbFile = new System.Windows.Forms.ToolStripStatusLabel(); + this.toolStrip1 = new System.Windows.Forms.ToolStrip(); + this.toolStripButton1 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton3 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton4 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton2 = new System.Windows.Forms.ToolStripButton(); + this.tabPage4 = new System.Windows.Forms.TabPage(); + this.button4 = new System.Windows.Forms.Button(); + this.button8 = new System.Windows.Forms.Button(); + this.button7 = new System.Windows.Forms.Button(); + this.bsRecipient = new System.Windows.Forms.BindingSource(this.components); + this.bsMailForm = new System.Windows.Forms.BindingSource(this.components); + this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); + this.errorProvider1 = new System.Windows.Forms.ErrorProvider(this.components); + this.button10 = new System.Windows.Forms.Button(); + this.panel1.SuspendLayout(); + this.tabControl1.SuspendLayout(); + this.tabPage2.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.groupBox1.SuspendLayout(); + this.tabPage1.SuspendLayout(); + this.tabPage3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsLang)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).BeginInit(); + this.statusStrip2.SuspendLayout(); + this.toolStrip1.SuspendLayout(); + this.tabPage4.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.bsRecipient)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsMailForm)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider1)).BeginInit(); + this.SuspendLayout(); + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Fill; + this.button1.Location = new System.Drawing.Point(5, 5); + this.button1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(604, 53); + this.button1.TabIndex = 0; + this.button1.Text = "저장(&S)"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // panel1 + // + this.panel1.Controls.Add(this.button1); + this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel1.Location = new System.Drawing.Point(0, 547); + this.panel1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.panel1.Name = "panel1"; + this.panel1.Padding = new System.Windows.Forms.Padding(5); + this.panel1.Size = new System.Drawing.Size(614, 63); + this.panel1.TabIndex = 1; + // + // propertyGrid1 + // + this.propertyGrid1.Dock = System.Windows.Forms.DockStyle.Fill; + this.propertyGrid1.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.propertyGrid1.LineColor = System.Drawing.SystemColors.ControlDark; + this.propertyGrid1.Location = new System.Drawing.Point(3, 3); + this.propertyGrid1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.propertyGrid1.Name = "propertyGrid1"; + this.propertyGrid1.Size = new System.Drawing.Size(600, 508); + this.propertyGrid1.TabIndex = 1; + // + // tabControl1 + // + this.tabControl1.Controls.Add(this.tabPage2); + this.tabControl1.Controls.Add(this.tabPage1); + this.tabControl1.Controls.Add(this.tabPage3); + this.tabControl1.Controls.Add(this.tabPage4); + this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tabControl1.Location = new System.Drawing.Point(0, 0); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(614, 547); + this.tabControl1.TabIndex = 2; + this.tabControl1.SelectedIndexChanged += new System.EventHandler(this.tabControl1_SelectedIndexChanged); + // + // tabPage2 + // + this.tabPage2.Controls.Add(this.groupBox2); + this.tabPage2.Controls.Add(this.groupBox1); + this.tabPage2.Font = new System.Drawing.Font("맑은 고딕", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tabPage2.Location = new System.Drawing.Point(4, 29); + this.tabPage2.Name = "tabPage2"; + this.tabPage2.Size = new System.Drawing.Size(606, 514); + this.tabPage2.TabIndex = 1; + this.tabPage2.Text = "간편설정"; + this.tabPage2.UseVisualStyleBackColor = true; + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.button10); + this.groupBox2.Controls.Add(this.btDetectPrintR); + this.groupBox2.Controls.Add(this.btDetectPrintL); + this.groupBox2.Controls.Add(this.btCartDetR); + this.groupBox2.Controls.Add(this.btCartDetL); + this.groupBox2.Controls.Add(this.btCartDetC); + this.groupBox2.Controls.Add(this.btdoorr3); + this.groupBox2.Controls.Add(this.btdoorr1); + this.groupBox2.Controls.Add(this.btdoorf3); + this.groupBox2.Controls.Add(this.btdoorr2); + this.groupBox2.Controls.Add(this.btdoorf1); + this.groupBox2.Controls.Add(this.btdoorf2); + this.groupBox2.Font = new System.Drawing.Font("맑은 고딕", 13F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.groupBox2.Location = new System.Drawing.Point(10, 329); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(580, 177); + this.groupBox2.TabIndex = 2; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "센서 사용"; + // + // btDetectPrintR + // + this.btDetectPrintR.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.btDetectPrintR.Location = new System.Drawing.Point(466, 32); + this.btDetectPrintR.Name = "btDetectPrintR"; + this.btDetectPrintR.Size = new System.Drawing.Size(100, 43); + this.btDetectPrintR.TabIndex = 24; + this.btDetectPrintR.Text = "인쇄감지-R"; + this.btDetectPrintR.UseVisualStyleBackColor = true; + this.btDetectPrintR.Click += new System.EventHandler(this.btDetectPrintR_Click); + // + // btDetectPrintL + // + this.btDetectPrintL.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.btDetectPrintL.Location = new System.Drawing.Point(365, 32); + this.btDetectPrintL.Name = "btDetectPrintL"; + this.btDetectPrintL.Size = new System.Drawing.Size(100, 43); + this.btDetectPrintL.TabIndex = 23; + this.btDetectPrintL.Text = "인쇄감지-L"; + this.btDetectPrintL.UseVisualStyleBackColor = true; + this.btDetectPrintL.Click += new System.EventHandler(this.btDetectPrintL_Click); + // + // btCartDetR + // + this.btCartDetR.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.btCartDetR.Location = new System.Drawing.Point(219, 122); + this.btCartDetR.Name = "btCartDetR"; + this.btCartDetR.Size = new System.Drawing.Size(100, 43); + this.btCartDetR.TabIndex = 20; + this.btCartDetR.Text = "카트감지(R)"; + this.btCartDetR.UseVisualStyleBackColor = true; + this.btCartDetR.Click += new System.EventHandler(this.button5_Click); + // + // btCartDetL + // + this.btCartDetL.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.btCartDetL.Location = new System.Drawing.Point(16, 122); + this.btCartDetL.Name = "btCartDetL"; + this.btCartDetL.Size = new System.Drawing.Size(100, 43); + this.btCartDetL.TabIndex = 21; + this.btCartDetL.Text = "카트감지(L)"; + this.btCartDetL.UseVisualStyleBackColor = true; + this.btCartDetL.Click += new System.EventHandler(this.button6_Click_1); + // + // btCartDetC + // + this.btCartDetC.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.btCartDetC.Location = new System.Drawing.Point(118, 122); + this.btCartDetC.Name = "btCartDetC"; + this.btCartDetC.Size = new System.Drawing.Size(100, 43); + this.btCartDetC.TabIndex = 22; + this.btCartDetC.Text = "카트감지(C)"; + this.btCartDetC.UseVisualStyleBackColor = true; + this.btCartDetC.Click += new System.EventHandler(this.button7_Click); + // + // btdoorr3 + // + this.btdoorr3.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.btdoorr3.Location = new System.Drawing.Point(219, 32); + this.btdoorr3.Name = "btdoorr3"; + this.btdoorr3.Size = new System.Drawing.Size(100, 43); + this.btdoorr3.TabIndex = 19; + this.btdoorr3.Text = "DOOR-R3"; + this.btdoorr3.UseVisualStyleBackColor = true; + this.btdoorr3.Click += new System.EventHandler(this.btSafetyP3_Click); + // + // btdoorr1 + // + this.btdoorr1.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.btdoorr1.Location = new System.Drawing.Point(16, 32); + this.btdoorr1.Name = "btdoorr1"; + this.btdoorr1.Size = new System.Drawing.Size(100, 43); + this.btdoorr1.TabIndex = 0; + this.btdoorr1.Text = "DOOR-R1"; + this.btdoorr1.UseVisualStyleBackColor = true; + this.btdoorr1.Click += new System.EventHandler(this.button2_Click_1); + // + // btdoorf3 + // + this.btdoorf3.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.btdoorf3.Location = new System.Drawing.Point(219, 77); + this.btdoorf3.Name = "btdoorf3"; + this.btdoorf3.Size = new System.Drawing.Size(100, 43); + this.btdoorf3.TabIndex = 2; + this.btdoorf3.Text = "DOOR-F3"; + this.btdoorf3.UseVisualStyleBackColor = true; + this.btdoorf3.Click += new System.EventHandler(this.btLoaderDetect_Click); + // + // btdoorr2 + // + this.btdoorr2.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.btdoorr2.Location = new System.Drawing.Point(118, 32); + this.btdoorr2.Name = "btdoorr2"; + this.btdoorr2.Size = new System.Drawing.Size(100, 43); + this.btdoorr2.TabIndex = 2; + this.btdoorr2.Text = "DOOR-R2"; + this.btdoorr2.UseVisualStyleBackColor = true; + this.btdoorr2.Click += new System.EventHandler(this.button4_Click); + // + // btdoorf1 + // + this.btdoorf1.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.btdoorf1.Location = new System.Drawing.Point(16, 77); + this.btdoorf1.Name = "btdoorf1"; + this.btdoorf1.Size = new System.Drawing.Size(100, 43); + this.btdoorf1.TabIndex = 5; + this.btdoorf1.Text = "DOOR-F1"; + this.btdoorf1.UseVisualStyleBackColor = true; + this.btdoorf1.Click += new System.EventHandler(this.btSafetyCvIn_Click); + // + // btdoorf2 + // + this.btdoorf2.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.btdoorf2.Location = new System.Drawing.Point(118, 77); + this.btdoorf2.Name = "btdoorf2"; + this.btdoorf2.Size = new System.Drawing.Size(100, 43); + this.btdoorf2.TabIndex = 8; + this.btdoorf2.Text = "DOOR-F2"; + this.btdoorf2.UseVisualStyleBackColor = true; + this.btdoorf2.Click += new System.EventHandler(this.btSafetyCvOut_Click); + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.button9); + this.groupBox1.Controls.Add(this.button3); + this.groupBox1.Controls.Add(this.btmag2); + this.groupBox1.Controls.Add(this.button2); + this.groupBox1.Controls.Add(this.button6); + this.groupBox1.Controls.Add(this.btPickerVac); + this.groupBox1.Controls.Add(this.btPort1); + this.groupBox1.Controls.Add(this.btmag1); + this.groupBox1.Controls.Add(this.btTWLamp); + this.groupBox1.Controls.Add(this.btBuz); + this.groupBox1.Controls.Add(this.btmag0); + this.groupBox1.Controls.Add(this.button5); + this.groupBox1.Controls.Add(this.btPort0); + this.groupBox1.Controls.Add(this.btPort2); + this.groupBox1.Controls.Add(this.btLeftVac); + this.groupBox1.Controls.Add(this.btPrintR); + this.groupBox1.Controls.Add(this.btPrintL); + this.groupBox1.Controls.Add(this.btRightVac); + this.groupBox1.Font = new System.Drawing.Font("맑은 고딕", 13F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.groupBox1.Location = new System.Drawing.Point(10, 9); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(580, 314); + this.groupBox1.TabIndex = 1; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "기능 사용"; + // + // button9 + // + this.button9.Location = new System.Drawing.Point(18, 30); + this.button9.Name = "button9"; + this.button9.Size = new System.Drawing.Size(135, 43); + this.button9.TabIndex = 45; + this.button9.Text = "RQ자동진행"; + this.button9.UseVisualStyleBackColor = true; + this.button9.Click += new System.EventHandler(this.button9_Click); + // + // button3 + // + this.button3.Font = new System.Drawing.Font("맑은 고딕", 13F, System.Drawing.FontStyle.Bold); + this.button3.Location = new System.Drawing.Point(230, 99); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(124, 43); + this.button3.TabIndex = 38; + this.button3.Text = "QR검증"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click_1); + // + // btmag2 + // + this.btmag2.Location = new System.Drawing.Point(230, 246); + this.btmag2.Name = "btmag2"; + this.btmag2.Size = new System.Drawing.Size(124, 43); + this.btmag2.TabIndex = 42; + this.btmag2.Text = "피커-자석"; + this.btmag2.UseVisualStyleBackColor = true; + this.btmag2.Click += new System.EventHandler(this.button5_Click_1); + // + // button2 + // + this.button2.Location = new System.Drawing.Point(429, 30); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(135, 43); + this.button2.TabIndex = 28; + this.button2.Text = "내부조명"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click_2); + // + // button6 + // + this.button6.Font = new System.Drawing.Font("맑은 고딕", 18F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button6.Location = new System.Drawing.Point(404, 75); + this.button6.Name = "button6"; + this.button6.Size = new System.Drawing.Size(163, 49); + this.button6.TabIndex = 44; + this.button6.Text = "우측-기능"; + this.button6.UseVisualStyleBackColor = true; + this.button6.Click += new System.EventHandler(this.button6_Click_3); + // + // btPickerVac + // + this.btPickerVac.Location = new System.Drawing.Point(230, 148); + this.btPickerVac.Name = "btPickerVac"; + this.btPickerVac.Size = new System.Drawing.Size(124, 43); + this.btPickerVac.TabIndex = 34; + this.btPickerVac.Text = "피커-진공"; + this.btPickerVac.UseVisualStyleBackColor = true; + this.btPickerVac.Click += new System.EventHandler(this.btPickerVac_Click); + // + // btPort1 + // + this.btPort1.ForeColor = System.Drawing.Color.Black; + this.btPort1.Location = new System.Drawing.Point(230, 197); + this.btPort1.Name = "btPort1"; + this.btPort1.Size = new System.Drawing.Size(124, 43); + this.btPort1.TabIndex = 23; + this.btPort1.Text = "피커-포트"; + this.btPort1.UseVisualStyleBackColor = true; + this.btPort1.Click += new System.EventHandler(this.btPort1_Click); + // + // btmag1 + // + this.btmag1.Location = new System.Drawing.Point(404, 259); + this.btmag1.Name = "btmag1"; + this.btmag1.Size = new System.Drawing.Size(128, 42); + this.btmag1.TabIndex = 41; + this.btmag1.Text = "자석"; + this.btmag1.UseVisualStyleBackColor = true; + this.btmag1.Click += new System.EventHandler(this.button6_Click_2); + // + // btTWLamp + // + this.btTWLamp.Location = new System.Drawing.Point(292, 30); + this.btTWLamp.Name = "btTWLamp"; + this.btTWLamp.Size = new System.Drawing.Size(135, 43); + this.btTWLamp.TabIndex = 21; + this.btTWLamp.Text = "타워램프"; + this.btTWLamp.UseVisualStyleBackColor = true; + this.btTWLamp.Click += new System.EventHandler(this.btTWLamp_Click); + // + // btBuz + // + this.btBuz.Location = new System.Drawing.Point(155, 30); + this.btBuz.Name = "btBuz"; + this.btBuz.Size = new System.Drawing.Size(135, 43); + this.btBuz.TabIndex = 4; + this.btBuz.Text = "부저"; + this.btBuz.UseVisualStyleBackColor = true; + this.btBuz.Click += new System.EventHandler(this.button6_Click); + // + // btmag0 + // + this.btmag0.Location = new System.Drawing.Point(53, 261); + this.btmag0.Name = "btmag0"; + this.btmag0.Size = new System.Drawing.Size(128, 42); + this.btmag0.TabIndex = 40; + this.btmag0.Text = "자석"; + this.btmag0.UseVisualStyleBackColor = true; + this.btmag0.Click += new System.EventHandler(this.button7_Click_1); + // + // button5 + // + this.button5.Font = new System.Drawing.Font("맑은 고딕", 18F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button5.Location = new System.Drawing.Point(18, 77); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(163, 49); + this.button5.TabIndex = 43; + this.button5.Text = "좌측-기능"; + this.button5.UseVisualStyleBackColor = true; + this.button5.Click += new System.EventHandler(this.button5_Click_2); + // + // btPort0 + // + this.btPort0.ForeColor = System.Drawing.Color.Black; + this.btPort0.Location = new System.Drawing.Point(53, 217); + this.btPort0.Name = "btPort0"; + this.btPort0.Size = new System.Drawing.Size(128, 42); + this.btPort0.TabIndex = 22; + this.btPort0.Text = "포트"; + this.btPort0.UseVisualStyleBackColor = true; + this.btPort0.Click += new System.EventHandler(this.btPort0_Click); + // + // btPort2 + // + this.btPort2.ForeColor = System.Drawing.Color.Black; + this.btPort2.Location = new System.Drawing.Point(404, 215); + this.btPort2.Name = "btPort2"; + this.btPort2.Size = new System.Drawing.Size(128, 42); + this.btPort2.TabIndex = 35; + this.btPort2.Text = "포트"; + this.btPort2.UseVisualStyleBackColor = true; + this.btPort2.Click += new System.EventHandler(this.btPort2_Click); + // + // btLeftVac + // + this.btLeftVac.Location = new System.Drawing.Point(53, 173); + this.btLeftVac.Name = "btLeftVac"; + this.btLeftVac.Size = new System.Drawing.Size(128, 42); + this.btLeftVac.TabIndex = 32; + this.btLeftVac.Text = "진공"; + this.btLeftVac.UseVisualStyleBackColor = true; + this.btLeftVac.Click += new System.EventHandler(this.btLeftVac_Click); + // + // btPrintR + // + this.btPrintR.ForeColor = System.Drawing.Color.Black; + this.btPrintR.Location = new System.Drawing.Point(404, 127); + this.btPrintR.Name = "btPrintR"; + this.btPrintR.Size = new System.Drawing.Size(128, 42); + this.btPrintR.TabIndex = 37; + this.btPrintR.Text = "프린터"; + this.btPrintR.UseVisualStyleBackColor = true; + this.btPrintR.Click += new System.EventHandler(this.button3_Click); + // + // btPrintL + // + this.btPrintL.ForeColor = System.Drawing.Color.Black; + this.btPrintL.Location = new System.Drawing.Point(53, 129); + this.btPrintL.Name = "btPrintL"; + this.btPrintL.Size = new System.Drawing.Size(128, 42); + this.btPrintL.TabIndex = 36; + this.btPrintL.Text = "프린터"; + this.btPrintL.UseVisualStyleBackColor = true; + this.btPrintL.Click += new System.EventHandler(this.button4_Click_2); + // + // btRightVac + // + this.btRightVac.Location = new System.Drawing.Point(404, 171); + this.btRightVac.Name = "btRightVac"; + this.btRightVac.Size = new System.Drawing.Size(128, 42); + this.btRightVac.TabIndex = 33; + this.btRightVac.Text = "진공"; + this.btRightVac.UseVisualStyleBackColor = true; + this.btRightVac.Click += new System.EventHandler(this.btRightVac_Click); + // + // tabPage1 + // + this.tabPage1.Controls.Add(this.propertyGrid1); + this.tabPage1.Location = new System.Drawing.Point(4, 29); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(3); + this.tabPage1.Size = new System.Drawing.Size(606, 514); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "상세설정"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // tabPage3 + // + this.tabPage3.Controls.Add(this.dataGridView1); + this.tabPage3.Controls.Add(this.statusStrip2); + this.tabPage3.Controls.Add(this.toolStrip1); + this.tabPage3.Location = new System.Drawing.Point(4, 29); + this.tabPage3.Name = "tabPage3"; + this.tabPage3.Size = new System.Drawing.Size(606, 514); + this.tabPage3.TabIndex = 2; + this.tabPage3.Text = "언어설정"; + this.tabPage3.UseVisualStyleBackColor = true; + // + // dataGridView1 + // + this.dataGridView1.AllowUserToAddRows = false; + this.dataGridView1.AutoGenerateColumns = false; + this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.keyDataGridViewTextBoxColumn, + this.valueDataGridViewTextBoxColumn}); + this.dataGridView1.DataSource = this.bsLang; + this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.dataGridView1.Location = new System.Drawing.Point(0, 25); + this.dataGridView1.Name = "dataGridView1"; + this.dataGridView1.RowTemplate.Height = 23; + this.dataGridView1.Size = new System.Drawing.Size(606, 467); + this.dataGridView1.TabIndex = 2; + // + // keyDataGridViewTextBoxColumn + // + this.keyDataGridViewTextBoxColumn.DataPropertyName = "Key"; + this.keyDataGridViewTextBoxColumn.HeaderText = "Key"; + this.keyDataGridViewTextBoxColumn.Name = "keyDataGridViewTextBoxColumn"; + // + // valueDataGridViewTextBoxColumn + // + this.valueDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; + this.valueDataGridViewTextBoxColumn.DataPropertyName = "Value"; + this.valueDataGridViewTextBoxColumn.HeaderText = "Value"; + this.valueDataGridViewTextBoxColumn.Name = "valueDataGridViewTextBoxColumn"; + // + // bsLang + // + this.bsLang.DataMember = "language"; + this.bsLang.DataSource = this.dataSet1; + // + // dataSet1 + // + this.dataSet1.DataSetName = "DataSet1"; + this.dataSet1.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + // + // statusStrip2 + // + this.statusStrip2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.lbFile}); + this.statusStrip2.Location = new System.Drawing.Point(0, 492); + this.statusStrip2.Name = "statusStrip2"; + this.statusStrip2.Size = new System.Drawing.Size(606, 22); + this.statusStrip2.TabIndex = 1; + this.statusStrip2.Text = "statusStrip2"; + // + // lbFile + // + this.lbFile.Name = "lbFile"; + this.lbFile.Size = new System.Drawing.Size(17, 17); + this.lbFile.Text = "--"; + // + // toolStrip1 + // + this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripButton1, + this.toolStripButton3, + this.toolStripButton4, + this.toolStripButton2}); + this.toolStrip1.Location = new System.Drawing.Point(0, 0); + this.toolStrip1.Name = "toolStrip1"; + this.toolStrip1.Size = new System.Drawing.Size(606, 25); + this.toolStrip1.TabIndex = 0; + this.toolStrip1.Text = "toolStrip1"; + // + // toolStripButton1 + // + this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image"))); + this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton1.Name = "toolStripButton1"; + this.toolStripButton1.Size = new System.Drawing.Size(75, 22); + this.toolStripButton1.Text = "신규생성"; + this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click); + // + // toolStripButton3 + // + this.toolStripButton3.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton3.Image"))); + this.toolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton3.Name = "toolStripButton3"; + this.toolStripButton3.Size = new System.Drawing.Size(75, 22); + this.toolStripButton3.Text = "새로고침"; + this.toolStripButton3.Click += new System.EventHandler(this.toolStripButton3_Click); + // + // toolStripButton4 + // + this.toolStripButton4.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.toolStripButton4.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton4.Image"))); + this.toolStripButton4.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton4.Name = "toolStripButton4"; + this.toolStripButton4.Size = new System.Drawing.Size(51, 22); + this.toolStripButton4.Text = "적용"; + this.toolStripButton4.Click += new System.EventHandler(this.toolStripButton4_Click); + // + // toolStripButton2 + // + this.toolStripButton2.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.toolStripButton2.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton2.Image"))); + this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton2.Name = "toolStripButton2"; + this.toolStripButton2.Size = new System.Drawing.Size(51, 22); + this.toolStripButton2.Text = "저장"; + this.toolStripButton2.Click += new System.EventHandler(this.toolStripButton2_Click); + // + // tabPage4 + // + this.tabPage4.Controls.Add(this.button4); + this.tabPage4.Controls.Add(this.button8); + this.tabPage4.Controls.Add(this.button7); + this.tabPage4.Location = new System.Drawing.Point(4, 29); + this.tabPage4.Name = "tabPage4"; + this.tabPage4.Size = new System.Drawing.Size(606, 514); + this.tabPage4.TabIndex = 3; + this.tabPage4.Text = "기타"; + this.tabPage4.UseVisualStyleBackColor = true; + // + // button4 + // + this.button4.Location = new System.Drawing.Point(21, 142); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(189, 43); + this.button4.TabIndex = 46; + this.button4.Text = "ZPL 열기"; + this.button4.UseVisualStyleBackColor = true; + this.button4.Click += new System.EventHandler(this.button4_Click_3); + // + // button8 + // + this.button8.Location = new System.Drawing.Point(21, 81); + this.button8.Name = "button8"; + this.button8.Size = new System.Drawing.Size(189, 43); + this.button8.TabIndex = 45; + this.button8.Text = "SID 정보 테이블 열기"; + this.button8.UseVisualStyleBackColor = true; + this.button8.Click += new System.EventHandler(this.button8_Click); + // + // button7 + // + this.button7.Location = new System.Drawing.Point(21, 21); + this.button7.Name = "button7"; + this.button7.Size = new System.Drawing.Size(189, 43); + this.button7.TabIndex = 44; + this.button7.Text = "SID 변환 테이블 열기"; + this.button7.UseVisualStyleBackColor = true; + this.button7.Click += new System.EventHandler(this.button7_Click_2); + // + // bsRecipient + // + this.bsRecipient.DataMember = "MailRecipient"; + this.bsRecipient.DataSource = this.dataSet1; + // + // bsMailForm + // + this.bsMailForm.DataMember = "MailFormat"; + this.bsMailForm.DataSource = this.dataSet1; + // + // errorProvider1 + // + this.errorProvider1.ContainerControl = this; + // + // button10 + // + this.button10.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); + this.button10.Location = new System.Drawing.Point(365, 77); + this.button10.Name = "button10"; + this.button10.Size = new System.Drawing.Size(201, 43); + this.button10.TabIndex = 25; + this.button10.Text = "안전위치(X축 중앙감지)"; + this.button10.UseVisualStyleBackColor = true; + this.button10.Click += new System.EventHandler(this.button10_Click); + // + // fSetting + // + this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(614, 610); + this.Controls.Add(this.tabControl1); + this.Controls.Add(this.panel1); + this.Font = new System.Drawing.Font("맑은 고딕", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.KeyPreview = true; + this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fSetting"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "프로그램 설정"; + this.Load += new System.EventHandler(this.@__Load); + this.panel1.ResumeLayout(false); + this.tabControl1.ResumeLayout(false); + this.tabPage2.ResumeLayout(false); + this.groupBox2.ResumeLayout(false); + this.groupBox1.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + this.tabPage3.ResumeLayout(false); + this.tabPage3.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsLang)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).EndInit(); + this.statusStrip2.ResumeLayout(false); + this.statusStrip2.PerformLayout(); + this.toolStrip1.ResumeLayout(false); + this.toolStrip1.PerformLayout(); + this.tabPage4.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.bsRecipient)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsMailForm)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.errorProvider1)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.PropertyGrid propertyGrid1; + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.BindingSource bsLang; + private DataSet1 dataSet1; + private System.Windows.Forms.TabPage tabPage2; + private System.Windows.Forms.ToolTip toolTip1; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Button btdoorr2; + private System.Windows.Forms.Button btdoorr1; + private System.Windows.Forms.Button btdoorf1; + private System.Windows.Forms.Button btBuz; + private System.Windows.Forms.TabPage tabPage3; + private System.Windows.Forms.StatusStrip statusStrip2; + private System.Windows.Forms.ToolStrip toolStrip1; + private System.Windows.Forms.ToolStripButton toolStripButton1; + private System.Windows.Forms.ToolStripButton toolStripButton2; + private System.Windows.Forms.ToolStripStatusLabel lbFile; + private System.Windows.Forms.ToolStripButton toolStripButton3; + private System.Windows.Forms.DataGridView dataGridView1; + private System.Windows.Forms.DataGridViewTextBoxColumn keyDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn valueDataGridViewTextBoxColumn; + private System.Windows.Forms.ToolStripButton toolStripButton4; + private System.Windows.Forms.Button btdoorf2; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.Button btdoorf3; + private System.Windows.Forms.ErrorProvider errorProvider1; + private System.Windows.Forms.Button btdoorr3; + private System.Windows.Forms.Button btTWLamp; + private System.Windows.Forms.BindingSource bsRecipient; + private System.Windows.Forms.BindingSource bsMailForm; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button btPickerVac; + private System.Windows.Forms.Button btRightVac; + private System.Windows.Forms.Button btLeftVac; + private System.Windows.Forms.Button btPort1; + private System.Windows.Forms.Button btPort0; + private System.Windows.Forms.Button btPort2; + private System.Windows.Forms.Button btPrintR; + private System.Windows.Forms.Button btPrintL; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.Button btCartDetR; + private System.Windows.Forms.Button btCartDetL; + private System.Windows.Forms.Button btCartDetC; + private System.Windows.Forms.Button btmag2; + private System.Windows.Forms.Button btmag1; + private System.Windows.Forms.Button btmag0; + private System.Windows.Forms.Button btDetectPrintR; + private System.Windows.Forms.Button btDetectPrintL; + private System.Windows.Forms.Button button6; + private System.Windows.Forms.Button button5; + private System.Windows.Forms.TabPage tabPage4; + private System.Windows.Forms.Button button7; + private System.Windows.Forms.Button button8; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.Button button9; + private System.Windows.Forms.Button button10; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/Setting/fSetting.cs b/Handler/Project_form2/Setting/fSetting.cs new file mode 100644 index 0000000..04eed74 --- /dev/null +++ b/Handler/Project_form2/Setting/fSetting.cs @@ -0,0 +1,481 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Project +{ + public partial class fSetting : Form + { + CSetting dummySetting; //설정을 임시로 저장하고 있다가 완료시에 덮어준다. + + public fSetting() + { + InitializeComponent(); + + //setting + dummySetting = new CSetting(); + Pub.setting.CopyTo(dummySetting); + + this.KeyDown += (s1, e1) => + { + if (e1.KeyCode == Keys.Escape) + this.Close(); + if (DateTime.Now > Pub.LastInputTime) Pub.LastInputTime = DateTime.Now; + }; + this.MouseMove += (s1, e1) => { if (DateTime.Now > Pub.LastInputTime) Pub.LastInputTime = DateTime.Now; }; + this.FormClosed += __Closed; + + bsRecipient.DataSource = Pub.mailList; + bsMailForm.DataSource = Pub.mailForm; + } + + private void __Closed(object sender, FormClosedEventArgs e) + { + + } + + private void __Load(object sender, EventArgs e) + { + this.Show(); + + this.propertyGrid1.SelectedObject = this.dummySetting; + this.propertyGrid1.Refresh(); + + //기능사용 + btdoorr1.BackColor = dummySetting.Disable_safty_R0 ? Color.Tomato : Color.Lime; + btdoorr2.BackColor = dummySetting.Disable_safty_R1 ? Color.Tomato : Color.Lime; + btdoorr3.BackColor = dummySetting.Disable_safty_R2 ? Color.Tomato : Color.Lime; + btdoorf1.BackColor = dummySetting.Disable_safty_F0 ? Color.Tomato : Color.Lime; + btdoorf2.BackColor = dummySetting.Disable_safty_F1 ? Color.Tomato : Color.Lime; + btdoorf3.BackColor = dummySetting.Disable_safty_F2 ? Color.Tomato : Color.Lime; + + btBuz.BackColor = dummySetting.Disable_Buzzer == false ? Color.Lime : Color.Tomato; + this.btTWLamp.BackColor = dummySetting.Disable_TowerLamp ? Color.Tomato : Color.Lime; + this.button2.BackColor = dummySetting.Disable_RoomLight == true ? Color.Tomato : Color.Lime; + + //진공사용여부 + this.btLeftVac.BackColor = dummySetting.Disable_PLVac ? Color.Tomato : Color.Lime; + this.btRightVac.BackColor = dummySetting.Disable_PRVac ? Color.Tomato : Color.Lime; + this.btPickerVac.BackColor = dummySetting.Disable_PKVac ? Color.Tomato : Color.Lime; + + //포트사용여부 + this.btPort0.BackColor = dummySetting.Disable_Port0 ? Color.Tomato : Color.Lime; + this.btPort1.BackColor = dummySetting.Disable_Port1 ? Color.Tomato : Color.Lime; + this.btPort2.BackColor = dummySetting.Disable_Port2 ? Color.Tomato : Color.Lime; + + //프린터사용여부 + this.btPrintL.BackColor = dummySetting.Disable_PrinterL ? Color.Tomato : Color.Lime; + this.btPrintR.BackColor = dummySetting.Disable_PrinterR ? Color.Tomato : Color.Lime; + + //언로더QR검증 + this.button3.BackColor = dummySetting.Enable_Unloader_QRValidation ? Color.Lime : Color.Tomato; + + //카드감지센서 + this.btCartDetL.BackColor = dummySetting.Detect_CartL ? Color.Lime : Color.Tomato; + this.btCartDetC.BackColor = dummySetting.Detect_CartC ? Color.Lime : Color.Tomato; + this.btCartDetR.BackColor = dummySetting.Detect_CartR ? Color.Lime : Color.Tomato; + + //마그넷사용 + this.btmag0.BackColor = dummySetting.Enable_Magnet0 ? Color.Lime : Color.Tomato; + this.btmag1.BackColor = dummySetting.Enable_Magnet1 ? Color.Lime : Color.Tomato; + this.btmag2.BackColor = dummySetting.Enable_Magnet2 ? Color.Lime : Color.Tomato; + + //인쇄용지감지 + this.btDetectPrintL.BackColor = dummySetting.Detect_PrintL ? Color.Lime : Color.Tomato; + this.btDetectPrintR.BackColor = dummySetting.Detect_PrintR ? Color.Lime : Color.Tomato; + + //기능사용 + this.button5.BackColor = dummySetting.Disable_Left==false ? Color.Lime : Color.Tomato; + this.button6.BackColor = dummySetting.Disable_Right == false ? Color.Lime : Color.Tomato; + this.button9.BackColor = dummySetting.Enable_RQAuto ? Color.Lime : Color.Tomato; + button10.BackColor = dummySetting.Detect_CenterSafty == false ? Color.Tomato : Color.Lime; + + lbFile.Text = Lang.FileName; + } + + private void button1_Click(object sender, EventArgs e) + { + var f = new Dialog.fPassword(); + if (f.ShowDialog() != DialogResult.OK) return; + var pass = f.tbInput.Text; + if (pass != this.dummySetting.Password_Setup) + { + Util.MsgE("Password incorrect"); + return; + } + + this.Invalidate(); + var chTable = Pub.userList.GetChanges(); + if (chTable != null) + { + string fn = AppDomain.CurrentDomain.BaseDirectory + "users.xml"; + Pub.userList.WriteXml(fn, true); + Pub.userList.AcceptChanges(); + } + + bsRecipient.EndEdit(); + this.Validate(); + var recpTable = Pub.mailList.GetChanges(); + if (recpTable != null) + { + string fn = AppDomain.CurrentDomain.BaseDirectory + "mailList.xml"; + + Pub.mailList.WriteXml(fn, true); + Pub.mailList.AcceptChanges(); + } + bsMailForm.EndEdit(); + var formTable = Pub.mailForm.GetChanges(); + if (formTable != null) + { + string fn = AppDomain.CurrentDomain.BaseDirectory + "mailForm.xml"; + Pub.mailForm.WriteXml(fn, true); + Pub.mailForm.AcceptChanges(); + } + + try + { + dummySetting.CopyTo(Pub.setting); + Pub.setting.Save(); + Pub.log.AddI("Setting Save"); + Pub.log.Add(Pub.setting.ToString()); + } + catch (Exception ex) + { + Pub.log.AddE("Setting Save Error:" + ex.Message); + Util.MsgE("Error\n" + ex.Message + "\n\n다시 시도하세요"); + } + + //Pub.flag.set(eFlag.TestRun, btLoaderDetect.BackColor == Color.Lime); + + DialogResult = DialogResult.OK; + } + + private void button2_Click(object sender, EventArgs e) + { + var f = new Dialog.fPassword(); + if (f.ShowDialog() != DialogResult.OK) return; + var pass = f.tbInput.Text; + if (pass == this.dummySetting.Password_Setup) + { + Pub.log.AddAT("Master Login"); + //this.dataGridView1.Enabled = true; + } + else + { + Util.MsgE("Password incorrect"); + } + } + + + + private void button6_Click(object sender, EventArgs e) + { + dummySetting.Disable_Buzzer = !dummySetting.Disable_Buzzer; + btBuz.BackColor = dummySetting.Disable_Buzzer ? Color.Tomato : Color.Lime; + } + + + private void toolStripButton1_Click(object sender, EventArgs e) + { + var langfile = Lang.FileName; + Lang.CreateFile(); + Util.MsgI("다음 파일이 생성되었습니다.\n\n" + langfile); + } + + private void toolStripButton3_Click(object sender, EventArgs e) + { + var langfile = Lang.FileName; + if (System.IO.File.Exists(langfile) == false) + { + Util.MsgE("언어파일이 없습니다\n" + langfile); + return; + } + arUtil.INIHelper ini = new arUtil.INIHelper(); + ini.Load(langfile); + this.dataSet1.language.Clear(); + foreach (var item in ini.GetItemList("lang").OrderBy(t => t.Key)) + { + this.dataSet1.language.Rows.Add(new string[] { + "lang", + item.Key, + item.Value.Replace("\n","\\n"), + }); + } + this.dataSet1.language.AcceptChanges(); + } + private void toolStripButton2_Click(object sender, EventArgs e) + { + var file = Lang.FileName; + var ini = new arUtil.INIHelper(file); + this.bsLang.EndEdit(); + this.dataSet1.language.AcceptChanges(); + foreach (DataSet1.languageRow dr in dataSet1.language.Rows) + { + if (dr.Key == "") continue; + ini.set_Data("lang", dr.Key, dr.Value); + } + ini.Flush(); + Util.MsgE("다음 파일에 저장되었습니다.\n\n" + file); + } + private void toolStripButton4_Click(object sender, EventArgs e) + { + //적용 + var file = new System.IO.FileInfo(Lang.FileName); + var langname = file.Name.Replace(file.Extension, ""); + + Lang.Loading(langname); + } + + private void tabControl1_SelectedIndexChanged(object sender, EventArgs e) + { + if (this.tabControl1.SelectedIndex == 2) + { + if (this.dataSet1.language.Rows.Count < 1) + toolStripButton3.PerformClick(); + } + } + + + private void btTWLamp_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_TowerLamp = !dummySetting.Disable_TowerLamp; + but.BackColor = dummySetting.Disable_TowerLamp ? Color.Tomato : Color.Lime; + } + + + + private void button2_Click_2(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_RoomLight = !dummySetting.Disable_RoomLight; + but.BackColor = dummySetting.Disable_RoomLight == true ? Color.Tomato : Color.Lime; + } + + private void button4_Click_1(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_SidQtyCheck = !dummySetting.Disable_SidQtyCheck; + but.BackColor = dummySetting.Disable_SidQtyCheck == true ? Color.Tomato : Color.Lime; + } + private void button2_Click_1(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_safty_R0 = !dummySetting.Disable_safty_R0; + but.BackColor = dummySetting.Disable_safty_R0 ? Color.Tomato : Color.Lime; + } + + + private void button4_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_safty_R1 = !dummySetting.Disable_safty_R1; + but.BackColor = dummySetting.Disable_safty_R1 ? Color.Tomato : Color.Lime; + } + + private void btSafetyP3_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_safty_R2 = !dummySetting.Disable_safty_R2; + but.BackColor = dummySetting.Disable_safty_R2 ? Color.Tomato : Color.Lime; + } + + private void btSafetyCvIn_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_safty_F0 = !dummySetting.Disable_safty_F0; + but.BackColor = dummySetting.Disable_safty_F0 ? Color.Tomato : Color.Lime; + } + + private void btSafetyCvOut_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_safty_F1 = !dummySetting.Disable_safty_F1; + but.BackColor = dummySetting.Disable_safty_F1 ? Color.Tomato : Color.Lime; + } + + private void btLoaderDetect_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_safty_F2 = !dummySetting.Disable_safty_F2; + but.BackColor = dummySetting.Disable_safty_F2 ? Color.Tomato : Color.Lime; + } + + private void btLeftVac_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_PLVac = !dummySetting.Disable_PLVac; + but.BackColor = dummySetting.Disable_PLVac ? Color.Tomato : Color.Lime; + } + + private void btRightVac_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_PRVac = !dummySetting.Disable_PRVac; + but.BackColor = dummySetting.Disable_PRVac ? Color.Tomato : Color.Lime; + } + + private void btPickerVac_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_PKVac = !dummySetting.Disable_PKVac; + but.BackColor = dummySetting.Disable_PKVac ? Color.Tomato : Color.Lime; + } + + private void btPort0_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_Port0 = !dummySetting.Disable_Port0; + but.BackColor = dummySetting.Disable_Port0 ? Color.Tomato : Color.Lime; + } + + private void btPort1_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_Port1 = !dummySetting.Disable_Port1; + but.BackColor = dummySetting.Disable_Port1 ? Color.Tomato : Color.Lime; + } + + private void btPort2_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_Port2 = !dummySetting.Disable_Port2; + but.BackColor = dummySetting.Disable_Port2 ? Color.Tomato : Color.Lime; + } + + private void button4_Click_2(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_PrinterL = !dummySetting.Disable_PrinterL; + but.BackColor = dummySetting.Disable_PrinterL ? Color.Tomato : Color.Lime; + } + + private void button3_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Disable_PrinterR = !dummySetting.Disable_PrinterR; + but.BackColor = dummySetting.Disable_PrinterR ? Color.Tomato : Color.Lime; + } + + private void button3_Click_1(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Enable_Unloader_QRValidation = !dummySetting.Enable_Unloader_QRValidation; + but.BackColor = dummySetting.Enable_Unloader_QRValidation == false ? Color.Tomato : Color.Lime; + } + + private void button6_Click_1(object sender, EventArgs e) + { + //카트감지l + var but = sender as Button; + dummySetting.Detect_CartL = !dummySetting.Detect_CartL; + but.BackColor = dummySetting.Detect_CartL == false ? Color.Tomato : Color.Lime; + } + + private void button7_Click(object sender, EventArgs e) + { + //카드감지c + var but = sender as Button; + dummySetting.Detect_CartC = !dummySetting.Detect_CartC; + but.BackColor = dummySetting.Detect_CartC == false ? Color.Tomato : Color.Lime; + } + + private void button5_Click(object sender, EventArgs e) + { + //카트감지r + var but = sender as Button; + dummySetting.Detect_CartR = !dummySetting.Detect_CartR; + but.BackColor = dummySetting.Detect_CartR == false ? Color.Tomato : Color.Lime; + } + + private void button7_Click_1(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Enable_Magnet0 = !dummySetting.Enable_Magnet0; + but.BackColor = dummySetting.Enable_Magnet0 == false ? Color.Tomato : Color.Lime; + } + + private void button6_Click_2(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Enable_Magnet1 = !dummySetting.Enable_Magnet1; + but.BackColor = dummySetting.Enable_Magnet1 == false ? Color.Tomato : Color.Lime; + } + + private void button5_Click_1(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Enable_Magnet2 = !dummySetting.Enable_Magnet2; + but.BackColor = dummySetting.Enable_Magnet2 == false ? Color.Tomato : Color.Lime; + } + + private void btDetectPrintL_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Detect_PrintL = !dummySetting.Detect_PrintL; + but.BackColor = dummySetting.Detect_PrintL == false ? Color.Tomato : Color.Lime; + } + + private void btDetectPrintR_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Detect_PrintR = !dummySetting.Detect_PrintR; + but.BackColor = dummySetting.Detect_PrintR == false ? Color.Tomato : Color.Lime; + } + + private void button5_Click_2(object sender, EventArgs e) + { + //기능-좌 + var but = sender as Button; + dummySetting.Disable_Left = !dummySetting.Disable_Left; + but.BackColor = dummySetting.Disable_Left == true ? Color.Tomato : Color.Lime; + } + + private void button6_Click_3(object sender, EventArgs e) + { + //기능-우 + var but = sender as Button; + dummySetting.Disable_Right = !dummySetting.Disable_Right; + but.BackColor = dummySetting.Disable_Right == true ? Color.Tomato : Color.Lime; + } + + private void button7_Click_2(object sender, EventArgs e) + { + var f = new Dialog.fImportSIDConv(); + f.ShowDialog(); + } + + private void button8_Click(object sender, EventArgs e) + { + var f = new Dialog.fImportSIDInfo(); + f.ShowDialog(); + } + + private void button4_Click_3(object sender, EventArgs e) + { + var fn = System.IO.Path.Combine(Util.CurrentPath, "zpl.txt"); + Util.RunExplorer(fn); + } + + private void button9_Click(object sender, EventArgs e) + { + dummySetting.Enable_RQAuto = !dummySetting.Enable_RQAuto; + btBuz.BackColor = dummySetting.Enable_RQAuto == false ? Color.Tomato : Color.Lime; + } + + private void button10_Click(object sender, EventArgs e) + { + var but = sender as Button; + dummySetting.Detect_CenterSafty = !dummySetting.Detect_CenterSafty; + but.BackColor = dummySetting.Detect_CenterSafty == false ? Color.Tomato : Color.Lime; + + + } + } +} + diff --git a/Handler/Project_form2/Setting/fSetting.resx b/Handler/Project_form2/Setting/fSetting.resx new file mode 100644 index 0000000..b286e71 --- /dev/null +++ b/Handler/Project_form2/Setting/fSetting.resx @@ -0,0 +1,1997 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 411, 17 + + + 305, 17 + + + 117, 17 + + + 117, 17 + + + 17, 17 + + + 17, 17 + + + 411, 17 + + + 305, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + 17, 56 + + + 133, 56 + + + 208, 17 + + + 528, 17 + + + 102 + + + + AAABAAYAAAAAAAEAIAASGgAAZgAAAICAAAABACAAKAgBAHgaAABAQAAAAQAgAChCAACgIgEAMDAAAAEA + IACoJQAAyGQBACAgAAABACAAqBAAAHCKAQAQEAAAAQAgAGgEAAAYmwEAiVBORw0KGgoAAAANSUhEUgAA + AQAAAAEACAYAAABccqhmAAAZ2UlEQVR42u3da4xu11kf8P+z1r68l5l3Zs7xuXh87OBgk8ZBWEGBGEs0 + caXKBiOiVHI+kMQNbYh6+YIqhBFVq1MqkIxQhVS1KCIo1MT94KhYIBAOaXGDRC7UAoIUm8RxjBOfm89l + 5szMO++7916Xfhh/IlnPPsnMmTMz6/+Tzqe99Mze+333f87WemYtAR1ZH/v4EwMAtTZmOt6OPWWapz/0 + X5tbfS10c5hbfQJEdOswAIgyxgAgyhgDgChjDACijDEAiDLGACDKmNzqE6Dv7MO/9QsVgCJ13FhTlFXx + gFbDGnNaRE5oY6JEtQ8gRlwJHhe1MV3bfTF475Qh7vf+9W+0+3f36EYVuy9BN0kNYKgcHwJ4v1pBcB8E + 9+hDen8HvAzEF3vGfBXATDk+A8AAOID4CkCUMQYAUcYYAEQZYwAQZYwBQJQxBgBRxhgARBljI9BN8OHf + /sVVAAup49aYY6U1/06rUZbFGWPM8dRxY8TcceL4Ga1GXRa2Kgq7m2tpnfNN57w25tzlq6+HEEPqeAjh + ate517UanQ//xYdwTRmy9Xs/9+vnd3Mt9O3YCHRzCADtwSugBMSbFgFMlB9hjIi62o8RI9bs7j95Rowx + Ij3fE5kA6QDAThNQ3/UWPfeMv6xuAr4CEGWMAUCUMQYAUcYYAEQZYwAQZYwBQJQxTq38A49/4heXAVSp + 49aYcWHt/VqNqrC3GyOLqePGmIVRXat/y19Ye8wYk5w6ExFZWRwv6DWMFHZXbQBw3sP5oC4asrY53Yox + vbBICGHLea/N8WO7aZ4NIWyla8TN1vkLPef6ZR/CVBnSPvXRX1/f1Q05YtgH8O1OQ51/x50AfkErYIw5 + VVgzTh0vrLUnVibHtRp1WWK3D+9eKKxFYa36i+L248uL2nHn/aTp3Ko25sKVa7c775MNRw5hCvhLPaf7 + GwC+pRzfALC+LzfukOArAFHGGABEGWMAEGWMAUCUMQYAUcYYAEQZYwAQZexINQI9/ttPvBs7f0f/HVkj + byms+YBWYzwcHLPWJP/OviqLwW2TyV1ajbKw1hiTvLcigDVGn+SXG9iy45CIAKBvQAQfgteGhBBi57y6 + MMmVjY1vtp2bJ3+GD810NlcbkpwPz/gQX1OGbD71c09+af/u3s111BqBBgDGyvFlAOoqOhAsiUiyE1BE + irKw6kIcZWFhdrkQx1EiwE7qKQqrdz2FIEDP91VEbhOR9BZlghbAqOd0lwFcUY53N/l27St+S4kyxgAg + yhgDgChjDACijDEAiDLGACDK2L5MNT/2zGO9P2th++47oEzzGDETgblDqzEoy/tFJLlIRmHNalUU/1Sr + UdfVyBpTpGtYuzQeaVONsNbAyFGZxT8YQozwPqhjrk+3p9qaAj4E1zTttlajdf5PXQjJhUdijFvztv2y + ViMinAsxbChD3Fv+fnSu55Lj2bNn9/o2fpv96gMQ9P9v4wEoTTwA3g5AXUWnrsrlwqYf3kFVFSeWJz2r + 6FgIH94Dx4jA9GxydNvSohrMMUY4749pYy5f3/jAvO2Sc/3OBzdv2+s9p/ssgJeU45sAfv8GLjvewJhd + 4SsAUcYYAEQZYwAQZYwBQJQxBgBRxhgARBljABBlrHfC+2Mf/5hBT1D4wbGHAZSp40bM2wTyoFZjaTy6 + yxhJzuHXZbU4GQ9PazXKorBGWUdDRKSwVr0W9gAcbbFnYRLnQ1B3OYoxds6pC5NsTGcXm67dTNYI0V2f + bn9TPU/Ez4cYvqoM6V55dfBcz+WG/3v2rHrBN9oI1PdUHIeynRZ2dtP5Qa2AEVk2kl4lp7C2HFSVuhBH + YQ0fYFL1fT/KQv8FEWOE1ikKANvz9kTnzHL6JIKHvvsUsLPD0VXleIv+51LQ00zEVwCijDEAiDLGACDK + GAOAKGMMAKKMMQCIMiYf+eRZPQT89HQEVrUhRVH8M0i6D2BQVvcOqvJHtRqLo+GCEUmeS12WxcJoqE4D + WmP6lp8n2pUYAR/0hUm2tmdN03XJ/QlCjGFjOtvSajRd+5fzrn05fSLoOhf/V8/pnjd2eEkbUECfv0eE + vBfAh7UxAvlxxHRPwXhQ2ztOHFPnTuuy5Bw+HXgiO/0mmuXFcQ0g+csqxojlhbG2+A3OX7n2aNN2WsOR + Mybc33O6n8LO4iRJfAUgyhgDgChjDACijDEAiDLGACDKGAOAKGMMAKKMFdj5u2LNn0Hf5AAB8UEoC4JM + m+a+1y5deY9WY1BXJwwkuR7AoCrLpYXRUKtRclMPuslijOi8uh4Irm9tz7TNRQKinzftZa1G03WfC4gv + KkM6AH/Rc7oX0fN878nT8s9/94kHoSwuYsU+YEQe02qMB/WdIukVgRYGdXVieaI2T1RlyS256KYKMUJ5 + tgEAl9c3NrfmTfLBizG66bz5Vs/P+bSP/ovKEPc/PvLk53d7PXwFIMoYA4AoYwwAoowxAIgyxgAgyhgD + gChjN7ovQJ+tnlqX0NNLEGNsoPQS+BgnTded0WugEmVREbOzMYjVaoi2swgdahFADH0bg3gflI1BYoyh + dZ06t+5jPBdj3FBqdAC+0XO6l7DzXCVPdS/uyYH5rj/+O0+8C8Agdbyw5oeskQ9qNQZldZcRSdYY1lV5 + 6tjyklajrkpYw/8YHUU+BDStPod/6dr69ZkyKMQ4n3etuquPD/Fp58PfKkPmT/3LJ1+41fcD4CsAUdYY + AEQZYwAQZYwBQJQxBgBRxhgARBljABBlbK8agfbCKwC0Jp0LAP5OK+BDeGuQdC/BvOtWL1xbf0SrUVp7 + 2ogkFx4prLXLC+MFtUZphb0Ee8uHgK7zahfP+tZ0y/n0ah0hxlnn/UWtRtt1z7ngz6eOx4g5+pt4XgNw + Xbuc/btzugPTCLQXPvLJJ+4BkHx4rTH3GmM+qtWobHGPEUkuPFKXZXn78ZVjWo1BXUqhNxzSd8l5j3nT + qQFw4eratabrtCaezda7r2s1Qgif8CG8rAyZ/e7PPqnWOEz4a4ooYwwAoowxAIgyxgAgyhgDgChjDACi + jB2kPoC90EHpJYjRzGKwa1qBEMs2iknO03qxpuugTkcZExCCMsUqQNHTJyCCI7PJSYwRUV+HAy4EaHfV + +RD77rt3hfdOkp9djKGNMaqff4yYAUFb8ENfUOCQORrfsBv0vn//R0sA3qGNqYbu50Xw9tRxW7b1eOWN + O7UaZT0vjXXJICqs4PTxkXqu40GNujoa+dy0DtN5o465eHUbTunzCb7wXTNQH77p2slv+a5K/qAY8VI7 + K36z53S/8ge/+lPXkQm+AhBljAFAlDEGAFHGGABEGWMAEGWMAUCUMQYAUcYOUB9AVM/lfb/02SVjw1u0 + MUVpH4JgOXm8KEbD4WhVqzGZDH/UFuZ46rixwdbDVl0QBDI3EKdcjwPsBb2EmQJIz52LCCZjvU+grgqU + xe7WJeicR9Pqm9BsTB2i2ulTI4ax/oP87VD70mIREQdBK9HMqq3glSYuF65ubMz+Uqsxm22fd85tp88D + 667zz/fcttee/dVH1nEIHKZOkzGA7+sZ85MA7kgdFJHKWrus/pDx0tJgUCe3KDPGoKoq9SR8aBBj+qEJ + scH6XO81ad0WXJgnjxsRlGWt1jBWdh8A3mPWs5vO2kaDoARAYSpUhd74tDx4K4ykr0ekEGtq9WLasl0K + IZ0R83mzOJ22K1oNEVkHoHUCngPwas9tuwxgHYcAXwGIMsYAIMoYA4AoYwwAoowxAIgyxgAgytieTAM+ + 9tgz6vHwAxMLI+rP8v5zA8R0X0JR2kURo04m28KUIpKcKrLWGmut2m9gjOx6IQ4BtEsBIBD9dsBIBSPp + 6UYRIEY9v0MAfOhZiaNHCNL7c0RK9TeJkar3enfumrqGyg3RPjtjBH2fv7XWxBiVRWViiSh6U4Ng8th/ + +t9TZUQMzusLJITozNc21A1EPv3pD9zgXUnbqz6AvsnmHwDwY9qAsnb/FkByjraqqmrcsyPP6VOnFqqy + TJ6LMQZlVeJmM6bu+a/VCCeK96gjQmgQlF6CGB2ubag9Lbi6dg0uXN3VtRRmGaW9XR1zeuFH1AfcSAFj + 9J6FvdDXn1HXdTmZTI5rY9quO671ErRtd8+lS5feqdWYbk232rbVegnWAPy3nsv5AoCv9YzZ9Q5DfAUg + yhgDgChjDACijDEAiDLGACDKGAOAKGMMAKKMyXvPPq+GwIrvTovyN/YAYK38Yyg9BfVgcHJQD+7Waiws + jH5MjBmmf4Y1Va1P9I5Ho8qadKOHiMDYw5F5MXpEKOtfxICZ0xcV8WGKEGf6z+k5DysjWKP/Lf+wuB2Q + 9H0VGCj9WQeKD0Fd3CR4H6fb29ocP9qmbb33yQ8vhjDb2tr+glZj3sxfbebzN5Qhzvv451qNCJxbs+VF + bUyB/v8FnAJwvzpC8C8ADFKHjZFBVVdq99Sx48cXiyL9dBpjYO3h+BLtBREL0fqrBBhX36fWiNEhRr1X + JPa02Al6mziPFNuzZRuslaqq1K4m732tNRM55xfbzv0TrUbbNVMI5sqQOYC+HYwcAC1E+ApAlDMGAFHG + GABEGWMAEGWMAUCUMQYAUcYYAEQZK07gshoC3k4KQNQGHIE1UMJEYER6ltkROVDbFB0JIsUNrMRDN4O6 + HtTO4kc9v3zFCNSmBAPrep7L2Pt8838ARBljABBljAFAlDEGAFHGGABEGWMAEGWMAUCUsQL9mwtcAPDX + PWM+AWVBkBDDSte16u4S165efY+IJFeeMNYWZVkOtRrj8biyNr2mgIhktaYAffe89+qCIN77sDWdqrv6 + uK6bB++Tu7qEGLe7rv2cViPGeAE7G4gkfwz6n8sL6Hm+96X35v3/8Y/PAHi7Nsaa8pcBJHdtKctyOBwO + jmk1VldXJ1VVJYPIGIO6vvk71NDh1TQN9J2BWnfu/AV1IY75bLbWdZ22FNNVH7pf6zmVl579lUdfv9nX + y1cAoowxAIgyxgAgyhgDgChjDACijDEAiDLGACDK2H6tFnEewKWeMV+E0pfQOndbu7n1Nq3A9tdf+Vci + ktzFyBgzLMtyVatx6tSphcFgoPYSjEZqPxLdItvbM3UOfz6fu0uXLm1pNbrOXQghJOfwY4znOu9+Sz2R + iK8KcEUdAXXTD6C/QW9P7EsAPPsrjwZA2+cKANBpB9/3H56rAKgfntmpkezAMsZ4Y4y6G1bcoY3Yj1tG + 35OodvHFGKP3Xv0AnXM+hOCUIZ1zXv0eAtj4g//8yMatvhs3gq8ARBljABBljAFAlDEGAFHGGABEGWMA + EGXsMO0aMQdwsWfMZwGsKMfHIcS71B8y2/4R59rkugRGTDGfzZa1GvVgIEVRJHsaRARVpe7pkJ22bdUp + POdcbOZzdQqv67r1ENNTeK5zV0OI/6/nVL4JYFs5vob+72HfHP+BkdVmPD/9y3+yAOCt2pjFhfLnRbTF + S2RkpLhPq3Hs+G12OBol760xBsvLS7f6dhwo6+vX1Sae2fZ2vHb1itocE6J7EYjJhzdGvLS51f1mz6l8 + 4w9/7Sf65vmPDL4CEGWMAUCUMQYAUcYYAEQZYwAQZYwBQJQxBgBRxo5UH8DTz/31uwEsJi9WcLeY+DNa + jbqqzxhj0jsUGVPWdX2bVuOV89uytpVe3sD5iAtr6uYyGI0XUNXphUdEBCsry2oNkb35ePX1EYC1tXV1 + TNvMsD3Vp9ZvX6lR2PT5riyU+P7VkXoiTdNcCSEkb3wIYbtpG3WzjRjkf8aIV5Uhmx985J1f2sXtPFAO + UyfgjRgAGKcOimBijZzUCgxrOyysLVPHrTHFcFiqT1ZVAEZZ/0QQ0LWteiGudrBFuu9lrx7uvdC3nZZz + rvd6BQWM8h/SqgAmI/2+z8QXXmkmct4PndM/fx8xiTH9HULPwjWHDV8BiDLGACDKGAOAKGMMAKKMMQCI + MsYAIMrYvkwDPvPMM0BPz4GbfP8d2vkYaybGpDf9AIBhXd8vgoXUcWvNalmYiVpjUA2tMcrGIGKrUr9t + p46NMKyTM4lwPqAsrFqj8RZd1JanF2xtXFdr2LJEUfR8xD3bHDjv4Dp95qsUB0i60HhscftkUa2xenyI + wqZ/H03GJYa1fi3W1FUIMXljfQi2LKy+qIgL93kfkovKxIitZ/7P34y0GiHEc8EHbV8A97Uv/vA56OLZ + szd/qne/+gAE/f/beABKEw+AtwN4v1agrovlwqYf3kFdFidWFha0GkVhYXY5x74y0XcO8iFifUtvBPrK + q+t4/Y1p8ngIEX9/7rJaY7SwiOFYvdzeAJhtb2G6tamOufvUGMak79mZk2O84251+h3LCzWs2e0XfqjN + 3yPECOf8MW3M5bWtD8ybdOI5H9ysafTkBZ4F8JJyfBPA79/ABd30XWj4CkCUMQYAUcYYAEQZYwAQZYwB + QJQxBgBRxhgARBnrnXj9+AsvGPQExdI1+zCAZOeLiLxNBA9qNVaWRndpDTiDulxcXBie1mpUhbWi/KG8 + MSKFNeq17Mff2UcA3gd1zLz1aLv0mBjR20vw+pUZLlzTx/Q5fazGnbfpfQ3LCzW021aVBoNKb3yy1uzL + 6jR9i5s4H0JQBsUQY+u8ukHJ5tbs4rzpks0TPgS3dn37m/p54vMxxq8qQ7pT5fpzPZcbHnroIfWCb7QR + qO+zOQ5A2+vqTgA/qBUwRpaNkeS3pLCmHNZlrV6MNQdqoYwUefNcNQtDAyjPXYxApa+PgfVpi8LoQdNn + cWhxcmXQc64VDsFtB9Af8GXPBxNjhFWazQBgNmtOGCPLyRoQD0DtSAXwLQBXleMt+p9LQU8zEV8BiDLG + ACDKGAOAKGMMAKKMMQCIMsYAIMpY8cnnn1dDoLiG04iyqlYx+EdQ+gDqujgzqEp1Mnk0qEtjJHkuVVXY + /im+QzIXtRdkZ+5cMxmVOLkyvMGC6Rp9Pyen2w5I71RiVRU2KtNvIUTTLnj1g2lad6ZpupkypLvQTu7X + TzWe/+Tzz1/ShhTQ5+8hAe8F8GF1jMiPQ+kpWBgN7JnTK+rc6aAqDsUc/kEhAEY9K+Tce2YJ955ZutWn + eqSI9PdwrEzGNYBkz0qMEcuTkbpE0rlLa4+2rdMajlyE6AEQ8SnsLE6SxFcAoowxAIgyxgAgyhgDgChj + DACijDEAiDLGACDKWIGdvyvW/Bn0TQ4QYnwQSiPQdNbc99r5q+/Ragzr8oSR9HoAdV2WS4tDtXmiKix7 + CeimijFCn54Hrm/OZo2yuUiI0c+aVt3VZd64z4UYX1SGdAD+oud0L6Ln+S5+9qGH+laMuPjmv6SnP/NX + QyiNQPOmq9rOvVOr4X1YMiLJGhGQxbG+MEVEZk1ptO8idnZl0sybzk23Gy0A3HTWaFuHIYT4dR/iXylD + 3Acf/uG/2e318BWAKGMMAKKMMQCIMsYAIMoYA4AoYwwAoozd6L4AfbZ6al1CTy9BjLGJSi+BD2HStN2Z + nhqVkfSiIiIiZWHVHSrECKcSj6gIIPZM4XXO+6hsDBJiDG3n1Ll1H8K5GGNymi/G2AH4Rs/pXsLOc5Xi + 9uKeHJjv+lN/8sK7ACQn+svC/JA15oNajWFd3WVEkjWGg6o8fWKirpAxqEv0bB5Eh5QPAfP09DwA4OLl + jeuzeavN4c9nTavu6uNDeLpz4W+VIfPHf+JdL9zq+wHwFYAoawwAoowxAIgyxgAgyhgDgChjDACijDEA + iDK2V41Ae+EVAFqTzgUAf6cVcM6/VZQ+AMzb1QtvXH9Eq1GW5rSIJBceKQtrlyfjBa1GVVphL8He8iGg + 7bzaxbO+Md3qnE+u1hFjnHVdUNe2mDfdc53z55Uac/Q38bwG4Lp2Oft353QHphFoL3zqj1+4B0Dy4S1K + e6+15qNajaq09xgjyV1b6qosV08uH9NqDOtSikJtOKTvknMes6ZTA+D8G+vXmlZZiSfEzbbzX9dqeB8+ + 4Tr/sjJk9qFH36XWOEz4a4ooYwwAoowxAIgyxgAgyhgDgChjDACijB2kPoC90EHvJZiiZ48DACMAyWnA + iFg7HyqtQOt8FWJU7q3AWqPOExrBkdnkJMaInnU44H3wO0t2fGfOB+d8UBfiiDFeBNAoQzbR//lPoW+m + 0eEIORrfsD301Ge+dBpKL0Fli9XCFP9Gq2GMeYeInEwdLwpr7zi5fJtWYzyqZVAVR+LzmbcuTrcbNQLO + vbF+xelNPG8EH76i1XDB/fc2uPPKkNnjD7+7LwCywlcAoowxAIgyxgAgyhgDgChjDACijDEAiDLGACDK + 2FFrBNoLG9hpBkmZAfgdrUAEVmNMNxOFEMfrG1N1YZLN6fwuYyTZKyAisrQwWNRq1FVpqtLuqpeg7Xxs + 2i5oY65vzTfV3XRCvOK9VzfTCCE+F6Jy3yM2AWhz/MDOojLaZ3dgFuI4KBgA/8DjD797u2dIbzfZU5/5 + 8hKAOnW8NG65bdo7tRpiTaWtTGSMmKowY62GNUZ2GwDO+Tibt2oAXF7b3A4hJsfEGC/GviaeiD/sgqwr + Q5rHH75fW2WHvgd8BSDKGAOAKGMMAKKMMQCIMsYAIMoYA4AoY5wGvDkitNUtgACgb7pxCzs9CSkmxjjR + CoQQKu/Drj7jEIKLMbY9wzbevCbtWvquN/Tcs54lReh7cSQWnDiKnvrMlxehLExiBcNK4i9pNcTKfWLk + nt2cRwzx5eDDi9qYLsqTPspMGTJ7/OH7N/fjvtF3h68ARBljABBljAFAlDEGAFHGGABEGWMAEGWMAUCU + MTYCHVwN9AUs5gCe7anxBQAntAHaQh5vuoL+3XTWADjluAMdSGwEOsKe+ewLAygLkwBA27m+AGg+9JMP + NKAjia8ARBljABBljAFAlDEGAFHGGABEGWMAEGWMAUCUsf8PzNlsT7yleHcAAAAASUVORK5CYIIoAAAA + gAAAAAABAAABACAAAAAAAAAAAQBhCgAAYQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMu6oEzLuqD8y7qg/Mu6oPzLuqD8i2pA7ItqQO + yLakDsi2pA7ItqQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAMy7qgTMu6oPzLuqD8y7qg/Mu6oPyLakDsi2pA7ItqQOyLakDsi2pAQAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLuqBMy7qg/Mu6oPzLuqD8y7qg/ItqQO + yLakDsi2pA7ItqQOyLakBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADMu6oEzLuqD8y7qg/Mu6oPzLuqD8i2pA7ItqQOyLakDsi2pA7ItqQEAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADRuaIN0bmiENG5ohDRuaIQ0LuqQ9C7q2/Qu6tv0Lurb9G9rH/SwK2s0sCtrNLArazSwK2s + 0sCtrNLArazSwK2s0sCtrNC9q37Pu6puz7uqbs+7qm7Pu6lC0bmiENG5ohDRuaIQ0bmiDQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANG5ohLRuaIW0bmiFtG5ohbQu6pb + 0Lurl9C7q5fQu6uX0b2srNLAreXSwK3l0sCt5dLAreXSwK3l0sCt5dLAreXSwK3l0L2rq8+7qpbPu6qW + z7uqls+7qVrRuaIW0bmiFtG5ohbRuaISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA0bmiEtG5ohbRuaIW0bmiFtC7qlvQu6uX0Lurl9C7q5fRvays0sCt5dLAreXSwK3l + 0sCt5dLAreXSwK3l0sCt5dLAreXQvaurz7uqls+7qpbPu6qWz7upWtG5ohbRuaIW0bmiFtG5ohIAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIS0bmiFtG5ohbRuaIW + 0LuqW9C7q5fQu6uX0Lurl9G9rKzSwK3l0sCt5dLAreXSwK3l0sCt5dLAreXSwK3l0sCt5dC9q6vPu6qW + z7uqls+7qpbPu6la0bmiFtG5ohbRuaIW0bmiEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANG5ogPRuaIK0bmiCtG5ogrRuqUO + 0LyrRNC8q0TQvKtE0LyrRNK/rGzTv6x207+sdtO/rHbYx7eg28y9xdvMvcXbzL3F3c7A0eHVxvHh1cbx + 4dXG8eHVxvHh1cbx4dXG8eHVxvHh1cbx3c7A0dvMvcXbzL3F28y9xdjHt6DTv6x207+sdtO/rHbSv6xs + 0LyrRNC8q0TQvKtE0LyrRNG6pQ7RuaIK0bmiCtG5ogrRuaIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA0bmiB9G5ohbRuaIW0bmiFtG6pR7QvKuR0LyrkdC8q5HQvKuR07+t09PArePTwK3j + 08Ct49zNve/j18r649fK+uPXyvrn3ND78erg//Hq4P/x6uD/8erg//Hq4P/x6uD/8erg//Hq4P/n3ND7 + 49fK+uPXyvrj18r63M2979PArePTwK3j08Ct49O/rdPQvKuR0LyrkdC8q5HQvKuR0bqlHtG5ohbRuaIW + 0bmiFtG5ogcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIH0bmiFtG5ohbRuaIW + 0bqlHtC8q5HQvKuR0LyrkdC8q5HTv63T08Ct49PArePTwK3j3M297+PXyvrj18r649fK+ufc0Pvx6uD/ + 8erg//Hq4P/x6uD/8erg//Hq4P/x6uD/8erg/+fc0Pvj18r649fK+uPXyvrczb3v08Ct49PArePTwK3j + 07+t09C8q5HQvKuR0LyrkdC8q5HRuqUe0bmiFtG5ohbRuaIW0bmiBwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAANG5ogfRuaIW0bmiFtG5ohbRuqUe0LyrkdC8q5HQvKuR0LyrkdO/rdPTwK3j + 08Ct49PArePczb3v49fK+uPXyvrj18r659zQ+/Hq4P/x6uD/8erg//Hq4P/x6uD/8erg//Hq4P/x6uD/ + 59zQ++PXyvrj18r649fK+tzNve/TwK3j08Ct49PArePTv63T0LyrkdC8q5HQvKuR0LyrkdG6pR7RuaIW + 0bmiFtG5ohbRuaIHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAMm5ogbJuaIHybmiB8m5ogfQvasW0b6sIdG+rCHRvqwh0r6sK9O/q0DTv6tA + 07+rQNTArUbXxban18W2p9fFtqfXxban2cm429rJuOnaybjp2sm46eHTxfLm28/75tvP++bbz/vp39P8 + 8erg//Hq4P/x6uD/8erg//Hq4P/x6uD/8erg//Hq4P/p39P85tvP++bbz/vm28/74dPF8trJuOnaybjp + 2sm46dnJuNvXxban18W2p9fFtqfXxban1MCtRtO/q0DTv6tA07+rQNK+rCvRvawh0b2sIdG9rCHQvasW + ybmiB8m5ogfJuaIHybmiBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAybmiHcm5oiHJuaIh + ybmiIdC9q3DRvqyl0b6spdG+rKXSv6271MGv5tTBr+bUwa/m1cOx6Ofbzv3n287959vO/efbzv3w6N3/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+fbzv3n287959vO/efbzv3Vw7Ho + 1MGv5tTBr+bUwa/m0r+tu9G9rKXRvayl0b2spdC9q3DJuaIhybmiIcm5oiHJuaIdAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAADJuaIdybmiIcm5oiHJuaIh0L2rcNG+rKXRvqyl0b6spdK/rbvUwa/m + 1MGv5tTBr+bVw7Ho59vO/efbzv3n287959vO/fDo3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6N3/59vO/efbzv3n287959vO/dXDsejUwa/m1MGv5tTBr+bSv6270b2spdG9rKXRvayl + 0L2rcMm5oiHJuaIhybmiIcm5oh0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMm5oh3JuaIh + ybmiIcm5oiHQvatw0b6spdG+rKXRvqyl0r+tu9TBr+bUwa/m1MGv5tXDsejn287959vO/efbzv3n2879 + 8Ojd//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Do3f/n287959vO/efbzv3n2879 + 1cOx6NTBr+bUwa/m1MGv5tK/rbvRvayl0b2spdG9rKXQvatwybmiIcm5oiHJuaIhybmiHQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAybmiHcm5oiHJuaIhybmiIdC9q3DRvqyl0b6spdG+rKXSv627 + 1MGv5tTBr+bUwa/m1cOx6Ofbzv3n287959vO/efbzv3w6N3/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8Ojd/+fbzv3n287959vO/efbzv3Vw7Ho1MGv5tTBr+bUwa/m0r+tu9G9rKXRvayl + 0b2spdC9q3DJuaIhybmiIcm5oiHJuaIdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAADMtaQRzLWkKsy1pCrMtaQqzrinO9G9q6rRvauq0b2rqtG9q6rUw7LT + 1cSz2tXEs9rVxLPa4tXH7One0vjp3tL46d7S+Ovi1vrw6N798Oje/fDo3v3w6d798erg//Hq4P/x6uD/ + 8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8erg//Hq4P/x6uD/ + 8erg//Dp3v3w6N798Oje/fDo3v3r4tb66d7S+One0vjp3tL44tXH7NXEs9rVxLPa1cSz2tTDstPRvauq + 0b2rqtG9q6rRvauqzrinO8y1pCrMtaQqzLWkKsy1pBEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy1pBLMtaQt + zLWkLcy1pC3OuKc/0b2rttG9q7bRvau20b2rttXDsuDVxLPn1cSz59XEs+fi1cj16uDU/urg1P7q4NT+ + 7eTY/vLr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+3k2P7q4NT+ + 6uDU/urg1P7i1cj11cSz59XEs+fVxLPn1cOy4NG9q7bRvau20b2rttG9q7bOuKc/zLWkLcy1pC3MtaQt + zLWkEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLWkEsy1pC3MtaQtzLWkLc64pz/Rvau20b2rttG9q7bRvau2 + 1cOy4NXEs+fVxLPn1cSz5+LVyPXq4NT+6uDU/urg1P7t5Nj+8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7eTY/urg1P7q4NT+6uDU/uLVyPXVxLPn1cSz59XEs+fVw7Lg + 0b2rttG9q7bRvau20b2rts64pz/MtaQtzLWkLcy1pC3MtaQSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMtaQS + zLWkLcy1pC3MtaQtzrinP9G9q7bRvau20b2rttG9q7bVw7Lg1cSz59XEs+fVxLPn4tXI9erg1P7q4NT+ + 6uDU/u3k2P7y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/t5Nj+ + 6uDU/urg1P7q4NT+4tXI9dXEs+fVxLPn1cSz59XDsuDRvau20b2rttG9q7bRvau2zrinP8y1pC3MtaQt + zLWkLcy1pBIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6Il + zLeiKMy3oijMt6Ioz7ypZdC9qoPQvaqD0L2qg9PArpPWxLSs1sS0rNbEtKzYx7e05NjL5+TYy+fk2Mvn + 5NjL5+je0vXp39P36d/T9+nf0/ft5Nn87+fd/+/n3f/v593/8One//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Dp3v/v593/7+fd/+/n3f/t5Nn86d/T9+nf0/fp39P3 + 6N7S9eTYy+fk2Mvn5NjL5+TYy+fYx7e01sS0rNbEtKzWxLSs08Cuk9C9qoPQvaqD0L2qg8+8qWXMt6Io + zLeiKMy3oijMt6IlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy3ojjMt6I8zLeiPMy3ojzPvKmX0L2qxdC9qsXQvarF + 08Gv1NfFtevXxbXr18W169rJuu7r4tb/6+LW/+vi1v/r4tb/8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/x6uD/6+LW/+vi1v/r4tb/6+LW/9rJuu7XxbXr + 18W169fFtevTwa/U0L2qxdC9qsXQvarFz7ypl8y3ojzMt6I8zLeiPMy3ojgAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + zLeiOMy3ojzMt6I8zLeiPM+8qZfQvarF0L2qxdC9qsXTwa/U18W169fFtevXxbXr2sm67uvi1v/r4tb/ + 6+LW/+vi1v/x6uD/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Hq4P/r4tb/6+LW/+vi1v/r4tb/2sm67tfFtevXxbXr18W169PBr9TQvarF0L2qxdC9qsXPvKmX + zLeiPMy3ojzMt6I8zLeiOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6I4zLeiPMy3ojzMt6I8z7ypl9C9qsXQvarF + 0L2qxdPBr9TXxbXr18W169fFtevaybru6+LW/+vi1v/r4tb/6+LW//Hq4P/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8erg/+vi1v/r4tb/6+LW/+vi1v/aybru + 18W169fFtevXxbXr08Gv1NC9qsXQvarF0L2qxc+8qZfMt6I8zLeiPMy3ojzMt6I4AAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM65pQzOuaUZzrmlGc65pRnPu6gk0b6rUdG+q1HRvqtR + 0b6rUdXDsn/Vw7KC1cOygtXDsoLczLy+3c+/3N3Pv9zdz7/c4NLD5eLVx/Pi1cfz4tXH8+TXyvXu5tr/ + 7uba/+7m2v/u5tr/8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/x6uD/7uba/+7m2v/u5tr/7uba/+TXyvXi1cfz4tXH8+LVx/Pg0sPl3c+/3N3Pv9zdz7/c + 3My8vtXDsoLVw7KC1cOygtXDsn/RvqtR0b6rUdG+q1HRvqtRz7uoJM65pRnOuaUZzrmlGc65pQwAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + zrmlHc65pT7OuaU+zrmlPs+7qFrRvqvL0b6ry9G+q8vRvqvL2ce36tnIuOzZyLjs2ci47Ofbzvnt5Nj/ + 7eTY/+3k2P/v59z/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh/+/n3P/t5Nj/7eTY/+3k2P/n28752ci47NnIuOzZyLjs2ce36tG+q8vRvqvL + 0b6ry9G+q8vPu6hazrmlPs65pT7OuaU+zrmlHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOuaUdzrmlPs65pT7OuaU+z7uoWtG+q8vRvqvL + 0b6ry9G+q8vZx7fq2ci47NnIuOzZyLjs59vO+e3k2P/t5Nj/7eTY/+/n3P/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7+fc/+3k2P/t5Nj/ + 7eTY/+fbzvnZyLjs2ci47NnIuOzZx7fq0b6ry9G+q8vRvqvL0b6ry8+7qFrOuaU+zrmlPs65pT7OuaUd + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAM65pR3OuaU+zrmlPs65pT7Pu6ha0b6ry9G+q8vRvqvL0b6ry9nHt+rZyLjs2ci47NnIuOzn2875 + 7eTY/+3k2P/t5Nj/7+fc//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/v59z/7eTY/+3k2P/t5Nj/59vO+dnIuOzZyLjs2ci47NnHt+rRvqvL + 0b6ry9G+q8vRvqvLz7uoWs65pT7OuaU+zrmlPs65pR0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAL+/nwG/v58Bv7+fAb+/nwHNuKQSzbikGM24pBjNuKQYzrqmNs+6p1fPuqdXz7qnV9G+q2/WxLLS + 1sSy0tbEstLWxLLS3My97d3Nvu/dzb7v3c2+7+jd0Pru5dn/7uXZ/+7l2f/v59z/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3P/u5dn/ + 7uXZ/+7l2f/o3dD63c2+793Nvu/dzb7v3My97dXEstLVxLLS1cSy0tXEstLRvqtvz7qnV8+6p1fPuqdX + z7qmNc65pRjOuaUYzrmlGM65pRK/v58Bv7+fAb+/nwG/v58Bv7+fCL+/nwi/v58Iv7+fCM24pIjNuKS3 + zbikt824pLfPuqfV0Lyp+NC8qfjQvKn41sSz+e3k2P/t5Nj/7eTY/+3k2P/y6+D/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/ + 7OPX/+zj1//s49f/7OPX/9bEs/nQvKr40Lyq+NC8qvjPu6jUzrmltc65pbXOuaW1zrmlh7+/nwi/v58I + v7+fCL+/nwi/v58Iv7+fCL+/nwi/v58IzbikiM24pLfNuKS3zbikt8+6p9XQvKn40Lyp+NC8qfjWxLP5 + 7eTY/+3k2P/t5Nj/7eTY//Lr4P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lq4P/s49f/7OPX/+zj1//s49f/1sSz+dC8qvjQvKr4 + 0Lyq+M+7qNTOuaW1zrmltc65pbXOuaWHv7+fCL+/nwi/v58Iv7+fCL+/nwi/v58Iv7+fCL+/nwjNuKSI + zbikt824pLfNuKS3z7qn1dC8qfjQvKn40Lyp+NbEs/nt5Nj/7eTY/+3k2P/t5Nj/8uvg//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8urg/+zj1//s49f/7OPX/+zj1//WxLP50Lyq+NC8qvjQvKr4z7uo1M65pbXOuaW1zrmltc65pYe/v58I + v7+fCL+/nwi/v58Iv7+fCL+/nwi/v58Iv7+fCM24pIjNuKS3zbikt824pLfPuqfV0Lyp+NC8qfjQvKn4 + 1sSz+e3k2P/t5Nj/7eTY/+3k2P/y6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/7OPX/+zj1//s49f/7OPX/9bEs/nQvKr4 + 0Lyq+NC8qvjPu6jUzrmltc65pbXOuaW1zrmlh7+/nwi/v58Iv7+fCL+/nwi/v58Bv7+fAb+/nwG/v58B + zbuiFc27oh3Nu6IdzbuiHc+7p0fPu6h4z7uoeM+7qHjRvauN1MKx4tTCseLUwrHi1MKx4t/Sw/Hg08Xy + 4NPF8uDTxfLq4dX77+jd/+/o3f/v6N3/8One//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7+bb/+3i1v/t4tb/7eLW/+fWxf/WtJj/1rSY/9a0mP/WtJj/ + 1rSY/9a0mP/WtJj/1rSY/+fWxf/t4tb/7eLW/+3i1v/v5tv/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/w6d7/7+jd/+/o3f/v6N3/6uHV++DTxfLg08Xy + 4NPF8t/Sw/HUwrHi1MKx4tTCseLUwrHi0b2rjc+7qXjPu6l4z7upeM+6qEfMuqgczLqoHMy6qBzMuqgV + v7+fAb+/nwG/v58Bv7+fAQAAAAAAAAAAAAAAAAAAAADMzJkEzMyZBczMmQXMzJkFz7unMc+6qGTPuqhk + z7qoZM+7qXzQvKrd0Lyq3dC8qt3QvKrd3M6/793PwPDdz8Dw3c/A8Onf0/rv59z/7+fc/+/n3P/w6d7/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/v5tr/ + 7OHU/+zh1P/s4dT/5dPB/9Ksjf/SrI3/0qyN/9Ksjf/SrI3/0qyN/9Ksjf/SrI3/5dPB/+zh1P/s4dT/ + 7OHU/+/m2v/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Dp3v/v59z/7+fc/+/n3P/p39P63c/A8N3PwPDdz8Dw3M6/79C8qt3QvKrd0Lyq3dC8qt3Pu6l8 + z7qoZM+6qGTPuqhkzrqpMb+/vwS/v78Ev7+/BL+/vwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAMzMmQTMzJkFzMyZBczMmQXPu6cxz7qoZM+6qGTPuqhkz7upfNC8qt3QvKrd0Lyq3dC8qt3czr/v + 3c/A8N3PwPDdz8Dw6d/T+u/n3P/v59z/7+fc//Dp3v/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/m2v/s4dT/7OHU/+zh1P/l08H/0qyN/9Ksjf/SrI3/ + 0qyN/9Ksjf/SrI3/0qyN/9Ksjf/l08H/7OHU/+zh1P/s4dT/7+ba//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8One/+/n3P/v59z/7+fc/+nf0/rdz8Dw + 3c/A8N3PwPDczr/v0Lyq3dC8qt3QvKrd0Lyq3c+7qXzPuqhkz7qoZM+6qGTOuqkxv7+/BL+/vwS/v78E + v7+/AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMyZBMzMmQXMzJkFzMyZBc+7pzHPuqhk + z7qoZM+6qGTPu6l80Lyq3dC8qt3QvKrd0Lyq3dzOv+/dz8Dw3c/A8N3PwPDp39P67+fc/+/n3P/v59z/ + 8One//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 7+ba/+zh1P/s4dT/7OHU/+XTwf/SrI3/0qyN/9Ksjf/SrI3/0qyN/9Ksjf/SrI3/0qyN/+XTwf/s4dT/ + 7OHU/+zh1P/v5tr/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6d7/7+fc/+/n3P/v59z/6d/T+t3PwPDdz8Dw3c/A8NzOv+/QvKrd0Lyq3dC8qt3QvKrd + z7upfM+6qGTPuqhkz7qoZM66qTG/v78Ev7+/BL+/vwS/v78DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADMzJkBzMyZAszMmQLMzJkCz7unFM+6qCjPuqgoz7qoKM+7qTLPvKpaz7yqWs+8qlrPvKpa + 18a2ltfGtprXxraa18a2mtzNvc/ez8Dp3s/A6d7PwOnh1MXu5trN9ebazfXm2s3159zP9/Do3f/w6N3/ + 8Ojd//Do3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/ + 7ePW/+3j1v/t49b/7ePW/+DItP/dwqv/3cKr/93Cq//Yt53/06+R/9Ovkf/Tr5H/1a2N/9ingP/Yp4D/ + 2KeA/9ingP/Yp4D/2KeA/9ingP/Yp4D/1ayM/9Ovkf/Tr5H/06+R/9i3nf/dwqv/3cKr/93Cq//gyLT/ + 7ePW/+3j1v/t49b/7ePW//Lq4P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6N3/8Ojd//Do3f/w6N3/59zP9ubazfXm2s315trN9eHUxe7ez8Dp3s/A6d7PwOnczb3P + 18a2mtfGtprXxraa18a2ltG7qVrRu6la0bupWtG7qVrQuqkyz7qoKM+6qCjPuqgozrqpFL+/vwK/v78C + v7+/Ar+/vwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAqqqqAaqqqgOqqqoDqqqqA6qqqgPNuKZbzbimYc24pmHNuKZhz7ypstC9qtvQvarb + 0L2q29XEsuPdzr7v3c6+793Ovu/f0cLx7ubb/+7m2//u5tv/7ubb//Hq4P/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hq4P/q3c7/6t3O/+rdzv/q3c7/1LGV/8+mh//Ppof/ + z6aH/8mZdf/DjWX/w41l/8ONZf/Kk2r/3KR4/9ykeP/cpHj/3KR4/9yjeP/co3j/3KN4/9yjeP/Kk2n/ + w41k/8ONZP/DjWT/yZl0/8+mh//Ppof/z6aH/9Sxlf/q3c7/6t3O/+rdzv/q3c7/8erg//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8erg/+7m2//u5tv/7ubb/+7m2//f0cLw + 3c6+7t3Ovu7dzr7u1cSy49C9qtvQvarb0L2q28+8qbLNuKZhzbimYc24pmHNuKZb/4CAAv+AgAL/gIAC + /4CAAv+AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqqqoBqqqqA6qqqgOqqqoD + qqqqA824plvNuKZhzbimYc24pmHPvKmy0L2q29C9qtvQvarb1cSy493Ovu/dzr7v3c6+79/RwvHu5tv/ + 7ubb/+7m2//u5tv/8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8erg/+rdzv/q3c7/6t3O/+rdzv/UsZX/z6aH/8+mh//Ppof/yZl1/8ONZf/DjWX/w41l/8qTav/cpHj/ + 3KR4/9ykeP/cpHj/3KN4/9yjeP/co3j/3KN4/8qTaf/DjWT/w41k/8ONZP/JmXT/z6aH/8+mh//Ppof/ + 1LGV/+rdzv/q3c7/6t3O/+rdzv/x6uD/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/x6uD/7ubb/+7m2//u5tv/7ubb/9/RwvDdzr7u3c6+7t3Ovu7VxLLj0L2q29C9qtvQvarb + z7ypss24pmHNuKZhzbimYc24plv/gIAC/4CAAv+AgAL/gIAC/4CAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAKqqqgGqqqoDqqqqA6qqqgOqqqoDzbimW824pmHNuKZhzbimYc+8qbLQvarb + 0L2q29C9qtvVxLLj3c6+793Ovu/dzr7v39HC8e7m2//u5tv/7ubb/+7m2//x6uD/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/x6uD/6t3O/+rdzv/q3c7/6t3O/9Sxlf/Ppof/ + z6aH/8+mh//JmXX/w41l/8ONZf/DjWX/ypNq/9ykeP/cpHj/3KR4/9ykeP/co3j/3KN4/9yjeP/co3j/ + ypNp/8ONZP/DjWT/w41k/8mZdP/Ppof/z6aH/8+mh//UsZX/6t3O/+rdzv/q3c7/6t3O//Hq4P/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hq4P/u5tv/7ubb/+7m2//u5tv/ + 39HC8N3Ovu7dzr7u3c6+7tXEsuPQvarb0L2q29C9qtvPvKmyzbimYc24pmHNuKZhzbimW/+AgAL/gIAC + /4CAAv+AgAL/gIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqqqqAKqqqgKqqqoC + qqqqAqqqqgLNuKY8zbimQc24pkHNuKZBz7ypd9C9qpLQvaqS0L2qktXDsqLby7q628u6utvLurrdzb3B + 5drN8eXazfHl2s3x5drN8erg1Pfr4dX46+HV+Ovh1fjt49f87uTY/+7k2P/u5Nj/69/R/+bUw//m1MP/ + 5tTD/+bTwf/dwqr/3cKq/93Cqv/dwqr/1aqJ/9Okgf/TpIH/06SB/9Kfef/Sm3H/0ptx/9Kbcf/Wn3X/ + 46p+/+Oqfv/jqn7/46p+/+Oqfv/jqn7/46p+/+Oqfv/Wn3T/0ptx/9Kbcf/Sm3H/0p94/9Okgf/TpIH/ + 06SB/9Wqif/dwqr/3cKq/93Cqv/dwqr/5tPB/+bUw//m1MP/5tTD/+vf0f/u5Nj/7uTY/+7k2P/t49f8 + 6+HV+Ovh1fjr4dX46uDU9+XazfHl2s3x5drN8eXazfHdzb3A28u6udvLurnby7q51cOyotC9qpLQvaqS + 0L2qks+8qXfNuKZBzbimQc24pkHNuKY8/4CAAf+AgAH/gIAB/4CAAf+AgAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAz7ilIM+4pU/PuKVPz7ilT8+5pmHPvarVz72q1c+9qtXPvarV2sm559vLu+rby7vq + 28u76uHSwvfl1sf/5dbH/+XWx//exrL/z6aH/8+mh//Ppof/zqSF/8OMY//DjGP/w4xj/8OMY//WnXH/ + 26F1/9uhdf/boXX/5qyA/++2iv/vtor/77aK/++2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/++2iv/vtor/77aK/++2iv/mrID/26F1/9uhdf/boXX/1p1x/8OMY//DjGP/w4xj/8OMY//OpIX/ + z6aH/8+mh//Ppof/3say/+XWx//l1sf/5dbH/+HSwvfby7vq28u76tvLu+raybnnz72q1c+9qtXPvarV + z72q1c+5pmHPuKVPz7ilT8+4pU/PuKUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPuKUgz7ilT8+4pU/PuKVP + z7mmYc+9qtXPvarVz72q1c+9qtXaybnn28u76tvLu+rby7vq4dLC9+XWx//l1sf/5dbH/97Gsv/Ppof/ + z6aH/8+mh//OpIX/w4xj/8OMY//DjGP/w4xj/9adcf/boXX/26F1/9uhdf/mrID/77aK/++2iv/vtor/ + 77aK//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/77aK/++2iv/vtor/77aK/+asgP/boXX/ + 26F1/9uhdf/WnXH/w4xj/8OMY//DjGP/w4xj/86khf/Ppof/z6aH/8+mh//exrL/5dbH/+XWx//l1sf/ + 4dLC99vLu+rby7vq28u76trJuefPvarVz72q1c+9qtXPvarVz7mmYc+4pU/PuKVPz7ilT8+4pSAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAM+4pSDPuKVPz7ilT8+4pU/PuaZhz72q1c+9qtXPvarVz72q1drJuefby7vq + 28u76tvLu+rh0sL35dbH/+XWx//l1sf/3say/8+mh//Ppof/z6aH/86khf/DjGP/w4xj/8OMY//DjGP/ + 1p1x/9uhdf/boXX/26F1/+asgP/vtor/77aK/++2iv/vtor/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//vtor/77aK/++2iv/vtor/5qyA/9uhdf/boXX/26F1/9adcf/DjGP/w4xj/8OMY//DjGP/ + zqSF/8+mh//Ppof/z6aH/97Gsv/l1sf/5dbH/+XWx//h0sL328u76tvLu+rby7vq2sm558+9qtXPvarV + z72q1c+9qtXPuaZhz7ilT8+4pU/PuKVPz7ilIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz7ilHc+4pUrPuKVK + z7ilSs+5plvPvKnKz7ypys+8qcrPvKnK2Ma05NnHtujZx7bo2ce26N/NvPbj0cD/49HA/+PRwP/cw63/ + 0KaG/9Cmhv/Qpob/z6SE/8aPZv/Gj2b/xo9m/8aPZv/Yn3P/3KJ2/9yidv/conb/5q2B/++2iv/vtor/ + 77aK/++2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/++2iv/vtor/77aK/++2iv/mrYH/ + 3KJ2/9yidv/conb/2J9z/8aPZv/Gj2b/xo9m/8aPZv/PpIT/0KaG/9Cmhv/Qpob/3MOt/+PRwP/j0cD/ + 49HA/9/NvPbZx7bo2ce26NnHtujYxrTkz7ypys+8qcrPvKnKz7ypys+5plvPuKVKz7ilSs+4pUrPuKUd + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAt3pOBrd6Ti63ek4ut3pOLrd6Ti68h1yz + vIdcx7yHXMe8h1zHv4hd5sGIXvvBiF77wYhe+8uSZ/zfpXn/36V5/9+lef/gpnr/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/+Cmev/fpXn/36V5/9+lef/Lkmf8wYhe+8GIXvvBiF77v4hd5ryHXMe8h1zHvIdcx7yHXLO3ek4u + t3pOLrd6Ti63ek4ut3pOBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAC3ek4Gt3pOLrd6Ti63ek4ut3pOLryHXLO8h1zHvIdcx7yHXMe/iF3mwYhe+8GIXvvBiF77 + y5Jn/N+lef/fpXn/36V5/+Cmev/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/4KZ6/9+lef/fpXn/36V5/8uSZ/zBiF77 + wYhe+8GIXvu/iF3mvIdcx7yHXMe8h1zHvIdcs7d6Ti63ek4ut3pOLrd6Ti63ek4GAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALd6Tga3ek4ut3pOLrd6Ti63ek4u + vIdcs7yHXMe8h1zHvIdcx7+IXebBiF77wYhe+8GIXvvLkmf836V5/9+lef/fpXn/4KZ6//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//gpnr/36V5/9+lef/fpXn/y5Jn/MGIXvvBiF77wYhe+7+IXea8h1zHvIdcx7yHXMe8h1yz + t3pOLrd6Ti63ek4ut3pOLrd6TgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAt3pOBrd6Ti63ek4ut3pOLrd6Ti68h1yzvIdcx7yHXMe8h1zHv4hd5sGIXvvBiF77 + wYhe+8uSZ/zfpXn/36V5/9+lef/gpnr/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+Cmev/fpXn/36V5/9+lef/Lkmf8 + wYhe+8GIXvvBiF77v4hd5ryHXMe8h1zHvIdcx7yHXLO3ek4ut3pOLrd6Ti63ek4ut3pOBgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAuH1PIbh9TzG4fU8xuH1PMbqAU127gVWgu4FVoLuBVaC8glalwohcyMKIXMjCiFzI + wohcyNqhde7dpHj03aR49N2kePTjqn76566C/ueugv7nroL+6bCE/u2zh//ts4f/7bOH/+20iP/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7bSI/+2zh//ts4f/7bOH/+mwhP7nroL+566C/ueugv7jqn763aR49N2kePTdpHj0 + 2qF17sKIXMjCiFzIwohcyMKIXMi9glamvIFVobyBVaG8gVWhu4BTXrh9TzG4fU8xuH1PMbh9TyEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4fU8puH1PPbh9Tz24fU89 + uoBTdbuBVci7gVXIu4FVyLyCVs3DiV3uw4ld7sOJXe7DiV3u4KZ6/eSqfv/kqn7/5Kp+/+uyhv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+uyhv/kqn7/5Kp+/+Sqfv/gpnr9w4ld7sOJXe7DiV3uw4ld7r2CVs68gVXJ + vIFVybyBVcm7gFN1uH1PPbh9Tz24fU89uH1PKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALh9Tym4fU89uH1PPbh9Tz26gFN1u4FVyLuBVci7gVXIvIJWzcOJXe7DiV3u + w4ld7sOJXe7gpnr95Kp+/+Sqfv/kqn7/67KG//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/67KG/+Sqfv/kqn7/ + 5Kp+/+Cmev3DiV3uw4ld7sOJXe7DiV3uvYJWzryBVcm8gVXJvIFVybuAU3W4fU89uH1PPbh9Tz24fU8p + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuH1PKbh9Tz24fU89 + uH1PPbqAU3W7gVXIu4FVyLuBVci8glbNw4ld7sOJXe7DiV3uw4ld7uCmev3kqn7/5Kp+/+Sqfv/rsob/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//rsob/5Kp+/+Sqfv/kqn7/4KZ6/cOJXe7DiV3uw4ld7sOJXe69glbO + vIFVybyBVcm8gVXJu4BTdbh9Tz24fU89uH1PPbh9TykAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1flEHtX5RJbV+USW1flEl + tX5RJbqAVGu6gFRwuoBUcLqAVHDCiFyNxItfm8SLX5vEi1+bzZNnudWccOXVnHDl1Zxw5dadcejconb3 + 3KJ299yidvfconb36a+D/uqxhf/qsYX/6rGF/+61if/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61if/qsYX/ + 6rGF/+qxhf/pr4P+3KJ299yidvfconb33KJ299adcejVnHDm1Zxw5tWccObNk2e5xYtemsWLXprFi16a + wohbjLqAVHC6gFRwuoBUcLqAVGu1flEltX5RJbV+USW1flEltX5RBwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALV+UQ61flFFtX5RRbV+UUW1flFFuoBUybqAVNK6gFTSuoBU0sOKXuTHjmLt + x45i7ceOYu3Um2/0566C/+eugv/nroL/6K+D//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 6K+D/+eugv/nroL/566C/9Wbb/TIjmHsyI5h7MiOYezEil3juoBU0rqAVNK6gFTSuoBUybV+UUW1flFF + tX5RRbV+UUW1flEOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtX5RDrV+UUW1flFF + tX5RRbV+UUW6gFTJuoBU0rqAVNK6gFTSw4pe5MeOYu3HjmLtx45i7dSbb/TnroL/566C/+eugv/or4P/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//or4P/566C/+eugv/nroL/1Ztv9MiOYezIjmHs + yI5h7MSKXeO6gFTSuoBU0rqAVNK6gFTJtX5RRbV+UUW1flFFtX5RRbV+UQ4AAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAC1flEOtX5RRbV+UUW1flFFtX5RRbqAVMm6gFTSuoBU0rqAVNLDil7k + x45i7ceOYu3HjmLt1Jtv9Oeugv/nroL/566C/+ivg//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/+ivg//nroL/566C/+eugv/Vm2/0yI5h7MiOYezIjmHsxIpd47qAVNK6gFTSuoBU0rqAVMm1flFF + tX5RRbV+UUW1flFFtX5RDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAKqAVQKqgFUCqoBVAqqAVQK5gFIVuYBSHLmAUhy5gFIcvIFVK72BVju9gVY7vYFWO8CFWUfFjGBz + xYxgc8WMYHPFjGBzyY9j18mPZN7Jj2TeyY9k3tCWauvTmm7y05pu8tOabvLco3f36bCE/+mwhP/psIT/ + 6rGF//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/6rGF/+mwhP/psIT/6bCE/9yjd/fTmm3x + 05pt8dOabfHQlmrryY9k3smPZN7Jj2TeyY9j18WMX3PFjF9zxYxfc8WMX3PAhVlHvYFWO72BVju9gVY7 + vIFVK7mAUhy5gFIcuYBSHLmAUhWqgFUCqoBVAqqAVQKqgFUCqoBVBqqAVQaqgFUGqoBVBrmAUk+5gFJq + uYBSarmAUmq8gVWhvYFW372BVt+9gVbfwYZa49KXa/HSl2vx0pdr8dKXa/HpsIX+67KH/+uyh//rsof/ + 7rWK//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61iv/rsof/67KH/+uyh//psIX+ + 0Zdq8tGXavLRl2ry0Zdq8sGGWuO9gVbfvYFW372BVt+8gVWhuYBSarmAUmq5gFJquYBST6qAVQaqgFUG + qoBVBqqAVQaqgFUGqoBVBqqAVQaqgFUGuYBST7mAUmq5gFJquYBSaryBVaG9gVbfvYFW372BVt/Bhlrj + 0pdr8dKXa/HSl2vx0pdr8emwhf7rsof/67KH/+uyh//utYr/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7rWK/+uyh//rsof/67KH/+mwhf7Rl2ry0Zdq8tGXavLRl2rywYZa472BVt+9gVbf + vYFW37yBVaG5gFJquYBSarmAUmq5gFJPqoBVBqqAVQaqgFUGqoBVBqqAVQaqgFUGqoBVBqqAVQa5gFJP + uYBSarmAUmq5gFJqvIFVob2BVt+9gVbfvYFW38GGWuPSl2vx0pdr8dKXa/HSl2vx6bCF/uuyh//rsof/ + 67KH/+61iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utYr/67KH/+uyh//rsof/ + 6bCF/tGXavLRl2ry0Zdq8tGXavLBhlrjvYFW372BVt+9gVbfvIFVobmAUmq5gFJquYBSarmAUk+qgFUG + qoBVBqqAVQaqgFUGqoBVBqqAVQaqgFUGqoBVBrmAUk+5gFJquYBSarmAUmq8gVWhvYFW372BVt+9gVbf + wYZa49KXa/HSl2vx0pdr8dKXa/HpsIX+67KH/+uyh//rsof/7rWK//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+61iv/rsof/67KH/+uyh//psIX+0Zdq8tGXavLRl2ry0Zdq8sGGWuO9gVbf + vYFW372BVt+8gVWhuYBSarmAUmq5gFJquYBST6qAVQaqgFUGqoBVBqqAVQa/gEAEv4BABL+AQAS/gEAE + un1SSrp9UmS6fVJkun1SZLuAVJy7gVXdu4FV3buBVd3AhVnh0ZZq8NGWavDRlmrw0ZZq8OmwhP7rsob/ + 67KG/+uyhv/utYn/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+62iv/ptYn/6bWJ/+m1if/ptYn/ + 6baI/+m2iP/ptoj/6baI/+63iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/7rWJ/+uyhv/rsob/ + 67KG/+mwhP7Rlmrw0ZZq8NGWavDRlmrwwIVZ4buBVd27gVXdu4FV3buAVJy6fVJkun1SZLp9UmS6fVJK + v4BABL+AQAS/gEAEv4BABL+AQAS/gEAEv4BABL+AQAS6fVJKun1SZLp9UmS6fVJku4BUnLuBVd27gVXd + u4FV3cCFWeHRlmrw0ZZq8NGWavDRlmrw6bCE/uuyhv/rsob/67KG/+61if/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7raK/+m1if/ptYn/6bWJ/+m1if/ptoj/6baI/+m2iP/ptoj/7reK//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//utYn/67KG/+uyhv/rsob/6bCE/tGWavDRlmrw0ZZq8NGWavDAhVnh + u4FV3buBVd27gVXdu4BUnLp9UmS6fVJkun1SZLp9Ukq/gEAEv4BABL+AQAS/gEAEv4BABL+AQAS/gEAE + v4BABLp9Ukq6fVJkun1SZLp9UmS7gFScu4FV3buBVd27gVXdwIVZ4dGWavDRlmrw0ZZq8NGWavDpsIT+ + 67KG/+uyhv/rsob/7rWJ//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utor/6bWJ/+m1if/ptYn/ + 6bWJ/+m2iP/ptoj/6baI/+m2iP/ut4r/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61if/rsob/ + 67KG/+uyhv/psIT+0ZZq8NGWavDRlmrw0ZZq8MCFWeG7gVXdu4FV3buBVd27gFScun1SZLp9UmS6fVJk + un1SSr+AQAS/gEAEv4BABL+AQAS/gEAEv4BABL+AQAS/gEAEun1SSrp9UmS6fVJkun1SZLuAVJy7gVXd + u4FV3buBVd3AhVnh0ZZq8NGWavDRlmrw0ZZq8OmwhP7rsob/67KG/+uyhv/utYn/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+62iv/ptYn/6bWJ/+m1if/ptYn/6baI/+m2iP/ptoj/6baI/+63iv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/7rWJ/+uyhv/rsob/67KG/+mwhP7Rlmrw0ZZq8NGWavDRlmrw + wIVZ4buBVd27gVXdu4FV3buAVJy6fVJkun1SZLp9UmS6fVJKv4BABL+AQAS/gEAEv4BABL+AQAG/gEAB + v4BAAb+AQAG6fVIUun1SG7p9Uhu6fVIbun9UK7p/VT26f1U9un9VPb6DWEzEiV6IxIleiMSJXojEiV6I + yo9j4MqPY+fKj2Pnyo9j59OZbPDXnXD0151w9NedcPTfpXn467GG/+uxhv/rsYb/7LKH//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+q1if/otYj/6LWI/+i1iP/RsYH/va16/72tev+9rXr/tqx4/6Opc/+jqXP/ + o6lz/6Opc/+jqnP/o6pz/6Oqc/+jqnP/t6x4/76tev++rXr/vq16/9Kxgf/otYj/6LWI/+i1iP/qtYn/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/7LOG/+uyhf/rsoX/67KF/9+mefjXnXD0151w9NedcPTTmWzw + yo9j58qPY+fKj2Pnyo9j4MSJXojEiV6IxIleiMSJXoi+g1hMun9VPbp/VT26f1U9un9UK7p9Uhu6fVIb + un1SG7p9UhS/gEABv4BAAb+AQAG/gEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUB + qlVVA6pVVQOqVVUDt3lTFrl9U2K5fVNiuX1TYrl9U2K8gVXWvIFV3ryBVd68gVXeyI1h6s2TZvDNk2bw + zZNm8Nmfcvbpr4T/6a+E/+mvhP/qsIX/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/57WI/+W0h//ltIf/ + 5bSH/8avff+rqnT/q6p0/6uqdP+iqXL/iaVr/4mla/+JpWv/iaVr/4mla/+JpWv/iaVr/4mla/+jqXL/ + rKp0/6yqdP+sqnT/x699/+W0h//ltIf/5bSH/+e1iP/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//qsYT/ + 6bCD/+mwg//psIP/2Z9y9s2TZvDNk2bwzZNm8MiNYeq8gVXevIFV3ryBVd68gVXWuX1TYrl9U2K5fVNi + uX1TYrd5UxaqVVUDqlVVA6pVVQOqVVUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKpVVQGqVVUDqlVVA6pVVQO3eVMWuX1TYrl9U2K5fVNi + uX1TYryBVda8gVXevIFV3ryBVd7IjWHqzZNm8M2TZvDNk2bw2Z9y9umvhP/pr4T/6a+E/+qwhf/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//ntYj/5bSH/+W0h//ltIf/xq99/6uqdP+rqnT/q6p0/6Kpcv+JpWv/ + iaVr/4mla/+JpWv/iaVr/4mla/+JpWv/iaVr/6Opcv+sqnT/rKp0/6yqdP/Hr33/5bSH/+W0h//ltIf/ + 57WI//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+qxhP/psIP/6bCD/+mwg//Zn3L2zZNm8M2TZvDNk2bw + yI1h6ryBVd68gVXevIFV3ryBVda5fVNiuX1TYrl9U2K5fVNit3lTFqpVVQOqVVUDqlVVA6pVVQEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + qlVVAapVVQOqVVUDqlVVA7d5Uxa5fVNiuX1TYrl9U2K5fVNivIFV1ryBVd68gVXevIFV3siNYerNk2bw + zZNm8M2TZvDZn3L26a+E/+mvhP/pr4T/6rCF//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+e1iP/ltIf/ + 5bSH/+W0h//Gr33/q6p0/6uqdP+rqnT/oqly/4mla/+JpWv/iaVr/4mla/+JpWv/iaVr/4mla/+JpWv/ + o6ly/6yqdP+sqnT/rKp0/8evff/ltIf/5bSH/+W0h//ntYj/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 6rGE/+mwg//psIP/6bCD/9mfcvbNk2bwzZNm8M2TZvDIjWHqvIFV3ryBVd68gVXevIFV1rl9U2K5fVNi + uX1TYrl9U2K3eVMWqlVVA6pVVQOqVVUDqlVVAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUBqlVVAqpVVQKqVVUCt3lTDLl9UzS5fVM0 + uX1TNLl9UzS8gFVyvIBVd7yAVXe8gFV3xYpelsiOYaXIjmGlyI5hpc+UacHWnHDr1pxw69accOvXnXLt + 4KZ69uCmevbgpnr24KZ69uuyhv7ss4f/7LOH/+yzh//vtor/8LeL//C3i//wt4v/7reK/+u2if/rton/ + 67aJ/+m1if/RsYH/0bGB/9Gxgf/RsYH/v657/7qtev+6rXr/uq16/6yve/+fsXv/n7F7/5+xe/+csnz/ + kraA/5K2gP+StoD/kraA/5K2gP+StoD/kraA/5K2gP+csnz/n7F7/5+xe/+fsXv/rK97/7qtev+6rXr/ + uq16/7+ue//RsYH/0bGB/9Gxgf/RsYH/6bWJ/+u2if/rton/67aJ/+63iv/wt4v/8LeL//C3i//vtor/ + 7LOH/+yzh//ss4f/67KG/uCmevbgpnr24KZ69uCmevbXnnHt1pxw69accOvWnHDrz5VowciOYaXIjmGl + yI5hpcWKXpW8gVV2vIFVdryBVXa8gVVyuX1TNLl9UzS5fVM0uX1TNLd5UwyqVVUCqlVVAqpVVQKqVVUB + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAH/AAAB/wAAAf8AAAG4elA1 + uHtRT7h7UU+4e1FPun9UhbuBVdW7gVXVu4FV1b2DV9jMkWXrzJFl68yRZevMkWXr5at//Oivg//or4P/ + 6K+D/+20iP/wt4v/8LeL//C3i//stor/5bSH/+W0h//ltIf/4bOG/62rdf+tq3X/rat1/62rdf+Qpm3/ + iaVr/4mla/+JpWv/jbB4/5G5g/+RuYP/kbmD/5S9if+dyZj/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/ + ncmY/5S9if+RuYP/kbmD/5G5g/+NsHj/iaVr/4mla/+JpWv/kKZt/62rdf+tq3X/rat1/62rdf/hs4b/ + 5bSH/+W0h//ltIf/7LaK//C3i//wt4v/8LeL/+20iP/or4P/6K+D/+ivg//lq3/8zJFl68yRZevMkWXr + zJFl672DV9i7gVXVu4FV1buBVdW6f1SFuHtRT7h7UU+4e1FPuHtRNQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA/wAAAf8AAAH/AAAB/wAAAbh6UDW4e1FPuHtRT7h7UU+6f1SFu4FV1buBVdW7gVXV + vYNX2MyRZevMkWXrzJFl68yRZevlq3/86K+D/+ivg//or4P/7bSI//C3i//wt4v/8LeL/+y2iv/ltIf/ + 5bSH/+W0h//hs4b/rat1/62rdf+tq3X/rat1/5Cmbf+JpWv/iaVr/4mla/+NsHj/kbmD/5G5g/+RuYP/ + lL2J/53JmP+dyZj/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/lL2J/5G5g/+RuYP/kbmD/42weP+JpWv/ + iaVr/4mla/+Qpm3/rat1/62rdf+tq3X/rat1/+Gzhv/ltIf/5bSH/+W0h//stor/8LeL//C3i//wt4v/ + 7bSI/+ivg//or4P/6K+D/+Wrf/zMkWXrzJFl68yRZevMkWXrvYNX2LuBVdW7gVXVu4FV1bp/VIW4e1FP + uHtRT7h7UU+4e1E1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAB/wAAAf8AAAH/AAAB + uHpQNbh7UU+4e1FPuHtRT7p/VIW7gVXVu4FV1buBVdW9g1fYzJFl68yRZevMkWXrzJFl6+Wrf/zor4P/ + 6K+D/+ivg//ttIj/8LeL//C3i//wt4v/7LaK/+W0h//ltIf/5bSH/+Gzhv+tq3X/rat1/62rdf+tq3X/ + kKZt/4mla/+JpWv/iaVr/42weP+RuYP/kbmD/5G5g/+UvYn/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/ + ncmY/53JmP+UvYn/kbmD/5G5g/+RuYP/jbB4/4mla/+JpWv/iaVr/5Cmbf+tq3X/rat1/62rdf+tq3X/ + 4bOG/+W0h//ltIf/5bSH/+y2iv/wt4v/8LeL//C3i//ttIj/6K+D/+ivg//or4P/5at//MyRZevMkWXr + zJFl68yRZeu9g1fYu4FV1buBVdW7gVXVun9Uhbh7UU+4e1FPuHtRT7h7UTUAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAP8AAAH/AAAB/wAAAf8AAAG4elAquHtRP7h7UT+4e1E/un9UaruBVaq7gVWq + u4FVqr2DV67LkGTIy5BkyMuQZMjLkGTI3KV58N6oe/beqHv23qh79t6ugPvesoP93rKD/d6yg/3asYP+ + 0rGB/9Kxgf/SsYH/0LGB/6iuef+ornn/qK55/6iuef+TrXX/jax0/42sdP+NrHT/kbV+/5S8h/+UvIf/ + lLyH/5bAjP+dyZj/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/ncmY/5bAjP+UvIf/lLyH/5S8h/+RtX7/ + jax0/42sdP+NrHT/k611/6iuef+ornn/qK55/6iuef/QsYH/0rGB/9Kxgf/SsYH/2rGD/t6yg/3esoP9 + 3rKD/d6ugPveqHv23qh79t6oe/bcpXnwy5BkyMuQZMjLkGTIy5BkyL2DV667gVWqu4FVqruBVaq6f1Rq + uHtRP7h7UT+4e1E/uHtRKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtHtPCLR7Tzq0e086tHtPOrR7TzqwhVa/ + sIVW07CFVtOwhVbTnpNf6ZSbZPeUm2T3lJtk95CeZvqIpWv/iKVr/4ila/+Jpm3/k7uH/5O7h/+Tu4f/ + k7uH/5zGlf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cxpX/k7uH/5O7h/+Tu4f/ + k7uH/4mmbf+IpWv/iKVr/4ila/+Qnmb6lJtk95SbZPeUm2T3npNf6bCFVtOwhVbTsIVW07CFVr+0e086 + tHtPOrR7Tzq0e086tHtPCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAC0e08ItHtPOrR7Tzq0e086tHtPOrCFVr+whVbTsIVW07CFVtOek1/plJtk95SbZPeUm2T3 + kJ5m+oila/+IpWv/iKVr/4mmbf+Tu4f/k7uH/5O7h/+Tu4f/nMaV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5zGlf+Tu4f/k7uH/5O7h/+Tu4f/iaZt/4ila/+IpWv/iKVr/5CeZvqUm2T3 + lJtk95SbZPeek1/psIVW07CFVtOwhVbTsIVWv7R7Tzq0e086tHtPOrR7Tzq0e08IAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALR7Twi0e086tHtPOrR7Tzq0e086 + sIVWv7CFVtOwhVbTsIVW056TX+mUm2T3lJtk95SbZPeQnmb6iKVr/4ila/+IpWv/iaZt/5O7h/+Tu4f/ + k7uH/5O7h/+cxpX/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMaV/5O7h/+Tu4f/ + k7uH/5O7h/+Jpm3/iKVr/4ila/+IpWv/kJ5m+pSbZPeUm2T3lJtk956TX+mwhVbTsIVW07CFVtOwhVa/ + tHtPOrR7Tzq0e086tHtPOrR7TwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAtHtPCLR7Tzq0e086tHtPOrR7TzqwhVa/sIVW07CFVtOwhVbTnpNf6ZSbZPeUm2T3 + lJtk95CeZvqIpWv/iKVr/4ila/+Jpm3/k7uH/5O7h/+Tu4f/k7uH/5zGlf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cxpX/k7uH/5O7h/+Tu4f/k7uH/4mmbf+IpWv/iKVr/4ila/+Qnmb6 + lJtk95SbZPeUm2T3npNf6bCFVtOwhVbTsIVW07CFVr+0e086tHtPOrR7Tzq0e086tHtPCAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHefYBF3n2Aqd59gKnefYCp5oGI8fKJlrnyiZa58omWu + fKJlroKla96DpWzmg6Vs5oOlbOaPtH/0lr2K/pa9iv6WvYr+mMCO/p3Hlv+dx5b/nceW/53Hlv+dyJj/ + nciY/53ImP+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/ + nciY/53ImP+dyJj/nceW/53Hlv+dx5b/nceW/5jAjv6WvYr+lr2K/pa9iv6PtH/0g6Vs5oOlbOaDpWzm + gqVr3nyiZa58omWufKJlrnyiZa55oGI8d59gKnefYCp3n2Aqd59gEQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + d59gEnefYC13n2Atd59gLXmhYj97o2W2e6NltnujZbZ7o2W2f6ds4ICnbeeAp23ngKdt5462gfWWv43+ + lr+N/pa/jf6ZwpH+nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + mcKR/pa/jf6Wv43+lr+N/o62gfWAp23ngKdt54Cnbed/p2zge6NltnujZbZ7o2W2e6NltnmhYj93n2At + d59gLXefYC13n2ASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3n2ASd59gLXefYC13n2AteaFiP3ujZbZ7o2W2 + e6NltnujZbZ/p2zggKdt54CnbeeAp23njraB9Za/jf6Wv43+lr+N/pnCkf6eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+ZwpH+lr+N/pa/jf6Wv43+jraB9YCnbeeAp23n + gKdt53+nbOB7o2W2e6NltnujZbZ7o2W2eaFiP3efYC13n2Atd59gLXefYBIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHefYBJ3n2Atd59gLXefYC15oWI/e6NltnujZbZ7o2W2e6Nltn+nbOCAp23ngKdt54CnbeeOtoH1 + lr+N/pa/jf6Wv43+mcKR/p7Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5nCkf6Wv43+lr+N/pa/jf6OtoH1gKdt54CnbeeAp23nf6ds4HujZbZ7o2W2e6NltnujZbZ5oWI/ + d59gLXefYC13n2Atd59gEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHedXiV3nV4od51eKHedXih6oWRleqJlg3qiZYN6omWDfaRpk4CnbqyAp26sgKdurIOqcrSQuYTn + kLmE55C5hOeQuYTnlL6K9ZW+i/eVvov3lb6L95nDkfybxpX/m8aV/5vGlf+cx5b/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMeW/5vGlf+bxpX/m8aV/5nDkfyVvov3 + lb6L95W+i/eUvor1kLmE55C5hOeQuYTnkLmE54OqcrSAp26sgKdurICnbqx9pGmTeqJlg3qiZYN6omWD + eqFkZXedXih3nV4od51eKHedXiUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd51eOHedXjx3nV48d51ePHqhZJd6omXF + eqJlxXqiZcV9pWnUgahv64Gob+uBqG/rhKx07pfBj/+XwY//l8GP/5fBj/+dyJj/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+XwY//l8GP/5fBj/+XwY// + hKx07oGob+uBqG/rgahv632ladR6omXFeqJlxXqiZcV6oWSXd51ePHedXjx3nV48d51eOAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3nV44d51ePHedXjx3nV48eqFkl3qiZcV6omXFeqJlxX2ladSBqG/rgahv64Gob+uErHTu + l8GP/5fBj/+XwY//l8GP/53ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nciY/5fBj/+XwY//l8GP/5fBj/+ErHTugahv64Gob+uBqG/rfaVp1HqiZcV6omXF + eqJlxXqhZJd3nV48d51ePHedXjx3nV44AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHedXjh3nV48d51ePHedXjx6oWSX + eqJlxXqiZcV6omXFfaVp1IGob+uBqG/rgahv64SsdO6XwY//l8GP/5fBj/+XwY//nciY/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/l8GP/5fBj/+XwY// + l8GP/4SsdO6BqG/rgahv64Gob+t9pWnUeqJlxXqiZcV6omXFeqFkl3edXjx3nV48d51ePHedXjgAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd6BfDHegXxl3oF8Zd6BfGXmhYSR7omRR + e6JkUXuiZFF7omRRf6drf4Cna4KAp2uCgKdrgoavdr6IsXnciLF53IixedyKs3zljbaB8422gfONtoHz + j7iD9ZrEk/+axJP/msST/5rEk/+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/53ImP+axJP/msST/5rEk/+axJP/j7iD9Y22gfONtoHzjbaB84qzfOWIsXnc + iLF53IixedyGr3a+gKdrgoCna4KAp2uCf6drf3uiZFF7omRRe6JkUXuiZFF5oWEkd6BfGXegXxl3oF8Z + d6BfDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3oF8dd6BfPnegXz53oF8+eaFhWnuiZMt7omTLe6Jky3uiZMuDqm/qg6tw7IOrcOyDq3Ds + kbuH+ZjDkf+Yw5H/mMOR/5rFlP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/msWU/5jDkf+Yw5H/mMOR/5G7h/mDq3Dsg6tw7IOrcOyDqm/q + e6Jky3uiZMt7omTLe6Jky3mhYVp3oF8+d6BfPnegXz53oF8dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHegXx13oF8+d6BfPnegXz55oWFa + e6Jky3uiZMt7omTLe6Jky4Oqb+qDq3Dsg6tw7IOrcOyRu4f5mMOR/5jDkf+Yw5H/msWU/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+axZT/ + mMOR/5jDkf+Yw5H/kbuH+YOrcOyDq3Dsg6tw7IOqb+p7omTLe6Jky3uiZMt7omTLeaFhWnegXz53oF8+ + d6BfPnegXx0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAd6BfHXegXz53oF8+d6BfPnmhYVp7omTLe6Jky3uiZMt7omTLg6pv6oOrcOyDq3Ds + g6tw7JG7h/mYw5H/mMOR/5jDkf+axZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5rFlP+Yw5H/mMOR/5jDkf+Ru4f5g6tw7IOrcOyDq3Ds + g6pv6nuiZMt7omTLe6Jky3uiZMt5oWFad6BfPnegXz53oF8+d6BfHQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAgJ9gAYCfYAGAn2ABgJ9gAXacXxJ2nF8YdpxfGHacXxh4n2A2eKBhV3igYVd4oGFX + e6Nlb4Cna9KAp2vSgKdr0oCna9KGr3Xth69274evdu+Hr3bvk72J+pnEkv+ZxJL/mcSS/5vGlf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + m8aV/5nEkv+ZxJL/mcSS/5O9ifqHr3bvh69274evdu+Gr3XtgKdr0oCna9KAp2vSgKdr0nujZW94oGFX + eKBhV3igYVd3oGE1dp5gGHaeYBh2nmAYdp5gEoCfYAGAn2ABgJ9gAYCfYAGAn2AIgJ9gCICfYAiAn2AI + dpxfiHacX7d2nF+3dpxft3ieYtV6oGT4eqBk+HqgZPiAp235mMOR/5jDkf+Yw5H/mMOR/57JmP+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57JmP+YwpD/mMKQ/5jCkP+YwpD/f6dt+XmgZPh5oGT4eaBk+HifYtR2nmC1dp5gtXaeYLV2nmCH + gJ9gCICfYAiAn2AIgJ9gCICfYAiAn2AIgJ9gCICfYAh2nF+Idpxft3acX7d2nF+3eJ5i1XqgZPh6oGT4 + eqBk+ICnbfmYw5H/mMOR/5jDkf+Yw5H/nsmY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmY/5jCkP+YwpD/mMKQ/5jCkP9/p235 + eaBk+HmgZPh5oGT4eJ9i1HaeYLV2nmC1dp5gtXaeYIeAn2AIgJ9gCICfYAiAn2AIgJ9gCICfYAiAn2AI + gJ9gCHacX4h2nF+3dpxft3acX7d4nmLVeqBk+HqgZPh6oGT4gKdt+ZjDkf+Yw5H/mMOR/5jDkf+eyZj/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZj/mMKQ/5jCkP+YwpD/mMKQ/3+nbfl5oGT4eaBk+HmgZPh4n2LUdp5gtXaeYLV2nmC1 + dp5gh4CfYAiAn2AIgJ9gCICfYAiAn2AIgJ9gCICfYAiAn2AIdpxfiHacX7d2nF+3dpxft3ieYtV6oGT4 + eqBk+HqgZPiAp235mMOR/5jDkf+Yw5H/mMOR/57JmP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57JmP+YwpD/mMKQ/5jCkP+YwpD/ + f6dt+XmgZPh5oGT4eaBk+HifYtR2nmC1dp5gtXaeYLV2nmCHgJ9gCICfYAiAn2AIgJ9gCICfYAGAn2AB + gJ9gAYCfYAF0nGAVdJxgHXScYB10nGAdd6BjR3mhY3h5oWN4eaFjeHujZo1/p2zif6ds4n+nbOJ/p2zi + irN88Yu0ffKLtH3yi7R98pbAjfubxpX/m8aV/5vGlf+cx5b/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHlv+bxpX/m8aV/5vGlf+WwI37 + i7R98ou0ffKLtH3yirN88X+nbOJ/p2zif6ds4n+nbOJ7o2aNeKFjeHihY3h4oWN4eJ9iR3eaXBx3mlwc + d5pcHHeaXBWAn2ABgJ9gAYCfYAGAn2ABAAAAAAAAAAAAAAAAAAAAAGaZZgRmmWYFZplmBWaZZgV3oWMx + eKFjZHihY2R4oWNkeaFkfHuiZt17ombde6Jm3XuiZt2Hr3jviLB58IiwefCIsHnwlb6L+pvFlP+bxZT/ + m8WU/5zHlv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nMeW/5vFlP+bxZT/m8WU/5W+i/qIsHnwiLB58IiwefCHr3jve6Jm3XuiZt17ombd + e6Jm3XmhZHx4oWNkeKFjZHihY2R4oGExgIBABICAQASAgEAEgIBAAwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAZplmBGaZZgVmmWYFZplmBXehYzF4oWNkeKFjZHihY2R5oWR8e6Jm3XuiZt17ombd + e6Jm3YeveO+IsHnwiLB58IiwefCVvov6m8WU/5vFlP+bxZT/nMeW/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cx5b/m8WU/5vFlP+bxZT/ + lb6L+oiwefCIsHnwiLB58IeveO97ombde6Jm3XuiZt17ombdeaFkfHihY2R4oWNkeKFjZHigYTGAgEAE + gIBABICAQASAgEADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmmWYEZplmBWaZZgVmmWYF + d6FjMXihY2R4oWNkeKFjZHmhZHx7ombde6Jm3XuiZt17ombdh69474iwefCIsHnwiLB58JW+i/qbxZT/ + m8WU/5vFlP+cx5b/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5zHlv+bxZT/m8WU/5vFlP+Vvov6iLB58IiwefCIsHnwh69473uiZt17ombd + e6Jm3XuiZt15oWR8eKFjZHihY2R4oWNkeKBhMYCAQASAgEAEgIBABICAQAMAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAGaZZgFmmWYCZplmAmaZZgJ3oWMUeKFjKHihYyh4oWMoeaFkMnqiZlp6omZa + eqJmWnqiZlqBqnCWgapwmoGqcJqBqnCah693z4ixeemIsXnpiLF56Yy0fu6QuoX1kLqF9ZC6hfWSvIf3 + nMeW/5zHlv+cx5b/nMeW/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5zHlv+cx5b/nMeW/5zHlv+SvIf2kbqF9ZG6hfWRuoX1jLV+7oixeemIsXnp + iLF56Yevd8+BqnCagapwmoGqcJqBqnCWe6JmWnuiZlp7omZae6JmWnmhZDJ4oWMoeKFjKHihYyh4oGEU + gIBAAoCAQAKAgEACgIBAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAABVqlUBVapVA1WqVQNVqlUDVapVA3agYVt2oGFhdqBhYXagYWF5oWOy + eqFk23qhZNt6oWTbf6ds44avd++Gr3fvhq9374mye/GaxZT/msWU/5rFlP+axZT/nciY/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/msWU/5rFlP+axZT/ + msWU/4qze/CHsHfuh7B37oewd+5/p2zjeqFk23qhZNt6oWTbeaFjsnagYWF2oGFhdqBhYXagYVuAgIAC + gICAAoCAgAKAgIACgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFWqVQFVqlUD + VapVA1WqVQNVqlUDdqBhW3agYWF2oGFhdqBhYXmhY7J6oWTbeqFk23qhZNt/p2zjhq9374avd++Gr3fv + ibJ78ZrFlP+axZT/msWU/5rFlP+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/53ImP+axZT/msWU/5rFlP+axZT/irN78Iewd+6HsHfuh7B37n+nbON6oWTb + eqFk23qhZNt5oWOydqBhYXagYWF2oGFhdqBhW4CAgAKAgIACgICAAoCAgAKAgIAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVapVAVWqVQNVqlUDVapVA1WqVQN2oGFbdqBhYXagYWF2oGFh + eaFjsnqhZNt6oWTbeqFk23+nbOOGr3fvhq9374avd++JsnvxmsWU/5rFlP+axZT/msWU/53ImP+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciY/5rFlP+axZT/ + msWU/5rFlP+Ks3vwh7B37oewd+6HsHfuf6ds43qhZNt6oWTbeqFk23mhY7J2oGFhdqBhYXagYWF2oGFb + gICAAoCAgAKAgIACgICAAoCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVqlUA + VapVAlWqVQJVqlUCVapVAnagYTx2oGFBdqBhQXagYUF5oWN3eqFkknqhZJJ6oWSSf6ZrooSsc7qErHO6 + hKxzuoaud8GRuobxkbqG8ZG6hvGRuobxlb+M95bAjfiWwI34lsCN+JrEk/ycx5f/nMeX/5zHl/+dyJf/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciX/5zHl/+cx5f/ + nMeX/5rEk/yWwI34lsCN+JbAjfiVv4z3kbqG8ZG6hvGRuobxkbqG8Yevd8CFrXO5ha1zuYWtc7l/p2ui + eqFkknqhZJJ6oWSSeaFjd3agYUF2oGFBdqBhQXagYTyAgIABgICAAYCAgAGAgIABgICAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB3m14gd5teT3ebXk93m15PeJxgYXqgZdV6oGXVeqBl1XqgZdWEq3Ln + ha106oWtdOqFrXTqkbuH95nDkv+Zw5L/mcOS/5vFlP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+bxZT/mcOS/5nDkv+Zw5L/kbuH94WtdOqFrXTqha106oSrcud6oGXV + eqBl1XqgZdV6oGXVeJxgYXebXk93m15Pd5teT3ebXiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHebXiB3m15P + d5teT3ebXk94nGBheqBl1XqgZdV6oGXVeqBl1YSrcueFrXTqha106oWtdOqRu4f3mcOS/5nDkv+Zw5L/ + m8WU/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5vFlP+Zw5L/ + mcOS/5nDkv+Ru4f3ha106oWtdOqFrXTqhKty53qgZdV6oGXVeqBl1XqgZdV4nGBhd5teT3ebXk93m15P + d5teIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5teIHebXk93m15Pd5teT3icYGF6oGXVeqBl1XqgZdV6oGXV + hKty54WtdOqFrXTqha106pG7h/eZw5L/mcOS/5nDkv+bxZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/m8WU/5nDkv+Zw5L/mcOS/5G7h/eFrXTqha106oWtdOqEq3Ln + eqBl1XqgZdV6oGXVeqBl1XicYGF3m15Pd5teT3ebXk93m14gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3m14d + d5teSnebXkp3m15KeJxgWnqgZcd6oGXHeqBlx3qgZceDq3Lbha103oWtdN6FrXTekLqF8JfBkPuXwZD7 + l8GQ+5nDkvycx5f+nMeX/pzHl/6cx5f+nciY/53ImP+dyJj/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsiY/57ImP+eyJj/nsiY/5zHl/6cx5f+nMeX/pzHl/6Zw5L8 + l8GQ+5fBkPuXwZD7kLqF8IWtdN6FrXTeha103oOrctt6oGXHeqBlx3qgZcd6oGXHeJxgWnebXkp3m15K + d5teSnebXh0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHacXi92nF42dpxeNnacXjZ6oGSNe6Flx3uhZcd7oWXHfqRp0oKqcemCqnHpgqpx6YOsc+qWwY7/ + lsGO/5bBjv+WwY7/nMeX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Hl/+XwY7/ + l8GO/5fBjv+XwY7/hKxz6oKqcemCqnHpgqpx6X6kadJ7oWXHe6Flx3uhZcd6oGSNdpxeNnacXjZ2nF42 + dpxeLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdpxeL3acXjZ2nF42dpxeNnqgZI17oWXH + e6Flx3uhZcd+pGnSgqpx6YKqcemCqnHpg6xz6pbBjv+WwY7/lsGO/5bBjv+cx5f/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nceX/5fBjv+XwY7/l8GO/5fBjv+ErHPqgqpx6YKqcemCqnHp + fqRp0nuhZcd7oWXHe6Flx3qgZI12nF42dpxeNnacXjZ2nF4vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB2nF4vdpxeNnacXjZ2nF42eqBkjXuhZcd7oWXHe6Flx36kadKCqnHpgqpx6YKqcemDrHPq + lsGO/5bBjv+WwY7/lsGO/5zHl/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dx5f/ + l8GO/5fBjv+XwY7/l8GO/4Ssc+qCqnHpgqpx6YKqcel+pGnSe6Flx3uhZcd7oWXHeqBkjXacXjZ2nF42 + dpxeNnacXi8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHacXi92nF42dpxeNnacXjZ6oGSN + e6Flx3uhZcd7oWXHfqRp0oKqcemCqnHpgqpx6YOsc+qWwY7/lsGO/5bBjv+WwY7/nMeX/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Hl/+XwY7/l8GO/5fBjv+XwY7/hKxz6oKqcemCqnHp + gqpx6X6kadJ7oWXHe6Flx3uhZcd6oGSNdpxeNnacXjZ2nF42dpxeLwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAdpxeCXacXgt2nF4LdpxeC3qgZBx7oWUoe6FlKHuhZSh8omc1faRpT32kaU99pGlP + fqVqV4GpcMWBqXDFgalwxYGpcMWGrXXkhq527IauduyGrnbsj7mD9pfBjv6XwY7+l8GO/pnDkf6eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5nDkf6XwY7+l8GO/pfBjv6PuYP2hq527IauduyGrnbs + hq115IKpcMWCqXDFgqlwxYKpcMV+pWpXfaRpT32kaU99pGlPfKJnNXuhZSh7oWUoe6FlKHqgZBx2nF4L + dpxeC3acXgt2nF4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAHabXQ52m10pdptdKXabXSl3nF8yeqBltnqgZbZ6oGW2eqBltn+ma92Ap2zn + gKds54CnbOeMtH3zlb+L/pW/i/6Vv4v+l8KP/p7Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + l8KP/pW/i/6Vv4v+lb+L/oy0ffOAp2zngKds54CnbOd/pmvdeqBltnqgZbZ6oGW2eqBltnecXzJ2m10p + dptdKXabXSl2m10OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdptdDnabXSl2m10p + dptdKXecXzJ6oGW2eqBltnqgZbZ6oGW2f6Zr3YCnbOeAp2zngKds54y0ffOVv4v+lb+L/pW/i/6Xwo/+ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+Xwo/+lb+L/pW/i/6Vv4v+jLR984CnbOeAp2zn + gKds53+ma916oGW2eqBltnqgZbZ6oGW2d5xfMnabXSl2m10pdptdKXabXQ4AAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB2m10OdptdKXabXSl2m10pd5xfMnqgZbZ6oGW2eqBltnqgZbZ/pmvd + gKds54CnbOeAp2znjLR985W/i/6Vv4v+lb+L/pfCj/6eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5fCj/6Vv4v+lb+L/pW/i/6MtH3zgKds54CnbOeAp2znf6Zr3XqgZbZ6oGW2eqBltnqgZbZ3nF8y + dptdKXabXSl2m10pdptdDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHabXQZ2m10T + dptdE3abXRN3nF8YeqBlVXqgZVV6oGVVeqBlVX6lanF/pWt4f6VreH+la3iGrnWiirJ7x4qye8eKsnvH + i7R90o22gPGNtoDxjbaA8Y22gPGNtoDxjbaA8Y22gPGNtoDxjLR90ouze8eLs3vHi7N7x4eudqJ/pWt4 + f6VreH+la3h+pWpxeqBlVXqgZVV6oGVVeqBlVXecXxh2m10TdptdE3abXRN2m10GAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + dJddEnSXXRZ0l10WdJddFnmfY1t6oGSXeqBkl3qgZJd7oWWsfaRo5X2kaOV9pGjlfaRo5X2kaOV9pGjl + faRo5X2kaOV8oWWrfKBklnygZJZ8oGSWe59jWnSXXRZ0l10WdJddFnSXXRIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0l10SdJddFnSXXRZ0l10WeZ9jW3qgZJd6oGSX + eqBkl3uhZax9pGjlfaRo5X2kaOV9pGjlfaRo5X2kaOV9pGjlfaRo5XyhZat8oGSWfKBklnygZJZ7n2Na + dJddFnSXXRZ0l10WdJddEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHSXXRJ0l10WdJddFnSXXRZ5n2NbeqBkl3qgZJd6oGSXe6FlrH2kaOV9pGjlfaRo5X2kaOV9pGjl + faRo5X2kaOV9pGjlfKFlq3ygZJZ8oGSWfKBklnufY1p0l10WdJddFnSXXRZ0l10SAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddDXSXXRB0l10QdJddEHmfY0N6oGRv + eqBkb3qgZG97oWV/faRorH2kaKx9pGisfaRorH2kaKx9pGisfaRorH2kaKx8oWV+fKBkbnygZG58oGRu + e59jQnSXXRB0l10QdJddEHSXXQ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHeZZgR3mWYPd5lmD3eZZg93mWYP + baRbDm2kWw5tpFsObaRbDm2kWwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAd5lmBHeZZg93mWYPd5lmD3eZZg9tpFsObaRbDm2kWw5tpFsObaRbBAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3mWYEd5lmD3eZZg93mWYP + d5lmD22kWw5tpFsObaRbDm2kWw5tpFsEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAHeZZgR3mWYPd5lmD3eZZg93mWYPbaRbDm2kWw5tpFsObaRbDm2kWwQAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/////////g + B///////////////////4Af//////////////////+AH///////////////////gB/////////////// + ///gAAAH////////////////4AAAB////////////////+AAAAf////////////////gAAAH//////// + ///////AAAAAAAP/////////////wAAAAAAD/////////////8AAAAAAA//////////////AAAAAAAP/ + ///////////AAAAAAAAAA///////////wAAAAAAAAAP//////////8AAAAAAAAAD///////////AAAAA + AAAAA///////////wAAAAAAAAAP/////////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAH///////+A + AAAAAAAAAAAB////////gAAAAAAAAAAAAf//////gAAAAAAAAAAAAAAB/////4AAAAAAAAAAAAAAAf// + //+AAAAAAAAAAAAAAAH/////gAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAA + AAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP + 8AAAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAA + AAAP///wAAAAAAAAAAAAAAAAD/////+AAAAAAAAAAAAB////////gAAAAAAAAAAAAf///////4AAAAAA + AAAAAAH///////+AAAAAAAAAAAAB////////+AAAAAAAAAAAH/////////gAAAAAAAAAAB/////////4 + AAAAAAAAAAAf////////+AAAAAAAAAAAH///////+AAAAAAAAAAAAAAf//////gAAAAAAAAAAAAAH/// + ///4AAAAAAAAAAAAAB//////+AAAAAAAAAAAAAAf////8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAA + AAAP///wAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAA + AAAA//8AAAAAAAAAAAAAAAAAAP///4AAAAAAAAAAAAAAH/////+AAAAAAAAAAAAAAB//////gAAAAAAA + AAAAAAAf/////4AAAAAAAAAAAAAAH///////+AAAAAAAAAAAH/////////gAAAAAAAAAAB/////////4 + AAAAAAAAAAAf////////+AAAAAAAAAAAH////////4AAAAAAAAAAAAH///////+AAAAAAAAAAAAB//// + ////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAH//////4AAAAAAAAAAAAAAAf////+AAAAAAAAAAAAA + AAH/////gAAAAAAAAAAAAAAB/////4AAAAAAAAAAAAAAAf///wAAAAAAAAAAAAAAAAAA//8AAAAAAAAA + AAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAA + AAAAD/AAAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAP///wAAAAAAAA + AAAAAAAAD///8AAAAAAAAAAAAAAAAA//////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAH///////+A + AAAAAAAAAAAB////////gAAAAAAAAAAAAf/////////AAAAAAAAAA///////////wAAAAAAAAAP///// + /////8AAAAAAAAAD///////////AAAAAAAAAA///////////wAAAAAAAAAP////////////AAAAAAAP/ + ////////////wAAAAAAD/////////////8AAAAAAA//////////////AAAAAAAP//////////////+AA + AAf////////////////gAAAH////////////////4AAAB////////////////+AAAAf///////////// + ////4Af//////////////////+AH///////////////////gB///////////////////4Af///////// + KAAAAEAAAACAAAAAAQAgAAAAAAAAQAAAYQoAAGEKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLuqAsy7qg/Mu6oPyLakDsi2pA7ItqQC + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy7qgLMu6oP + zLuqD8i2pA7ItqQOyLakAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANG5ogjRuaIT + 0LqoMdC7q4PQvKuM0sCtyNLArcjSwK3I0sCtyNC8q4vPu6qC0LqoMdG5ohPRuaIIAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADRuaIJ0bmiFtC6qDjQu6uX0LyrodLAreXSwK3l0sCt5dLAreXQvKuhz7uqltC6qDjRuaIW + 0bmiCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADRuaIL0bmiENC8qkDQvKtq0r6shdPArazXxrS64NLE4OHUx+Pp4NP46eDT+Ong0/jp4NP4 + 4dTG49/SxN/XxrS608CtrNK+rIXQvKtq0LyqQNG5ohDRuaILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0bmiD9G5ohbQvKpY0LyrkdK+rLLTwK3j2Me16ePXyvrl2s37 + 8erg//Hq4P/x6uD/8erg/+Xazfvj18r62Me16dPArePSvqyy0LyrkdC8qljRuaIW0bmiDwAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAybmiEsm5ohTRvqxT0b6sY9PAroPUwa6T3My8tOHSxNLj1sjf + 5tvO9Ojd0Pbs49j97eTZ/fLr4f/y6+H/8uvh//Lr4f/t5Nn97OPY/ejd0Pbm287049bI3+HSxNLczLy0 + 1MGuk9PAroPRvaxj0b2sU8m5ohTJuaISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMm5oh/JuaIh0b6si9G+rKXTwK7Q + 1MGv5t/PwPLn28796+HW/vLr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh/+vh1v7n287938/A8tTBr+bTwK7Q0b2spdG9rIvJuaIhybmiHwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLWkBMy1pBXNt6YZ0b2rVdG9q1XTwrB7 + 08Kxfd7Qwb7f0sPP4tTG5uPWyPLo3dD47OLX/u7m2/7y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/u5tv+7OLX/ujd0Pjj1sjy4tTG5t/Rw8/ez8G+08KxfdPCsHvRvatV + 0b2rVc23phnMtaQVzLWkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy1pAnMtaQt + zbemNtG9q7bRvau21cSz5NXEs+fm28756uDU/u/n3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3f/q4NT+ + 5tvO+dXEs+fVxLPk0b2rttG9q7bNt6Y2zLWkLcy1pAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy3ognMt6IU + zrunI9C9qkLRvqxK1MGwbNXCsnPczL3O3My9zt/Sw+3f0sPv6uDU++3k2P7w6d7/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6d7/7eTY/urg1Pvf0sPv39LD7dzMvc7czL3O1cKyc9TBsGzRvqxK0L2qQs67pyPMt6IU + zLeiCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADMt6IczLeiPM67p2rQvarF0r+tzdfFtevYx7fs6+LW/+vi1v/y6uD/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lq4P/r4tb/6+LW/9jHt+zXxbXr + 0r+tzdC9qsXOu6dqzLeiPMy3ohwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADOuaUJzrmlDNC9qh3Rvqsp0r+sQtK/rV/Vw7GF18e10djIt9fdzb7v3s/A8Ozk2P/s5Nj/ + 8uvg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+D/ + 7OTY/+zk2P/ez8Dw3c2+79jIt9fXx7XR1cOxhdK/rV/Sv6xC0b6rKdC9qh3OuaUMzrmlCQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzrmlLc65pT7QvaqT0b6ry9XDstrZyLjs4NLD8u3k2P/u5dr/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/u5dr/7eTY/+DSw/LZyLjs1cOy2tG+q8vQvaqT + zrmlPs65pS0AAAAAAAAAAAAAAAAAAAAAv7+fAb+/nwHNuKQLzbikDM66pjrOuqZK0sCtmtPBr87XxrXd + 28u77eHUxfPt5Nn/7uba//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7uba/+3k2f/h1MXz + 28u77dfGtd3Twa/O0sCtms66pkrOuqY6zrmlDM65pQu/v58Bv7+fAb+/nwi/v58IzbikoM24pLfPu6jn + 0Lyp+OLUxvzt5Nj/7+fc//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/v59z/7OPX/+HUxfzQvKr40Lup5s65pbXOuaWev7+fCL+/nwi/v58I + v7+fCM24pKDNuKS3z7uo59C8qfji1Mb87eTY/+/n3P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7+fc/+zj1//h1MX80Lyq+NC7qebOuaW1 + zrmlnr+/nwi/v58Iv7+fAb+/nwHNvqEPzb6hEc+6qFXPuqhu0b6sstK/rt/YyLjo3tHC8eTZy/bv59z/ + 8Ojd//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8ene/+zi1f/p28z/1LCT/9Swk//UsJP/1LCT/+nbzP/s4tX/8ene//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+/n3P/k2cv23tHC8djIuOjSv63f + 0b6sss+6qG7PuqhVyrqrEMq6qw6/v58Bv7+fAQAAAAAAAAAAzMyZBMzMmQXPuqhLz7qoZNC8qq3QvKrd + 1sW15t3PwPDj18r17+fc//Do3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Do3v/s4dT/6drL/9Ksjf/SrI3/0qyN/9Ksjf/p2sv/7OHU//Do3v/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Do3f/v59z/ + 49fK9d3PwPDWxbXm0Lyq3dC8qq3Puqhkz7qoSr+/vwS/v78DAAAAAAAAAAAAAAAAAAAAAMzMmQHMzJkB + z7qoD8+6qBTOu6okzruqL9K/rlPTwbB+1cOyn9fGteLZybnl4dTF8uLVx/Pv59z/7+fc//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh/+/l2f/s4NL/4867/9a0mf/TrpH/y557/82fe//apnz/2qZ8/9qlfP/apXz/ + zZ97/8ueev/TrpH/1rSZ/+POu//s4NL/7+XZ//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3P/v59z/ + 4tXH8uHUxfHZybnl18a14tXDsp/TwbB+07+uU9K6qS7Ruqgjz7qoFM+6qA+/v78Bv7+/AQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqqqqAqqqqgPMuKYvzbimYc+7qIrQvarb08Gu393Ovu/e0MDw + 7ubb/+7m2//y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/u5Nf/6t3O/9/Hsv/Ppof/zJ9+/8ONZf/GkGj/ + 3KR4/9ykeP/co3j/3KN4/8aQZ//DjWT/zJ9+/8+mh//fx7L/6t3O/+7k1//y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/u5tv/7ubb/97QwO/dzr7u08Gu39C9qtvPu6iKzbimYc63pS7/gIAC/4CAAQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKqqqgGqqqoBzLimEM24piDPu6gu + 0L2qSdLArVXXxbSE2Ma1i9vMvOPbzLzj49bI8OPWyPHo3M786d3Q/+DIs//bvaX/1bGV/9Cnh//TpYL/ + 16N7/9mkfP/gqH7/4ql//+mxhf/psYX/6bCF/+mwhf/iqX7/4Kh9/9mkfP/Xo3v/06WC/9Cnh//VsZX/ + 272l/+DIs//p3dD/6NzO/OPWyPHj1sjw28y849vMvOPYxrWK18W0hNLArVXQvapJz7uoLs24piDOt6UP + /4CAAf+AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAADPuKUQz7ilT8+5pljPvarVz72q1drKuunby7vq49TF++XWx//Wtpz/ + z6aH/8mYdP/DjGP/zZRq/9uhdf/gp3v/77aK/++2iv/wt4v/8LeL//C3i//wt4v/77aK/++2iv/gp3v/ + 26F1/82Uav/DjGP/yZh0/8+mh//Wtpz/5dbH/+PUxfvby7vq2sq66c+9qtXPvarVz7mmWM+4pU/PuKUQ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz7ilB8+4pSXOtqIryrCYfMqwmHzMqo3R + zKmM19Gsj/XSrY/91qiF/tilgP/ZpHz/26N4/9+nfP/mrYH/6a+D//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/6a+D/+atgf/fp3z/26N4/9mkfP/YpYD/1qiF/tKtj/3RrI/1zKmM18yqjdHKsJh8 + yrCYfM62oivPuKUlz7ilBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + t3pOA7d6Ti63ek4uvIdcvbyHXMfAiF7xwYhe+9WbcP7fpXn/6K+D//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//or4P/36V5/9WbcP7BiF77 + wIhe8byHXMe8h1y9t3pOLrd6Ti63ek4DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + uH1PCLh9Txi5f1Iku4FVULyBVVPAhlp7wIZae86Wa9fOl2zd05pv9tSbcP3gpnv+5qyA/+uyhv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 67KG/+asgP/gpnv+1Jtw/dOab/bOl2zdzpZr18CGWnvAhlp7vIFVU7yBVVC6f1IkuH1PGLh9TwgAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALh9TxS4fU89uX9SWbuBVci8glbLw4ld7sOJXe7iqHz+5Kp+/+60iP/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utIj/5Kp+/+KofP7DiV3uw4ld7r2CVsu8gVXJ + un9SWbh9Tz24fU8UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALV+UQu1flESuX9TJLqAVDi9g1dJwYdabMOKXYHJj2PXyZBk2dCWavPQlmrz + 5qyA/uetgf/utYn/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/7rWJ/+etgf/mrID+ + 0JZq89CWavPKkGTZyo9j18SKXYHBh1psvoNXSbqAVDi5f1MktX5RErV+UQsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1flEptX5RRbl/U4e6gFTSv4VZ28eOYu3OlWnx + 566C/+ivg//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/6K+D/+eugv/PlWjwyI5h7L+FWdu6gFTSuX9Th7V+UUW1flEp + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqoBVAaqAVQG5gFIMuYBSDryBVRq9gVYev4ZZQ7+HWlzBh1uW + wohc2MaMYODNlGjv05pu8+ivg//psIT/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+mwhP/or4P/05pt8s6UZ+/GjGDg + wohc2MGIW5a/h1pcvoZZQ72BVh68gVUauYBSDrmAUgyqgFUBqoBVAaqAVQaqgFUGuYBSXbmAUmq8gVXA + vYFW38qPY+rSl2vx3qR4+Ouyh//ttIj/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7bSI/+uyh//dpHj40Zdq8smPYuq9gVbfvIFVwLmAUmq5gFJdqoBVBqqAVQaqgFUG + qoBVBrmAUl25gFJqvIFVwL2BVt/Kj2Pq0pdr8d6kePjrsof/7bSI//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+20iP/rsof/3aR4+NGXavLJj2LqvYFW37yBVcC5gFJq + uYBSXaqAVQaqgFUGv4BABL+AQAS6fVJXun1SZLuAVb27gVXdyY5i6NGWavDeo3f367KG/+20iP/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//vt4v/6bWJ/+m1if/ptoj/6baI/++3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//ttIj/67KG/96jd/fRlmrw + yY5i6LuBVd27gFW9un1SZLp9Ule/gEAEv4BABL+AQAS/gEAEun1SV7p9UmS7gFW9u4FV3cmOYujRlmrw + 3qN39+uyhv/ttIj/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/77eL/+m1if/ptYn/6baI/+m2iP/vt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 7bSI/+uyhv/eo3f30ZZq8MmOYui7gVXdu4BVvbp9UmS6fVJXv4BABL+AQAS/gEABv4BAAbp9Ugy6fVIN + un1VG7p9VSC/g1lTwIRZdcKHW6jDiFziyI5i6NKYa/LXnXH16rCF/+qxhf/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/7LaK/+a0iP/ZsoP/tKx3/7Crdv+Wp2//lqdv/5anb/+Wp2// + sat2/7Wsd//ZsoP/5rSI/+y2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 6rGF/+qxhP/XnXD10phr8siOYujDiFziwodbqMCEWXW/g1lTun1VILp9VRu6fVINun1SDL+AQAG/gEAB + AAAAAAAAAAAAAAAAAAAAAKpVVQKqVVUDuXxTPLl9U2K7gFScvIFV3sKHW+TNk2bw05ls8+mvhP/psIT/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+y2if/ltIf/1rGC/6uqdP+mqXP/ + iaVr/4mla/+JpWv/iaVr/6epc/+sqnT/1rGC/+W0h//ston/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+mwhP/psIP/05ls882TZvDCh1vkvIFV3ruAVJy5fVNiuXxTPKpVVQOqVVUC + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUBqlVVAbl8UxC5fVMavH9UKr1/VDzAhFhR + w4hcesWKXo7Jj2PgypBk4daccPDWnHDw6bCE/uqxhf/vtor/8LeL/+u2if/otYj/0rGB/7+ue/+zrHj/ + oqly/5+sdv+YtX//mLaB/5i/jP+Yv4z/mL+M/5i/jP+YtoH/mLV//5+sdv+iqXL/s6x4/7+ue//SsYH/ + 6LWI/+u2if/wt4v/77aK/+qxhf/psIT+1pxw8NaccPDKkGThyY9j4MWKXo7DiFx6wIRZULyBVTu7gFQq + uX1TGrl8UxCqVVUBqlVVAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAP8AAAD/AAABunhPG7h7UU+5fVNqu4FV1byCVtbMkWXrzJFl6+atgf7or4P/7rWJ//C3i//ptYj/ + 5bSH/8evff+tq3X/n6lx/4mla/+LqnH/kbmD/5O7hv+dyZj/ncmY/53JmP+dyZj/k7uG/5G5g/+LqnH/ + iaVr/5+pcf+tq3X/x699/+W0h//ptYj/8LeL/+61if/or4P/5q2B/syRZevMkWXrvIJW1ruBVdW5fVNq + uHtRT7h7URoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAALp4Twu4e1EguX1TKruBVVW8glZYxotfgcaLX4HJl2re + yZhq5bykcva6pnT6sal1/a2rdv+lsHv/nbWA/5q3g/+Wu4f/lr2J/5nDkP+Zw5H/nsmZ/57Jmf+eyZn/ + nsmZ/5nDkf+Zw5D/lr2J/5a7h/+at4P/nbWA/6Wwe/+tq3b/sal1/bqmdPq8pHL2yZhq5cmXat7Gi1+B + xotfgbyCVli7gVVVuX1TKrh7USC4e1ELAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tHtPBLR7Tzq0e086sIVWybCFVtOZl2LwlJtk94yiafyIpWv/jrF6/5O7h/+XwY7/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/l8GO/5O7h/+OsXr/iKVr/4yiafyUm2T3 + mZdi8LCFVtOwhVbJtHtPOrR7Tzq0e08EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3n2AEd59gFXydYBuKmF90iphfdJiWYdWZlmHclqhz9JWsd/qTs339kraA/5W8iP+Ywo// + msWT/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5rFk/+Ywo// + lbyI/5K2gP+Ts339lax3+paoc/SZlmHcmJZh1YqYX3SKmF90fJ1gG3efYBV3n2AEAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd59gCXefYC14oGE2e6NltnujZbaAp23kgKdt55K7h/mWv43+ + m8aV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/m8aV/5a/jf6Su4f5gKdt54CnbeR7o2W2e6NltnigYTZ3n2At + d59gCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd51eCXedXhR5oGIjeqJlQnujZ0p+pmtsf6dsc4evds6Hr3bO + irN87Yuzfe+Wv437mcKR/pzHlv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHlv+ZwpH+lr+N+4uzfe+Ks3zt + h692zoevds5/p2xzfqZrbHujZ0p6omVCeaBiI3edXhR3nV4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHedXhx3nV48eaBianqiZcV8o2fN + gahv64OqceyXwY//l8GP/57ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsiY/5fBj/+XwY//g6px7IGob+t8o2fNeqJlxXmgYmp3nV48d51eHAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHegXwl3oF8MeqJjHXuiZCl8o2ZC + faRnX3+nbIWBqnDRg6ty14eveO+IsHrwmMOR/5jDkf+eyZj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57JmP+Yw5H/mMOR/4iwevCHr3jvg6ty14GqcNF/p2yF + faRnX3yjZkJ7omQpeqJjHXegXwx3oF8JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3oF8t + d6BfPnqiY5N7omTLf6dq2oOrcOyKs3zymMOR/5nEk/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5nEk/+Yw5H/irN88oOrcOx/p2rae6Jky3qiY5N3oF8+d6BfLQAAAAAAAAAAAAAAAAAAAACAn2AB + gJ9gAXacXwt2nF8MeKBgOnigYEp8pGaafaVozoGpbd2FrXPtjLV+85jDkv+axZP/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+axZP/mMOS/4y1fvOFrXPtgalt3X2laM58pGaad6BgSnegYDp2nmAM + dp5gC4CfYAGAn2ABgJ9gCICfYAh2nF+gdpxft3mfY+d6oGT4jLV//JjDkf+bxpX/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5vFlP+YwpD/ + jLV//HmgZPh4oGPmdp5gtXaeYJ6An2AIgJ9gCICfYAiAn2AIdpxfoHacX7d5n2PneqBk+Iy1f/yYw5H/ + m8aV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+bxZT/mMKQ/4y1f/x5oGT4eKBj5naeYLV2nmCegJ9gCICfYAiAn2ABgJ9gAXKbYQ9ym2ER + eKFjVXihY258pGiyfaVp34OrcuiKsnvxkLmE9pvFlP+cxpX/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+cxpX/m8WU/5C5hPaKsnvxg6ty6H2kad98pGiyeKFjbnigY1V4l1gQeJdYDoCfYAGAn2AB + AAAAAAAAAABmmWYEZplmBXihY0t4oWNkeqJlrXuiZt2BqW/miLB58I+3gvWbxZT/nMaV/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMaV/5vFlP+Pt4L1iLB58IGpb+Z7ombdeqJlrXihY2R4oWJK + gIBABICAQAMAAAAAAAAAAAAAAAAAAAAAZplmAWaZZgF4oWMPeKFjFHmiZSR5omUvfKVpU32man5/qGyf + galv4oOscuWLtH7yjLaA85vGlf+bxpX/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/m8aV/5vGlf+NtoDyjLV+8YSscuWBqW/if6hsn32man58pWlT + e6FnLnqhZiN4oWMUeKFiD4CAQAGAgEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVqlUC + VapVA3WgYS92oGFheKFjinqhZNt9pGjfhq9374exefCaxZT/msWU/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5rFlP+axZT/iLF574ewd+59pGjf + eqFk23ihY4p2oGFhdp9iLoCAgAKAgIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAVapVAVWqVQF1oGEQdqBhIHihYy56oWRJfKNnVYCnbYSBqG6Lhq5344aud+ONtoDw + jreB8ZjCkfybxZT/nciX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciX/5vFlP+YwpH8jreB8Y22gPCGrnfj + hq5344GoboqBqG2EfKNnVXqhZEl4oWMudqBhIHafYg+AgIABgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHebXhB3m15P + d5xfWHqgZdV6oGXVhKxz6YWtdOqVv4z7mcOS/5zHl/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHl/+Zw5L/ + lb+M+4WtdOqErHPpeqBl1XqgZdV3nF9Yd5teT3ebXhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3m14Hd5teJXecXyl6oGVjeqBlY4Gpb4eCqW+KirJ70IuzfeGOt4LtkLmF85W/jfqaxZP/ + m8aV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zGlf+axZP/ + lb+N+pC5hfOOt4Lti7N94Yqye9CCqW+Kgalvh3qgZWN6oGVjd5xfKXebXiV3m14HAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2nF4ydpxeNnuhZap7oWXH + gKdt3oKqcemNt4H1lsGO/5nEkv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+axJL/l8GO/463gfWCqnHpgKdt3nuhZcd7oWWqdpxeNnacXjIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + dpxeHnacXiB7oWVme6Fld3+mbJCBqG+ciLF6wY22geKPuYTqk7yI9ZW/i/iaxZP/m8aU/57Jmf+eyZn/ + nsmZ/57Jmf+bxpT/msWT/5W/i/iTvIj1kLmE6o62geKJsXrBgahvnH+mbJB7oWV3e6FlZnacXiB2nF4e + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2m10bdptdKXmfZHR6oGW2faNoyoCnbOeGrnXt + lb+L/pbAjf6eyZn/nsmZ/57Jmf+eyZn/lsCN/pW/i/6GrnXtgKds532jaMp6oGW2eZ9kdHabXSl2m10b + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdptdFHabXR55n2RV + eqBlhX2jaJaApmuvha1zvZC5hOORuoXllsCN+JbAjfiWwI34lsCN+JG6heWRuoTiha1zvYCma699o2iW + eqBlhXmfZFV2m10edptdFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB0l10JdJddFnidYjh6oGSXe6FloX2kaOV9pGjlfaRo5X2kaOV8oWWh + fKBklnqdYjh0l10WdJddCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddCHSXXRN4nWIxeqBkg3uhZYx9pGjI + faRoyH2kaMh9pGjIfKFli3ygZIJ6nWIxdJddE3SXXQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3mWYCd5lmD3eZZg9tpFsObaRbDm2kWwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5lmAneZZg93mWYPbaRbDm2kWw5tpFsCAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////4H/////////gf//// + ////gAH///////+AAf//////+AAAH//////4AAAf/////4AAAAH/////gAAAAf////AAAAAAD///8AAA + AAAP//8AAAAAAAD//wAAAAAAAP/wAAAAAAAAD/AAAAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADAAAAAAAAAA8AAAAAAAAAD/AAAAAAAAD/8AAAAAAAAP//wAAAAAA////AAAAAAD////AAA + AAA////AAAAAAAP//8AAAAAAA//8AAAAAAAAP/wAAAAAAAA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAA/wAAAAAAAAD/8AAAAAAAP//wAAAAAAA////AAA + AAA////wAAAAAA////AAAAAAD///AAAAAAAA//8AAAAAAAD/8AAAAAAAAA/wAAAAAAAADwAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAPAAAAAAAAAA/wAAAAAAAA//AAAAAAAAD//8AAA + AAAP///wAAAAAA////+AAAAB/////4AAAAH/////+AAAH//////4AAAf//////+AAf///////4AB//// + ////+B/////////4H////ygAAAAwAAAAYAAAAAEAIAAAAAAAACQAAGEKAABhCgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLuqCcy7qg/ItqQOyLakCAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0bmiB9C6qBPQu6s80b6sVdHArWXRv6xk0b6sVM+7qjzQuqcT + 0bmiBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0bmiEtC6qDDQu6uX0b6sxtLAreXSwK3l + 0b6sxc+7qpbQuqcw0bmiEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIB0bmiEdC7qTnQvKt007+trNbEs8Ph08bm + 593Q8uvi1/rr4tf6593Q8uDTxubWxLPD07+trNC8q3TQu6k50bmiEdG5ogEAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJuaIBybmiB9C9qxbRvqwi07+rPtbDsmnXxban + 2cm429zNvezm28/77eTZ/fHq4P/x6uD/7eTZ/ebbz/vczb3s2cm429fFtqfWw7Jp07+rPtG9rCLQvasW + ybmiB8m5ogEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJuaIHybmiIdC9q3DRvqyo + 1MGv49zMvO/n28798Ojd//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+fbzv3czLzv + 1MGv49G9rKjQvatwybmiIcm5ogcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMtaQLzLWkG9G9q13Sv612 + 1MOymN7QwcDj1sjc59vO9Orf0/nu5dn+8erf//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8erf/+7l2f7q39P559vO9OPWyNze0MHA1MOymNK/rXbRvatdzLWkG8y1pAsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6ICzLijA9C9qgjOuaga + zrinNdK/rZ/Twa/C1sa16OPWyfXr4dX+8uvg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvg/+vh1f7j1sn11sa16NPBr8LSv62fzrinNc65qBrQvaoI + zLijA8y3ogIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6Ij + zLijP9C9qrfTwa/M18W14+fcz/fs49f88erf/vHq4P/y6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4P/x6uD/8erf/uzj1/zn3M/3 + 18W149PBr8zQvaq3zLijP8y3oiMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOuaUU + z7uoJNG+q1HUwrBv1sSzht3Pv9jg0sPl4tXH8+zi1/3v59z/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh/+/n3P/s4tf94tXH8+DSw+Xdz7/Y1sSzhtTCsG/RvqtRz7uoJM65pRQAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADOuaUyz7uoWtG+q8vWxLPf2sm57ezj1/7v59z/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3P/s49f+2sm57dbEs9/RvqvLz7uoWs65pTIAAAAA + AAAAAAAAAAC/v58GzLikPs24pJLPu6jG1cOy2uje0fXr4tb57eXa+/Hp3//x6uD/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hq4P/x6d//7eXa++vh1vno3dD1 + 1cOy2tC7qcbOuaWRzbmlPr+/nwa/v58GzLmkP824pJPPu6jM1cOy4Ojd0Pjs4tb67ubb/PHq4P/y6+D/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4P/x6d7/7uPW/+ze0P/s3tD/ + 7uPW//Hp3v/y6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4P/x6uD/ + 7ubb/Ovi1vrn3M/41cOy4NC7qczOuaWSzbmlPr+/nwYAAAAAzMyZAszMmQXPuqhRz7upfNC8qt3YyLjo + 3tDB8e7m2/7w6d7/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hp3v/s4dT/ + 3MGp/9Ksjf/SrI3/3MGp/+zh1P/x6d7/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Dp3v/u5tv+3tDB8djIuOjQvKrdz7upfM+6qFG/v78Ev7+/AgAAAAAAAAAAzMyZAczMmQLPuqgg + z7upMs+8qlrVw7OB18e3nt3PwObh1MXu5trN9e7l2v3w6d7/8uvh//Lr4f/y6+H/8uvh//Do3P/t49b/ + 4Mi0/9u+pv/Tr5H/1qqH/9ingP/Yp4D/1qqH/9Ovkf/bvqb/4Mi0/+3j1v/w6Nz/8uvh//Lr4f/y6+H/ + 8uvh//Dp3v/u5dr95trN9eHUxe7dz8Dm18e3ntXDs4DRu6la0LqpMs+6qCC/v78Cv7+/AQAAAAAAAAAA + AAAAAAAAAAAAAAAAqqqqAaqqqgPMuKY5zbimYtC9qs3VxLLb3c6+6Org1Pnu5tv98erg/vHq4P/x6uD/ + 8ejd/+3i1f/o2sr/1LCU/82hgP/Fj2f/05xx/92lef/dpHn/05tx/8WPZv/NoYD/1LCU/+jayv/t4tX/ + 8ejd//Hq4P/x6uD/8erg/u7m2/3q4NT53c6+59XEstrQvarNzbimYs63pTn/gIAC/4CAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqqqqAKqqqgDMuKYCzbimBNC9qgnRu6go0buoVtG/rL3TwrDb + 3My96+LTxPfl1cb/0auN/8yfff/Fj2f/1p5z/96lef/ttIj/7rWK/++2iv/vtor/7rWJ/+20iP/epXn/ + 1p5z/8WPZ//Mn33/0auN/+XVxv/i08T33My969PCsNvRv6y90buoVtG7qCjQvaoJzbimBM63pQL/gIAA + /4CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPuKUT + z7ilL8y1n37NtJ2h0LKZ3NS1nPDXtpz91aaD/9WifP/VnXP/4ad8/+asgP/vtor/8LeL//C3i//wt4v/ + 8LeL/++2iv/mrID/4ad8/9Wdc//Vonz/1aaD/9e2nP3UtZzw0LKZ3M20naHMtZ9+z7ilL8+4pRMAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALd6TiW6gVVNvIdcx7+IXebCiV/73qR4/+asgP/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//mrID/3qR4/8KJX/u/iF3mvIdcx7qBVU23ek4l + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAuH1PArh9Ty+6gFNdu4FVoMGHW8DJj2PQ3aR49OOqfvrnroL+7LOH/+61if/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utYn/7LOH/+eugv7jqn76 + 3aR49MmPY9DBh1vAvIFVobuAU164fU8vuH1PAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAtX5RA7V+UQ65gFMfuoBULL+FWF7DiV2Oxoxg08uRZevSmGz05q2B/+yzh//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//ss4f/5q2B/9KYbPTLkWXrxoxg1MSJXY7AhVheu4BULLmAUx+1flEOtX5RAwAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtX5RDrV+UUW5gFOau4FV08eNYezUm2/0566C/+61if/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utYn/566C/9Wbb/THjWHru4FV07mAU5q1flFF + tX5RDgAAAAAAAAAAAAAAAAAAAACqgFUEuIBSHLmAUkC9gVZ4wYVajc2TZ6zWnHDT2qF17eCne/flrID7 + 7LOH/++2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//vtor/7LOH/+WsgPrgp3v3 + 2qF17dWccNPNk2atwYVajr2BVni5gFJAuIBSHKqAVQSqgFUGuIBSLrmAUmq9gVbIwYZa49KXa/HhqHz5 + 67KH//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/67KH/+GofPrRl2rywYZa472BVsi5gFJquIBSLqqAVQa/gEAEun1RKrp9UmS7gVXF + wIVZ4dGWavDhp3v567KG//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7LaK/+m1if/ptoj/7LaJ//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/67KG/+Gne/nRlmrwwIVZ4buBVcW6fVJkun1RKr+AQAS/gEAC + un1RGbp9Ujy7gFV3v4VZkMyRZbfVm2/a2qB08uKpfPnnrYH77bSI/++2iv/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7LaK/+e1iP/UsoL/yrB//8Ovff/Dr3z/yrB//9Wygv/ntYj/7LaK//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//vtor/7bSI/+eugfviqXz52qB08tWbb9rMkWW3v4VZkLuAVXe6fVI8 + un1RGb+AQAIAAAAAAAAAAAAAAACqVVUCt3lTFrl9U2K7gFWsvYJW38ySZe/Zn3L26a+E/++1iv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/57WI/9myg/+rqnT/l6dv/4mla/+JpWv/l6dv/6yqdP/asoP/ + 57WI//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//vton/6bCD/9mfcvbMkmXvvYJW37uAVay5fVNi + t3lTFqpVVQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUAt3lTBLl9UxS8flMjvn9UMMGFWmzEiV2b + xoxg3dGXa+vYnnLy6rGF/+20iP/wt4v/6LWI/9Wygv+6rXn/oqly/5qrdP+WtoD/mL2J/5nCj/+Zwo// + mL2J/5a2gP+aq3T/oqly/7qtef/VsoL/6LWI//C3i//ttIj/6rGF/9iecvLRl2vrxoxg3cSJXZvBhVps + vIFVL7uAVSK5fVMUt3lTBKpVVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA + yF8/A7h7UT26f1Rqu4FVqsiNYcLPlWnR3qh79t6ugPvesoP907GB/8Gwfv+ornn/k611/46veP+UvIf/ + mcSR/53JmP+dyZj/mcSR/5S8h/+Or3j/k611/6iuef/BsH7/07GB/96yg/3eroD73qh79s+VadHIjWHC + u4FVqrp/VGq4e1E9uHtRAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALR7Ty6ygFJZsIVW056TX+mTm2T3iKVr/4yudv+Tu4f/ + nMaV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMaV/5O7h/+Mrnb/iKVr/5ObZPeek1/p + sIVW07KAUlm0e08uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3n2ALd59gG4ScYW+Jm2KXkppk35SodPCVsX37 + lbqG/5e+i/+aw5L/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciY/5rDkv+Xvov/ + lbqG/5WxffuUqHTwkppk34mbYpeEnGFvd59gG3efYAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3nV4Cd55fA3qiZQh5oWMaeaFjNXykZ59+pmnC + galv6I63gvWXwI7+nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5fAjv6Ot4L1galv6H6macJ8pGefeaFjNXmhYxp6omUId55fA3edXgIAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3nV4jd55fP3qiZbd9pWnM + gahv45K8iPeYwpD8nciX/p3ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/nciX/pjCkPySvIj3gahv432lacx6omW3 + d55fP3edXiMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3oF8UeaFhJHuiZFF+pmlv + gKhshoixediKs3zljbaB85fBj/2bxZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5vFlP+XwY/9 + jbaB84qzfOWIsXnYgKhshn6maW97omRReaFhJHegXxQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3oF8y + eaFhWnuiZMuAqGzfhKxx7ZfCkP6axZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5rFlP+XwpD+hKxx7YCobN97omTLeaFhWnegXzIAAAAAAAAAAAAAAACAn2AG + d5xfPnacX5J5n2PGgKds2pO+ivWXwY75mcSS+53Il/+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+dyJf/mcSS+5fBjvmTvYn1f6Zs2nigY8Z2nmCR + d55gPoCfYAaAn2AGd5xfP3acX5N5n2PMf6ds4JO9ifiXwY/6msST/J3ImP+eyZj/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57JmP+dyJj/msST/JfBj/qTvIn4 + f6Zs4HmgY8x2nmCSd55gPoCfYAYAAAAAZplmAmaZZgV4oWNReaFkfHuiZt2Dq3LoibF68ZrEk/6cx5b/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHlv+axJP+ + ibF68YOrcuh7ombdeaFkfHihY1GAgEAEgIBAAgAAAAAAAAAAZplmAWaZZgJ4oWMgeaFkMnqiZlp/qG2B + gqpwnoixeeaMtH7ukLqF9ZnEk/2cx5f/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHl/+ZxJP9 + kbqF9Yy1fu6IsXnmgqpwnn+obYB7omZaeaFkMnihYyCAgEACgIBAAQAAAAAAAAAAAAAAAAAAAAAAAAAA + VapVAVWqVQN1oGE5dqBhYnqhZM1/p2zbhq936JXAjfmaxZP9nciY/p3ImP+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/ + nciY/prFk/2WwI35h7B353+nbNp6oWTNdqBhYnagYTmAgIACgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAVapVAFWqVQB1oGECdqBhBHqhZAl5nmEoeZ1hVnuhZ71+pWrbhq5265K7h/eZw5P/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5nDk/+Su4f3hq52636latt7oWe9eZ1hVnmeYSh6oWQJdqBhBHagYQKAgIAAgICAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3m14Td5teL3qgZHB8o2iH + g6txoouzfcyPuIPpk72K9pbBjvqbxpX/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nciY/5vGlf+XwY76k72K9o+4g+mLs33Mg6txonyjaId6oGRwd5teL3ebXhMAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB2nF4LdpxeNnqgZI17oWbIgqpx6Iq0ffKWwY7/nMeX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nceX/5fBjv+LtH3ygqpx6HuhZsh6oGSNdpxeNnacXgsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB2nF4CdpxeC3qgZBx7oWUpfaRpToCnbX6BqXDFhq115Iqye++XwY7+ + m8aV/57Jmf+eyZn/m8aV/5fBjv6Ksnvvhq115IKpcMWAp21+faRpTnuhZSl6oGQcdpxeC3acXgIAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2m10BdptdH3mfY056oGWS + f6ZrtISrcsaSu4bplb+M85jCkPqYwpD6lr+M85K7humEq3LGf6ZrtHqgZZJ5n2NOdptdH3abXQEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAdJddEnidYTB6oGSXfKNnxn2kaOV9pGjlfaNnxXygZJZ5nWEwdJddEgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddB3idYRN6oGQ8fKJnVXyjaGV8pGdkfKNmVHygZDx5nWET + dJddBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5lmCXeZZg9tpFsO + baRbCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///w///8AAP//4Af//wAA///gB///AAD//gAA + f/8AAP/wAAAP/wAA//AAAA//AAD/gAAAAf8AAPwAAAAAPwAA/AAAAAA/AADgAAAAAAcAAOAAAAAABwAA + AAAAAAAAAAAAAAAAAAAAAIAAAAAAAQAAgAAAAAABAADwAAAAAA8AAPAAAAAADwAA/4AAAAH/AAD/4AAA + B/8AAP4AAAAAfwAA8AAAAAAPAADwAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 4AAAAAAHAADgAAAAAAcAAPwAAAAAfwAA/+AAAAf/AAD/gAAAAf8AAPwAAAAAPwAA/AAAAAA/AADgAAAA + AAcAAOAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAQAAgAAAAAABAADwAAAAAA8AAPAAAAAADwAA + /4AAAAH/AAD/8AAAD/8AAP/wAAAP/wAA//4AAH//AAD//+AH//8AAP//4Af//wAA///8P///AAAoAAAA + IAAAAEAAAAABACAAAAAAAAAQAABhCgAAYQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMu6oBzLuqD8i2pA7ItqQBAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIE0LqnJdC7q5LSwK3X0sCt18+7qpHQuqYk + 0bmiBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIG0LuoL9G9rIzVw7HN4tbJ7u3l2vzt5dr8 + 4tbJ7tXDsc3RvayM0LuoL9G5ogYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJuaIMz72qRdK/rZfZyLfI5trN6+3k2Prv593+ + 8uvh//Lr4f/v593+7eTY+ubazevZyLfI0r+tl8+8qkXJuaIMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMtaQU0LyqV9PAr5rczr7H59zP7Ozi1/rw6N3/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+zi1/rn3M/s3M6+x9PAr5rQvKpXzLWkFAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6Idz7ypZdTBsJzf0MLL5tvP7uzi1/rw6d7/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Dp3v/s4tf65tvP7t/QwsvUwbCc + z7ypZcy3oh0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOuaUg0b6radbEs5rg0sPS5trN8ezi1/vx6d// + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/x6d// + 7OLX++bazfHg0sPS1sSzmtG+q2nOuaUgAAAAAAAAAAC/v58EzbikW8+7qJnf0cHZ5drM8u3k2Pzx6t// + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8erf/+3k2Pzl2czy3tDB2dC7qZnOuaVav7+fBL+/nwTNuKRe0LuoqN7PwOPm2872 + 7ubb/fHq4P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/7uXZ/+POuv/jzrr/7uXZ//Lq4P/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/x6uD/7ubb/ebbzvbdz7/j0LupqM65pVy/v58EAAAAAMzMmQPPuqg0 + 0Lyqd9jHt6rh1Mbd593Q9e3l2vzx6uD/8uvh//Lr4f/x6t//7eHU/+PNuv/bvqX/1qmF/9aohf/bvqX/ + 4826/+3h1P/x6t//8uvh//Lr4f/x6uD/7eXa/Ofd0PXh1Mbd2Me3qtC7qnfPuqg0v7+/AgAAAAAAAAAA + AAAAAAAAAACqqqoCzbimMM+8qXfXxrWq4dTF1+jd0fTs4tb769/R/+TPvP/bvKL/06N//9Occv/jqn7/ + 46p+/9Occv/To3//27yi/+TPvP/r39H/7OLW++jd0fTh1MXX18a1qc+8qXfNuKYw/4CAAQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM+4pSPOuKR10bqkw9e+p+zZuJ7+0qJ+/9ObcP/jqX3/ + 77aK//C3i//wt4v/77aK/+Opff/Tm3D/0qJ+/9m4nv7Xvqfs0bqkw864pHXPuKUjAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4fU8IuoBUHb2CVkDDi2CPyJBm49OZbv3mrID/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//mrID/05lu/ciQZuPDi2CPvYJWQLuAVB24fU8I + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1flEHuYBUF72DVkLBh1uexoxg4dedcffqsIT/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/6rCE/9edcffHjGDh + wodbn72DVUK5gFQXtX5RBwAAAAAAAAAAAAAAAKqAVQC5gFIHvYFWDruDVkO+hFiyxo1h5tyjd/jss4f/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/+yzh//do3f4x41g5b6EWLK7g1ZDvYFWDrmAUgeqgFUAqoBVBrmAUmO9gVbPzpNn7eWrgPvutYr/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//utYr/5KuA/M2TZu69gVbPuYBSY6qAVQa/gEAEun1SXruBVc3Nkmbs + 5Kt/++61if/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//ptYn/6baI//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61if/kq3/7zZJm7LuBVc26fVJev4BABL+AQAC6fVIG + uHpVELyAVlm/hFjBypBk69+levnttIj/8LeL//C3i//wt4v/8LeL/+62iv/fs4X/rat1/4+mbf+Ppm3/ + rqt1/9+zhf/utor/8LeL//C3i//wt4v/8LeL/+20iP/fpnn5ypBk67+EWMG8gFZZuHpVELp9Uga/gEAA + AAAAAAAAAACqVVUAuX1TC719Uxq/gldNwYdbq8qQZOXdo3f27LOH/+22iv/asoP/r6t2/5Wpcf+VuIL/ + msSS/5rEkv+VuIL/lalx/6+rdv/asoP/7baK/+yzh//do3f2ypBk5cGHW6u+gldNvIBVGbl9UwuqVVUA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAALh6UAu6gFQgv4VZRr6MXpizlmXno6Nu+5qsdv+Zuob/ + msKQ/5zGlf+eyZn/nsmZ/5zGlf+awpD/mbqG/5qsdv+jo277s5Zl576MXpi/hVlGuoBUILh7UQsAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHefYBR/n2Jfh59luZCoc+yWuYb9 + mcGP/5zGlf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cxpX/mcGP/5a5hv2QqHPsh59luX+fYl93n2AU + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHedXh16oWRlfqVrnIqye8uSvIfu + l8GP+pzHlv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMeW/5fBj/qSvIfu + irJ7y36la5x6oWRld51eHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHegXyB7omRpgKhrmou0fdKRu4bx + l8KQ+53Hl/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/53Hl/+XwpD7kbuG8Yu0fdKAqGuae6JkaXegXyAAAAAAAAAAAICfYAR2nF9beaBjmYmyetmQuoXy + mMOR/J3ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/mMOR/JC6hPKJsnrZeKBjmXaeYFqAn2AEgJ9gBHacX155oGOo + ibJ645K7h/aaxJP9nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+axJP9kruH9omxeuN5oGOodp1fXICfYAQAAAAA + ZplmA3ihYzR6omZ3gqpxqoy1ft2TvIj1mcSS/J3ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+ZxJL8k7yI9Yy1ft2CqnGqe6Jmd3ihYzSAgEAC + AAAAAAAAAAAAAAAAAAAAAFWqVQJ2oGEweaFjd4CobqqLtH/Xk72K9JnDkfudyJf/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Il/+Zw5H7k72K9Iy1f9eBqW6peaFjd3agYTCAgIAB + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5teI3mfY25/pmyqi7N80JS9ivOYw5H7 + nMeX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Hl/+Yw5H7lL2K84uzfNB/pmyqeZ9jbnebXiMAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHacXhR6oGNa + faRpq4evd8+TvYrymcOR+5zHlv+eyZn/nsmZ/5zHlv+Zw5H7lL2K8oevd899pGmreqBjWnacXhQAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB2m10MeJ5iRHuiZ6eDqnDQk72J8ZrFk/yaxZP8k72J8YOqcNB7omeneJ5iRHabXQwAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddBHecYSV6oGSSfaRo132kaNd8oGSReJxhJHSXXQQAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHeZZgF3mWYPbaRbDm2kWwEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/8P///8A// + /8AD//8AAP/8AAA/8AAAD8AAAAMAAAAAAAAAAIAAAAHgAAAH/AAAP/gAAB/gAAAHAAAAAAAAAAAAAAAA + AAAAAMAAAAPwAAAf/AAAP/AAAA/AAAADAAAAAAAAAACAAAAB4AAAB/wAAD//AAD//8AD///wD////D// + KAAAABAAAAAgAAAAAQAgAAAAAAAABAAAYQoAAGEKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAANG6pgrRvqxe0b6sXtC6pgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + zrypFNXDsWXg0sTQ7OPY+uzj2Prg0sTQ1cOxZc68qRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPu6ch + 2Ma2dOLVx9Lt5dn58erg//Lr4f/y6+H/8erg/+3l2fni1cfS2Ma2dM+7pyEAAAAAAAAAAMy4pBjWxbN/ + 49fJ1u3l2fvy6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvg/+3l2fvj18nW1sWzf825pRjMuaMZ + 1cOyjuTZy97u5tv88uvh//Lr4P/t4dT/4cav/+HGr//t4dT/8uvg//Lr4f/u5tv85NnL3tXDso7NuqYZ + AAAAAKqqqgDPu6gq2Mi3huDPvujewqr/2amE/+Wtgf/lrYH/2amE/97Cqv/gz77o2Mi3hs+7qCr/gIAA + AAAAAAAAAAC1flECvIJVGMOJXHfVnHHa5q2B/vC3i//wt4v/8LeL//C3i//mrYH+1Zxx2sOJXHe8glUY + tX5RAgAAAAC4gFIcxIleg9ifc+TqsYX98LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//qsYX9 + 2J9z5MSJXYS4gFIcun1RGsOIXYnZn3Pq67KG/vC3i//wt4v/67aJ/8Wvff/Gr33/67aJ//C3i//wt4v/ + 67KG/tmfc+rDiF2Jun1RGgAAAAC4e1MDvoBVHMWKXn3RoHPdwa58/p60f/+aw5D/msOQ/560f//Brnz+ + 0aBz3cWKXn29gVYcuHtTAwAAAAAAAAAAAAAAAHmgYyGDqXB2kbJ945rCkf6dyJj/nsmZ/57Jmf+dyJj/ + msKR/pGyfeODqXB2eaBjIQAAAAAAAAAAdpxfGICobX+OuILWmcOS+57JmP+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZj/mcOS+464gtaAqG1/dp5gGHacXxmAp22OkLmE3prEk/yeyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5rEk/yQuYTef6dtjnedXxkAAAAAVapVAHihYyqDqnKFj7iD2prEk/ueyZj/ + nsmZ/57Jmf+eyZj/msST+4+4g9qDq3KEeKFjKoCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAHmfYhuBqG5y + jLV/2ZrFk/uaxZP7jbV/2YGobnJ5n2IbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHebYAp8omdefKNmXnibYAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8PwAA8A8AAMADAAAAAAAA + AAAAAIABAACAAQAAAAAAAAAAAACAAQAAwAMAAAAAAAAAAAAAgAEAAPAPAAD8PwAA + + + \ No newline at end of file diff --git a/Handler/Project_form2/SoftekBarcode64DLL.dll b/Handler/Project_form2/SoftekBarcode64DLL.dll new file mode 100644 index 0000000..c330de2 Binary files /dev/null and b/Handler/Project_form2/SoftekBarcode64DLL.dll differ diff --git a/Handler/Project_form2/SoftekBarcodeDLL.dll b/Handler/Project_form2/SoftekBarcodeDLL.dll new file mode 100644 index 0000000..9c44c7e Binary files /dev/null and b/Handler/Project_form2/SoftekBarcodeDLL.dll differ diff --git a/Handler/Project_form2/SoftekBarcodeNet.dll b/Handler/Project_form2/SoftekBarcodeNet.dll new file mode 100644 index 0000000..6947e4e Binary files /dev/null and b/Handler/Project_form2/SoftekBarcodeNet.dll differ diff --git a/Handler/Project_form2/StateMachine/_Keyence_Rule.cs b/Handler/Project_form2/StateMachine/_Keyence_Rule.cs new file mode 100644 index 0000000..d047330 --- /dev/null +++ b/Handler/Project_form2/StateMachine/_Keyence_Rule.cs @@ -0,0 +1,218 @@ +using Keyence.AutoID.SDK; +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Text.RegularExpressions; + +namespace Project +{ + public partial class fMain + { + Regex regex = null; + + /// + /// 적용가능한 룰이 없으면 처리하지 않는다. + /// + /// + private Boolean Process_CustomerRule(string vdata) + { + bool retval = false; + if (string.IsNullOrWhiteSpace(vdata)) return retval; + var dt = Pub.Result.CustomerRule; + if (dt.Count < 1) return retval; + + //이 데이터가 정규식에 match 가되는지 확인하.ㄴㄷ + var ucnt = 0; + foreach (DataSet1.Component_Reel_CustRuleRow dr in dt.Rows) + { + + if (dr.MatchEx.isEmpty()) continue; //매칭키는 반드시 있어야 한다. + if (dr.varName.isEmpty()) continue; //찾더라도 대상이 없으니 안한다 + var vData = Pub.Result.ItemData[1].VisionData; + if (vData.Confirm) break; //완료처리된건 하지않는다 + + regex = new Regex(dr.MatchEx); //한글 3글자 + if (regex.IsMatch(vdata)) + { + var matchlist = regex.Matches(vdata); + var match0 = matchlist[dr.MatchIndex]; + var grpval = match0.Groups[dr.GroupIndex].Value; + var result = grpval.Trim(); + if (dr.ReplaceEx.isEmpty() == false && dr.ReplaceStr.isEmpty() == false) + { + regex = new Regex(dr.ReplaceEx); + if (regex.IsMatch(result)) result = regex.Replace(result, dr.ReplaceStr); + } + ucnt += 1; + switch (dr.varName) + { + case "QTY0": + vData.QTY0 = result; + vData.QTYRQ = vdata.StartsWith("RQ"); + break; + case "SID": + vData.SID = result; + break; + case "LOT": + vData.VLOT = result; + break; + case "PART": + vData.PARTNO = result; + break; + case "MFGDATE": + vData.MFGDATE = result; + break; + case "QTY": + vData.QTY = result; + break; + default: + ucnt -= 1; + Pub.log.AddAT($"RegEx 대상 VarName을 찾을 수 없습니다. 값:{dr.varName}"); + break; + } + } + } + retval = ucnt > 0; //적용데이터가 1건이라도 있으면 확인 + return retval; //적용ㄱ + } + private Boolean Process_BasicRule(string vData) + { + + //amkor 포맷도 아닌 데이터가 오는 경우에는 추측해서 데이터를 입력해준다. + int qty; + string datestr = string.Empty; + bool retval = true; + + //수동입력의 경우에만 RQ값을 사용한다. + if (Pub.Result.Option_QtyUpdateM) Process_ReturnReel(vData); + + if (vData.StartsWith("PSK")) //murate 의 reel id 형식 + { + Pub.Result.ItemData[1].VisionData.SetRID(vData, "PARSEBARCODE_PSK");//.Substring(3); + Pub.Result.ItemData[1].VisionData.HASHEADER = true; + } + if (vData.StartsWith("1V") && vData.Length == 8) //무라타의 서플라이어코드 + { + //Pub.Result.ItemData[1].VisionData.SCODE = vData.Substring(2); + } + if (vData.StartsWith("1T")) //무라타의 LOT + { + //Pub.Result.ItemData[1].VisionData.VLOT = vData.Substring(2); + //Pub.Result.ItemData[1].VisionData.HASHEADER = true; + } + if (vData.StartsWith("1P")) //무라타의 파트넘버 + { + //Pub.Result.ItemData[1].VisionData.PARTNO = vData.Substring(2); + //Pub.Result.ItemData[1].VisionData.HASHEADER = true; + } + + if (vData.StartsWith("Q")) + { + if (Pub.Result.ItemData[1].VisionData.QTYRQ == false) + { + int qty0; + if (int.TryParse(vData.Substring(1), out qty0)) + { + Pub.Result.ItemData[1].VisionData.QTY = vData.Substring(1); + Pub.Result.ItemData[1].VisionData.HASHEADER = true; + } + } + else + { + Pub.log.Add("RQ값이 적용되어 프리픽스 Q값=" + vData + "을 적용하지 않습니다"); + } + } + if (vData.StartsWith("17D") && vData.Length == 11) //생산일 + { + Pub.Result.ItemData[1].VisionData.MFGDATE = vData.Substring(3);// + "-"+ vData.Substring(3,2) + "-" + vData.Substring(5,2); + Pub.Result.ItemData[1].VisionData.HASHEADER = true; + } + if (vData.Split(',').Length == 6 && vData.StartsWith("P")) //특수포맷 추가 코드 + { + var CommaBuf = vData.Split(','); + foreach (var item in CommaBuf) + { + if (item.StartsWith("P")) + Pub.Result.ItemData[1].VisionData.PARTNO = item.Substring(1); + else if (item.StartsWith("Q")) + { + if (Pub.Result.ItemData[1].VisionData.QTYRQ == false) + { + Pub.Result.ItemData[1].VisionData.QTY = item.Substring(1); + } + else + { + Pub.log.Add("RQ값이 적용되어있어 특수 문자 수량값=" + vData + "을 적용하지 않음"); + } + } + + else if (item.StartsWith("L")) + Pub.Result.ItemData[1].VisionData.VLOT = item.Substring(1); + else if (item.StartsWith("D") && item.IndexOf('/') != -1) + { + var datestrbuf = item.Substring(1).Split('/'); + if (datestrbuf.Length == 3) + { + Pub.Result.ItemData[1].VisionData.MFGDATE = + datestrbuf[0].PadLeft(4, '0') + + datestrbuf[1].PadLeft(2, '0') + + datestrbuf[2].PadLeft(2, '0'); + } + + } + + } + } + else if (IsDateValue(vData, out datestr)) + { + Pub.Result.ItemData[1].VisionData.MFGDATE = datestr; + } + else if (IsSIDValue(vData)) + { + if (vData.StartsWith("101")) + { + if (Pub.Result.ItemData[1].VisionData.SID0.isEmpty() == true) + { + Pub.log.Add("SID값 변경함 #3 " + Pub.Result.ItemData[1].VisionData.SID + "=>" + vData); + Pub.Result.ItemData[1].VisionData.SID = vData; + } + } + else if (vData.StartsWith("103")) + { + //103을 ㅗ시작하면 기존데이터가 101인경우에는 처리하지 않는다 + if (Pub.Result.ItemData[1].VisionData.SID.StartsWith("101") == false) + { + Pub.log.Add("SID값 변경함 #4 " + Pub.Result.ItemData[1].VisionData.SID + "=>" + vData); + Pub.Result.ItemData[1].VisionData.SID = vData; + } + + } + else + { + if (Pub.Result.ItemData[1].VisionData.SID0.isEmpty() == true) + { + Pub.log.Add("SID값 변경함 #5 " + Pub.Result.ItemData[1].VisionData.SID + "=>" + vData); + Pub.Result.ItemData[1].VisionData.SID = vData; + } + } + } + else if (int.TryParse(vData, out qty) && qty < 200000 && qty >= 3000) + { + //수량으로 변환이 된다. + if (Pub.Result.ItemData[1].VisionData.QTYRQ == false) + { + Pub.Result.ItemData[1].VisionData.QTY = qty.ToString(); + } + else + { + Pub.log.Add("RQ값이 적용되어있어, 수량으로 추측한 문자=" + vData + "를 적용하지 않습니다"); + } + } + else retval = false; + return retval; + } + } +} diff --git a/Handler/Project_form2/UIControl/CtlBase.Designer.cs b/Handler/Project_form2/UIControl/CtlBase.Designer.cs new file mode 100644 index 0000000..9007d06 --- /dev/null +++ b/Handler/Project_form2/UIControl/CtlBase.Designer.cs @@ -0,0 +1,36 @@ +namespace UIControl +{ + partial class CtlBase + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 구성 요소 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + } + + #endregion + } +} diff --git a/Handler/Project_form2/UIControl/CtlBase.cs b/Handler/Project_form2/UIControl/CtlBase.cs new file mode 100644 index 0000000..709273a --- /dev/null +++ b/Handler/Project_form2/UIControl/CtlBase.cs @@ -0,0 +1,109 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace UIControl +{ + [TypeConverterAttribute(typeof(ExpandableObjectConverter))] + public class PinInfo + { + public int PinIndex { get; set; } + public Boolean PinLevel { get; set; } + public Boolean Output { get; set; } + public eValueDirection ValueDirection { get; set; } + public Boolean Value + { + get + { + if (PinLevel == false) return !Raw; + else return Raw; + } + } + + private Boolean _raw = false; + public Boolean Raw + { + get { return _raw; } + set + { + Boolean changed = _raw != value; + _raw = value; + if (changed && ValueChanged != null) + { + ValueChanged(this, new EventArgs()); + } + } + } + public PinInfo(Boolean isOutput = false) + { + _raw = false; + PinIndex = -1; + PinLevel = true; + Output = isOutput; + ValueDirection = eValueDirection.input; + } + + public event EventHandler ValueChanged; + } + + + public enum eValueDirection + { + input = 0, + output, + } + public abstract partial class CtlBase : Control + { + Boolean bRemakeRect ; + + + public List PinList; + public CtlBase() + { + InitializeComponent(); + + // Set Optimized Double Buffer to reduce flickering + this.SetStyle(ControlStyles.UserPaint, true); + this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); + this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); + this.SetStyle(ControlStyles.SupportsTransparentBackColor, true); + this.SetStyle(ControlStyles.ContainerControl, false); + this.SetStyle(ControlStyles.Selectable, true); + PinList = new List(); + bRemakeRect = true; + this.Resize += Loader_Resize; + } + + public abstract void MakeRect(); + public abstract void UpdateValue(); + protected void SetPinCount(int iCnt) + { + this.PinList = new List(iCnt); + + for (int i = 0; i < iCnt; i++) + PinList.Add(new PinInfo()); + + } + + void Loader_Resize(object sender, EventArgs e) + { + bRemakeRect = true; + } + + protected override void OnPaint(PaintEventArgs pe) + { + if (bRemakeRect) + { + MakeRect(); + bRemakeRect = false; + } + + base.OnPaint(pe); + } + } +} diff --git a/Handler/Project_form2/UIControl/CtlContainer.Designer.cs b/Handler/Project_form2/UIControl/CtlContainer.Designer.cs new file mode 100644 index 0000000..6c7070e --- /dev/null +++ b/Handler/Project_form2/UIControl/CtlContainer.Designer.cs @@ -0,0 +1,36 @@ +namespace UIControl +{ + partial class CtlContainer + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 구성 요소 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + } + + #endregion + } +} diff --git a/Handler/Project_form2/UIControl/CtlContainer.cs b/Handler/Project_form2/UIControl/CtlContainer.cs new file mode 100644 index 0000000..b90d018 --- /dev/null +++ b/Handler/Project_form2/UIControl/CtlContainer.cs @@ -0,0 +1,86 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace UIControl +{ + public partial class CtlContainer : GroupBox + { + arDev.AzinAxt.Emulator.CEmuleDIO devIO; + arDev.AzinAxt.Emulator.CEmulMOT devMOT; + + public CtlContainer() + { + InitializeComponent(); + } + public void updateControl() + { + updateControl(this.Controls); + } + + public void setDevice(arDev.AzinAxt.Emulator.CEmuleDIO dio, arDev.AzinAxt.Emulator.CEmulMOT mot) + { + this.devIO = dio; + this.devMOT = mot; + } + + public void updateControl(System.Windows.Forms.Control.ControlCollection ctl) + { + if (devIO == null && devMOT == null) throw new Exception("디바이스(IO/MOT)가 설정되지 않았습니다"); + foreach (Control c in ctl) + { + if (c.HasChildren) + { + updateControl(c.Controls); + } + else if (c is UIControl.CtlBase) + { + var cc = c as UIControl.CtlBase; + foreach (var pin in cc.PinList) + { + if (pin.PinIndex != -1) + { + if (pin.ValueDirection == UIControl.eValueDirection.input) + { + //io의 값을 컨트롤에 적용해줘야한다 + if (pin.Output) + { + pin.Raw = devIO.Output[pin.PinIndex]; + } + else + { + pin.Raw = devIO.Input[pin.PinIndex]; + } + } + else + { + //컨트롤의 값을 io에 적용해줘야 한다 + if (pin.Output) + { + //devIO.Output[pin.PinIndex] = pin.Value; + devIO.SetOutput(pin.PinIndex, pin.Value); + } + else + { + // devIO.Input[pin.PinIndex] = pin.Value; + devIO.SetInput(pin.PinIndex, pin.Value); + } + } + + } + } + cc.UpdateValue(); + cc.Invalidate(); + } + } + + } + + } +} diff --git a/Handler/Project_form2/UIControl/CtlCylinder.Designer.cs b/Handler/Project_form2/UIControl/CtlCylinder.Designer.cs new file mode 100644 index 0000000..f766802 --- /dev/null +++ b/Handler/Project_form2/UIControl/CtlCylinder.Designer.cs @@ -0,0 +1,36 @@ +namespace UIControl +{ + partial class CtlCylinder + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 구성 요소 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + } + + #endregion + } +} diff --git a/Handler/Project_form2/UIControl/CtlCylinder.cs b/Handler/Project_form2/UIControl/CtlCylinder.cs new file mode 100644 index 0000000..d9e0a98 --- /dev/null +++ b/Handler/Project_form2/UIControl/CtlCylinder.cs @@ -0,0 +1,261 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace UIControl +{ + public partial class CtlCylinder : CtlBase + { + // string text_; + Font font_ = new Font("맑은 고딕", 10); + public enum eSensorType + { + 단동 = 0, + 복동, + } + private eSensorType _arsensortype = eSensorType.단동; + public eSensorType arSensorType + { + get + { + return _arsensortype; + } + set + { + _arsensortype = value; + this.Invalidate(); + } + } + [Browsable(true)] + public new Font Font { get { return font_; } set { font_ = value; this.Invalidate(); } } + + public CtlCylinder() + { + InitializeComponent(); + + SetPinCount(4); //입력2개 출력2개 + + arOutputMax.ValueDirection = eValueDirection.output; + arOutputMin.ValueDirection = eValueDirection.output; + + if (arVel == 0) arVel = 50; + + //실린더 가동핀은 변경되면 시작시간을 업데이트해줘야 한다 + PinList[0].ValueChanged += (s1, e1) => { RunStartTimeMax = DateTime.Now; }; + PinList[1].ValueChanged += (s1, e1) => { RunStartTimeMin = DateTime.Now; }; + } + public override void MakeRect() + { + + } + + public int arLength = 100; + public int arVel { get; set; } + public DateTime RunStartTimeMin = DateTime.Now; + public DateTime RunStartTimeMax = DateTime.Now; + // public TimeSpan arRunSec = new TimeSpan(0); + private double arRunLen = 0; + public double arProgress + { + get + { + var val = (arRunLen / (arLength * 1.0) * 100.0); + if (val > 100.0) val = 100; + return val; + } + } + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] + public PinInfo arOutputMax { get { return PinList[2]; } set { PinList[2] = value; } } + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] + public PinInfo arOutputMin { get { return PinList[3]; } set { PinList[3] = value; } } + + //Boolean aron1_ = false; + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] + public PinInfo arInput1 + { + get + { + return PinList[0]; + } + set + { + //if (value != aron1_) RunStartTimeMax = DateTime.Now; + PinList[0] = value; + } + } + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] + public PinInfo arInput2 + { + get + { + return PinList[1]; + } + set + { + // if (value != aron2_) RunStartTimeMin = DateTime.Now; + PinList[1] = value; + this.Invalidate(); + } + } + + + public Rectangle arRectProgress { get; set; } + + public override void UpdateValue() + { + //둘다 켜져잇거나 거져잇다면 작동하지 않는다 + if (arInput1 != arInput2) + { + if (arSensorType == eSensorType.단동) + { + var ts = DateTime.Now - RunStartTimeMax; + //단동은 1번 센서의 on/off 로 처리한다 + if (arInput1.Value) + { + //경과시간만큼 MAX로 이동한다 + arRunLen += ts.TotalSeconds * arVel; + } + else + { + //경과시간만큼 MIN으로 이동한다 + arRunLen -= ts.TotalSeconds * arVel; + } + RunStartTimeMax = DateTime.Now; + } + else + { + //복동은 1번센서는 Max로 2번센서는 Min으로 이동시킨다 + if (arInput1.Value) + { + var ts = DateTime.Now - RunStartTimeMax; + arRunLen += ts.TotalSeconds * arVel; + RunStartTimeMax = DateTime.Now; + } + else if (arInput2.Value) + { + var ts = DateTime.Now - RunStartTimeMin; + arRunLen -= ts.TotalSeconds * arVel; + RunStartTimeMin = DateTime.Now; + } + } + } + + if (arRunLen > arLength) arRunLen = arLength; + if (arRunLen < 1) arRunLen = 0; + + arOutputMax.Raw = arProgress >= 99.9; + arOutputMin.Raw = arProgress <= 0.1; + + // public Boolean arMax { get { return arProgress >= 99.9; } } + //public Boolean arMin { get { return arProgress <= 0.1; } } + } + + protected override void OnPaint(PaintEventArgs pe) + { // base.OnPaint(pe); + + + + pe.Graphics.DrawRectangle(Pens.Gray, DisplayRectangle.Left, DisplayRectangle.Top, DisplayRectangle.Width - 1, DisplayRectangle.Height - 1); + + var baseRect = new Rectangle(DisplayRectangle.Left + Padding.Left, + DisplayRectangle.Top + Padding.Top, + DisplayRectangle.Width - Padding.Left - Padding.Right, + DisplayRectangle.Height - Padding.Top - Padding.Bottom); + + + //pe.Graphics.DrawRect(baseRect, Color.Blue, 1); + + + //사각형안에 사각형이 움직이는 걸로 하며 . 기본 H 배치한다 + var rectH = (int)(baseRect.Height * 0.6); + var rectOut = new Rectangle(baseRect.Left, + (int)(baseRect.Top + (baseRect.Height - rectH) / 2.0), + (int)(baseRect.Width), rectH); + + var InOffset = (int)(baseRect.Height * 0.15); + //var rectIn = new Rectangle(rectOut.Right, rectOut.Top + InOffset, + // DisplayRectangle.Width - rectOut.Width - 2, rectOut.Height - (InOffset * 2)); + + + + //진행율(%) + var progress = (arProgress / 100.0) * rectOut.Width; + var PWid = 10; + var rectP = new Rectangle((int)(progress - PWid + baseRect.Left), baseRect.Top, PWid, baseRect.Height); + + pe.Graphics.FillRectangle(Brushes.Gray, rectOut); + pe.Graphics.DrawRect(rectOut, Color.Black, 2); + + //pe.Graphics.DrawRect(rectIn, Color.Black, 2); + + if (this.arOutputMax.Value) + pe.Graphics.FillRectangle(Brushes.Red, rectP); + else if (this.arOutputMin.Value) + pe.Graphics.FillRectangle(Brushes.Blue, rectP); + else + pe.Graphics.FillRectangle(Brushes.Gold, rectP); + + pe.Graphics.DrawRect(rectP, Color.Black, 2); + + + //가동상태를 상단에 표시한다 + var StSize = 10;// baseRect.Height * 0.15f; + var rectp1 = new RectangleF( + this.DisplayRectangle.Right - StSize - 3, + DisplayRectangle.Top + 3, + StSize, StSize + ); + + if (arInput1.Value) + pe.Graphics.FillRectangle(Brushes.Red, rectp1); + else + pe.Graphics.FillRectangle(Brushes.Gray, rectp1); + pe.Graphics.DrawRect(rectp1, Color.White); + + if (arSensorType == eSensorType.복동) + { + var rectp2 = new RectangleF( + this.DisplayRectangle.Right - StSize - 3, + DisplayRectangle.Bottom - StSize - 3, + StSize, StSize + ); + if (arInput2.Value) + pe.Graphics.FillRectangle(Brushes.Red, rectp2); + else + pe.Graphics.FillRectangle(Brushes.Gray, rectp2); + pe.Graphics.DrawRect(rectp2, Color.White); + } + + // if (arMin) + // { + // pe.Graphics.DrawString("MIN", this.Font, Brushes.Black, rectOut, + // new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + // } + // else if(arMax) + // { + // pe.Graphics.DrawString("MAX", this.Font, Brushes.Black, rectOut, + //new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + // } + // else + // { + // pe.Graphics.DrawString(arProgress.ToString("N0")+"%", this.Font, Brushes.Black, rectOut, + //new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + // } + + + if (string.IsNullOrEmpty(Text) == false) + { + pe.Graphics.DrawString(Text + "\n" + progress.ToString(), + this.Font, + Brushes.Black, + rectOut, + new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + } + } + } +} diff --git a/Handler/Project_form2/UIControl/CtlMotor.Designer.cs b/Handler/Project_form2/UIControl/CtlMotor.Designer.cs new file mode 100644 index 0000000..a95d2b6 --- /dev/null +++ b/Handler/Project_form2/UIControl/CtlMotor.Designer.cs @@ -0,0 +1,41 @@ +namespace UIControl +{ + partial class CtlMotor + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 구성 요소 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + this.SuspendLayout(); + // + // CtlMotor + // + this.ResumeLayout(false); + + } + + #endregion + } +} diff --git a/Handler/Project_form2/UIControl/CtlMotor.cs b/Handler/Project_form2/UIControl/CtlMotor.cs new file mode 100644 index 0000000..8e1a0a7 --- /dev/null +++ b/Handler/Project_form2/UIControl/CtlMotor.cs @@ -0,0 +1,181 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace UIControl +{ + public partial class CtlMotor : CtlBase + { + public int Length { get; set; } + //public Boolean Pin_Run { get; set; } + //public Boolean Pin_DirCW { get; set; } + //public Boolean Pin_Max { get; set; } + //public Boolean Pin_Min { get; set; } + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] + public PinInfo Pin_Run { get { return PinList[0]; } set { this.PinList[0] = value; } } + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] + public PinInfo Pin_DirCW { get { return PinList[1]; } set { this.PinList[1] = value; } } + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] + public PinInfo Pin_Max { get { return PinList[2]; } set { this.PinList[2] = value; } } + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] + public PinInfo Pin_Min { get { return PinList[3]; } set { this.PinList[3] = value; } } + + + public Boolean speed { get; set; } + + Font font_ = new Font("맑은 고딕", 10); + + + + [Browsable(true)] + public new Font Font { get { return font_; } set { font_ = value; this.Invalidate(); } } + + public CtlMotor() + { + InitializeComponent(); + + SetPinCount(4); + + Length = 100; + this.Size = new Size(80, 80); + this.MaximumSize = new Size(80, 80); + this.MinimumSize = new Size(40, 40); + if (this.Font == null) this.Font = new Font("맑은 고딕", 10); + if (this.Text == null) this.Text = string.Empty; + } + + + public override void MakeRect() + { + + } + + public override void UpdateValue() + { + + } + + int anim = 0; + protected override void OnPaint(PaintEventArgs pe) + { + + pe.Graphics.DrawRectangle(Pens.Gray, DisplayRectangle.Left, DisplayRectangle.Top, DisplayRectangle.Width - 1, DisplayRectangle.Height - 1); + + var rect = new Rectangle(DisplayRectangle.Left + 2, DisplayRectangle.Top + 2, 10, 10); + var rect2 = new Rectangle(DisplayRectangle.Right - 2 - 10, DisplayRectangle.Top + 2, 10, 10); + + + //모터영역을 그린다. + var rectO = new RectangleF( + DisplayRectangle.Left + Padding.Left, + DisplayRectangle.Top + Padding.Top, + DisplayRectangle.Width * 0.6f, + DisplayRectangle.Height - Padding.Top - Padding.Bottom); + + var rectiH = rectO.Height * 0.6f; + var rectI = new RectangleF( + rectO.Left, + rectO.Top + (rectO.Height - rectiH) / 2.0f, + DisplayRectangle.Width - Padding.Left- Padding.Right, + rectiH + ); + + + + if (this.Pin_Run.Value) + { + if (this.Pin_DirCW.Value) + { + if (anim % 2 == 0) + pe.Graphics.FillRectangle(Brushes.Lime, rectI); + else + pe.Graphics.FillRectangle(Brushes.Yellow, rectI); + pe.Graphics.DrawRectangle(Pens.Black, rectI); + } + else + { + if (anim % 2 == 0) + pe.Graphics.FillRectangle(Brushes.Lime, rectI); + else + pe.Graphics.FillRectangle(Brushes.Blue, rectI); + pe.Graphics.DrawRectangle(Pens.Black, rectI); + } + + } + else + { + pe.Graphics.FillRectangle(Brushes.Red, rectI); + pe.Graphics.DrawRectangle(Pens.Black, rectI); + } + pe.Graphics.DrawRect(rectI, Color.Black, 2); + pe.Graphics.FillRectangle(Brushes.Gray, rectO); + pe.Graphics.DrawRect(rectO, Color.Black, 2); + + + + //기어를 그린다. + Point SPT = new Point(30, 10); + int GearSize = 20; + List pts = new List(); + pts.Add(new PointF(SPT.X, SPT.Y)); + pts.Add(new PointF(SPT.X + GearSize, SPT.Y)); + pts.Add(new PointF(SPT.X + GearSize, SPT.Y + GearSize)); + pts.Add(new PointF(SPT.X, SPT.Y + GearSize)); + pts.Add(pts[0]); + + var CenterPT = new PointF((pts[1].X - pts[0].X) / 2.0f + pts[0].X, (pts[2].Y - pts[0].Y) / 2.0f + pts[0].Y); + + + var anglepts = GetAnglePonit(pts.ToArray(), PointF.Empty, 1); + + var degree = 4; + var rad = degree * (Math.PI / 180); + + // pe.Graphics.DrawPolygon(Pens.Blue, anglepts.ToArray()); + + + //pe.Graphics.DrawLine(Pens.Red, CenterPT.X - 10, CenterPT.Y, CenterPT.X + 10, CenterPT.Y); + //pe.Graphics.DrawLine(Pens.Red, CenterPT.X, CenterPT.Y - 10, CenterPT.X, CenterPT.Y + 10); + + if (string.IsNullOrEmpty(Text) == false) + { + pe.Graphics.DrawString(Text , + this.Font, + Brushes.Black, + rectO, + new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + } + anim += 1; + } + + List GetAnglePonit(PointF[] array, PointF cpt, double degree) + { + if (degree > 360) + { + var mok = (int)(degree / 360.0); + degree = degree - (360 * mok); + if (degree > 180) degree *= -1; + } + var rad = degree * (Math.PI / 180); + var retval = new List(); + + var x = array[0].X;// (Math.Cos(rad) * (CPT.X - array[0].X)) + (-Math.Sin(rad) * (CPT.Y - array[0].Y)); + var y = array[0].Y;// (Math.Sin(rad) * (CPT.X - array[0].X)) + (Math.Cos(rad) * (CPT.Y - array[0].Y)); + + + foreach (var p in array) + { + //변환해서 넣어줘야함 + var x1 = (p.X - cpt.X) * Math.Cos(rad) - (p.Y - cpt.Y) * Math.Sign(rad) + cpt.X; + var y1 = (p.X - cpt.X) * Math.Sign(rad) + (p.Y - cpt.Y) * Math.Cos(rad) + cpt.Y; + retval.Add(new PointF((float)(x1), (float)(y1))); + } + return retval; + } + } +} diff --git a/Handler/Project_form2/UIControl/CtlMotor.resx b/Handler/Project_form2/UIControl/CtlMotor.resx new file mode 100644 index 0000000..e5858cc --- /dev/null +++ b/Handler/Project_form2/UIControl/CtlMotor.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + False + + \ No newline at end of file diff --git a/Handler/Project_form2/UIControl/CtlSensor.Designer.cs b/Handler/Project_form2/UIControl/CtlSensor.Designer.cs new file mode 100644 index 0000000..1842104 --- /dev/null +++ b/Handler/Project_form2/UIControl/CtlSensor.Designer.cs @@ -0,0 +1,36 @@ +namespace UIControl +{ + partial class CtlSensor + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 구성 요소 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + } + + #endregion + } +} diff --git a/Handler/Project_form2/UIControl/CtlSensor.cs b/Handler/Project_form2/UIControl/CtlSensor.cs new file mode 100644 index 0000000..6c9f7fa --- /dev/null +++ b/Handler/Project_form2/UIControl/CtlSensor.cs @@ -0,0 +1,88 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace UIControl +{ + public partial class CtlSensor : CtlBase + { + + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] + public PinInfo arPin { get { return PinList[0]; } set { PinList[0] = value; } } + + Font font_ = new Font("맑은 고딕", 10); + + [Browsable(true)] + public new Font Font { get { return font_; } set { font_ = value; this.Invalidate(); } } + + public Boolean RectShape { get; set; } + public Color ColorOn { get; set; } + public Color ColorOff { get; set; } + + public CtlSensor() + { + InitializeComponent(); + + SetPinCount(1); + + //this.MaximumSize = new Size(80, 80); + this.MinimumSize = new Size(4, 4); + this.ColorOn = Color.Lime; + this.ColorOff = Color.DimGray; + //if (this.Font == null) this.Font = new Font("맑은 고딕", 10); + //if (this.Text == null) this.Text = string.Empty; + + } + + public override void MakeRect() + { + + } + public override void UpdateValue() + { + + } + protected override void OnPaint(PaintEventArgs pe) + { + base.OnPaint(pe); + pe.Graphics.DrawRectangle(Pens.Gray, DisplayRectangle.Left, DisplayRectangle.Top, DisplayRectangle.Width - 1, DisplayRectangle.Height - 1); + + + var baseRect = new Rectangle(DisplayRectangle.Left + Padding.Left, + DisplayRectangle.Top + Padding.Top, + DisplayRectangle.Width - Padding.Left - Padding.Right, + DisplayRectangle.Height - Padding.Top - Padding.Bottom); + + + var rect = new Rectangle(baseRect.Left + 1, baseRect.Top + 1, baseRect.Width - 2, baseRect.Height - 2); + + if (RectShape) + { + if (arPin.Value) pe.Graphics.FillRectangle(new SolidBrush(ColorOn), rect); + else pe.Graphics.FillRectangle(new SolidBrush(ColorOff), rect); + pe.Graphics.DrawRectangle(Pens.Black, rect); + } + else + { + if (arPin.Value) pe.Graphics.FillEllipse(new SolidBrush(ColorOn), rect); + else pe.Graphics.FillEllipse(new SolidBrush(ColorOff), rect); + pe.Graphics.DrawEllipse(Pens.Black, rect); + } + + + if (string.IsNullOrEmpty(Text) == false) + { + pe.Graphics.DrawString(Text, + this.Font, + Brushes.Black, + baseRect, + new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + } + } + } +} diff --git a/Handler/Project_form2/UIControl/CtlTowerLamp.Designer.cs b/Handler/Project_form2/UIControl/CtlTowerLamp.Designer.cs new file mode 100644 index 0000000..fd66bf9 --- /dev/null +++ b/Handler/Project_form2/UIControl/CtlTowerLamp.Designer.cs @@ -0,0 +1,36 @@ +namespace UIControl +{ + partial class CtlTowerLamp + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 구성 요소 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + } + + #endregion + } +} diff --git a/Handler/Project_form2/UIControl/CtlTowerLamp.cs b/Handler/Project_form2/UIControl/CtlTowerLamp.cs new file mode 100644 index 0000000..5743cb3 --- /dev/null +++ b/Handler/Project_form2/UIControl/CtlTowerLamp.cs @@ -0,0 +1,125 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace UIControl +{ + public partial class CtlTowerLamp : CtlBase + { + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] + public PinInfo arPinRed { get { return PinList[0]; } set { PinList[0] = value; } } + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] + public PinInfo arPinYel { get { return PinList[1]; } set { PinList[1] = value; } } + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] + public PinInfo arPinGrn { get { return PinList[2]; } set { PinList[2] = value; } } + [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] + public PinInfo arPinBuz { get { return PinList[3]; } set { PinList[3] = value; } } + + + + public CtlTowerLamp() + { + InitializeComponent(); + + SetPinCount(4); + this.MinimumSize = new Size(4, 4); + } + + public override void MakeRect() + { + + } + public override void UpdateValue() + { + + } + protected override void OnPaint(PaintEventArgs pe) + { + base.OnPaint(pe); + pe.Graphics.DrawRectangle(Pens.Gray, DisplayRectangle.Left, DisplayRectangle.Top, DisplayRectangle.Width - 1, DisplayRectangle.Height - 1); + + var baseRect = new Rectangle(DisplayRectangle.Left + Padding.Left, + DisplayRectangle.Top + Padding.Top, + DisplayRectangle.Width - Padding.Left - Padding.Right, + DisplayRectangle.Height - Padding.Top - Padding.Bottom); + + + //상위 80% 영역을 표시영역으로 사용한ㄷ + var term = 3; + var DispRect = new Rectangle(baseRect.Left, baseRect.Top, baseRect.Width, (int)(baseRect.Height * 0.8f)); + var LampHeight = arPinBuz.PinIndex == -1 ? (DispRect.Height - 3 * term) / 3.0f : (DispRect.Height - 4 * term) / 4.0f; + + var rectR = new RectangleF(DispRect.Left, DispRect.Top + term, DispRect.Width, LampHeight); + var rectY = new RectangleF(DispRect.Left, rectR.Bottom + term, DispRect.Width, LampHeight); + var rectG = new RectangleF(DispRect.Left, rectY.Bottom + term, DispRect.Width, LampHeight); + var rectB = RectangleF.Empty; + if (arPinBuz.PinIndex != -1) + { + rectB = new RectangleF(DispRect.Left, rectG.Bottom + term, DispRect.Width, LampHeight); + } + + var rectCT = new RectangleF(DispRect.Left + (DispRect.Width - 20) / 2.0f, DispRect.Top, 20, baseRect.Height); + pe.Graphics.FillRectangle(Brushes.DimGray, rectCT); + pe.Graphics.DrawRectangle(Pens.Black, rectCT); + + if(this.PinList[0].Value) + pe.Graphics.FillRectangle(Brushes.Red, rectR); + else + pe.Graphics.FillRectangle(Brushes.Gray, rectR); + + if (this.PinList[1].Value) + pe.Graphics.FillRectangle(Brushes.Gold, rectY); + else + pe.Graphics.FillRectangle(Brushes.Gray, rectY); + + if (this.PinList[2].Value) + pe.Graphics.FillRectangle(Brushes.Green, rectG); + else + pe.Graphics.FillRectangle(Brushes.Gray, rectG); + + pe.Graphics.DrawRectangle(Pens.Black, rectR); + pe.Graphics.DrawRectangle(Pens.Black, rectY); + pe.Graphics.DrawRectangle(Pens.Black, rectG); + + pe.Graphics.DrawString("RED", + this.Font, + Brushes.Black, + rectR, + new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + + pe.Graphics.DrawString("YEL", + this.Font, + Brushes.Black, + rectY, + new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + + pe.Graphics.DrawString("GRN", + this.Font, + Brushes.Black, + rectG, + new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + + if (rectB.IsEmpty == false) + { + if (this.PinList[3].Value) + pe.Graphics.FillRectangle(Brushes.Magenta, rectB); + else + pe.Graphics.FillRectangle(Brushes.Gray, rectB); + + pe.Graphics.DrawRectangle(Pens.Black, rectB); + + pe.Graphics.DrawString("BUZ", + this.Font, + Brushes.Black, + rectB, + new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + } + + } + } +} diff --git a/Handler/Project_form2/Util.cs b/Handler/Project_form2/Util.cs new file mode 100644 index 0000000..3341538 --- /dev/null +++ b/Handler/Project_form2/Util.cs @@ -0,0 +1,614 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Net; +using System.Runtime.Serialization.Formatters.Binary; +using System.Text; +using System.Windows.Forms; + +namespace Project +{ + + public static class Util + { + + + + public static Boolean TouchKeyShow(TextBox tb,string title) + { + //입력창 표시 + var f = new Dialog.fTouchKeyFull(title, tb.Text); + if (f.ShowDialog() == DialogResult.OK) + { + tb.Text = f.tbInput.Text; + tb.Focus(); + tb.SelectAll(); + return true; + } + else return false; + } + + #region "MessageBox" + public static void MsgI(string m, Boolean legacy = false) + { + + if (legacy) + MessageBox.Show(m, "확인", MessageBoxButtons.OK, MessageBoxIcon.Information); + else + { + var f = new fMsgQuestion("알림\n" + m, "확인", ""); + f.lbTitle.BackColor = Color.DeepSkyBlue; + f.lbTitle.BackColor2 = Color.DodgerBlue; + f.EnableUserClose = true; + f.DialogMode = true; + f.ShowDialog(); + } + } + public static void MsgE(string m, Boolean legacy = false) + { + if (legacy) + { + MessageBox.Show(m, "오류", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + else + { + var f = new fMsgQuestion("오류 알림\n" + m, "확인", ""); + f.lbTitle.BackColor = Color.Red; + f.lbTitle.BackColor2 = Color.Red; + f.EnableUserClose = true; + f.DialogMode = true; + f.ShowDialog(); + } + } + public static DialogResult MsgQ(string m, string btOK = "확인", string btCancel = "아니오") + { + var f = new fMsgQuestion("선택 알림\n" + m, btOK, btCancel); + f.lbTitle.BackColor = Color.DeepSkyBlue; + f.lbTitle.BackColor2 = Color.DodgerBlue; + f.EnableUserClose = true; + f.DialogMode = true; + var dlg = f.ShowDialog(); + return dlg; + } + + #endregion + + public static string JobListToFile(Class.CHistoryJOB data, string jobdate, string jobseq, out int cnt) + { + cnt = 0; + if (string.IsNullOrEmpty(jobdate)) return string.Empty; + //이미저장된 목록을 가져오고 중복된것은 피한다 + var preSavedFile = System.IO.Path.Combine(Pub.setting.Path_Data, "JobData", jobdate.Substring(0, 6), jobdate + "-" + jobseq + ".txt"); + List preList = new List(); + if (System.IO.File.Exists(preSavedFile)) preList.AddRange(System.IO.File.ReadAllLines(preSavedFile, System.Text.Encoding.UTF8)); + + //Temp + var fiName = System.IO.Path.Combine(Pub.setting.Path_Data, "UploadTemp", jobdate + "_" + jobseq + ".tab"); + var fi = new System.IO.FileInfo(fiName); + if (fi.Directory.Exists == false) fi.Directory.Create(); + var sb = new System.Text.StringBuilder(); + + sb.AppendLine("#Time\tSID\tRID\tRAW"); + var oklist = data.Items.Where(t => t.VisionData.RID.isEmpty() == false).ToArray(); + foreach (var item in oklist) + { + //기존에 전송한 목록에 없어야 한다 + if (item.error == Class.JobData.ErrorCode.None && item.VisionData.RID.isEmpty() == false) + { + sb.AppendLine(string.Format("{0}\t{1}\t{2}\t{3}", + item.JobStart.ToString("yyyy-MM-dd HH:mm:sss"), item.VisionData.SID, item.VisionData.RID, item.VisionData.QROutRaw)); + cnt += 1; + } + } + try + { + System.IO.File.WriteAllText(fi.FullName, sb.ToString(), System.Text.Encoding.UTF8); + return fi.FullName; + } + catch (Exception ex) + { + Pub.log.AddE("JobListToFile:" + ex.Message); + return string.Empty; + } + } + + public static bool SendMail(string seqdate, string seqno) + { + Chilkat.MailMan mailman = new Chilkat.MailMan(); + bool success = mailman.UnlockComponent("BLUPRT.CBX012020_rzDFf7pQAsCS"); + if (success != true) + { + Debug.WriteLine(mailman.LastErrorText); + return false; + } + + mailman.SmtpHost = "10.101.10.6"; + + mailman.SmtpPort = 25; + + // Create a new email object + Chilkat.Email email = new Chilkat.Email(); + + var mailform = Pub.mailForm.FirstOrDefault(); + if (mailform == null) + return false; + + + + var subject = mailform.subject.Trim(); + subject = subject.Replace("{seqdate}", seqdate); + subject = subject.Replace("{seqno}", seqno); + + + var buffer = System.IO.File.ReadAllText(Util.CurrentPath + "\\Mailform.html"); + + //시드별집계데이터생성 + System.Text.StringBuilder sbFileSID = new StringBuilder(); + System.Text.StringBuilder sbFileREEL = new StringBuilder(); + sbFileSID.AppendLine(string.Format("NO,SID,작업수량,예정수량,UNIT")); + sbFileREEL.AppendLine(string.Format("NO,SID,REEL,QTY,TIME")); + + // int cntrid = 1; + + System.IO.File.WriteAllText(Util.CurrentPath + "\\result_sidsummary.csv", sbFileSID.ToString(), System.Text.Encoding.Default); + System.IO.File.WriteAllText(Util.CurrentPath + "\\result_reelist.csv", sbFileREEL.ToString(), System.Text.Encoding.Default); + + //메일본문의 내용 치환 + var contents = buffer.Trim(); + contents = contents.Replace("{seqdate}", seqdate); + contents = contents.Replace("{seqno}", seqno); + + email.Subject = subject; + email.SetHtmlBody(contents); + email.From = "ReelSorter"; + email.AddFileAttachment(Util.CurrentPath + "\\result_sidsummary.csv"); + email.AddFileAttachment(Util.CurrentPath + "\\result_reelist.csv"); + + + System.Text.StringBuilder maillist = new StringBuilder(); + foreach (DataSet1.MailRecipientRow r in Pub.mailList.Rows) + { + success = email.AddTo(r.Name, r.Address); + maillist.Append(string.Format("{0}({1})", r.Name, r.Address)); + } + + + success = mailman.SendEmail(email); + if (success != true) + { + Debug.WriteLine(mailman.LastErrorText); + return false; + } + + success = mailman.CloseSmtpConnection(); + if (success != true) + { + Debug.WriteLine("Connection to SMTP server not closed cleanly."); + Pub.log.AddE("메일 발송 실패(" + maillist.ToString() + ")"); + } + + Pub.log.AddI("메일 발송 완료(" + maillist.ToString() + ")"); + return true; + } + + public static T FileDeSerialize(string file) + { + T Retval = default(T); + if (System.IO.File.Exists(file) == false) return Retval; + var xmlSerializer = new BinaryFormatter(); + using (FileStream fs = new FileStream(file, FileMode.Open)) + { + try + { + var value = xmlSerializer.Deserialize(fs); + Retval = (T)Convert.ChangeType(value, typeof(T)); + } + catch (Exception ex) + { + Pub.log.AddE("File DeSerialized Error : " + ex.Message); + } + //Retval = (T)xmlSerializer.Deserialize(fs); + } + return Retval; + } + + + public static void FileSerialize(object data, string file) + { + if (data == null) return; + var xmlSerializer = new BinaryFormatter(); + using (FileStream fs = new FileStream(file, FileMode.Create)) + { + xmlSerializer.Serialize(fs, data); + } + } + + + public static void splitID(string ID, out string ww, out string seq) + { + if (ID.Length < 3) + { + ww = ""; + seq = ""; + } + else + { + try + { + ww = ID.Substring(0, 2);// int.Parse(ID.Substring(0, 2)); + seq = ID.Substring(2);// int.Parse(ID.Substring(2)); + } + catch (Exception ex) + { + Pub.log.AddE("slit id eerr" + ex.Message); + ww = ""; + seq = "-1"; + } + } + } + + + public static void ScreenCaptrue(int _BitmapWidth, int _BitmapHeight, Point ptSouce) + { + try + { + Bitmap bitmap = new Bitmap(_BitmapWidth, _BitmapHeight); + Graphics _graphic = Graphics.FromImage(bitmap); + + _graphic.CopyFromScreen(ptSouce, new Point(0, 0), new Size(_BitmapWidth, _BitmapHeight)); + + string savefile = System.IO.Path.Combine(Util.CurrentPath, "ScreenShot", DateTime.Now.ToString("yyyyMMddHHmmss") + ".png"); + System.IO.FileInfo grpath = new FileInfo(savefile); + if (!grpath.Directory.Exists) grpath.Directory.Create(); + + bitmap.Save(grpath.FullName, System.Drawing.Imaging.ImageFormat.Png); + Util.MsgI("화면 캡쳐 성공\n" + + "위치:" + grpath.Directory.FullName + "\n" + + "파일명: " + grpath.Name); + } + catch (Exception ex) + { + Util.MsgE("화면 캡쳐 실패\n" + ex.Message); + } + } + + + public static void SaveBugReport(string content, string subdirName = "BugReport") + { + try + { + var path = CurrentPath + subdirName; + if (!System.IO.Directory.Exists(path)) System.IO.Directory.CreateDirectory(path); + var file = path + "\\" + DateTime.Now.ToString("yyyyMMdd_HHmmss_fff") + ".txt"; + System.IO.File.WriteAllText(file, content, System.Text.Encoding.UTF8); + } + catch + { + //nothing + } + } + + public static void CopyData(System.Data.DataRow drSrc, System.Data.DataRow drDes) + { + if (drDes == null || drSrc == null) return; + foreach (System.Data.DataColumn col in drSrc.Table.Columns) + { + if (col.ColumnName.ToUpper() == "IDX") continue; + drDes[col.ColumnName] = drSrc[col.ColumnName]; + } + + } + + /// + /// 현재실행중인폴더를 반환합니다. + /// + public static string CurrentPath + { + get + { + return AppDomain.CurrentDomain.BaseDirectory; + } + } + /// + /// 콤마와 줄바꿈등을 제거합니다. + /// + /// + public static string ToCSVString(string src) + { + string retval = src.Replace("\r", "").Replace("\n", "").Replace(",", ""); + return retval; + } + + public static Boolean RunProcess(string file, string arg = "") + { + var fi = new System.IO.FileInfo(file); + if (!fi.Exists) + { + Pub.log.AddE("Run Error : " + file); + return false; + } + System.Diagnostics.Process prc = new System.Diagnostics.Process(); + System.Diagnostics.ProcessStartInfo si = new System.Diagnostics.ProcessStartInfo(file); + si.Arguments = arg; + prc.StartInfo = si; + prc.Start(); + return true; + } + + #region "convert" + public static string RectToStr(Rectangle rect) + { + return string.Format("{0};{1};{2};{3}", rect.X, rect.Y, rect.Width, rect.Height); + } + public static string RectToStr(RectangleF rect) + { + return string.Format("{0};{1};{2};{3}", rect.X, rect.Y, rect.Width, rect.Height); + } + public static string PointToStr(Point pt) + { + return string.Format("{0};{1}", pt.X, pt.Y); + } + public static string PointToStr(PointF pt) + { + return string.Format("{0};{1}", pt.X, pt.Y); + } + public static Rectangle StrToRect(string str) + { + if (str.isEmpty() || str.Split(';').Length != 4) str = "0;0;0;0"; + var roibuf1 = str.Split(';'); + return new System.Drawing.Rectangle( + int.Parse(roibuf1[0]), + int.Parse(roibuf1[1]), + int.Parse(roibuf1[2]), + int.Parse(roibuf1[3])); + } + public static RectangleF StrToRectF(string str) + { + if (str.isEmpty() || str.Split(';').Length != 4) str = "0;0;0;0"; + var roibuf1 = str.Split(';'); + return new System.Drawing.RectangleF( + float.Parse(roibuf1[0]), + float.Parse(roibuf1[1]), + float.Parse(roibuf1[2]), + float.Parse(roibuf1[3])); + } + public static Point StrToPoint(string str) + { + if (str.isEmpty() || str.Split(';').Length != 2) str = "0;0"; + var roibuf1 = str.Split(';'); + return new System.Drawing.Point( + int.Parse(roibuf1[0]), + int.Parse(roibuf1[1])); + } + public static PointF StrToPointF(string str) + { + if (str.isEmpty() || str.Split(';').Length != 2) str = "0;0"; + var roibuf1 = str.Split(';'); + return new System.Drawing.PointF( + float.Parse(roibuf1[0]), + float.Parse(roibuf1[1])); + } + #endregion + + #region "NIC" + + /// + /// 지정된 nic카드가 현재 목록에 존재하는지 확인한다. + /// + /// + public static Boolean ExistNIC(string NICName) + { + if (string.IsNullOrEmpty(NICName)) return false; + foreach (string NetName in NICCardList()) + { + if (NetName.ToLower() == NICName.ToLower()) + { + return true; + } + } + return false; + } + + /// + /// Ehternet Card 를 사용안함으로 설정합니다.(관리자권한필요) + /// + /// + public static Boolean NICDisable(string NICName) + { + //해당 nic 가 현재 목록에 존재하는지 확인한다. + + string cmd = "interface set interface " + NICName + " disable"; + Process prc = new Process(); + ProcessStartInfo si = new ProcessStartInfo("netsh", cmd); + si.WindowStyle = ProcessWindowStyle.Hidden; + prc.StartInfo = si; + prc.Start(); + + ////목록에서 사라질때까지 기다린다. + DateTime SD = DateTime.Now; + Boolean timeout = false; + while ((true)) + { + + bool FindNetwork = false; + foreach (string NetName in NICCardList()) + { + if (NetName == NICName.ToLower()) + { + FindNetwork = true; + break; // TODO: might not be correct. Was : Exit For + } + } + + if (!FindNetwork) + break; // TODO: might not be correct. Was : Exit While + + System.Threading.Thread.Sleep(1000); + TimeSpan ts = DateTime.Now - SD; + if (ts.TotalSeconds > 10) + { + timeout = true; + break; // TODO: might not be correct. Was : Exit While + } + } + return !timeout; + } + + public static List NICCardList() + { + List Retval = new List(); + foreach (System.Net.NetworkInformation.NetworkInterface Net in System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()) + { + if (Net.NetworkInterfaceType == System.Net.NetworkInformation.NetworkInterfaceType.Ethernet) + { + Retval.Add(Net.Name.ToUpper()); + } + } + return Retval; + } + + /// + /// 이더넷카드를 사용함으로 설정합니다. + /// + /// + public static Boolean NICEnable(string NICName) + { + string cmd = "interface set interface " + NICName + " enable"; + System.Diagnostics.Process prc = new System.Diagnostics.Process(); + System.Diagnostics.ProcessStartInfo si = new System.Diagnostics.ProcessStartInfo("netsh", cmd); + si.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; + prc.StartInfo = si; + prc.Start(); + + + ////목록에생길떄까지 대기 + DateTime SD = DateTime.Now; + while ((true)) + { + + bool FindNetwork = false; + foreach (string NetName in NICCardList()) + { + if (NetName.ToLower() == NICName.ToLower()) + { + FindNetwork = true; + break; // TODO: might not be correct. Was : Exit For + } + } + + if (FindNetwork) + break; // TODO: might not be correct. Was : Exit While + + System.Threading.Thread.Sleep(1000); + TimeSpan ts = DateTime.Now - SD; + if (ts.TotalSeconds > 10) + { + return false; + } + } + + ////결이 완료될떄까지 기다린다. + SD = DateTime.Now; + while ((true)) + { + + bool FindNetwork = false; + foreach (System.Net.NetworkInformation.NetworkInterface Net in System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()) + { + if (Net.NetworkInterfaceType != System.Net.NetworkInformation.NetworkInterfaceType.GigabitEthernet && + Net.NetworkInterfaceType != System.Net.NetworkInformation.NetworkInterfaceType.Ethernet) continue; + if (Net.Name.ToLower() == NICName.ToLower()) + { + //string data = Net.GetIPProperties().GatewayAddresses[0].ToString(); + + if (Net.OperationalStatus == System.Net.NetworkInformation.OperationalStatus.Up) + { + + FindNetwork = true; + break; // TODO: might not be correct. Was : Exit For + } + } + } + if (FindNetwork) + return true; + + System.Threading.Thread.Sleep(1000); + TimeSpan ts = DateTime.Now - SD; + if (ts.TotalSeconds > 10) + { + return false; + } + } + + } + + #endregion + + public static void RunExplorer(string arg) + { + System.Diagnostics.ProcessStartInfo si = new ProcessStartInfo("explorer"); + si.Arguments = arg; + System.Diagnostics.Process.Start(si); + } + + #region "watchdog" + public static void WatchDog_Run() + { + System.IO.FileInfo fi = new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "WatchCat.exe"); + if (!fi.Exists) return; + var Exist = CheckExistProcess("watchcat"); + if (Exist != null) return; + RunProcess(fi.FullName); + } + + public static System.Diagnostics.Process CheckExistProcess(string ProcessName) + { + foreach (var prc in System.Diagnostics.Process.GetProcesses()) + { + if (prc.ProcessName.StartsWith("svchost")) continue; + if (prc.ProcessName.ToUpper() == ProcessName.ToUpper()) return prc; + } + return null; + } + #endregion + + + #region "web function" + /// + /// URL로부터 문자열을 수신합니다. + /// + /// + /// + /// + public static string GetStrfromurl(string url, out Boolean isError) + { + isError = false; + string result = ""; + try + { + HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(url)); + request.Timeout = 60000; + request.ReadWriteTimeout = 60000; + + request.MaximumAutomaticRedirections = 4; + request.MaximumResponseHeadersLength = 4; + request.Credentials = CredentialCache.DefaultCredentials; + var response = request.GetResponse() as HttpWebResponse; + var txtReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8); + result = txtReader.ReadToEnd(); + } + catch (Exception ex) + { + isError = true; + result = ex.Message.ToString(); + } + return result; + } + + #endregion + + } +} diff --git a/Handler/Project_form2/Util/Util_DO.cs b/Handler/Project_form2/Util/Util_DO.cs new file mode 100644 index 0000000..e1cae14 --- /dev/null +++ b/Handler/Project_form2/Util/Util_DO.cs @@ -0,0 +1,673 @@ +/* + * Created by SharpDevelop. + * User: amkor + * Date: 5/16/2018 + * Time: 3:08 PM + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections; + +namespace Project +{ + + public static partial class Util_DO + { + public static Boolean isEmergencyOn() + { + //둘중 하나라도 켜져있드면 비상 상태이다 + var b1 = GetIOInput(eDIName.BUT_EMGF); + return b1; + //BitArray ba1 = new BitArray(8); + //ba1.Set(0, GetIOInput(eDIName.BUT_EMG1)); + //ba1.Set(1, GetIOInput(eDIName.BUT_EMG2)); + //ba1.Set(2, GetIOInput(eDIName.BUT_EMG3)); + //ba1.Set(3, GetIOInput(eDIName.BUT_EMG4)); + //return ba1.ValueI(); + } + + /// + /// 감지센서확인 + /// + /// + public static int isVacOKL() + { + var cnt = 0; + if (GetIOOutput(eDOName.PICK_VAC1)) cnt += 1; + if (GetIOOutput(eDOName.PICK_VAC2)) cnt += 1; + if (GetIOOutput(eDOName.PICK_VAC3)) cnt += 1; + if (GetIOOutput(eDOName.PICK_VAC4)) cnt += 1; + return cnt; + } + + /// + /// 포트에 장작된 카트의 크기를 반환합니다. 없는경우 0, 7,13 입니다. + /// + /// Port Index(left=0, Center=1, Right=2) + /// + public static eCartSize getCartSize(int idx) + { + var s07 = false; + var s13 = false; + if (idx == 0) + { + s07 = Util_DO.GetIOInput(eDIName.PORT0_SIZE_07); + s13 = Util_DO.GetIOInput(eDIName.PORT0_SIZE_13); + } + else if (idx == 1) + { + s07 = Util_DO.GetIOInput(eDIName.PORT1_SIZE_07); + s13 = Util_DO.GetIOInput(eDIName.PORT1_SIZE_13); + } + else + { + s07 = Util_DO.GetIOInput(eDIName.PORT2_SIZE_07); + s13 = Util_DO.GetIOInput(eDIName.PORT2_SIZE_13); + } + if (s07 == false && s13 == false) return eCartSize.None; + else if (s13 == true) return eCartSize.Inch13; + else return eCartSize.Inch7; + } + + public static string getPinDescription(eDIName pin) + { + if (pin == eDIName.L_PICK_VAC) return "(좌) 프린트 용지 감지 센서"; + else if (pin == eDIName.R_PICK_VAC) return "(우) 프린트 용지 감지 센서"; + else if (pin == eDIName.R_PICK_BW) return "(우) 부착실린더 후진 감지 센서"; + else if (pin == eDIName.R_PICK_FW) return "(우) 부착실린더 전진 감지 센서"; + else if (pin == eDIName.L_PICK_BW) return "(좌) 부착실린더 후진 감지 센서"; + else if (pin == eDIName.L_PICK_FW) return "(좌) 부착실린더 전진 감지 센서"; + else if (pin == eDIName.AIR_DETECT) return "AIR 감지 센서"; + else return pin.ToString(); + } + public static string getPinDescription(eDOName pin) + { + if (pin == eDOName.SOL_AIR) return "AIR 공급 출력"; + else if (pin == eDOName.BUZZER) return "BUZZER"; + else if (pin == eDOName.CART_MAG0) return "(좌) 전자석 출력"; + else if (pin == eDOName.CART_MAG1) return "(중앙) 전자석 출력"; + else if (pin == eDOName.CART_MAG2) return "(우) 전자석 출력"; + else if (pin == eDOName.PICK_VAC1) return "피커 진공 출력 #1"; + else if (pin == eDOName.PICK_VAC2) return "피커 진공 출력 #2"; + else if (pin == eDOName.PICK_VAC3) return "피커 진공 출력 #3"; + else if (pin == eDOName.PICK_VAC4) return "피커 진공 출력 #4"; + else if (pin == eDOName.PORT0_MOT_DIR) return "(좌) 포트 방향 출력"; + else if (pin == eDOName.PORT1_MOT_DIR) return "(중앙) 포트 방향 출력"; + else if (pin == eDOName.PORT2_MOT_DIR) return "(우) 포트 방향 출력"; + else if (pin == eDOName.PORT0_MOT_RUN) return "(좌) 포트 동작 출력"; + else if (pin == eDOName.PORT1_MOT_RUN) return "(중앙) 포트 동작 출력"; + else if (pin == eDOName.PORT2_MOT_RUN) return "(우) 포트 동작 출력"; + else if (pin == eDOName.PRINTL_AIRON) return "(좌) 프린트 하단 AIR"; + else if (pin == eDOName.PRINTR_AIRON) return "(우) 프린트 하단 AIR"; + else return pin.ToString(); + } + + /// + /// ADLink I/O Board input status + /// + /// + /// + public static Boolean GetIOInput(eDIName pin) + { + var curValue = Pub.dio.INPUT(GetDINum(pin) - 1); + + //B접점으로 쓸 것들만 반전 시킨다. + if (pin == eDIName.BUT_EMGF) + { + if (Pub.system.ReverseSIG_Emgergency) curValue = !curValue; + } + else if (pin == eDIName.PICKER_SAFE) + { + if (Pub.system.ReverseSIG_PickerSafe) curValue = !curValue; + } + else if (pin == eDIName.BUT_AIRF) + { + if (Pub.system.ReverseSIG_ButtonAir) curValue = !curValue; + } + else if (pin == eDIName.DOORF1 || pin == eDIName.DOORF2 || pin == eDIName.DOORF3) + { + if (Pub.system.ReverseSIG_DoorF) curValue = !curValue; + } + else if (pin == eDIName.DOORR1 || pin == eDIName.DOORR2 || pin == eDIName.DOORR3) + { + if (Pub.system.ReverseSIG_DoorR) curValue = !curValue; + } + else if (pin == eDIName.AIR_DETECT) + { + if (Pub.system.ReverseSIG_AirCheck) curValue = !curValue; + } + else if (pin == eDIName.PORT0_LIM_UP || pin == eDIName.PORT1_LIM_UP || pin == eDIName.PORT2_LIM_UP) + { + if (Pub.system.ReverseSIG_PortLimitUp) curValue = !curValue; + } + else if (pin == eDIName.PORT0_LIM_DN || pin == eDIName.PORT1_LIM_DN || pin == eDIName.PORT2_LIM_DN) + { + if (Pub.system.ReverseSIG_PortLimitDn) curValue = !curValue; + } + else if (pin == eDIName.PORT0_DET_UP) + { + if (Pub.system.ReverseSIG_PortDetect0Up) curValue = !curValue; + } + else if (pin == eDIName.PORT1_DET_UP) + { + if (Pub.system.ReverseSIG_PortDetect1Up) curValue = !curValue; + } + else if (pin == eDIName.PORT2_DET_UP) + { + if (Pub.system.ReverseSIG_PortDetect2Up) curValue = !curValue; + } + return curValue; + } + + /// + /// ADLink I/O Board Output Status + /// + /// + /// + public static Boolean GetIOOutput(eDOName pin) + { + return Pub.dio.OUTPUT(GetDONum(pin) - 1); + } + + /// + /// A/D Link Digital input Pin number + /// + /// + /// + public static int GetDINum(eDIName pin) + { + return (int)pin + 1; + //return Pub.setting.DI[(byte)pin]; + } + + /// + /// adlink digital output in number + /// + /// + /// + public static int GetDONum(eDOName pin) + { + return (int)pin + 1; + //return Pub.setting.DO[(byte)pin]; + + } + + + /// + /// 포트내의 안전센서 여부 + /// + /// + public static Boolean isSaftyDoorF(Boolean RealSensor = false) + { + //모든 포트가 안전해야 전체가 안전한것이다 + return isSaftyDoorF(0, RealSensor) && isSaftyDoorF(1, RealSensor) && isSaftyDoorF(2, RealSensor); + } + + public static Boolean isSaftyDoorF(int idx, Boolean RealSensor) + { + if (idx == 0 && Pub.setting.Disable_safty_F0 == true) return true; + else if (idx == 1 && Pub.setting.Disable_safty_F1 == true) return true; + else if (idx == 2 && Pub.setting.Disable_safty_F2 == true) return true; + + + if (RealSensor == false && idx == 0 && Pub.setting.Disable_safty_F0 == true) return true; + else if (RealSensor == false && idx == 1 && Pub.setting.Disable_safty_F1 == true) return true; + else if (RealSensor == false && idx == 2 && Pub.setting.Disable_safty_F2 == true) return true; + else if (idx == 0 && Util_DO.GetIOInput(eDIName.DOORF1) == false) return true; + else if (idx == 1 && Util_DO.GetIOInput(eDIName.DOORF2) == false) return true; + else if (idx == 2 && Util_DO.GetIOInput(eDIName.DOORF3) == false) return true; + else return false; + } + public static Boolean isSaftyDoorR(Boolean RealSensor = false) + { + //모든 포트가 안전해야 전체가 안전한것이다 + return isSaftyDoorR(0, RealSensor) && isSaftyDoorR(1, RealSensor) && isSaftyDoorR(2, RealSensor); + } + + public static Boolean isSaftyDoorR(int idx, Boolean RealSensor) + { + if (RealSensor == false && idx == 0 && Pub.setting.Disable_safty_R0 == true) return true; + else if (RealSensor == false && idx == 1 && Pub.setting.Disable_safty_R1 == true) return true; + else if (RealSensor == false && idx == 2 && Pub.setting.Disable_safty_R2 == true) return true; + else if (idx == 0 && Util_DO.GetIOInput(eDIName.DOORR1) == false) return true; + else if (idx == 1 && Util_DO.GetIOInput(eDIName.DOORR2) == false) return true; + else if (idx == 2 && Util_DO.GetIOInput(eDIName.DOORR3) == false) return true; + else return false; + } + + private static DateTime RoomLightControlTime = DateTime.Now; + public static Boolean SetRoomLight(Boolean on) + { + if (on == true && Pub.setting.Disable_RoomLight == true) + { + Pub.log.Add("비활성화 됨"); + return true; //200708 + } + + //형광등은 너무 빠른 제어는 하지 않는다 + var ts = DateTime.Now - RoomLightControlTime; + if (ts.TotalMilliseconds < 500) return false; + RoomLightControlTime = DateTime.Now; + return Pub.dio.SetOutput(GetDONum(eDOName.LAMPON1) - 1, on); + } + public static Boolean SetAIR(Boolean ON) + { + if (Pub.dio == null || !Pub.dio.IsInit) return false; + return Pub.dio.SetOutput(GetDONum(eDOName.SOL_AIR) - 1, ON); + + } + public static Boolean SetOutput(eDOName pin, Boolean value) + { + if (Pub.dio == null || !Pub.dio.IsInit) return false; + return Pub.dio.SetOutput((int)pin, value); + } + public static bool GetPortMotorRun(int index) + { + if (Pub.dio == null || !Pub.dio.IsInit) return false; + if (index < 0 || index > 3) throw new Exception("포트번호는 (0~2) 사이로 입력되어야 함"); + + Boolean b1 = false; + + eDOName Pin_Dir = eDOName.PORT0_MOT_RUN; + if (index == 1) Pin_Dir = eDOName.PORT1_MOT_RUN; + else if (index == 2) Pin_Dir = eDOName.PORT2_MOT_RUN; + + //direction을 먼저 전송한다 + b1 = Util_DO.GetIOOutput(Pin_Dir); + return b1; + } + + public static eMotDir GetPortMotorDir(int index) + { + if (Pub.dio == null || !Pub.dio.IsInit) return eMotDir.CW; + if (index < 0 || index > 3) throw new Exception("포트번호는 (0~2) 사이로 입력되어야 함"); + + Boolean b1 = false; + + eDOName Pin_Dir = eDOName.PORT0_MOT_DIR; + if (index == 1) Pin_Dir = eDOName.PORT1_MOT_DIR; + else if (index == 2) Pin_Dir = eDOName.PORT2_MOT_DIR; + + //direction을 먼저 전송한다 + b1 = Util_DO.GetIOOutput(Pin_Dir); + if (b1 == false) return eMotDir.CW; + else return eMotDir.CCW; + } + + public static Boolean SetPortMagnet(int index, Boolean on) + { + if (Pub.dio == null || !Pub.dio.IsInit) return false; + + //기능적용 2100129 + if (on == true) + { + if (index == 0 && Pub.setting.Enable_Magnet0 == false) return true; + if (index == 1 && Pub.setting.Enable_Magnet1 == false) return true; + if (index == 2 && Pub.setting.Enable_Magnet2 == false) return true; + } + + if (index == 0) return Util_DO.SetOutput(eDOName.CART_MAG0, on); + else if (index == 1) return Util_DO.SetOutput(eDOName.CART_MAG1, on); + else return Util_DO.SetOutput(eDOName.CART_MAG2, on); + } + /// + /// CW = Up, CCW = Dn + /// + /// + /// + /// + /// + public static Boolean SetPortMotor(int index, eMotDir Dir, Boolean run, string remark, Boolean smalldown = false) + { + if (Pub.dio == null || !Pub.dio.IsInit) return false; + + //Pub.log.AddI($"포트모터({index}) {(Dir == eMotDir.CW ? "(정)" : "(역)")}방향 : {(run ? "O" : "X")} => {remark}"); + + + Boolean b1, b2; b1 = b2 = false; + + int Pin_Dir, Pin_Run; + eDIName pin_limp, pin_limn; + + if (index == 0) Pin_Dir = (int)eDOName.PORT0_MOT_DIR; + else if (index == 1) Pin_Dir = (int)eDOName.PORT1_MOT_DIR; + else Pin_Dir = (int)eDOName.PORT2_MOT_DIR; + + if (index == 0) Pin_Run = (int)eDOName.PORT0_MOT_RUN; + else if (index == 1) Pin_Run = (int)eDOName.PORT1_MOT_RUN; + else Pin_Run = (int)eDOName.PORT2_MOT_RUN; + + if (index == 0) pin_limp = eDIName.PORT0_LIM_UP; + else if (index == 1) pin_limp = eDIName.PORT1_LIM_UP; + else pin_limp = eDIName.PORT2_LIM_UP; + + if (index == 0) pin_limn = eDIName.PORT0_LIM_DN; + else if (index == 1) pin_limn = eDIName.PORT1_LIM_DN; + else pin_limn = eDIName.PORT2_LIM_DN; + + //direction을 먼저 전송한다 + if (run) + { + + //b2 = Pub.dio.SetOutput(Pin_Dir, Dir != eMotDir.CW); + //System.Threading.Thread.Sleep(5); + + //켜야하는 상황인데.. 리밋이 걸렸다면 처리하지 않는다 + if (Dir == eMotDir.CW && Util_DO.GetIOInput(pin_limp) == true) + { + Pub.log.AddI(string.Format("포트({0})번의 출력을 무시합니다(LIMIT_UP) 방향:{1}", index, Dir)); + b1 = true; + } + else if (Dir == eMotDir.CCW && Util_DO.GetIOInput(pin_limn) == true) + { + Pub.log.AddI(string.Format("포트({0})번의 출력을 무시합니다(LIMIT_DN) 방향:{1}", index, Dir)); + b1 = true; + } + else + { + if (smalldown) + { + if (index == 0) + { + Pub.flag.set(eFlag.PORT0_ENDDOWN, true, remark + ":SETPORT"); + Pub.SetVarTime(eVarTime.PORT0); //내린시간 + } + if (index == 1) + { + Pub.flag.set(eFlag.PORT1_ENDDOWN, true, remark + ":SETPORT"); + Pub.SetVarTime(eVarTime.PORT1); //내린시간 + } + if (index == 2) + { + Pub.flag.set(eFlag.PORT2_ENDDOWN, true, remark + ":SETPORT"); + Pub.SetVarTime(eVarTime.PORT2); //내린시간 + } + Pub.log.AddAT(string.Format("P{0} Small Down Active Dir={1}",index, Dir)); + } + else + { + //다른곳에서 이동을 설정해버리면 sdmall down 기능을 없앤다 -- 210405 + if (index == 0 && Pub.flag.get(eFlag.PORT0_ENDDOWN) == true) + { + Pub.flag.set(eFlag.PORT0_ENDDOWN, false, remark + ":SETPORT"); + Pub.log.AddAT("P0 Small Down Ignore"); + } + if (index == 1 && Pub.flag.get(eFlag.PORT1_ENDDOWN) == true) + { + Pub.flag.set(eFlag.PORT1_ENDDOWN, false, remark + ":SETPORT"); + Pub.log.AddAT("P1 Small Down Ignore"); + } + if (index == 2 && Pub.flag.get(eFlag.PORT2_ENDDOWN) == true) + { + Pub.flag.set(eFlag.PORT2_ENDDOWN, false, remark + ":SETPORT"); + Pub.log.AddAT("P2 Small Down Ignore"); + } + } + + //방향전환을 해야한다면 우선 정지 후 500ms 대기한다 + if (Util_DO.GetPortMotorDir(index) != Dir) + { + //일단 멈춤고 + b1 = Pub.dio.SetOutput(Pin_Run, false); + System.Threading.Thread.Sleep(20); + + //방향전환 ON + b2 = Pub.dio.SetOutput(Pin_Dir, Dir != eMotDir.CW); + System.Threading.Thread.Sleep(20); + + //모터 가동 + b1 = Pub.dio.SetOutput(Pin_Run, run); + System.Threading.Thread.Sleep(20); + } + else + { + //방향전환을 하지 않는 경우 + + //모터 가동 + b2 = true; + b1 = Pub.dio.SetOutput(Pin_Run, run); + System.Threading.Thread.Sleep(20); + } + + //b1 = Pub.dio.SetOutput(Pin_Run, run); + } + } + else + { + //동작을 먼저 끈다 + b1 = Pub.dio.SetOutput(Pin_Run, run); + System.Threading.Thread.Sleep(20); + + //방향핀을 끈다 + b2 = Pub.dio.SetOutput(Pin_Dir, false); + System.Threading.Thread.Sleep(20); + } + + + //System.Threading.Thread.Sleep(5); + return b1 && b2; + } + + + public static Boolean SetPrintLVac(ePrintVac run, bool force) + { + if (Pub.dio == null || !Pub.dio.IsInit) return false; + if (force == false && Pub.setting.Disable_PLVac == true) run = ePrintVac.off; + bool b1, b2; + if (run == ePrintVac.inhalation) + { + //흡기 + b1 = Util_DO.SetOutput(eDOName.PRINTL_VACO, false); + b2 = Util_DO.SetOutput(eDOName.PRINTL_VACI, true); + } + else if (run == ePrintVac.exhaust) + { + //배기 + b1 = Util_DO.SetOutput(eDOName.PRINTL_VACI, false); + b2 = Util_DO.SetOutput(eDOName.PRINTL_VACO, true); + } + else + { + //끄기 + b1 = Util_DO.SetOutput(eDOName.PRINTL_VACO, false); + b2 = Util_DO.SetOutput(eDOName.PRINTL_VACI, false); + } + return b1 && b2; + } + public static Boolean SetPrintRVac(ePrintVac run, bool force) + { + if (Pub.dio == null || !Pub.dio.IsInit) return false; + if (force == false && Pub.setting.Disable_PRVac == true) run = ePrintVac.off; + bool b1, b2; + if (run == ePrintVac.inhalation) + { + //흡기 + b1 = Util_DO.SetOutput(eDOName.PRINTR_VACO, false); + b2 = Util_DO.SetOutput(eDOName.PRINTR_VACI, true); + } + else if (run == ePrintVac.exhaust) + { + //배기 + b1 = Util_DO.SetOutput(eDOName.PRINTR_VACI, false); + b2 = Util_DO.SetOutput(eDOName.PRINTR_VACO, true); + } + else + { + //끄기 + b1 = Util_DO.SetOutput(eDOName.PRINTR_VACO, false); + b2 = Util_DO.SetOutput(eDOName.PRINTR_VACI, false); + } + return b1 && b2; + } + public static Boolean SetPickerVac(Boolean run, Boolean force) + { + if (Pub.dio == null || !Pub.dio.IsInit) return false; + // Pub.log.Add("[F] 진공 : " + run.ToString()); + bool b1, b2, b3, b4; + //if (Pub.setting.Disable_vacum) run = false; + if (run) + { + if (force == true || Pub.setting.Disable_PKVac == false) + { + b1 = Pub.dio.SetOutput((int)eDOName.PICK_VAC1, true); + b2 = Pub.dio.SetOutput((int)eDOName.PICK_VAC2, true); + b3 = Pub.dio.SetOutput((int)eDOName.PICK_VAC3, true); + b4 = Pub.dio.SetOutput((int)eDOName.PICK_VAC4, true); + } + else + { + b1 = b2 = b3 = b4 = true; + } + } + else + { + b1 = Pub.dio.SetOutput((int)eDOName.PICK_VAC1, false); + b2 = Pub.dio.SetOutput((int)eDOName.PICK_VAC2, false); + b3 = Pub.dio.SetOutput((int)eDOName.PICK_VAC3, false); + b4 = Pub.dio.SetOutput((int)eDOName.PICK_VAC4, false); + //if (Pub.flag.get(eFlag.PK_ITEMON) == true) + // Pub.flag.set(eFlag.PK_ITEMON, false, "VACOFF"); + } + return b1 & b2 & b3 & b4; + } + + + #region "Tower Lamp" + + /// + /// 타워램프버튼 작업 + /// + /// + /// + /// + public static void SetTWLamp(Boolean bFront, Boolean r, Boolean g, Boolean y) + { + if (Pub.dio == null || !Pub.dio.IsInit) return; + + if (Util_DO.GetIOOutput(eDOName.TWR_GRNF) != g) Pub.dio.SetOutput(GetDONum(eDOName.TWR_GRNF) - 1, g); + if (Util_DO.GetIOOutput(eDOName.TWR_REDF) != r) Pub.dio.SetOutput(GetDONum(eDOName.TWR_REDF) - 1, r); + if (Util_DO.GetIOOutput(eDOName.TWR_YELF) != y) Pub.dio.SetOutput(GetDONum(eDOName.TWR_YELF) - 1, y); + + if (Pub.flag.get(eFlag.MOVE_PICKER) == true) + { + g = true; + r = true; + if (Util_DO.GetIOOutput(eDOName.BUT_STARTF) != g) Pub.dio.SetOutput(GetDONum(eDOName.BUT_STARTF) - 1, g); + if (Util_DO.GetIOOutput(eDOName.BUT_STOPF) != r) Pub.dio.SetOutput(GetDONum(eDOName.BUT_STOPF) - 1, r); + } + else + { + if (Util_DO.GetIOOutput(eDOName.BUT_STARTF) != g) Pub.dio.SetOutput(GetDONum(eDOName.BUT_STARTF) - 1, g); + if (Util_DO.GetIOOutput(eDOName.BUT_STOPF) != r) Pub.dio.SetOutput(GetDONum(eDOName.BUT_STOPF) - 1, r); + } + + if (Util_DO.GetIOOutput(eDOName.BUT_RESETF) != y) Pub.dio.SetOutput(GetDONum(eDOName.BUT_RESETF) - 1, y); + + + } + + public static Boolean SetTwRed(Boolean ON) + { + if (Pub.dio == null || !Pub.dio.IsInit) return false; + Pub.dio.SetOutput(GetDONum(eDOName.BUT_STOPF) - 1, ON); + return Pub.dio.SetOutput(GetDONum(eDOName.TWR_REDF) - 1, ON); + + } + public static Boolean SetTwYel(Boolean ON) + { + if (Pub.dio == null || !Pub.dio.IsInit) return false; + Pub.dio.SetOutput(GetDONum(eDOName.BUT_RESETF) - 1, ON); + return Pub.dio.SetOutput(GetDONum(eDOName.TWR_YELF) - 1, ON); + + } + public static Boolean SetTwGrn(Boolean ON) + { + if (Pub.dio == null || !Pub.dio.IsInit) return false; + Pub.dio.SetOutput(GetDONum(eDOName.BUT_STARTF) - 1, ON); + return Pub.dio.SetOutput(GetDONum(eDOName.TWR_GRNF) - 1, ON); + } + + #endregion + + public static void ToggleRoomLight() + { + //var current = Util_DO.GetIOOutput(eDOName.ROOM_LIGHT); + //Pub.dio.SetOutput((int)eDOName.ROOM_LIGHT, !current); + } + + public static Boolean SetBuzzer(Boolean ON) + { + if (Pub.dio == null || !Pub.dio.IsInit) return false; + if (ON) + { + Pub.BuzzerTime = DateTime.Now; + if (Pub.setting.Disable_Buzzer == true) return true; //부저기능OFF시 사용 안함 + } + if (ON && Pub.setting.Disable_Buzzer == true) + { + Pub.log.AddAT("buzzer Disabled"); + ON = false; + } + return Pub.dio.SetOutput(GetDONum(eDOName.BUZZER) - 1, ON); + } + public static Boolean SetMotPowerOn(Boolean ON) + { + if (Pub.dio == null || !Pub.dio.IsInit) return false; + + + + var c0 = !Util_DO.GetIOOutput(eDOName.SVR_PWR_0); + var c1 = !Util_DO.GetIOOutput(eDOName.SVR_PWR_1); + var c2 = !Util_DO.GetIOOutput(eDOName.SVR_PWR_2); + var c3 = !Util_DO.GetIOOutput(eDOName.SVR_PWR_3); + var c4 = !Util_DO.GetIOOutput(eDOName.SVR_PWR_4); + var c5 = !Util_DO.GetIOOutput(eDOName.SVR_PWR_5); + var c6 = !Util_DO.GetIOOutput(eDOName.SVR_PWR_6); + + //꺼져잇는 신호가 하나도 없다면 이번에 끄니깐 메세지를 추가하자 + //if (c0 == false && c0 == c1 && c0 == c2 && c0 == c3 && c0 == c4 && c0 == c5 && c0 == c6) + // Console.WriteLine("mot power off"); + + + bool b0, b1, b2, b3, b4, b5, b6; + b0 = b1 = b2 = b3 = b4 = b5 = b6 = true; + + if (c0 != ON) b0 = Pub.dio.SetOutput(GetDONum(eDOName.SVR_PWR_0) - 1, !ON); + if (c1 != ON) b1 = Pub.dio.SetOutput(GetDONum(eDOName.SVR_PWR_1) - 1, !ON); + if (c2 != ON) b2 = Pub.dio.SetOutput(GetDONum(eDOName.SVR_PWR_2) - 1, !ON); + if (c3 != ON) b3 = Pub.dio.SetOutput(GetDONum(eDOName.SVR_PWR_3) - 1, !ON); + if (c4 != ON) b4 = Pub.dio.SetOutput(GetDONum(eDOName.SVR_PWR_4) - 1, !ON); + if (c5 != ON) b5 = Pub.dio.SetOutput(GetDONum(eDOName.SVR_PWR_5) - 1, !ON); + if (c6 != ON) b6 = Pub.dio.SetOutput(GetDONum(eDOName.SVR_PWR_6) - 1, !ON); + + return b0 && b1 && b2 && b3 && b4 && b5 && b6; + } + public static Boolean SetMotEmergency(Boolean ON) + { + //if (ON == true) Console.WriteLine("mot emg on"); + if (Pub.dio == null || !Pub.dio.IsInit) return false; + + var c0 = Util_DO.GetIOOutput(eDOName.SVR_EMG_0); + var c1 = Util_DO.GetIOOutput(eDOName.SVR_EMG_1); + var c2 = Util_DO.GetIOOutput(eDOName.SVR_EMG_2); + var c3 = Util_DO.GetIOOutput(eDOName.SVR_EMG_3); + var c4 = Util_DO.GetIOOutput(eDOName.SVR_EMG_4); + var c5 = Util_DO.GetIOOutput(eDOName.SVR_EMG_5); + var c6 = Util_DO.GetIOOutput(eDOName.SVR_EMG_6); + + bool b0, b1, b2, b3, b4, b5, b6; + b0 = b1 = b2 = b3 = b4 = b5 = b6 = ON; + + if (c0 != ON) b0 = Pub.dio.SetOutput(GetDONum(eDOName.SVR_EMG_0) - 1, ON); + if (c1 != ON) b1 = Pub.dio.SetOutput(GetDONum(eDOName.SVR_EMG_1) - 1, ON); + if (c2 != ON) b2 = Pub.dio.SetOutput(GetDONum(eDOName.SVR_EMG_2) - 1, ON); + if (c3 != ON) b3 = Pub.dio.SetOutput(GetDONum(eDOName.SVR_EMG_3) - 1, ON); + if (c4 != ON) b4 = Pub.dio.SetOutput(GetDONum(eDOName.SVR_EMG_4) - 1, ON); + if (c5 != ON) b5 = Pub.dio.SetOutput(GetDONum(eDOName.SVR_EMG_5) - 1, ON); + if (c6 != ON) b6 = Pub.dio.SetOutput(GetDONum(eDOName.SVR_EMG_6) - 1, ON); + return b0 && b1 && b2 && b3 && b4 && b5 && b6; + } + + } +} diff --git a/Handler/Project_form2/Util/Util_Mot.cs b/Handler/Project_form2/Util/Util_Mot.cs new file mode 100644 index 0000000..373bb58 --- /dev/null +++ b/Handler/Project_form2/Util/Util_Mot.cs @@ -0,0 +1,451 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Project +{ + public struct sPositionData + { + public double position; + public double acc; + public double dcc; + public double speed; + public Boolean isError; + public string message; + public void Clear() + { + position = 0; + acc = 0; + dcc = 0; + speed = 0; + isError = true; + message = "Not Set"; + } + } + public static partial class Util_Mot + { + + #region "Get Axis Position" + + public static sPositionData GetAxPXPos(eAxisPXPos pos) { return GetAxPos(eAxis.X_PICKER, (int)pos); } + public static sPositionData GetAxPZPos(eAxisPZPos pos) { return GetAxPos(eAxis.Z_PICKER, (int)pos); } + + public static sPositionData GetAxPLMPos(eAxisPLMovePos pos) { return GetAxPos(eAxis.PL_MOVE, (int)pos); } + public static sPositionData GetAxPLZPos(eAxisPLUPDNPos pos) { return GetAxPos(eAxis.PL_UPDN, (int)pos); } + + public static sPositionData GetAxPRMPos(eAxisPRMovePos pos) { return GetAxPos(eAxis.PR_MOVE, (int)pos); } + public static sPositionData GetAxPRZPos(eAxisPRUPDNPos pos) { return GetAxPos(eAxis.PR_UPDN, (int)pos); } + + public static sPositionData GetAxPTPos(eAxisPTPos pos) { return GetAxPos(eAxis.Z_THETA, (int)pos); } + + public static sPositionData GetAxPos(eAxis axis, int pos) + { + return GetAxpos((int)axis, pos); + } + public static sPositionData GetAxpos(int axis, int pos) + { + var retval = new sPositionData(); + retval.Clear(); + if (Pub.Result.mModel == null || Pub.Result.mModel.isSet == false) + { + retval.message = "모션 모델이 설정되어 있지 않습니다"; + return retval; + } + var data = Pub.Result.mModel.Position[axis][pos]; + if (data.index == -1) + { + retval.message = string.Format("축:{0})의 위치:{1} 의 값이 존재하지 않습니다", axis, pos);// "모션 모델이 설정되어 있지 않습니다"; + return retval; + } + + retval.position = data.value; + retval.speed = data.speed; + retval.acc = data.acc; + if (data.dcc < 1) retval.dcc = retval.acc; + else retval.dcc = data.dcc; + + //환경설정에서 저속모드로 설정했다면 지정된 속도로만 처리한다 + if (Pub.setting.Enable_SpeedLimit == true) + retval.speed = Math.Min(retval.speed, Pub.setting.LimitSpeed); + + retval.isError = false; + retval.message = string.Empty; + return retval; + } + + #endregion + + #region "Get Position Match" + + + public static Boolean getPositionMatch(eAxisPXPos pos, double offset = 0.1) + { + var posData = GetAxPXPos(pos); + return getPositionMatch(eAxis.X_PICKER, posData.position, offset); + } + + public static Boolean getPositionMatch(eAxisPZPos pos, double offset = 0.1) + { + var posData = GetAxPZPos(pos); + return getPositionMatch(eAxis.Z_PICKER, posData.position, offset); + } + public static Boolean getPositionMatch(eAxisPTPos pos, double offset = 0.1) + { + var posData = GetAxPTPos(pos); + return getPositionMatch(eAxis.Z_THETA, posData.position, offset); + } + + public static Boolean getPositionMatch(eAxisPLMovePos pos, double offset = 0.1) + { + var posData = GetAxPLMPos(pos); + return getPositionMatch(eAxis.PL_MOVE, posData.position, offset); + } + + public static Boolean getPositionMatch(eAxisPLUPDNPos pos, double offset = 0.1) + { + var posData = GetAxPLZPos(pos); + return getPositionMatch(eAxis.PL_UPDN, posData.position, offset); + } + + public static Boolean getPositionMatch(eAxisPRMovePos pos, double offset = 0.1) + { + var posData = GetAxPRMPos(pos); + return getPositionMatch(eAxis.PR_MOVE, posData.position, offset); + } + + public static Boolean getPositionMatch(eAxisPRUPDNPos pos, double offset = 0.1) + { + var posData = GetAxPRZPos(pos); + return getPositionMatch(eAxis.PR_UPDN, posData.position, offset); + } + + #endregion + + #region "Get Position Name" + + public static ePickYPosition GetPKX_PosName(double Pos = -1) + { + //홈을 잡지 않았다면 오류로 처리함\ + //eYPPosition retval = eYPPosition.Unknown; + + var motIndex = (int)eAxis.X_PICKER; + if (Pub.mot.IsInit == false) return ePickYPosition.ERROR; //200213 + if (Pub.mot.isHomeSet[motIndex] == false) return ePickYPosition.ERROR; + if (Pub.Result == null || Pub.Result.isSetmModel == false) return ePickYPosition.ERROR; + + //위치가 입력되지 않았다면 현재 위치를 사용한다 + if (Pos == -1) Pos = Pub.mot.dACTPOS[motIndex]; + + var PosT = 0.0; + + //지정한 위치가 저장된 어느위치에 속해잇느지 확인해서 반환한다 + PosT = Util_Mot.GetAxPXPos(eAxisPXPos.PICKON).position; + if (MatchPosition(Pos, PosT)) return ePickYPosition.PICKON; + + PosT = Util_Mot.GetAxPXPos(eAxisPXPos.PICKOFFR).position; + if (MatchPosition(Pos, PosT)) return ePickYPosition.PICKOFFR; + + PosT = Util_Mot.GetAxPXPos(eAxisPXPos.PICKOFFL).position; + if (MatchPosition(Pos, PosT)) return ePickYPosition.PICKOFFL; + + PosT = Util_Mot.GetAxPXPos(eAxisPXPos.READYL).position; + if (MatchPosition(Pos, PosT)) return ePickYPosition.READYL; + + PosT = Util_Mot.GetAxPXPos(eAxisPXPos.READYR).position; + if (MatchPosition(Pos, PosT)) return ePickYPosition.READYR; + + if (Pub.mot.isLimitN[motIndex]) return ePickYPosition.LIMITN; + else if (Pub.mot.isLimitP[motIndex]) return ePickYPosition.LIMITP; + else if (Pub.mot.isOrg[motIndex]) return ePickYPosition.HOME; + else return ePickYPosition.UNKNOWN; + } + public static ePickZPosition GetPKZ_PosName(double Pos = -1) + { + //홈을 잡지 않았다면 오류로 처리함\ + //eYPPosition retval = eYPPosition.Unknown; + + var motIndex = (int)eAxis.Z_PICKER; + if (Pub.mot.IsInit == false) return ePickZPosition.ERROR; //200213 + if (Pub.mot.isHomeSet[motIndex] == false) return ePickZPosition.ERROR; + if (Pub.Result == null || Pub.Result.isSetmModel == false) return ePickZPosition.ERROR; + + //위치가 입력되지 않았다면 현재 위치를 사용한다 + if (Pos == -1) Pos = Pub.mot.dACTPOS[motIndex]; + + var PosT = 0.0; + + //지정한 위치가 저장된 어느위치에 속해잇느지 확인해서 반환한다 + PosT = Util_Mot.GetAxPZPos(eAxisPZPos.PICKOFFR).position; + if (MatchPosition(Pos, PosT)) return ePickZPosition.PICKOFFR; + + PosT = Util_Mot.GetAxPZPos(eAxisPZPos.PICKOFFL).position; + if (MatchPosition(Pos, PosT)) return ePickZPosition.PICKOFFL; + + PosT = Util_Mot.GetAxPZPos(eAxisPZPos.PICKON).position; + if (MatchPosition(Pos, PosT)) return ePickZPosition.PICKON; + + PosT = Util_Mot.GetAxPZPos(eAxisPZPos.READY).position; + if (MatchPosition(Pos, PosT)) return ePickZPosition.READY; + + if (Pub.mot.isLimitN[motIndex]) return ePickZPosition.LIMITN; + else if (Pub.mot.isLimitP[motIndex]) return ePickZPosition.LIMITP; + else if (Pub.mot.isOrg[motIndex]) return ePickZPosition.HOME; + else return ePickZPosition.UNKNOWN; + } + public static eThetaPosition GetPT_PosName(double Pos = -1) + { + //홈을 잡지 않았다면 오류로 처리함\ + //eYPPosition retval = eYPPosition.Unknown; + + var motIndex = (int)eAxis.Z_THETA; + if (Pub.mot.IsInit == false) return eThetaPosition.ERROR; //200213 + if (Pub.mot.isHomeSet[motIndex] == false) return eThetaPosition.ERROR; + if (Pub.Result == null || Pub.Result.isSetmModel == false) return eThetaPosition.ERROR; + + //위치가 입력되지 않았다면 현재 위치를 사용한다 + if (Pos == -1) Pos = Pub.mot.dACTPOS[motIndex]; + + var PosT = 0.0; + + //지정한 위치가 저장된 어느위치에 속해잇느지 확인해서 반환한다 + PosT = Util_Mot.GetAxPTPos(eAxisPTPos.READY).position; + if (MatchPosition(Pos, PosT)) return eThetaPosition.READY; + + if (Pub.mot.isLimitN[motIndex]) return eThetaPosition.LIMITN; + else if (Pub.mot.isLimitP[motIndex]) return eThetaPosition.LIMITP; + else if (Pub.mot.isOrg[motIndex]) return eThetaPosition.HOME; + else return eThetaPosition.UNKNOWN; + } + + public static ePrintYPosition GetPLM_PosName(double Pos = -1) + { + //홈을 잡지 않았다면 오류로 처리함\ + //eYPPosition retval = eYPPosition.Unknown; + + var motIndex = (int)eAxis.PL_MOVE; + if (Pub.mot.IsInit == false) return ePrintYPosition.ERROR; //200213 + if (Pub.mot.isHomeSet[motIndex] == false) return ePrintYPosition.ERROR; + if (Pub.Result == null || Pub.Result.isSetmModel == false) return ePrintYPosition.ERROR; + + //위치가 입력되지 않았다면 현재 위치를 사용한다 + if (Pos == -1) Pos = Pub.mot.dACTPOS[motIndex]; + + var PosT = 0.0; + + //지정한 위치가 저장된 어느위치에 속해잇느지 확인해서 반환한다 + PosT = Util_Mot.GetAxPLMPos(eAxisPLMovePos.PRINTH07).position; + if (MatchPosition(Pos, PosT)) return ePrintYPosition.PRINTH07; + + PosT = Util_Mot.GetAxPLMPos(eAxisPLMovePos.PRINTH13).position; + if (MatchPosition(Pos, PosT)) return ePrintYPosition.PRINTH13; + + PosT = Util_Mot.GetAxPLMPos(eAxisPLMovePos.PRINTL07).position; + if (MatchPosition(Pos, PosT)) return ePrintYPosition.PRINTL07; + + PosT = Util_Mot.GetAxPLMPos(eAxisPLMovePos.PRINTL13).position; + if (MatchPosition(Pos, PosT)) return ePrintYPosition.PRINTL13; + + PosT = Util_Mot.GetAxPLMPos(eAxisPLMovePos.PRINTM07).position; + if (MatchPosition(Pos, PosT)) return ePrintYPosition.PRINTM07; + + PosT = Util_Mot.GetAxPLMPos(eAxisPLMovePos.PRINTM13).position; + if (MatchPosition(Pos, PosT)) return ePrintYPosition.PRINTM13; + + PosT = Util_Mot.GetAxPLMPos(eAxisPLMovePos.READY).position; + if (MatchPosition(Pos, PosT)) return ePrintYPosition.READY; + + if (Pub.mot.isLimitN[motIndex]) return ePrintYPosition.LIMITN; + else if (Pub.mot.isLimitP[motIndex]) return ePrintYPosition.LIMITP; + else if (Pub.mot.isOrg[motIndex]) return ePrintYPosition.HOME; + else return ePrintYPosition.UNKNOWN; + } + + public static ePrintYPosition GetPRM_PosName(double Pos = -1) + { + //홈을 잡지 않았다면 오류로 처리함\ + //eYPPosition retval = eYPPosition.Unknown; + + var motIndex = (int)eAxis.PR_MOVE; + if (Pub.mot.IsInit == false) return ePrintYPosition.ERROR; //200213 + if (Pub.mot.isHomeSet[motIndex] == false) return ePrintYPosition.ERROR; + if (Pub.Result == null || Pub.Result.isSetmModel == false) return ePrintYPosition.ERROR; + + //위치가 입력되지 않았다면 현재 위치를 사용한다 + if (Pos == -1) Pos = Pub.mot.dACTPOS[motIndex]; + + var PosT = 0.0; + + //지정한 위치가 저장된 어느위치에 속해잇느지 확인해서 반환한다 + PosT = Util_Mot.GetAxPRMPos(eAxisPRMovePos.PRINTH07).position; + if (MatchPosition(Pos, PosT)) return ePrintYPosition.PRINTH07; + + PosT = Util_Mot.GetAxPRMPos(eAxisPRMovePos.PRINTL07).position; + if (MatchPosition(Pos, PosT)) return ePrintYPosition.PRINTL07; + + PosT = Util_Mot.GetAxPRMPos(eAxisPRMovePos.PRINTH13).position; + if (MatchPosition(Pos, PosT)) return ePrintYPosition.PRINTH13; + + PosT = Util_Mot.GetAxPRMPos(eAxisPRMovePos.PRINTL13).position; + if (MatchPosition(Pos, PosT)) return ePrintYPosition.PRINTL13; + + + PosT = Util_Mot.GetAxPRMPos(eAxisPRMovePos.READY).position; + if (MatchPosition(Pos, PosT)) return ePrintYPosition.READY; + + if (Pub.mot.isLimitN[motIndex]) return ePrintYPosition.LIMITN; + else if (Pub.mot.isLimitP[motIndex]) return ePrintYPosition.LIMITP; + else if (Pub.mot.isOrg[motIndex]) return ePrintYPosition.HOME; + else return ePrintYPosition.UNKNOWN; + } + + public static ePrintZPosition GetPLZ_PosName(double Pos = -1) + { + //홈을 잡지 않았다면 오류로 처리함\ + //eYPPosition retval = eYPPosition.Unknown; + + var motIndex = (int)eAxis.PL_UPDN; + if (Pub.mot.IsInit == false) return ePrintZPosition.ERROR; //200213 + if (Pub.mot.isHomeSet[motIndex] == false) return ePrintZPosition.ERROR; + if (Pub.Result == null || Pub.Result.isSetmModel == false) return ePrintZPosition.ERROR; + + //위치가 입력되지 않았다면 현재 위치를 사용한다 + if (Pos == -1) Pos = Pub.mot.dACTPOS[motIndex]; + + var PosT = 0.0; + + //지정한 위치가 저장된 어느위치에 속해잇느지 확인해서 반환한다 + PosT = Util_Mot.GetAxPLZPos(eAxisPLUPDNPos.PICKOFF).position; + if (MatchPosition(Pos, PosT)) return ePrintZPosition.PICKOFF; + + PosT = Util_Mot.GetAxPLZPos(eAxisPLUPDNPos.PICKON).position; + if (MatchPosition(Pos, PosT)) return ePrintZPosition.PICKON; + + PosT = Util_Mot.GetAxPLZPos(eAxisPLUPDNPos.READY).position; + if (MatchPosition(Pos, PosT)) return ePrintZPosition.READY; + + if (Pub.mot.isLimitN[motIndex]) return ePrintZPosition.LIMITN; + else if (Pub.mot.isLimitP[motIndex]) return ePrintZPosition.LIMITP; + else if (Pub.mot.isOrg[motIndex]) return ePrintZPosition.HOME; + else return ePrintZPosition.UNKNOWN; + } + + public static ePrintZPosition GetPRZ_PosName(double Pos = -1) + { + //홈을 잡지 않았다면 오류로 처리함\ + //eYPPosition retval = eYPPosition.Unknown; + + var motIndex = (int)eAxis.PR_UPDN; + if (Pub.mot.IsInit == false) return ePrintZPosition.ERROR; //200213 + if (Pub.mot.isHomeSet[motIndex] == false) return ePrintZPosition.ERROR; + if (Pub.Result == null || Pub.Result.isSetmModel == false) return ePrintZPosition.ERROR; + + //위치가 입력되지 않았다면 현재 위치를 사용한다 + if (Pos == -1) Pos = Pub.mot.dACTPOS[motIndex]; + + var PosT = 0.0; + + //지정한 위치가 저장된 어느위치에 속해잇느지 확인해서 반환한다 + PosT = Util_Mot.GetAxPRZPos(eAxisPRUPDNPos.PICKOFF).position; + if (MatchPosition(Pos, PosT)) return ePrintZPosition.PICKOFF; + + PosT = Util_Mot.GetAxPRZPos(eAxisPRUPDNPos.PICKON).position; + if (MatchPosition(Pos, PosT)) return ePrintZPosition.PICKON; + + PosT = Util_Mot.GetAxPRZPos(eAxisPRUPDNPos.READY).position; + if (MatchPosition(Pos, PosT)) return ePrintZPosition.READY; + + if (Pub.mot.isLimitN[motIndex]) return ePrintZPosition.LIMITN; + else if (Pub.mot.isLimitP[motIndex]) return ePrintZPosition.LIMITP; + else if (Pub.mot.isOrg[motIndex]) return ePrintZPosition.HOME; + else return ePrintZPosition.UNKNOWN; + } + + #endregion + + /// + /// Z-L축이 안전위치에있는가?(Ready 보다 위에있으면 안전위치이다) + /// + /// + public static Boolean isAxisSaftyZone(eAxis axis, int allowoffset = 2) + { + //홈을 잡지 않았다면 오류로 처리함 + var motIndex = (int)axis; + if (Pub.mot.IsInit == false) return false; + if (Pub.mot.isHomeSet[motIndex] == false) return false; + if (Pub.Result == null || Pub.Result.isSetmModel == false) return false; + + sPositionData readypos; + if (axis == eAxis.X_PICKER) + { + //피커는 안전위이가 2개 있다 + readypos = GetAxPXPos(eAxisPXPos.PICKON); + //var readypos1 = GetAxPXPos(eAxisPXPos.ReadyR); + //var offset1 = getPositionOffset(axis, readypos.position); + //var offset2 = getPositionOffset(axis, readypos1.position); + //if (offset1 < allowoffset || offset2 < allowoffset ) return true; //오차가 2미만이라면 안전하다 + //return false; + } + else if (axis == eAxis.Z_PICKER) readypos = GetAxPZPos(eAxisPZPos.READY); + else if (axis == eAxis.Z_THETA) readypos = GetAxPTPos(eAxisPTPos.READY); + else if (axis == eAxis.PL_MOVE) readypos = GetAxPLMPos(eAxisPLMovePos.READY); + else if (axis == eAxis.PR_MOVE) readypos = GetAxPRMPos(eAxisPRMovePos.READY); + else if (axis == eAxis.PR_UPDN) readypos = GetAxPRZPos(eAxisPRUPDNPos.READY); + else if (axis == eAxis.PL_UPDN) readypos = GetAxPLZPos(eAxisPLUPDNPos.READY); + else return false; + + var offset = getPositionOffset(axis, readypos.position); + if (offset < allowoffset) return true; //오차가 2미만이라면 안전하다 + return false; + } + + private static Boolean Home_Validation(eAxis axis, out string errorMessage) + { + Boolean retval = true; + // int axis = (int)axis_; + if (!Move_Validation(axis, out errorMessage)) retval = false; //이동이 불가한 경우 체크 + else if (axis == eAxis.X_PICKER) + { + //Z축 홈이 필요하다 + var zFHome = Pub.mot.isHomeSet[(int)eAxis.Z_PICKER]; + var zRHome = Pub.mot.isHomeSet[(int)eAxis.Z_THETA]; + if (zFHome == false || zRHome == false) + { + //errorMessage = "Z-PICKER,Z-THETA 축 홈이 필요 합니다"; + //retval = false; + } + } + else if (axis == eAxis.PL_MOVE) //Z축의 경우 Y축이 홈으로 된 상태여야 한다. + { + if (Pub.mot.isHomeSet[(int)eAxis.PL_UPDN] == false) + { + errorMessage = "PRINT-L Z 축 홈이 필요 합니다"; + retval = false; + } + } + else if (axis == eAxis.PR_MOVE) //Z축의 경우 Y축이 홈으로 된 상태여야 한다. + { + if (Pub.mot.isHomeSet[(int)eAxis.PR_UPDN] == false) + { + errorMessage = "PRINT-R Z 축 홈이 필요 합니다"; + retval = false; + } + } + return retval; + } + + private static Boolean Move_Validation(eAxis axis, out string errorMessage) + { + errorMessage = string.Empty; + + if (Util_DO.isEmergencyOn() == true) + { + errorMessage = ("비상정지 상태일때에는 움직일 수 없습니다."); + return false; + } + + return true; + } + + } +} diff --git a/Handler/Project_form2/Util/Util_Vision.cs b/Handler/Project_form2/Util/Util_Vision.cs new file mode 100644 index 0000000..dd5d78e --- /dev/null +++ b/Handler/Project_form2/Util/Util_Vision.cs @@ -0,0 +1,486 @@ +//using Emgu.CV; +//using Emgu.CV.CvEnum; +//using Emgu.CV.Structure; +//using Euresys.Open_eVision_2_11; +//using System; +//using System.Collections.Generic; +//using System.Drawing; +//using System.Linq; +//using System.Text; +//using System.Threading.Tasks; + +//namespace Project +//{ +// public static class Util_Vision +// { +// //private static object imageLockObj = new object(); + +// //public struct SCodeData +// //{ +// // public Point[] corner; +// // public string data; +// // public string model; +// // public string version; +// // public string level; +// // public string sid; +// //} + + +// //public static void DisplayQRData(List DataArr, Rectangle roi, arCtl.ImageBox iv) +// //{ +// // iv.ClearShape(); +// // foreach (var item in DataArr) +// // { +// // var p = new PointF[4]; +// // p[0] = new PointF(item.corner[0].X + roi.Left, item.corner[0].Y + roi.Top); +// // p[1] = new PointF(item.corner[1].X + roi.Left, item.corner[1].Y + roi.Top); +// // p[2] = new PointF(item.corner[2].X + roi.Left, item.corner[2].Y + roi.Top); +// // p[3] = new PointF(item.corner[3].X + roi.Left, item.corner[3].Y + roi.Top); + +// // iv.AddShapeLine(p[0], p[1], Color.Gold, false, 5); +// // iv.AddShapeLine(p[1], p[2], Color.Gold, false, 5); +// // iv.AddShapeLine(p[2], p[3], Color.Gold, false, 5); +// // iv.AddShapeLine(p[3], p[0], Color.Gold, false, 5); + +// // if (item.data.isEmpty() == false) +// // { +// // iv.AddShapeText(item.corner[1], item.data, Color.Black, 200); +// // } +// // } +// //} + +// /// +// /// 마스킹이적용된 이미지가 반환됩니다. 마스킹 +// /// +// /// +// /// +// /// +// /// +// /// +// //public static EImageBW8 FindReelOutline(EImageBW8 orgEImage, out string Message, out PointF CenterPX, out float Diameter, arCtl.ImageBox iv = null, eCartSize reelsize = eCartSize.Inch7) +// //{ + +// // EImageBW8 retval = null;// new EImageBW8(orgEImage.Width, orgEImage.Height); //마스킹이적용된 이미지 + +// // Message = string.Empty; +// // CenterPX = PointF.Empty; +// // Diameter = 0; + +// // //EWorldShape EWorldShape1 = new EWorldShape(); // EWorldShape instance +// // ECircleGauge ECircleGauge1 = new ECircleGauge(); // ECircleGauge instance +// // ECircle Circle1 = new ECircle(); // ECircle instance +// // ECircle measuredCircle = null; // ECircle instance +// // iv.ClearShape("OUTLINE"); + +// // try +// // { +// // // EBW8Image1.Load("C:\\temp\\b.bmp"); +// // //ECircleGauge1.Attach(EWorldShape1); +// // ECircleGauge1.Dragable = true; +// // ECircleGauge1.Resizable = true; +// // ECircleGauge1.Rotatable = true; +// // // EWorldShape1.SetSensorSize(3289, 2406); +// // // EWorldShape1.Process(EBW8Image1, true); +// // ECircleGauge1.Thickness = 20; +// // ECircleGauge1.TransitionChoice = ETransitionChoice.NthFromEnd; +// // ECircleGauge1.FilteringThreshold = 3.00f; +// // ECircleGauge1.SetCenterXY(2000f, 1400f); +// // ECircleGauge1.Amplitude = 360f; +// // ECircleGauge1.Tolerance = 500; +// // ECircleGauge1.Diameter = 2200f; +// // ECircleGauge1.Threshold = 20; +// // ECircleGauge1.FilteringThreshold = 3.0f; +// // ECircleGauge1.Measure(orgEImage); +// // measuredCircle = ECircleGauge1.MeasuredCircle; +// // if (measuredCircle.CenterX < 1 && measuredCircle.CenterY < 1) +// // { +// // Message = "outline not found"; +// // if (reelsize != eCartSize.None) +// // { +// // //마스크파일이 존재하면 해당 마스크를 사용한다 +// // var maskfilname = "Mask" + reelsize.ToString() + ".bmp"; +// // var filename = System.IO.Path.Combine(Util.CurrentPath, "Data", maskfilname); +// // if (System.IO.File.Exists(filename)) +// // { +// // var maskimg = new EImageBW8(); // Image(filename); +// // maskimg.Load(filename); +// // retval = new EImageBW8(orgEImage.Width, orgEImage.Height); +// // EasyImage.Oper(EArithmeticLogicOperation.BitwiseAnd, orgEImage, maskimg, retval); +// // } +// // else Pub.log.AddE("마스크파일:" + maskfilname + "이존재하지 않아 사용하지 않습니다"); +// // } +// // } +// // else +// // { +// // retval = new EImageBW8(orgEImage.Width, orgEImage.Height); +// // Diameter = measuredCircle.Diameter; +// // CenterPX = new PointF(measuredCircle.CenterX, measuredCircle.CenterY); + +// // var rect = new RectangleF(CenterPX.X - Diameter / 2.0f, CenterPX.Y - Diameter / 2.0f, Diameter, Diameter); +// // var sh = iv.AddShapePoint(CenterPX.X, CenterPX.Y, 50, Color.Gold); +// // sh.Tag = "OUTLINE"; +// // var shc = iv.AddShapeCircle(rect, Color.Lime, 50); +// // shc.Tag = "OUTLINE"; + +// // //찾은 영역을 제외하고 마스크를 만든다. +// // var dt = DateTime.Now; +// // var maskimg = new Image(orgEImage.Width, orgEImage.Height); +// // maskimg.SetZero(); +// // CvInvoke.Circle(maskimg, new Point((int)measuredCircle.CenterX, (int)measuredCircle.CenterY), (int)(Diameter / 2.0f), new Gray(255).MCvScalar, -1); + +// // //maskimg.Save(@"c:\temp\mask_" + dt.ToString("HHmmss") + ".bmp"); + +// // //마스크와 결합 +// // var orgImage = new Image(orgEImage.Width, orgEImage.Height, orgEImage.RowPitch, orgEImage.GetImagePtr()); +// // { +// // var retimg = new Image(retval.Width, retval.Height, retval.RowPitch, retval.GetImagePtr()); +// // { +// // CvInvoke.BitwiseAnd(orgImage, maskimg, retimg); +// // } +// // } +// // //orgImage.Save(@"c:\temp\type1_src1_" + dt.ToString("HHmmss") + ".bmp"); +// // //maskimg.Save(@"c:\temp\type1_src2_" + dt.ToString("HHmmss") + ".bmp"); +// // //maskedimg.Save(@"c:\temp\type1_dest_" + dt.ToString("HHmmss") + ".bmp"); +// // //iv.AddShapeBox(rect, Color.Tomato).Tag = "OUTLINE"; +// // } +// // } +// // catch (EException ex) +// // { +// // // Insert exception handling code herem +// // Message = ex.Message; +// // } +// // if (iv != null) iv.Invalidate(); +// // return retval; +// //} + + +// //public static PointF GetGainOffset(int idx) +// //{ +// // if (idx == 0) return new PointF(1.0f, 0.0f); +// // else if (idx == 1) return new PointF(1.3f, 0.0f); +// // else if (idx == 2) return new PointF(0.7f, 0.0f); + +// // else if (idx == 3) return new PointF(1.0f, 50.0f); +// // else if (idx == 4) return new PointF(1.0f, -50.0f); + +// // else if (idx == 5) return new PointF(3.0f, 50.0f); //아주어두운이미지용 +// // else if (idx == 6) return new PointF(0.5f, -20.0f); //아주밝은이미지용 + +// // //else if (idx == 7) return new PointF(1.0f, -150.0f); //밝은이미지용 +// // //else if (idx == 8) return new PointF(1.0f, -170.0f); //밝은이미지용 +// // //else if (idx == 9) return new PointF(1.0f, -190.0f); //밝은이미지용 + +// // else return new PointF(1f, 0f); +// //} + +// //private static List GetGainOffsetList(string gainstr) +// //{ +// // var retval = new List(); +// // var list = gainstr.Split(';'); +// // foreach (var item in list) +// // { +// // var ptitem = item.Split(','); +// // if (ptitem.Length == 2) +// // { +// // retval.Add(new System.Drawing.PointF(float.Parse(ptitem[0]), float.Parse(ptitem[1]))); +// // } +// // } +// // return retval; +// //} + +// //public static System.Collections.Generic.List DetectQR_eVision( +// // EImageBW8 EBW8Image4, +// // arCtl.ImageBox iv1, int idx, +// // out string Message, +// // string erodevaluestr = "3,1", +// // string gainoffsetlist = "2,1", +// // uint blob_area_min = 5000, +// // uint blob_area_max = 50000, +// // float blob_sigmaxy = 500f, +// // float blob_sigmayy = 500f, +// // float blob_sigmaxx = 5000f, +// // string maskfile = "", +// // Image DispImage = null +// // ) +// //{ +// // Message = string.Empty; +// // var pts = new System.Collections.Generic.List(); +// // System.Diagnostics.Stopwatch wat = new System.Diagnostics.Stopwatch(); +// // wat.Restart(); + +// // //바코드리더 +// // EQRCodeReader EQRCode1 = new EQRCodeReader(); // EQRCodeReader instance +// // EQRCode1.DetectionMethod = 15; //모든방법으로 데이터를 찾는다 +// // EQRCode1.TimeOut = 1000 * 1000; //timeout (1초) + +// // //Blob 으로 바코드영역을 찾는다 +// // ECodedImage2 codedImage4 = new ECodedImage2(); // ECodedImage2 instance +// // EImageEncoder codedImage4Encoder = new EImageEncoder(); // EImageEncoder instance +// // EObjectSelection codedImage4ObjectSelection = new EObjectSelection(); // +// // codedImage4ObjectSelection.FeretAngle = 0.00f; +// // using (var psegment = codedImage4Encoder.GrayscaleSingleThresholdSegmenter) //.BlackLayerEncoded = true; +// // { +// // psegment.BlackLayerEncoded = true; +// // psegment.WhiteLayerEncoded = false; +// // psegment.Mode = EGrayscaleSingleThreshold.MaxEntropy; +// // } + +// // //침식해서 바코드영역이 뭉치도록 한다. (바코드는 검은색 영역이 된다) +// // List erodevalues = new List(); +// // var erodebuffer = erodevaluestr.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); +// // foreach (var erbuf in erodebuffer) erodevalues.Add(uint.Parse(erbuf)); + +// // //마스크적용 - 210209 +// // if (maskfile.isEmpty() == false && System.IO.File.Exists(maskfile)) +// // { +// // using (var maskmig = new EImageBW8()) +// // { +// // maskmig.Load(maskfile);//이미지불러오지 +// // EasyImage.Oper(EArithmeticLogicOperation.BitwiseAnd, EBW8Image4, maskmig, EBW8Image4); +// // } +// // } + + +// // var GainOffsetList = GetGainOffsetList(gainoffsetlist); +// // uint objectCountT = 0; + +// // for (int maxtype = 0; maxtype < 2; maxtype++) +// // { +// // //침식데이터도 여러개를 사용한다. +// // foreach (var erodevalue in erodevalues) +// // { +// // //인코딩된 이미지가 들어간다 +// // var ErodeImageBW8 = new EImageBW8(EBW8Image4.Width, EBW8Image4.Height); +// // EasyImage.ErodeBox(EBW8Image4, ErodeImageBW8, erodevalue); + + +// // using (var psegment = codedImage4Encoder.GrayscaleSingleThresholdSegmenter) +// // { +// // if (maxtype == 0) +// // psegment.Mode = EGrayscaleSingleThreshold.MinResidue; +// // else if (maxtype == 1) +// // psegment.Mode = EGrayscaleSingleThreshold.MaxEntropy; +// // else if (maxtype == 2) +// // psegment.Mode = EGrayscaleSingleThreshold.IsoData; +// // } + + +// // codedImage4Encoder.Encode(ErodeImageBW8, codedImage4); +// // codedImage4ObjectSelection.Clear(); +// // codedImage4ObjectSelection.AddObjects(codedImage4); +// // codedImage4ObjectSelection.AttachedImage = ErodeImageBW8; + + +// // //너무큰 개체를 제거한다. +// // codedImage4ObjectSelection.RemoveUsingUnsignedIntegerFeature(EFeature.Area, blob_area_min, ESingleThresholdMode.LessEqual); +// // codedImage4ObjectSelection.RemoveUsingUnsignedIntegerFeature(EFeature.Area, blob_area_max, ESingleThresholdMode.GreaterEqual); + +// // //개체제거 +// // codedImage4ObjectSelection.RemoveUsingFloatFeature(EFeature.SigmaXY, blob_sigmaxy, ESingleThresholdMode.GreaterEqual); +// // codedImage4ObjectSelection.RemoveUsingFloatFeature(EFeature.SigmaYY, blob_sigmayy, ESingleThresholdMode.LessEqual); +// // codedImage4ObjectSelection.RemoveUsingFloatFeature(EFeature.SigmaXX, blob_sigmaxx, ESingleThresholdMode.GreaterEqual); + +// // //찾은데이터수량 +// // var objectCount = codedImage4ObjectSelection.ElementCount; +// // objectCountT += objectCount; + +// // //데이터표시 +// // //찾은영역을 표시한다. +// // for (uint i = 0; i < objectCount; i++) +// // { +// // //각 요소를 가져와서 처리한다. +// // var CElement = codedImage4ObjectSelection.GetElement(i); +// // var sigXY = CElement.SigmaXY; +// // var sigYY = CElement.SigmaYY; +// // var rCnt = CElement.RunCount; +// // var rArea = CElement.Area; + +// // var boxW = CElement.BoundingBoxWidth * Pub.setting.RosRectScale; +// // var boxH = CElement.BoundingBoxHeight * Pub.setting.RosRectScale; //좀더크게간다 210209 +// // var boxCX = CElement.BoundingBoxCenterX; +// // var boxCY = CElement.BoundingBoxCenterY; + +// // var boxRate = (boxW * 1.0) / boxH; + +// // var rect = new RectangleF(boxCX - boxW / 2.0f, boxCY - boxH / 2.0f, boxW, boxH); + +// // //외각상자를 표시한다 +// // iv1.AddShapeBox(rect, Color.Tomato, 10); +// // if (DispImage != null) +// // CvInvoke.Rectangle(DispImage, +// // new Rectangle((int)rect.X, (int)rect.Y, (int)rect.Width, (int)rect.Height), +// // new Bgr(Color.Tomato).MCvScalar, 2); + +// // //해당영역을 ROI로 잡고 이미지를 검색한다 +// // var RoiImage = new EROIBW8(); +// // RoiImage.Attach(EBW8Image4); + +// // //ROI로 사용할 영역의 오류를 체크해야한다 +// // var rLeft = (int)rect.Left; +// // var rTop = (int)rect.Top; +// // var rWid = (int)rect.Width; +// // var rHei = (int)rect.Height; + +// // //roi 오류수정 210621 +// // if (rLeft < 2) rLeft = 1; +// // if (rTop < 2) rTop = 1; +// // if (rWid < 10) rWid = 10; +// // if (rHei < 10) rHei = 10; +// // if (rLeft + rWid > EBW8Image4.Width) rWid = EBW8Image4.Width - rLeft - 1; +// // if (rTop + rHei > EBW8Image4.Height) rHei = EBW8Image4.Height - rTop - 1; + +// // var rourect = new Rectangle(rLeft, rTop, rWid, rHei); +// // RoiImage.SetPlacement(rourect.Left, rourect.Top, rourect.Width, rourect.Height); //ROI적용 + +// // var TargetImage = new EImageBW8(RoiImage.Width, RoiImage.Height); + +// // //밝기를 변경해서 처리해야한다 +// // //int processCount = 9; + +// // foreach (var param in GainOffsetList) //원본, gain +-, offset +- 5가지 색상처리함 +// // { + +// // EasyImage.ScaleRotate(RoiImage, 0, 0, 0, 0, 1.0f, 1.0f, 0f, TargetImage); +// // //EasyImage.Copy(RoiImage, TargetImage); + +// // //밝기를 변경해서 사용할 것이므로 해당 변경된 밝기를 저장할 이미지를 생성한다. 210128 +// // //var roiimg = new EImageBW8(TargetImage); +// // //var param = Util_Vision.GetGainOffset(bright); +// // if (param.X != 1.0f || param.Y != 0.0f) EasyImage.GainOffset(TargetImage, TargetImage, param.X, param.Y); +// // //else RoiImage.CopyTo(TargetImage); ;// TargetImage.CopyTo(roiimg); //변경하지 않고 그대로 사용한다 + +// // //적용파일을 모두 저장해준다. +// // //var roifilename = @"c:\temp\roi_" + i.ToString() + "_g" + param.X.ToString() + "_o" + param.Y.ToString() + ".bmp"; +// // //TargetImage.Save(roifilename); + +// // EQRCode1.SearchField = TargetImage; +// // var EQRCode2Result = EQRCode1.Read(); +// // for (int j = 0; j < EQRCode2Result.Length; j++) +// // { +// // var QrData = EQRCode2Result[j]; +// // if (QrData.IsDecodingReliable) +// // { +// // var geo = QrData.Geometry; +// // var pos = geo.Position; +// // var cornous = pos.Corners; + +// // var resultData = new Util_Vision.SCodeData(); + +// // //테두리좌표 읽기 +// // var resultcorns = new List(); +// // for (int k = 0; k < cornous.Length; k++) +// // { +// // var con = cornous[k]; +// // resultcorns.Add(new Point((int)(con.X + rect.X), (int)(con.Y + rect.Y))); +// // con.Dispose(); +// // } +// // resultData.corner = resultcorns.ToArray(); + +// // //데이터읽기 +// // resultData.model = QrData.Model.ToString(); +// // resultData.version = QrData.Version.ToString(); +// // resultData.level = QrData.Level.ToString(); +// // resultData.sid = string.Empty; + +// // //바코드데이터확인 +// // var decodestr = QrData.DecodedStream; +// // resultData.data = string.Empty; +// // foreach (var item in decodestr.DecodedStreamParts) +// // { +// // resultData.data += System.Text.Encoding.Default.GetString(item.DecodedData); +// // item.Dispose(); +// // } + +// // var c = new StdLabelPrint.CAmkorSTDBarcode(resultData.data); +// // if (c.isValid) resultData.sid = c.SID; +// // else resultData.sid = string.Empty; +// // //if (c.isValid) break; +// // //else resultData.data = string.Empty; + +// // //결과데이터 추가 +// // if (resultData.data.isEmpty() == false) +// // { +// // if (pts.Where(t => t.data == resultData.data).Any() == false) +// // { +// // pts.Add(resultData); + +// // //자료가잇다면 표시한다. +// // var dispvalue = resultData.data; +// // if (c.isValid == false) dispvalue += "\n" + c.Message; +// // else if (c.DateError) dispvalue += "\n** Date Error **"; +// // iv1.AddShapeText(resultcorns[1].X, resultcorns[1].Y, dispvalue, (c.isValid ? Color.Yellow : Color.Red), 50); + +// // if (DispImage != null) +// // CvInvoke.PutText(DispImage, +// // dispvalue, +// // new Point(resultcorns[1].X, resultcorns[1].Y), FontFace.HersheyDuplex, 2, +// // new Bgr(Color.Tomato).MCvScalar, 2); + +// // //찾은테두리를 화면에 표시한다. +// // foreach (var pt in resultcorns) +// // { +// // iv1.AddShapePoint(pt, 20f, Color.Lime); +// // if (DispImage != null) +// // { +// // CvInvoke.Line(DispImage, +// // new Point(pt.X - 10, pt.Y - 10), +// // new Point(pt.X + 10, pt.Y + 10), +// // new Bgr(Color.Lime).MCvScalar, 2); + +// // CvInvoke.Line(DispImage, +// // new Point(pt.X + 10, pt.Y - 10), +// // new Point(pt.X - 10, pt.Y + 10), +// // new Bgr(Color.Lime).MCvScalar, 2); +// // } +// // } +// // } +// // } + +// // decodestr.Dispose(); +// // decodestr = null; + +// // cornous = null; +// // pos.Dispose(); +// // geo.Dispose(); +// // } +// // QrData.Dispose(); +// // } + +// // } +// // TargetImage.Dispose(); +// // TargetImage = null; +// // CElement.Dispose(); +// // } + +// // ErodeImageBW8.Dispose(); //침식된 이미지 +// // } + +// // } + + +// // EQRCode1.Dispose(); +// // codedImage4ObjectSelection.Dispose(); //엔코더결과값소거 +// // codedImage4Encoder.Dispose(); //엔코더소거 +// // codedImage4.Dispose(); //코딩된이미지 + +// // wat.Stop(); +// // //iv1.AddShapeText(50, 50, wat.ElapsedMilliseconds.ToString() + "ms", Color.Lime, 50f); +// // var mm = "[" + objectCountT.ToString() + "] " + wat.ElapsedMilliseconds.ToString() + "ms"; +// // var mmpt = new Point(20, 30 + (idx * 140)); +// // iv1.AddShapeText(mmpt.X, mmpt.Y, mm, Color.Lime, 100f); +// // if (DispImage != null) +// // { +// // mmpt.Offset(0, 150); +// // CvInvoke.PutText(DispImage, mm, mmpt, FontFace.HersheyDuplex, 6, new Bgr(Color.Lime).MCvScalar, 4); +// // mmpt.Offset(1100, 0); +// // CvInvoke.PutText(DispImage, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), mmpt, FontFace.HersheyDuplex, 6, new Bgr(Color.Gold).MCvScalar, 4); +// // } + +// // iv1.Invalidate(); +// // return pts; +// //} + + + +// } +//} diff --git a/Handler/Project_form2/Validation/Mot_Move.cs b/Handler/Project_form2/Validation/Mot_Move.cs new file mode 100644 index 0000000..29d0250 --- /dev/null +++ b/Handler/Project_form2/Validation/Mot_Move.cs @@ -0,0 +1,78 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; + +namespace Project +{ + public partial class fMain + { + + + /// + /// 모션 이동명령(MOVE,HOME,JOG)이 시작전에 축 이동여부를 확인하는 이벤트 임 + /// 이동을 하면 안되는 경우 e.valid 를 false 로 설정하면 모션이 이동하지 않습니다 + /// + /// + /// + void mot_AxisMoveValidateCheck(object sender, arDev.AzinAxt.MOT.axisValidationEventArgs e) + { + //DIO가 움직이지 않으면 체크할 필요는 없다 (DIO가 작동안해도 모터는 움직여야 하므로 플래그는 TRUE로 둔다) + if (Pub.dio.IsInit == false || Pub.mot.IsInit == false) return; + + //모든모션의 홈설정이완료된 상태에만 체크한다 + if (Pub.mot.hasHomeSetOff == true) return; + + //모션모델이 설정된 상태에만 체크한다 + if (Pub.Result.isSetmModel == false) return; + + //홈 검색모드에서는 처리하지 않음 + if (Pub.sm.Step == StateMachine.eSMStep.HOME) return; + + //일반대기상태에서는 처리하지 않는다 + if (Pub.sm.Step <= StateMachine.eSMStep.IDLE) return; + + //이동하려는 위치와 현재 위치가 동일하면 처리하지 않는다 + if (e.CurrentPosition == e.TargetPosition) return; + + //각 축별 파일에서 처리한다 + var axis = (eAxis)e.m_nAxis; + if (axis == eAxis.X_PICKER) + { + e.invalidMessage = Validation_MotYP(e); + e.isValid = e.invalidMessage.isEmpty(); + } + else if (axis == eAxis.Z_PICKER) + { + e.invalidMessage = Validation_MotYZ(e); + e.isValid = e.invalidMessage.isEmpty(); + } + else if (axis == eAxis.Z_THETA) + { + e.invalidMessage = Validation_MotYT(e); + e.isValid = e.invalidMessage.isEmpty(); + } + else if (axis == eAxis.PL_MOVE) + { + e.invalidMessage = Validation_MotPLM(e); + e.isValid = e.invalidMessage.isEmpty(); + } + else if (axis == eAxis.PR_MOVE) + { + e.invalidMessage = Validation_MotPRM(e); + e.isValid = e.invalidMessage.isEmpty(); + } + else if (axis == eAxis.PL_UPDN) + { + e.invalidMessage = Validation_MotPLZ(e); + e.isValid = e.invalidMessage.isEmpty(); + } + else if (axis == eAxis.PR_UPDN) + { + e.invalidMessage = Validation_MotPRZ(e); + e.isValid = e.invalidMessage.isEmpty(); + } + } + } +} diff --git a/Handler/Project_form2/Validation/Mot_ZL.cs b/Handler/Project_form2/Validation/Mot_ZL.cs new file mode 100644 index 0000000..e78bb06 --- /dev/null +++ b/Handler/Project_form2/Validation/Mot_ZL.cs @@ -0,0 +1,117 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; + +namespace Project +{ + public partial class fMain + { + string Validation_MotYP(arDev.AzinAxt.MOT.axisValidationEventArgs e) + { + //Z가 내려오는 경우만 체크한다 + //if (e.direction == arDev.AzinAxt.eMotionDirection.Positive && Pub.sm.Step == StateMachine.eSMStep.RUN) + //{ + // var valPickOn = Util_Mot.getPositionMatch(eAxisPYPos.PickOn, 2.0); + // var valPickOfL = Util_Mot.getPositionMatch(eAxisPYPos.PickOffL, 2.0); + // var valPickOfR = Util_Mot.getPositionMatch(eAxisPYPos.PickOffR, 2.0); + + // if(valPickOn || valPickOfL || valPickOfR) + // { + // //해다 위치에 있을때에는 움직이는것이 가능하다 + // } + // else + // { + // return "Z-LEFT 이동 불가(Y축의 위치가 PICK-ON/OFF 위치가 아닙니다:" + e.CurrentPosition.ToString() + "/" + e.TargetPosition.ToString() + ")"; + // } + //} + + return string.Empty; + } + string Validation_MotYZ(arDev.AzinAxt.MOT.axisValidationEventArgs e) + { + //if (e.direction == arDev.AzinAxt.eMotionDirection.Positive && Pub.sm.Step == StateMachine.eSMStep.RUN) + //{ + // var valPickOn = Util_Mot.getPositionMatch(eAxisPYPos.PickOn, 2.0); + // // var valPickOf = Util_Mot.getPositionMatch(eAxisYPPos.PickOff, 2.0); + // if (valPickOn == false) + // { + // return "Z-RIGHT 이동 불가(Y축의 위치가 PICK-ON/OFF 위치가 아닙니다:" + e.CurrentPosition.ToString() + "/" + e.TargetPosition.ToString() + ")"; + // } + //} + return string.Empty; + } + + string Validation_MotYT(arDev.AzinAxt.MOT.axisValidationEventArgs e) + { + //if (e.direction == arDev.AzinAxt.eMotionDirection.Positive && Pub.sm.Step == StateMachine.eSMStep.RUN) + //{ + // var valPickOn = Util_Mot.getPositionMatch(eAxisPYPos.PickOn, 2.0); + // // var valPickOf = Util_Mot.getPositionMatch(eAxisYPPos.PickOff, 2.0); + // if (valPickOn == false) + // { + // return "Z-RIGHT 이동 불가(Y축의 위치가 PICK-ON/OFF 위치가 아닙니다:" + e.CurrentPosition.ToString() + "/" + e.TargetPosition.ToString() + ")"; + // } + //} + return string.Empty; + } + + string Validation_MotPLM(arDev.AzinAxt.MOT.axisValidationEventArgs e) + { + //if (e.direction == arDev.AzinAxt.eMotionDirection.Positive && Pub.sm.Step == StateMachine.eSMStep.RUN) + //{ + // var valPickOn = Util_Mot.getPositionMatch(eAxisPYPos.PickOn, 2.0); + // // var valPickOf = Util_Mot.getPositionMatch(eAxisYPPos.PickOff, 2.0); + // if (valPickOn == false) + // { + // return "Z-RIGHT 이동 불가(Y축의 위치가 PICK-ON/OFF 위치가 아닙니다:" + e.CurrentPosition.ToString() + "/" + e.TargetPosition.ToString() + ")"; + // } + //} + return string.Empty; + } + + string Validation_MotPRM(arDev.AzinAxt.MOT.axisValidationEventArgs e) + { + //if (e.direction == arDev.AzinAxt.eMotionDirection.Positive && Pub.sm.Step == StateMachine.eSMStep.RUN) + //{ + // var valPickOn = Util_Mot.getPositionMatch(eAxisPYPos.PickOn, 2.0); + // // var valPickOf = Util_Mot.getPositionMatch(eAxisYPPos.PickOff, 2.0); + // if (valPickOn == false) + // { + // return "Z-RIGHT 이동 불가(Y축의 위치가 PICK-ON/OFF 위치가 아닙니다:" + e.CurrentPosition.ToString() + "/" + e.TargetPosition.ToString() + ")"; + // } + //} + return string.Empty; + } + + string Validation_MotPLZ(arDev.AzinAxt.MOT.axisValidationEventArgs e) + { + //if (e.direction == arDev.AzinAxt.eMotionDirection.Positive && Pub.sm.Step == StateMachine.eSMStep.RUN) + //{ + // var valPickOn = Util_Mot.getPositionMatch(eAxisPYPos.PickOn, 2.0); + // // var valPickOf = Util_Mot.getPositionMatch(eAxisYPPos.PickOff, 2.0); + // if (valPickOn == false) + // { + // return "Z-RIGHT 이동 불가(Y축의 위치가 PICK-ON/OFF 위치가 아닙니다:" + e.CurrentPosition.ToString() + "/" + e.TargetPosition.ToString() + ")"; + // } + //} + return string.Empty; + } + + string Validation_MotPRZ(arDev.AzinAxt.MOT.axisValidationEventArgs e) + { + //if (e.direction == arDev.AzinAxt.eMotionDirection.Positive && Pub.sm.Step == StateMachine.eSMStep.RUN) + //{ + // var valPickOn = Util_Mot.getPositionMatch(eAxisPYPos.PickOn, 2.0); + // // var valPickOf = Util_Mot.getPositionMatch(eAxisYPPos.PickOff, 2.0); + // if (valPickOn == false) + // { + // return "Z-RIGHT 이동 불가(Y축의 위치가 PICK-ON/OFF 위치가 아닙니다:" + e.CurrentPosition.ToString() + "/" + e.TargetPosition.ToString() + ")"; + // } + //} + return string.Empty; + } + + } +} diff --git a/Handler/Project_form2/app.config b/Handler/Project_form2/app.config new file mode 100644 index 0000000..23b166b --- /dev/null +++ b/Handler/Project_form2/app.config @@ -0,0 +1,143 @@ + + + + +
+ + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + http://k1xip00.amkor.co.kr:50000/XISOAPAdapter/MessageServlet?senderParty=&senderService=eCIM_ATK&receiverParty=&receiverService=&interface=ZK_RFID_TRANS_SEQ&interfaceNamespace=urn%3Asap-com%3Adocument%3Asap%3Arfc%3Afunctions + + + + + + + K9OE1zaaQEPD8jE33YK1vDdDS4JBz1DB + + + 101410653;AG64B3W;SAMSUNG;20000;AG64B3W0031;19000101; + + + Amkor Technology/windows-242f240302c3e50d6cb1686ba2q4k0o9 + + + ^XA~TA000~JSN^LT0^MNW^MTT^PON^PMN^LH0,0^JMA^PR6,6~SD15^JUS^LRN^CI0^XZ +^XA +^MMT +^PW519 +^LL0200 +^LS25 +^FO205,5^GB305,186,4^FS +^FT25,170^BQN,2,4 +^FDLA, +{qrData} +^FS +^FO205,9^GB0,183,4^FS +^FO250,9^GB0,183,4^FS +^FO209,34^GB299,0,4^FS +^FO209,65^GB299,0,4^FS +^FO207,95^GB300,0,4^FS +^FO207,126^GB303,0,4^FS +^FT211,30^A0N,23,24^FDSID^FS +^FT210,59^A0N,23,24^FDLOT^FS +^FT215,91^A0N,23,24^FDPN^FS +^FT212,153^A0N,23,24^FDRID^FS +^FT210,120^A0N,23,24^FDQ'ty^FS +^FT260,31^A0N,23,24^FD +{sid} +^FS +^FT260,60^A0N,23,24^FD +{lot} +^FS +^FT258,93^A0N,27,16^FD +{partnum} +^FS +^FT256,150^A0N,21,19^FD +{rid} +^FS +^FT259,121^A0N,23,24^FD +{qty} +^FS +^FO207,157^GB303,0,4^FS +^FT212,182^A0N,20,19^FDDate^FS +^FT260,183^A0N,23,24^FD +{mfg} +^FS +^PQ1,0,1,Y^XZ + + + ^XA +^MMT +^PW519 +^LL0200 +^LS0 +^FO207,5^GB303,186,4^FS +^FT10,190^BQN,2,4 +^FH\^FDLA,{qrData}^FS +^FO250,8^GB0,183,4^FS +^FO209,29^GB299,0,4^FS +^FO209,56^GB299,0,4^FS +^FO207,81^GB300,0,4^FS +^FO207,108^GB303,0,4^FS +^FT212,27^A0N,20,19^FH\^FDSID^FS +^FT212,52^A0N,20,19^FH\^FDLOT^FS +^FT211,132^A0N,20,19^FH\^FDRID^FS +^FT212,104^A0N,20,19^FH\^FDQ'ty^FS +^FT256,27^A0N,20,19^FH\^FD{sid}^FS +^FT257,53^A0N,20,19^FH\^FD{lot}^FS +^FT257,184^A0N,17,16^FH\^FD{partnum}^FS +^FT258,131^A0N,20,19^FH\^FD{rid}^FS +^FT257,104^A0N,20,19^FH\^FD{qty}^FS +^FO207,162^GB303,0,4^FS +^FO207,135^GB303,0,4^FS +^FT211,158^A0N,20,19^FH\^FDDate^FS +^FT258,158^A0N,20,19^FH\^FD{mfg}^FS +^FT212,183^A0N,17,16^FH\^FDPN#^FS +^FT212,79^A0N,20,19^FH\^FDSPY^FS +^FT256,79^A0N,20,19^FH\^FD{supply}^FS +^PQ1,0,1,Y^XZ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Handler/Project_form2/fMain.Designer.cs b/Handler/Project_form2/fMain.Designer.cs new file mode 100644 index 0000000..393528d --- /dev/null +++ b/Handler/Project_form2/fMain.Designer.cs @@ -0,0 +1,8307 @@ +namespace Project +{ + partial class fMain + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + arCtl.sLogMessageColor sLogMessageColor1 = new arCtl.sLogMessageColor(); + arCtl.sLogMessageColor sLogMessageColor2 = new arCtl.sLogMessageColor(); + arCtl.sLogMessageColor sLogMessageColor3 = new arCtl.sLogMessageColor(); + arCtl.sLogMessageColor sLogMessageColor4 = new arCtl.sLogMessageColor(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = 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 dataGridViewCellStyle4 = 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 dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle(); + UIControl.CPicker cPicker1 = new UIControl.CPicker(); + UIControl.CPicker cPicker2 = new UIControl.CPicker(); + UIControl.CPort cPort1 = new UIControl.CPort(); + UIControl.CPort cPort2 = new UIControl.CPort(); + UIControl.CPort cPort3 = new UIControl.CPort(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fMain)); + this.tmDisplay = new System.Windows.Forms.Timer(this.components); + this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); + this.btSReset = new System.Windows.Forms.Button(); + this.btIOMon = new System.Windows.Forms.Button(); + this.btJob = new System.Windows.Forms.Button(); + this.btMotion = new System.Windows.Forms.Button(); + this.btHistory = new System.Windows.Forms.Button(); + this.btJobCancle = new System.Windows.Forms.Button(); + this.btUserControl = new System.Windows.Forms.Button(); + this.button4 = new System.Windows.Forms.Button(); + this.button3 = new System.Windows.Forms.Button(); + this.arLabel75 = new arCtl.arLabel(); + this.arLabel73 = new arCtl.arLabel(); + this.lbMsgR = new arCtl.arLabel(); + this.arLabel76 = new arCtl.arLabel(); + this.arLabel74 = new arCtl.arLabel(); + this.arLabel11 = new arCtl.arLabel(); + this.arLabel6 = new arCtl.arLabel(); + this.arLabel2 = new arCtl.arLabel(); + this.btStart = new arCtl.arLabel(); + this.btStop = new arCtl.arLabel(); + this.btReset = new arCtl.arLabel(); + this.lbTime = new arCtl.arLabel(); + this.button1 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.systemParameterToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem9 = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem4 = new System.Windows.Forms.ToolStripSeparator(); + this.demoRunToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); + this.panMCState = new System.Windows.Forms.Panel(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.lbMsg = new arCtl.arLabel(); + this.panel3 = new System.Windows.Forms.Panel(); + this.arLabel64 = new arCtl.arLabel(); + this.lbRate = new arCtl.arLabel(); + this.panLog = new System.Windows.Forms.Panel(); + this.logTextBox1 = new arCtl.LogTextBox(); + this.arLabel4 = new arCtl.arLabel(); + this.cmOpenDir = new System.Windows.Forms.ContextMenuStrip(this.components); + this.맵데이터보기ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.저장폴더열기ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.캡처ToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.저장ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.panCenter = new System.Windows.Forms.Panel(); + this.panBottom = new System.Windows.Forms.Panel(); + this.arDatagridView1 = new arCtl.arDatagridView(); + this.sTIMEDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.PTIME = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.JTYPE = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.sIDDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.SID0 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.rIDDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.RID0 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.VNAME = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dvc_loc = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.qTYDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.QTY0 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.MFGDATE = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.VLOT = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.PNO = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.LOC = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.PRNATTACH = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.PRNVALID = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.bs = new System.Windows.Forms.BindingSource(this.components); + this.dataSet1 = new Project.DataSet1(); + this.bn = new System.Windows.Forms.BindingNavigator(this.components); + this.bindingNavigatorCountItem = new System.Windows.Forms.ToolStripLabel(); + this.bindingNavigatorSeparator = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorPositionItem = new System.Windows.Forms.ToolStripTextBox(); + this.bindingNavigatorSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.lbOnline = new System.Windows.Forms.ToolStripLabel(); + this.toolStripLabel1 = new System.Windows.Forms.ToolStripLabel(); + this.panRight = new System.Windows.Forms.Panel(); + this.panel11 = new System.Windows.Forms.Panel(); + this.panel6 = new System.Windows.Forms.Panel(); + this.panel4 = new System.Windows.Forms.Panel(); + this.panCam = new System.Windows.Forms.Panel(); + this.loader1 = new UIControl.Loader(); + this.panLoader = new System.Windows.Forms.Panel(); + this.panVision1 = new System.Windows.Forms.Panel(); + this.panel9 = new System.Windows.Forms.Panel(); + this.panel5 = new System.Windows.Forms.Panel(); + this.sbVisTitle1 = new arCtl.arLabel(); + this.cmCam = new System.Windows.Forms.ContextMenuStrip(this.components); + this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem(); + this.liveViewProcessOnOffToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.zoomFitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.readBarcodeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.livetaskToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator(); + this.keyenceTrigOnToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.keyenceTrigOffToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.keyenceSaveImageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem5 = new System.Windows.Forms.ToolStripSeparator(); + this.lbSize1 = new System.Windows.Forms.Label(); + this.panel62 = new System.Windows.Forms.Panel(); + this.panel63 = new System.Windows.Forms.Panel(); + this.panel64 = new System.Windows.Forms.Panel(); + this.panel65 = new System.Windows.Forms.Panel(); + this.panel66 = new System.Windows.Forms.Panel(); + this.arLabel5 = new arCtl.arLabel(); + this.panel67 = new System.Windows.Forms.Panel(); + this.arLabel60 = new arCtl.arLabel(); + this.panel68 = new System.Windows.Forms.Panel(); + this.arLabel59 = new arCtl.arLabel(); + this.panel69 = new System.Windows.Forms.Panel(); + this.arLabel58 = new arCtl.arLabel(); + this.arLabel61 = new arCtl.arLabel(); + this.panel70 = new System.Windows.Forms.Panel(); + this.arLabel92 = new arCtl.arLabel(); + this.arLabel83 = new arCtl.arLabel(); + this.panel71 = new System.Windows.Forms.Panel(); + this.arLabel87 = new arCtl.arLabel(); + this.arLabel81 = new arCtl.arLabel(); + this.panel72 = new System.Windows.Forms.Panel(); + this.arLabel43 = new arCtl.arLabel(); + this.arLabel40 = new arCtl.arLabel(); + this.panel73 = new System.Windows.Forms.Panel(); + this.arLabel44 = new arCtl.arLabel(); + this.arLabel45 = new arCtl.arLabel(); + this.panel74 = new System.Windows.Forms.Panel(); + this.arLabel63 = new arCtl.arLabel(); + this.arLabel62 = new arCtl.arLabel(); + this.panel75 = new System.Windows.Forms.Panel(); + this.arLabel35 = new arCtl.arLabel(); + this.arLabel36 = new arCtl.arLabel(); + this.panel76 = new System.Windows.Forms.Panel(); + this.arLabel25 = new arCtl.arLabel(); + this.arLabel26 = new arCtl.arLabel(); + this.panel77 = new System.Windows.Forms.Panel(); + this.arLabel30 = new arCtl.arLabel(); + this.arLabel29 = new arCtl.arLabel(); + this.lbMsgC = new arCtl.arLabel(); + this.panel10 = new System.Windows.Forms.Panel(); + this.lbLock1 = new arCtl.arLabel(); + this.panVision2 = new System.Windows.Forms.Panel(); + this.panel7 = new System.Windows.Forms.Panel(); + this.sbVisTitle2 = new arCtl.arLabel(); + this.lbSize2 = new System.Windows.Forms.Label(); + this.panel46 = new System.Windows.Forms.Panel(); + this.panel47 = new System.Windows.Forms.Panel(); + this.arLabel89 = new arCtl.arLabel(); + this.arLabel84 = new arCtl.arLabel(); + this.panel48 = new System.Windows.Forms.Panel(); + this.arLabel56 = new arCtl.arLabel(); + this.arLabel55 = new arCtl.arLabel(); + this.panel49 = new System.Windows.Forms.Panel(); + this.arLabel39 = new arCtl.arLabel(); + this.arLabel54 = new arCtl.arLabel(); + this.panel50 = new System.Windows.Forms.Panel(); + this.arLabel71 = new arCtl.arLabel(); + this.arLabel68 = new arCtl.arLabel(); + this.panel51 = new System.Windows.Forms.Panel(); + this.arLabel34 = new arCtl.arLabel(); + this.arLabel21 = new arCtl.arLabel(); + this.panel52 = new System.Windows.Forms.Panel(); + this.arLabel32 = new arCtl.arLabel(); + this.arLabel22 = new arCtl.arLabel(); + this.panel53 = new System.Windows.Forms.Panel(); + this.arLabel33 = new arCtl.arLabel(); + this.arLabel27 = new arCtl.arLabel(); + this.panel54 = new System.Windows.Forms.Panel(); + this.arLabel93 = new arCtl.arLabel(); + this.arLabel90 = new arCtl.arLabel(); + this.panel55 = new System.Windows.Forms.Panel(); + this.arLabel88 = new arCtl.arLabel(); + this.arLabel82 = new arCtl.arLabel(); + this.panel56 = new System.Windows.Forms.Panel(); + this.arLabel53 = new arCtl.arLabel(); + this.arLabel52 = new arCtl.arLabel(); + this.panel57 = new System.Windows.Forms.Panel(); + this.arLabel51 = new arCtl.arLabel(); + this.arLabel50 = new arCtl.arLabel(); + this.panel58 = new System.Windows.Forms.Panel(); + this.arLabel72 = new arCtl.arLabel(); + this.arLabel66 = new arCtl.arLabel(); + this.panel59 = new System.Windows.Forms.Panel(); + this.arLabel47 = new arCtl.arLabel(); + this.arLabel48 = new arCtl.arLabel(); + this.panel60 = new System.Windows.Forms.Panel(); + this.arLabel37 = new arCtl.arLabel(); + this.arLabel38 = new arCtl.arLabel(); + this.panel61 = new System.Windows.Forms.Panel(); + this.arLabel42 = new arCtl.arLabel(); + this.arLabel41 = new arCtl.arLabel(); + this.panel37 = new System.Windows.Forms.Panel(); + this.lbLock2 = new arCtl.arLabel(); + this.panel23 = new System.Windows.Forms.Panel(); + this.panel14 = new System.Windows.Forms.Panel(); + this.panVision0 = new System.Windows.Forms.Panel(); + this.panel2 = new System.Windows.Forms.Panel(); + this.sbVisTitle0 = new arCtl.arLabel(); + this.lbSize0 = new System.Windows.Forms.Label(); + this.panel13 = new System.Windows.Forms.Panel(); + this.panel42 = new System.Windows.Forms.Panel(); + this.arLabel49 = new arCtl.arLabel(); + this.arLabel46 = new arCtl.arLabel(); + this.panel40 = new System.Windows.Forms.Panel(); + this.arLabel70 = new arCtl.arLabel(); + this.arLabel67 = new arCtl.arLabel(); + this.panel30 = new System.Windows.Forms.Panel(); + this.arLabel10 = new arCtl.arLabel(); + this.arLabel9 = new arCtl.arLabel(); + this.panel22 = new System.Windows.Forms.Panel(); + this.arLabel86 = new arCtl.arLabel(); + this.arLabel80 = new arCtl.arLabel(); + this.panel21 = new System.Windows.Forms.Panel(); + this.arLabel57 = new arCtl.arLabel(); + this.arLabel31 = new arCtl.arLabel(); + this.panel20 = new System.Windows.Forms.Panel(); + this.arLabel14 = new arCtl.arLabel(); + this.arLabel7 = new arCtl.arLabel(); + this.panel19 = new System.Windows.Forms.Panel(); + this.arLabel8 = new arCtl.arLabel(); + this.arLabel3 = new arCtl.arLabel(); + this.panel17 = new System.Windows.Forms.Panel(); + this.arLabel19 = new arCtl.arLabel(); + this.arLabel15 = new arCtl.arLabel(); + this.panel18 = new System.Windows.Forms.Panel(); + this.arLabel85 = new arCtl.arLabel(); + this.arLabel79 = new arCtl.arLabel(); + this.panel41 = new System.Windows.Forms.Panel(); + this.arLabel94 = new arCtl.arLabel(); + this.arLabel91 = new arCtl.arLabel(); + this.panel43 = new System.Windows.Forms.Panel(); + this.arLabel28 = new arCtl.arLabel(); + this.arLabel20 = new arCtl.arLabel(); + this.panel44 = new System.Windows.Forms.Panel(); + this.arLabel69 = new arCtl.arLabel(); + this.arLabel65 = new arCtl.arLabel(); + this.panel45 = new System.Windows.Forms.Panel(); + this.arLabel23 = new arCtl.arLabel(); + this.arLabel24 = new arCtl.arLabel(); + this.panel16 = new System.Windows.Forms.Panel(); + this.arLabel12 = new arCtl.arLabel(); + this.arLabel13 = new arCtl.arLabel(); + this.panel8 = new System.Windows.Forms.Panel(); + this.arLabel17 = new arCtl.arLabel(); + this.arLabel16 = new arCtl.arLabel(); + this.lbMsgL = new arCtl.arLabel(); + this.panel15 = new System.Windows.Forms.Panel(); + this.lbLock0 = new arCtl.arLabel(); + this.panel12 = new System.Windows.Forms.Panel(); + this.lbTitleBS = new arCtl.arLabel(); + this.cmBarcode = new System.Windows.Forms.ContextMenuStrip(this.components); + this.toolStripMenuItem22 = new System.Windows.Forms.ToolStripMenuItem(); + this.cmDebug = new System.Windows.Forms.ContextMenuStrip(this.components); + this.countToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.sMResetToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.debugModeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.sendMailToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem8 = new System.Windows.Forms.ToolStripSeparator(); + this.motionEmulatorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.dIOMonitorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.refreshControklToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.작업선택화면ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.historyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.testToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.detectCountToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.menusToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.sampleToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.clearToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.screenToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.jOBStartToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.jObEndToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.motionParameterToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.axis0ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.axis1ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.axis2ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.axis3ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.axis4ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.processListToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem6 = new System.Windows.Forms.ToolStripSeparator(); + this.visionTrigger0ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.visionTrigger1ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem7 = new System.Windows.Forms.ToolStripSeparator(); + this.visionProcess0ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.visionProcess1ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.idxDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.stripIdDataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.oKDataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.nGDataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.mISSDataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.fileMapDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataPathDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.mapOriginDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.mapArrayDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.panTopMenu = new System.Windows.Forms.Panel(); + this.testmenuToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.ta = new Project.DataSet1TableAdapters.Component_Reel_ResultTableAdapter(); + this.bindingNavigatorMoveFirstItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMovePreviousItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMoveNextItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMoveLastItem = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton1 = new System.Windows.Forms.ToolStripButton(); + this.iv2 = new arCtl.ImageBox(); + this.iv0 = new arCtl.ImageBox(); + this.arLabel1 = new arCtl.arLabel(); + this.btDebug = new arCtl.arLabel(); + this.btOpenDir = new arCtl.arLabel(); + this.btMReset = new arCtl.arLabel(); + this.btCapture = new arCtl.arLabel(); + this.btManual = new arCtl.arLabel(); + this.btSetting = new arCtl.arLabel(); + this.btClose = new arCtl.arLabel(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.toolStripMenuItem10 = new System.Windows.Forms.ToolStripSeparator(); + this.customerRuleToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.panMCState.SuspendLayout(); + this.tableLayoutPanel1.SuspendLayout(); + this.panel3.SuspendLayout(); + this.panLog.SuspendLayout(); + this.cmOpenDir.SuspendLayout(); + this.panCenter.SuspendLayout(); + this.panBottom.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.arDatagridView1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bs)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bn)).BeginInit(); + this.bn.SuspendLayout(); + this.panRight.SuspendLayout(); + this.panCam.SuspendLayout(); + this.panLoader.SuspendLayout(); + this.panVision1.SuspendLayout(); + this.panel5.SuspendLayout(); + this.cmCam.SuspendLayout(); + this.panel62.SuspendLayout(); + this.panel66.SuspendLayout(); + this.panel67.SuspendLayout(); + this.panel68.SuspendLayout(); + this.panel69.SuspendLayout(); + this.panel70.SuspendLayout(); + this.panel71.SuspendLayout(); + this.panel72.SuspendLayout(); + this.panel73.SuspendLayout(); + this.panel74.SuspendLayout(); + this.panel75.SuspendLayout(); + this.panel76.SuspendLayout(); + this.panel77.SuspendLayout(); + this.panel10.SuspendLayout(); + this.panVision2.SuspendLayout(); + this.panel7.SuspendLayout(); + this.panel46.SuspendLayout(); + this.panel47.SuspendLayout(); + this.panel48.SuspendLayout(); + this.panel49.SuspendLayout(); + this.panel50.SuspendLayout(); + this.panel51.SuspendLayout(); + this.panel52.SuspendLayout(); + this.panel53.SuspendLayout(); + this.panel54.SuspendLayout(); + this.panel55.SuspendLayout(); + this.panel56.SuspendLayout(); + this.panel57.SuspendLayout(); + this.panel58.SuspendLayout(); + this.panel59.SuspendLayout(); + this.panel60.SuspendLayout(); + this.panel61.SuspendLayout(); + this.panel37.SuspendLayout(); + this.panVision0.SuspendLayout(); + this.panel2.SuspendLayout(); + this.panel13.SuspendLayout(); + this.panel42.SuspendLayout(); + this.panel40.SuspendLayout(); + this.panel30.SuspendLayout(); + this.panel22.SuspendLayout(); + this.panel21.SuspendLayout(); + this.panel20.SuspendLayout(); + this.panel19.SuspendLayout(); + this.panel17.SuspendLayout(); + this.panel18.SuspendLayout(); + this.panel41.SuspendLayout(); + this.panel43.SuspendLayout(); + this.panel44.SuspendLayout(); + this.panel45.SuspendLayout(); + this.panel16.SuspendLayout(); + this.panel8.SuspendLayout(); + this.panel15.SuspendLayout(); + this.panel12.SuspendLayout(); + this.cmBarcode.SuspendLayout(); + this.cmDebug.SuspendLayout(); + this.panTopMenu.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.iv2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.iv0)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.SuspendLayout(); + // + // tmDisplay + // + this.tmDisplay.Interval = 150; + this.tmDisplay.Tick += new System.EventHandler(this.tmDisplay_Tick); + // + // btSReset + // + this.btSReset.AutoSize = true; + this.btSReset.Dock = System.Windows.Forms.DockStyle.Left; + this.btSReset.FlatAppearance.BorderSize = 0; + this.btSReset.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btSReset.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.btSReset.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.btSReset.Location = new System.Drawing.Point(350, 0); + this.btSReset.Name = "btSReset"; + this.btSReset.Size = new System.Drawing.Size(73, 50); + this.btSReset.TabIndex = 8; + this.btSReset.Text = "조명"; + this.toolTip1.SetToolTip(this.btSReset, "상태머신 초기화"); + this.btSReset.UseVisualStyleBackColor = true; + this.btSReset.Click += new System.EventHandler(this.button7_Click); + // + // btIOMon + // + this.btIOMon.AutoSize = true; + this.btIOMon.Dock = System.Windows.Forms.DockStyle.Left; + this.btIOMon.FlatAppearance.BorderSize = 0; + this.btIOMon.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btIOMon.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.btIOMon.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.btIOMon.Location = new System.Drawing.Point(220, 0); + this.btIOMon.Name = "btIOMon"; + this.btIOMon.Size = new System.Drawing.Size(57, 50); + this.btIOMon.TabIndex = 6; + this.btIOMon.Text = "I/O"; + this.toolTip1.SetToolTip(this.btIOMon, "I/O 및 FLAG를 확인 합니다"); + this.btIOMon.UseVisualStyleBackColor = true; + this.btIOMon.Click += new System.EventHandler(this.button6_Click); + // + // btJob + // + this.btJob.AutoSize = true; + this.btJob.Dock = System.Windows.Forms.DockStyle.Left; + this.btJob.FlatAppearance.BorderSize = 0; + this.btJob.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btJob.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.btJob.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.btJob.Location = new System.Drawing.Point(163, 0); + this.btJob.Name = "btJob"; + this.btJob.Size = new System.Drawing.Size(57, 50); + this.btJob.TabIndex = 3; + this.btJob.Text = "작업"; + this.toolTip1.SetToolTip(this.btJob, "작업 모델을 선택합니다"); + this.btJob.UseVisualStyleBackColor = true; + this.btJob.Click += new System.EventHandler(this.button5_Click); + // + // btMotion + // + this.btMotion.AutoSize = true; + this.btMotion.Dock = System.Windows.Forms.DockStyle.Left; + this.btMotion.FlatAppearance.BorderSize = 0; + this.btMotion.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btMotion.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.btMotion.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.btMotion.Location = new System.Drawing.Point(106, 0); + this.btMotion.Name = "btMotion"; + this.btMotion.Size = new System.Drawing.Size(57, 50); + this.btMotion.TabIndex = 2; + this.btMotion.Text = "모션"; + this.toolTip1.SetToolTip(this.btMotion, "모션 모델을 선택 합니다"); + this.btMotion.UseVisualStyleBackColor = true; + this.btMotion.Click += new System.EventHandler(this.button4_Click); + // + // btHistory + // + this.btHistory.AutoSize = true; + this.btHistory.Dock = System.Windows.Forms.DockStyle.Left; + this.btHistory.FlatAppearance.BorderSize = 0; + this.btHistory.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btHistory.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.btHistory.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.btHistory.Location = new System.Drawing.Point(49, 0); + this.btHistory.Name = "btHistory"; + this.btHistory.Size = new System.Drawing.Size(57, 50); + this.btHistory.TabIndex = 1; + this.btHistory.Text = "기록"; + this.toolTip1.SetToolTip(this.btHistory, "작업 내역을 확인 합니다"); + this.btHistory.UseVisualStyleBackColor = true; + this.btHistory.Click += new System.EventHandler(this.button3_Click); + // + // btJobCancle + // + this.btJobCancle.AutoSize = true; + this.btJobCancle.Dock = System.Windows.Forms.DockStyle.Left; + this.btJobCancle.FlatAppearance.BorderSize = 0; + this.btJobCancle.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btJobCancle.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.btJobCancle.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(128))))); + this.btJobCancle.Location = new System.Drawing.Point(507, 0); + this.btJobCancle.Name = "btJobCancle"; + this.btJobCancle.Size = new System.Drawing.Size(106, 50); + this.btJobCancle.TabIndex = 11; + this.btJobCancle.Text = "[ 작업취소 ]"; + this.toolTip1.SetToolTip(this.btJobCancle, "로딩된 트레이를 배출하고 각 모션의 위치는 준비 위치로 이동 합니다"); + this.btJobCancle.UseVisualStyleBackColor = true; + this.btJobCancle.Click += new System.EventHandler(this.button8_Click); + // + // btUserControl + // + this.btUserControl.AutoSize = true; + this.btUserControl.Dock = System.Windows.Forms.DockStyle.Left; + this.btUserControl.FlatAppearance.BorderSize = 0; + this.btUserControl.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btUserControl.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.btUserControl.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.btUserControl.Location = new System.Drawing.Point(277, 0); + this.btUserControl.Name = "btUserControl"; + this.btUserControl.Size = new System.Drawing.Size(73, 50); + this.btUserControl.TabIndex = 19; + this.btUserControl.Text = "조작"; + this.toolTip1.SetToolTip(this.btUserControl, "상태머신 초기화"); + this.btUserControl.UseVisualStyleBackColor = true; + this.btUserControl.Click += new System.EventHandler(this.button3_Click_2); + // + // button4 + // + this.button4.AutoSize = true; + this.button4.Dock = System.Windows.Forms.DockStyle.Left; + this.button4.FlatAppearance.BorderSize = 0; + this.button4.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button4.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.button4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.button4.Location = new System.Drawing.Point(613, 0); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(122, 50); + this.button4.TabIndex = 22; + this.button4.Text = "[ 바코드확인 ]"; + this.toolTip1.SetToolTip(this.button4, "로더 포트(중앙)를 하강 합니다. STOP 버튼을 누르면 하강이 멈추게 됩니다."); + this.button4.UseVisualStyleBackColor = true; + this.button4.Click += new System.EventHandler(this.button4_Click_1); + // + // button3 + // + this.button3.AutoSize = true; + this.button3.Dock = System.Windows.Forms.DockStyle.Left; + this.button3.FlatAppearance.BorderSize = 0; + this.button3.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button3.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.button3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.button3.Location = new System.Drawing.Point(423, 0); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(84, 50); + this.button3.TabIndex = 23; + this.button3.Text = "[관리]"; + this.toolTip1.SetToolTip(this.button3, "상태머신 초기화"); + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click_4); + // + // arLabel75 + // + this.arLabel75.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel75.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.arLabel75.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel75.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.arLabel75.BorderColorOver = System.Drawing.Color.DarkBlue; + this.arLabel75.BorderSize = new System.Windows.Forms.Padding(0); + this.arLabel75.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel75.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel75.Dock = System.Windows.Forms.DockStyle.Right; + this.arLabel75.Font = new System.Drawing.Font("Consolas", 50F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel75.ForeColor = System.Drawing.Color.Red; + this.arLabel75.GradientEnable = true; + this.arLabel75.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arLabel75.GradientRepeatBG = false; + this.arLabel75.isButton = true; + this.arLabel75.Location = new System.Drawing.Point(315, 0); + this.arLabel75.Margin = new System.Windows.Forms.Padding(0); + this.arLabel75.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel75.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel75.msg = null; + this.arLabel75.Name = "arLabel75"; + this.arLabel75.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel75.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel75.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel75.ProgressEnable = false; + this.arLabel75.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel75.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel75.ProgressMax = 100F; + this.arLabel75.ProgressMin = 0F; + this.arLabel75.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel75.ProgressValue = 0F; + this.arLabel75.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel75.Sign = ""; + this.arLabel75.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel75.SignColor = System.Drawing.Color.Yellow; + this.arLabel75.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel75.Size = new System.Drawing.Size(100, 75); + this.arLabel75.TabIndex = 18; + this.arLabel75.Tag = "1"; + this.arLabel75.Text = "▲"; + this.arLabel75.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel75.TextShadow = true; + this.arLabel75.TextVisible = true; + this.toolTip1.SetToolTip(this.arLabel75, "포트 올림"); + this.arLabel75.Click += new System.EventHandler(this.arLabel11_Click_1); + // + // arLabel73 + // + this.arLabel73.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel73.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.arLabel73.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel73.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.arLabel73.BorderColorOver = System.Drawing.Color.DarkBlue; + this.arLabel73.BorderSize = new System.Windows.Forms.Padding(0); + this.arLabel73.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel73.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel73.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel73.Font = new System.Drawing.Font("Consolas", 50F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel73.ForeColor = System.Drawing.Color.Blue; + this.arLabel73.GradientEnable = true; + this.arLabel73.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arLabel73.GradientRepeatBG = false; + this.arLabel73.isButton = true; + this.arLabel73.Location = new System.Drawing.Point(0, 0); + this.arLabel73.Margin = new System.Windows.Forms.Padding(0); + this.arLabel73.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel73.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel73.msg = null; + this.arLabel73.Name = "arLabel73"; + this.arLabel73.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel73.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel73.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel73.ProgressEnable = false; + this.arLabel73.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel73.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel73.ProgressMax = 100F; + this.arLabel73.ProgressMin = 0F; + this.arLabel73.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel73.ProgressValue = 0F; + this.arLabel73.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel73.Sign = ""; + this.arLabel73.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel73.SignColor = System.Drawing.Color.Yellow; + this.arLabel73.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel73.Size = new System.Drawing.Size(100, 75); + this.arLabel73.TabIndex = 17; + this.arLabel73.Tag = "1"; + this.arLabel73.Text = "▼"; + this.arLabel73.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel73.TextShadow = true; + this.arLabel73.TextVisible = true; + this.toolTip1.SetToolTip(this.arLabel73, "포트 내림"); + this.arLabel73.Click += new System.EventHandler(this.arLabel6_Click); + // + // lbMsgR + // + this.lbMsgR.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lbMsgR.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(60)))), ((int)(((byte)(60))))); + this.lbMsgR.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbMsgR.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.lbMsgR.BorderColorOver = System.Drawing.Color.Red; + this.lbMsgR.BorderSize = new System.Windows.Forms.Padding(0); + this.lbMsgR.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbMsgR.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbMsgR.Dock = System.Windows.Forms.DockStyle.Bottom; + this.lbMsgR.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbMsgR.ForeColor = System.Drawing.Color.Blue; + this.lbMsgR.GradientEnable = true; + this.lbMsgR.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lbMsgR.GradientRepeatBG = false; + this.lbMsgR.isButton = false; + this.lbMsgR.Location = new System.Drawing.Point(0, 300); + this.lbMsgR.Margin = new System.Windows.Forms.Padding(5, 4, 7, 3); + this.lbMsgR.MouseDownColor = System.Drawing.Color.Yellow; + this.lbMsgR.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbMsgR.msg = null; + this.lbMsgR.Name = "lbMsgR"; + this.lbMsgR.ProgressBorderColor = System.Drawing.Color.Black; + this.lbMsgR.ProgressColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.lbMsgR.ProgressColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lbMsgR.ProgressEnable = true; + this.lbMsgR.ProgressFont = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Bold); + this.lbMsgR.ProgressForeColor = System.Drawing.Color.Gold; + this.lbMsgR.ProgressMax = 100F; + this.lbMsgR.ProgressMin = 0F; + this.lbMsgR.ProgressPadding = new System.Windows.Forms.Padding(2); + this.lbMsgR.ProgressValue = 50F; + this.lbMsgR.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.lbMsgR.Sign = ""; + this.lbMsgR.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbMsgR.SignColor = System.Drawing.Color.Yellow; + this.lbMsgR.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbMsgR.Size = new System.Drawing.Size(413, 34); + this.lbMsgR.TabIndex = 124; + this.lbMsgR.Text = "상태 메세지(R)"; + this.lbMsgR.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbMsgR.TextShadow = true; + this.lbMsgR.TextVisible = true; + this.toolTip1.SetToolTip(this.lbMsgR, "전면 셔틀의 상태 메세지"); + // + // arLabel76 + // + this.arLabel76.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel76.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.arLabel76.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel76.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.arLabel76.BorderColorOver = System.Drawing.Color.DarkBlue; + this.arLabel76.BorderSize = new System.Windows.Forms.Padding(0); + this.arLabel76.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel76.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel76.Dock = System.Windows.Forms.DockStyle.Right; + this.arLabel76.Font = new System.Drawing.Font("Consolas", 50F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel76.ForeColor = System.Drawing.Color.Red; + this.arLabel76.GradientEnable = true; + this.arLabel76.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arLabel76.GradientRepeatBG = false; + this.arLabel76.isButton = true; + this.arLabel76.Location = new System.Drawing.Point(313, 0); + this.arLabel76.Margin = new System.Windows.Forms.Padding(0); + this.arLabel76.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel76.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel76.msg = null; + this.arLabel76.Name = "arLabel76"; + this.arLabel76.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel76.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel76.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel76.ProgressEnable = false; + this.arLabel76.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel76.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel76.ProgressMax = 100F; + this.arLabel76.ProgressMin = 0F; + this.arLabel76.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel76.ProgressValue = 0F; + this.arLabel76.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel76.Sign = ""; + this.arLabel76.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel76.SignColor = System.Drawing.Color.Yellow; + this.arLabel76.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel76.Size = new System.Drawing.Size(100, 75); + this.arLabel76.TabIndex = 18; + this.arLabel76.Tag = "2"; + this.arLabel76.Text = "▲"; + this.arLabel76.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel76.TextShadow = true; + this.arLabel76.TextVisible = true; + this.toolTip1.SetToolTip(this.arLabel76, "포트 올림"); + this.arLabel76.Click += new System.EventHandler(this.arLabel11_Click_1); + // + // arLabel74 + // + this.arLabel74.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel74.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.arLabel74.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel74.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.arLabel74.BorderColorOver = System.Drawing.Color.DarkBlue; + this.arLabel74.BorderSize = new System.Windows.Forms.Padding(0); + this.arLabel74.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel74.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel74.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel74.Font = new System.Drawing.Font("Consolas", 50F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel74.ForeColor = System.Drawing.Color.Blue; + this.arLabel74.GradientEnable = true; + this.arLabel74.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arLabel74.GradientRepeatBG = false; + this.arLabel74.isButton = true; + this.arLabel74.Location = new System.Drawing.Point(0, 0); + this.arLabel74.Margin = new System.Windows.Forms.Padding(0); + this.arLabel74.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel74.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel74.msg = null; + this.arLabel74.Name = "arLabel74"; + this.arLabel74.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel74.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel74.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel74.ProgressEnable = false; + this.arLabel74.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel74.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel74.ProgressMax = 100F; + this.arLabel74.ProgressMin = 0F; + this.arLabel74.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel74.ProgressValue = 0F; + this.arLabel74.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel74.Sign = ""; + this.arLabel74.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel74.SignColor = System.Drawing.Color.Yellow; + this.arLabel74.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel74.Size = new System.Drawing.Size(100, 75); + this.arLabel74.TabIndex = 17; + this.arLabel74.Tag = "2"; + this.arLabel74.Text = "▼"; + this.arLabel74.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel74.TextShadow = true; + this.arLabel74.TextVisible = true; + this.toolTip1.SetToolTip(this.arLabel74, "포트 내림"); + this.arLabel74.Click += new System.EventHandler(this.arLabel6_Click); + // + // arLabel11 + // + this.arLabel11.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel11.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.arLabel11.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel11.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.arLabel11.BorderColorOver = System.Drawing.Color.DarkBlue; + this.arLabel11.BorderSize = new System.Windows.Forms.Padding(0); + this.arLabel11.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel11.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel11.Dock = System.Windows.Forms.DockStyle.Right; + this.arLabel11.Font = new System.Drawing.Font("Consolas", 50F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel11.ForeColor = System.Drawing.Color.Red; + this.arLabel11.GradientEnable = true; + this.arLabel11.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arLabel11.GradientRepeatBG = false; + this.arLabel11.isButton = true; + this.arLabel11.Location = new System.Drawing.Point(313, 0); + this.arLabel11.Margin = new System.Windows.Forms.Padding(0); + this.arLabel11.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel11.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel11.msg = null; + this.arLabel11.Name = "arLabel11"; + this.arLabel11.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel11.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel11.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel11.ProgressEnable = false; + this.arLabel11.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel11.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel11.ProgressMax = 100F; + this.arLabel11.ProgressMin = 0F; + this.arLabel11.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel11.ProgressValue = 0F; + this.arLabel11.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel11.Sign = ""; + this.arLabel11.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel11.SignColor = System.Drawing.Color.Yellow; + this.arLabel11.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel11.Size = new System.Drawing.Size(100, 75); + this.arLabel11.TabIndex = 17; + this.arLabel11.Tag = "0"; + this.arLabel11.Text = "▲"; + this.arLabel11.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel11.TextShadow = true; + this.arLabel11.TextVisible = true; + this.toolTip1.SetToolTip(this.arLabel11, "포트 올림"); + this.arLabel11.Click += new System.EventHandler(this.arLabel11_Click_1); + // + // arLabel6 + // + this.arLabel6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel6.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.arLabel6.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel6.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.arLabel6.BorderColorOver = System.Drawing.Color.DarkBlue; + this.arLabel6.BorderSize = new System.Windows.Forms.Padding(0); + this.arLabel6.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel6.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel6.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel6.Font = new System.Drawing.Font("Consolas", 50F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel6.ForeColor = System.Drawing.Color.Blue; + this.arLabel6.GradientEnable = true; + this.arLabel6.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.arLabel6.GradientRepeatBG = false; + this.arLabel6.isButton = true; + this.arLabel6.Location = new System.Drawing.Point(0, 0); + this.arLabel6.Margin = new System.Windows.Forms.Padding(0); + this.arLabel6.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel6.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel6.msg = null; + this.arLabel6.Name = "arLabel6"; + this.arLabel6.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel6.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel6.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel6.ProgressEnable = false; + this.arLabel6.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel6.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel6.ProgressMax = 100F; + this.arLabel6.ProgressMin = 0F; + this.arLabel6.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel6.ProgressValue = 0F; + this.arLabel6.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel6.Sign = ""; + this.arLabel6.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel6.SignColor = System.Drawing.Color.Yellow; + this.arLabel6.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel6.Size = new System.Drawing.Size(100, 75); + this.arLabel6.TabIndex = 16; + this.arLabel6.Tag = "0"; + this.arLabel6.Text = "▼"; + this.arLabel6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel6.TextShadow = true; + this.arLabel6.TextVisible = true; + this.toolTip1.SetToolTip(this.arLabel6, "포트 내림"); + this.arLabel6.Click += new System.EventHandler(this.arLabel6_Click); + // + // arLabel2 + // + this.arLabel2.BackColor = System.Drawing.Color.Lime; + this.arLabel2.BackColor2 = System.Drawing.Color.Green; + this.arLabel2.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel2.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel2.BorderSize = new System.Windows.Forms.Padding(10, 10, 10, 15); + this.arLabel2.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel2.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel2.Dock = System.Windows.Forms.DockStyle.Right; + this.arLabel2.Enabled = false; + this.arLabel2.Font = new System.Drawing.Font("Cambria", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel2.ForeColor = System.Drawing.Color.WhiteSmoke; + this.arLabel2.GradientEnable = true; + this.arLabel2.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel2.GradientRepeatBG = false; + this.arLabel2.isButton = true; + this.arLabel2.Location = new System.Drawing.Point(971, 0); + this.arLabel2.Margin = new System.Windows.Forms.Padding(10); + this.arLabel2.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel2.MouseOverColor = System.Drawing.Color.Lime; + this.arLabel2.msg = null; + this.arLabel2.Name = "arLabel2"; + this.arLabel2.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel2.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel2.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel2.ProgressEnable = false; + this.arLabel2.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel2.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel2.ProgressMax = 100F; + this.arLabel2.ProgressMin = 0F; + this.arLabel2.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel2.ProgressValue = 0F; + this.arLabel2.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel2.Sign = ""; + this.arLabel2.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel2.SignColor = System.Drawing.Color.Yellow; + this.arLabel2.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel2.Size = new System.Drawing.Size(286, 38); + this.arLabel2.TabIndex = 5; + this.arLabel2.Text = "PICKER X - SAFE ZONE"; + this.arLabel2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel2.TextShadow = true; + this.arLabel2.TextVisible = true; + this.toolTip1.SetToolTip(this.arLabel2, "장비를 시작 합니다. \r\n전면 하단의 \"START\" 버튼과 동일 합니다."); + this.arLabel2.Visible = false; + // + // btStart + // + this.btStart.BackColor = System.Drawing.Color.Lime; + this.btStart.BackColor2 = System.Drawing.Color.Green; + this.btStart.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btStart.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btStart.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.btStart.BorderSize = new System.Windows.Forms.Padding(10); + this.btStart.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btStart.Cursor = System.Windows.Forms.Cursors.Hand; + this.btStart.Dock = System.Windows.Forms.DockStyle.Fill; + this.btStart.Enabled = false; + this.btStart.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btStart.ForeColor = System.Drawing.Color.WhiteSmoke; + this.btStart.GradientEnable = true; + this.btStart.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btStart.GradientRepeatBG = false; + this.btStart.isButton = true; + this.btStart.Location = new System.Drawing.Point(9, 49); + this.btStart.Margin = new System.Windows.Forms.Padding(9); + this.btStart.MouseDownColor = System.Drawing.Color.Yellow; + this.btStart.MouseOverColor = System.Drawing.Color.Lime; + this.btStart.msg = null; + this.btStart.Name = "btStart"; + this.btStart.ProgressBorderColor = System.Drawing.Color.Black; + this.btStart.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btStart.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btStart.ProgressEnable = false; + this.btStart.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btStart.ProgressForeColor = System.Drawing.Color.Black; + this.btStart.ProgressMax = 100F; + this.btStart.ProgressMin = 0F; + this.btStart.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btStart.ProgressValue = 0F; + this.btStart.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btStart.Sign = ""; + this.btStart.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btStart.SignColor = System.Drawing.Color.Yellow; + this.btStart.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btStart.Size = new System.Drawing.Size(117, 113); + this.btStart.TabIndex = 4; + this.btStart.Text = "START"; + this.btStart.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btStart.TextShadow = true; + this.btStart.TextVisible = true; + this.toolTip1.SetToolTip(this.btStart, "장비를 시작 합니다. \r\n전면 하단의 \"START\" 버튼과 동일 합니다."); + this.btStart.Click += new System.EventHandler(this.arLabel2_Click_1); + // + // btStop + // + this.btStop.BackColor = System.Drawing.Color.Tomato; + this.btStop.BackColor2 = System.Drawing.Color.Red; + this.btStop.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btStop.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btStop.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.btStop.BorderSize = new System.Windows.Forms.Padding(10); + this.btStop.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btStop.Cursor = System.Windows.Forms.Cursors.Hand; + this.btStop.Dock = System.Windows.Forms.DockStyle.Fill; + this.btStop.Enabled = false; + this.btStop.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btStop.ForeColor = System.Drawing.Color.WhiteSmoke; + this.btStop.GradientEnable = true; + this.btStop.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btStop.GradientRepeatBG = false; + this.btStop.isButton = true; + this.btStop.Location = new System.Drawing.Point(144, 49); + this.btStop.Margin = new System.Windows.Forms.Padding(9); + this.btStop.MouseDownColor = System.Drawing.Color.Yellow; + this.btStop.MouseOverColor = System.Drawing.Color.Tomato; + this.btStop.msg = null; + this.btStop.Name = "btStop"; + this.btStop.ProgressBorderColor = System.Drawing.Color.Black; + this.btStop.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btStop.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btStop.ProgressEnable = false; + this.btStop.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btStop.ProgressForeColor = System.Drawing.Color.Black; + this.btStop.ProgressMax = 100F; + this.btStop.ProgressMin = 0F; + this.btStop.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btStop.ProgressValue = 0F; + this.btStop.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btStop.Sign = ""; + this.btStop.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btStop.SignColor = System.Drawing.Color.Yellow; + this.btStop.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btStop.Size = new System.Drawing.Size(118, 113); + this.btStop.TabIndex = 4; + this.btStop.Text = "STOP"; + this.btStop.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btStop.TextShadow = true; + this.btStop.TextVisible = true; + this.toolTip1.SetToolTip(this.btStop, "장비의 동작을 중지 합니다. \r\n전면 하단의 \"STOP\" 버튼과 동일 합니다.\r\n모션이 이동중에 추가로 누르면 모션도 정지 합니다.\r\n(단 모션" + + " 정지시에는 재시작할 수 없으며 원점 및 초기화후에 다시 작업을 시작 하세요)"); + this.btStop.Click += new System.EventHandler(this.arLabel4_Click_1); + // + // btReset + // + this.btReset.BackColor = System.Drawing.Color.Gold; + this.btReset.BackColor2 = System.Drawing.Color.Goldenrod; + this.btReset.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btReset.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btReset.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.btReset.BorderSize = new System.Windows.Forms.Padding(10); + this.btReset.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btReset.Cursor = System.Windows.Forms.Cursors.Hand; + this.btReset.Dock = System.Windows.Forms.DockStyle.Fill; + this.btReset.Enabled = false; + this.btReset.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btReset.ForeColor = System.Drawing.Color.WhiteSmoke; + this.btReset.GradientEnable = true; + this.btReset.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btReset.GradientRepeatBG = false; + this.btReset.isButton = true; + this.btReset.Location = new System.Drawing.Point(280, 49); + this.btReset.Margin = new System.Windows.Forms.Padding(9); + this.btReset.MouseDownColor = System.Drawing.Color.Yellow; + this.btReset.MouseOverColor = System.Drawing.Color.Gold; + this.btReset.msg = null; + this.btReset.Name = "btReset"; + this.btReset.ProgressBorderColor = System.Drawing.Color.Black; + this.btReset.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btReset.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btReset.ProgressEnable = false; + this.btReset.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btReset.ProgressForeColor = System.Drawing.Color.Black; + this.btReset.ProgressMax = 100F; + this.btReset.ProgressMin = 0F; + this.btReset.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btReset.ProgressValue = 0F; + this.btReset.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btReset.Sign = ""; + this.btReset.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btReset.SignColor = System.Drawing.Color.Yellow; + this.btReset.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btReset.Size = new System.Drawing.Size(119, 113); + this.btReset.TabIndex = 4; + this.btReset.Text = "RESET"; + this.btReset.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btReset.TextShadow = true; + this.btReset.TextVisible = true; + this.toolTip1.SetToolTip(this.btReset, "발생된 오류 상태를 초기화 합니다.\r\n전면 하단의 \"RESET\" 버튼과 동일 합니다.\r\n부저OFF기능도 담당합니다."); + this.btReset.Click += new System.EventHandler(this.btReset_Click); + // + // lbTime + // + this.lbTime.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbTime.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lbTime.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbTime.BorderColor = System.Drawing.Color.Red; + this.lbTime.BorderColorOver = System.Drawing.Color.Red; + this.lbTime.BorderSize = new System.Windows.Forms.Padding(0); + this.lbTime.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbTime.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbTime.Dock = System.Windows.Forms.DockStyle.Bottom; + this.lbTime.Font = new System.Drawing.Font("Consolas", 20F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbTime.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.lbTime.GradientEnable = false; + this.lbTime.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lbTime.GradientRepeatBG = false; + this.lbTime.isButton = false; + this.lbTime.Location = new System.Drawing.Point(7, 458); + this.lbTime.Margin = new System.Windows.Forms.Padding(0); + this.lbTime.MouseDownColor = System.Drawing.Color.Yellow; + this.lbTime.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbTime.msg = null; + this.lbTime.Name = "lbTime"; + this.lbTime.ProgressBorderColor = System.Drawing.Color.Black; + this.lbTime.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbTime.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbTime.ProgressEnable = false; + this.lbTime.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbTime.ProgressForeColor = System.Drawing.Color.Black; + this.lbTime.ProgressMax = 100F; + this.lbTime.ProgressMin = 0F; + this.lbTime.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbTime.ProgressValue = 0F; + this.lbTime.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.lbTime.Sign = ""; + this.lbTime.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbTime.SignColor = System.Drawing.Color.Yellow; + this.lbTime.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbTime.Size = new System.Drawing.Size(408, 37); + this.lbTime.TabIndex = 0; + this.lbTime.Text = "1982-11-23 00:00:00"; + this.lbTime.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbTime.TextShadow = false; + this.lbTime.TextVisible = true; + this.toolTip1.SetToolTip(this.lbTime, "시스템 시간"); + // + // button1 + // + this.button1.AutoSize = true; + this.button1.Dock = System.Windows.Forms.DockStyle.Left; + this.button1.FlatAppearance.BorderSize = 0; + this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button1.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.button1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.button1.Location = new System.Drawing.Point(735, 0); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(108, 50); + this.button1.TabIndex = 24; + this.button1.Text = "[ 카메라(L) ]"; + this.toolTip1.SetToolTip(this.button1, "로더 포트(중앙)를 하강 합니다. STOP 버튼을 누르면 하강이 멈추게 됩니다."); + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click_1); + // + // button2 + // + this.button2.AutoSize = true; + this.button2.Dock = System.Windows.Forms.DockStyle.Left; + this.button2.FlatAppearance.BorderSize = 0; + this.button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button2.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.button2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.button2.Location = new System.Drawing.Point(843, 0); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(110, 50); + this.button2.TabIndex = 25; + this.button2.Text = "[ 카메라(R) ]"; + this.toolTip1.SetToolTip(this.button2, "로더 포트(중앙)를 하강 합니다. STOP 버튼을 누르면 하강이 멈추게 됩니다."); + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click_1); + // + // systemParameterToolStripMenuItem + // + this.systemParameterToolStripMenuItem.Font = new System.Drawing.Font("Cambria", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.systemParameterToolStripMenuItem.Name = "systemParameterToolStripMenuItem"; + this.systemParameterToolStripMenuItem.Size = new System.Drawing.Size(213, 22); + this.systemParameterToolStripMenuItem.Text = "System Parameter"; + this.systemParameterToolStripMenuItem.Click += new System.EventHandler(this.systemParameterToolStripMenuItem_Click); + // + // toolStripMenuItem9 + // + this.toolStripMenuItem9.Font = new System.Drawing.Font("Cambria", 10F, System.Drawing.FontStyle.Bold); + this.toolStripMenuItem9.Name = "toolStripMenuItem9"; + this.toolStripMenuItem9.Size = new System.Drawing.Size(213, 22); + this.toolStripMenuItem9.Text = "Show Log"; + this.toolStripMenuItem9.Click += new System.EventHandler(this.toolStripMenuItem9_Click); + // + // toolStripMenuItem4 + // + this.toolStripMenuItem4.Name = "toolStripMenuItem4"; + this.toolStripMenuItem4.Size = new System.Drawing.Size(210, 6); + // + // demoRunToolStripMenuItem + // + this.demoRunToolStripMenuItem.Font = new System.Drawing.Font("Cambria", 10F, System.Drawing.FontStyle.Bold); + this.demoRunToolStripMenuItem.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(0))))); + this.demoRunToolStripMenuItem.Name = "demoRunToolStripMenuItem"; + this.demoRunToolStripMenuItem.Size = new System.Drawing.Size(213, 22); + this.demoRunToolStripMenuItem.Text = "Demo Run"; + this.demoRunToolStripMenuItem.Click += new System.EventHandler(this.demoRunToolStripMenuItem_Click); + // + // toolStripMenuItem1 + // + this.toolStripMenuItem1.Name = "toolStripMenuItem1"; + this.toolStripMenuItem1.Size = new System.Drawing.Size(210, 6); + // + // panMCState + // + this.panMCState.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.panMCState.Controls.Add(this.tableLayoutPanel1); + this.panMCState.Controls.Add(this.panel3); + this.panMCState.Dock = System.Windows.Forms.DockStyle.Top; + this.panMCState.Location = new System.Drawing.Point(7, 131); + this.panMCState.Margin = new System.Windows.Forms.Padding(5, 5, 5, 10); + this.panMCState.Name = "panMCState"; + this.panMCState.Size = new System.Drawing.Size(408, 199); + this.panMCState.TabIndex = 7; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 3; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33332F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33334F)); + this.tableLayoutPanel1.Controls.Add(this.btStart, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.lbMsg, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.btStop, 1, 1); + this.tableLayoutPanel1.Controls.Add(this.btReset, 2, 1); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 28); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 2; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 40F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 71F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(408, 171); + this.tableLayoutPanel1.TabIndex = 125; + // + // lbMsg + // + this.lbMsg.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lbMsg.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(60)))), ((int)(((byte)(60))))); + this.lbMsg.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbMsg.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.lbMsg.BorderColorOver = System.Drawing.Color.Red; + this.lbMsg.BorderSize = new System.Windows.Forms.Padding(0); + this.lbMsg.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.tableLayoutPanel1.SetColumnSpan(this.lbMsg, 3); + this.lbMsg.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbMsg.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbMsg.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbMsg.ForeColor = System.Drawing.Color.Blue; + this.lbMsg.GradientEnable = true; + this.lbMsg.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lbMsg.GradientRepeatBG = false; + this.lbMsg.isButton = false; + this.lbMsg.Location = new System.Drawing.Point(5, 4); + this.lbMsg.Margin = new System.Windows.Forms.Padding(5, 4, 7, 3); + this.lbMsg.MouseDownColor = System.Drawing.Color.Yellow; + this.lbMsg.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbMsg.msg = null; + this.lbMsg.Name = "lbMsg"; + this.lbMsg.ProgressBorderColor = System.Drawing.Color.Black; + this.lbMsg.ProgressColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.lbMsg.ProgressColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lbMsg.ProgressEnable = true; + this.lbMsg.ProgressFont = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Bold); + this.lbMsg.ProgressForeColor = System.Drawing.Color.Gold; + this.lbMsg.ProgressMax = 100F; + this.lbMsg.ProgressMin = 0F; + this.lbMsg.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbMsg.ProgressValue = 50F; + this.lbMsg.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.lbMsg.Sign = ""; + this.lbMsg.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbMsg.SignColor = System.Drawing.Color.Yellow; + this.lbMsg.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbMsg.Size = new System.Drawing.Size(396, 33); + this.lbMsg.TabIndex = 126; + this.lbMsg.Text = "상태 메세지"; + this.lbMsg.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbMsg.TextShadow = true; + this.lbMsg.TextVisible = true; + // + // panel3 + // + this.panel3.Controls.Add(this.arLabel64); + this.panel3.Controls.Add(this.lbRate); + this.panel3.Dock = System.Windows.Forms.DockStyle.Top; + this.panel3.Location = new System.Drawing.Point(0, 0); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(408, 28); + this.panel3.TabIndex = 126; + // + // arLabel64 + // + this.arLabel64.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel64.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel64.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel64.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(35)))), ((int)(((byte)(35)))), ((int)(((byte)(35))))); + this.arLabel64.BorderColorOver = System.Drawing.Color.Black; + this.arLabel64.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel64.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel64.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel64.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel64.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.arLabel64.ForeColor = System.Drawing.Color.Gainsboro; + this.arLabel64.GradientEnable = false; + this.arLabel64.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel64.GradientRepeatBG = false; + this.arLabel64.isButton = false; + this.arLabel64.Location = new System.Drawing.Point(0, 0); + this.arLabel64.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel64.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel64.msg = null; + this.arLabel64.Name = "arLabel64"; + this.arLabel64.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.arLabel64.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel64.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel64.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel64.ProgressEnable = false; + this.arLabel64.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel64.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel64.ProgressMax = 100F; + this.arLabel64.ProgressMin = 0F; + this.arLabel64.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel64.ProgressValue = 0F; + this.arLabel64.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel64.Sign = ""; + this.arLabel64.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel64.SignColor = System.Drawing.Color.Yellow; + this.arLabel64.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel64.Size = new System.Drawing.Size(325, 28); + this.arLabel64.TabIndex = 1; + this.arLabel64.Text = "상태 메세지"; + this.arLabel64.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.arLabel64.TextShadow = true; + this.arLabel64.TextVisible = true; + this.arLabel64.Click += new System.EventHandler(this.arLabel64_Click); + // + // lbRate + // + this.lbRate.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbRate.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbRate.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbRate.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(35)))), ((int)(((byte)(35)))), ((int)(((byte)(35))))); + this.lbRate.BorderColorOver = System.Drawing.Color.Black; + this.lbRate.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.lbRate.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbRate.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbRate.Dock = System.Windows.Forms.DockStyle.Right; + this.lbRate.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbRate.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(120)))), ((int)(((byte)(120)))), ((int)(((byte)(120))))); + this.lbRate.GradientEnable = false; + this.lbRate.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbRate.GradientRepeatBG = false; + this.lbRate.isButton = false; + this.lbRate.Location = new System.Drawing.Point(325, 0); + this.lbRate.MouseDownColor = System.Drawing.Color.Yellow; + this.lbRate.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbRate.msg = null; + this.lbRate.Name = "lbRate"; + this.lbRate.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lbRate.ProgressBorderColor = System.Drawing.Color.Black; + this.lbRate.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbRate.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbRate.ProgressEnable = false; + this.lbRate.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbRate.ProgressForeColor = System.Drawing.Color.Black; + this.lbRate.ProgressMax = 100F; + this.lbRate.ProgressMin = 0F; + this.lbRate.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbRate.ProgressValue = 0F; + this.lbRate.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lbRate.Sign = ""; + this.lbRate.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbRate.SignColor = System.Drawing.Color.Yellow; + this.lbRate.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbRate.Size = new System.Drawing.Size(83, 28); + this.lbRate.TabIndex = 2; + this.lbRate.Text = "ms"; + this.lbRate.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.lbRate.TextShadow = true; + this.lbRate.TextVisible = true; + // + // panLog + // + this.panLog.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.panLog.Controls.Add(this.logTextBox1); + this.panLog.Controls.Add(this.arLabel4); + this.panLog.Dock = System.Windows.Forms.DockStyle.Fill; + this.panLog.Location = new System.Drawing.Point(7, 337); + this.panLog.Name = "panLog"; + this.panLog.Size = new System.Drawing.Size(408, 114); + this.panLog.TabIndex = 138; + // + // logTextBox1 + // + this.logTextBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.logTextBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; + sLogMessageColor1.color = System.Drawing.Color.White; + sLogMessageColor1.gubun = "NOR"; + sLogMessageColor2.color = System.Drawing.Color.Red; + sLogMessageColor2.gubun = "ERR"; + sLogMessageColor3.color = System.Drawing.Color.Tomato; + sLogMessageColor3.gubun = "WARN"; + sLogMessageColor4.color = System.Drawing.Color.LightGray; + sLogMessageColor4.gubun = "MSG"; + this.logTextBox1.ColorList = new arCtl.sLogMessageColor[] { + sLogMessageColor1, + sLogMessageColor2, + sLogMessageColor3, + sLogMessageColor4}; + this.logTextBox1.DateFormat = "mm:ss.fff"; + this.logTextBox1.DefaultColor = System.Drawing.Color.LightGray; + this.logTextBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.logTextBox1.EnableDisplayTimer = false; + this.logTextBox1.EnableGubunColor = true; + this.logTextBox1.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.logTextBox1.ListFormat = "[{0}] {1}"; + this.logTextBox1.Location = new System.Drawing.Point(0, 28); + this.logTextBox1.MaxListCount = ((ushort)(200)); + this.logTextBox1.MaxTextLength = ((uint)(4000u)); + this.logTextBox1.MessageInterval = 50; + this.logTextBox1.Name = "logTextBox1"; + this.logTextBox1.Size = new System.Drawing.Size(408, 86); + this.logTextBox1.TabIndex = 136; + this.logTextBox1.Text = ""; + // + // arLabel4 + // + this.arLabel4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel4.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel4.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel4.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(35)))), ((int)(((byte)(35)))), ((int)(((byte)(35))))); + this.arLabel4.BorderColorOver = System.Drawing.Color.Black; + this.arLabel4.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel4.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel4.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel4.Dock = System.Windows.Forms.DockStyle.Top; + this.arLabel4.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.arLabel4.ForeColor = System.Drawing.Color.Gainsboro; + this.arLabel4.GradientEnable = false; + this.arLabel4.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel4.GradientRepeatBG = false; + this.arLabel4.isButton = false; + this.arLabel4.Location = new System.Drawing.Point(0, 0); + this.arLabel4.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel4.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel4.msg = null; + this.arLabel4.Name = "arLabel4"; + this.arLabel4.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.arLabel4.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel4.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel4.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel4.ProgressEnable = false; + this.arLabel4.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel4.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel4.ProgressMax = 100F; + this.arLabel4.ProgressMin = 0F; + this.arLabel4.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel4.ProgressValue = 0F; + this.arLabel4.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel4.Sign = ""; + this.arLabel4.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel4.SignColor = System.Drawing.Color.Yellow; + this.arLabel4.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel4.Size = new System.Drawing.Size(408, 28); + this.arLabel4.TabIndex = 137; + this.arLabel4.Text = "운영 기록"; + this.arLabel4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.arLabel4.TextShadow = true; + this.arLabel4.TextVisible = true; + // + // cmOpenDir + // + this.cmOpenDir.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.맵데이터보기ToolStripMenuItem, + this.저장폴더열기ToolStripMenuItem, + this.캡처ToolStripMenuItem1, + this.저장ToolStripMenuItem}); + this.cmOpenDir.Name = "cmLot1"; + this.cmOpenDir.Size = new System.Drawing.Size(135, 92); + // + // 맵데이터보기ToolStripMenuItem + // + this.맵데이터보기ToolStripMenuItem.Name = "맵데이터보기ToolStripMenuItem"; + this.맵데이터보기ToolStripMenuItem.Size = new System.Drawing.Size(134, 22); + this.맵데이터보기ToolStripMenuItem.Text = "프로그램"; + this.맵데이터보기ToolStripMenuItem.Click += new System.EventHandler(this.맵데이터보기ToolStripMenuItem_Click); + // + // 저장폴더열기ToolStripMenuItem + // + this.저장폴더열기ToolStripMenuItem.Name = "저장폴더열기ToolStripMenuItem"; + this.저장폴더열기ToolStripMenuItem.Size = new System.Drawing.Size(134, 22); + this.저장폴더열기ToolStripMenuItem.Text = "로그"; + this.저장폴더열기ToolStripMenuItem.Click += new System.EventHandler(this.저장폴더열기ToolStripMenuItem_Click); + // + // 캡처ToolStripMenuItem1 + // + this.캡처ToolStripMenuItem1.Name = "캡처ToolStripMenuItem1"; + this.캡처ToolStripMenuItem1.Size = new System.Drawing.Size(134, 22); + this.캡처ToolStripMenuItem1.Text = "캡처"; + this.캡처ToolStripMenuItem1.Click += new System.EventHandler(this.캡처ToolStripMenuItem1_Click); + // + // 저장ToolStripMenuItem + // + this.저장ToolStripMenuItem.Name = "저장ToolStripMenuItem"; + this.저장ToolStripMenuItem.Size = new System.Drawing.Size(134, 22); + this.저장ToolStripMenuItem.Text = "저장데이터"; + this.저장ToolStripMenuItem.Click += new System.EventHandler(this.저장ToolStripMenuItem_Click); + // + // panCenter + // + this.panCenter.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(15)))), ((int)(((byte)(15))))); + this.panCenter.Controls.Add(this.panBottom); + this.panCenter.Controls.Add(this.panRight); + this.panCenter.Controls.Add(this.panLoader); + this.panCenter.Dock = System.Windows.Forms.DockStyle.Fill; + this.panCenter.Location = new System.Drawing.Point(1, 51); + this.panCenter.Margin = new System.Windows.Forms.Padding(0); + this.panCenter.Name = "panCenter"; + this.panCenter.Padding = new System.Windows.Forms.Padding(5, 5, 0, 5); + this.panCenter.Size = new System.Drawing.Size(1262, 959); + this.panCenter.TabIndex = 1; + // + // panBottom + // + this.panBottom.Controls.Add(this.arDatagridView1); + this.panBottom.Controls.Add(this.bn); + this.panBottom.Dock = System.Windows.Forms.DockStyle.Fill; + this.panBottom.Location = new System.Drawing.Point(5, 454); + this.panBottom.Name = "panBottom"; + this.panBottom.Padding = new System.Windows.Forms.Padding(0, 5, 0, 0); + this.panBottom.Size = new System.Drawing.Size(837, 500); + this.panBottom.TabIndex = 3; + // + // arDatagridView1 + // + this.arDatagridView1.A_DelCurrentCell = true; + this.arDatagridView1.A_EnterToTab = true; + this.arDatagridView1.A_KoreanField = null; + this.arDatagridView1.A_UpperField = null; + this.arDatagridView1.A_ViewRownumOnHeader = true; + this.arDatagridView1.AllowUserToAddRows = false; + this.arDatagridView1.AllowUserToDeleteRows = false; + this.arDatagridView1.AutoGenerateColumns = false; + this.arDatagridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; + this.arDatagridView1.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arDatagridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.arDatagridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.sTIMEDataGridViewTextBoxColumn, + this.PTIME, + this.JTYPE, + this.sIDDataGridViewTextBoxColumn, + this.SID0, + this.rIDDataGridViewTextBoxColumn, + this.RID0, + this.VNAME, + this.dvc_loc, + this.qTYDataGridViewTextBoxColumn, + this.QTY0, + this.MFGDATE, + this.VLOT, + this.PNO, + this.LOC, + this.PRNATTACH, + this.PRNVALID, + this.Column1}); + this.arDatagridView1.DataSource = this.bs; + dataGridViewCellStyle11.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle11.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle11.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle11.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle11.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle11.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle11.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.arDatagridView1.DefaultCellStyle = dataGridViewCellStyle11; + this.arDatagridView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.arDatagridView1.Location = new System.Drawing.Point(0, 5); + this.arDatagridView1.Name = "arDatagridView1"; + this.arDatagridView1.ReadOnly = true; + this.arDatagridView1.RowTemplate.Height = 23; + this.arDatagridView1.Size = new System.Drawing.Size(837, 470); + this.arDatagridView1.TabIndex = 6; + this.arDatagridView1.DataError += new System.Windows.Forms.DataGridViewDataErrorEventHandler(this.arDatagridView1_DataError); + // + // sTIMEDataGridViewTextBoxColumn + // + this.sTIMEDataGridViewTextBoxColumn.DataPropertyName = "STIME"; + dataGridViewCellStyle1.Format = "HH:mm:ss"; + this.sTIMEDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle1; + this.sTIMEDataGridViewTextBoxColumn.HeaderText = "시작"; + this.sTIMEDataGridViewTextBoxColumn.Name = "sTIMEDataGridViewTextBoxColumn"; + this.sTIMEDataGridViewTextBoxColumn.ReadOnly = true; + this.sTIMEDataGridViewTextBoxColumn.Width = 55; + // + // PTIME + // + this.PTIME.DataPropertyName = "PTIME"; + dataGridViewCellStyle2.Format = "HH:mm:ss"; + this.PTIME.DefaultCellStyle = dataGridViewCellStyle2; + this.PTIME.HeaderText = "부착"; + this.PTIME.Name = "PTIME"; + this.PTIME.ReadOnly = true; + this.PTIME.Width = 55; + // + // JTYPE + // + this.JTYPE.DataPropertyName = "JTYPE"; + this.JTYPE.HeaderText = "*"; + this.JTYPE.Name = "JTYPE"; + this.JTYPE.ReadOnly = true; + this.JTYPE.Width = 40; + // + // sIDDataGridViewTextBoxColumn + // + this.sIDDataGridViewTextBoxColumn.DataPropertyName = "SID"; + dataGridViewCellStyle3.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.sIDDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle3; + this.sIDDataGridViewTextBoxColumn.HeaderText = "SID(To)"; + this.sIDDataGridViewTextBoxColumn.Name = "sIDDataGridViewTextBoxColumn"; + this.sIDDataGridViewTextBoxColumn.ReadOnly = true; + this.sIDDataGridViewTextBoxColumn.Width = 77; + // + // SID0 + // + this.SID0.DataPropertyName = "SID0"; + dataGridViewCellStyle4.Font = new System.Drawing.Font("Calibri", 9F); + dataGridViewCellStyle4.ForeColor = System.Drawing.Color.Gray; + this.SID0.DefaultCellStyle = dataGridViewCellStyle4; + this.SID0.HeaderText = "SID(From)"; + this.SID0.Name = "SID0"; + this.SID0.ReadOnly = true; + this.SID0.Width = 95; + // + // rIDDataGridViewTextBoxColumn + // + this.rIDDataGridViewTextBoxColumn.DataPropertyName = "RID"; + dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle5.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.rIDDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle5; + this.rIDDataGridViewTextBoxColumn.HeaderText = "RID(New)"; + this.rIDDataGridViewTextBoxColumn.Name = "rIDDataGridViewTextBoxColumn"; + this.rIDDataGridViewTextBoxColumn.ReadOnly = true; + this.rIDDataGridViewTextBoxColumn.Width = 93; + // + // RID0 + // + this.RID0.DataPropertyName = "RID0"; + dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + dataGridViewCellStyle6.Font = new System.Drawing.Font("Calibri", 9F); + dataGridViewCellStyle6.ForeColor = System.Drawing.Color.Gray; + this.RID0.DefaultCellStyle = dataGridViewCellStyle6; + this.RID0.HeaderText = "RID(Old)"; + this.RID0.Name = "RID0"; + this.RID0.ReadOnly = true; + this.RID0.Width = 86; + // + // VNAME + // + this.VNAME.DataPropertyName = "VNAME"; + dataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + this.VNAME.DefaultCellStyle = dataGridViewCellStyle7; + this.VNAME.HeaderText = "VENDER"; + this.VNAME.Name = "VNAME"; + this.VNAME.ReadOnly = true; + this.VNAME.Width = 83; + // + // dvc_loc + // + this.dvc_loc.DataPropertyName = "LOC"; + this.dvc_loc.HeaderText = "LOC"; + this.dvc_loc.Name = "dvc_loc"; + this.dvc_loc.ReadOnly = true; + this.dvc_loc.Visible = false; + this.dvc_loc.Width = 55; + // + // qTYDataGridViewTextBoxColumn + // + this.qTYDataGridViewTextBoxColumn.DataPropertyName = "QTY"; + this.qTYDataGridViewTextBoxColumn.HeaderText = "수량"; + this.qTYDataGridViewTextBoxColumn.Name = "qTYDataGridViewTextBoxColumn"; + this.qTYDataGridViewTextBoxColumn.ReadOnly = true; + this.qTYDataGridViewTextBoxColumn.Width = 55; + // + // QTY0 + // + this.QTY0.DataPropertyName = "QTY0"; + dataGridViewCellStyle8.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle8.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.QTY0.DefaultCellStyle = dataGridViewCellStyle8; + this.QTY0.FillWeight = 55F; + this.QTY0.HeaderText = "*"; + this.QTY0.Name = "QTY0"; + this.QTY0.ReadOnly = true; + this.QTY0.Width = 40; + // + // MFGDATE + // + this.MFGDATE.DataPropertyName = "MFGDATE"; + dataGridViewCellStyle9.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + this.MFGDATE.DefaultCellStyle = dataGridViewCellStyle9; + this.MFGDATE.HeaderText = "DATE"; + this.MFGDATE.Name = "MFGDATE"; + this.MFGDATE.ReadOnly = true; + this.MFGDATE.Width = 64; + // + // VLOT + // + this.VLOT.DataPropertyName = "VLOT"; + this.VLOT.HeaderText = "LOT"; + this.VLOT.Name = "VLOT"; + this.VLOT.ReadOnly = true; + this.VLOT.Width = 56; + // + // PNO + // + this.PNO.DataPropertyName = "PNO"; + this.PNO.HeaderText = "Part NO"; + this.PNO.Name = "PNO"; + this.PNO.ReadOnly = true; + this.PNO.Width = 81; + // + // LOC + // + this.LOC.DataPropertyName = "LOC"; + this.LOC.HeaderText = "L/R"; + this.LOC.Name = "LOC"; + this.LOC.ReadOnly = true; + this.LOC.Width = 53; + // + // PRNATTACH + // + this.PRNATTACH.DataPropertyName = "PRNATTACH"; + this.PRNATTACH.HeaderText = "부착"; + this.PRNATTACH.Name = "PRNATTACH"; + this.PRNATTACH.ReadOnly = true; + this.PRNATTACH.Width = 36; + // + // PRNVALID + // + this.PRNVALID.DataPropertyName = "PRNVALID"; + this.PRNVALID.HeaderText = "검증"; + this.PRNVALID.Name = "PRNVALID"; + this.PRNVALID.ReadOnly = true; + this.PRNVALID.Width = 36; + // + // Column1 + // + this.Column1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; + this.Column1.DataPropertyName = "REMARK"; + dataGridViewCellStyle10.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + this.Column1.DefaultCellStyle = dataGridViewCellStyle10; + this.Column1.HeaderText = "비고"; + this.Column1.Name = "Column1"; + this.Column1.ReadOnly = true; + // + // bs + // + this.bs.DataMember = "Component_Reel_Result"; + this.bs.DataSource = this.dataSet1; + // + // dataSet1 + // + this.dataSet1.DataSetName = "DataSet1"; + this.dataSet1.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + // + // bn + // + this.bn.AddNewItem = null; + this.bn.BindingSource = this.bs; + this.bn.CountItem = this.bindingNavigatorCountItem; + this.bn.DeleteItem = null; + this.bn.Dock = System.Windows.Forms.DockStyle.Bottom; + this.bn.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.bindingNavigatorMoveFirstItem, + this.bindingNavigatorMovePreviousItem, + this.bindingNavigatorSeparator, + this.bindingNavigatorPositionItem, + this.bindingNavigatorCountItem, + this.bindingNavigatorSeparator1, + this.bindingNavigatorMoveNextItem, + this.bindingNavigatorMoveLastItem, + this.bindingNavigatorSeparator2, + this.toolStripButton1, + this.lbOnline, + this.toolStripLabel1}); + this.bn.Location = new System.Drawing.Point(0, 475); + this.bn.MoveFirstItem = this.bindingNavigatorMoveFirstItem; + this.bn.MoveLastItem = this.bindingNavigatorMoveLastItem; + this.bn.MoveNextItem = this.bindingNavigatorMoveNextItem; + this.bn.MovePreviousItem = this.bindingNavigatorMovePreviousItem; + this.bn.Name = "bn"; + this.bn.PositionItem = this.bindingNavigatorPositionItem; + this.bn.Size = new System.Drawing.Size(837, 25); + this.bn.TabIndex = 149; + this.bn.Text = "bindingNavigator1"; + // + // bindingNavigatorCountItem + // + this.bindingNavigatorCountItem.Name = "bindingNavigatorCountItem"; + this.bindingNavigatorCountItem.Size = new System.Drawing.Size(27, 22); + this.bindingNavigatorCountItem.Text = "/{0}"; + this.bindingNavigatorCountItem.ToolTipText = "전체 항목 수"; + // + // bindingNavigatorSeparator + // + this.bindingNavigatorSeparator.Name = "bindingNavigatorSeparator"; + this.bindingNavigatorSeparator.Size = new System.Drawing.Size(6, 25); + // + // bindingNavigatorPositionItem + // + this.bindingNavigatorPositionItem.AccessibleName = "위치"; + this.bindingNavigatorPositionItem.AutoSize = false; + this.bindingNavigatorPositionItem.Font = new System.Drawing.Font("맑은 고딕", 9F); + this.bindingNavigatorPositionItem.Name = "bindingNavigatorPositionItem"; + this.bindingNavigatorPositionItem.Size = new System.Drawing.Size(50, 23); + this.bindingNavigatorPositionItem.Text = "0"; + this.bindingNavigatorPositionItem.ToolTipText = "현재 위치"; + // + // bindingNavigatorSeparator1 + // + this.bindingNavigatorSeparator1.Name = "bindingNavigatorSeparator1"; + this.bindingNavigatorSeparator1.Size = new System.Drawing.Size(6, 25); + // + // bindingNavigatorSeparator2 + // + this.bindingNavigatorSeparator2.Name = "bindingNavigatorSeparator2"; + this.bindingNavigatorSeparator2.Size = new System.Drawing.Size(6, 25); + // + // lbOnline + // + this.lbOnline.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.lbOnline.Name = "lbOnline"; + this.lbOnline.Size = new System.Drawing.Size(57, 22); + this.lbOnline.Text = "ON-LINE"; + // + // toolStripLabel1 + // + this.toolStripLabel1.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.toolStripLabel1.ForeColor = System.Drawing.Color.Gold; + this.toolStripLabel1.Name = "toolStripLabel1"; + this.toolStripLabel1.Size = new System.Drawing.Size(63, 22); + this.toolStripLabel1.Text = "DRY_RUN"; + // + // panRight + // + this.panRight.Controls.Add(this.panLog); + this.panRight.Controls.Add(this.panel11); + this.panRight.Controls.Add(this.panMCState); + this.panRight.Controls.Add(this.panel6); + this.panRight.Controls.Add(this.lbTime); + this.panRight.Controls.Add(this.panel4); + this.panRight.Controls.Add(this.panCam); + this.panRight.Dock = System.Windows.Forms.DockStyle.Right; + this.panRight.Location = new System.Drawing.Point(842, 454); + this.panRight.Name = "panRight"; + this.panRight.Padding = new System.Windows.Forms.Padding(7, 5, 5, 5); + this.panRight.Size = new System.Drawing.Size(420, 500); + this.panRight.TabIndex = 135; + // + // panel11 + // + this.panel11.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); + this.panel11.Dock = System.Windows.Forms.DockStyle.Top; + this.panel11.Location = new System.Drawing.Point(7, 330); + this.panel11.Name = "panel11"; + this.panel11.Size = new System.Drawing.Size(408, 7); + this.panel11.TabIndex = 145; + // + // panel6 + // + this.panel6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); + this.panel6.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel6.Location = new System.Drawing.Point(7, 451); + this.panel6.Name = "panel6"; + this.panel6.Size = new System.Drawing.Size(408, 7); + this.panel6.TabIndex = 143; + // + // panel4 + // + this.panel4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); + this.panel4.Dock = System.Windows.Forms.DockStyle.Top; + this.panel4.Location = new System.Drawing.Point(7, 124); + this.panel4.Name = "panel4"; + this.panel4.Size = new System.Drawing.Size(408, 7); + this.panel4.TabIndex = 142; + // + // panCam + // + this.panCam.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.panCam.Controls.Add(this.loader1); + this.panCam.Dock = System.Windows.Forms.DockStyle.Top; + this.panCam.Location = new System.Drawing.Point(7, 5); + this.panCam.Name = "panCam"; + this.panCam.Padding = new System.Windows.Forms.Padding(5); + this.panCam.Size = new System.Drawing.Size(408, 119); + this.panCam.TabIndex = 144; + this.panCam.Visible = false; + // + // loader1 + // + this.loader1.arConn_BCD = false; + this.loader1.arConn_DIO = true; + this.loader1.arConn_MOT = true; + this.loader1.arConn_PLC = false; + this.loader1.arConn_REM = false; + this.loader1.arConvRun = false; + this.loader1.arCountPrint0 = 0; + this.loader1.arCountPrint1 = 0; + this.loader1.arCountV0 = 0; + this.loader1.arCountV1 = 0; + this.loader1.arCountV2 = 0; + this.loader1.arDebugMode = false; + this.loader1.arDI_Cv_Detect = new bool[] { + false, + false, + false, + false, + false, + false, + false, + false}; + this.loader1.arDI_Emergency = false; + this.loader1.arDI_SaftyOk = true; + this.loader1.arDIAir = false; + this.loader1.arFG_CMD_YP_FPICKON = false; + this.loader1.arFG_CMD_YP_RPICKON = false; + this.loader1.arFG_RDY_YP_FPICKOF = false; + this.loader1.arFG_RDY_YP_FPICKON = false; + this.loader1.arFG_RDY_YP_RPICKOF = false; + this.loader1.arFG_RDY_YP_RPICKON = false; + this.loader1.arFGPrinter0END = false; + this.loader1.arFGPrinter0RDY = false; + this.loader1.arFGPrinter1END = false; + this.loader1.arFGPrinter1RDY = false; + this.loader1.arFGPrinter2END = false; + this.loader1.arFGPrinter2RDY = false; + this.loader1.arFGVision0END = false; + this.loader1.arFGVision0RDY = false; + this.loader1.arFGVision1END = false; + this.loader1.arFGVision1RDY = false; + this.loader1.arFGVision2END = false; + this.loader1.arFGVision2RDY = false; + this.loader1.arFlag_Minspace = false; + this.loader1.arFlag_UnloaderBusy = false; + this.loader1.arFlag_UnloaderErr = false; + this.loader1.arFont_count = new System.Drawing.Font("Tahoma", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.loader1.arFont_picker = new System.Drawing.Font("Consolas", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.loader1.arFont_PortMessage = new System.Drawing.Font("맑은 고딕", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.loader1.arFreespace = 0D; + this.loader1.arHomeProgress = new double[] { + 10D, + 20D, + 30D, + 40D, + 50D, + 60D, + 100D}; + this.loader1.arInitMOT = false; + this.loader1.arIsRunning = false; + this.loader1.arJobEND = false; + this.loader1.arLastDetectIndex = 3; + this.loader1.arLowDiskSpace = false; + this.loader1.arMagnet0 = false; + this.loader1.arMagnet1 = false; + this.loader1.arMagnet2 = false; + this.loader1.arMenus = new UIControl.CMenu[0]; + this.loader1.arMotILockPKX = false; + this.loader1.arMotILockPKZ = false; + this.loader1.arMotILockPLM = false; + this.loader1.arMotILockPLZ = false; + this.loader1.arMotILockPRL = false; + this.loader1.arMotILockPRM = false; + this.loader1.arMotILockPRR = false; + this.loader1.arMotILockPRZ = false; + this.loader1.arMotILockVS0 = false; + this.loader1.arMotILockVS1 = false; + this.loader1.arMotILockVS2 = false; + this.loader1.arMotorLengthY = 1000D; + this.loader1.arMotorLengthZL = 600D; + this.loader1.arMotorLengthZR = 600D; + this.loader1.arMotorPosition = new double[] { + 0D, + 0D, + 0D, + 0D, + 0D, + 0D, + 0D}; + this.loader1.arMotPosNamePKY = null; + this.loader1.arMotPosNamePKZ = null; + this.loader1.arMotPosNamePLM = null; + this.loader1.arMotPosNamePLZ = null; + this.loader1.arMotPosNamePRM = null; + this.loader1.arMotPosNamePRZ = null; + this.loader1.arPickerSafeZone = false; + this.loader1.arPLItemON = false; + this.loader1.arPortLItemOn = false; + this.loader1.arPortRItemOn = false; + this.loader1.arPRItemON = false; + this.loader1.arUnloaderSeq = ((byte)(0)); + cPicker1.HasRealItemOn = false; + cPicker1.ItemOn = false; + cPicker1.Overload = true; + cPicker1.PortIndex = ((short)(-1)); + cPicker1.PortPos = "13"; + cPicker1.PreCheckItemOn = false; + cPicker1.PrintPos = null; + cPicker1.VacOutput = new bool[] { + false, + false, + false, + false}; + cPicker2.HasRealItemOn = false; + cPicker2.ItemOn = false; + cPicker2.Overload = false; + cPicker2.PortIndex = ((short)(-1)); + cPicker2.PortPos = "7"; + cPicker2.PreCheckItemOn = false; + cPicker2.PrintPos = null; + cPicker2.VacOutput = new bool[] { + false, + false, + false, + false}; + this.loader1.arVar_Picker = new UIControl.CPicker[] { + cPicker1, + cPicker2}; + cPort1.AlignOK = ((byte)(0)); + cPort1.AnimationStepPort = 9; + cPort1.arrowIndex = 2; + cPort1.bgColor = System.Drawing.Color.Lime; + cPort1.CartSize = 0; + cPort1.DetectUp = true; + cPort1.Enable = true; + cPort1.errorCount = 0; + cPort1.fgColor = System.Drawing.Color.White; + cPort1.fgColorCount = System.Drawing.Color.Empty; + cPort1.LimitLower = true; + cPort1.LimitUpper = false; + cPort1.MotorDir = true; + cPort1.MotorRun = true; + cPort1.Ready = false; + cPort1.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cPort1.Rect"))); + cPort1.rect_count = new System.Drawing.Rectangle(0, 0, 0, 0); + cPort1.rect_title = new System.Drawing.Rectangle(0, 0, 0, 0); + cPort1.reelCount = 0; + cPort1.reelNo = -1; + cPort1.SaftyErr = false; + cPort1.State = ((ushort)(0)); + cPort1.title = "7\""; + cPort2.AlignOK = ((byte)(0)); + cPort2.AnimationStepPort = 9; + cPort2.arrowIndex = 2; + cPort2.bgColor = System.Drawing.Color.Lime; + cPort2.CartSize = 0; + cPort2.DetectUp = true; + cPort2.Enable = true; + cPort2.errorCount = 0; + cPort2.fgColor = System.Drawing.Color.White; + cPort2.fgColorCount = System.Drawing.Color.Empty; + cPort2.LimitLower = false; + cPort2.LimitUpper = true; + cPort2.MotorDir = false; + cPort2.MotorRun = true; + cPort2.Ready = false; + cPort2.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cPort2.Rect"))); + cPort2.rect_count = new System.Drawing.Rectangle(0, 0, 0, 0); + cPort2.rect_title = new System.Drawing.Rectangle(0, 0, 0, 0); + cPort2.reelCount = 0; + cPort2.reelNo = -1; + cPort2.SaftyErr = false; + cPort2.State = ((ushort)(0)); + cPort2.title = "13\""; + cPort3.AlignOK = ((byte)(0)); + cPort3.AnimationStepPort = 9; + cPort3.arrowIndex = 2; + cPort3.bgColor = System.Drawing.Color.Lime; + cPort3.CartSize = 0; + cPort3.DetectUp = true; + cPort3.Enable = true; + cPort3.errorCount = 0; + cPort3.fgColor = System.Drawing.Color.White; + cPort3.fgColorCount = System.Drawing.Color.Empty; + cPort3.LimitLower = false; + cPort3.LimitUpper = false; + cPort3.MotorDir = false; + cPort3.MotorRun = false; + cPort3.Ready = true; + cPort3.Rect = ((System.Drawing.RectangleF)(resources.GetObject("cPort3.Rect"))); + cPort3.rect_count = new System.Drawing.Rectangle(0, 0, 0, 0); + cPort3.rect_title = new System.Drawing.Rectangle(0, 0, 0, 0); + cPort3.reelCount = 0; + cPort3.reelNo = -1; + cPort3.SaftyErr = false; + cPort3.State = ((ushort)(0)); + cPort3.title = "7\""; + this.loader1.arVar_Port = new UIControl.CPort[] { + cPort1, + cPort2, + cPort3}; + this.loader1.arVision_RID = null; + this.loader1.arVision_SID = null; + this.loader1.arVisionProcessC = false; + this.loader1.arVisionProcessL = false; + this.loader1.arVisionProcessR = false; + this.loader1.Dock = System.Windows.Forms.DockStyle.Fill; + this.loader1.Font = new System.Drawing.Font("Times New Roman", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.loader1.ForeColor = System.Drawing.Color.LightGray; + this.loader1.L_PICK_BW = false; + this.loader1.L_PICK_FW = false; + this.loader1.Location = new System.Drawing.Point(5, 5); + this.loader1.Margin = new System.Windows.Forms.Padding(0); + this.loader1.Name = "loader1"; + this.loader1.PrintLPICK = false; + this.loader1.PrintRPICK = false; + this.loader1.R_PICK_BW = false; + this.loader1.R_PICK_FW = false; + this.loader1.Scean = UIControl.Loader.eScean.Nomal; + this.loader1.Size = new System.Drawing.Size(398, 109); + this.loader1.TabIndex = 0; + // + // panLoader + // + this.panLoader.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32))))); + this.panLoader.Controls.Add(this.panVision1); + this.panLoader.Controls.Add(this.panVision2); + this.panLoader.Controls.Add(this.panel23); + this.panLoader.Controls.Add(this.panel14); + this.panLoader.Controls.Add(this.panVision0); + this.panLoader.Controls.Add(this.panel12); + this.panLoader.Dock = System.Windows.Forms.DockStyle.Top; + this.panLoader.Location = new System.Drawing.Point(5, 5); + this.panLoader.Margin = new System.Windows.Forms.Padding(5); + this.panLoader.Name = "panLoader"; + this.panLoader.Size = new System.Drawing.Size(1257, 449); + this.panLoader.TabIndex = 0; + // + // panVision1 + // + this.panVision1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(16)))), ((int)(((byte)(16)))), ((int)(((byte)(16))))); + this.panVision1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.panVision1.Controls.Add(this.panel9); + this.panVision1.Controls.Add(this.panel5); + this.panVision1.Controls.Add(this.panel62); + this.panVision1.Controls.Add(this.lbMsgC); + this.panVision1.Controls.Add(this.panel10); + this.panVision1.Dock = System.Windows.Forms.DockStyle.Fill; + this.panVision1.Location = new System.Drawing.Point(420, 38); + this.panVision1.Margin = new System.Windows.Forms.Padding(0); + this.panVision1.Name = "panVision1"; + this.panVision1.Size = new System.Drawing.Size(417, 411); + this.panVision1.TabIndex = 147; + // + // panel9 + // + this.panel9.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(5)))), ((int)(((byte)(5)))), ((int)(((byte)(5))))); + this.panel9.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel9.Location = new System.Drawing.Point(0, 30); + this.panel9.Name = "panel9"; + this.panel9.Size = new System.Drawing.Size(258, 270); + this.panel9.TabIndex = 7; + // + // panel5 + // + this.panel5.Controls.Add(this.sbVisTitle1); + this.panel5.Controls.Add(this.lbSize1); + this.panel5.Dock = System.Windows.Forms.DockStyle.Top; + this.panel5.Location = new System.Drawing.Point(0, 0); + this.panel5.Margin = new System.Windows.Forms.Padding(0); + this.panel5.Name = "panel5"; + this.panel5.Size = new System.Drawing.Size(258, 30); + this.panel5.TabIndex = 2; + // + // sbVisTitle1 + // + this.sbVisTitle1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.sbVisTitle1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.sbVisTitle1.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.sbVisTitle1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.sbVisTitle1.BorderColorOver = System.Drawing.Color.DarkBlue; + this.sbVisTitle1.BorderSize = new System.Windows.Forms.Padding(0); + this.sbVisTitle1.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.sbVisTitle1.ContextMenuStrip = this.cmCam; + this.sbVisTitle1.Cursor = System.Windows.Forms.Cursors.Arrow; + this.sbVisTitle1.Dock = System.Windows.Forms.DockStyle.Fill; + this.sbVisTitle1.Font = new System.Drawing.Font("Consolas", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.sbVisTitle1.ForeColor = System.Drawing.Color.White; + this.sbVisTitle1.GradientEnable = true; + this.sbVisTitle1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.sbVisTitle1.GradientRepeatBG = false; + this.sbVisTitle1.isButton = false; + this.sbVisTitle1.Location = new System.Drawing.Point(0, 0); + this.sbVisTitle1.Margin = new System.Windows.Forms.Padding(0); + this.sbVisTitle1.MouseDownColor = System.Drawing.Color.Yellow; + this.sbVisTitle1.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.sbVisTitle1.msg = null; + this.sbVisTitle1.Name = "sbVisTitle1"; + this.sbVisTitle1.ProgressBorderColor = System.Drawing.Color.Black; + this.sbVisTitle1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.sbVisTitle1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.sbVisTitle1.ProgressEnable = false; + this.sbVisTitle1.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.sbVisTitle1.ProgressForeColor = System.Drawing.Color.Black; + this.sbVisTitle1.ProgressMax = 100F; + this.sbVisTitle1.ProgressMin = 0F; + this.sbVisTitle1.ProgressPadding = new System.Windows.Forms.Padding(0); + this.sbVisTitle1.ProgressValue = 0F; + this.sbVisTitle1.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.sbVisTitle1.Sign = ""; + this.sbVisTitle1.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.sbVisTitle1.SignColor = System.Drawing.Color.Yellow; + this.sbVisTitle1.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.sbVisTitle1.Size = new System.Drawing.Size(203, 30); + this.sbVisTitle1.TabIndex = 143; + this.sbVisTitle1.Tag = "1"; + this.sbVisTitle1.Text = "VISION (PICKER)"; + this.sbVisTitle1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.sbVisTitle1.TextShadow = true; + this.sbVisTitle1.TextVisible = true; + this.sbVisTitle1.Click += new System.EventHandler(this.sbVisTitle1_Click); + // + // cmCam + // + this.cmCam.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripMenuItem2, + this.liveViewProcessOnOffToolStripMenuItem, + this.zoomFitToolStripMenuItem, + this.readBarcodeToolStripMenuItem, + this.livetaskToolStripMenuItem, + this.toolStripMenuItem3, + this.keyenceTrigOnToolStripMenuItem, + this.keyenceTrigOffToolStripMenuItem, + this.keyenceSaveImageToolStripMenuItem, + this.toolStripMenuItem5}); + this.cmCam.Name = "cmLot1"; + this.cmCam.Size = new System.Drawing.Size(212, 192); + this.cmCam.Opening += new System.ComponentModel.CancelEventHandler(this.cmCam_Opening); + // + // toolStripMenuItem2 + // + this.toolStripMenuItem2.Name = "toolStripMenuItem2"; + this.toolStripMenuItem2.Size = new System.Drawing.Size(211, 22); + this.toolStripMenuItem2.Text = "Save Image"; + this.toolStripMenuItem2.Click += new System.EventHandler(this.toolStripMenuItem2_Click); + // + // liveViewProcessOnOffToolStripMenuItem + // + this.liveViewProcessOnOffToolStripMenuItem.Name = "liveViewProcessOnOffToolStripMenuItem"; + this.liveViewProcessOnOffToolStripMenuItem.Size = new System.Drawing.Size(211, 22); + this.liveViewProcessOnOffToolStripMenuItem.Text = "Live View Process On/Off"; + this.liveViewProcessOnOffToolStripMenuItem.Click += new System.EventHandler(this.liveViewProcessOnOffToolStripMenuItem_Click); + // + // zoomFitToolStripMenuItem + // + this.zoomFitToolStripMenuItem.Name = "zoomFitToolStripMenuItem"; + this.zoomFitToolStripMenuItem.Size = new System.Drawing.Size(211, 22); + this.zoomFitToolStripMenuItem.Text = "Zoom Fit"; + this.zoomFitToolStripMenuItem.Click += new System.EventHandler(this.zoomFitToolStripMenuItem_Click); + // + // readBarcodeToolStripMenuItem + // + this.readBarcodeToolStripMenuItem.Name = "readBarcodeToolStripMenuItem"; + this.readBarcodeToolStripMenuItem.Size = new System.Drawing.Size(211, 22); + this.readBarcodeToolStripMenuItem.Text = "Read Barcode"; + this.readBarcodeToolStripMenuItem.Click += new System.EventHandler(this.readBarcodeToolStripMenuItem_Click); + // + // livetaskToolStripMenuItem + // + this.livetaskToolStripMenuItem.Name = "livetaskToolStripMenuItem"; + this.livetaskToolStripMenuItem.Size = new System.Drawing.Size(211, 22); + this.livetaskToolStripMenuItem.Text = "live-task"; + this.livetaskToolStripMenuItem.Click += new System.EventHandler(this.livetaskToolStripMenuItem_Click); + // + // toolStripMenuItem3 + // + this.toolStripMenuItem3.Name = "toolStripMenuItem3"; + this.toolStripMenuItem3.Size = new System.Drawing.Size(208, 6); + // + // keyenceTrigOnToolStripMenuItem + // + this.keyenceTrigOnToolStripMenuItem.Name = "keyenceTrigOnToolStripMenuItem"; + this.keyenceTrigOnToolStripMenuItem.Size = new System.Drawing.Size(211, 22); + this.keyenceTrigOnToolStripMenuItem.Text = "keyence Trig On"; + this.keyenceTrigOnToolStripMenuItem.Click += new System.EventHandler(this.keyenceTrigOnToolStripMenuItem_Click); + // + // keyenceTrigOffToolStripMenuItem + // + this.keyenceTrigOffToolStripMenuItem.Name = "keyenceTrigOffToolStripMenuItem"; + this.keyenceTrigOffToolStripMenuItem.Size = new System.Drawing.Size(211, 22); + this.keyenceTrigOffToolStripMenuItem.Text = "Keyence Trig Off"; + this.keyenceTrigOffToolStripMenuItem.Click += new System.EventHandler(this.keyenceTrigOffToolStripMenuItem_Click); + // + // keyenceSaveImageToolStripMenuItem + // + this.keyenceSaveImageToolStripMenuItem.Name = "keyenceSaveImageToolStripMenuItem"; + this.keyenceSaveImageToolStripMenuItem.Size = new System.Drawing.Size(211, 22); + this.keyenceSaveImageToolStripMenuItem.Text = "Keyence Save Image"; + this.keyenceSaveImageToolStripMenuItem.Click += new System.EventHandler(this.keyenceSaveImageToolStripMenuItem_Click); + // + // toolStripMenuItem5 + // + this.toolStripMenuItem5.Name = "toolStripMenuItem5"; + this.toolStripMenuItem5.Size = new System.Drawing.Size(208, 6); + // + // lbSize1 + // + this.lbSize1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lbSize1.Dock = System.Windows.Forms.DockStyle.Right; + this.lbSize1.ForeColor = System.Drawing.Color.White; + this.lbSize1.Location = new System.Drawing.Point(203, 0); + this.lbSize1.Name = "lbSize1"; + this.lbSize1.Size = new System.Drawing.Size(55, 30); + this.lbSize1.TabIndex = 144; + this.lbSize1.Text = "7/13"; + this.lbSize1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbSize1.Click += new System.EventHandler(this.lbSize1_Click); + // + // panel62 + // + this.panel62.Controls.Add(this.panel63); + this.panel62.Controls.Add(this.panel64); + this.panel62.Controls.Add(this.panel65); + this.panel62.Controls.Add(this.panel66); + this.panel62.Controls.Add(this.panel67); + this.panel62.Controls.Add(this.panel68); + this.panel62.Controls.Add(this.panel69); + this.panel62.Controls.Add(this.panel70); + this.panel62.Controls.Add(this.panel71); + this.panel62.Controls.Add(this.panel72); + this.panel62.Controls.Add(this.panel73); + this.panel62.Controls.Add(this.panel74); + this.panel62.Controls.Add(this.panel75); + this.panel62.Controls.Add(this.panel76); + this.panel62.Controls.Add(this.panel77); + this.panel62.Dock = System.Windows.Forms.DockStyle.Right; + this.panel62.Location = new System.Drawing.Point(258, 0); + this.panel62.Name = "panel62"; + this.panel62.Size = new System.Drawing.Size(157, 300); + this.panel62.TabIndex = 158; + // + // panel63 + // + this.panel63.Dock = System.Windows.Forms.DockStyle.Top; + this.panel63.Location = new System.Drawing.Point(0, 280); + this.panel63.Name = "panel63"; + this.panel63.Size = new System.Drawing.Size(157, 20); + this.panel63.TabIndex = 158; + // + // panel64 + // + this.panel64.Dock = System.Windows.Forms.DockStyle.Top; + this.panel64.Location = new System.Drawing.Point(0, 260); + this.panel64.Name = "panel64"; + this.panel64.Size = new System.Drawing.Size(157, 20); + this.panel64.TabIndex = 156; + // + // panel65 + // + this.panel65.Dock = System.Windows.Forms.DockStyle.Top; + this.panel65.Location = new System.Drawing.Point(0, 240); + this.panel65.Name = "panel65"; + this.panel65.Size = new System.Drawing.Size(157, 20); + this.panel65.TabIndex = 155; + // + // panel66 + // + this.panel66.Controls.Add(this.arLabel5); + this.panel66.Dock = System.Windows.Forms.DockStyle.Top; + this.panel66.Location = new System.Drawing.Point(0, 220); + this.panel66.Name = "panel66"; + this.panel66.Size = new System.Drawing.Size(157, 20); + this.panel66.TabIndex = 154; + // + // arLabel5 + // + this.arLabel5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel5.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel5.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel5.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel5.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel5.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel5.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel5.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel5.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel5.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.arLabel5.ForeColor = System.Drawing.Color.Gold; + this.arLabel5.GradientEnable = true; + this.arLabel5.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel5.GradientRepeatBG = false; + this.arLabel5.isButton = false; + this.arLabel5.Location = new System.Drawing.Point(0, 0); + this.arLabel5.Margin = new System.Windows.Forms.Padding(0); + this.arLabel5.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel5.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel5.msg = null; + this.arLabel5.Name = "arLabel5"; + this.arLabel5.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel5.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel5.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel5.ProgressEnable = false; + this.arLabel5.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel5.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel5.ProgressMax = 100F; + this.arLabel5.ProgressMin = 0F; + this.arLabel5.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel5.ProgressValue = 0F; + this.arLabel5.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel5.Sign = ""; + this.arLabel5.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel5.SignColor = System.Drawing.Color.Yellow; + this.arLabel5.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel5.Size = new System.Drawing.Size(157, 20); + this.arLabel5.TabIndex = 154; + this.arLabel5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel5.TextShadow = true; + this.arLabel5.TextVisible = true; + // + // panel67 + // + this.panel67.Controls.Add(this.arLabel60); + this.panel67.Dock = System.Windows.Forms.DockStyle.Top; + this.panel67.Location = new System.Drawing.Point(0, 200); + this.panel67.Name = "panel67"; + this.panel67.Size = new System.Drawing.Size(157, 20); + this.panel67.TabIndex = 153; + // + // arLabel60 + // + this.arLabel60.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel60.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel60.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel60.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel60.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel60.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel60.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel60.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel60.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel60.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.arLabel60.ForeColor = System.Drawing.Color.Gold; + this.arLabel60.GradientEnable = true; + this.arLabel60.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel60.GradientRepeatBG = false; + this.arLabel60.isButton = false; + this.arLabel60.Location = new System.Drawing.Point(0, 0); + this.arLabel60.Margin = new System.Windows.Forms.Padding(0); + this.arLabel60.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel60.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel60.msg = null; + this.arLabel60.Name = "arLabel60"; + this.arLabel60.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel60.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel60.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel60.ProgressEnable = false; + this.arLabel60.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel60.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel60.ProgressMax = 100F; + this.arLabel60.ProgressMin = 0F; + this.arLabel60.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel60.ProgressValue = 0F; + this.arLabel60.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel60.Sign = ""; + this.arLabel60.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel60.SignColor = System.Drawing.Color.Yellow; + this.arLabel60.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel60.Size = new System.Drawing.Size(157, 20); + this.arLabel60.TabIndex = 15; + this.arLabel60.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel60.TextShadow = true; + this.arLabel60.TextVisible = true; + // + // panel68 + // + this.panel68.Controls.Add(this.arLabel59); + this.panel68.Dock = System.Windows.Forms.DockStyle.Top; + this.panel68.Location = new System.Drawing.Point(0, 180); + this.panel68.Name = "panel68"; + this.panel68.Size = new System.Drawing.Size(157, 20); + this.panel68.TabIndex = 152; + // + // arLabel59 + // + this.arLabel59.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel59.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel59.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel59.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel59.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel59.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel59.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel59.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel59.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel59.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.arLabel59.ForeColor = System.Drawing.Color.Gold; + this.arLabel59.GradientEnable = true; + this.arLabel59.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel59.GradientRepeatBG = false; + this.arLabel59.isButton = false; + this.arLabel59.Location = new System.Drawing.Point(0, 0); + this.arLabel59.Margin = new System.Windows.Forms.Padding(0); + this.arLabel59.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel59.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel59.msg = null; + this.arLabel59.Name = "arLabel59"; + this.arLabel59.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel59.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel59.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel59.ProgressEnable = false; + this.arLabel59.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel59.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel59.ProgressMax = 100F; + this.arLabel59.ProgressMin = 0F; + this.arLabel59.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel59.ProgressValue = 0F; + this.arLabel59.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel59.Sign = ""; + this.arLabel59.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel59.SignColor = System.Drawing.Color.Yellow; + this.arLabel59.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel59.Size = new System.Drawing.Size(157, 20); + this.arLabel59.TabIndex = 15; + this.arLabel59.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel59.TextShadow = true; + this.arLabel59.TextVisible = true; + // + // panel69 + // + this.panel69.Controls.Add(this.arLabel58); + this.panel69.Controls.Add(this.arLabel61); + this.panel69.Dock = System.Windows.Forms.DockStyle.Top; + this.panel69.Location = new System.Drawing.Point(0, 160); + this.panel69.Name = "panel69"; + this.panel69.Size = new System.Drawing.Size(157, 20); + this.panel69.TabIndex = 151; + // + // arLabel58 + // + this.arLabel58.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel58.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel58.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel58.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel58.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel58.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel58.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel58.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel58.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel58.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel58.ForeColor = System.Drawing.Color.SteelBlue; + this.arLabel58.GradientEnable = true; + this.arLabel58.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel58.GradientRepeatBG = false; + this.arLabel58.isButton = false; + this.arLabel58.Location = new System.Drawing.Point(40, 0); + this.arLabel58.Margin = new System.Windows.Forms.Padding(0); + this.arLabel58.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel58.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel58.msg = null; + this.arLabel58.Name = "arLabel58"; + this.arLabel58.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel58.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel58.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel58.ProgressEnable = false; + this.arLabel58.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel58.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel58.ProgressMax = 100F; + this.arLabel58.ProgressMin = 0F; + this.arLabel58.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel58.ProgressValue = 0F; + this.arLabel58.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel58.Sign = ""; + this.arLabel58.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel58.SignColor = System.Drawing.Color.Yellow; + this.arLabel58.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel58.Size = new System.Drawing.Size(117, 20); + this.arLabel58.TabIndex = 15; + this.arLabel58.Text = "{DEGREE}"; + this.arLabel58.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel58.TextShadow = true; + this.arLabel58.TextVisible = true; + // + // arLabel61 + // + this.arLabel61.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.arLabel61.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel61.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel61.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel61.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel61.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel61.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel61.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel61.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel61.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.arLabel61.ForeColor = System.Drawing.Color.SteelBlue; + this.arLabel61.GradientEnable = true; + this.arLabel61.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel61.GradientRepeatBG = false; + this.arLabel61.isButton = false; + this.arLabel61.Location = new System.Drawing.Point(0, 0); + this.arLabel61.Margin = new System.Windows.Forms.Padding(0); + this.arLabel61.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel61.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel61.msg = null; + this.arLabel61.Name = "arLabel61"; + this.arLabel61.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel61.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel61.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel61.ProgressEnable = false; + this.arLabel61.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel61.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel61.ProgressMax = 100F; + this.arLabel61.ProgressMin = 0F; + this.arLabel61.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel61.ProgressValue = 0F; + this.arLabel61.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel61.Sign = ""; + this.arLabel61.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel61.SignColor = System.Drawing.Color.Yellow; + this.arLabel61.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel61.Size = new System.Drawing.Size(40, 20); + this.arLabel61.TabIndex = 9; + this.arLabel61.Text = "DEG"; + this.arLabel61.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel61.TextShadow = true; + this.arLabel61.TextVisible = true; + // + // panel70 + // + this.panel70.Controls.Add(this.arLabel92); + this.panel70.Controls.Add(this.arLabel83); + this.panel70.Dock = System.Windows.Forms.DockStyle.Top; + this.panel70.Location = new System.Drawing.Point(0, 140); + this.panel70.Name = "panel70"; + this.panel70.Size = new System.Drawing.Size(157, 20); + this.panel70.TabIndex = 149; + // + // arLabel92 + // + this.arLabel92.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel92.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel92.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel92.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel92.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel92.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel92.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel92.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel92.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel92.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel92.ForeColor = System.Drawing.Color.Gold; + this.arLabel92.GradientEnable = true; + this.arLabel92.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel92.GradientRepeatBG = false; + this.arLabel92.isButton = false; + this.arLabel92.Location = new System.Drawing.Point(40, 0); + this.arLabel92.Margin = new System.Windows.Forms.Padding(0); + this.arLabel92.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel92.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel92.msg = null; + this.arLabel92.Name = "arLabel92"; + this.arLabel92.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel92.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel92.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel92.ProgressEnable = false; + this.arLabel92.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel92.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel92.ProgressMax = 100F; + this.arLabel92.ProgressMin = 0F; + this.arLabel92.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel92.ProgressValue = 0F; + this.arLabel92.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel92.Sign = ""; + this.arLabel92.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel92.SignColor = System.Drawing.Color.Yellow; + this.arLabel92.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel92.Size = new System.Drawing.Size(117, 20); + this.arLabel92.TabIndex = 14; + this.arLabel92.Text = "--"; + this.arLabel92.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel92.TextShadow = true; + this.arLabel92.TextVisible = true; + // + // arLabel83 + // + this.arLabel83.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel83.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel83.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel83.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel83.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel83.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel83.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel83.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel83.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel83.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.arLabel83.ForeColor = System.Drawing.Color.White; + this.arLabel83.GradientEnable = true; + this.arLabel83.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel83.GradientRepeatBG = false; + this.arLabel83.isButton = false; + this.arLabel83.Location = new System.Drawing.Point(0, 0); + this.arLabel83.Margin = new System.Windows.Forms.Padding(0); + this.arLabel83.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel83.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel83.msg = null; + this.arLabel83.Name = "arLabel83"; + this.arLabel83.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel83.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel83.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel83.ProgressEnable = false; + this.arLabel83.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel83.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel83.ProgressMax = 100F; + this.arLabel83.ProgressMin = 0F; + this.arLabel83.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel83.ProgressValue = 0F; + this.arLabel83.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel83.Sign = ""; + this.arLabel83.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel83.SignColor = System.Drawing.Color.Yellow; + this.arLabel83.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel83.Size = new System.Drawing.Size(40, 20); + this.arLabel83.TabIndex = 13; + this.arLabel83.Text = "SIZE"; + this.arLabel83.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel83.TextShadow = true; + this.arLabel83.TextVisible = true; + // + // panel71 + // + this.panel71.Controls.Add(this.arLabel87); + this.panel71.Controls.Add(this.arLabel81); + this.panel71.Dock = System.Windows.Forms.DockStyle.Top; + this.panel71.Location = new System.Drawing.Point(0, 120); + this.panel71.Name = "panel71"; + this.panel71.Size = new System.Drawing.Size(157, 20); + this.panel71.TabIndex = 150; + // + // arLabel87 + // + this.arLabel87.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel87.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel87.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel87.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel87.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel87.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel87.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel87.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel87.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel87.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel87.ForeColor = System.Drawing.Color.Gold; + this.arLabel87.GradientEnable = true; + this.arLabel87.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel87.GradientRepeatBG = false; + this.arLabel87.isButton = false; + this.arLabel87.Location = new System.Drawing.Point(40, 0); + this.arLabel87.Margin = new System.Windows.Forms.Padding(0); + this.arLabel87.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel87.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel87.msg = null; + this.arLabel87.Name = "arLabel87"; + this.arLabel87.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel87.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel87.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel87.ProgressEnable = false; + this.arLabel87.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel87.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel87.ProgressMax = 100F; + this.arLabel87.ProgressMin = 0F; + this.arLabel87.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel87.ProgressValue = 0F; + this.arLabel87.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel87.Sign = ""; + this.arLabel87.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel87.SignColor = System.Drawing.Color.Yellow; + this.arLabel87.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel87.Size = new System.Drawing.Size(117, 20); + this.arLabel87.TabIndex = 14; + this.arLabel87.Text = "--"; + this.arLabel87.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel87.TextShadow = true; + this.arLabel87.TextVisible = true; + // + // arLabel81 + // + this.arLabel81.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel81.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel81.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel81.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel81.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel81.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel81.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel81.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel81.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel81.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel81.ForeColor = System.Drawing.Color.White; + this.arLabel81.GradientEnable = true; + this.arLabel81.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel81.GradientRepeatBG = false; + this.arLabel81.isButton = false; + this.arLabel81.Location = new System.Drawing.Point(0, 0); + this.arLabel81.Margin = new System.Windows.Forms.Padding(0); + this.arLabel81.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel81.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel81.msg = null; + this.arLabel81.Name = "arLabel81"; + this.arLabel81.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel81.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel81.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel81.ProgressEnable = false; + this.arLabel81.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel81.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel81.ProgressMax = 100F; + this.arLabel81.ProgressMin = 0F; + this.arLabel81.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel81.ProgressValue = 0F; + this.arLabel81.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel81.Sign = ""; + this.arLabel81.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel81.SignColor = System.Drawing.Color.Yellow; + this.arLabel81.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel81.Size = new System.Drawing.Size(40, 20); + this.arLabel81.TabIndex = 13; + this.arLabel81.Text = "PART"; + this.arLabel81.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel81.TextShadow = true; + this.arLabel81.TextVisible = true; + // + // panel72 + // + this.panel72.Controls.Add(this.arLabel43); + this.panel72.Controls.Add(this.arLabel40); + this.panel72.Dock = System.Windows.Forms.DockStyle.Top; + this.panel72.Location = new System.Drawing.Point(0, 100); + this.panel72.Name = "panel72"; + this.panel72.Size = new System.Drawing.Size(157, 20); + this.panel72.TabIndex = 157; + // + // arLabel43 + // + this.arLabel43.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel43.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel43.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel43.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel43.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel43.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel43.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel43.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel43.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel43.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel43.ForeColor = System.Drawing.Color.Gold; + this.arLabel43.GradientEnable = true; + this.arLabel43.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel43.GradientRepeatBG = false; + this.arLabel43.isButton = false; + this.arLabel43.Location = new System.Drawing.Point(40, 0); + this.arLabel43.Margin = new System.Windows.Forms.Padding(0); + this.arLabel43.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel43.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel43.msg = null; + this.arLabel43.Name = "arLabel43"; + this.arLabel43.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel43.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel43.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel43.ProgressEnable = false; + this.arLabel43.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel43.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel43.ProgressMax = 100F; + this.arLabel43.ProgressMin = 0F; + this.arLabel43.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel43.ProgressValue = 0F; + this.arLabel43.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel43.Sign = ""; + this.arLabel43.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel43.SignColor = System.Drawing.Color.Yellow; + this.arLabel43.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel43.Size = new System.Drawing.Size(117, 20); + this.arLabel43.TabIndex = 14; + this.arLabel43.Text = "--"; + this.arLabel43.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel43.TextShadow = true; + this.arLabel43.TextVisible = true; + // + // arLabel40 + // + this.arLabel40.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel40.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel40.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel40.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel40.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel40.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel40.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel40.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel40.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel40.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.arLabel40.ForeColor = System.Drawing.Color.White; + this.arLabel40.GradientEnable = true; + this.arLabel40.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel40.GradientRepeatBG = false; + this.arLabel40.isButton = false; + this.arLabel40.Location = new System.Drawing.Point(0, 0); + this.arLabel40.Margin = new System.Windows.Forms.Padding(0); + this.arLabel40.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel40.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel40.msg = null; + this.arLabel40.Name = "arLabel40"; + this.arLabel40.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel40.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel40.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel40.ProgressEnable = false; + this.arLabel40.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel40.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel40.ProgressMax = 100F; + this.arLabel40.ProgressMin = 0F; + this.arLabel40.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel40.ProgressValue = 0F; + this.arLabel40.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel40.Sign = ""; + this.arLabel40.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel40.SignColor = System.Drawing.Color.Yellow; + this.arLabel40.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel40.Size = new System.Drawing.Size(40, 20); + this.arLabel40.TabIndex = 13; + this.arLabel40.Text = "MFG"; + this.arLabel40.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel40.TextShadow = true; + this.arLabel40.TextVisible = true; + // + // panel73 + // + this.panel73.Controls.Add(this.arLabel44); + this.panel73.Controls.Add(this.arLabel45); + this.panel73.Dock = System.Windows.Forms.DockStyle.Top; + this.panel73.Location = new System.Drawing.Point(0, 80); + this.panel73.Name = "panel73"; + this.panel73.Size = new System.Drawing.Size(157, 20); + this.panel73.TabIndex = 159; + // + // arLabel44 + // + this.arLabel44.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel44.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel44.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel44.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel44.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel44.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel44.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel44.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel44.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel44.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel44.ForeColor = System.Drawing.Color.Gold; + this.arLabel44.GradientEnable = true; + this.arLabel44.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel44.GradientRepeatBG = false; + this.arLabel44.isButton = false; + this.arLabel44.Location = new System.Drawing.Point(40, 0); + this.arLabel44.Margin = new System.Windows.Forms.Padding(0); + this.arLabel44.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel44.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel44.msg = null; + this.arLabel44.Name = "arLabel44"; + this.arLabel44.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel44.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel44.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel44.ProgressEnable = false; + this.arLabel44.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel44.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel44.ProgressMax = 100F; + this.arLabel44.ProgressMin = 0F; + this.arLabel44.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel44.ProgressValue = 0F; + this.arLabel44.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel44.Sign = ""; + this.arLabel44.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel44.SignColor = System.Drawing.Color.Yellow; + this.arLabel44.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel44.Size = new System.Drawing.Size(117, 20); + this.arLabel44.TabIndex = 10; + this.arLabel44.Text = "--"; + this.arLabel44.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel44.TextShadow = true; + this.arLabel44.TextVisible = true; + // + // arLabel45 + // + this.arLabel45.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel45.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel45.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel45.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel45.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel45.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel45.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel45.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel45.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel45.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.arLabel45.ForeColor = System.Drawing.Color.White; + this.arLabel45.GradientEnable = true; + this.arLabel45.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel45.GradientRepeatBG = false; + this.arLabel45.isButton = false; + this.arLabel45.Location = new System.Drawing.Point(0, 0); + this.arLabel45.Margin = new System.Windows.Forms.Padding(0); + this.arLabel45.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel45.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel45.msg = null; + this.arLabel45.Name = "arLabel45"; + this.arLabel45.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel45.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel45.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel45.ProgressEnable = false; + this.arLabel45.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel45.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel45.ProgressMax = 100F; + this.arLabel45.ProgressMin = 0F; + this.arLabel45.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel45.ProgressValue = 0F; + this.arLabel45.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel45.Sign = ""; + this.arLabel45.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel45.SignColor = System.Drawing.Color.Yellow; + this.arLabel45.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel45.Size = new System.Drawing.Size(40, 20); + this.arLabel45.TabIndex = 9; + this.arLabel45.Text = "VLOT"; + this.arLabel45.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel45.TextShadow = true; + this.arLabel45.TextVisible = true; + // + // panel74 + // + this.panel74.Controls.Add(this.arLabel63); + this.panel74.Controls.Add(this.arLabel62); + this.panel74.Dock = System.Windows.Forms.DockStyle.Top; + this.panel74.Location = new System.Drawing.Point(0, 60); + this.panel74.Name = "panel74"; + this.panel74.Size = new System.Drawing.Size(157, 20); + this.panel74.TabIndex = 160; + // + // arLabel63 + // + this.arLabel63.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel63.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel63.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel63.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel63.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel63.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel63.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel63.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel63.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel63.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel63.ForeColor = System.Drawing.Color.Gold; + this.arLabel63.GradientEnable = true; + this.arLabel63.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel63.GradientRepeatBG = false; + this.arLabel63.isButton = false; + this.arLabel63.Location = new System.Drawing.Point(40, 0); + this.arLabel63.Margin = new System.Windows.Forms.Padding(0); + this.arLabel63.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel63.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel63.msg = null; + this.arLabel63.Name = "arLabel63"; + this.arLabel63.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel63.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel63.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel63.ProgressEnable = false; + this.arLabel63.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel63.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel63.ProgressMax = 100F; + this.arLabel63.ProgressMin = 0F; + this.arLabel63.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel63.ProgressValue = 0F; + this.arLabel63.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel63.Sign = ""; + this.arLabel63.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel63.SignColor = System.Drawing.Color.Yellow; + this.arLabel63.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel63.Size = new System.Drawing.Size(117, 20); + this.arLabel63.TabIndex = 12; + this.arLabel63.Text = "--"; + this.arLabel63.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel63.TextShadow = true; + this.arLabel63.TextVisible = true; + // + // arLabel62 + // + this.arLabel62.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel62.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel62.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel62.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel62.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel62.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel62.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel62.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel62.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel62.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.arLabel62.ForeColor = System.Drawing.Color.White; + this.arLabel62.GradientEnable = true; + this.arLabel62.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel62.GradientRepeatBG = false; + this.arLabel62.isButton = false; + this.arLabel62.Location = new System.Drawing.Point(0, 0); + this.arLabel62.Margin = new System.Windows.Forms.Padding(0); + this.arLabel62.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel62.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel62.msg = null; + this.arLabel62.Name = "arLabel62"; + this.arLabel62.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel62.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel62.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel62.ProgressEnable = false; + this.arLabel62.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel62.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel62.ProgressMax = 100F; + this.arLabel62.ProgressMin = 0F; + this.arLabel62.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel62.ProgressValue = 0F; + this.arLabel62.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel62.Sign = ""; + this.arLabel62.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel62.SignColor = System.Drawing.Color.Yellow; + this.arLabel62.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel62.Size = new System.Drawing.Size(40, 20); + this.arLabel62.TabIndex = 11; + this.arLabel62.Text = "MANU"; + this.arLabel62.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel62.TextShadow = true; + this.arLabel62.TextVisible = true; + // + // panel75 + // + this.panel75.Controls.Add(this.arLabel35); + this.panel75.Controls.Add(this.arLabel36); + this.panel75.Dock = System.Windows.Forms.DockStyle.Top; + this.panel75.Location = new System.Drawing.Point(0, 40); + this.panel75.Name = "panel75"; + this.panel75.Size = new System.Drawing.Size(157, 20); + this.panel75.TabIndex = 161; + // + // arLabel35 + // + this.arLabel35.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel35.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel35.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel35.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel35.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel35.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel35.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel35.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel35.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel35.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel35.ForeColor = System.Drawing.Color.Gold; + this.arLabel35.GradientEnable = true; + this.arLabel35.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel35.GradientRepeatBG = false; + this.arLabel35.isButton = false; + this.arLabel35.Location = new System.Drawing.Point(40, 0); + this.arLabel35.Margin = new System.Windows.Forms.Padding(0); + this.arLabel35.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel35.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel35.msg = null; + this.arLabel35.Name = "arLabel35"; + this.arLabel35.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel35.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel35.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel35.ProgressEnable = false; + this.arLabel35.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel35.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel35.ProgressMax = 100F; + this.arLabel35.ProgressMin = 0F; + this.arLabel35.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel35.ProgressValue = 0F; + this.arLabel35.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel35.Sign = ""; + this.arLabel35.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel35.SignColor = System.Drawing.Color.Yellow; + this.arLabel35.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel35.Size = new System.Drawing.Size(117, 20); + this.arLabel35.TabIndex = 12; + this.arLabel35.Text = "--"; + this.arLabel35.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel35.TextShadow = true; + this.arLabel35.TextVisible = true; + // + // arLabel36 + // + this.arLabel36.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel36.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel36.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel36.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel36.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel36.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel36.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel36.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel36.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel36.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.arLabel36.ForeColor = System.Drawing.Color.White; + this.arLabel36.GradientEnable = true; + this.arLabel36.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel36.GradientRepeatBG = false; + this.arLabel36.isButton = false; + this.arLabel36.Location = new System.Drawing.Point(0, 0); + this.arLabel36.Margin = new System.Windows.Forms.Padding(0); + this.arLabel36.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel36.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel36.msg = null; + this.arLabel36.Name = "arLabel36"; + this.arLabel36.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel36.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel36.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel36.ProgressEnable = false; + this.arLabel36.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel36.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel36.ProgressMax = 100F; + this.arLabel36.ProgressMin = 0F; + this.arLabel36.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel36.ProgressValue = 0F; + this.arLabel36.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel36.Sign = ""; + this.arLabel36.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel36.SignColor = System.Drawing.Color.Yellow; + this.arLabel36.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel36.Size = new System.Drawing.Size(40, 20); + this.arLabel36.TabIndex = 11; + this.arLabel36.Text = "QTY"; + this.arLabel36.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel36.TextShadow = true; + this.arLabel36.TextVisible = true; + // + // panel76 + // + this.panel76.Controls.Add(this.arLabel25); + this.panel76.Controls.Add(this.arLabel26); + this.panel76.Dock = System.Windows.Forms.DockStyle.Top; + this.panel76.Location = new System.Drawing.Point(0, 20); + this.panel76.Name = "panel76"; + this.panel76.Size = new System.Drawing.Size(157, 20); + this.panel76.TabIndex = 141; + // + // arLabel25 + // + this.arLabel25.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel25.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel25.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel25.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel25.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel25.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel25.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel25.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel25.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel25.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel25.ForeColor = System.Drawing.Color.Gold; + this.arLabel25.GradientEnable = true; + this.arLabel25.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel25.GradientRepeatBG = false; + this.arLabel25.isButton = false; + this.arLabel25.Location = new System.Drawing.Point(40, 0); + this.arLabel25.Margin = new System.Windows.Forms.Padding(0); + this.arLabel25.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel25.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel25.msg = null; + this.arLabel25.Name = "arLabel25"; + this.arLabel25.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel25.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel25.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel25.ProgressEnable = false; + this.arLabel25.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel25.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel25.ProgressMax = 100F; + this.arLabel25.ProgressMin = 0F; + this.arLabel25.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel25.ProgressValue = 0F; + this.arLabel25.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel25.Sign = ""; + this.arLabel25.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel25.SignColor = System.Drawing.Color.Yellow; + this.arLabel25.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel25.Size = new System.Drawing.Size(117, 20); + this.arLabel25.TabIndex = 10; + this.arLabel25.Text = "--"; + this.arLabel25.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel25.TextShadow = true; + this.arLabel25.TextVisible = true; + // + // arLabel26 + // + this.arLabel26.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel26.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel26.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel26.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel26.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel26.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel26.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel26.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel26.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel26.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.arLabel26.ForeColor = System.Drawing.Color.White; + this.arLabel26.GradientEnable = true; + this.arLabel26.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel26.GradientRepeatBG = false; + this.arLabel26.isButton = false; + this.arLabel26.Location = new System.Drawing.Point(0, 0); + this.arLabel26.Margin = new System.Windows.Forms.Padding(0); + this.arLabel26.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel26.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel26.msg = null; + this.arLabel26.Name = "arLabel26"; + this.arLabel26.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel26.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel26.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel26.ProgressEnable = false; + this.arLabel26.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel26.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel26.ProgressMax = 100F; + this.arLabel26.ProgressMin = 0F; + this.arLabel26.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel26.ProgressValue = 0F; + this.arLabel26.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel26.Sign = ""; + this.arLabel26.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel26.SignColor = System.Drawing.Color.Yellow; + this.arLabel26.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel26.Size = new System.Drawing.Size(40, 20); + this.arLabel26.TabIndex = 9; + this.arLabel26.Text = "SID"; + this.arLabel26.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel26.TextShadow = true; + this.arLabel26.TextVisible = true; + // + // panel77 + // + this.panel77.Controls.Add(this.arLabel30); + this.panel77.Controls.Add(this.arLabel29); + this.panel77.Dock = System.Windows.Forms.DockStyle.Top; + this.panel77.Location = new System.Drawing.Point(0, 0); + this.panel77.Name = "panel77"; + this.panel77.Size = new System.Drawing.Size(157, 20); + this.panel77.TabIndex = 148; + // + // arLabel30 + // + this.arLabel30.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel30.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel30.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel30.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel30.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel30.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel30.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel30.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel30.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel30.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel30.ForeColor = System.Drawing.Color.Gold; + this.arLabel30.GradientEnable = true; + this.arLabel30.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel30.GradientRepeatBG = false; + this.arLabel30.isButton = false; + this.arLabel30.Location = new System.Drawing.Point(40, 0); + this.arLabel30.Margin = new System.Windows.Forms.Padding(0); + this.arLabel30.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel30.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel30.msg = null; + this.arLabel30.Name = "arLabel30"; + this.arLabel30.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel30.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel30.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel30.ProgressEnable = false; + this.arLabel30.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel30.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel30.ProgressMax = 100F; + this.arLabel30.ProgressMin = 0F; + this.arLabel30.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel30.ProgressValue = 0F; + this.arLabel30.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel30.Sign = ""; + this.arLabel30.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel30.SignColor = System.Drawing.Color.Yellow; + this.arLabel30.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel30.Size = new System.Drawing.Size(117, 20); + this.arLabel30.TabIndex = 10; + this.arLabel30.Text = "--"; + this.arLabel30.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel30.TextShadow = true; + this.arLabel30.TextVisible = true; + // + // arLabel29 + // + this.arLabel29.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel29.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel29.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel29.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel29.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel29.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel29.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel29.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel29.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel29.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.arLabel29.ForeColor = System.Drawing.Color.White; + this.arLabel29.GradientEnable = true; + this.arLabel29.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel29.GradientRepeatBG = false; + this.arLabel29.isButton = false; + this.arLabel29.Location = new System.Drawing.Point(0, 0); + this.arLabel29.Margin = new System.Windows.Forms.Padding(0); + this.arLabel29.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel29.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel29.msg = null; + this.arLabel29.Name = "arLabel29"; + this.arLabel29.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel29.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel29.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel29.ProgressEnable = false; + this.arLabel29.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel29.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel29.ProgressMax = 100F; + this.arLabel29.ProgressMin = 0F; + this.arLabel29.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel29.ProgressValue = 0F; + this.arLabel29.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel29.Sign = ""; + this.arLabel29.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel29.SignColor = System.Drawing.Color.Yellow; + this.arLabel29.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel29.Size = new System.Drawing.Size(40, 20); + this.arLabel29.TabIndex = 9; + this.arLabel29.Text = "RID"; + this.arLabel29.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel29.TextShadow = true; + this.arLabel29.TextVisible = true; + this.arLabel29.Click += new System.EventHandler(this.arLabel29_Click); + // + // lbMsgC + // + this.lbMsgC.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lbMsgC.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(60)))), ((int)(((byte)(60))))); + this.lbMsgC.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbMsgC.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.lbMsgC.BorderColorOver = System.Drawing.Color.Red; + this.lbMsgC.BorderSize = new System.Windows.Forms.Padding(0); + this.lbMsgC.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbMsgC.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbMsgC.Dock = System.Windows.Forms.DockStyle.Bottom; + this.lbMsgC.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbMsgC.ForeColor = System.Drawing.Color.Blue; + this.lbMsgC.GradientEnable = true; + this.lbMsgC.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lbMsgC.GradientRepeatBG = false; + this.lbMsgC.isButton = false; + this.lbMsgC.Location = new System.Drawing.Point(0, 300); + this.lbMsgC.Margin = new System.Windows.Forms.Padding(5, 4, 7, 3); + this.lbMsgC.MouseDownColor = System.Drawing.Color.Yellow; + this.lbMsgC.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbMsgC.msg = null; + this.lbMsgC.Name = "lbMsgC"; + this.lbMsgC.ProgressBorderColor = System.Drawing.Color.Black; + this.lbMsgC.ProgressColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.lbMsgC.ProgressColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lbMsgC.ProgressEnable = true; + this.lbMsgC.ProgressFont = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Bold); + this.lbMsgC.ProgressForeColor = System.Drawing.Color.Gold; + this.lbMsgC.ProgressMax = 100F; + this.lbMsgC.ProgressMin = 0F; + this.lbMsgC.ProgressPadding = new System.Windows.Forms.Padding(2); + this.lbMsgC.ProgressValue = 50F; + this.lbMsgC.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.lbMsgC.Sign = ""; + this.lbMsgC.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbMsgC.SignColor = System.Drawing.Color.Yellow; + this.lbMsgC.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbMsgC.Size = new System.Drawing.Size(415, 34); + this.lbMsgC.TabIndex = 124; + this.lbMsgC.Text = "상태 메세지(C)"; + this.lbMsgC.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbMsgC.TextShadow = true; + this.lbMsgC.TextVisible = true; + // + // panel10 + // + this.panel10.Controls.Add(this.lbLock1); + this.panel10.Controls.Add(this.arLabel75); + this.panel10.Controls.Add(this.arLabel73); + this.panel10.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel10.Location = new System.Drawing.Point(0, 334); + this.panel10.Name = "panel10"; + this.panel10.Size = new System.Drawing.Size(415, 75); + this.panel10.TabIndex = 154; + // + // lbLock1 + // + this.lbLock1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lbLock1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbLock1.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbLock1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbLock1.BorderColorOver = System.Drawing.Color.DarkBlue; + this.lbLock1.BorderSize = new System.Windows.Forms.Padding(0); + this.lbLock1.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbLock1.Cursor = System.Windows.Forms.Cursors.Hand; + this.lbLock1.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbLock1.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbLock1.ForeColor = System.Drawing.Color.SkyBlue; + this.lbLock1.GradientEnable = true; + this.lbLock1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbLock1.GradientRepeatBG = false; + this.lbLock1.isButton = true; + this.lbLock1.Location = new System.Drawing.Point(100, 0); + this.lbLock1.Margin = new System.Windows.Forms.Padding(0); + this.lbLock1.MouseDownColor = System.Drawing.Color.Yellow; + this.lbLock1.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbLock1.msg = null; + this.lbLock1.Name = "lbLock1"; + this.lbLock1.ProgressBorderColor = System.Drawing.Color.Black; + this.lbLock1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbLock1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbLock1.ProgressEnable = false; + this.lbLock1.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbLock1.ProgressForeColor = System.Drawing.Color.Black; + this.lbLock1.ProgressMax = 100F; + this.lbLock1.ProgressMin = 0F; + this.lbLock1.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbLock1.ProgressValue = 0F; + this.lbLock1.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lbLock1.Sign = ""; + this.lbLock1.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbLock1.SignColor = System.Drawing.Color.Yellow; + this.lbLock1.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbLock1.Size = new System.Drawing.Size(215, 75); + this.lbLock1.TabIndex = 15; + this.lbLock1.Tag = "1"; + this.lbLock1.Text = "포트 잠금"; + this.lbLock1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbLock1.TextShadow = true; + this.lbLock1.TextVisible = true; + this.lbLock1.Click += new System.EventHandler(this.lbLock2_Click); + // + // panVision2 + // + this.panVision2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.panVision2.Controls.Add(this.iv2); + this.panVision2.Controls.Add(this.panel7); + this.panVision2.Controls.Add(this.panel46); + this.panVision2.Controls.Add(this.lbMsgR); + this.panVision2.Controls.Add(this.panel37); + this.panVision2.Dock = System.Windows.Forms.DockStyle.Right; + this.panVision2.Location = new System.Drawing.Point(837, 38); + this.panVision2.Margin = new System.Windows.Forms.Padding(0); + this.panVision2.Name = "panVision2"; + this.panVision2.Size = new System.Drawing.Size(415, 411); + this.panVision2.TabIndex = 146; + // + // panel7 + // + this.panel7.Controls.Add(this.sbVisTitle2); + this.panel7.Controls.Add(this.lbSize2); + this.panel7.Dock = System.Windows.Forms.DockStyle.Top; + this.panel7.Location = new System.Drawing.Point(0, 0); + this.panel7.Margin = new System.Windows.Forms.Padding(0); + this.panel7.Name = "panel7"; + this.panel7.Size = new System.Drawing.Size(256, 30); + this.panel7.TabIndex = 3; + // + // sbVisTitle2 + // + this.sbVisTitle2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.sbVisTitle2.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.sbVisTitle2.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.sbVisTitle2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.sbVisTitle2.BorderColorOver = System.Drawing.Color.DarkBlue; + this.sbVisTitle2.BorderSize = new System.Windows.Forms.Padding(0); + this.sbVisTitle2.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.sbVisTitle2.ContextMenuStrip = this.cmCam; + this.sbVisTitle2.Cursor = System.Windows.Forms.Cursors.Arrow; + this.sbVisTitle2.Dock = System.Windows.Forms.DockStyle.Fill; + this.sbVisTitle2.Font = new System.Drawing.Font("Consolas", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.sbVisTitle2.ForeColor = System.Drawing.Color.White; + this.sbVisTitle2.GradientEnable = true; + this.sbVisTitle2.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.sbVisTitle2.GradientRepeatBG = false; + this.sbVisTitle2.isButton = false; + this.sbVisTitle2.Location = new System.Drawing.Point(0, 0); + this.sbVisTitle2.Margin = new System.Windows.Forms.Padding(0); + this.sbVisTitle2.MouseDownColor = System.Drawing.Color.Yellow; + this.sbVisTitle2.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.sbVisTitle2.msg = null; + this.sbVisTitle2.Name = "sbVisTitle2"; + this.sbVisTitle2.ProgressBorderColor = System.Drawing.Color.Black; + this.sbVisTitle2.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.sbVisTitle2.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.sbVisTitle2.ProgressEnable = false; + this.sbVisTitle2.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.sbVisTitle2.ProgressForeColor = System.Drawing.Color.Black; + this.sbVisTitle2.ProgressMax = 100F; + this.sbVisTitle2.ProgressMin = 0F; + this.sbVisTitle2.ProgressPadding = new System.Windows.Forms.Padding(0); + this.sbVisTitle2.ProgressValue = 0F; + this.sbVisTitle2.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.sbVisTitle2.Sign = ""; + this.sbVisTitle2.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.sbVisTitle2.SignColor = System.Drawing.Color.Yellow; + this.sbVisTitle2.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.sbVisTitle2.Size = new System.Drawing.Size(201, 30); + this.sbVisTitle2.TabIndex = 143; + this.sbVisTitle2.Tag = "2"; + this.sbVisTitle2.Text = "VISION (RIGHT)"; + this.sbVisTitle2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.sbVisTitle2.TextShadow = true; + this.sbVisTitle2.TextVisible = true; + this.sbVisTitle2.Click += new System.EventHandler(this.sbVisTitle2_Click); + // + // lbSize2 + // + this.lbSize2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lbSize2.Dock = System.Windows.Forms.DockStyle.Right; + this.lbSize2.ForeColor = System.Drawing.Color.White; + this.lbSize2.Location = new System.Drawing.Point(201, 0); + this.lbSize2.Name = "lbSize2"; + this.lbSize2.Size = new System.Drawing.Size(55, 30); + this.lbSize2.TabIndex = 144; + this.lbSize2.Text = "7/13"; + this.lbSize2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel46 + // + this.panel46.Controls.Add(this.panel47); + this.panel46.Controls.Add(this.panel48); + this.panel46.Controls.Add(this.panel49); + this.panel46.Controls.Add(this.panel50); + this.panel46.Controls.Add(this.panel51); + this.panel46.Controls.Add(this.panel52); + this.panel46.Controls.Add(this.panel53); + this.panel46.Controls.Add(this.panel54); + this.panel46.Controls.Add(this.panel55); + this.panel46.Controls.Add(this.panel56); + this.panel46.Controls.Add(this.panel57); + this.panel46.Controls.Add(this.panel58); + this.panel46.Controls.Add(this.panel59); + this.panel46.Controls.Add(this.panel60); + this.panel46.Controls.Add(this.panel61); + this.panel46.Dock = System.Windows.Forms.DockStyle.Right; + this.panel46.Location = new System.Drawing.Point(256, 0); + this.panel46.Name = "panel46"; + this.panel46.Size = new System.Drawing.Size(157, 300); + this.panel46.TabIndex = 157; + // + // panel47 + // + this.panel47.Controls.Add(this.arLabel89); + this.panel47.Controls.Add(this.arLabel84); + this.panel47.Dock = System.Windows.Forms.DockStyle.Top; + this.panel47.Location = new System.Drawing.Point(0, 280); + this.panel47.Name = "panel47"; + this.panel47.Size = new System.Drawing.Size(157, 20); + this.panel47.TabIndex = 158; + // + // arLabel89 + // + this.arLabel89.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel89.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel89.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel89.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel89.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel89.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel89.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel89.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel89.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel89.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel89.ForeColor = System.Drawing.Color.SkyBlue; + this.arLabel89.GradientEnable = true; + this.arLabel89.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel89.GradientRepeatBG = false; + this.arLabel89.isButton = false; + this.arLabel89.Location = new System.Drawing.Point(40, 0); + this.arLabel89.Margin = new System.Windows.Forms.Padding(0); + this.arLabel89.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel89.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel89.msg = null; + this.arLabel89.Name = "arLabel89"; + this.arLabel89.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel89.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel89.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel89.ProgressEnable = false; + this.arLabel89.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel89.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel89.ProgressMax = 100F; + this.arLabel89.ProgressMin = 0F; + this.arLabel89.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel89.ProgressValue = 0F; + this.arLabel89.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel89.Sign = ""; + this.arLabel89.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel89.SignColor = System.Drawing.Color.Yellow; + this.arLabel89.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel89.Size = new System.Drawing.Size(117, 20); + this.arLabel89.TabIndex = 14; + this.arLabel89.Text = "--"; + this.arLabel89.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel89.TextShadow = true; + this.arLabel89.TextVisible = true; + // + // arLabel84 + // + this.arLabel84.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel84.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel84.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel84.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel84.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel84.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel84.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel84.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel84.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel84.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel84.ForeColor = System.Drawing.Color.SkyBlue; + this.arLabel84.GradientEnable = true; + this.arLabel84.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel84.GradientRepeatBG = false; + this.arLabel84.isButton = false; + this.arLabel84.Location = new System.Drawing.Point(0, 0); + this.arLabel84.Margin = new System.Windows.Forms.Padding(0); + this.arLabel84.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel84.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel84.msg = null; + this.arLabel84.Name = "arLabel84"; + this.arLabel84.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel84.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel84.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel84.ProgressEnable = false; + this.arLabel84.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel84.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel84.ProgressMax = 100F; + this.arLabel84.ProgressMin = 0F; + this.arLabel84.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel84.ProgressValue = 0F; + this.arLabel84.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel84.Sign = ""; + this.arLabel84.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel84.SignColor = System.Drawing.Color.Yellow; + this.arLabel84.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel84.Size = new System.Drawing.Size(40, 20); + this.arLabel84.TabIndex = 13; + this.arLabel84.Text = "PART"; + this.arLabel84.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel84.TextShadow = true; + this.arLabel84.TextVisible = true; + // + // panel48 + // + this.panel48.Controls.Add(this.arLabel56); + this.panel48.Controls.Add(this.arLabel55); + this.panel48.Dock = System.Windows.Forms.DockStyle.Top; + this.panel48.Location = new System.Drawing.Point(0, 260); + this.panel48.Name = "panel48"; + this.panel48.Size = new System.Drawing.Size(157, 20); + this.panel48.TabIndex = 156; + // + // arLabel56 + // + this.arLabel56.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel56.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel56.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel56.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel56.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel56.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel56.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel56.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel56.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel56.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel56.ForeColor = System.Drawing.Color.SkyBlue; + this.arLabel56.GradientEnable = true; + this.arLabel56.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel56.GradientRepeatBG = false; + this.arLabel56.isButton = false; + this.arLabel56.Location = new System.Drawing.Point(40, 0); + this.arLabel56.Margin = new System.Windows.Forms.Padding(0); + this.arLabel56.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel56.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel56.msg = null; + this.arLabel56.Name = "arLabel56"; + this.arLabel56.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel56.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel56.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel56.ProgressEnable = false; + this.arLabel56.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel56.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel56.ProgressMax = 100F; + this.arLabel56.ProgressMin = 0F; + this.arLabel56.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel56.ProgressValue = 0F; + this.arLabel56.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel56.Sign = ""; + this.arLabel56.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel56.SignColor = System.Drawing.Color.Yellow; + this.arLabel56.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel56.Size = new System.Drawing.Size(117, 20); + this.arLabel56.TabIndex = 16; + this.arLabel56.Text = "--"; + this.arLabel56.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel56.TextShadow = true; + this.arLabel56.TextVisible = true; + // + // arLabel55 + // + this.arLabel55.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel55.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel55.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel55.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel55.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel55.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel55.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel55.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel55.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel55.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.arLabel55.ForeColor = System.Drawing.Color.SkyBlue; + this.arLabel55.GradientEnable = true; + this.arLabel55.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel55.GradientRepeatBG = false; + this.arLabel55.isButton = false; + this.arLabel55.Location = new System.Drawing.Point(0, 0); + this.arLabel55.Margin = new System.Windows.Forms.Padding(0); + this.arLabel55.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel55.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel55.msg = null; + this.arLabel55.Name = "arLabel55"; + this.arLabel55.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel55.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel55.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel55.ProgressEnable = false; + this.arLabel55.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel55.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel55.ProgressMax = 100F; + this.arLabel55.ProgressMin = 0F; + this.arLabel55.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel55.ProgressValue = 0F; + this.arLabel55.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel55.Sign = ""; + this.arLabel55.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel55.SignColor = System.Drawing.Color.Yellow; + this.arLabel55.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel55.Size = new System.Drawing.Size(40, 20); + this.arLabel55.TabIndex = 15; + this.arLabel55.Text = "MFG"; + this.arLabel55.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel55.TextShadow = true; + this.arLabel55.TextVisible = true; + this.arLabel55.Click += new System.EventHandler(this.arLabel20_Click); + // + // panel49 + // + this.panel49.Controls.Add(this.arLabel39); + this.panel49.Controls.Add(this.arLabel54); + this.panel49.Dock = System.Windows.Forms.DockStyle.Top; + this.panel49.Location = new System.Drawing.Point(0, 240); + this.panel49.Name = "panel49"; + this.panel49.Size = new System.Drawing.Size(157, 20); + this.panel49.TabIndex = 155; + // + // arLabel39 + // + this.arLabel39.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel39.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel39.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel39.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel39.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel39.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel39.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel39.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel39.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel39.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel39.ForeColor = System.Drawing.Color.SkyBlue; + this.arLabel39.GradientEnable = true; + this.arLabel39.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel39.GradientRepeatBG = false; + this.arLabel39.isButton = false; + this.arLabel39.Location = new System.Drawing.Point(40, 0); + this.arLabel39.Margin = new System.Windows.Forms.Padding(0); + this.arLabel39.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel39.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel39.msg = null; + this.arLabel39.Name = "arLabel39"; + this.arLabel39.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel39.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel39.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel39.ProgressEnable = false; + this.arLabel39.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel39.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel39.ProgressMax = 100F; + this.arLabel39.ProgressMin = 0F; + this.arLabel39.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel39.ProgressValue = 0F; + this.arLabel39.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel39.Sign = ""; + this.arLabel39.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel39.SignColor = System.Drawing.Color.Yellow; + this.arLabel39.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel39.Size = new System.Drawing.Size(117, 20); + this.arLabel39.TabIndex = 14; + this.arLabel39.Text = "--"; + this.arLabel39.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel39.TextShadow = true; + this.arLabel39.TextVisible = true; + // + // arLabel54 + // + this.arLabel54.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel54.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel54.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel54.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel54.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel54.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel54.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel54.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel54.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel54.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.arLabel54.ForeColor = System.Drawing.Color.SkyBlue; + this.arLabel54.GradientEnable = true; + this.arLabel54.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel54.GradientRepeatBG = false; + this.arLabel54.isButton = false; + this.arLabel54.Location = new System.Drawing.Point(0, 0); + this.arLabel54.Margin = new System.Windows.Forms.Padding(0); + this.arLabel54.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel54.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel54.msg = null; + this.arLabel54.Name = "arLabel54"; + this.arLabel54.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel54.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel54.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel54.ProgressEnable = false; + this.arLabel54.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel54.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel54.ProgressMax = 100F; + this.arLabel54.ProgressMin = 0F; + this.arLabel54.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel54.ProgressValue = 0F; + this.arLabel54.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel54.Sign = ""; + this.arLabel54.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel54.SignColor = System.Drawing.Color.Yellow; + this.arLabel54.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel54.Size = new System.Drawing.Size(40, 20); + this.arLabel54.TabIndex = 13; + this.arLabel54.Text = "VLOT"; + this.arLabel54.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel54.TextShadow = true; + this.arLabel54.TextVisible = true; + // + // panel50 + // + this.panel50.Controls.Add(this.arLabel71); + this.panel50.Controls.Add(this.arLabel68); + this.panel50.Dock = System.Windows.Forms.DockStyle.Top; + this.panel50.Location = new System.Drawing.Point(0, 220); + this.panel50.Name = "panel50"; + this.panel50.Size = new System.Drawing.Size(157, 20); + this.panel50.TabIndex = 154; + // + // arLabel71 + // + this.arLabel71.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel71.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel71.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel71.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel71.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel71.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel71.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel71.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel71.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel71.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel71.ForeColor = System.Drawing.Color.SkyBlue; + this.arLabel71.GradientEnable = true; + this.arLabel71.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel71.GradientRepeatBG = false; + this.arLabel71.isButton = false; + this.arLabel71.Location = new System.Drawing.Point(40, 0); + this.arLabel71.Margin = new System.Windows.Forms.Padding(0); + this.arLabel71.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel71.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel71.msg = null; + this.arLabel71.Name = "arLabel71"; + this.arLabel71.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel71.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel71.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel71.ProgressEnable = false; + this.arLabel71.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel71.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel71.ProgressMax = 100F; + this.arLabel71.ProgressMin = 0F; + this.arLabel71.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel71.ProgressValue = 0F; + this.arLabel71.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel71.Sign = ""; + this.arLabel71.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel71.SignColor = System.Drawing.Color.Yellow; + this.arLabel71.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel71.Size = new System.Drawing.Size(117, 20); + this.arLabel71.TabIndex = 12; + this.arLabel71.Text = "--"; + this.arLabel71.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel71.TextShadow = true; + this.arLabel71.TextVisible = true; + // + // arLabel68 + // + this.arLabel68.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel68.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel68.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel68.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel68.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel68.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel68.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel68.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel68.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel68.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.arLabel68.ForeColor = System.Drawing.Color.SkyBlue; + this.arLabel68.GradientEnable = true; + this.arLabel68.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel68.GradientRepeatBG = false; + this.arLabel68.isButton = false; + this.arLabel68.Location = new System.Drawing.Point(0, 0); + this.arLabel68.Margin = new System.Windows.Forms.Padding(0); + this.arLabel68.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel68.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel68.msg = null; + this.arLabel68.Name = "arLabel68"; + this.arLabel68.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel68.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel68.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel68.ProgressEnable = false; + this.arLabel68.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel68.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel68.ProgressMax = 100F; + this.arLabel68.ProgressMin = 0F; + this.arLabel68.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel68.ProgressValue = 0F; + this.arLabel68.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel68.Sign = ""; + this.arLabel68.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel68.SignColor = System.Drawing.Color.Yellow; + this.arLabel68.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel68.Size = new System.Drawing.Size(40, 20); + this.arLabel68.TabIndex = 11; + this.arLabel68.Text = "MANU"; + this.arLabel68.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel68.TextShadow = true; + this.arLabel68.TextVisible = true; + // + // panel51 + // + this.panel51.Controls.Add(this.arLabel34); + this.panel51.Controls.Add(this.arLabel21); + this.panel51.Dock = System.Windows.Forms.DockStyle.Top; + this.panel51.Location = new System.Drawing.Point(0, 200); + this.panel51.Name = "panel51"; + this.panel51.Size = new System.Drawing.Size(157, 20); + this.panel51.TabIndex = 153; + // + // arLabel34 + // + this.arLabel34.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel34.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel34.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel34.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel34.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel34.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel34.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel34.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel34.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel34.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel34.ForeColor = System.Drawing.Color.SkyBlue; + this.arLabel34.GradientEnable = true; + this.arLabel34.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel34.GradientRepeatBG = false; + this.arLabel34.isButton = false; + this.arLabel34.Location = new System.Drawing.Point(40, 0); + this.arLabel34.Margin = new System.Windows.Forms.Padding(0); + this.arLabel34.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel34.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel34.msg = null; + this.arLabel34.Name = "arLabel34"; + this.arLabel34.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel34.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel34.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel34.ProgressEnable = false; + this.arLabel34.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel34.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel34.ProgressMax = 100F; + this.arLabel34.ProgressMin = 0F; + this.arLabel34.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel34.ProgressValue = 0F; + this.arLabel34.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel34.Sign = ""; + this.arLabel34.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel34.SignColor = System.Drawing.Color.Yellow; + this.arLabel34.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel34.Size = new System.Drawing.Size(117, 20); + this.arLabel34.TabIndex = 10; + this.arLabel34.Text = "--"; + this.arLabel34.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel34.TextShadow = true; + this.arLabel34.TextVisible = true; + // + // arLabel21 + // + this.arLabel21.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel21.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel21.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel21.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel21.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel21.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel21.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel21.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel21.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel21.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.arLabel21.ForeColor = System.Drawing.Color.SkyBlue; + this.arLabel21.GradientEnable = true; + this.arLabel21.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel21.GradientRepeatBG = false; + this.arLabel21.isButton = false; + this.arLabel21.Location = new System.Drawing.Point(0, 0); + this.arLabel21.Margin = new System.Windows.Forms.Padding(0); + this.arLabel21.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel21.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel21.msg = null; + this.arLabel21.Name = "arLabel21"; + this.arLabel21.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel21.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel21.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel21.ProgressEnable = false; + this.arLabel21.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel21.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel21.ProgressMax = 100F; + this.arLabel21.ProgressMin = 0F; + this.arLabel21.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel21.ProgressValue = 0F; + this.arLabel21.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel21.Sign = ""; + this.arLabel21.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel21.SignColor = System.Drawing.Color.Yellow; + this.arLabel21.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel21.Size = new System.Drawing.Size(40, 20); + this.arLabel21.TabIndex = 9; + this.arLabel21.Text = "QTY"; + this.arLabel21.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel21.TextShadow = true; + this.arLabel21.TextVisible = true; + // + // panel52 + // + this.panel52.Controls.Add(this.arLabel32); + this.panel52.Controls.Add(this.arLabel22); + this.panel52.Dock = System.Windows.Forms.DockStyle.Top; + this.panel52.Location = new System.Drawing.Point(0, 180); + this.panel52.Name = "panel52"; + this.panel52.Size = new System.Drawing.Size(157, 20); + this.panel52.TabIndex = 152; + // + // arLabel32 + // + this.arLabel32.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel32.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel32.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel32.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel32.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel32.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel32.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel32.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel32.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel32.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel32.ForeColor = System.Drawing.Color.SkyBlue; + this.arLabel32.GradientEnable = true; + this.arLabel32.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel32.GradientRepeatBG = false; + this.arLabel32.isButton = false; + this.arLabel32.Location = new System.Drawing.Point(40, 0); + this.arLabel32.Margin = new System.Windows.Forms.Padding(0); + this.arLabel32.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel32.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel32.msg = null; + this.arLabel32.Name = "arLabel32"; + this.arLabel32.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel32.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel32.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel32.ProgressEnable = false; + this.arLabel32.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel32.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel32.ProgressMax = 100F; + this.arLabel32.ProgressMin = 0F; + this.arLabel32.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel32.ProgressValue = 0F; + this.arLabel32.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel32.Sign = ""; + this.arLabel32.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel32.SignColor = System.Drawing.Color.Yellow; + this.arLabel32.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel32.Size = new System.Drawing.Size(117, 20); + this.arLabel32.TabIndex = 10; + this.arLabel32.Text = "--"; + this.arLabel32.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel32.TextShadow = true; + this.arLabel32.TextVisible = true; + // + // arLabel22 + // + this.arLabel22.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel22.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel22.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel22.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel22.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel22.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel22.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel22.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel22.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel22.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.arLabel22.ForeColor = System.Drawing.Color.SkyBlue; + this.arLabel22.GradientEnable = true; + this.arLabel22.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel22.GradientRepeatBG = false; + this.arLabel22.isButton = false; + this.arLabel22.Location = new System.Drawing.Point(0, 0); + this.arLabel22.Margin = new System.Windows.Forms.Padding(0); + this.arLabel22.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel22.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel22.msg = null; + this.arLabel22.Name = "arLabel22"; + this.arLabel22.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel22.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel22.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel22.ProgressEnable = false; + this.arLabel22.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel22.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel22.ProgressMax = 100F; + this.arLabel22.ProgressMin = 0F; + this.arLabel22.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel22.ProgressValue = 0F; + this.arLabel22.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel22.Sign = ""; + this.arLabel22.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel22.SignColor = System.Drawing.Color.Yellow; + this.arLabel22.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel22.Size = new System.Drawing.Size(40, 20); + this.arLabel22.TabIndex = 9; + this.arLabel22.Text = "SID"; + this.arLabel22.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel22.TextShadow = true; + this.arLabel22.TextVisible = true; + // + // panel53 + // + this.panel53.Controls.Add(this.arLabel33); + this.panel53.Controls.Add(this.arLabel27); + this.panel53.Dock = System.Windows.Forms.DockStyle.Top; + this.panel53.Location = new System.Drawing.Point(0, 160); + this.panel53.Name = "panel53"; + this.panel53.Size = new System.Drawing.Size(157, 20); + this.panel53.TabIndex = 151; + // + // arLabel33 + // + this.arLabel33.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel33.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel33.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel33.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel33.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel33.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel33.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel33.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel33.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel33.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel33.ForeColor = System.Drawing.Color.SkyBlue; + this.arLabel33.GradientEnable = true; + this.arLabel33.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel33.GradientRepeatBG = false; + this.arLabel33.isButton = false; + this.arLabel33.Location = new System.Drawing.Point(40, 0); + this.arLabel33.Margin = new System.Windows.Forms.Padding(0); + this.arLabel33.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel33.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel33.msg = null; + this.arLabel33.Name = "arLabel33"; + this.arLabel33.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel33.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel33.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel33.ProgressEnable = false; + this.arLabel33.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel33.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel33.ProgressMax = 100F; + this.arLabel33.ProgressMin = 0F; + this.arLabel33.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel33.ProgressValue = 0F; + this.arLabel33.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel33.Sign = ""; + this.arLabel33.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel33.SignColor = System.Drawing.Color.Yellow; + this.arLabel33.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel33.Size = new System.Drawing.Size(117, 20); + this.arLabel33.TabIndex = 10; + this.arLabel33.Text = "--"; + this.arLabel33.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel33.TextShadow = true; + this.arLabel33.TextVisible = true; + // + // arLabel27 + // + this.arLabel27.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel27.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel27.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel27.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel27.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel27.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel27.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel27.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel27.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel27.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.arLabel27.ForeColor = System.Drawing.Color.SkyBlue; + this.arLabel27.GradientEnable = true; + this.arLabel27.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel27.GradientRepeatBG = false; + this.arLabel27.isButton = false; + this.arLabel27.Location = new System.Drawing.Point(0, 0); + this.arLabel27.Margin = new System.Windows.Forms.Padding(0); + this.arLabel27.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel27.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel27.msg = null; + this.arLabel27.Name = "arLabel27"; + this.arLabel27.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel27.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel27.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel27.ProgressEnable = false; + this.arLabel27.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel27.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel27.ProgressMax = 100F; + this.arLabel27.ProgressMin = 0F; + this.arLabel27.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel27.ProgressValue = 0F; + this.arLabel27.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel27.Sign = ""; + this.arLabel27.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel27.SignColor = System.Drawing.Color.Yellow; + this.arLabel27.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel27.Size = new System.Drawing.Size(40, 20); + this.arLabel27.TabIndex = 9; + this.arLabel27.Text = "RID"; + this.arLabel27.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel27.TextShadow = true; + this.arLabel27.TextVisible = true; + // + // panel54 + // + this.panel54.Controls.Add(this.arLabel93); + this.panel54.Controls.Add(this.arLabel90); + this.panel54.Dock = System.Windows.Forms.DockStyle.Top; + this.panel54.Location = new System.Drawing.Point(0, 140); + this.panel54.Name = "panel54"; + this.panel54.Size = new System.Drawing.Size(157, 20); + this.panel54.TabIndex = 149; + // + // arLabel93 + // + this.arLabel93.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel93.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel93.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel93.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel93.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel93.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel93.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel93.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel93.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel93.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel93.ForeColor = System.Drawing.Color.Gold; + this.arLabel93.GradientEnable = true; + this.arLabel93.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel93.GradientRepeatBG = false; + this.arLabel93.isButton = false; + this.arLabel93.Location = new System.Drawing.Point(40, 0); + this.arLabel93.Margin = new System.Windows.Forms.Padding(0); + this.arLabel93.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel93.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel93.msg = null; + this.arLabel93.Name = "arLabel93"; + this.arLabel93.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel93.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel93.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel93.ProgressEnable = false; + this.arLabel93.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel93.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel93.ProgressMax = 100F; + this.arLabel93.ProgressMin = 0F; + this.arLabel93.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel93.ProgressValue = 0F; + this.arLabel93.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel93.Sign = ""; + this.arLabel93.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel93.SignColor = System.Drawing.Color.Yellow; + this.arLabel93.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel93.Size = new System.Drawing.Size(117, 20); + this.arLabel93.TabIndex = 14; + this.arLabel93.Text = "--"; + this.arLabel93.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel93.TextShadow = true; + this.arLabel93.TextVisible = true; + // + // arLabel90 + // + this.arLabel90.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel90.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel90.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel90.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel90.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel90.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel90.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel90.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel90.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel90.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.arLabel90.ForeColor = System.Drawing.Color.White; + this.arLabel90.GradientEnable = true; + this.arLabel90.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel90.GradientRepeatBG = false; + this.arLabel90.isButton = false; + this.arLabel90.Location = new System.Drawing.Point(0, 0); + this.arLabel90.Margin = new System.Windows.Forms.Padding(0); + this.arLabel90.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel90.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel90.msg = null; + this.arLabel90.Name = "arLabel90"; + this.arLabel90.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel90.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel90.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel90.ProgressEnable = false; + this.arLabel90.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel90.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel90.ProgressMax = 100F; + this.arLabel90.ProgressMin = 0F; + this.arLabel90.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel90.ProgressValue = 0F; + this.arLabel90.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel90.Sign = ""; + this.arLabel90.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel90.SignColor = System.Drawing.Color.Yellow; + this.arLabel90.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel90.Size = new System.Drawing.Size(40, 20); + this.arLabel90.TabIndex = 13; + this.arLabel90.Text = "SIZE"; + this.arLabel90.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel90.TextShadow = true; + this.arLabel90.TextVisible = true; + // + // panel55 + // + this.panel55.Controls.Add(this.arLabel88); + this.panel55.Controls.Add(this.arLabel82); + this.panel55.Dock = System.Windows.Forms.DockStyle.Top; + this.panel55.Location = new System.Drawing.Point(0, 120); + this.panel55.Name = "panel55"; + this.panel55.Size = new System.Drawing.Size(157, 20); + this.panel55.TabIndex = 150; + // + // arLabel88 + // + this.arLabel88.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel88.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel88.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel88.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel88.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel88.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel88.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel88.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel88.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel88.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel88.ForeColor = System.Drawing.Color.Gold; + this.arLabel88.GradientEnable = true; + this.arLabel88.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel88.GradientRepeatBG = false; + this.arLabel88.isButton = false; + this.arLabel88.Location = new System.Drawing.Point(40, 0); + this.arLabel88.Margin = new System.Windows.Forms.Padding(0); + this.arLabel88.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel88.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel88.msg = null; + this.arLabel88.Name = "arLabel88"; + this.arLabel88.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel88.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel88.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel88.ProgressEnable = false; + this.arLabel88.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel88.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel88.ProgressMax = 100F; + this.arLabel88.ProgressMin = 0F; + this.arLabel88.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel88.ProgressValue = 0F; + this.arLabel88.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel88.Sign = ""; + this.arLabel88.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel88.SignColor = System.Drawing.Color.Yellow; + this.arLabel88.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel88.Size = new System.Drawing.Size(117, 20); + this.arLabel88.TabIndex = 14; + this.arLabel88.Text = "--"; + this.arLabel88.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel88.TextShadow = true; + this.arLabel88.TextVisible = true; + // + // arLabel82 + // + this.arLabel82.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel82.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel82.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel82.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel82.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel82.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel82.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel82.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel82.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel82.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel82.ForeColor = System.Drawing.Color.White; + this.arLabel82.GradientEnable = true; + this.arLabel82.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel82.GradientRepeatBG = false; + this.arLabel82.isButton = false; + this.arLabel82.Location = new System.Drawing.Point(0, 0); + this.arLabel82.Margin = new System.Windows.Forms.Padding(0); + this.arLabel82.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel82.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel82.msg = null; + this.arLabel82.Name = "arLabel82"; + this.arLabel82.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel82.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel82.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel82.ProgressEnable = false; + this.arLabel82.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel82.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel82.ProgressMax = 100F; + this.arLabel82.ProgressMin = 0F; + this.arLabel82.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel82.ProgressValue = 0F; + this.arLabel82.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel82.Sign = ""; + this.arLabel82.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel82.SignColor = System.Drawing.Color.Yellow; + this.arLabel82.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel82.Size = new System.Drawing.Size(40, 20); + this.arLabel82.TabIndex = 13; + this.arLabel82.Text = "PART"; + this.arLabel82.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel82.TextShadow = true; + this.arLabel82.TextVisible = true; + // + // panel56 + // + this.panel56.Controls.Add(this.arLabel53); + this.panel56.Controls.Add(this.arLabel52); + this.panel56.Dock = System.Windows.Forms.DockStyle.Top; + this.panel56.Location = new System.Drawing.Point(0, 100); + this.panel56.Name = "panel56"; + this.panel56.Size = new System.Drawing.Size(157, 20); + this.panel56.TabIndex = 157; + // + // arLabel53 + // + this.arLabel53.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel53.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel53.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel53.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel53.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel53.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel53.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel53.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel53.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel53.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel53.ForeColor = System.Drawing.Color.Gold; + this.arLabel53.GradientEnable = true; + this.arLabel53.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel53.GradientRepeatBG = false; + this.arLabel53.isButton = false; + this.arLabel53.Location = new System.Drawing.Point(40, 0); + this.arLabel53.Margin = new System.Windows.Forms.Padding(0); + this.arLabel53.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel53.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel53.msg = null; + this.arLabel53.Name = "arLabel53"; + this.arLabel53.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel53.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel53.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel53.ProgressEnable = false; + this.arLabel53.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel53.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel53.ProgressMax = 100F; + this.arLabel53.ProgressMin = 0F; + this.arLabel53.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel53.ProgressValue = 0F; + this.arLabel53.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel53.Sign = ""; + this.arLabel53.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel53.SignColor = System.Drawing.Color.Yellow; + this.arLabel53.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel53.Size = new System.Drawing.Size(117, 20); + this.arLabel53.TabIndex = 16; + this.arLabel53.Text = "--"; + this.arLabel53.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel53.TextShadow = true; + this.arLabel53.TextVisible = true; + // + // arLabel52 + // + this.arLabel52.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel52.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel52.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel52.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel52.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel52.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel52.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel52.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel52.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel52.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.arLabel52.ForeColor = System.Drawing.Color.White; + this.arLabel52.GradientEnable = true; + this.arLabel52.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel52.GradientRepeatBG = false; + this.arLabel52.isButton = false; + this.arLabel52.Location = new System.Drawing.Point(0, 0); + this.arLabel52.Margin = new System.Windows.Forms.Padding(0); + this.arLabel52.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel52.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel52.msg = null; + this.arLabel52.Name = "arLabel52"; + this.arLabel52.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel52.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel52.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel52.ProgressEnable = false; + this.arLabel52.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel52.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel52.ProgressMax = 100F; + this.arLabel52.ProgressMin = 0F; + this.arLabel52.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel52.ProgressValue = 0F; + this.arLabel52.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel52.Sign = ""; + this.arLabel52.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel52.SignColor = System.Drawing.Color.Yellow; + this.arLabel52.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel52.Size = new System.Drawing.Size(40, 20); + this.arLabel52.TabIndex = 15; + this.arLabel52.Text = "MFG"; + this.arLabel52.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel52.TextShadow = true; + this.arLabel52.TextVisible = true; + this.arLabel52.Click += new System.EventHandler(this.arLabel20_Click); + // + // panel57 + // + this.panel57.Controls.Add(this.arLabel51); + this.panel57.Controls.Add(this.arLabel50); + this.panel57.Dock = System.Windows.Forms.DockStyle.Top; + this.panel57.Location = new System.Drawing.Point(0, 80); + this.panel57.Name = "panel57"; + this.panel57.Size = new System.Drawing.Size(157, 20); + this.panel57.TabIndex = 159; + // + // arLabel51 + // + this.arLabel51.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel51.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel51.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel51.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel51.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel51.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel51.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel51.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel51.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel51.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel51.ForeColor = System.Drawing.Color.Gold; + this.arLabel51.GradientEnable = true; + this.arLabel51.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel51.GradientRepeatBG = false; + this.arLabel51.isButton = false; + this.arLabel51.Location = new System.Drawing.Point(40, 0); + this.arLabel51.Margin = new System.Windows.Forms.Padding(0); + this.arLabel51.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel51.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel51.msg = null; + this.arLabel51.Name = "arLabel51"; + this.arLabel51.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel51.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel51.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel51.ProgressEnable = false; + this.arLabel51.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel51.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel51.ProgressMax = 100F; + this.arLabel51.ProgressMin = 0F; + this.arLabel51.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel51.ProgressValue = 0F; + this.arLabel51.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel51.Sign = ""; + this.arLabel51.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel51.SignColor = System.Drawing.Color.Yellow; + this.arLabel51.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel51.Size = new System.Drawing.Size(117, 20); + this.arLabel51.TabIndex = 14; + this.arLabel51.Text = "--"; + this.arLabel51.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel51.TextShadow = true; + this.arLabel51.TextVisible = true; + // + // arLabel50 + // + this.arLabel50.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel50.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel50.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel50.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel50.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel50.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel50.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel50.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel50.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel50.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.arLabel50.ForeColor = System.Drawing.Color.White; + this.arLabel50.GradientEnable = true; + this.arLabel50.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel50.GradientRepeatBG = false; + this.arLabel50.isButton = false; + this.arLabel50.Location = new System.Drawing.Point(0, 0); + this.arLabel50.Margin = new System.Windows.Forms.Padding(0); + this.arLabel50.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel50.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel50.msg = null; + this.arLabel50.Name = "arLabel50"; + this.arLabel50.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel50.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel50.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel50.ProgressEnable = false; + this.arLabel50.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel50.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel50.ProgressMax = 100F; + this.arLabel50.ProgressMin = 0F; + this.arLabel50.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel50.ProgressValue = 0F; + this.arLabel50.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel50.Sign = ""; + this.arLabel50.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel50.SignColor = System.Drawing.Color.Yellow; + this.arLabel50.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel50.Size = new System.Drawing.Size(40, 20); + this.arLabel50.TabIndex = 13; + this.arLabel50.Text = "VLOT"; + this.arLabel50.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel50.TextShadow = true; + this.arLabel50.TextVisible = true; + // + // panel58 + // + this.panel58.Controls.Add(this.arLabel72); + this.panel58.Controls.Add(this.arLabel66); + this.panel58.Dock = System.Windows.Forms.DockStyle.Top; + this.panel58.Location = new System.Drawing.Point(0, 60); + this.panel58.Name = "panel58"; + this.panel58.Size = new System.Drawing.Size(157, 20); + this.panel58.TabIndex = 160; + // + // arLabel72 + // + this.arLabel72.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel72.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel72.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel72.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel72.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel72.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel72.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel72.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel72.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel72.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel72.ForeColor = System.Drawing.Color.Gold; + this.arLabel72.GradientEnable = true; + this.arLabel72.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel72.GradientRepeatBG = false; + this.arLabel72.isButton = false; + this.arLabel72.Location = new System.Drawing.Point(40, 0); + this.arLabel72.Margin = new System.Windows.Forms.Padding(0); + this.arLabel72.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel72.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel72.msg = null; + this.arLabel72.Name = "arLabel72"; + this.arLabel72.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel72.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel72.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel72.ProgressEnable = false; + this.arLabel72.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel72.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel72.ProgressMax = 100F; + this.arLabel72.ProgressMin = 0F; + this.arLabel72.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel72.ProgressValue = 0F; + this.arLabel72.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel72.Sign = ""; + this.arLabel72.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel72.SignColor = System.Drawing.Color.Yellow; + this.arLabel72.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel72.Size = new System.Drawing.Size(117, 20); + this.arLabel72.TabIndex = 12; + this.arLabel72.Text = "--"; + this.arLabel72.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel72.TextShadow = true; + this.arLabel72.TextVisible = true; + // + // arLabel66 + // + this.arLabel66.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel66.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel66.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel66.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel66.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel66.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel66.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel66.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel66.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel66.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.arLabel66.ForeColor = System.Drawing.Color.White; + this.arLabel66.GradientEnable = true; + this.arLabel66.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel66.GradientRepeatBG = false; + this.arLabel66.isButton = false; + this.arLabel66.Location = new System.Drawing.Point(0, 0); + this.arLabel66.Margin = new System.Windows.Forms.Padding(0); + this.arLabel66.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel66.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel66.msg = null; + this.arLabel66.Name = "arLabel66"; + this.arLabel66.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel66.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel66.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel66.ProgressEnable = false; + this.arLabel66.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel66.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel66.ProgressMax = 100F; + this.arLabel66.ProgressMin = 0F; + this.arLabel66.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel66.ProgressValue = 0F; + this.arLabel66.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel66.Sign = ""; + this.arLabel66.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel66.SignColor = System.Drawing.Color.Yellow; + this.arLabel66.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel66.Size = new System.Drawing.Size(40, 20); + this.arLabel66.TabIndex = 11; + this.arLabel66.Text = "MANU"; + this.arLabel66.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel66.TextShadow = true; + this.arLabel66.TextVisible = true; + // + // panel59 + // + this.panel59.Controls.Add(this.arLabel47); + this.panel59.Controls.Add(this.arLabel48); + this.panel59.Dock = System.Windows.Forms.DockStyle.Top; + this.panel59.Location = new System.Drawing.Point(0, 40); + this.panel59.Name = "panel59"; + this.panel59.Size = new System.Drawing.Size(157, 20); + this.panel59.TabIndex = 161; + // + // arLabel47 + // + this.arLabel47.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel47.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel47.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel47.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel47.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel47.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel47.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel47.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel47.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel47.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel47.ForeColor = System.Drawing.Color.Gold; + this.arLabel47.GradientEnable = true; + this.arLabel47.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel47.GradientRepeatBG = false; + this.arLabel47.isButton = false; + this.arLabel47.Location = new System.Drawing.Point(40, 0); + this.arLabel47.Margin = new System.Windows.Forms.Padding(0); + this.arLabel47.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel47.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel47.msg = null; + this.arLabel47.Name = "arLabel47"; + this.arLabel47.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel47.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel47.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel47.ProgressEnable = false; + this.arLabel47.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel47.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel47.ProgressMax = 100F; + this.arLabel47.ProgressMin = 0F; + this.arLabel47.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel47.ProgressValue = 0F; + this.arLabel47.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel47.Sign = ""; + this.arLabel47.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel47.SignColor = System.Drawing.Color.Yellow; + this.arLabel47.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel47.Size = new System.Drawing.Size(117, 20); + this.arLabel47.TabIndex = 12; + this.arLabel47.Text = "--"; + this.arLabel47.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel47.TextShadow = true; + this.arLabel47.TextVisible = true; + // + // arLabel48 + // + this.arLabel48.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel48.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel48.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel48.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel48.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel48.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel48.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel48.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel48.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel48.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.arLabel48.ForeColor = System.Drawing.Color.White; + this.arLabel48.GradientEnable = true; + this.arLabel48.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel48.GradientRepeatBG = false; + this.arLabel48.isButton = false; + this.arLabel48.Location = new System.Drawing.Point(0, 0); + this.arLabel48.Margin = new System.Windows.Forms.Padding(0); + this.arLabel48.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel48.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel48.msg = null; + this.arLabel48.Name = "arLabel48"; + this.arLabel48.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel48.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel48.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel48.ProgressEnable = false; + this.arLabel48.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel48.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel48.ProgressMax = 100F; + this.arLabel48.ProgressMin = 0F; + this.arLabel48.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel48.ProgressValue = 0F; + this.arLabel48.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel48.Sign = ""; + this.arLabel48.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel48.SignColor = System.Drawing.Color.Yellow; + this.arLabel48.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel48.Size = new System.Drawing.Size(40, 20); + this.arLabel48.TabIndex = 11; + this.arLabel48.Text = "QTY"; + this.arLabel48.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel48.TextShadow = true; + this.arLabel48.TextVisible = true; + // + // panel60 + // + this.panel60.Controls.Add(this.arLabel37); + this.panel60.Controls.Add(this.arLabel38); + this.panel60.Dock = System.Windows.Forms.DockStyle.Top; + this.panel60.Location = new System.Drawing.Point(0, 20); + this.panel60.Name = "panel60"; + this.panel60.Size = new System.Drawing.Size(157, 20); + this.panel60.TabIndex = 141; + // + // arLabel37 + // + this.arLabel37.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel37.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel37.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel37.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel37.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel37.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel37.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel37.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel37.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel37.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel37.ForeColor = System.Drawing.Color.Gold; + this.arLabel37.GradientEnable = true; + this.arLabel37.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel37.GradientRepeatBG = false; + this.arLabel37.isButton = false; + this.arLabel37.Location = new System.Drawing.Point(40, 0); + this.arLabel37.Margin = new System.Windows.Forms.Padding(0); + this.arLabel37.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel37.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel37.msg = null; + this.arLabel37.Name = "arLabel37"; + this.arLabel37.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel37.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel37.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel37.ProgressEnable = false; + this.arLabel37.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel37.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel37.ProgressMax = 100F; + this.arLabel37.ProgressMin = 0F; + this.arLabel37.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel37.ProgressValue = 0F; + this.arLabel37.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel37.Sign = ""; + this.arLabel37.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel37.SignColor = System.Drawing.Color.Yellow; + this.arLabel37.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel37.Size = new System.Drawing.Size(117, 20); + this.arLabel37.TabIndex = 10; + this.arLabel37.Text = "--"; + this.arLabel37.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel37.TextShadow = true; + this.arLabel37.TextVisible = true; + // + // arLabel38 + // + this.arLabel38.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel38.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel38.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel38.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel38.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel38.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel38.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel38.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel38.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel38.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.arLabel38.ForeColor = System.Drawing.Color.White; + this.arLabel38.GradientEnable = true; + this.arLabel38.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel38.GradientRepeatBG = false; + this.arLabel38.isButton = false; + this.arLabel38.Location = new System.Drawing.Point(0, 0); + this.arLabel38.Margin = new System.Windows.Forms.Padding(0); + this.arLabel38.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel38.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel38.msg = null; + this.arLabel38.Name = "arLabel38"; + this.arLabel38.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel38.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel38.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel38.ProgressEnable = false; + this.arLabel38.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel38.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel38.ProgressMax = 100F; + this.arLabel38.ProgressMin = 0F; + this.arLabel38.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel38.ProgressValue = 0F; + this.arLabel38.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel38.Sign = ""; + this.arLabel38.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel38.SignColor = System.Drawing.Color.Yellow; + this.arLabel38.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel38.Size = new System.Drawing.Size(40, 20); + this.arLabel38.TabIndex = 9; + this.arLabel38.Text = "SID"; + this.arLabel38.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel38.TextShadow = true; + this.arLabel38.TextVisible = true; + // + // panel61 + // + this.panel61.Controls.Add(this.arLabel42); + this.panel61.Controls.Add(this.arLabel41); + this.panel61.Dock = System.Windows.Forms.DockStyle.Top; + this.panel61.Location = new System.Drawing.Point(0, 0); + this.panel61.Name = "panel61"; + this.panel61.Size = new System.Drawing.Size(157, 20); + this.panel61.TabIndex = 148; + // + // arLabel42 + // + this.arLabel42.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel42.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel42.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel42.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel42.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel42.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel42.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel42.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel42.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel42.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel42.ForeColor = System.Drawing.Color.Gold; + this.arLabel42.GradientEnable = true; + this.arLabel42.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel42.GradientRepeatBG = false; + this.arLabel42.isButton = false; + this.arLabel42.Location = new System.Drawing.Point(40, 0); + this.arLabel42.Margin = new System.Windows.Forms.Padding(0); + this.arLabel42.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel42.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel42.msg = null; + this.arLabel42.Name = "arLabel42"; + this.arLabel42.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel42.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel42.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel42.ProgressEnable = false; + this.arLabel42.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel42.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel42.ProgressMax = 100F; + this.arLabel42.ProgressMin = 0F; + this.arLabel42.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel42.ProgressValue = 0F; + this.arLabel42.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel42.Sign = ""; + this.arLabel42.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel42.SignColor = System.Drawing.Color.Yellow; + this.arLabel42.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel42.Size = new System.Drawing.Size(117, 20); + this.arLabel42.TabIndex = 10; + this.arLabel42.Text = "--"; + this.arLabel42.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel42.TextShadow = true; + this.arLabel42.TextVisible = true; + // + // arLabel41 + // + this.arLabel41.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel41.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel41.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel41.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel41.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel41.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel41.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel41.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel41.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel41.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.arLabel41.ForeColor = System.Drawing.Color.White; + this.arLabel41.GradientEnable = true; + this.arLabel41.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel41.GradientRepeatBG = false; + this.arLabel41.isButton = false; + this.arLabel41.Location = new System.Drawing.Point(0, 0); + this.arLabel41.Margin = new System.Windows.Forms.Padding(0); + this.arLabel41.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel41.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel41.msg = null; + this.arLabel41.Name = "arLabel41"; + this.arLabel41.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel41.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel41.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel41.ProgressEnable = false; + this.arLabel41.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel41.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel41.ProgressMax = 100F; + this.arLabel41.ProgressMin = 0F; + this.arLabel41.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel41.ProgressValue = 0F; + this.arLabel41.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel41.Sign = ""; + this.arLabel41.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel41.SignColor = System.Drawing.Color.Yellow; + this.arLabel41.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel41.Size = new System.Drawing.Size(40, 20); + this.arLabel41.TabIndex = 9; + this.arLabel41.Text = "RID"; + this.arLabel41.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel41.TextShadow = true; + this.arLabel41.TextVisible = true; + // + // panel37 + // + this.panel37.Controls.Add(this.lbLock2); + this.panel37.Controls.Add(this.arLabel76); + this.panel37.Controls.Add(this.arLabel74); + this.panel37.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel37.Location = new System.Drawing.Point(0, 334); + this.panel37.Name = "panel37"; + this.panel37.Size = new System.Drawing.Size(413, 75); + this.panel37.TabIndex = 155; + // + // lbLock2 + // + this.lbLock2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lbLock2.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbLock2.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbLock2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbLock2.BorderColorOver = System.Drawing.Color.DarkBlue; + this.lbLock2.BorderSize = new System.Windows.Forms.Padding(0); + this.lbLock2.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbLock2.Cursor = System.Windows.Forms.Cursors.Hand; + this.lbLock2.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbLock2.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbLock2.ForeColor = System.Drawing.Color.SkyBlue; + this.lbLock2.GradientEnable = true; + this.lbLock2.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbLock2.GradientRepeatBG = false; + this.lbLock2.isButton = true; + this.lbLock2.Location = new System.Drawing.Point(100, 0); + this.lbLock2.Margin = new System.Windows.Forms.Padding(0); + this.lbLock2.MouseDownColor = System.Drawing.Color.Yellow; + this.lbLock2.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbLock2.msg = null; + this.lbLock2.Name = "lbLock2"; + this.lbLock2.ProgressBorderColor = System.Drawing.Color.Black; + this.lbLock2.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbLock2.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbLock2.ProgressEnable = false; + this.lbLock2.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbLock2.ProgressForeColor = System.Drawing.Color.Black; + this.lbLock2.ProgressMax = 100F; + this.lbLock2.ProgressMin = 0F; + this.lbLock2.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbLock2.ProgressValue = 0F; + this.lbLock2.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lbLock2.Sign = ""; + this.lbLock2.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbLock2.SignColor = System.Drawing.Color.Yellow; + this.lbLock2.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbLock2.Size = new System.Drawing.Size(213, 75); + this.lbLock2.TabIndex = 15; + this.lbLock2.Tag = "2"; + this.lbLock2.Text = "포트 잠금"; + this.lbLock2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbLock2.TextShadow = true; + this.lbLock2.TextVisible = true; + this.lbLock2.Click += new System.EventHandler(this.lbLock2_Click); + // + // panel23 + // + this.panel23.Dock = System.Windows.Forms.DockStyle.Right; + this.panel23.Location = new System.Drawing.Point(1252, 38); + this.panel23.Name = "panel23"; + this.panel23.Size = new System.Drawing.Size(5, 411); + this.panel23.TabIndex = 157; + // + // panel14 + // + this.panel14.Dock = System.Windows.Forms.DockStyle.Left; + this.panel14.Location = new System.Drawing.Point(415, 38); + this.panel14.Name = "panel14"; + this.panel14.Size = new System.Drawing.Size(5, 411); + this.panel14.TabIndex = 156; + // + // panVision0 + // + this.panVision0.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.panVision0.Controls.Add(this.iv0); + this.panVision0.Controls.Add(this.panel2); + this.panVision0.Controls.Add(this.panel13); + this.panVision0.Controls.Add(this.lbMsgL); + this.panVision0.Controls.Add(this.panel15); + this.panVision0.Dock = System.Windows.Forms.DockStyle.Left; + this.panVision0.Location = new System.Drawing.Point(0, 38); + this.panVision0.Margin = new System.Windows.Forms.Padding(0); + this.panVision0.Name = "panVision0"; + this.panVision0.Size = new System.Drawing.Size(415, 411); + this.panVision0.TabIndex = 145; + // + // panel2 + // + this.panel2.Controls.Add(this.sbVisTitle0); + this.panel2.Controls.Add(this.lbSize0); + this.panel2.Dock = System.Windows.Forms.DockStyle.Top; + this.panel2.Location = new System.Drawing.Point(0, 0); + this.panel2.Margin = new System.Windows.Forms.Padding(0); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(256, 30); + this.panel2.TabIndex = 1; + // + // sbVisTitle0 + // + this.sbVisTitle0.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.sbVisTitle0.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.sbVisTitle0.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.sbVisTitle0.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.sbVisTitle0.BorderColorOver = System.Drawing.Color.DarkBlue; + this.sbVisTitle0.BorderSize = new System.Windows.Forms.Padding(0); + this.sbVisTitle0.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.sbVisTitle0.ContextMenuStrip = this.cmCam; + this.sbVisTitle0.Cursor = System.Windows.Forms.Cursors.Arrow; + this.sbVisTitle0.Dock = System.Windows.Forms.DockStyle.Fill; + this.sbVisTitle0.Font = new System.Drawing.Font("Consolas", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.sbVisTitle0.ForeColor = System.Drawing.Color.White; + this.sbVisTitle0.GradientEnable = true; + this.sbVisTitle0.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.sbVisTitle0.GradientRepeatBG = false; + this.sbVisTitle0.isButton = false; + this.sbVisTitle0.Location = new System.Drawing.Point(0, 0); + this.sbVisTitle0.Margin = new System.Windows.Forms.Padding(0); + this.sbVisTitle0.MouseDownColor = System.Drawing.Color.Yellow; + this.sbVisTitle0.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.sbVisTitle0.msg = null; + this.sbVisTitle0.Name = "sbVisTitle0"; + this.sbVisTitle0.ProgressBorderColor = System.Drawing.Color.Black; + this.sbVisTitle0.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.sbVisTitle0.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.sbVisTitle0.ProgressEnable = false; + this.sbVisTitle0.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.sbVisTitle0.ProgressForeColor = System.Drawing.Color.Black; + this.sbVisTitle0.ProgressMax = 100F; + this.sbVisTitle0.ProgressMin = 0F; + this.sbVisTitle0.ProgressPadding = new System.Windows.Forms.Padding(0); + this.sbVisTitle0.ProgressValue = 0F; + this.sbVisTitle0.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.sbVisTitle0.Sign = ""; + this.sbVisTitle0.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.sbVisTitle0.SignColor = System.Drawing.Color.Yellow; + this.sbVisTitle0.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.sbVisTitle0.Size = new System.Drawing.Size(201, 30); + this.sbVisTitle0.TabIndex = 143; + this.sbVisTitle0.Tag = "0"; + this.sbVisTitle0.Text = "VISION (LEFT)"; + this.sbVisTitle0.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.sbVisTitle0.TextShadow = true; + this.sbVisTitle0.TextVisible = true; + this.sbVisTitle0.Click += new System.EventHandler(this.sbVisTitle0_Click); + // + // lbSize0 + // + this.lbSize0.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lbSize0.Dock = System.Windows.Forms.DockStyle.Right; + this.lbSize0.ForeColor = System.Drawing.Color.White; + this.lbSize0.Location = new System.Drawing.Point(201, 0); + this.lbSize0.Name = "lbSize0"; + this.lbSize0.Size = new System.Drawing.Size(55, 30); + this.lbSize0.TabIndex = 144; + this.lbSize0.Text = "7/13"; + this.lbSize0.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // panel13 + // + this.panel13.Controls.Add(this.panel42); + this.panel13.Controls.Add(this.panel40); + this.panel13.Controls.Add(this.panel30); + this.panel13.Controls.Add(this.panel22); + this.panel13.Controls.Add(this.panel21); + this.panel13.Controls.Add(this.panel20); + this.panel13.Controls.Add(this.panel19); + this.panel13.Controls.Add(this.panel17); + this.panel13.Controls.Add(this.panel18); + this.panel13.Controls.Add(this.panel41); + this.panel13.Controls.Add(this.panel43); + this.panel13.Controls.Add(this.panel44); + this.panel13.Controls.Add(this.panel45); + this.panel13.Controls.Add(this.panel16); + this.panel13.Controls.Add(this.panel8); + this.panel13.Dock = System.Windows.Forms.DockStyle.Right; + this.panel13.Location = new System.Drawing.Point(256, 0); + this.panel13.Name = "panel13"; + this.panel13.Size = new System.Drawing.Size(157, 300); + this.panel13.TabIndex = 156; + // + // panel42 + // + this.panel42.Controls.Add(this.arLabel49); + this.panel42.Controls.Add(this.arLabel46); + this.panel42.Dock = System.Windows.Forms.DockStyle.Top; + this.panel42.Location = new System.Drawing.Point(0, 280); + this.panel42.Name = "panel42"; + this.panel42.Size = new System.Drawing.Size(157, 20); + this.panel42.TabIndex = 158; + this.panel42.Paint += new System.Windows.Forms.PaintEventHandler(this.panel42_Paint); + // + // arLabel49 + // + this.arLabel49.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel49.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel49.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel49.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel49.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel49.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel49.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel49.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel49.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel49.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel49.ForeColor = System.Drawing.Color.SkyBlue; + this.arLabel49.GradientEnable = true; + this.arLabel49.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel49.GradientRepeatBG = false; + this.arLabel49.isButton = false; + this.arLabel49.Location = new System.Drawing.Point(40, 0); + this.arLabel49.Margin = new System.Windows.Forms.Padding(0); + this.arLabel49.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel49.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel49.msg = null; + this.arLabel49.Name = "arLabel49"; + this.arLabel49.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel49.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel49.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel49.ProgressEnable = false; + this.arLabel49.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel49.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel49.ProgressMax = 100F; + this.arLabel49.ProgressMin = 0F; + this.arLabel49.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel49.ProgressValue = 0F; + this.arLabel49.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel49.Sign = ""; + this.arLabel49.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel49.SignColor = System.Drawing.Color.Yellow; + this.arLabel49.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel49.Size = new System.Drawing.Size(117, 20); + this.arLabel49.TabIndex = 16; + this.arLabel49.Text = "--"; + this.arLabel49.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel49.TextShadow = true; + this.arLabel49.TextVisible = true; + // + // arLabel46 + // + this.arLabel46.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel46.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel46.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel46.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel46.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel46.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel46.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel46.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel46.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel46.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel46.ForeColor = System.Drawing.Color.SkyBlue; + this.arLabel46.GradientEnable = true; + this.arLabel46.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel46.GradientRepeatBG = false; + this.arLabel46.isButton = false; + this.arLabel46.Location = new System.Drawing.Point(0, 0); + this.arLabel46.Margin = new System.Windows.Forms.Padding(0); + this.arLabel46.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel46.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel46.msg = null; + this.arLabel46.Name = "arLabel46"; + this.arLabel46.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel46.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel46.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel46.ProgressEnable = false; + this.arLabel46.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel46.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel46.ProgressMax = 100F; + this.arLabel46.ProgressMin = 0F; + this.arLabel46.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel46.ProgressValue = 0F; + this.arLabel46.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel46.Sign = ""; + this.arLabel46.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel46.SignColor = System.Drawing.Color.Yellow; + this.arLabel46.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel46.Size = new System.Drawing.Size(40, 20); + this.arLabel46.TabIndex = 15; + this.arLabel46.Text = "MFG"; + this.arLabel46.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel46.TextShadow = true; + this.arLabel46.TextVisible = true; + this.arLabel46.Click += new System.EventHandler(this.arLabel20_Click); + // + // panel40 + // + this.panel40.Controls.Add(this.arLabel70); + this.panel40.Controls.Add(this.arLabel67); + this.panel40.Dock = System.Windows.Forms.DockStyle.Top; + this.panel40.Location = new System.Drawing.Point(0, 260); + this.panel40.Name = "panel40"; + this.panel40.Size = new System.Drawing.Size(157, 20); + this.panel40.TabIndex = 156; + // + // arLabel70 + // + this.arLabel70.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel70.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel70.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel70.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel70.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel70.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel70.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel70.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel70.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel70.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel70.ForeColor = System.Drawing.Color.SkyBlue; + this.arLabel70.GradientEnable = true; + this.arLabel70.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel70.GradientRepeatBG = false; + this.arLabel70.isButton = false; + this.arLabel70.Location = new System.Drawing.Point(40, 0); + this.arLabel70.Margin = new System.Windows.Forms.Padding(0); + this.arLabel70.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel70.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel70.msg = null; + this.arLabel70.Name = "arLabel70"; + this.arLabel70.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel70.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel70.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel70.ProgressEnable = false; + this.arLabel70.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel70.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel70.ProgressMax = 100F; + this.arLabel70.ProgressMin = 0F; + this.arLabel70.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel70.ProgressValue = 0F; + this.arLabel70.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel70.Sign = ""; + this.arLabel70.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel70.SignColor = System.Drawing.Color.Yellow; + this.arLabel70.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel70.Size = new System.Drawing.Size(117, 20); + this.arLabel70.TabIndex = 12; + this.arLabel70.Text = "--"; + this.arLabel70.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel70.TextShadow = true; + this.arLabel70.TextVisible = true; + // + // arLabel67 + // + this.arLabel67.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel67.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel67.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel67.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel67.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel67.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel67.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel67.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel67.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel67.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel67.ForeColor = System.Drawing.Color.SkyBlue; + this.arLabel67.GradientEnable = true; + this.arLabel67.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel67.GradientRepeatBG = false; + this.arLabel67.isButton = false; + this.arLabel67.Location = new System.Drawing.Point(0, 0); + this.arLabel67.Margin = new System.Windows.Forms.Padding(0); + this.arLabel67.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel67.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel67.msg = null; + this.arLabel67.Name = "arLabel67"; + this.arLabel67.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel67.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel67.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel67.ProgressEnable = false; + this.arLabel67.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel67.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel67.ProgressMax = 100F; + this.arLabel67.ProgressMin = 0F; + this.arLabel67.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel67.ProgressValue = 0F; + this.arLabel67.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel67.Sign = ""; + this.arLabel67.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel67.SignColor = System.Drawing.Color.Yellow; + this.arLabel67.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel67.Size = new System.Drawing.Size(40, 20); + this.arLabel67.TabIndex = 11; + this.arLabel67.Text = "MANU"; + this.arLabel67.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel67.TextShadow = true; + this.arLabel67.TextVisible = true; + // + // panel30 + // + this.panel30.Controls.Add(this.arLabel10); + this.panel30.Controls.Add(this.arLabel9); + this.panel30.Dock = System.Windows.Forms.DockStyle.Top; + this.panel30.Location = new System.Drawing.Point(0, 240); + this.panel30.Name = "panel30"; + this.panel30.Size = new System.Drawing.Size(157, 20); + this.panel30.TabIndex = 155; + // + // arLabel10 + // + this.arLabel10.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel10.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel10.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel10.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel10.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel10.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel10.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel10.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel10.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel10.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel10.ForeColor = System.Drawing.Color.SkyBlue; + this.arLabel10.GradientEnable = true; + this.arLabel10.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel10.GradientRepeatBG = false; + this.arLabel10.isButton = false; + this.arLabel10.Location = new System.Drawing.Point(40, 0); + this.arLabel10.Margin = new System.Windows.Forms.Padding(0); + this.arLabel10.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel10.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel10.msg = null; + this.arLabel10.Name = "arLabel10"; + this.arLabel10.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel10.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel10.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel10.ProgressEnable = false; + this.arLabel10.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel10.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel10.ProgressMax = 100F; + this.arLabel10.ProgressMin = 0F; + this.arLabel10.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel10.ProgressValue = 0F; + this.arLabel10.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel10.Sign = ""; + this.arLabel10.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel10.SignColor = System.Drawing.Color.Yellow; + this.arLabel10.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel10.Size = new System.Drawing.Size(117, 20); + this.arLabel10.TabIndex = 10; + this.arLabel10.Text = "--"; + this.arLabel10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel10.TextShadow = true; + this.arLabel10.TextVisible = true; + // + // arLabel9 + // + this.arLabel9.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel9.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel9.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel9.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel9.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel9.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel9.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel9.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel9.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel9.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel9.ForeColor = System.Drawing.Color.SkyBlue; + this.arLabel9.GradientEnable = true; + this.arLabel9.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel9.GradientRepeatBG = false; + this.arLabel9.isButton = false; + this.arLabel9.Location = new System.Drawing.Point(0, 0); + this.arLabel9.Margin = new System.Windows.Forms.Padding(0); + this.arLabel9.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel9.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel9.msg = null; + this.arLabel9.Name = "arLabel9"; + this.arLabel9.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel9.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel9.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel9.ProgressEnable = false; + this.arLabel9.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel9.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel9.ProgressMax = 100F; + this.arLabel9.ProgressMin = 0F; + this.arLabel9.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel9.ProgressValue = 0F; + this.arLabel9.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel9.Sign = ""; + this.arLabel9.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel9.SignColor = System.Drawing.Color.Yellow; + this.arLabel9.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel9.Size = new System.Drawing.Size(40, 20); + this.arLabel9.TabIndex = 9; + this.arLabel9.Text = "QTY"; + this.arLabel9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel9.TextShadow = true; + this.arLabel9.TextVisible = true; + // + // panel22 + // + this.panel22.Controls.Add(this.arLabel86); + this.panel22.Controls.Add(this.arLabel80); + this.panel22.Dock = System.Windows.Forms.DockStyle.Top; + this.panel22.Location = new System.Drawing.Point(0, 220); + this.panel22.Name = "panel22"; + this.panel22.Size = new System.Drawing.Size(157, 20); + this.panel22.TabIndex = 154; + // + // arLabel86 + // + this.arLabel86.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel86.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel86.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel86.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel86.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel86.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel86.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel86.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel86.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel86.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel86.ForeColor = System.Drawing.Color.SkyBlue; + this.arLabel86.GradientEnable = true; + this.arLabel86.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel86.GradientRepeatBG = false; + this.arLabel86.isButton = false; + this.arLabel86.Location = new System.Drawing.Point(40, 0); + this.arLabel86.Margin = new System.Windows.Forms.Padding(0); + this.arLabel86.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel86.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel86.msg = null; + this.arLabel86.Name = "arLabel86"; + this.arLabel86.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel86.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel86.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel86.ProgressEnable = false; + this.arLabel86.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel86.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel86.ProgressMax = 100F; + this.arLabel86.ProgressMin = 0F; + this.arLabel86.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel86.ProgressValue = 0F; + this.arLabel86.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel86.Sign = ""; + this.arLabel86.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel86.SignColor = System.Drawing.Color.Yellow; + this.arLabel86.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel86.Size = new System.Drawing.Size(117, 20); + this.arLabel86.TabIndex = 14; + this.arLabel86.Text = "--"; + this.arLabel86.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel86.TextShadow = true; + this.arLabel86.TextVisible = true; + // + // arLabel80 + // + this.arLabel80.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel80.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel80.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel80.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel80.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel80.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel80.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel80.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel80.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel80.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel80.ForeColor = System.Drawing.Color.SkyBlue; + this.arLabel80.GradientEnable = true; + this.arLabel80.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel80.GradientRepeatBG = false; + this.arLabel80.isButton = false; + this.arLabel80.Location = new System.Drawing.Point(0, 0); + this.arLabel80.Margin = new System.Windows.Forms.Padding(0); + this.arLabel80.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel80.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel80.msg = null; + this.arLabel80.Name = "arLabel80"; + this.arLabel80.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel80.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel80.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel80.ProgressEnable = false; + this.arLabel80.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel80.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel80.ProgressMax = 100F; + this.arLabel80.ProgressMin = 0F; + this.arLabel80.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel80.ProgressValue = 0F; + this.arLabel80.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel80.Sign = ""; + this.arLabel80.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel80.SignColor = System.Drawing.Color.Yellow; + this.arLabel80.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel80.Size = new System.Drawing.Size(40, 20); + this.arLabel80.TabIndex = 13; + this.arLabel80.Text = "PART"; + this.arLabel80.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel80.TextShadow = true; + this.arLabel80.TextVisible = true; + // + // panel21 + // + this.panel21.Controls.Add(this.arLabel57); + this.panel21.Controls.Add(this.arLabel31); + this.panel21.Dock = System.Windows.Forms.DockStyle.Top; + this.panel21.Location = new System.Drawing.Point(0, 200); + this.panel21.Name = "panel21"; + this.panel21.Size = new System.Drawing.Size(157, 20); + this.panel21.TabIndex = 153; + // + // arLabel57 + // + this.arLabel57.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel57.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel57.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel57.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel57.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel57.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel57.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel57.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel57.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel57.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel57.ForeColor = System.Drawing.Color.SkyBlue; + this.arLabel57.GradientEnable = true; + this.arLabel57.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel57.GradientRepeatBG = false; + this.arLabel57.isButton = false; + this.arLabel57.Location = new System.Drawing.Point(40, 0); + this.arLabel57.Margin = new System.Windows.Forms.Padding(0); + this.arLabel57.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel57.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel57.msg = null; + this.arLabel57.Name = "arLabel57"; + this.arLabel57.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel57.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel57.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel57.ProgressEnable = false; + this.arLabel57.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel57.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel57.ProgressMax = 100F; + this.arLabel57.ProgressMin = 0F; + this.arLabel57.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel57.ProgressValue = 0F; + this.arLabel57.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel57.Sign = ""; + this.arLabel57.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel57.SignColor = System.Drawing.Color.Yellow; + this.arLabel57.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel57.Size = new System.Drawing.Size(117, 20); + this.arLabel57.TabIndex = 14; + this.arLabel57.Text = "--"; + this.arLabel57.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel57.TextShadow = true; + this.arLabel57.TextVisible = true; + // + // arLabel31 + // + this.arLabel31.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel31.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel31.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel31.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel31.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel31.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel31.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel31.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel31.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel31.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel31.ForeColor = System.Drawing.Color.SkyBlue; + this.arLabel31.GradientEnable = true; + this.arLabel31.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel31.GradientRepeatBG = false; + this.arLabel31.isButton = false; + this.arLabel31.Location = new System.Drawing.Point(0, 0); + this.arLabel31.Margin = new System.Windows.Forms.Padding(0); + this.arLabel31.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel31.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel31.msg = null; + this.arLabel31.Name = "arLabel31"; + this.arLabel31.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel31.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel31.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel31.ProgressEnable = false; + this.arLabel31.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel31.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel31.ProgressMax = 100F; + this.arLabel31.ProgressMin = 0F; + this.arLabel31.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel31.ProgressValue = 0F; + this.arLabel31.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel31.Sign = ""; + this.arLabel31.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel31.SignColor = System.Drawing.Color.Yellow; + this.arLabel31.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel31.Size = new System.Drawing.Size(40, 20); + this.arLabel31.TabIndex = 13; + this.arLabel31.Text = "VLOT"; + this.arLabel31.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel31.TextShadow = true; + this.arLabel31.TextVisible = true; + // + // panel20 + // + this.panel20.Controls.Add(this.arLabel14); + this.panel20.Controls.Add(this.arLabel7); + this.panel20.Dock = System.Windows.Forms.DockStyle.Top; + this.panel20.Location = new System.Drawing.Point(0, 180); + this.panel20.Name = "panel20"; + this.panel20.Size = new System.Drawing.Size(157, 20); + this.panel20.TabIndex = 152; + // + // arLabel14 + // + this.arLabel14.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel14.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel14.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel14.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel14.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel14.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel14.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel14.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel14.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel14.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel14.ForeColor = System.Drawing.Color.SkyBlue; + this.arLabel14.GradientEnable = true; + this.arLabel14.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel14.GradientRepeatBG = false; + this.arLabel14.isButton = false; + this.arLabel14.Location = new System.Drawing.Point(40, 0); + this.arLabel14.Margin = new System.Windows.Forms.Padding(0); + this.arLabel14.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel14.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel14.msg = null; + this.arLabel14.Name = "arLabel14"; + this.arLabel14.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel14.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel14.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel14.ProgressEnable = false; + this.arLabel14.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel14.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel14.ProgressMax = 100F; + this.arLabel14.ProgressMin = 0F; + this.arLabel14.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel14.ProgressValue = 0F; + this.arLabel14.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel14.Sign = ""; + this.arLabel14.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel14.SignColor = System.Drawing.Color.Yellow; + this.arLabel14.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel14.Size = new System.Drawing.Size(117, 20); + this.arLabel14.TabIndex = 10; + this.arLabel14.Text = "--"; + this.arLabel14.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel14.TextShadow = true; + this.arLabel14.TextVisible = true; + // + // arLabel7 + // + this.arLabel7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel7.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel7.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel7.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel7.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel7.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel7.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel7.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel7.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel7.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel7.ForeColor = System.Drawing.Color.SkyBlue; + this.arLabel7.GradientEnable = true; + this.arLabel7.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel7.GradientRepeatBG = false; + this.arLabel7.isButton = false; + this.arLabel7.Location = new System.Drawing.Point(0, 0); + this.arLabel7.Margin = new System.Windows.Forms.Padding(0); + this.arLabel7.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel7.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel7.msg = null; + this.arLabel7.Name = "arLabel7"; + this.arLabel7.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel7.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel7.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel7.ProgressEnable = false; + this.arLabel7.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel7.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel7.ProgressMax = 100F; + this.arLabel7.ProgressMin = 0F; + this.arLabel7.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel7.ProgressValue = 0F; + this.arLabel7.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel7.Sign = ""; + this.arLabel7.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel7.SignColor = System.Drawing.Color.Yellow; + this.arLabel7.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel7.Size = new System.Drawing.Size(40, 20); + this.arLabel7.TabIndex = 9; + this.arLabel7.Text = "RID"; + this.arLabel7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel7.TextShadow = true; + this.arLabel7.TextVisible = true; + // + // panel19 + // + this.panel19.Controls.Add(this.arLabel8); + this.panel19.Controls.Add(this.arLabel3); + this.panel19.Dock = System.Windows.Forms.DockStyle.Top; + this.panel19.Location = new System.Drawing.Point(0, 160); + this.panel19.Name = "panel19"; + this.panel19.Size = new System.Drawing.Size(157, 20); + this.panel19.TabIndex = 151; + // + // arLabel8 + // + this.arLabel8.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel8.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel8.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel8.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel8.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel8.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel8.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel8.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel8.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel8.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel8.ForeColor = System.Drawing.Color.SkyBlue; + this.arLabel8.GradientEnable = true; + this.arLabel8.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel8.GradientRepeatBG = false; + this.arLabel8.isButton = false; + this.arLabel8.Location = new System.Drawing.Point(40, 0); + this.arLabel8.Margin = new System.Windows.Forms.Padding(0); + this.arLabel8.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel8.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel8.msg = null; + this.arLabel8.Name = "arLabel8"; + this.arLabel8.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel8.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel8.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel8.ProgressEnable = false; + this.arLabel8.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel8.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel8.ProgressMax = 100F; + this.arLabel8.ProgressMin = 0F; + this.arLabel8.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel8.ProgressValue = 0F; + this.arLabel8.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel8.Sign = ""; + this.arLabel8.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel8.SignColor = System.Drawing.Color.Yellow; + this.arLabel8.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel8.Size = new System.Drawing.Size(117, 20); + this.arLabel8.TabIndex = 10; + this.arLabel8.Text = "--"; + this.arLabel8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel8.TextShadow = true; + this.arLabel8.TextVisible = true; + // + // arLabel3 + // + this.arLabel3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel3.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel3.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel3.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel3.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel3.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel3.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel3.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel3.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel3.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel3.ForeColor = System.Drawing.Color.SkyBlue; + this.arLabel3.GradientEnable = true; + this.arLabel3.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel3.GradientRepeatBG = false; + this.arLabel3.isButton = false; + this.arLabel3.Location = new System.Drawing.Point(0, 0); + this.arLabel3.Margin = new System.Windows.Forms.Padding(0); + this.arLabel3.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel3.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel3.msg = null; + this.arLabel3.Name = "arLabel3"; + this.arLabel3.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel3.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel3.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel3.ProgressEnable = false; + this.arLabel3.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel3.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel3.ProgressMax = 100F; + this.arLabel3.ProgressMin = 0F; + this.arLabel3.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel3.ProgressValue = 0F; + this.arLabel3.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel3.Sign = ""; + this.arLabel3.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel3.SignColor = System.Drawing.Color.Yellow; + this.arLabel3.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel3.Size = new System.Drawing.Size(40, 20); + this.arLabel3.TabIndex = 9; + this.arLabel3.Text = "SID"; + this.arLabel3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel3.TextShadow = true; + this.arLabel3.TextVisible = true; + // + // panel17 + // + this.panel17.Controls.Add(this.arLabel19); + this.panel17.Controls.Add(this.arLabel15); + this.panel17.Dock = System.Windows.Forms.DockStyle.Top; + this.panel17.Location = new System.Drawing.Point(0, 140); + this.panel17.Name = "panel17"; + this.panel17.Size = new System.Drawing.Size(157, 20); + this.panel17.TabIndex = 149; + // + // arLabel19 + // + this.arLabel19.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel19.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel19.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel19.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel19.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel19.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel19.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel19.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel19.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel19.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel19.ForeColor = System.Drawing.Color.Gold; + this.arLabel19.GradientEnable = true; + this.arLabel19.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel19.GradientRepeatBG = false; + this.arLabel19.isButton = false; + this.arLabel19.Location = new System.Drawing.Point(40, 0); + this.arLabel19.Margin = new System.Windows.Forms.Padding(0); + this.arLabel19.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel19.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel19.msg = null; + this.arLabel19.Name = "arLabel19"; + this.arLabel19.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel19.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel19.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel19.ProgressEnable = false; + this.arLabel19.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel19.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel19.ProgressMax = 100F; + this.arLabel19.ProgressMin = 0F; + this.arLabel19.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel19.ProgressValue = 0F; + this.arLabel19.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel19.Sign = ""; + this.arLabel19.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel19.SignColor = System.Drawing.Color.Yellow; + this.arLabel19.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel19.Size = new System.Drawing.Size(117, 20); + this.arLabel19.TabIndex = 14; + this.arLabel19.Text = "--"; + this.arLabel19.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel19.TextShadow = true; + this.arLabel19.TextVisible = true; + // + // arLabel15 + // + this.arLabel15.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel15.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel15.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel15.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel15.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel15.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel15.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel15.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel15.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel15.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel15.ForeColor = System.Drawing.Color.White; + this.arLabel15.GradientEnable = true; + this.arLabel15.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel15.GradientRepeatBG = false; + this.arLabel15.isButton = false; + this.arLabel15.Location = new System.Drawing.Point(0, 0); + this.arLabel15.Margin = new System.Windows.Forms.Padding(0); + this.arLabel15.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel15.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel15.msg = null; + this.arLabel15.Name = "arLabel15"; + this.arLabel15.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel15.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel15.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel15.ProgressEnable = false; + this.arLabel15.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel15.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel15.ProgressMax = 100F; + this.arLabel15.ProgressMin = 0F; + this.arLabel15.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel15.ProgressValue = 0F; + this.arLabel15.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel15.Sign = ""; + this.arLabel15.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel15.SignColor = System.Drawing.Color.Yellow; + this.arLabel15.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel15.Size = new System.Drawing.Size(40, 20); + this.arLabel15.TabIndex = 13; + this.arLabel15.Text = "VLOT"; + this.arLabel15.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel15.TextShadow = true; + this.arLabel15.TextVisible = true; + // + // panel18 + // + this.panel18.Controls.Add(this.arLabel85); + this.panel18.Controls.Add(this.arLabel79); + this.panel18.Dock = System.Windows.Forms.DockStyle.Top; + this.panel18.Location = new System.Drawing.Point(0, 120); + this.panel18.Name = "panel18"; + this.panel18.Size = new System.Drawing.Size(157, 20); + this.panel18.TabIndex = 150; + // + // arLabel85 + // + this.arLabel85.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel85.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel85.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel85.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel85.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel85.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel85.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel85.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel85.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel85.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel85.ForeColor = System.Drawing.Color.Gold; + this.arLabel85.GradientEnable = true; + this.arLabel85.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel85.GradientRepeatBG = false; + this.arLabel85.isButton = false; + this.arLabel85.Location = new System.Drawing.Point(40, 0); + this.arLabel85.Margin = new System.Windows.Forms.Padding(0); + this.arLabel85.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel85.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel85.msg = null; + this.arLabel85.Name = "arLabel85"; + this.arLabel85.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel85.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel85.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel85.ProgressEnable = false; + this.arLabel85.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel85.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel85.ProgressMax = 100F; + this.arLabel85.ProgressMin = 0F; + this.arLabel85.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel85.ProgressValue = 0F; + this.arLabel85.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel85.Sign = ""; + this.arLabel85.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel85.SignColor = System.Drawing.Color.Yellow; + this.arLabel85.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel85.Size = new System.Drawing.Size(117, 20); + this.arLabel85.TabIndex = 14; + this.arLabel85.Text = "--"; + this.arLabel85.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel85.TextShadow = true; + this.arLabel85.TextVisible = true; + // + // arLabel79 + // + this.arLabel79.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel79.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel79.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel79.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel79.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel79.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel79.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel79.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel79.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel79.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel79.ForeColor = System.Drawing.Color.White; + this.arLabel79.GradientEnable = true; + this.arLabel79.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel79.GradientRepeatBG = false; + this.arLabel79.isButton = false; + this.arLabel79.Location = new System.Drawing.Point(0, 0); + this.arLabel79.Margin = new System.Windows.Forms.Padding(0); + this.arLabel79.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel79.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel79.msg = null; + this.arLabel79.Name = "arLabel79"; + this.arLabel79.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel79.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel79.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel79.ProgressEnable = false; + this.arLabel79.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel79.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel79.ProgressMax = 100F; + this.arLabel79.ProgressMin = 0F; + this.arLabel79.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel79.ProgressValue = 0F; + this.arLabel79.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel79.Sign = ""; + this.arLabel79.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel79.SignColor = System.Drawing.Color.Yellow; + this.arLabel79.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel79.Size = new System.Drawing.Size(40, 20); + this.arLabel79.TabIndex = 13; + this.arLabel79.Text = "PART"; + this.arLabel79.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel79.TextShadow = true; + this.arLabel79.TextVisible = true; + // + // panel41 + // + this.panel41.Controls.Add(this.arLabel94); + this.panel41.Controls.Add(this.arLabel91); + this.panel41.Dock = System.Windows.Forms.DockStyle.Top; + this.panel41.Location = new System.Drawing.Point(0, 100); + this.panel41.Name = "panel41"; + this.panel41.Size = new System.Drawing.Size(157, 20); + this.panel41.TabIndex = 157; + this.panel41.Paint += new System.Windows.Forms.PaintEventHandler(this.panel41_Paint); + // + // arLabel94 + // + this.arLabel94.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel94.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel94.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel94.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel94.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel94.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel94.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel94.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel94.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel94.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel94.ForeColor = System.Drawing.Color.Gold; + this.arLabel94.GradientEnable = true; + this.arLabel94.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel94.GradientRepeatBG = false; + this.arLabel94.isButton = false; + this.arLabel94.Location = new System.Drawing.Point(40, 0); + this.arLabel94.Margin = new System.Windows.Forms.Padding(0); + this.arLabel94.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel94.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel94.msg = null; + this.arLabel94.Name = "arLabel94"; + this.arLabel94.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel94.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel94.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel94.ProgressEnable = false; + this.arLabel94.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel94.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel94.ProgressMax = 100F; + this.arLabel94.ProgressMin = 0F; + this.arLabel94.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel94.ProgressValue = 0F; + this.arLabel94.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel94.Sign = ""; + this.arLabel94.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel94.SignColor = System.Drawing.Color.Yellow; + this.arLabel94.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel94.Size = new System.Drawing.Size(117, 20); + this.arLabel94.TabIndex = 14; + this.arLabel94.Text = "--"; + this.arLabel94.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel94.TextShadow = true; + this.arLabel94.TextVisible = true; + // + // arLabel91 + // + this.arLabel91.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel91.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel91.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel91.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel91.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel91.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel91.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel91.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel91.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel91.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold); + this.arLabel91.ForeColor = System.Drawing.Color.White; + this.arLabel91.GradientEnable = true; + this.arLabel91.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel91.GradientRepeatBG = false; + this.arLabel91.isButton = false; + this.arLabel91.Location = new System.Drawing.Point(0, 0); + this.arLabel91.Margin = new System.Windows.Forms.Padding(0); + this.arLabel91.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel91.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel91.msg = null; + this.arLabel91.Name = "arLabel91"; + this.arLabel91.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel91.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel91.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel91.ProgressEnable = false; + this.arLabel91.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel91.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel91.ProgressMax = 100F; + this.arLabel91.ProgressMin = 0F; + this.arLabel91.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel91.ProgressValue = 0F; + this.arLabel91.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel91.Sign = ""; + this.arLabel91.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel91.SignColor = System.Drawing.Color.Yellow; + this.arLabel91.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel91.Size = new System.Drawing.Size(40, 20); + this.arLabel91.TabIndex = 13; + this.arLabel91.Text = "SIZE"; + this.arLabel91.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel91.TextShadow = true; + this.arLabel91.TextVisible = true; + // + // panel43 + // + this.panel43.Controls.Add(this.arLabel28); + this.panel43.Controls.Add(this.arLabel20); + this.panel43.Dock = System.Windows.Forms.DockStyle.Top; + this.panel43.Location = new System.Drawing.Point(0, 80); + this.panel43.Name = "panel43"; + this.panel43.Size = new System.Drawing.Size(157, 20); + this.panel43.TabIndex = 159; + // + // arLabel28 + // + this.arLabel28.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel28.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel28.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel28.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel28.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel28.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel28.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel28.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel28.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel28.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel28.ForeColor = System.Drawing.Color.Gold; + this.arLabel28.GradientEnable = true; + this.arLabel28.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel28.GradientRepeatBG = false; + this.arLabel28.isButton = false; + this.arLabel28.Location = new System.Drawing.Point(40, 0); + this.arLabel28.Margin = new System.Windows.Forms.Padding(0); + this.arLabel28.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel28.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel28.msg = null; + this.arLabel28.Name = "arLabel28"; + this.arLabel28.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel28.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel28.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel28.ProgressEnable = false; + this.arLabel28.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel28.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel28.ProgressMax = 100F; + this.arLabel28.ProgressMin = 0F; + this.arLabel28.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel28.ProgressValue = 0F; + this.arLabel28.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel28.Sign = ""; + this.arLabel28.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel28.SignColor = System.Drawing.Color.Yellow; + this.arLabel28.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel28.Size = new System.Drawing.Size(117, 20); + this.arLabel28.TabIndex = 16; + this.arLabel28.Text = "--"; + this.arLabel28.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel28.TextShadow = true; + this.arLabel28.TextVisible = true; + // + // arLabel20 + // + this.arLabel20.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel20.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel20.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel20.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel20.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel20.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel20.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel20.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel20.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel20.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel20.ForeColor = System.Drawing.Color.White; + this.arLabel20.GradientEnable = true; + this.arLabel20.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel20.GradientRepeatBG = false; + this.arLabel20.isButton = false; + this.arLabel20.Location = new System.Drawing.Point(0, 0); + this.arLabel20.Margin = new System.Windows.Forms.Padding(0); + this.arLabel20.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel20.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel20.msg = null; + this.arLabel20.Name = "arLabel20"; + this.arLabel20.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel20.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel20.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel20.ProgressEnable = false; + this.arLabel20.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel20.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel20.ProgressMax = 100F; + this.arLabel20.ProgressMin = 0F; + this.arLabel20.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel20.ProgressValue = 0F; + this.arLabel20.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel20.Sign = ""; + this.arLabel20.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel20.SignColor = System.Drawing.Color.Yellow; + this.arLabel20.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel20.Size = new System.Drawing.Size(40, 20); + this.arLabel20.TabIndex = 15; + this.arLabel20.Text = "MFG"; + this.arLabel20.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel20.TextShadow = true; + this.arLabel20.TextVisible = true; + this.arLabel20.Click += new System.EventHandler(this.arLabel20_Click); + // + // panel44 + // + this.panel44.Controls.Add(this.arLabel69); + this.panel44.Controls.Add(this.arLabel65); + this.panel44.Dock = System.Windows.Forms.DockStyle.Top; + this.panel44.Location = new System.Drawing.Point(0, 60); + this.panel44.Name = "panel44"; + this.panel44.Size = new System.Drawing.Size(157, 20); + this.panel44.TabIndex = 160; + // + // arLabel69 + // + this.arLabel69.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel69.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel69.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel69.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel69.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel69.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel69.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel69.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel69.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel69.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel69.ForeColor = System.Drawing.Color.Gold; + this.arLabel69.GradientEnable = true; + this.arLabel69.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel69.GradientRepeatBG = false; + this.arLabel69.isButton = false; + this.arLabel69.Location = new System.Drawing.Point(40, 0); + this.arLabel69.Margin = new System.Windows.Forms.Padding(0); + this.arLabel69.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel69.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel69.msg = null; + this.arLabel69.Name = "arLabel69"; + this.arLabel69.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel69.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel69.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel69.ProgressEnable = false; + this.arLabel69.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel69.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel69.ProgressMax = 100F; + this.arLabel69.ProgressMin = 0F; + this.arLabel69.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel69.ProgressValue = 0F; + this.arLabel69.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel69.Sign = ""; + this.arLabel69.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel69.SignColor = System.Drawing.Color.Yellow; + this.arLabel69.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel69.Size = new System.Drawing.Size(117, 20); + this.arLabel69.TabIndex = 12; + this.arLabel69.Text = "--"; + this.arLabel69.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel69.TextShadow = true; + this.arLabel69.TextVisible = true; + // + // arLabel65 + // + this.arLabel65.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel65.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel65.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel65.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel65.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel65.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel65.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel65.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel65.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel65.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel65.ForeColor = System.Drawing.Color.White; + this.arLabel65.GradientEnable = true; + this.arLabel65.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel65.GradientRepeatBG = false; + this.arLabel65.isButton = false; + this.arLabel65.Location = new System.Drawing.Point(0, 0); + this.arLabel65.Margin = new System.Windows.Forms.Padding(0); + this.arLabel65.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel65.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel65.msg = null; + this.arLabel65.Name = "arLabel65"; + this.arLabel65.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel65.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel65.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel65.ProgressEnable = false; + this.arLabel65.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel65.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel65.ProgressMax = 100F; + this.arLabel65.ProgressMin = 0F; + this.arLabel65.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel65.ProgressValue = 0F; + this.arLabel65.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel65.Sign = ""; + this.arLabel65.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel65.SignColor = System.Drawing.Color.Yellow; + this.arLabel65.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel65.Size = new System.Drawing.Size(40, 20); + this.arLabel65.TabIndex = 11; + this.arLabel65.Text = "MANU"; + this.arLabel65.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel65.TextShadow = true; + this.arLabel65.TextVisible = true; + // + // panel45 + // + this.panel45.Controls.Add(this.arLabel23); + this.panel45.Controls.Add(this.arLabel24); + this.panel45.Dock = System.Windows.Forms.DockStyle.Top; + this.panel45.Location = new System.Drawing.Point(0, 40); + this.panel45.Name = "panel45"; + this.panel45.Size = new System.Drawing.Size(157, 20); + this.panel45.TabIndex = 161; + // + // arLabel23 + // + this.arLabel23.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel23.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel23.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel23.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel23.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel23.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel23.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel23.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel23.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel23.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel23.ForeColor = System.Drawing.Color.Gold; + this.arLabel23.GradientEnable = true; + this.arLabel23.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel23.GradientRepeatBG = false; + this.arLabel23.isButton = false; + this.arLabel23.Location = new System.Drawing.Point(40, 0); + this.arLabel23.Margin = new System.Windows.Forms.Padding(0); + this.arLabel23.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel23.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel23.msg = null; + this.arLabel23.Name = "arLabel23"; + this.arLabel23.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel23.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel23.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel23.ProgressEnable = false; + this.arLabel23.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel23.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel23.ProgressMax = 100F; + this.arLabel23.ProgressMin = 0F; + this.arLabel23.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel23.ProgressValue = 0F; + this.arLabel23.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel23.Sign = ""; + this.arLabel23.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel23.SignColor = System.Drawing.Color.Yellow; + this.arLabel23.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel23.Size = new System.Drawing.Size(117, 20); + this.arLabel23.TabIndex = 12; + this.arLabel23.Text = "--"; + this.arLabel23.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel23.TextShadow = true; + this.arLabel23.TextVisible = true; + // + // arLabel24 + // + this.arLabel24.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel24.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel24.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel24.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel24.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel24.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel24.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel24.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel24.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel24.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel24.ForeColor = System.Drawing.Color.White; + this.arLabel24.GradientEnable = true; + this.arLabel24.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel24.GradientRepeatBG = false; + this.arLabel24.isButton = false; + this.arLabel24.Location = new System.Drawing.Point(0, 0); + this.arLabel24.Margin = new System.Windows.Forms.Padding(0); + this.arLabel24.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel24.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel24.msg = null; + this.arLabel24.Name = "arLabel24"; + this.arLabel24.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel24.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel24.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel24.ProgressEnable = false; + this.arLabel24.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel24.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel24.ProgressMax = 100F; + this.arLabel24.ProgressMin = 0F; + this.arLabel24.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel24.ProgressValue = 0F; + this.arLabel24.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel24.Sign = ""; + this.arLabel24.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel24.SignColor = System.Drawing.Color.Yellow; + this.arLabel24.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel24.Size = new System.Drawing.Size(40, 20); + this.arLabel24.TabIndex = 11; + this.arLabel24.Text = "QTY"; + this.arLabel24.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel24.TextShadow = true; + this.arLabel24.TextVisible = true; + // + // panel16 + // + this.panel16.Controls.Add(this.arLabel12); + this.panel16.Controls.Add(this.arLabel13); + this.panel16.Dock = System.Windows.Forms.DockStyle.Top; + this.panel16.Location = new System.Drawing.Point(0, 20); + this.panel16.Name = "panel16"; + this.panel16.Size = new System.Drawing.Size(157, 20); + this.panel16.TabIndex = 141; + // + // arLabel12 + // + this.arLabel12.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel12.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel12.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel12.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel12.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel12.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel12.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel12.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel12.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel12.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel12.ForeColor = System.Drawing.Color.Gold; + this.arLabel12.GradientEnable = true; + this.arLabel12.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel12.GradientRepeatBG = false; + this.arLabel12.isButton = false; + this.arLabel12.Location = new System.Drawing.Point(40, 0); + this.arLabel12.Margin = new System.Windows.Forms.Padding(0); + this.arLabel12.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel12.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel12.msg = null; + this.arLabel12.Name = "arLabel12"; + this.arLabel12.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel12.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel12.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel12.ProgressEnable = false; + this.arLabel12.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel12.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel12.ProgressMax = 100F; + this.arLabel12.ProgressMin = 0F; + this.arLabel12.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel12.ProgressValue = 0F; + this.arLabel12.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel12.Sign = ""; + this.arLabel12.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel12.SignColor = System.Drawing.Color.Yellow; + this.arLabel12.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel12.Size = new System.Drawing.Size(117, 20); + this.arLabel12.TabIndex = 10; + this.arLabel12.Text = "--"; + this.arLabel12.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel12.TextShadow = true; + this.arLabel12.TextVisible = true; + // + // arLabel13 + // + this.arLabel13.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel13.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel13.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel13.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel13.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel13.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel13.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel13.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel13.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel13.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel13.ForeColor = System.Drawing.Color.White; + this.arLabel13.GradientEnable = true; + this.arLabel13.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel13.GradientRepeatBG = false; + this.arLabel13.isButton = false; + this.arLabel13.Location = new System.Drawing.Point(0, 0); + this.arLabel13.Margin = new System.Windows.Forms.Padding(0); + this.arLabel13.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel13.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel13.msg = null; + this.arLabel13.Name = "arLabel13"; + this.arLabel13.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel13.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel13.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel13.ProgressEnable = false; + this.arLabel13.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel13.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel13.ProgressMax = 100F; + this.arLabel13.ProgressMin = 0F; + this.arLabel13.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel13.ProgressValue = 0F; + this.arLabel13.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel13.Sign = ""; + this.arLabel13.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel13.SignColor = System.Drawing.Color.Yellow; + this.arLabel13.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel13.Size = new System.Drawing.Size(40, 20); + this.arLabel13.TabIndex = 9; + this.arLabel13.Text = "SID"; + this.arLabel13.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel13.TextShadow = true; + this.arLabel13.TextVisible = true; + // + // panel8 + // + this.panel8.Controls.Add(this.arLabel17); + this.panel8.Controls.Add(this.arLabel16); + this.panel8.Dock = System.Windows.Forms.DockStyle.Top; + this.panel8.Location = new System.Drawing.Point(0, 0); + this.panel8.Name = "panel8"; + this.panel8.Size = new System.Drawing.Size(157, 20); + this.panel8.TabIndex = 148; + // + // arLabel17 + // + this.arLabel17.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel17.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel17.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel17.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel17.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel17.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel17.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel17.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel17.Dock = System.Windows.Forms.DockStyle.Fill; + this.arLabel17.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold); + this.arLabel17.ForeColor = System.Drawing.Color.Gold; + this.arLabel17.GradientEnable = true; + this.arLabel17.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel17.GradientRepeatBG = false; + this.arLabel17.isButton = false; + this.arLabel17.Location = new System.Drawing.Point(40, 0); + this.arLabel17.Margin = new System.Windows.Forms.Padding(0); + this.arLabel17.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel17.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel17.msg = null; + this.arLabel17.Name = "arLabel17"; + this.arLabel17.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel17.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel17.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel17.ProgressEnable = false; + this.arLabel17.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel17.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel17.ProgressMax = 100F; + this.arLabel17.ProgressMin = 0F; + this.arLabel17.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel17.ProgressValue = 0F; + this.arLabel17.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel17.Sign = ""; + this.arLabel17.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel17.SignColor = System.Drawing.Color.Yellow; + this.arLabel17.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel17.Size = new System.Drawing.Size(117, 20); + this.arLabel17.TabIndex = 10; + this.arLabel17.Text = "--"; + this.arLabel17.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel17.TextShadow = true; + this.arLabel17.TextVisible = true; + // + // arLabel16 + // + this.arLabel16.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel16.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel16.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel16.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.arLabel16.BorderColorOver = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.arLabel16.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 1); + this.arLabel16.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel16.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel16.Dock = System.Windows.Forms.DockStyle.Left; + this.arLabel16.Font = new System.Drawing.Font("Consolas", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel16.ForeColor = System.Drawing.Color.White; + this.arLabel16.GradientEnable = true; + this.arLabel16.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel16.GradientRepeatBG = false; + this.arLabel16.isButton = false; + this.arLabel16.Location = new System.Drawing.Point(0, 0); + this.arLabel16.Margin = new System.Windows.Forms.Padding(0); + this.arLabel16.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel16.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel16.msg = null; + this.arLabel16.Name = "arLabel16"; + this.arLabel16.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel16.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel16.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel16.ProgressEnable = false; + this.arLabel16.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel16.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel16.ProgressMax = 100F; + this.arLabel16.ProgressMin = 0F; + this.arLabel16.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel16.ProgressValue = 0F; + this.arLabel16.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel16.Sign = ""; + this.arLabel16.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel16.SignColor = System.Drawing.Color.Yellow; + this.arLabel16.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel16.Size = new System.Drawing.Size(40, 20); + this.arLabel16.TabIndex = 9; + this.arLabel16.Text = "RID"; + this.arLabel16.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel16.TextShadow = true; + this.arLabel16.TextVisible = true; + // + // lbMsgL + // + this.lbMsgL.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lbMsgL.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(60)))), ((int)(((byte)(60))))); + this.lbMsgL.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbMsgL.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.lbMsgL.BorderColorOver = System.Drawing.Color.Red; + this.lbMsgL.BorderSize = new System.Windows.Forms.Padding(0); + this.lbMsgL.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbMsgL.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbMsgL.Dock = System.Windows.Forms.DockStyle.Bottom; + this.lbMsgL.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbMsgL.ForeColor = System.Drawing.Color.Blue; + this.lbMsgL.GradientEnable = true; + this.lbMsgL.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lbMsgL.GradientRepeatBG = false; + this.lbMsgL.isButton = false; + this.lbMsgL.Location = new System.Drawing.Point(0, 300); + this.lbMsgL.Margin = new System.Windows.Forms.Padding(5, 4, 7, 3); + this.lbMsgL.MouseDownColor = System.Drawing.Color.Yellow; + this.lbMsgL.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbMsgL.msg = null; + this.lbMsgL.Name = "lbMsgL"; + this.lbMsgL.ProgressBorderColor = System.Drawing.Color.Black; + this.lbMsgL.ProgressColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.lbMsgL.ProgressColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.lbMsgL.ProgressEnable = true; + this.lbMsgL.ProgressFont = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Bold); + this.lbMsgL.ProgressForeColor = System.Drawing.Color.Gold; + this.lbMsgL.ProgressMax = 100F; + this.lbMsgL.ProgressMin = 0F; + this.lbMsgL.ProgressPadding = new System.Windows.Forms.Padding(2); + this.lbMsgL.ProgressValue = 50F; + this.lbMsgL.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(50)))), ((int)(((byte)(50)))), ((int)(((byte)(50))))); + this.lbMsgL.Sign = ""; + this.lbMsgL.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbMsgL.SignColor = System.Drawing.Color.Yellow; + this.lbMsgL.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbMsgL.Size = new System.Drawing.Size(413, 34); + this.lbMsgL.TabIndex = 124; + this.lbMsgL.Text = "상태 메세지(L)"; + this.lbMsgL.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbMsgL.TextShadow = true; + this.lbMsgL.TextVisible = true; + // + // panel15 + // + this.panel15.Controls.Add(this.lbLock0); + this.panel15.Controls.Add(this.arLabel11); + this.panel15.Controls.Add(this.arLabel6); + this.panel15.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel15.Location = new System.Drawing.Point(0, 334); + this.panel15.Name = "panel15"; + this.panel15.Size = new System.Drawing.Size(413, 75); + this.panel15.TabIndex = 155; + // + // lbLock0 + // + this.lbLock0.BackColor = System.Drawing.Color.DeepPink; + this.lbLock0.BackColor2 = System.Drawing.Color.Crimson; + this.lbLock0.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbLock0.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbLock0.BorderColorOver = System.Drawing.Color.DarkBlue; + this.lbLock0.BorderSize = new System.Windows.Forms.Padding(0); + this.lbLock0.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbLock0.Cursor = System.Windows.Forms.Cursors.Hand; + this.lbLock0.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbLock0.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbLock0.ForeColor = System.Drawing.Color.SkyBlue; + this.lbLock0.GradientEnable = true; + this.lbLock0.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbLock0.GradientRepeatBG = false; + this.lbLock0.isButton = true; + this.lbLock0.Location = new System.Drawing.Point(100, 0); + this.lbLock0.Margin = new System.Windows.Forms.Padding(0); + this.lbLock0.MouseDownColor = System.Drawing.Color.Yellow; + this.lbLock0.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbLock0.msg = null; + this.lbLock0.Name = "lbLock0"; + this.lbLock0.ProgressBorderColor = System.Drawing.Color.Black; + this.lbLock0.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbLock0.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbLock0.ProgressEnable = false; + this.lbLock0.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbLock0.ProgressForeColor = System.Drawing.Color.Black; + this.lbLock0.ProgressMax = 100F; + this.lbLock0.ProgressMin = 0F; + this.lbLock0.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbLock0.ProgressValue = 0F; + this.lbLock0.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lbLock0.Sign = ""; + this.lbLock0.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbLock0.SignColor = System.Drawing.Color.Yellow; + this.lbLock0.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbLock0.Size = new System.Drawing.Size(213, 75); + this.lbLock0.TabIndex = 15; + this.lbLock0.Tag = "0"; + this.lbLock0.Text = "포트 잠금"; + this.lbLock0.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbLock0.TextShadow = true; + this.lbLock0.TextVisible = true; + this.lbLock0.Click += new System.EventHandler(this.lbLock2_Click); + // + // panel12 + // + this.panel12.Controls.Add(this.arLabel2); + this.panel12.Controls.Add(this.lbTitleBS); + this.panel12.Dock = System.Windows.Forms.DockStyle.Top; + this.panel12.Location = new System.Drawing.Point(0, 0); + this.panel12.Margin = new System.Windows.Forms.Padding(0); + this.panel12.Name = "panel12"; + this.panel12.Size = new System.Drawing.Size(1257, 38); + this.panel12.TabIndex = 6; + // + // lbTitleBS + // + this.lbTitleBS.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbTitleBS.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.lbTitleBS.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbTitleBS.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lbTitleBS.BorderColorOver = System.Drawing.Color.Black; + this.lbTitleBS.BorderSize = new System.Windows.Forms.Padding(0); + this.lbTitleBS.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbTitleBS.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbTitleBS.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbTitleBS.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.lbTitleBS.ForeColor = System.Drawing.Color.Gainsboro; + this.lbTitleBS.GradientEnable = false; + this.lbTitleBS.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbTitleBS.GradientRepeatBG = false; + this.lbTitleBS.isButton = false; + this.lbTitleBS.Location = new System.Drawing.Point(0, 0); + this.lbTitleBS.MouseDownColor = System.Drawing.Color.Yellow; + this.lbTitleBS.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbTitleBS.msg = null; + this.lbTitleBS.Name = "lbTitleBS"; + this.lbTitleBS.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lbTitleBS.ProgressBorderColor = System.Drawing.Color.Black; + this.lbTitleBS.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbTitleBS.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbTitleBS.ProgressEnable = false; + this.lbTitleBS.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbTitleBS.ProgressForeColor = System.Drawing.Color.Black; + this.lbTitleBS.ProgressMax = 100F; + this.lbTitleBS.ProgressMin = 0F; + this.lbTitleBS.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbTitleBS.ProgressValue = 0F; + this.lbTitleBS.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lbTitleBS.Sign = ""; + this.lbTitleBS.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbTitleBS.SignColor = System.Drawing.Color.Yellow; + this.lbTitleBS.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbTitleBS.Size = new System.Drawing.Size(1257, 38); + this.lbTitleBS.TabIndex = 2; + this.lbTitleBS.Text = "MACHINE"; + this.lbTitleBS.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lbTitleBS.TextShadow = true; + this.lbTitleBS.TextVisible = true; + this.lbTitleBS.Click += new System.EventHandler(this.lbTitleBS_Click); + // + // cmBarcode + // + this.cmBarcode.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripMenuItem22}); + this.cmBarcode.Name = "cmLot1"; + this.cmBarcode.Size = new System.Drawing.Size(99, 26); + // + // toolStripMenuItem22 + // + this.toolStripMenuItem22.Name = "toolStripMenuItem22"; + this.toolStripMenuItem22.Size = new System.Drawing.Size(98, 22); + this.toolStripMenuItem22.Text = "삭제"; + // + // cmDebug + // + this.cmDebug.Font = new System.Drawing.Font("Cambria", 10F, System.Drawing.FontStyle.Bold); + this.cmDebug.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.customerRuleToolStripMenuItem, + this.countToolStripMenuItem, + this.sMResetToolStripMenuItem, + this.systemParameterToolStripMenuItem, + this.toolStripMenuItem9, + this.toolStripMenuItem4, + this.debugModeToolStripMenuItem, + this.demoRunToolStripMenuItem, + this.toolStripMenuItem1, + this.sendMailToolStripMenuItem, + this.toolStripMenuItem8, + this.motionEmulatorToolStripMenuItem, + this.dIOMonitorToolStripMenuItem, + this.refreshControklToolStripMenuItem, + this.작업선택화면ToolStripMenuItem, + this.historyToolStripMenuItem, + this.menusToolStripMenuItem, + this.screenToolStripMenuItem, + this.motionParameterToolStripMenuItem, + this.processListToolStripMenuItem, + this.toolStripMenuItem6, + this.visionTrigger0ToolStripMenuItem, + this.visionTrigger1ToolStripMenuItem, + this.toolStripMenuItem7, + this.visionProcess0ToolStripMenuItem, + this.visionProcess1ToolStripMenuItem, + this.toolStripMenuItem10}); + this.cmDebug.Name = "cmVision"; + this.cmDebug.Size = new System.Drawing.Size(214, 524); + // + // countToolStripMenuItem + // + this.countToolStripMenuItem.Name = "countToolStripMenuItem"; + this.countToolStripMenuItem.Size = new System.Drawing.Size(213, 22); + this.countToolStripMenuItem.Text = "Debug Window"; + this.countToolStripMenuItem.Click += new System.EventHandler(this.countToolStripMenuItem_Click); + // + // sMResetToolStripMenuItem + // + this.sMResetToolStripMenuItem.Name = "sMResetToolStripMenuItem"; + this.sMResetToolStripMenuItem.Size = new System.Drawing.Size(213, 22); + this.sMResetToolStripMenuItem.Text = "S/M Reset"; + this.sMResetToolStripMenuItem.Click += new System.EventHandler(this.sMResetToolStripMenuItem_Click); + // + // debugModeToolStripMenuItem + // + this.debugModeToolStripMenuItem.Name = "debugModeToolStripMenuItem"; + this.debugModeToolStripMenuItem.Size = new System.Drawing.Size(213, 22); + this.debugModeToolStripMenuItem.Text = "Debug Mode"; + this.debugModeToolStripMenuItem.Click += new System.EventHandler(this.debugModeToolStripMenuItem_Click); + // + // sendMailToolStripMenuItem + // + this.sendMailToolStripMenuItem.Name = "sendMailToolStripMenuItem"; + this.sendMailToolStripMenuItem.Size = new System.Drawing.Size(213, 22); + this.sendMailToolStripMenuItem.Text = "Send Mail"; + // + // toolStripMenuItem8 + // + this.toolStripMenuItem8.Name = "toolStripMenuItem8"; + this.toolStripMenuItem8.Size = new System.Drawing.Size(210, 6); + // + // motionEmulatorToolStripMenuItem + // + this.motionEmulatorToolStripMenuItem.Name = "motionEmulatorToolStripMenuItem"; + this.motionEmulatorToolStripMenuItem.Size = new System.Drawing.Size(213, 22); + this.motionEmulatorToolStripMenuItem.Text = "M/C Emulator"; + this.motionEmulatorToolStripMenuItem.Click += new System.EventHandler(this.motionEmulatorToolStripMenuItem_Click); + // + // dIOMonitorToolStripMenuItem + // + this.dIOMonitorToolStripMenuItem.Name = "dIOMonitorToolStripMenuItem"; + this.dIOMonitorToolStripMenuItem.Size = new System.Drawing.Size(213, 22); + this.dIOMonitorToolStripMenuItem.Text = "DIO Monitor"; + this.dIOMonitorToolStripMenuItem.Click += new System.EventHandler(this.dIOMonitorToolStripMenuItem_Click); + // + // refreshControklToolStripMenuItem + // + this.refreshControklToolStripMenuItem.Name = "refreshControklToolStripMenuItem"; + this.refreshControklToolStripMenuItem.Size = new System.Drawing.Size(213, 22); + this.refreshControklToolStripMenuItem.Text = "Refresh Controkl"; + this.refreshControklToolStripMenuItem.Click += new System.EventHandler(this.refreshControklToolStripMenuItem_Click); + // + // 작업선택화면ToolStripMenuItem + // + this.작업선택화면ToolStripMenuItem.Name = "작업선택화면ToolStripMenuItem"; + this.작업선택화면ToolStripMenuItem.Size = new System.Drawing.Size(213, 22); + this.작업선택화면ToolStripMenuItem.Text = "Data Buffer (SID Ref)"; + this.작업선택화면ToolStripMenuItem.Click += new System.EventHandler(this.작업선택화면ToolStripMenuItem_Click); + // + // historyToolStripMenuItem + // + this.historyToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.testToolStripMenuItem, + this.detectCountToolStripMenuItem}); + this.historyToolStripMenuItem.Name = "historyToolStripMenuItem"; + this.historyToolStripMenuItem.Size = new System.Drawing.Size(213, 22); + this.historyToolStripMenuItem.Text = "History"; + // + // testToolStripMenuItem + // + this.testToolStripMenuItem.Name = "testToolStripMenuItem"; + this.testToolStripMenuItem.Size = new System.Drawing.Size(160, 22); + this.testToolStripMenuItem.Text = "test"; + this.testToolStripMenuItem.Click += new System.EventHandler(this.testToolStripMenuItem_Click); + // + // detectCountToolStripMenuItem + // + this.detectCountToolStripMenuItem.Name = "detectCountToolStripMenuItem"; + this.detectCountToolStripMenuItem.Size = new System.Drawing.Size(160, 22); + this.detectCountToolStripMenuItem.Text = "Detect Count"; + // + // menusToolStripMenuItem + // + this.menusToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.sampleToolStripMenuItem, + this.clearToolStripMenuItem1}); + this.menusToolStripMenuItem.Name = "menusToolStripMenuItem"; + this.menusToolStripMenuItem.Size = new System.Drawing.Size(213, 22); + this.menusToolStripMenuItem.Text = "Menus"; + // + // sampleToolStripMenuItem + // + this.sampleToolStripMenuItem.Name = "sampleToolStripMenuItem"; + this.sampleToolStripMenuItem.Size = new System.Drawing.Size(111, 22); + this.sampleToolStripMenuItem.Text = "Add"; + this.sampleToolStripMenuItem.Click += new System.EventHandler(this.sampleToolStripMenuItem_Click); + // + // clearToolStripMenuItem1 + // + this.clearToolStripMenuItem1.Name = "clearToolStripMenuItem1"; + this.clearToolStripMenuItem1.Size = new System.Drawing.Size(111, 22); + this.clearToolStripMenuItem1.Text = "Clear"; + this.clearToolStripMenuItem1.Click += new System.EventHandler(this.clearToolStripMenuItem1_Click); + // + // screenToolStripMenuItem + // + this.screenToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.jOBStartToolStripMenuItem, + this.jObEndToolStripMenuItem}); + this.screenToolStripMenuItem.Name = "screenToolStripMenuItem"; + this.screenToolStripMenuItem.Size = new System.Drawing.Size(213, 22); + this.screenToolStripMenuItem.Text = "Screen"; + // + // jOBStartToolStripMenuItem + // + this.jOBStartToolStripMenuItem.Name = "jOBStartToolStripMenuItem"; + this.jOBStartToolStripMenuItem.Size = new System.Drawing.Size(136, 22); + this.jOBStartToolStripMenuItem.Text = "JOB Start"; + this.jOBStartToolStripMenuItem.Click += new System.EventHandler(this.jOBStartToolStripMenuItem_Click); + // + // jObEndToolStripMenuItem + // + this.jObEndToolStripMenuItem.Name = "jObEndToolStripMenuItem"; + this.jObEndToolStripMenuItem.Size = new System.Drawing.Size(136, 22); + this.jObEndToolStripMenuItem.Text = "JOb End"; + this.jObEndToolStripMenuItem.Click += new System.EventHandler(this.jObEndToolStripMenuItem_Click); + // + // motionParameterToolStripMenuItem + // + this.motionParameterToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.axis0ToolStripMenuItem, + this.axis1ToolStripMenuItem, + this.axis2ToolStripMenuItem, + this.axis3ToolStripMenuItem, + this.axis4ToolStripMenuItem}); + this.motionParameterToolStripMenuItem.Name = "motionParameterToolStripMenuItem"; + this.motionParameterToolStripMenuItem.Size = new System.Drawing.Size(213, 22); + this.motionParameterToolStripMenuItem.Text = "Motion Parameter"; + // + // axis0ToolStripMenuItem + // + this.axis0ToolStripMenuItem.Name = "axis0ToolStripMenuItem"; + this.axis0ToolStripMenuItem.Size = new System.Drawing.Size(116, 22); + this.axis0ToolStripMenuItem.Text = "Axis 0"; + this.axis0ToolStripMenuItem.Click += new System.EventHandler(this.axis0ToolStripMenuItem_Click); + // + // axis1ToolStripMenuItem + // + this.axis1ToolStripMenuItem.Name = "axis1ToolStripMenuItem"; + this.axis1ToolStripMenuItem.Size = new System.Drawing.Size(116, 22); + this.axis1ToolStripMenuItem.Text = "Axis 1"; + this.axis1ToolStripMenuItem.Click += new System.EventHandler(this.axis1ToolStripMenuItem_Click); + // + // axis2ToolStripMenuItem + // + this.axis2ToolStripMenuItem.Name = "axis2ToolStripMenuItem"; + this.axis2ToolStripMenuItem.Size = new System.Drawing.Size(116, 22); + this.axis2ToolStripMenuItem.Text = "Axis 2"; + this.axis2ToolStripMenuItem.Click += new System.EventHandler(this.axis2ToolStripMenuItem_Click); + // + // axis3ToolStripMenuItem + // + this.axis3ToolStripMenuItem.Name = "axis3ToolStripMenuItem"; + this.axis3ToolStripMenuItem.Size = new System.Drawing.Size(116, 22); + this.axis3ToolStripMenuItem.Text = "Axis 3"; + this.axis3ToolStripMenuItem.Click += new System.EventHandler(this.axis3ToolStripMenuItem_Click); + // + // axis4ToolStripMenuItem + // + this.axis4ToolStripMenuItem.Name = "axis4ToolStripMenuItem"; + this.axis4ToolStripMenuItem.Size = new System.Drawing.Size(116, 22); + this.axis4ToolStripMenuItem.Text = "Axis 4"; + this.axis4ToolStripMenuItem.Click += new System.EventHandler(this.axis4ToolStripMenuItem_Click); + // + // processListToolStripMenuItem + // + this.processListToolStripMenuItem.Name = "processListToolStripMenuItem"; + this.processListToolStripMenuItem.Size = new System.Drawing.Size(213, 22); + this.processListToolStripMenuItem.Text = "Process List"; + this.processListToolStripMenuItem.Click += new System.EventHandler(this.processListToolStripMenuItem_Click); + // + // toolStripMenuItem6 + // + this.toolStripMenuItem6.Name = "toolStripMenuItem6"; + this.toolStripMenuItem6.Size = new System.Drawing.Size(210, 6); + // + // visionTrigger0ToolStripMenuItem + // + this.visionTrigger0ToolStripMenuItem.Name = "visionTrigger0ToolStripMenuItem"; + this.visionTrigger0ToolStripMenuItem.Size = new System.Drawing.Size(213, 22); + this.visionTrigger0ToolStripMenuItem.Text = "Vision Trigger (0)"; + this.visionTrigger0ToolStripMenuItem.Click += new System.EventHandler(this.visionTrigger0ToolStripMenuItem_Click); + // + // visionTrigger1ToolStripMenuItem + // + this.visionTrigger1ToolStripMenuItem.Name = "visionTrigger1ToolStripMenuItem"; + this.visionTrigger1ToolStripMenuItem.Size = new System.Drawing.Size(213, 22); + this.visionTrigger1ToolStripMenuItem.Text = "Vision Trigger (1)"; + this.visionTrigger1ToolStripMenuItem.Click += new System.EventHandler(this.visionTrigger1ToolStripMenuItem_Click); + // + // toolStripMenuItem7 + // + this.toolStripMenuItem7.Name = "toolStripMenuItem7"; + this.toolStripMenuItem7.Size = new System.Drawing.Size(210, 6); + // + // visionProcess0ToolStripMenuItem + // + this.visionProcess0ToolStripMenuItem.Name = "visionProcess0ToolStripMenuItem"; + this.visionProcess0ToolStripMenuItem.Size = new System.Drawing.Size(213, 22); + this.visionProcess0ToolStripMenuItem.Text = "Vision Status(0)"; + this.visionProcess0ToolStripMenuItem.Click += new System.EventHandler(this.visionProcess0ToolStripMenuItem_Click); + // + // visionProcess1ToolStripMenuItem + // + this.visionProcess1ToolStripMenuItem.Name = "visionProcess1ToolStripMenuItem"; + this.visionProcess1ToolStripMenuItem.Size = new System.Drawing.Size(213, 22); + this.visionProcess1ToolStripMenuItem.Text = "Vision Status(1)"; + this.visionProcess1ToolStripMenuItem.Click += new System.EventHandler(this.visionProcess1ToolStripMenuItem_Click); + // + // idxDataGridViewTextBoxColumn + // + this.idxDataGridViewTextBoxColumn.DataPropertyName = "idx"; + this.idxDataGridViewTextBoxColumn.HeaderText = "idx"; + this.idxDataGridViewTextBoxColumn.Name = "idxDataGridViewTextBoxColumn"; + this.idxDataGridViewTextBoxColumn.Width = 5; + // + // stripIdDataGridViewTextBoxColumn2 + // + this.stripIdDataGridViewTextBoxColumn2.DataPropertyName = "StripId"; + this.stripIdDataGridViewTextBoxColumn2.HeaderText = "StripId"; + this.stripIdDataGridViewTextBoxColumn2.Name = "stripIdDataGridViewTextBoxColumn2"; + this.stripIdDataGridViewTextBoxColumn2.Width = 5; + // + // oKDataGridViewTextBoxColumn2 + // + this.oKDataGridViewTextBoxColumn2.DataPropertyName = "OK"; + this.oKDataGridViewTextBoxColumn2.HeaderText = "OK"; + this.oKDataGridViewTextBoxColumn2.Name = "oKDataGridViewTextBoxColumn2"; + this.oKDataGridViewTextBoxColumn2.Width = 5; + // + // nGDataGridViewTextBoxColumn2 + // + this.nGDataGridViewTextBoxColumn2.DataPropertyName = "NG"; + this.nGDataGridViewTextBoxColumn2.HeaderText = "NG"; + this.nGDataGridViewTextBoxColumn2.Name = "nGDataGridViewTextBoxColumn2"; + this.nGDataGridViewTextBoxColumn2.Width = 5; + // + // mISSDataGridViewTextBoxColumn2 + // + this.mISSDataGridViewTextBoxColumn2.DataPropertyName = "MISS"; + this.mISSDataGridViewTextBoxColumn2.HeaderText = "MISS"; + this.mISSDataGridViewTextBoxColumn2.Name = "mISSDataGridViewTextBoxColumn2"; + this.mISSDataGridViewTextBoxColumn2.Width = 5; + // + // fileMapDataGridViewTextBoxColumn + // + this.fileMapDataGridViewTextBoxColumn.DataPropertyName = "FileMap"; + this.fileMapDataGridViewTextBoxColumn.HeaderText = "FileMap"; + this.fileMapDataGridViewTextBoxColumn.Name = "fileMapDataGridViewTextBoxColumn"; + this.fileMapDataGridViewTextBoxColumn.Width = 5; + // + // dataPathDataGridViewTextBoxColumn + // + this.dataPathDataGridViewTextBoxColumn.DataPropertyName = "DataPath"; + this.dataPathDataGridViewTextBoxColumn.HeaderText = "DataPath"; + this.dataPathDataGridViewTextBoxColumn.Name = "dataPathDataGridViewTextBoxColumn"; + this.dataPathDataGridViewTextBoxColumn.Width = 5; + // + // mapOriginDataGridViewTextBoxColumn + // + this.mapOriginDataGridViewTextBoxColumn.DataPropertyName = "MapOrigin"; + this.mapOriginDataGridViewTextBoxColumn.HeaderText = "MapOrigin"; + this.mapOriginDataGridViewTextBoxColumn.Name = "mapOriginDataGridViewTextBoxColumn"; + this.mapOriginDataGridViewTextBoxColumn.Width = 5; + // + // mapArrayDataGridViewTextBoxColumn + // + this.mapArrayDataGridViewTextBoxColumn.DataPropertyName = "MapArray"; + this.mapArrayDataGridViewTextBoxColumn.HeaderText = "MapArray"; + this.mapArrayDataGridViewTextBoxColumn.Name = "mapArrayDataGridViewTextBoxColumn"; + this.mapArrayDataGridViewTextBoxColumn.Width = 5; + // + // panTopMenu + // + this.panTopMenu.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.panTopMenu.Controls.Add(this.button2); + this.panTopMenu.Controls.Add(this.button1); + this.panTopMenu.Controls.Add(this.button4); + this.panTopMenu.Controls.Add(this.btJobCancle); + this.panTopMenu.Controls.Add(this.button3); + this.panTopMenu.Controls.Add(this.arLabel1); + this.panTopMenu.Controls.Add(this.btSReset); + this.panTopMenu.Controls.Add(this.btUserControl); + this.panTopMenu.Controls.Add(this.btDebug); + this.panTopMenu.Controls.Add(this.btOpenDir); + this.panTopMenu.Controls.Add(this.btMReset); + this.panTopMenu.Controls.Add(this.btCapture); + this.panTopMenu.Controls.Add(this.btManual); + this.panTopMenu.Controls.Add(this.btSetting); + this.panTopMenu.Controls.Add(this.btClose); + this.panTopMenu.Controls.Add(this.btIOMon); + this.panTopMenu.Controls.Add(this.btJob); + this.panTopMenu.Controls.Add(this.btMotion); + this.panTopMenu.Controls.Add(this.btHistory); + this.panTopMenu.Controls.Add(this.pictureBox1); + this.panTopMenu.Dock = System.Windows.Forms.DockStyle.Top; + this.panTopMenu.Enabled = false; + this.panTopMenu.Location = new System.Drawing.Point(1, 1); + this.panTopMenu.Name = "panTopMenu"; + this.panTopMenu.Size = new System.Drawing.Size(1262, 50); + this.panTopMenu.TabIndex = 133; + // + // testmenuToolStripMenuItem + // + this.testmenuToolStripMenuItem.Name = "testmenuToolStripMenuItem"; + this.testmenuToolStripMenuItem.Size = new System.Drawing.Size(180, 22); + this.testmenuToolStripMenuItem.Text = "testmenu"; + // + // ta + // + this.ta.ClearBeforeFill = true; + // + // bindingNavigatorMoveFirstItem + // + this.bindingNavigatorMoveFirstItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveFirstItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveFirstItem.Image"))); + this.bindingNavigatorMoveFirstItem.Name = "bindingNavigatorMoveFirstItem"; + this.bindingNavigatorMoveFirstItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveFirstItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveFirstItem.Text = "처음으로 이동"; + // + // bindingNavigatorMovePreviousItem + // + this.bindingNavigatorMovePreviousItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMovePreviousItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMovePreviousItem.Image"))); + this.bindingNavigatorMovePreviousItem.Name = "bindingNavigatorMovePreviousItem"; + this.bindingNavigatorMovePreviousItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMovePreviousItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMovePreviousItem.Text = "이전으로 이동"; + // + // bindingNavigatorMoveNextItem + // + this.bindingNavigatorMoveNextItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveNextItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveNextItem.Image"))); + this.bindingNavigatorMoveNextItem.Name = "bindingNavigatorMoveNextItem"; + this.bindingNavigatorMoveNextItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveNextItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveNextItem.Text = "다음으로 이동"; + // + // bindingNavigatorMoveLastItem + // + this.bindingNavigatorMoveLastItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveLastItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveLastItem.Image"))); + this.bindingNavigatorMoveLastItem.Name = "bindingNavigatorMoveLastItem"; + this.bindingNavigatorMoveLastItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveLastItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveLastItem.Text = "마지막으로 이동"; + // + // toolStripButton1 + // + this.toolStripButton1.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image"))); + this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton1.Name = "toolStripButton1"; + this.toolStripButton1.Size = new System.Drawing.Size(75, 22); + this.toolStripButton1.Text = "새로고침"; + this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click_1); + // + // iv2 + // + this.iv2.arDebugMessageColor = System.Drawing.Color.SkyBlue; + this.iv2.arInsertROI = false; + this.iv2.arROIDrawColor = System.Drawing.Color.Lime; + this.iv2.arSceanBColor = System.Drawing.Color.Black; + this.iv2.arSceanFColor = System.Drawing.Color.White; + this.iv2.arSceanMessage = null; + this.iv2.arShowDebugMessage = false; + this.iv2.arUseROIControl = false; + this.iv2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(5)))), ((int)(((byte)(5)))), ((int)(((byte)(5))))); + this.iv2.Dock = System.Windows.Forms.DockStyle.Fill; + this.iv2.ImageSize = new System.Drawing.Size(0, 0); + this.iv2.isRunZoomFit = false; + this.iv2.Location = new System.Drawing.Point(0, 30); + this.iv2.Name = "iv2"; + this.iv2.Size = new System.Drawing.Size(256, 270); + this.iv2.TabIndex = 2; + this.iv2.TabStop = false; + // + // iv0 + // + this.iv0.arDebugMessageColor = System.Drawing.Color.SkyBlue; + this.iv0.arInsertROI = false; + this.iv0.arROIDrawColor = System.Drawing.Color.Lime; + this.iv0.arSceanBColor = System.Drawing.Color.Black; + this.iv0.arSceanFColor = System.Drawing.Color.White; + this.iv0.arSceanMessage = null; + this.iv0.arShowDebugMessage = false; + this.iv0.arUseROIControl = false; + this.iv0.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(5)))), ((int)(((byte)(5)))), ((int)(((byte)(5))))); + this.iv0.Dock = System.Windows.Forms.DockStyle.Fill; + this.iv0.ImageSize = new System.Drawing.Size(0, 0); + this.iv0.isRunZoomFit = false; + this.iv0.Location = new System.Drawing.Point(0, 30); + this.iv0.Name = "iv0"; + this.iv0.Size = new System.Drawing.Size(256, 270); + this.iv0.TabIndex = 2; + this.iv0.TabStop = false; + // + // arLabel1 + // + this.arLabel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.arLabel1.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("arLabel1.BackgroundImage"))); + this.arLabel1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.arLabel1.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel1.BorderColorOver = System.Drawing.Color.SkyBlue; + this.arLabel1.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); + this.arLabel1.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel1.Cursor = System.Windows.Forms.Cursors.Hand; + this.arLabel1.Dock = System.Windows.Forms.DockStyle.Right; + this.arLabel1.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.arLabel1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.arLabel1.GradientEnable = false; + this.arLabel1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel1.GradientRepeatBG = false; + this.arLabel1.isButton = true; + this.arLabel1.Location = new System.Drawing.Point(862, 0); + this.arLabel1.Margin = new System.Windows.Forms.Padding(0); + this.arLabel1.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel1.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel1.msg = null; + this.arLabel1.Name = "arLabel1"; + this.arLabel1.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel1.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel1.ProgressEnable = false; + this.arLabel1.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel1.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel1.ProgressMax = 100F; + this.arLabel1.ProgressMin = 0F; + this.arLabel1.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel1.ProgressValue = 0F; + this.arLabel1.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel1.Sign = ""; + this.arLabel1.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel1.SignColor = System.Drawing.Color.Yellow; + this.arLabel1.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel1.Size = new System.Drawing.Size(50, 50); + this.arLabel1.TabIndex = 20; + this.arLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel1.TextShadow = true; + this.arLabel1.TextVisible = true; + this.toolTip1.SetToolTip(this.arLabel1, "개발자 메뉴\r\n*사용하지 마세요"); + this.arLabel1.Visible = false; + // + // btDebug + // + this.btDebug.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.btDebug.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.btDebug.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btDebug.BackgroundImage"))); + this.btDebug.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.btDebug.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btDebug.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.btDebug.BorderColorOver = System.Drawing.Color.SkyBlue; + this.btDebug.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); + this.btDebug.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btDebug.Cursor = System.Windows.Forms.Cursors.Hand; + this.btDebug.Dock = System.Windows.Forms.DockStyle.Right; + this.btDebug.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.btDebug.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.btDebug.GradientEnable = false; + this.btDebug.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btDebug.GradientRepeatBG = false; + this.btDebug.isButton = true; + this.btDebug.Location = new System.Drawing.Point(912, 0); + this.btDebug.Margin = new System.Windows.Forms.Padding(0); + this.btDebug.MouseDownColor = System.Drawing.Color.Yellow; + this.btDebug.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btDebug.msg = null; + this.btDebug.Name = "btDebug"; + this.btDebug.ProgressBorderColor = System.Drawing.Color.Black; + this.btDebug.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btDebug.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btDebug.ProgressEnable = false; + this.btDebug.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btDebug.ProgressForeColor = System.Drawing.Color.Black; + this.btDebug.ProgressMax = 100F; + this.btDebug.ProgressMin = 0F; + this.btDebug.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btDebug.ProgressValue = 0F; + this.btDebug.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btDebug.Sign = ""; + this.btDebug.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btDebug.SignColor = System.Drawing.Color.Yellow; + this.btDebug.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btDebug.Size = new System.Drawing.Size(50, 50); + this.btDebug.TabIndex = 15; + this.btDebug.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btDebug.TextShadow = true; + this.btDebug.TextVisible = true; + this.toolTip1.SetToolTip(this.btDebug, "개발자 메뉴\r\n*사용하지 마세요"); + this.btDebug.Visible = false; + this.btDebug.Click += new System.EventHandler(this.btDebug_Click); + // + // btOpenDir + // + this.btOpenDir.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.btOpenDir.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.btOpenDir.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btOpenDir.BackgroundImage"))); + this.btOpenDir.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.btOpenDir.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btOpenDir.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.btOpenDir.BorderColorOver = System.Drawing.Color.SkyBlue; + this.btOpenDir.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); + this.btOpenDir.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btOpenDir.Cursor = System.Windows.Forms.Cursors.Hand; + this.btOpenDir.Dock = System.Windows.Forms.DockStyle.Right; + this.btOpenDir.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.btOpenDir.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.btOpenDir.GradientEnable = false; + this.btOpenDir.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btOpenDir.GradientRepeatBG = false; + this.btOpenDir.isButton = true; + this.btOpenDir.Location = new System.Drawing.Point(962, 0); + this.btOpenDir.Margin = new System.Windows.Forms.Padding(0); + this.btOpenDir.MouseDownColor = System.Drawing.Color.Yellow; + this.btOpenDir.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btOpenDir.msg = null; + this.btOpenDir.Name = "btOpenDir"; + this.btOpenDir.ProgressBorderColor = System.Drawing.Color.Black; + this.btOpenDir.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btOpenDir.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btOpenDir.ProgressEnable = false; + this.btOpenDir.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btOpenDir.ProgressForeColor = System.Drawing.Color.Black; + this.btOpenDir.ProgressMax = 100F; + this.btOpenDir.ProgressMin = 0F; + this.btOpenDir.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btOpenDir.ProgressValue = 0F; + this.btOpenDir.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btOpenDir.Sign = ""; + this.btOpenDir.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btOpenDir.SignColor = System.Drawing.Color.Yellow; + this.btOpenDir.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btOpenDir.Size = new System.Drawing.Size(50, 50); + this.btOpenDir.TabIndex = 16; + this.btOpenDir.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btOpenDir.TextShadow = true; + this.btOpenDir.TextVisible = true; + this.toolTip1.SetToolTip(this.btOpenDir, "윈도우 탐색기로 프로그램이 설치된 폴더를 확인 합니다\r\n(로그,이미지,기록 폴더 포함)"); + this.btOpenDir.Click += new System.EventHandler(this.arLabel16_Click); + // + // btMReset + // + this.btMReset.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.btMReset.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.btMReset.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btMReset.BackgroundImage"))); + this.btMReset.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.btMReset.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btMReset.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.btMReset.BorderColorOver = System.Drawing.Color.SkyBlue; + this.btMReset.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); + this.btMReset.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btMReset.Cursor = System.Windows.Forms.Cursors.Hand; + this.btMReset.Dock = System.Windows.Forms.DockStyle.Right; + this.btMReset.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.btMReset.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.btMReset.GradientEnable = false; + this.btMReset.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btMReset.GradientRepeatBG = false; + this.btMReset.isButton = true; + this.btMReset.Location = new System.Drawing.Point(1012, 0); + this.btMReset.Margin = new System.Windows.Forms.Padding(0); + this.btMReset.MouseDownColor = System.Drawing.Color.Yellow; + this.btMReset.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btMReset.msg = null; + this.btMReset.Name = "btMReset"; + this.btMReset.ProgressBorderColor = System.Drawing.Color.Black; + this.btMReset.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btMReset.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btMReset.ProgressEnable = false; + this.btMReset.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btMReset.ProgressForeColor = System.Drawing.Color.Black; + this.btMReset.ProgressMax = 100F; + this.btMReset.ProgressMin = 0F; + this.btMReset.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btMReset.ProgressValue = 0F; + this.btMReset.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btMReset.Sign = ""; + this.btMReset.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btMReset.SignColor = System.Drawing.Color.Yellow; + this.btMReset.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btMReset.Size = new System.Drawing.Size(50, 50); + this.btMReset.TabIndex = 13; + this.btMReset.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btMReset.TextShadow = true; + this.btMReset.TextVisible = true; + this.toolTip1.SetToolTip(this.btMReset, "장치 초기화\r\n* 프로그램 최초 1회 실행이 필요합니다.\r\n그 외 초기화는 \"배출 및 원점이동\" 기능을 사용하세요."); + this.btMReset.Click += new System.EventHandler(this.arLabel14_Click); + // + // btCapture + // + this.btCapture.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.btCapture.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.btCapture.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btCapture.BackgroundImage"))); + this.btCapture.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.btCapture.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btCapture.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.btCapture.BorderColorOver = System.Drawing.Color.SkyBlue; + this.btCapture.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); + this.btCapture.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btCapture.Cursor = System.Windows.Forms.Cursors.Hand; + this.btCapture.Dock = System.Windows.Forms.DockStyle.Right; + this.btCapture.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.btCapture.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.btCapture.GradientEnable = false; + this.btCapture.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btCapture.GradientRepeatBG = false; + this.btCapture.isButton = true; + this.btCapture.Location = new System.Drawing.Point(1062, 0); + this.btCapture.Margin = new System.Windows.Forms.Padding(0); + this.btCapture.MouseDownColor = System.Drawing.Color.Yellow; + this.btCapture.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btCapture.msg = null; + this.btCapture.Name = "btCapture"; + this.btCapture.ProgressBorderColor = System.Drawing.Color.Black; + this.btCapture.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btCapture.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btCapture.ProgressEnable = false; + this.btCapture.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btCapture.ProgressForeColor = System.Drawing.Color.Black; + this.btCapture.ProgressMax = 100F; + this.btCapture.ProgressMin = 0F; + this.btCapture.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btCapture.ProgressValue = 0F; + this.btCapture.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btCapture.Sign = ""; + this.btCapture.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btCapture.SignColor = System.Drawing.Color.Yellow; + this.btCapture.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btCapture.Size = new System.Drawing.Size(50, 50); + this.btCapture.TabIndex = 12; + this.btCapture.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btCapture.TextShadow = true; + this.btCapture.TextVisible = true; + this.toolTip1.SetToolTip(this.btCapture, "화면 캡쳐"); + this.btCapture.Click += new System.EventHandler(this.arLabel13_Click); + // + // btManual + // + this.btManual.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.btManual.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.btManual.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btManual.BackgroundImage"))); + this.btManual.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.btManual.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btManual.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.btManual.BorderColorOver = System.Drawing.Color.SkyBlue; + this.btManual.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); + this.btManual.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btManual.Cursor = System.Windows.Forms.Cursors.Hand; + this.btManual.Dock = System.Windows.Forms.DockStyle.Right; + this.btManual.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.btManual.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.btManual.GradientEnable = false; + this.btManual.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btManual.GradientRepeatBG = false; + this.btManual.isButton = true; + this.btManual.Location = new System.Drawing.Point(1112, 0); + this.btManual.Margin = new System.Windows.Forms.Padding(0); + this.btManual.MouseDownColor = System.Drawing.Color.Yellow; + this.btManual.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btManual.msg = null; + this.btManual.Name = "btManual"; + this.btManual.ProgressBorderColor = System.Drawing.Color.Black; + this.btManual.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btManual.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btManual.ProgressEnable = false; + this.btManual.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btManual.ProgressForeColor = System.Drawing.Color.Black; + this.btManual.ProgressMax = 100F; + this.btManual.ProgressMin = 0F; + this.btManual.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btManual.ProgressValue = 0F; + this.btManual.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btManual.Sign = ""; + this.btManual.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btManual.SignColor = System.Drawing.Color.Yellow; + this.btManual.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btManual.Size = new System.Drawing.Size(50, 50); + this.btManual.TabIndex = 10; + this.btManual.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btManual.TextShadow = true; + this.btManual.TextVisible = true; + this.toolTip1.SetToolTip(this.btManual, "메뉴얼 보기"); + this.btManual.Click += new System.EventHandler(this.arLabel12_Click); + // + // btSetting + // + this.btSetting.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.btSetting.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.btSetting.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btSetting.BackgroundImage"))); + this.btSetting.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.btSetting.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btSetting.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.btSetting.BorderColorOver = System.Drawing.Color.SkyBlue; + this.btSetting.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); + this.btSetting.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btSetting.Cursor = System.Windows.Forms.Cursors.Hand; + this.btSetting.Dock = System.Windows.Forms.DockStyle.Right; + this.btSetting.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.btSetting.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.btSetting.GradientEnable = false; + this.btSetting.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btSetting.GradientRepeatBG = false; + this.btSetting.isButton = true; + this.btSetting.Location = new System.Drawing.Point(1162, 0); + this.btSetting.Margin = new System.Windows.Forms.Padding(0); + this.btSetting.MouseDownColor = System.Drawing.Color.Yellow; + this.btSetting.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btSetting.msg = null; + this.btSetting.Name = "btSetting"; + this.btSetting.ProgressBorderColor = System.Drawing.Color.Black; + this.btSetting.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btSetting.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btSetting.ProgressEnable = false; + this.btSetting.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btSetting.ProgressForeColor = System.Drawing.Color.Black; + this.btSetting.ProgressMax = 100F; + this.btSetting.ProgressMin = 0F; + this.btSetting.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btSetting.ProgressValue = 0F; + this.btSetting.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btSetting.Sign = ""; + this.btSetting.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btSetting.SignColor = System.Drawing.Color.Yellow; + this.btSetting.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btSetting.Size = new System.Drawing.Size(50, 50); + this.btSetting.TabIndex = 9; + this.btSetting.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btSetting.TextShadow = true; + this.btSetting.TextVisible = true; + this.toolTip1.SetToolTip(this.btSetting, "환경설정"); + this.btSetting.Click += new System.EventHandler(this.arLabel11_Click); + // + // btClose + // + this.btClose.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.btClose.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.btClose.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btClose.BackgroundImage"))); + this.btClose.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center; + this.btClose.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.btClose.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.btClose.BorderColorOver = System.Drawing.Color.SkyBlue; + this.btClose.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4); + this.btClose.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.btClose.Cursor = System.Windows.Forms.Cursors.Hand; + this.btClose.Dock = System.Windows.Forms.DockStyle.Right; + this.btClose.Font = new System.Drawing.Font("맑은 고딕", 12F); + this.btClose.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.btClose.GradientEnable = false; + this.btClose.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.btClose.GradientRepeatBG = false; + this.btClose.isButton = true; + this.btClose.Location = new System.Drawing.Point(1212, 0); + this.btClose.Margin = new System.Windows.Forms.Padding(0); + this.btClose.MouseDownColor = System.Drawing.Color.Yellow; + this.btClose.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.btClose.msg = null; + this.btClose.Name = "btClose"; + this.btClose.ProgressBorderColor = System.Drawing.Color.Black; + this.btClose.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.btClose.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.btClose.ProgressEnable = false; + this.btClose.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.btClose.ProgressForeColor = System.Drawing.Color.Black; + this.btClose.ProgressMax = 100F; + this.btClose.ProgressMin = 0F; + this.btClose.ProgressPadding = new System.Windows.Forms.Padding(0); + this.btClose.ProgressValue = 0F; + this.btClose.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.btClose.Sign = ""; + this.btClose.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.btClose.SignColor = System.Drawing.Color.Yellow; + this.btClose.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.btClose.Size = new System.Drawing.Size(50, 50); + this.btClose.TabIndex = 7; + this.btClose.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btClose.TextShadow = true; + this.btClose.TextVisible = true; + this.toolTip1.SetToolTip(this.btClose, "프로그램 종료"); + this.btClose.Click += new System.EventHandler(this.arLabel10_Click_1); + // + // pictureBox1 + // + this.pictureBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Left; + this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); + this.pictureBox1.Location = new System.Drawing.Point(0, 0); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(49, 50); + this.pictureBox1.TabIndex = 0; + this.pictureBox1.TabStop = false; + this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click); + // + // toolStripMenuItem10 + // + this.toolStripMenuItem10.Name = "toolStripMenuItem10"; + this.toolStripMenuItem10.Size = new System.Drawing.Size(210, 6); + // + // customerRuleToolStripMenuItem + // + this.customerRuleToolStripMenuItem.Name = "customerRuleToolStripMenuItem"; + this.customerRuleToolStripMenuItem.Size = new System.Drawing.Size(213, 22); + this.customerRuleToolStripMenuItem.Text = "Customer Rule"; + this.customerRuleToolStripMenuItem.Click += new System.EventHandler(this.customerRuleToolStripMenuItem_Click); + // + // fMain + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(15)))), ((int)(((byte)(15))))); + this.ClientSize = new System.Drawing.Size(1264, 1011); + this.Controls.Add(this.panCenter); + this.Controls.Add(this.panTopMenu); + this.DoubleBuffered = true; + this.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.KeyPreview = true; + this.Name = "fMain"; + this.Padding = new System.Windows.Forms.Padding(1); + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Form1"; + this.Load += new System.EventHandler(this.@__Load); + this.panMCState.ResumeLayout(false); + this.tableLayoutPanel1.ResumeLayout(false); + this.panel3.ResumeLayout(false); + this.panLog.ResumeLayout(false); + this.cmOpenDir.ResumeLayout(false); + this.panCenter.ResumeLayout(false); + this.panBottom.ResumeLayout(false); + this.panBottom.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.arDatagridView1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bs)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bn)).EndInit(); + this.bn.ResumeLayout(false); + this.bn.PerformLayout(); + this.panRight.ResumeLayout(false); + this.panCam.ResumeLayout(false); + this.panLoader.ResumeLayout(false); + this.panVision1.ResumeLayout(false); + this.panel5.ResumeLayout(false); + this.cmCam.ResumeLayout(false); + this.panel62.ResumeLayout(false); + this.panel66.ResumeLayout(false); + this.panel67.ResumeLayout(false); + this.panel68.ResumeLayout(false); + this.panel69.ResumeLayout(false); + this.panel70.ResumeLayout(false); + this.panel71.ResumeLayout(false); + this.panel72.ResumeLayout(false); + this.panel73.ResumeLayout(false); + this.panel74.ResumeLayout(false); + this.panel75.ResumeLayout(false); + this.panel76.ResumeLayout(false); + this.panel77.ResumeLayout(false); + this.panel10.ResumeLayout(false); + this.panVision2.ResumeLayout(false); + this.panel7.ResumeLayout(false); + this.panel46.ResumeLayout(false); + this.panel47.ResumeLayout(false); + this.panel48.ResumeLayout(false); + this.panel49.ResumeLayout(false); + this.panel50.ResumeLayout(false); + this.panel51.ResumeLayout(false); + this.panel52.ResumeLayout(false); + this.panel53.ResumeLayout(false); + this.panel54.ResumeLayout(false); + this.panel55.ResumeLayout(false); + this.panel56.ResumeLayout(false); + this.panel57.ResumeLayout(false); + this.panel58.ResumeLayout(false); + this.panel59.ResumeLayout(false); + this.panel60.ResumeLayout(false); + this.panel61.ResumeLayout(false); + this.panel37.ResumeLayout(false); + this.panVision0.ResumeLayout(false); + this.panel2.ResumeLayout(false); + this.panel13.ResumeLayout(false); + this.panel42.ResumeLayout(false); + this.panel40.ResumeLayout(false); + this.panel30.ResumeLayout(false); + this.panel22.ResumeLayout(false); + this.panel21.ResumeLayout(false); + this.panel20.ResumeLayout(false); + this.panel19.ResumeLayout(false); + this.panel17.ResumeLayout(false); + this.panel18.ResumeLayout(false); + this.panel41.ResumeLayout(false); + this.panel43.ResumeLayout(false); + this.panel44.ResumeLayout(false); + this.panel45.ResumeLayout(false); + this.panel16.ResumeLayout(false); + this.panel8.ResumeLayout(false); + this.panel15.ResumeLayout(false); + this.panel12.ResumeLayout(false); + this.cmBarcode.ResumeLayout(false); + this.cmDebug.ResumeLayout(false); + this.panTopMenu.ResumeLayout(false); + this.panTopMenu.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.iv2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.iv0)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Timer tmDisplay; + private System.Windows.Forms.ToolTip toolTip1; + private System.Windows.Forms.ToolStripMenuItem systemParameterToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem4; + private System.Windows.Forms.ToolStripMenuItem demoRunToolStripMenuItem; + private arCtl.arLabel lbMsgR; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private arCtl.arLabel btStart; + private arCtl.arLabel btStop; + private System.Windows.Forms.Panel panMCState; + private arCtl.arLabel arLabel64; + private System.Windows.Forms.ContextMenuStrip cmDebug; + private arCtl.arLabel lbTime; + private System.Windows.Forms.ContextMenuStrip cmOpenDir; + private System.Windows.Forms.ToolStripMenuItem 맵데이터보기ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem 저장폴더열기ToolStripMenuItem; + private arCtl.arLabel btReset; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; + private System.Windows.Forms.Panel panLoader; + private arCtl.arLabel lbTitleBS; + private System.Windows.Forms.DataGridViewTextBoxColumn idxDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn stripIdDataGridViewTextBoxColumn2; + private System.Windows.Forms.DataGridViewTextBoxColumn oKDataGridViewTextBoxColumn2; + private System.Windows.Forms.DataGridViewTextBoxColumn nGDataGridViewTextBoxColumn2; + private System.Windows.Forms.DataGridViewTextBoxColumn mISSDataGridViewTextBoxColumn2; + private System.Windows.Forms.DataGridViewTextBoxColumn fileMapDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn dataPathDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn mapOriginDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn mapArrayDataGridViewTextBoxColumn; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem9; + private System.Windows.Forms.Panel panel12; + private System.Windows.Forms.Panel panTopMenu; + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.Button btHistory; + private System.Windows.Forms.Button btJob; + private System.Windows.Forms.Button btMotion; + private System.Windows.Forms.Button btIOMon; + private arCtl.arLabel btClose; + private System.Windows.Forms.Button btSReset; + private arCtl.arLabel btSetting; + private arCtl.arLabel btManual; + private arCtl.arLabel btCapture; + private arCtl.arLabel btMReset; + private arCtl.arLabel btDebug; + private arCtl.arLabel btOpenDir; + private System.Windows.Forms.ToolStripMenuItem 캡처ToolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem 저장ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem testmenuToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem sMResetToolStripMenuItem; + private arCtl.LogTextBox logTextBox1; + private arCtl.arLabel arLabel4; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem8; + private System.Windows.Forms.ToolStripMenuItem motionEmulatorToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem dIOMonitorToolStripMenuItem; + private System.Windows.Forms.Panel panLog; + private System.Windows.Forms.ToolStripMenuItem refreshControklToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem 작업선택화면ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem historyToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem testToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem menusToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem sampleToolStripMenuItem; + private System.Windows.Forms.Panel panel3; + private arCtl.arLabel lbRate; + private System.Windows.Forms.ToolStripMenuItem debugModeToolStripMenuItem; + private System.Windows.Forms.Panel panCenter; + private System.Windows.Forms.Panel panBottom; + private System.Windows.Forms.ContextMenuStrip cmBarcode; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem22; + private System.Windows.Forms.ToolStripMenuItem detectCountToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem countToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem screenToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem jOBStartToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem motionParameterToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem axis0ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem axis1ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem axis2ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem axis3ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem axis4ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem clearToolStripMenuItem1; + private System.Windows.Forms.Panel panel4; + private System.Windows.Forms.Panel panRight; + private System.Windows.Forms.ToolStripMenuItem sendMailToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem processListToolStripMenuItem; + private System.Windows.Forms.Button btJobCancle; + private System.Windows.Forms.Panel panel6; + private System.Windows.Forms.Panel panCam; + private System.Windows.Forms.ContextMenuStrip cmCam; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2; + private System.Windows.Forms.Button btUserControl; + private arCtl.arLabel sbVisTitle0; + private arCtl.arLabel sbVisTitle1; + private arCtl.arLabel sbVisTitle2; + private arCtl.ImageBox iv0; + private arCtl.ImageBox iv2; + private arCtl.arLabel arLabel2; + private arCtl.arLabel arLabel37; + private arCtl.arLabel arLabel38; + private arCtl.arLabel arLabel41; + private arCtl.arLabel arLabel42; + private arCtl.arLabel arLabel47; + private arCtl.arLabel arLabel48; + private arCtl.arLabel arLabel25; + private arCtl.arLabel arLabel26; + private arCtl.arLabel arLabel29; + private arCtl.arLabel arLabel30; + private arCtl.arLabel arLabel35; + private arCtl.arLabel arLabel36; + private arCtl.arLabel arLabel12; + private arCtl.arLabel arLabel13; + private arCtl.arLabel arLabel16; + private arCtl.arLabel arLabel17; + private arCtl.arLabel arLabel23; + private arCtl.arLabel arLabel24; + private arCtl.arLabel arLabel1; + private arCtl.arLabel arLabel22; + private arCtl.arLabel arLabel21; + private arCtl.arLabel arLabel32; + private arCtl.arLabel arLabel27; + private arCtl.arLabel arLabel33; + private arCtl.arLabel arLabel34; + private arCtl.arLabel arLabel3; + private arCtl.arLabel arLabel7; + private arCtl.arLabel arLabel8; + private arCtl.arLabel arLabel9; + private arCtl.arLabel arLabel10; + private arCtl.arLabel arLabel14; + private System.Windows.Forms.ToolStripMenuItem readBarcodeToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem livetaskToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem zoomFitToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem3; + private System.Windows.Forms.ToolStripMenuItem keyenceTrigOnToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem keyenceTrigOffToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem keyenceSaveImageToolStripMenuItem; + private arCtl.arLabel arLabel45; + private arCtl.arLabel arLabel44; + private arCtl.arLabel arLabel40; + private arCtl.arLabel arLabel43; + private arCtl.arLabel arLabel15; + private arCtl.arLabel arLabel19; + private arCtl.arLabel arLabel20; + private arCtl.arLabel arLabel28; + private arCtl.arLabel arLabel31; + private arCtl.arLabel arLabel39; + private arCtl.arLabel arLabel46; + private arCtl.arLabel arLabel49; + private arCtl.arLabel arLabel50; + private arCtl.arLabel arLabel51; + private arCtl.arLabel arLabel52; + private arCtl.arLabel arLabel53; + private arCtl.arLabel arLabel54; + private arCtl.arLabel arLabel55; + private arCtl.arLabel arLabel56; + private arCtl.arLabel arLabel57; + private arCtl.arLabel arLabel59; + private arCtl.arLabel arLabel60; + private arCtl.arLabel arLabel66; + private arCtl.arLabel arLabel72; + private arCtl.arLabel arLabel71; + private arCtl.arLabel arLabel68; + private arCtl.arLabel arLabel62; + private arCtl.arLabel arLabel63; + private arCtl.arLabel arLabel70; + private arCtl.arLabel arLabel69; + private arCtl.arLabel arLabel65; + private arCtl.arLabel arLabel67; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.Label lbSize0; + private System.Windows.Forms.Panel panel7; + private System.Windows.Forms.Label lbSize2; + private System.Windows.Forms.Panel panel5; + private System.Windows.Forms.Label lbSize1; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem5; + private System.Windows.Forms.ToolStripMenuItem liveViewProcessOnOffToolStripMenuItem; + private arCtl.arLabel arLabel79; + private arCtl.arLabel arLabel80; + private arCtl.arLabel arLabel82; + private arCtl.arLabel arLabel84; + private arCtl.arLabel arLabel81; + private arCtl.arLabel arLabel88; + private arCtl.arLabel arLabel89; + private arCtl.arLabel arLabel87; + private arCtl.arLabel arLabel85; + private arCtl.arLabel arLabel86; + private arCtl.arLabel arLabel90; + private arCtl.arLabel arLabel93; + private arCtl.arLabel arLabel83; + private arCtl.arLabel arLabel92; + private arCtl.arLabel arLabel91; + private arCtl.arLabel arLabel94; + private arCtl.arLabel arLabel58; + private arCtl.arLabel arLabel61; + private arCtl.arLabel lbLock2; + private arCtl.arLabel lbLock1; + private arCtl.arLabel lbLock0; + private arCtl.arLabel lbMsgL; + private System.Windows.Forms.Panel panel9; + private System.Windows.Forms.Panel panel16; + private System.Windows.Forms.Panel panVision0; + private System.Windows.Forms.Panel panel22; + private System.Windows.Forms.Panel panel21; + private System.Windows.Forms.Panel panel20; + private System.Windows.Forms.Panel panel19; + private System.Windows.Forms.Panel panel18; + private System.Windows.Forms.Panel panel17; + private System.Windows.Forms.Panel panel8; + private System.Windows.Forms.Panel panVision2; + private System.Windows.Forms.Panel panVision1; + private arCtl.arLabel arLabel5; + private arCtl.arDatagridView arDatagridView1; + private DataSet1 dataSet1; + private System.Windows.Forms.BindingSource bs; + private DataSet1TableAdapters.Component_Reel_ResultTableAdapter ta; + private System.Windows.Forms.Panel panel10; + private System.Windows.Forms.Panel panel37; + private System.Windows.Forms.Panel panel15; + private arCtl.arLabel arLabel6; + private arCtl.arLabel arLabel11; + private arCtl.arLabel arLabel75; + private arCtl.arLabel arLabel73; + private arCtl.arLabel arLabel76; + private arCtl.arLabel arLabel74; + private System.Windows.Forms.BindingNavigator bn; + private System.Windows.Forms.ToolStripLabel bindingNavigatorCountItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveFirstItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMovePreviousItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator; + private System.Windows.Forms.ToolStripTextBox bindingNavigatorPositionItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator1; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveNextItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveLastItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator2; + private System.Windows.Forms.ToolStripButton toolStripButton1; + private System.Windows.Forms.ToolStripMenuItem jObEndToolStripMenuItem; + private System.Windows.Forms.Button button3; + private arCtl.arLabel lbMsgC; + private arCtl.arLabel lbMsg; + private System.Windows.Forms.Panel panel11; + private System.Windows.Forms.Panel panel13; + private System.Windows.Forms.Panel panel45; + private System.Windows.Forms.Panel panel44; + private System.Windows.Forms.Panel panel43; + private System.Windows.Forms.Panel panel42; + private System.Windows.Forms.Panel panel41; + private System.Windows.Forms.Panel panel40; + private System.Windows.Forms.Panel panel30; + private System.Windows.Forms.Panel panel46; + private System.Windows.Forms.Panel panel47; + private System.Windows.Forms.Panel panel48; + private System.Windows.Forms.Panel panel49; + private System.Windows.Forms.Panel panel50; + private System.Windows.Forms.Panel panel51; + private System.Windows.Forms.Panel panel52; + private System.Windows.Forms.Panel panel53; + private System.Windows.Forms.Panel panel54; + private System.Windows.Forms.Panel panel55; + private System.Windows.Forms.Panel panel56; + private System.Windows.Forms.Panel panel57; + private System.Windows.Forms.Panel panel58; + private System.Windows.Forms.Panel panel59; + private System.Windows.Forms.Panel panel60; + private System.Windows.Forms.Panel panel61; + private System.Windows.Forms.Panel panel62; + private System.Windows.Forms.Panel panel63; + private System.Windows.Forms.Panel panel64; + private System.Windows.Forms.Panel panel65; + private System.Windows.Forms.Panel panel66; + private System.Windows.Forms.Panel panel67; + private System.Windows.Forms.Panel panel68; + private System.Windows.Forms.Panel panel69; + private System.Windows.Forms.Panel panel70; + private System.Windows.Forms.Panel panel71; + private System.Windows.Forms.Panel panel72; + private System.Windows.Forms.Panel panel73; + private System.Windows.Forms.Panel panel74; + private System.Windows.Forms.Panel panel75; + private System.Windows.Forms.Panel panel76; + private System.Windows.Forms.Panel panel77; + private System.Windows.Forms.Panel panel14; + private System.Windows.Forms.Panel panel23; + private System.Windows.Forms.ToolStripLabel lbOnline; + private System.Windows.Forms.ToolStripLabel toolStripLabel1; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem6; + private System.Windows.Forms.ToolStripMenuItem visionTrigger0ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem visionTrigger1ToolStripMenuItem; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem7; + private System.Windows.Forms.ToolStripMenuItem visionProcess1ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem visionProcess0ToolStripMenuItem; + private System.Windows.Forms.DataGridViewTextBoxColumn sTIMEDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn PTIME; + private System.Windows.Forms.DataGridViewTextBoxColumn JTYPE; + private System.Windows.Forms.DataGridViewTextBoxColumn sIDDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn SID0; + private System.Windows.Forms.DataGridViewTextBoxColumn rIDDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn RID0; + private System.Windows.Forms.DataGridViewTextBoxColumn VNAME; + private System.Windows.Forms.DataGridViewTextBoxColumn dvc_loc; + private System.Windows.Forms.DataGridViewTextBoxColumn qTYDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn QTY0; + private System.Windows.Forms.DataGridViewTextBoxColumn MFGDATE; + private System.Windows.Forms.DataGridViewTextBoxColumn VLOT; + private System.Windows.Forms.DataGridViewTextBoxColumn PNO; + private System.Windows.Forms.DataGridViewTextBoxColumn LOC; + private System.Windows.Forms.DataGridViewCheckBoxColumn PRNATTACH; + private System.Windows.Forms.DataGridViewCheckBoxColumn PRNVALID; + private System.Windows.Forms.DataGridViewTextBoxColumn Column1; + private UIControl.Loader loader1; + private System.Windows.Forms.ToolStripMenuItem customerRuleToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem10; + } +} + diff --git a/Handler/Project_form2/fMain.cs b/Handler/Project_form2/fMain.cs new file mode 100644 index 0000000..187bd3d --- /dev/null +++ b/Handler/Project_form2/fMain.cs @@ -0,0 +1,2748 @@ +using Emgu.CV; +using Emgu.CV.Structure; +using Euresys.Open_eVision_2_11; +using System; +using System.ComponentModel; +using System.Diagnostics; +using System.Drawing; +using System.Runtime.InteropServices; +using System.Windows.Forms; +using UIControl; + +namespace Project +{ + + public partial class fMain : Form + { + string[] 방위 = new string[] { "↙", "↓", "↘", "←", "→", "↖", "↑", "↗" }; + //Label[] lbs_p0 = null; + //Label[] lbs_p1 = null; + //Label[] lbs_p2 = null; + + //Label[] lbs_a0 = null; + //Label[] lbs_a1 = null; + //Label[] lbs_a2 = null; + + + Boolean bRunConnection = true; + System.Threading.Thread thConnection; //연결체크 + byte ConnectSeq = 0; + DateTime AirOffStart = DateTime.Parse("1982-11-23"); + DateTime EmergencyTime = DateTime.Now; + Dialog.fLog logForm = null; + + public fMain() + { + InitializeComponent(); + Pub.initCore(); + AddLiveviewControl(); + + ivs = new arCtl.ImageBox[] { iv0, null, iv2 }; + this.KeyDown += (s1, e1) => + { + if (e1.KeyCode == Keys.Escape) this.Close(); + else if (e1.KeyCode == Keys.F1 && e1.Control && e1.Shift) + { + Boolean debug = Pub.flag.get(eFlag.DEBUG); + Pub.flag.set(eFlag.DEBUG, !debug, "FMAIN_SECRETKEY"); + ShowDebugMenu(); + } + else if (e1.KeyCode == Keys.F2 && e1.Control && e1.Shift) menu_logform(); + else if (e1.KeyCode == Keys.F5) btStart.PerformClick(); + else if (e1.KeyCode == Keys.F8) btJobCancle.PerformClick(); + else if (e1.KeyCode == Keys.F9) btStart.PerformClick(); + + if (DateTime.Now > Pub.LastInputTime) Pub.LastInputTime = DateTime.Now; + }; + + //dotList = new List(); + //dotList.AddRange(new arCtl.arLabel[] { lbDot1, lbDot2, lbDot3, lbDot4, lbDot5, lbDot6, lbDot7, lbDot8, lbDot9, lbDot10 }); + + this.MouseMove += (s1, e1) => { if (DateTime.Now > Pub.LastInputTime) Pub.LastInputTime = DateTime.Now; }; + this.FormClosing += __Closing; + + if (Pub.setting.FullScreen) this.WindowState = FormWindowState.Maximized; + else this.Size = new Size(1280, 1024); + + //this.lbTitle.MouseMove += LbTitle_MouseMove; + //this.lbTitle.MouseUp += LbTitle_MouseUp; + //this.lbTitle.MouseDown += LbTitle_MouseDown; + //this.lbTitle.DoubleClick += LbTitle_DoubleClick; + } + + void ShowDebugMenu() + { + Boolean debug = Pub.flag.get(eFlag.DEBUG); + this.btDebug.Visible = debug; + this.loader1.arDebugMode = debug; + //this.rtStatusMessage.Visible = debug; + //this.panel1.Visible = debug; + } + + private void __Closing(object sender, FormClosingEventArgs e) + { + Pub.popup.needClose = true; + if (Pub.sm.Step == StateMachine.eSMStep.RUN) + { + Util.MsgE("동작 중에는 종료 할 수 없습니다."); + e.Cancel = true; + return; + } + if (Pub.sm.Step < StateMachine.eSMStep.CLOSING) + { + var rlt = Util.MsgQ(Lang.Q_EXIT); + if (rlt != System.Windows.Forms.DialogResult.Yes) + { + e.Cancel = true; + return; + } + _Close_Start(); + } + } + + void UpdateLogTextColor() + { + this.logTextBox1.ColorList = new arCtl.sLogMessageColor[] { + new arCtl.sLogMessageColor("BARCODE",Color.Magenta), + new arCtl.sLogMessageColor("ERR",Color.Red), + new arCtl.sLogMessageColor("NORMAL", Color.WhiteSmoke), + new arCtl.sLogMessageColor("WARN", Color.Tomato), + new arCtl.sLogMessageColor("INFO", Color.SkyBlue), + new arCtl.sLogMessageColor("VIS", Color.Blue), + }; + } + + void RefreshList() + { + if (Pub.setting.OnlineMode == false) return; + + if (this.InvokeRequired) + { + this.BeginInvoke(new MethodInvoker(RefreshList)); + return; + } + + try + { + var dtstr = DateTime.Now.ToShortDateString(); + if(Pub.setting.STDLabelFormat7) this.ta.FillByLen7(this.dataSet1.Component_Reel_Result, dtstr, dtstr); + else this.ta.Fill(this.dataSet1.Component_Reel_Result, dtstr, dtstr); + foreach (DataGridViewRow item in this.arDatagridView1.Rows) + { + var vloc = item.Cells["dvc_loc"].Value; + var sloc = vloc == null ? string.Empty : vloc.ToString(); + if (sloc == "L") + item.DefaultCellStyle.BackColor = Color.FromArgb(220, 220, 220); + else + item.DefaultCellStyle.BackColor = Color.FromArgb(250, 250, 250); + + } + Pub.log.AddI(string.Format("목록 새로 고침({0}건)", dataSet1.Component_Reel_Result.Count)); + } + catch (Exception ex) + { + Pub.log.AddE("목록 새로고침 실패:" + ex.Message); + } + } + private void __Load(object sender, EventArgs e) + { + + + this.Text = Application.ProductName + " ver " + Application.ProductVersion; + Pub.init(); //public initialize + + UpdateLogTextColor(); + Pub.log.RaiseMsg += Log_RaiseMsg; + Pub.logWS.RaiseMsg += LogWS_RaiseMsg; + + //위치 레이아웃 off한다. + //this.pPosL.Visible = false; + //this.pPosC.Visible = false; + //this.pPosR.Visible = false; + + this.Show(); + // sbDevice.Text = ""; + SetStatusMessage(0, "프로그램 초기화", Color.White, Color.White, Color.Tomato, Color.Black); + + + + //피커 상태초기화 + foreach (var item in this.loader1.arVar_Picker) + item.Clear(); + + //포트 상태 초기화 + foreach (var item in this.loader1.arVar_Port) + item.Clear(); + + + Pub.flag.set(eFlag.DEBUG, true, "개발중"); + ShowDebugMenu(); + + ////'Application.DoEvents(); + + //setting dio events + Pub.dio.IOValueChanged += Dio_IOValueChanged; + Pub.dio.Message += dio_IOMessage; + + //setting mot events + Pub.mot.Message += mot_Message; + Pub.mot.HomeStatusChanged += mot_HomeStatusChanged; + Pub.mot.AxisMoveValidateCheck += mot_AxisMoveValidateCheck; + Pub.mot.PositionChanged += Mot_PositionChanged; + Pub.mot.StatusChanged += mot_StatusChanged; + Pub.mot.EndStatusChanged += Mot_EndStatusChanged; + + //remote control + Pub.remocon = new arDev.RS232("R"); + Pub.remocon.Terminal = arDev.RS232.eTerminal.LF; + //Pub.remocon.ReceiveData += remocon_ReceiveData; + var portinfo = Pub.setting.Serial_Remocon.Split(':'); + Pub.remocon.PortName = portinfo[0]; + if (portinfo.Length > 1) Pub.remocon.BaudRate = int.Parse(portinfo[1]); + else Pub.remocon.BaudRate = 9600; + if (Pub.remocon.Open() == false) Pub.log.AddAT("디버깅포트 열기 실패(" + Pub.setting.Serial_Remocon + ")"); + else Pub.log.Add("디버깅포트 열기 성공(" + Pub.setting.Serial_Remocon + ")"); + + + //clear + ClearBarcode(); + + Pub.sm.SetMsgOptOff(); //모든 메세지출력을 해제한다. (이벤트는 동작함) + + Pub.log.Add("State Machine Start"); + Pub.sm.StepChanged += sm_StepChanged; + Pub.sm.Message += sm_Message; + Pub.sm.Running += sm_Running; + Pub.sm.SPS += sm_SPS; + Pub.sm.Start(); + + + + //Fag 값 변화 + Pub.flag.ValueChanged += Flag_ValueChanged; + + //ILock 값 변화 + Pub.LockPKT.ValueChanged += Lock_ValueChanged; + Pub.LockPKX.ValueChanged += Lock_ValueChanged; + Pub.LockPKZ.ValueChanged += Lock_ValueChanged; + Pub.LockPLM.ValueChanged += Lock_ValueChanged; + Pub.LockPLZ.ValueChanged += Lock_ValueChanged; + Pub.LockPRL.ValueChanged += Lock_ValueChanged; + Pub.LockPRM.ValueChanged += Lock_ValueChanged; + Pub.LockPRR.ValueChanged += Lock_ValueChanged; + Pub.LockPRZ.ValueChanged += Lock_ValueChanged; + Pub.LockVS0.ValueChanged += Lock_ValueChanged; + Pub.LockVS1.ValueChanged += Lock_ValueChanged; + Pub.LockVS2.ValueChanged += Lock_ValueChanged; + + loader1.ClearMenu(); + loader1.Message += loader1_Message; + loader1.IConClick += loader1_IConClick; + loader1.ButtonClick += Loader1_ButtonClick; + + + UpdateUnloderInfo(); + + ///데이터버퍼(히스토리) + //Pub.Result.JObHistory.PropertyChanged += JOBHistory_PropertyChanged; + + //연결체크용 쓰레드 + var thStart = new System.Threading.ThreadStart(bwDeviceConnection); + thConnection = new System.Threading.Thread(thStart); + thConnection.IsBackground = false; + thConnection.Start(); + + //조이스틱 설정 + Pub.joystick = new arDev.Joystick.JoystickRaw(); + Pub.joystick.Changed += Joystick_Changed; + Pub.joystick.Connected += Joystick_Connected; + Pub.joystick.Disconnected += Joystick_Disconnected; + Pub.joystick.InputChanged += Joystick_InputChanged; + if (Pub.setting.Jostick_pid != 0 && Pub.setting.Jostick_vid != 0) + { + Pub.log.Add($"Joystick Connect VID:{Pub.setting.Jostick_vid},PID:{Pub.setting.Jostick_pid}"); + Pub.joystick.Connect(Pub.setting.Jostick_vid, Pub.setting.Jostick_pid); + } + + //키엔스연결 + InitBarcode(); + + tmDisplay.Start(); //start Display + + Pub.AddSystemLog(Application.ProductVersion, "SCREEN", "Message"); + + Pub.log.Add("Program Start"); + if (Pub.setting.OnlineMode) + Pub.CheckNRegister3(Application.ProductName, "chi", Application.ProductVersion); + + if (Pub.setting.EnableDebugMode) + { + btDebug.Visible = true; + Pub.flag.set(eFlag.DEBUG, true, "FMAIN_STARTUP"); + // menu_logform(); + } + + RefreshList(); + } + + //private void DispImage(int vIdx) + //{ + // Int32 bitsPerPixel = 0; + // Int32 stride = 0; + // PixelFormat pixelFormat = PixelFormat.Format8bppIndexed; + // //color + // bitsPerPixel = 8; + // stride = (Int32)((_width[vIdx] * bitsPerPixel + 7) / 8); + // using (var bitmap = new Bitmap(_width[vIdx], _height[vIdx], stride, pixelFormat, _pImage[vIdx])) + // { + // SetGrayscalePalette(bitmap); + // ivs[vIdx].Image = bitmap; + // } + //} + //void JOBHistory_PropertyChanged(object sender, PropertyChangedEventArgs e) + //{ + // if (this.InvokeRequired) + // { + // var p = new PropertyChangedEventArgs(e.PropertyName); + // this.BeginInvoke(new PropertyChangedEventHandler(JOBHistory_PropertyChanged), new object[] { sender, p }); + // return; + // } + + // if (e.PropertyName.ToUpper() == "ADD") + // Pub.log.Add(string.Format("JOB HISTORY CNT:{0},PROPERTY:{1}", Pub.Result.JObHistory.Count, e.PropertyName)); + + // var pname = e.PropertyName.Split(':'); + // if (pname[0].ToLower() == "add") + // { + // var item = Pub.Result.JObHistory.Get(pname[1]); + // addListItem(item); + // } + // else if (pname[0].ToLower() == "remove") + // { + // //삭제 + // var guid = pname[1]; //이 아이템을 제거해준다. + // this.lvJOB.Items.RemoveByKey(guid); + // } + // else if (pname[0].ToLower() == "clear") + // { + // this.lvJOB.Items.Clear(); + // } + // else if (pname[0].ToLower() == "set") + // { + // var dr = Pub.Result.JObHistory.Get(pname[1]); + // UpdateListItem(dr); + // } + //} + + //void addListItem(Class.JobData item) + //{ + // var lv = this.lvJOB.Items.Add(item.guid, item.No.ToString(), 0); + // lv.SubItems.Add(item.VisionData.MatchValidation ? "O" : "X"); + // lv.SubItems.Add(item.JobStart.ToString("HH:mm:ss")); + // lv.SubItems.Add(item.VisionData.RID); + // lv.SubItems.Add(item.VisionData.SID); + // lv.SubItems.Add(item.VisionData.VLOT); + // lv.SubItems.Add(item.VisionData.QTY.ToString()); + // lv.SubItems.Add(item.PortPos); + // lv.SubItems.Add(item.PrintPos); + // lv.SubItems.Add(item.VisionData.Angle.ToString()); + // lv.SubItems.Add(item.VisionData.ZPL.isEmpty() ? "--" : "O"); + // lv.SubItems.Add(item.Message); + + // var visstr = string.Format("{2}", + // item.VisionData.STime, + // item.VisionData.ETime, + // item.VisionData.RunTime.TotalMilliseconds); + + // lv.SubItems.Add(visstr); + // lv.SubItems.Add(item.VisionData.QRInputRaw); + // lv.SubItems.Add(item.VisionData.QROutRaw); + // lv.SubItems.Add(item.VisionData.ZPL); + + // lv.Tag = item.guid; + + // Color fColor, bColor; + // Pub.GetJobColor(item.error, lv.BackColor, out fColor, out bColor); + // lv.BackColor = bColor; + // lv.ForeColor = fColor; + + // lv.EnsureVisible(); + //} + //void UpdateListItem(Class.JobData item) + //{ + // //해당아이템을 찾아서 값을 변경 해준다 + // var items = this.lvJOB.Items.Find(item.guid, false); + // if (items != null && items.Length > 0) + // { + // foreach (var lv in items) + // { + // int idx = 0; + // lv.SubItems[idx++].Text = item.No.ToString();// + // lv.SubItems[idx++].Text = item.VisionData.MatchValidation ? "O" : "X"; + // lv.SubItems[idx++].Text = item.JobStart.ToString("HH:mm:ss") + "(" + item.JobRun.TotalSeconds.ToString("N0") + ")"; + // lv.SubItems[idx++].Text = item.VisionData.RID; + // lv.SubItems[idx++].Text = item.VisionData.SID; + // lv.SubItems[idx++].Text = item.VisionData.VLOT; + // lv.SubItems[idx++].Text = item.VisionData.QTY.ToString(); + // lv.SubItems[idx++].Text = item.PortPos; + // lv.SubItems[idx++].Text = item.PrintPos; + // lv.SubItems[idx++].Text = item.VisionData.Angle.ToString(); + // lv.SubItems[idx++].Text = item.VisionData.ZPL.isEmpty() ? "--" : "O"; + // lv.SubItems[idx++].Text = item.Message; + + // var visstr = string.Format("{2}", + // item.VisionData.STime, + // item.VisionData.ETime, + // item.VisionData.RunTime.TotalMilliseconds); + + // lv.SubItems[idx++].Text = visstr; + // lv.SubItems[idx++].Text = item.VisionData.QRInputRaw; + // lv.SubItems[idx++].Text = item.VisionData.QROutRaw; + // lv.SubItems[idx++].Text = item.VisionData.ZPL; + + + // Color fColor, bColor; + // Pub.GetJobColor(item.error, lv.BackColor, out fColor, out bColor); + // lv.BackColor = bColor; + // lv.ForeColor = fColor; + + // } + // } + //} + + void loader1_Message(object sender, Loader.MessageArgs e) + { + //로더에서 발생한 메세지 + if (e.isError) Pub.log.AddE(e.Message); + else Pub.log.Add(e.Message); + } + + private void Log_RaiseMsg(DateTime LogTime, string TypeStr, string Message) + { + this.logTextBox1.AddMsg(LogTime, TypeStr, Message); + } + private void LogWS_RaiseMsg(DateTime LogTime, string TypeStr, string Message) + { + this.logTextBox1.AddMsg(LogTime, TypeStr, Message); + } + + void bwDeviceConnection() + { + while (bRunConnection) + { + if (ConnectSeq == 0) + { + var tscam = DateTime.Now - CameraConTimeL; + if (tscam.TotalSeconds > 7) + { + //if (Pub.setting.EnableExtVision) + if (Pub.wsL == null || Pub.wsL.Connected == false) + { + if (Pub.setting.Log_CameraConn) + Pub.log.Add($"카메라 접속 시도{Pub.setting.HostIPL}:{Pub.setting.HostPortL}"); + if (Pub.wsL != null) + { + DetachCameraEventL(); //이벤트 종료 + Pub.wsL.Dispose(); + } + + Pub.wsL = new WatsonWebsocket.WatsonWsClient(Pub.setting.HostIPL, Pub.setting.HostPortL, false); + AttachCameraEventL(); + Pub.wsL.Start(); + CameraConTimeL = DateTime.Now; + } + else + { + //연결이 되어있다면 상태값을 요청한다 + if(Pub.flag.get(eFlag.RDY_CAMERA_L)==false) + { + WS_Send(0, Pub.wsL, Guid.NewGuid().ToString(), "STATUS"); + CameraConTimeL = DateTime.Now.AddSeconds(-4); + } + } + } + ConnectSeq += 1; + } + else if (ConnectSeq == 1) + { + var tscam = DateTime.Now - CameraConTimeR; + if (tscam.TotalSeconds > 7) + { + //if (Pub.setting.EnableExtVision) + if (Pub.wsR == null || Pub.wsR.Connected == false) + { + if (Pub.setting.Log_CameraConn) + Pub.log.Add($"카메라 접속 시도{Pub.setting.HostIPR}:{Pub.setting.HostPortR}"); + if (Pub.wsR != null) + { + DetachCameraEventR(); //이벤트 종료 + Pub.wsR.Dispose(); + } + + Pub.wsR = new WatsonWebsocket.WatsonWsClient(Pub.setting.HostIPR, Pub.setting.HostPortR, false); + AttachCameraEventR(); + Pub.wsR.Start(); + CameraConTimeR = DateTime.Now; + } + else + { + //연결이 되어있다면 상태값을 요청한다 + if (Pub.flag.get(eFlag.RDY_CAMERA_R) == false) + { + WS_Send(1, Pub.wsR, Guid.NewGuid().ToString(), "STATUS"); + CameraConTimeR = DateTime.Now.AddSeconds(-4); + } + } + } + ConnectSeq = 0; + } + System.Threading.Thread.Sleep(2000); + //Console.WriteLine(DateTime.Now.ToString("mm:ss.fff") + " update loop"); + } + + } + + delegate void SelectModelHandler(string modelName); + + void SelectModelM(string modelName) + { + if (this.InvokeRequired) + { + this.Invoke(new SelectModelHandler(SelectModelM), new object[] { modelName }); + return; + } + + //초기화 + Pub.Result.mModel.ReadValue(modelName); + if (Pub.Result.mModel.isSet) + { + Pub.log.AddAT("모션모델선택완료 : " + Pub.Result.mModel.Title); + + //사용한 모델이름을 저장함 + if (Pub.uSetting.LastModelM != Pub.Result.mModel.Title) + { + Pub.uSetting.LastModelM = Pub.Result.mModel.Title; + Pub.uSetting.Save(); + } + } + else + { + Pub.log.AddE("모션모델선택실패(없는모델명:" + modelName + ")"); + } + } + + void SelectModelV(string modelName) + { + // + if (this.InvokeRequired) + { + this.Invoke(new SelectModelHandler(SelectModelV), new object[] { modelName }); + return; + } + + //초기화 + Pub.Result.vModel.Title = string.Empty; + var modelVision = Pub.mdm.GetDataV(modelName); + if (modelVision != null) + { + var mv = Pub.Result.vModel; + mv.ReadValue(modelVision); //Util.CopyData(model, Pub.Result.vModel); + Pub.log.AddAT("모델선택완료 : " + mv.Title); + + + //선택한 모델을 저장함 + if (Pub.uSetting.LastModelV != mv.Title) + { + Pub.uSetting.LastModelV = mv.Title; + Pub.uSetting.Save(); + } + + if (mv.UnitCount.X == 0) mv.UnitCount.Offset(1, 0); + if (mv.UnitCount.Y == 0) mv.UnitCount.Offset(0, 1); + if (mv.VisionCount.X == 0) mv.VisionCount.Offset(mv.UnitCount.X, 0); + if (mv.VisionCount.Y == 0) mv.VisionCount.Offset(0, mv.UnitCount.Y); + if (mv.DotFontSize == 0) mv.DotFontSize = 10; + } + else + { + + Pub.log.AddE("모델선택실패(없는모델명:" + modelName + ")"); + } + + } + + void UpdateSoftLimit() + { + Pub.log.Add("update UpdateSoftLimit"); + //181219 softlimit + //double softLimit = 0; + //Boolean armForward = Util_DO.GetIOInput(eDIName.F_CHECK_ARM_FWD); + + //if (Pub.Result.Model.waferSize.StartsWith("8")) + //{ + // if (armForward) softLimit = Pub.system.SWLimit8A; + // else softLimit = Pub.system.SWLimit8; + + // if (softLimit != 0) + // { + // Pub.mot.SetSoftLimit(0, true, softLimit, -softLimit); + // Pub.log.AddI(string.Format("(8') Y-Axis Soft Limit : {0}mm", softLimit)); + // } + // else + // { + // Pub.mot.SetSoftLimit(0, false, 0, 0); + // Pub.log.AddI(string.Format("(8') Y-Axis Soft Limit - Off")); + // } + //} + //else if (Pub.Result.Model.waferSize.StartsWith("12")) + //{ + // if (armForward) softLimit = Pub.system.SWLimit12A; + // else softLimit = Pub.system.SWLimit12; + + // if (softLimit != 0) + // { + // Pub.mot.SetSoftLimit(0, true, softLimit, -softLimit); + // Pub.log.AddI(string.Format("(12') Y-Axis Soft Limit : {0}mm", softLimit)); + // } + // else + // { + // Pub.mot.SetSoftLimit(0, false, 0, 0); + // Pub.log.AddI(string.Format("(12') Y-Axis Soft Limit - Off")); + // } + //} + } + + + void ColorChange(arCtl.arLabel contorls, bool value, Color tColor, Boolean isBG = true) + { + if (isBG) + { + if (value == true) + { + if (contorls.BackColor != tColor) contorls.BackColor = tColor; + } + else + { + if (contorls.BackColor != Color.Gray) contorls.BackColor = Color.Gray; + } + } + else + { + if (value == true) + { + if (contorls.ForeColor != tColor) contorls.ForeColor = tColor; + } + else + { + if (contorls.ForeColor != Color.Gray) contorls.ForeColor = Color.Gray; + } + } + } + void ColorChange2(arCtl.arLabel contorls, bool value, Color tColor) + { + if (value == true) + { + if (contorls.BackColor2 != tColor) contorls.BackColor2 = tColor; + } + else + { + if (contorls.BackColor2 != Color.Gray) contorls.BackColor2 = Color.Gray; + } + } + void ColorChange(arCtl.arLabel contorls, bool value, Color tColor, Color fColor, Boolean isBG = true) + { + if (isBG) + { + if (value == true) + { + if (contorls.BackColor != tColor) contorls.BackColor = tColor; + } + else + { + if (contorls.BackColor != fColor) contorls.BackColor = fColor; + } + } + else + { + if (value == true) + { + if (contorls.ForeColor != tColor) contorls.ForeColor = tColor; + } + else + { + if (contorls.ForeColor != fColor) contorls.ForeColor = fColor; + } + } + } + + void func_sw_initialize() + { + Pub.Result.ResetButtonDownTime = DateTime.Now; + if (Pub.sm.Step == StateMachine.eSMStep.RUN) + { + Pub.popup.setMessage("SYSTEM INNITIALIZE\n" + + "동작중에는 [초기화]를 실행할 수 없습니다\n" + + "방법 #1 => [중지] 버튼을 이용하여 시스템을 정지 후 다시 시도\n" + + "방법 #2 => [수동실행] 모드로 전환 후 다시 시도"); + } + else if ( + Pub.sm.getNewStep != StateMachine.eSMStep.RESET && + Pub.sm.Step != StateMachine.eSMStep.RESET) + { + Pub.log.Add("시스템상태를 RESET으로 전환 합니다"); + Pub.AddSystemLog(Application.ProductVersion, "MAIN", "SYSTEM RESET"); + Pub.sm.setNewStep(StateMachine.eSMStep.RESET); + } + else Pub.log.AddAT("RESET 중이므로 RESET 버튼을 무시 합니다."); + } + + void func_sw_errorclear() + { + //RESET 버튼 눌렸을때 공통 처리 사항 + Util_DO.SetBuzzer(false); //buzzer off + + if (Pub.popup.Visible) + Pub.popup.needClose = true; + + if ( + loader1.Scean == Loader.eScean.xmove) + loader1.Scean = UIControl.Loader.eScean.Nomal; + + //팝업메세지가 제거가능한 메세지라면 없앤다. + if (loader1.HasPopupMenu && loader1.PopupMenuRequireInput == false) + loader1.DelMenu(); + + //알람클리어작업(모션에 오류가 있는 경우에만) + if (Pub.mot.IsInit && Pub.mot.hasServoAlarm) + { + Pub.mot.SetAlarmClearOn(); + System.Threading.Thread.Sleep(200); + Pub.mot.SetAlarmClearOff(); + } + + //자재가 없고, 센서도 반응안하는데. 진공이 되어잇으면 off한다 + if (Util_DO.isVacOKL() == 0 && Pub.flag.get(eFlag.PK_ITEMON) == false && Util_DO.GetIOOutput(eDOName.PICK_VAC1) == false) + Util_DO.SetPickerVac(false, true); + + + //중단, 오류 모드일때에는 이 리셋이 의미가 있다. + if (Pub.sm.Step == StateMachine.eSMStep.RUN) + { + Pub.log.Add("동작중에는 [RESET] 버튼이 동작하지 않습니다"); + } + else if (Pub.sm.Step == StateMachine.eSMStep.PAUSE || Pub.sm.Step == StateMachine.eSMStep.OVERLOAD) + { + //시작대기상태로 전환(대기상태일때 시작키를 누르면 실행 됨) + Pub.sm.setNewStep(StateMachine.eSMStep.WAITSTART); + Pub.log.AddAT("Reset Clear System Resume & Pause ON"); + } + else if (Pub.sm.Step == StateMachine.eSMStep.EMERGENCY) + { + Pub.popup.setMessage("EMERGENCY RESET\n" + + "[비상정지] 상태에는 [시스템초기화] 를 실행 해야 합니다\n" + + "상단메뉴 [초기화] 를 실행하세요"); + + Pub.log.Add("RESET버튼으로 인해 EMG 상황에서 IDLE전환"); + Pub.sm.setNewStep(StateMachine.eSMStep.IDLE); + } + else if (Pub.sm.Step == StateMachine.eSMStep.ERROR) + { + Pub.log.Add("RESET버튼으로 인해 ERR 상황에서 IDLE전환"); + Pub.sm.setNewStep(StateMachine.eSMStep.IDLE); + } + else if (Pub.sm.Step == StateMachine.eSMStep.WAITSTART) + { + //시작대기중일때에도 아무 처리안함 + //Pub.log.Add("시작버튼대기중에는 [RESET] 버튼이 동작하지 않습니다"); + } + else if (Pub.sm.Step == StateMachine.eSMStep.IDLE) + { + //Pub.log.Add("대기중에는 [RESET] 버튼이 동작하지 않습니다"); + } + else + { + //Pub.log.AddE("정의되지 않은 상태에서의 REST 키 버튼 입력 - 대기상태로 전환합니다"); + Pub.sm.setNewStep(StateMachine.eSMStep.IDLE); + } + } + + /// + /// 작업시작전 작업에대한 선택 + /// + void fucn_start_job_select() + { + if (this.InvokeRequired) + { + this.BeginInvoke(new MethodInvoker(fucn_start_job_select), null); + } + else + { + //로그창 지우기 + if (this.logTextBox1.InvokeRequired) logTextBox1.BeginInvoke(new Action(() => { logTextBox1.Clear(); })); + else this.logTextBox1.Clear(); + + Pub.popup.needClose = true; + //Pub.flag.set(eFlag.RUN_INIT, false, "FN_JOBSELECT"); + Pub.ClearRunStep(0); + Pub.ClearRunStep(1); + + if (Pub.mot.IsInit == false) + { + Pub.log.AddE("모션 보드가 초기화 되지 않았습니다.\n문의 바랍니다"); + return; + } + else if (Pub.dio.IsInit == false) + { + Pub.log.AddE("I/O 보드가 초기화 되지 않았습니다.\n문의 바랍니다"); + return; + } + else if (Pub.mot.hasHomeSetOff == true) + { + Pub.log.AddE("홈 검색이 완료되지 않은 축이 있습니다.\n장치초기화를 먼저 실행 하세요"); + return; + } + + //작업형태를 선택하게 한다 + var f = new Dialog.fSelectJob(); + if (f.ShowDialog() == DialogResult.OK) + { + UpdateUnloderInfo(); + LoadSeqSIDHistory(); + Pub.sm.setNewStep(StateMachine.eSMStep.RUN); + } + else + { + Pub.log.AddAT("작업 시작전 선택화면에서 사용자가 취소함"); + + } + } + } + + /// + /// 입력차수에 따른 릴 수량 목록을 가져온다 + /// + void LoadSeqSIDHistory() + { + //해당 차수의 전체 sidhistory 를 가져와야한다 + //System.Diagnostics.Stopwatch wat = new Stopwatch(); + //wat.Restart(); + //Pub.Result.SIDHistory.Clear(); + //var SIDHistoryFiles = Pub.dbmSidHistory.Getfiles(Pub.Result.JobSeqDate, Pub.Result.JobSeqNo); + //var DT = Pub.dbmSidHistory.GetDatas(SIDHistoryFiles); + //Pub.Result.SIDHistory.Merge(DT); + //Pub.Result.SIDHistory.AcceptChanges(); + //wat.Stop(); + //Pub.log.AddI(string.Format("SID 불러오기시간:{0}ms,Cnt:{1}", wat.ElapsedMilliseconds, Pub.Result.SIDHistory.Count)); + } + + + void func_sw_start() + { + if (Pub.sm.Step == StateMachine.eSMStep.RUN) + { + //아무것도 하지 않는다 + Pub.log.Add("동작중에는 START 버튼이 사용되지 않습니다"); + } + else if (Pub.sm.Step == StateMachine.eSMStep.IDLE) //일반대기상태 + { + if (Util_DO.isVacOKL() > 0) + { + Util_DO.SetBuzzer(true); + Pub.popup.setMessage("PICKER ITEM DETECT\nPICKER 에서 아이템이 감지되었습니다\n[작업취소] 를 눌러서 아이템을 DROP 한 후 제거해주세요."); + return; + } + else if (Util_DO.getCartSize(1) == eCartSize.None) + { + Util_DO.SetBuzzer(true); + Pub.popup.setMessage("로더에 카트가 장착되지 않았습니다"); + return; + } + else if (Util_DO.GetIOInput(eDIName.PORT1_LIM_DN) == true && Util_DO.GetIOInput(eDIName.PORT1_DET_UP) == true) + { + //하단리밋과, 자재감지가 동시에 들어오면 overload 이다 + Util_DO.SetBuzzer(true); + Pub.popup.setMessage("로더에 너무 많은 릴이 적재 되어 있습니다\n" + + "하단 리밋 센서와 상단 릴 감지 센서가 동시에 확인 됩니다"); + return; + } + //else if (Util_DO.getCartSize(0) == eCartSize.None && Util_DO.getCartSize(2) == eCartSize.None) + //{ + // Util_DO.SetBuzzer(true); + // Pub.popup.setMessage("언로더에 카트가 장착되지 않았습니다"); + // return; + //} + + fucn_start_job_select(); + + + } + else if (Pub.sm.Step == StateMachine.eSMStep.WAITSTART) //시작대기상태 + { + + Util_DO.SetRoomLight(false); + + //새로시작하면 포트 얼라인을 해제 해준다 + Pub.flag.set(eFlag.RDY_PORT_PL, false, "SW_START"); + Pub.flag.set(eFlag.RDY_PORT_PC, false, "SW_START"); + Pub.flag.set(eFlag.RDY_PORT_PR, false, "SW_START"); + + //얼라인 상태를 모두 초기화 한다 + //loader1.arVar_Port.ToList().ForEach(t => t.AlignOK = 0); + + //언로더 체크작업은 항상 다시 시작한다 + if (Pub.Result.UnloaderSeq > 1) Pub.Result.UnloaderSeq = 1; + + //팝업메세지가 사라지도록 한다 + Pub.popup.needClose = true; + Pub.sm.setNewStep(StateMachine.eSMStep.RUN); + Pub.log.Add("[사용자 일시정지] 해제 => 작업이 계속됩니다"); + } + else + { + string msg = "SYSTEM {0}\n[RESET] 버튼을 누른 후 다시 시도하세요"; + msg = string.Format(msg, Pub.sm.Step); + Pub.popup.setMessage(msg); + } + } + + void func_sw_stop() + { + //매거진 투입모터 멈춤 + if (Util_DO.GetIOOutput(eDOName.PORT0_MOT_RUN)) Util_DO.SetPortMotor(0, eMotDir.CW, false, "Button Stop"); + if (Util_DO.GetIOOutput(eDOName.PORT1_MOT_RUN)) Util_DO.SetPortMotor(1, eMotDir.CW, false, "Button Stop"); + if (Util_DO.GetIOOutput(eDOName.PORT2_MOT_RUN)) Util_DO.SetPortMotor(2, eMotDir.CW, false, "Button Stop"); + + //자재가 없고, 센서도 반응안하는데. 진공이 되어잇으면 off한다 + if (Util_DO.isVacOKL() == 0 && Pub.flag.get(eFlag.PK_ITEMON) == false && Util_DO.GetIOOutput(eDOName.PICK_VAC1) == true) + Util_DO.SetPickerVac(false, true); + + //조명켜기 + if (Pub.setting.Disable_RoomLight == false) + Util_DO.SetRoomLight(true); + + //모든 모터도 멈춘다 + if (Pub.mot.hasMoving) Pub.mot.MoveStopAll("Stop Button"); + + if (Pub.sm.Step == StateMachine.eSMStep.RUN) + { + //일시중지상태로 전환한다 + Pub.Result.SetResultMessage(eResult.OPERATION, eECode.USER_STOP, eNextStep.pause); + Pub.log.Add("[사용자 일시정지]"); + } + else if (Pub.sm.Step == StateMachine.eSMStep.HOME) //홈진행중에는 대기상태로 전환 + { + Pub.ClearRunStep(0); + Pub.ClearRunStep(1); + Pub.sm.setNewStep(StateMachine.eSMStep.IDLE); + } + + //로그 기록 + Pub.LogFlush(); + } + + void ClearBarcode() + { + //Pub.Result.Clear(); + //Pub.log.AddI("Clear Barcode"); + } + + private void toolStripButton1_Click(object sender, EventArgs e) + { + if (Pub.isRunning) + { + //실 동작중이면 사용하지 못하게 함 + Pub.popup.setMessage("MAPCHECK ERROR\n" + + "동작중에는 [맵확인] 기능을 사용할 수 없습니다\n" + + "[STOP] 으로 일시정지 후 다시 시도하세요"); + return; + } + + } + + + Dialog.SystemParameter frmSysParam = null; + private void systemParameterToolStripMenuItem_Click(object sender, EventArgs e) + { + if (frmSysParam == null || frmSysParam.IsDisposed || frmSysParam.Disposing) + { + if (frmSysParam != null) frmSysParam.FormClosed -= frmSysParam_FormClosed; + frmSysParam = new Dialog.SystemParameter(); + frmSysParam.FormClosed += frmSysParam_FormClosed; + } + frmSysParam.Show(); + frmSysParam.Activate(); + if (frmSysParam.WindowState == FormWindowState.Minimized) + frmSysParam.WindowState = FormWindowState.Normal; + } + + void frmSysParam_FormClosed(object sender, FormClosedEventArgs e) + { + var f = sender as Form; + if (f.DialogResult == System.Windows.Forms.DialogResult.OK) + { + UpdateSoftLimit(); + } + } + + + private void buzzerTestToolStripMenuItem_Click(object sender, EventArgs e) + { + Util_DO.SetBuzzer(true); + } + + void CheckFreeSpace() + { + try + { + double freeSpaceRate_ = 0; + var path = Pub.getSavePath(out freeSpaceRate_); + if (path.StartsWith("\\")) + { + loader1.arFreespace = 0.0; + } + else + { + loader1.arFreespace = freeSpaceRate_;// + if (freeSpaceRate_ < Pub.setting.AutoDeleteThreshold) + { + Pub.flag.set(eFlag.MINSPACE, true, "CheckFreeSpace"); + loader1.arLowDiskSpace = true; + } + else + { + Pub.flag.set(eFlag.MINSPACE, false, "CheckFreeSpace"); + loader1.arLowDiskSpace = false; + } + } + } + catch (Exception ex) + { + loader1.arFreespace = 0.0; + Pub.log.AddE("check free space : " + ex.Message); + } + } + + private void demoRunToolStripMenuItem_Click(object sender, EventArgs e) + { + Pub.Result.JobEndTime = DateTime.Now; + + } + + + private void arLabel2_Click_1(object sender, EventArgs e) + { + var ctl = sender as arCtl.arLabel; + if (ctl.Enabled == false) return; + Pub.log.Add("User Click : Start", false); + func_sw_start(); + } + + + + private void arLabel4_Click_1(object sender, EventArgs e) + { + Pub.log.Add("User Click : Stop", false); + func_sw_stop(); + } + + + + private void openMapFileToolStripMenuItem_Click(object sender, EventArgs e) + { + OpenFileDialog od = new OpenFileDialog(); + if (od.ShowDialog() != System.Windows.Forms.DialogResult.OK) return; + + } + + void mapV_DragDrop(object sender, DragEventArgs e) + { + string[] files = (string[])e.Data.GetData(DataFormats.FileDrop, false); + if (files == null || files.Length < 1) return; + + } + + void mapV_DragEnter(object sender, DragEventArgs e) + { + e.Effect = DragDropEffects.All; + } + + + Color getStatecolor(string State) + { + if (State == "U") return Color.DimGray; + else if (State == "I") return Color.SkyBlue; + else if (State == "O") return Color.Yellow; + else return Color.Tomato; + } + + + + private void sbReset_Click(object sender, EventArgs e) + { + func_sw_errorclear(); + } + + private void btReset_Click(object sender, EventArgs e) + { + Pub.log.Add("User Click : Reset", false); + func_sw_errorclear(); + } + + + + + private void setZValidToolStripMenuItem_Click(object sender, EventArgs e) + { + Pub.mot.isHomeSet[(int)eAxis.Z_THETA] = true; + Pub.log.Add("user set z-home set on"); + } + + + + private void toolStripButton4_Click(object sender, EventArgs e) + { + Util_DO.ToggleRoomLight(); + } + + + + private void gridviewTestToolStripMenuItem_Click(object sender, EventArgs e) + { + var task = new System.Threading.Tasks.Task(new Action(() => + { + Random rnd = new Random(); + var startTime = DateTime.Now; + while ((DateTime.Now - startTime).TotalSeconds <= 180) + { + + + } + + })); + task.Start(); + } + + private void errorToolStripMenuItem_Click(object sender, EventArgs e) + { + Pub.popup.setMessage("error\berror message"); + } + + private void informationToolStripMenuItem_Click(object sender, EventArgs e) + { + Pub.popup.setMessage("info\ninformation message", MessageWindow.eWindowType.information); + } + + private void attentionToolStripMenuItem_Click(object sender, EventArgs e) + { + Pub.popup.setMessage("attention\nattention message", MessageWindow.eWindowType.attention); + } + + + private void showDevInfo() + { + Util.MsgI("개발 : K4-장비기술팀 1파트\n" + + "설치 : 2020-01-17\n" + + "H/W : 임현 (Hyeon.Im@amkor.co.kr, T.8549)\n" + + "S/W : 김치균 (Chikyun.kim@amkor.co.kr, T.8567)"); + } + + private void btHistory_ButtonClick(object sender, EventArgs e) + { + var file = System.IO.Path.Combine(Util.CurrentPath, "ResultView.exe"); + if (System.IO.File.Exists(file) == false) + { + Pub.popup.setMessage("Result Viewer Error\n결과보기 파일이 존재하지 않습니다\n개발자에 문의 주세요(T.8567)\nFile : " + file); + return; + } + Util.RunProcess(file); + } + + private void toolStripButton9_Click(object sender, EventArgs e) + { + var file = System.IO.Path.Combine(Util.CurrentPath, "LogView.exe"); + if (System.IO.File.Exists(file) == false) + { + Pub.popup.setMessage("Log Viewer Error\n로그보기 파일이 존재하지 않습니다\n개발자에 문의 주세요(T.8567)\nFile : " + file); + return; + } + + Util.RunProcess(file, Pub.log.BaseDirectory + " ERROR"); + } + + private void toolStripMenuItem3_Click(object sender, EventArgs e) + { + + } + + private void toolStripMenuItem6_Click(object sender, EventArgs e) + { + //save image + var sd = new SaveFileDialog(); + sd.Filter = "jpeg(*.jpg)|*.jpg"; + if (sd.ShowDialog() != System.Windows.Forms.DialogResult.OK) return; + //this.orgImage.Save(sd.FileName); + Util.RunExplorer(sd.FileName); + } + + + + private void initializeToolStripMenuItem_Click(object sender, EventArgs e) + { + if (Pub.isRunning) + { + Pub.popup.setMessage("AUTORUN MODE\n자동 실행중에는 실행 할 수 없습니다"); + return; + } + Pub.ClearRunStep(0); + Pub.ClearRunStep(1); + Pub.flag.set(eFlag.UserStepCheck, true, "initializeToolStripMenuItem_Click"); + //Pub.preStep = Pub.sm.Step; + //if (Pub.preStep == StateMachine.eSMStep.PAUSE) Pub.preStep = StateMachine.eSMStep.RUN; + + //수작업으로 이동 제한값을 초기화해준다. (안그러면 모션 이동으로인한 오류 발생함) + for (int i = 0; i < 6; i++) + Pub.Result.PreventMotionPosition[i] = Pub.mot.LastMoveCmdPos[i]; + + + var ctl = sender as ToolStripMenuItem; + if (ctl.Tag == null) return; + var tagstr = ctl.Tag.ToString(); + + eRunStep newstep = eRunStep.NOTSET; + switch (tagstr) + { + case "0": + newstep = eRunStep.STARTCHKSW; + break; + case "1": + newstep = eRunStep.STARTCHKHW; + break; + case "2": + newstep = eRunStep.INITIALHW; + break; + case "3": + newstep = eRunStep.PORTLOAD; + break; + case "10": + Pub.flag.set(eFlag.UserStepCheck, true, "initializeToolStripMenuItem_Click"); + newstep = eRunStep.BEGINPICK; + break; + case "11": //prev Camera Position move + + newstep = eRunStep.BEGINPICK; + break; + case "12": //next Camera Position move + + newstep = eRunStep.BEGINPICK; + break; + } + Pub.setNewRunStep(0, newstep); + Pub.sm.setNewStep(StateMachine.eSMStep.RUN); + } + + private void setHomeSetToolStripMenuItem_Click(object sender, EventArgs e) + { + for (int i = 0; i < 6; i++) + { + Pub.mot.isHomeSet[i] = true; + Pub.mot.HomeSetTime[i] = DateTime.Now; + Pub.mot.HomeResult[i] = arDev.AzinAxt.AXT_MOTION_HOME_RESULT.HOME_SUCCESS; + Pub.log.AddAT("manual home set"); + } + + } + void menu_logform() + { + if (logForm == null || logForm.IsDisposed == true || logForm.Disposing == true) + logForm = new Dialog.fLog(); + if (logForm.WindowState == FormWindowState.Minimized) logForm.WindowState = FormWindowState.Normal; + logForm.Show(); + } + + + private void toolStripMenuItem9_Click(object sender, EventArgs e) + { + menu_logform(); + } + + private void tsMenu_Paint(object sender, PaintEventArgs e) + { + + var c2 = Color.FromArgb(40, 40, 40); + var c1 = Color.FromArgb(80, 80, 80); + //c1 = Color.Gold; + //c2 = Color.DarkOrange; + + var br = new System.Drawing.Drawing2D.LinearGradientBrush(e.ClipRectangle, + c1, c2, + System.Drawing.Drawing2D.LinearGradientMode.Vertical); + + + e.Graphics.FillRectangle(br, e.ClipRectangle); + br.Dispose(); + + } + + //#region "Mouse Form Move" + + //private Boolean fMove = false; + //private Point MDownPos; + + //private void LbTitle_DoubleClick(object sender, EventArgs e) + //{ + // if (this.WindowState == FormWindowState.Maximized) this.WindowState = FormWindowState.Normal; + // else this.WindowState = FormWindowState.Maximized; + // //this.loader1.RemakeRect(); + //} + //private void LbTitle_MouseMove(object sender, MouseEventArgs e) + //{ + // if (fMove) + // { + // Point offset = new Point(e.X - MDownPos.X, e.Y - MDownPos.Y); + // this.Left += offset.X; + // this.Top += offset.Y; + // offset = new Point(0, 0); + // } + //} + //private void LbTitle_MouseUp(object sender, MouseEventArgs e) + //{ + // fMove = false; + //} + //private void LbTitle_MouseDown(object sender, MouseEventArgs e) + //{ + // MDownPos = new Point(e.X, e.Y); + // fMove = true; + //} + + //#endregion + + private void button2_Click(object sender, EventArgs e) + { + this.WindowState = FormWindowState.Minimized; + } + + private void button1_Click(object sender, EventArgs e) + { + if (this.WindowState == FormWindowState.Maximized) + this.WindowState = FormWindowState.Normal; + else + this.WindowState = FormWindowState.Maximized; + } + + private void tbClose_Click(object sender, EventArgs e) + { + this.Close(); + } + + + + private void 수량저장폴더ToolStripMenuItem_Click(object sender, EventArgs e) + { + var path = System.IO.Path.Combine( + Pub.setting.Path_Data, "Count", + DateTime.Now.Year.ToString("0000")); + if (System.IO.Directory.Exists(path)) + Util.RunExplorer(path); + else + Util.RunExplorer(System.IO.Path.Combine(Pub.setting.Path_Data, "Count")); + } + + + private void arLabel4_Click(object sender, EventArgs e) + { + Pub.log.Add("user motion alarm clear"); + Pub.mot.SetAlarmClearOn(); + System.Threading.Thread.Sleep(500); + Pub.mot.SetAlarmClearOff(); + } + + private void arLabel10_Click_1(object sender, EventArgs e) + { + if (Pub.isRunning == true) + { + Util.MsgE(Lang.CAN_NOT_RUN_AUTOMODE); + return; + } + + this.Close(); + } + + private void button7_Click(object sender, EventArgs e) + { + if (Pub.flag.get(eFlag.INIT_MOTIO) == false) + { + Util.MsgE("모션이 초기화 되지 않았습니다\n잠시 후 다시 시도하세요"); + return; + } + var cur = Util_DO.GetIOOutput(eDOName.LAMPON1); + Util_DO.SetRoomLight(!cur); + } + + private void button3_Click(object sender, EventArgs e) + { + var file = System.IO.Path.Combine(Util.CurrentPath, "ResultView", "ResultView.exe"); + if (System.IO.File.Exists(file) == false) + { + Pub.popup.setMessage("Result Viewer Error\n결과보기 파일이 존재하지 않습니다\n개발자에 문의 주세요(T.8567)\nFile : " + file); + return; + } + Util.RunProcess(file); + } + + private void button4_Click(object sender, EventArgs e) + { + if (Pub.flag.get(eFlag.INIT_MOTIO) == false) + { + Util.MsgE("모션이 초기화 되지 않았습니다\n잠시 후 다시 시도하세요"); + return; + } + + if (Pub.isRunning == true) + { + Util.MsgE(Lang.CAN_NOT_RUN_AUTOMODE); + return; + } + + var f = new fModelM(); + if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK) + { + if (f.Value != "") + { + SelectModelM(f.Value); + } + } + } + + + private void button5_Click(object sender, EventArgs e) + { + if (Pub.isRunning == true) + { + Util.MsgE(Lang.CAN_NOT_RUN_AUTOMODE); + return; + } + + var f = new fModelV(); + if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK) + { + if (f.Value != "") + { + SelectModelV(f.Value); + } + } + f.Dispose(); + } + + private void button6_Click(object sender, EventArgs e) + { + if (Pub.flag.get(eFlag.INIT_MOTIO) == false) + { + Util.MsgE("모션이 초기화 되지 않았습니다\n잠시 후 다시 시도하세요"); + return; + } + //show io panerl + var f = new Dialog.fIOMonitor(); + f.ShowDialog(); + f.Dispose(); + } + + private void arLabel8_Click(object sender, EventArgs e) + { + + } + + private void button9_Click(object sender, EventArgs e) + { + + } + + private void arLabel13_Click(object sender, EventArgs e) + { + Util.ScreenCaptrue(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height, new Point(0, 0)); + } + + private void button8_Click(object sender, EventArgs e) + { + + if (Pub.flag.get(eFlag.INIT_MOTIO) == false) + { + Util.MsgE("모션이 초기화 되지 않았습니다\n잠시 후 다시 시도하세요"); + return; + } + + var msg = new System.Text.StringBuilder(); + + + if (Pub.mot.hasHomeSetOff) + { + msg.AppendLine("! 장치 초기화가 완료되지 않은 상태입니다\n! 장치초기화를 실행 하세요"); + } + + if (Pub.isRunning == true) + { + msg.AppendLine("! " + Lang.CAN_NOT_RUN_AUTOMODE); + } + + if (Pub.sm.Step == StateMachine.eSMStep.PAUSE) + { + msg.AppendLine("! RESET을 누른 후 다시 시도하세요"); + } + + if (Util_DO.isEmergencyOn() == true) + { + msg.AppendLine("! 비상정지를 해제하세요"); + } + + if (Util_DO.isSaftyDoorF() == false) + { + msg.AppendLine("!전면 도어가 열려 있습니다"); + } + + if (Util_DO.isSaftyDoorR() == false) + { + msg.AppendLine("!후면 도어가 열려 있습니다"); + } + + if (msg.Length > 0) + { + Util.MsgE(msg.ToString()); + Pub.log.AddE(msg.ToString()); + return; + } + + msg.Clear(); + msg.AppendLine("Q. 작업을 취소하고 모션의 위치 초기화를 실행하시겠습니까?"); + var dlgresult = Util.MsgQ(msg.ToString()); + if (dlgresult != System.Windows.Forms.DialogResult.Yes) return; + + Pub.log.Add("User Click : tray out & clear position", false); + Run_MotionPositionReset(); + + } + + void Run_MotionPositionReset() + { + Pub.flag.set(eFlag.UserStepCheck, false, "Run_MotionPositionReset"); + Pub.log.AddAT("배출 및 원점이동 시작"); + Pub.updateRunStepSeq(0, 1); + Pub.AddSystemLog(Application.ProductVersion, "MAIN", "작업취소"); + Pub.sm.setNewStep(StateMachine.eSMStep.POSITION_RESET);//실행모드로 변경 + } + + private void arLabel14_Click(object sender, EventArgs e) + { + if (Pub.flag.get(eFlag.INIT_MOTIO) == false) + { + Util.MsgE("모션이 초기화 되지 않았습니다\n잠시 후 다시 시도하세요"); + return; + } + var msg = new System.Text.StringBuilder(); + + if (Pub.isRunning == true) + msg.AppendLine("*" + Lang.CAN_NOT_RUN_AUTOMODE); + + if (Util_DO.isEmergencyOn() == true) + msg.AppendLine("* 비상정지 상태일때에는 움직일 수 없습니다."); + + if (Pub.sm.Step == StateMachine.eSMStep.RUN) + msg.AppendLine("* 동작중에는 초기화할 수 없습니다"); + + if (msg.Length > 0) + { + Util.MsgE(msg.ToString()); + return; + } + + //CMenuButton btYes = new CMenuButton + //{ + // Text = "초기화", + // Tag = "yes", + // BackColor = Color.Tomato, + // OverColor = Color.Gold + //}; + + //CMenuButton btNo = new CMenuButton("취소", "NO"); + //var menu = new CMenu("모션의 홈 및 상태 초기화를 실행하시겠습니까?", "장치 초기화", "init", eMsgIcon.Alert, btYes, btNo); + //loader1.AddMenu(menu); + + msg.Clear(); + msg.AppendLine("모션의 홈 및 상태의 초기화를 실행하시겠습니까?"); + var dlgresult = Util.MsgQ(msg.ToString()); + if (dlgresult != System.Windows.Forms.DialogResult.Yes) return; + + Pub.log.Add("User Click : initialize", false); + func_sw_initialize(); + } + + private void arLabel11_Click(object sender, EventArgs e) + { + if (Pub.isRunning == true) + { + Util.MsgE(Lang.CAN_NOT_RUN_AUTOMODE); + return; + } + + + fSetting f = new fSetting(); + + var popmsg = Pub.popup.Visible; + if (f.ShowDialog() == DialogResult.OK) + { + + UpdateUnloderInfo(); + + Pub.initDIOSensitive(); + if (Pub.setting.Disable_RoomLight == true) + Util_DO.SetRoomLight(false); + if (Pub.setting.Disable_TowerLamp == true) + { + Util_DO.SetTwGrn(false); + Util_DO.SetTwRed(false); + Util_DO.SetTwYel(false); + } + if (Pub.setting.Serial_Remocon.isEmpty() == false) + { + var portinfo = Pub.setting.Serial_Remocon.Split(':'); + var portName = portinfo[0]; + int baud = 9600; + if (portinfo.Length > 1) baud = int.Parse(portinfo[1]); + if (Pub.remocon.PortName != portName) + { + Pub.remocon.Close(); + Pub.remocon.PortName = portName; + Pub.remocon.BaudRate = baud; + if (Pub.remocon.Open() == false) + Pub.log.AddE("Remote Control Port Open Error : " + Pub.remocon.errorMessage); + } + } + + //프린터설정 - 201223 + Pub.PrinterL.printerName = Pub.setting.PrintLeftName; + Pub.PrinterR.printerName = Pub.setting.PrintRightName; + + //if (Pub.setting.Disable_Axis1) Pub.mot.SetSVON(0, false); + //if (Pub.setting.Disable_Axis0) Pub.mot.SetSVON(1, false); + //if (Pub.setting.Disable_Axis2) Pub.mot.SetSVON(2, false); + //if (Pub.setting.Disable_Axis3) Pub.mot.SetSVON(3, false); + //if (Pub.setting.Disable_Axis4) Pub.mot.SetSVON(4, false); + //if (Pub.setting.Disable_Axis5) Pub.mot.SetSVON(5, false); + //if (Pub.setting.Disable_Axis6) Pub.mot.SetSVON(6, false); + + + } + if (popmsg) Pub.popup.Visible = true; + Pub.ApplyZplCode(); + } + + private void arLabel12_Click(object sender, EventArgs e) + { + + string file = System.IO.Path.Combine(Util.CurrentPath, "Manual", "index.htm");// "manual.pdf"); + if (System.IO.File.Exists(file) == false) + { + Util.MsgE("사용설명서 파일이 존재하지 않습니다\n" + + "문의 : T8567 (장비기술 1파트)\n" + + "파일명 : " + file); + return; + } + Util.RunExplorer(file); + } + + private void arLabel16_Click(object sender, EventArgs e) + { + arCtl.arLabel ctl = sender as arCtl.arLabel; + this.cmOpenDir.Show(ctl, new Point((int)(ctl.Width / 1.5), (int)(ctl.Height / 1.5))); + } + + private void 맵데이터보기ToolStripMenuItem_Click(object sender, EventArgs e) + { + Util.RunExplorer(Util.CurrentPath); + } + + private void 저장폴더열기ToolStripMenuItem_Click(object sender, EventArgs e) + { + Pub.LogFlush(); + var fi = new System.IO.FileInfo(Pub.log.FileName); + Util.RunExplorer(fi.Directory.FullName); + } + + private void 캡처ToolStripMenuItem1_Click(object sender, EventArgs e) + { + string savefile = System.IO.Path.Combine(Util.CurrentPath, "ScreenShot", DateTime.Now.ToString("yyyyMMddHHmmss") + ".png"); + var grpath = new System.IO.FileInfo(savefile); + Util.RunExplorer(grpath.Directory.FullName); + } + + private void 저장ToolStripMenuItem_Click(object sender, EventArgs e) + { + var basepath = Pub.setting.GetPathData(); + var path = System.IO.Path.Combine( + basepath, "History", + DateTime.Now.Year.ToString("0000"), + DateTime.Now.Month.ToString("00"), + DateTime.Now.Day.ToString("00")); + if (System.IO.Directory.Exists(path)) + Util.RunExplorer(path); + else + Util.RunExplorer(System.IO.Path.Combine(Pub.setting.Path_Data, "History")); + } + + private void 이미지ToolStripMenuItem_Click(object sender, EventArgs e) + { + var basepath = Pub.setting.GetPathData(); + var path = System.IO.Path.Combine( + basepath, "Images", + DateTime.Now.Year.ToString("0000"), + DateTime.Now.Month.ToString("00"), + DateTime.Now.Day.ToString("00")); + if (System.IO.Directory.Exists(path)) + Util.RunExplorer(path); + else + Util.RunExplorer(System.IO.Path.Combine(Pub.setting.Path_Data, "History")); + } + + + private void btDebug_Click(object sender, EventArgs e) + { + arCtl.arLabel ctl = sender as arCtl.arLabel; + this.cmDebug.Show(ctl, new Point((int)(ctl.Width / 1.5), (int)(ctl.Height / 1.5))); + } + + + private void moveToZeroToolStripMenuItem_Click(object sender, EventArgs e) + { + //var dlg = Util.MsgQ("모션의 위치 초기화를 실행하시겠습니까?"); + //if (dlg != System.Windows.Forms.DialogResult.Yes) return; + //// return; + + + //if (Pub.sm.Step == StateMachine.eSMStep.RUN) + //{ + // Pub.popup.setMessage("SYSTEM INNITIALIZE\n" + + // "동작중에는 [원점이동]을 실행할 수 없습니다\n" + + // "방법 #1 => [중지] 버튼을 이용하여 시스템을 정지 후 다시 시도"); + //} + //else if ( Pub.sm.getNewStep != StateMachine.eSMStep.QHOME && Pub.sm.Step != StateMachine.eSMStep.QHOME) + //{ + // Pub.log.Add("시스템상태를 Q-HOME으로 전환 합니다"); + // Pub.sm.setNewStep(StateMachine.eSMStep.QHOME); + //} + //else Pub.log.AddAT("Q-HOME 중이므로 Q-HOME 기능을 무시 합니다"); + + } + + + Control FindContextSender(object sender) + { + var menuitem = sender as ToolStripMenuItem; + if (menuitem != null) + { + var menu = menuitem.Owner as ContextMenuStrip; + if (menu != null) + { + var selectedControl = menu.SourceControl; + return selectedControl; + } + } + return null; + } + + + private void lbTitleBS_Click(object sender, EventArgs e) + { + + } + + private void lbTitleFS_Click(object sender, EventArgs e) + { + + } + + private void sMResetToolStripMenuItem_Click(object sender, EventArgs e) + { + if (Pub.isRunning == true) + { + Util.MsgE(Lang.CAN_NOT_RUN_AUTOMODE); + return; + } + + if (Pub.sm.Step != StateMachine.eSMStep.IDLE) + { + var dlg = Util.MsgQ( + "프로그램 상태를 초기화 하시겠습니까?\n\n" + + "진행 중인 사항은 모두 취소 됩니다.\n" + + "필요한 경우 [시스템초기화] 가 필요할 수 있습니다"); + if (dlg != System.Windows.Forms.DialogResult.Yes) return; + } + else Pub.log.AddAT("대기상태일때에는 초기화 할 수 없습니다"); + + Pub.log.Add("User Click : initialize", false); + Pub.sm.setNewStep(StateMachine.eSMStep.IDLE, true); + Pub.flag.set(eFlag.UserStepCheck, false, "sMResetToolStripMenuItem_Click"); + } + + + private void exceptionTestToolStripMenuItem_Click(object sender, EventArgs e) + { + int a = 0; + int b = 1; + var c = b / a; + } + + private void motionEmulatorToolStripMenuItem_Click(object sender, EventArgs e) + { + var f = new Dialog.fEmulator(Pub.mot, 7, 64, 64); + Pub.mot.Emulator(f.devM); + Pub.dio.Emulator(f.devIO); + + f.Show(); + } + + private void dIOEmulatorToolStripMenuItem_Click(object sender, EventArgs e) + { + var f = new arDev.AzinAxt.Emulator.fEmulatorIO(64); + Pub.dio.Emulator(f.devIO); + f.Show(); + Console.WriteLine("emulator on"); + } + + private void dIOMonitorToolStripMenuItem_Click(object sender, EventArgs e) + { + Pub.dio.ShowMonitor(); + } + + private void refreshControklToolStripMenuItem_Click(object sender, EventArgs e) + { + this.loader1.RemakeRect(); + UpdateLogTextColor(); + + } + + private void button3_Click_1(object sender, EventArgs e) + { + if (Pub.isRunning) + { + Pub.popup.setMessage("동작중에는 사용 불가"); + return; + } + if (Pub.sm.Step == StateMachine.eSMStep.PAUSE) + { + Util.MsgI("현재 중단 상태입니다.\n중단 메세지를 확인 하시고 RESET을 누른 후 다시 시도하세요"); + return; + } + + + } + + + private void normalToolStripMenuItem_Click(object sender, EventArgs e) + { + loader1.Scean = UIControl.Loader.eScean.Nomal; + } + + private void motorHomeToolStripMenuItem_Click(object sender, EventArgs e) + { + loader1.Scean = UIControl.Loader.eScean.MotHome; + } + + void UpdateUnloderInfo() + { + + } + + private void toolStripMenuItem6_Click_1(object sender, EventArgs e) + { + var menu = sender as ToolStripMenuItem; + var port = ushort.Parse(menu.Text); + } + + + private void btJobEnd_Click(object sender, EventArgs e) + { + + } + + private void testToolStripMenuItem_Click(object sender, EventArgs e) + { + //var newdr = new Class.JobData(0); + //newdr.JobStart = Pub.Result.JobStartTime; + //newdr.JobEnd = Pub.Result.JobEndTime; + //newdr.No = Pub.Result.JObHistory.Count + 1; + //newdr.error = Class.JobData.ErrorCode.None; + //newdr.Message = "임시데이터"; + //newdr.VisionData = new Class.VisionData(); + //Pub.Result.JObHistory.Add(newdr); + } + + + void loader1_IConClick(object sender, UIControl.Loader.IconClickEventargs e) + { + //throw new NotImplementedException(); + Pub.log.Add("Loader Icon Click : " + e.item.Tag.ToString()); + if (e.item.Tag == "air") + { + var buttonOk = new CMenuButton("ON", "1"); + var buttonNo = new CMenuButton("OFF", "0"); + var newmenu = new CMenu("AIR 공급 상태를 변경 합니다", "AIR CONTROL", "air", eMsgIcon.Error, buttonOk, buttonNo) + { + BorderColor = Color.Gray, + }; + loader1.AddMenu(newmenu); + } + + else if (e.item.Tag == "emg") + { + btMReset.PerformClick(); + } + + else if (e.item.Tag == "debug") + { + Pub.flag.set(eFlag.DEBUG, !Pub.flag.get(eFlag.DEBUG), ""); + ShowDebugMenu(); + } + } + + private void Loader1_ButtonClick(object sender, UIControl.Loader.MenuItemClickEventargs e) + { + //버튼이 눌렸으므로 해당 메뉴는 소거해준다 + Pub.log.Add("Menu Button Click : " + e.item.Tag); + if (e.item.menutag == null) + { + //이곳은 메뉴가 아닌 일반 버튼이다 + if (e.item.Tag == "INPUTL") + { + + } + + return; + } + else + { + switch (e.item.menutag) + { + case "init": + if (e.item.Tag == "yes") + { + Pub.log.Add("User Click : initialize", false); + func_sw_initialize(); + } + break; + case "sample": + if (e.item.Tag == "1") + Pub.log.Add("ok 버튼 클릭"); + else + Pub.log.Add("no 버튼 클릭"); + break; + + case "air": + if (e.item.Tag == "1") + { + Util_DO.SetAIR(true); + Pub.log.Add("사용자 air on"); + } + else + { + Util_DO.SetAIR(false); + Pub.log.Add("사용자 air off"); + } + break; + } + + } + + //마지막메뉴를 제거한다 + loader1.DelMenu(); + } + + private void sampleToolStripMenuItem_Click(object sender, EventArgs e) + { + var buttonOk = new CMenuButton("OK", "1"); + var buttonNo = new CMenuButton("CANCLE", "0"); + var newmenu = new CMenu("body str", "title", "sample", eMsgIcon.Error, buttonOk, buttonNo) + { + BorderColor = Color.Gray + }; + loader1.AddMenu(newmenu); + } + + private void debugModeToolStripMenuItem_Click(object sender, EventArgs e) + { + this.loader1.arDebugMode = !this.loader1.arDebugMode; + this.loader1.Invalidate(); + + } + + private void lvJOB_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e) + { + + + e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(26, 26, 26)), e.Bounds); + e.Graphics.DrawRect(e.Bounds, Color.FromArgb(64, 64, 64), 1); + e.Graphics.DrawString(e.Header.Text, e.Font, new SolidBrush(Color.FromArgb(200, 200, 200)), e.Bounds, new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }); + + } + + private void lvJOB_DrawItem(object sender, DrawListViewItemEventArgs e) + { + e.DrawDefault = true; + } + + private void lvJOB_DrawSubItem(object sender, DrawListViewSubItemEventArgs e) + { + e.DrawDefault = true; + } + + private void addJobItemToolStripMenuItem_Click(object sender, EventArgs e) + { + //Pub.Result.JObHistory.Add(new Class.JobData + //{ + // JobEnd = DateTime.Now, + // JobStart = DateTime.Now, + // VisionData = new Class.VisionData + // { + // VLOT = "LOT", + // RID = "rid", + // SID = "sid", + // FileNameL = string.Empty, + // FileNameU = string.Empty, + // Angle = 10, + // Complete = true, + // MANU = "manu", + // MFGDATE = "1982-11", + // QTY = "998", + // Ready = false, + // STime = DateTime.Now, + // ETime = DateTime.Now, + // GTime = DateTime.Now + // } + //}); + } + + + private void countToolStripMenuItem_Click(object sender, EventArgs e) + { + var f = new Dialog.fDebug(); + f.TopMost = true; + f.Show(); + } + [DllImport("user32")] + public static extern Boolean ShowWindow(IntPtr hWnd, Int32 nCmdShow); + [DllImport("user32.dll")] + private static extern int SetActiveWindow(int hwnd); + + [DllImport("user32.dll")] + private static extern bool SetForegroundWindow(IntPtr hWnd); + + [DllImport("user32.dll")] + private static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow); + private void button5_Click_1(object sender, EventArgs e) + { + + var path = @"D:\Amkor\ReelMInput\update.exe"; + var prc = Util.CheckExistProcess("ReelMInput"); + if (prc == null) + { + Util.RunProcess(path); + } + else + { + SetForegroundWindow(prc.MainWindowHandle); + } + } + + #region "System Parameter" + + #region "Motion Parameter" + private void axis0ToolStripMenuItem_Click(object sender, EventArgs e) + { + Pub.mot.ShowParameter(0); + } + + private void axis1ToolStripMenuItem_Click(object sender, EventArgs e) + { + Pub.mot.ShowParameter(1); + } + + private void axis2ToolStripMenuItem_Click(object sender, EventArgs e) + { + Pub.mot.ShowParameter(2); + } + + private void axis3ToolStripMenuItem_Click(object sender, EventArgs e) + { + + } + + private void axis4ToolStripMenuItem_Click(object sender, EventArgs e) + { + + } + #endregion + + private void clearToolStripMenuItem1_Click(object sender, EventArgs e) + { + loader1.ClearMenu(); + } + + #endregion + + private void processListToolStripMenuItem_Click(object sender, EventArgs e) + { + Pub.log.Add("process list"); + foreach (var prc in System.Diagnostics.Process.GetProcesses()) + { + if (prc.ProcessName.StartsWith("svchost")) continue; + if (prc.ProcessName.Contains(".host")) continue; + Pub.log.Add(prc.ProcessName); + } + } + + Boolean camliveBusy = false; + + Stopwatch watFps = new Stopwatch(); + Stopwatch watFps0 = new Stopwatch(); + Stopwatch watFps1 = new Stopwatch(); + Stopwatch watFps2 = new Stopwatch(); + + Control GetContextOwnerControl(object sender) + { + var menuitem = sender as ToolStripMenuItem; + if (menuitem != null) + { + var menu = menuitem.Owner as ContextMenuStrip; + if (menu != null) + { + return menu.SourceControl; + } + } + return null; + } + + private void arLabel3_Click(object sender, EventArgs e) + { + + } + + private void 작업선택화면ToolStripMenuItem_Click(object sender, EventArgs e) + { + var f = new Dialog.fDataBufferSIDRef(); + f.TopMost = true; + f.Show(); + } + + private void button3_Click_2(object sender, EventArgs e) + { + if (Pub.flag.get(eFlag.INIT_MOTIO) == false) + { + Util.MsgE("모션이 초기화 되지 않았습니다\n잠시 후 다시 시도하세요"); + return; + } + if (Pub.isRunning == true) + { + Util.MsgE(Lang.CAN_NOT_RUN_AUTOMODE); + return; + } + + //if (mDebug.Visible == false && Pub.dio.IsInit == false) + //{ + // Pub.popup.setMessage("DIGITAL IN/OUT MODULE\n" + + // "오류로 인해 해당 장치가 초기화되지 않았습니다\n" + + // "Ezconfig AXT 프로그램으로 H/W를 점검하세요"); + // return; + //} + + var f = new Dialog.QuickControl(); + f.StartPosition = FormStartPosition.CenterScreen; + f.Show(); + } + private void listView1_DrawItem(object sender, DrawListViewItemEventArgs e) + { + + } + + private void pictureBox1_Click(object sender, EventArgs e) + { + + if (Pub.flag.get(eFlag.DEBUG) == true) + { + Pub.flag.set(eFlag.DEBUG, false, "개발중"); + } + else + { + Pub.flag.set(eFlag.DEBUG, true, "개발중"); + } + + ShowDebugMenu(); + + } + + private void cmCam_Opening(object sender, CancelEventArgs e) + { + if (Pub.sm.Step < StateMachine.eSMStep.IDLE) + cmCam.Enabled = false; + else + cmCam.Enabled = true; + } + + + + private void toolStripMenuItem2_Click(object sender, EventArgs e) + { + + var selectContorol = GetContextOwnerControl(sender); + if (selectContorol == null) return; + var selectedtag = selectContorol.Tag.ToString(); + var vidx = int.Parse(selectedtag); + + SaveFileDialog sd = new SaveFileDialog(); + sd.Filter = "bitmap|*.bmp"; + sd.FileName = $"vision{vidx}.bmp"; + + + if (sd.ShowDialog() == DialogResult.OK) + { + if (vidx == 1) + { + SaveImage(sd.FileName); + } + else + { + if (this.OrgImage[vidx].Ptr == IntPtr.Zero) + { + Util.MsgE("이미지가 없습니다"); + return; + } + this.OrgBitmap[vidx].Save(sd.FileName); + } + + } + } + + private void saveImage2ToolStripMenuItem_Click(object sender, EventArgs e) + { + SaveFileDialog sd = new SaveFileDialog(); + sd.Filter = "bitmap|*.bmp"; + sd.FileName = "vision1.bmp"; + if (sd.ShowDialog() == DialogResult.OK) + { + //for (int i = 0; i < 3; i++) + this.OrgBitmap[1].Save(sd.FileName); + } + } + + private void saveImage3ToolStripMenuItem_Click(object sender, EventArgs e) + { + SaveFileDialog sd = new SaveFileDialog(); + sd.Filter = "bitmap|*.bmp"; + sd.FileName = "vision2.bmp"; + if (sd.ShowDialog() == DialogResult.OK) + { + //for (int i = 0; i < 3; i++) + this.OrgBitmap[2].Save(sd.FileName); + } + } + + private void sbVisTitle0_Click(object sender, EventArgs e) + { + iv0.ZoomFit(); + iv0.Invalidate(); + } + + private void sbVisTitle1_Click(object sender, EventArgs e) + { + //키엔스로부터 다운로드 받아서 처리해야함 + var tempfile = System.IO.Path.Combine(Util.CurrentPath, "Temp", "Keyence", DateTime.Now.ToString("HHmmss_fff") + ".bmp"); + var fi = new System.IO.FileInfo(tempfile); + if (fi.Directory.Exists == false) fi.Directory.Create(); + this.iv1Keyence.DownloadRecentImage(fi.FullName); + + } + + private void sbVisTitle2_Click(object sender, EventArgs e) + { + iv2.ZoomFit(); + iv2.Invalidate(); + } + + //private void arLabel1_Click(object sender, EventArgs e) + //{ + //} + + private void readBarcodeToolStripMenuItem_Click(object sender, EventArgs e) + { + //var selectContorol = GetContextOwnerControl(sender); + //if (selectContorol == null) return; + //var selectedtag = selectContorol.Tag.ToString(); + //var vidx = int.Parse(selectedtag); + + ////선택된 아엩ㅇ믈 찾아야한다 + //if (Pub.sm.Step == StateMachine.eSMStep.IDLE || Pub.flag.get(eFlag.MOVE_PICKER) || Pub.sm.Step == StateMachine.eSMStep.HOME) + //{ + // string message; + // var data = Util_Vision.DetectQR_eVision(this.OrgImage[vidx], out message); + + // if (message.isEmpty() == false) + // Pub.log.AddAT($"Vision {vidx} Message={message}"); + + // if (vidx == 0) { Util_Vision.DisplayQRData(data, Rectangle.Empty, iv0); } + // if (vidx == 1) { Util_Vision.DisplayQRData(data, Rectangle.Empty, null); } + // if (vidx == 2) { Util_Vision.DisplayQRData(data, Rectangle.Empty, iv2); } + //} + //else Util.MsgE("대기 상태일때 바코드 읽기가 가능합니다"); + } + + private void livetaskToolStripMenuItem_Click(object sender, EventArgs e) + { + SetVisionTask(); + //Pub.flag.set(eFlag.LIVIEWVIEW0, true, ""); + } + + private void zoomFitToolStripMenuItem_Click(object sender, EventArgs e) + { + var selectContorol = GetContextOwnerControl(sender); + if (selectContorol == null) return; + var selectedtag = selectContorol.Tag.ToString(); + var vidx = int.Parse(selectedtag); + + if (vidx == 0) iv0.ZoomFit(); + // if (vidx == 1) iv1.ZoomFit(); + if (vidx == 2) iv2.ZoomFit(); + } + + private void keyenceTrigOnToolStripMenuItem_Click(object sender, EventArgs e) + { + Trigger(true); + } + + private void keyenceTrigOffToolStripMenuItem_Click(object sender, EventArgs e) + { + Trigger(false); + } + + private void keyenceSaveImageToolStripMenuItem_Click(object sender, EventArgs e) + { + var fn = System.IO.Path.Combine(Util.CurrentPath, "Images", "keyence.bmp"); + SaveImage(fn); + } + + private void arLabel29_Click(object sender, EventArgs e) + { + + } + + private void arLabel20_Click(object sender, EventArgs e) + { + + } + + private void button3_Click_3(object sender, EventArgs e) + { + if (Pub.sm.Step == StateMachine.eSMStep.RUN) + { + Pub.log.AddE("동작 중에는 사용할 수 없습니다"); + return; + } + Util_DO.SetPortMotor(1, eMotDir.CCW, true, "하강"); + } + + private void button4_Click_1(object sender, EventArgs e) + { + //이미지저장한다. + if (Pub.sm.Step != StateMachine.eSMStep.RUN && Pub.sm.Step != StateMachine.eSMStep.PAUSE && Pub.sm.Step != StateMachine.eSMStep.WAITSTART) + { + var tempfil = System.IO.Path.Combine(Util.CurrentPath, "Temp", "keyence.bmp"); + var fi = new System.IO.FileInfo(tempfil); + if (fi.Directory.Exists == false) fi.Directory.Create(); + this.iv1Keyence.DownloadRecentImage(fi.FullName); + Pub.Result.ItemData[1].VisionData.SetImage(new Image(fi.FullName)); + } + var f = new Dialog.fLoaderInfo(Pub.Result.ItemData[1].VisionData.bcdMessage); + f.ShowDialog(); + } + + private void lbSize1_Click(object sender, EventArgs e) + { + //reset 기능 + Pub.Result.ItemData[1].VisionData.Clear("USER UI CLICK", true); + Pub.flag.set(eFlag.END_VISION1, false, "USER UI CLICK"); + } + + bool liveviewprocesson = false; + private void liveViewProcessOnOffToolStripMenuItem_Click(object sender, EventArgs e) + { + liveviewprocesson = !liveviewprocesson; + } + + private void lbLock2_Click(object sender, EventArgs e) + { + var ctl = sender as arCtl.arLabel; + var index = int.Parse(ctl.Tag.ToString()); + // bool cur = false; + + if (Pub.isRunning) + { + Util.MsgE("동작중에는 카트교환을 할 수 없습니다\n'STOP' 버튼을 누른 후 다시 시도하세요"); + return; + } + + bool curMag = Util_DO.GetIOOutput(eDOName.CART_MAG0); + bool curLim = Util_DO.GetIOInput(eDIName.PORT0_LIM_DN); + if (index == 1) + { + curMag = Util_DO.GetIOOutput(eDOName.CART_MAG1); + curLim = Util_DO.GetIOInput(eDIName.PORT1_LIM_DN); + } + else if (index == 2) + { + curMag = Util_DO.GetIOOutput(eDOName.CART_MAG2); + curLim = Util_DO.GetIOInput(eDIName.PORT2_LIM_DN); + } + + // cur = Util_DO.GetIOOutput(eDOName.CART_MAG0); + if (curMag == false) + { + Pub.log.Add($"MAGNET{index} ON by USER"); + Util_DO.SetPortMagnet(index, true); //켜는건 바로 할 수 있게 한다 + } + else + { + if (curLim == false) + { + Util.MsgE("포트를 모두 내린 후 다시 시도하세요"); + Util_DO.SetPortMotor(index, eMotDir.CCW, true, "카트교환"); //포트를 자동으로 내려준다 + return; + } + Util_DO.SetPortMagnet(index, false); + Pub.log.Add($"MAGNET{index} OFF by USER"); + } + } + + private void arLabel75_Click(object sender, EventArgs e) + { + //왼쪽검증취소 + if (Pub.sm.Step <= StateMachine.eSMStep.IDLE) + { + Util.MsgE("동작 중에만 처리 가능합니다"); + return; + } + if (Pub.flag.get(eFlag.RDY_VISION0) == false) + { + Util.MsgE("비젼 확인 중이 아닙니다"); + return; + } + Pub.Result.ItemData[0].VisionData.ValidSkipbyUser = true; + Pub.log.AddE("사용자가 왼쪽 QR검증 기능을 SKIP했습니다"); + } + + + private void arLabel73_Click(object sender, EventArgs e) + { + //오른쪽검증취소 + if (Pub.sm.Step <= StateMachine.eSMStep.IDLE) + { + Util.MsgE("동작 중에만 처리 가능합니다"); + return; + } + if (Pub.flag.get(eFlag.RDY_VISION0) == false) + { + Util.MsgE("비젼 확인 중이 아닙니다"); + return; + } + Pub.Result.ItemData[2].VisionData.ValidSkipbyUser = true; + Pub.log.AddE("사용자가 오른쪽 QR검증 기능을 SKIP했습니다"); + } + + private void arLabel74_Click(object sender, EventArgs e) + { + //왼쪽재출력 + if (Pub.sm.Step == StateMachine.eSMStep.PAUSE) + { + Util.MsgE("일시중지 상태입니다 'RESET'키를 누른 후 다시 시도하세요"); + return; + } + if (Pub.sm.Step != StateMachine.eSMStep.WAITSTART) + { + Util.MsgE("작업시작대기 상태일때에만 사용이 가능합니다"); + return; + } + Pub.flag.set(eFlag.OK_PRINTL, false, "MOY_PY"); + Pub.flag.set(eFlag.RUN_PRINTL, true, "MOY_PY"); + Pub.flag.set(eFlag.SET_DATA_PORT0, true, "MOT_PX"); + Pub.flag.set(eFlag.PORTL_ITEMON, true, "item_pickoff"); //포트에 놓았다 + loader1.arVar_Port[0].AlignReset(); + } + + private void arLabel77_Click(object sender, EventArgs e) + { + //우측재출력 + } + + private void arDatagridView1_DataError(object sender, DataGridViewDataErrorEventArgs e) + { + // + } + + private void arLabel6_Click(object sender, EventArgs e) + { + //포트내림 + if (Pub.isRunning) + { + Util.MsgE("동작중에는 사용할 수 없습니다"); + return; + } + var index = int.Parse((sender as arCtl.arLabel).Tag.ToString()); + if (Util_DO.GetPortMotorRun(index) == true) Util_DO.SetPortMotor(index, eMotDir.CW, false, "UI"); + else + { + if (Util.MsgQ("포트를 내릴까요?") == DialogResult.Yes) + Util_DO.SetPortMotor(index, eMotDir.CCW, true, "UI포트내림"); + } + } + + private void arLabel11_Click_1(object sender, EventArgs e) + { + //포트올림 + if (Pub.isRunning) + { + Util.MsgE("동작중에는 사용할 수 없습니다"); + return; + } + var index = int.Parse((sender as arCtl.arLabel).Tag.ToString()); + if (Util_DO.GetPortMotorRun(index) == true) Util_DO.SetPortMotor(index, eMotDir.CCW, false, "UI"); + else + { + if (Util.MsgQ("포트를 올릴까요?") == DialogResult.Yes) + Util_DO.SetPortMotor(index, eMotDir.CW, true, "UI"); + } + } + + private void arLabel64_Click(object sender, EventArgs e) + { + menu_logform(); + } + + private void 새로고침ToolStripMenuItem_Click(object sender, EventArgs e) + { + RefreshList(); + } + + private void toolStripButton1_Click_1(object sender, EventArgs e) + { + RefreshList(); + } + + private void jObEndToolStripMenuItem_Click(object sender, EventArgs e) + { + if (Pub.flag.get(eFlag.INIT_MOTIO) == false) + { + Util.MsgE("모션이 초기화 되지 않았습니다\n잠시 후 다시 시도하세요"); + return; + } + ShowSummaryForm(); + } + + private void button3_Click_4(object sender, EventArgs e) + { + if (Pub.isRunning) + { + Util.MsgE("동작중에는 사용할 수 없습니다"); + return; + } + + if (Pub.flag.get(eFlag.MOVE_PICKER)) + { + Util.MsgE("해당 창이 열려 있습니다"); + } + else + { + var f = new Dialog.fPickerMove(); + f.ShowDialog(); + + //홈이 안잡혀있고, 센서가 중앙에 있다면 초기화를 묻는다 + if (Pub.mot.hasHomeSetOff == true && Util_DO.GetIOInput(eDIName.PICKER_SAFE)) + { + btMReset.PerformClick(); + } + + RefreshList(); + } + } + + private void jOBStartToolStripMenuItem_Click(object sender, EventArgs e) + { + var f = new Dialog.fSelectJob(); + f.ShowDialog(); + } + + private void panel41_Paint(object sender, PaintEventArgs e) + { + + } + + private void panel42_Paint(object sender, PaintEventArgs e) + { + + } + + private void visionTrigger0ToolStripMenuItem_Click(object sender, EventArgs e) + { + + //모든 큐를 제거한다. + lock (BarcodeQueL) + { + while (BarcodeQueL.IsEmpty == false) + BarcodeQueL.TryDequeue(out string msg); + Pub.log.Add($"[0]큐제거 완료"); + } + + + if (Pub.Result == null || Pub.Result.ItemData[0] == null) + { + Pub.flag.set(eFlag.RDY_VISION0, true, "USER"); + Pub.flag.set(eFlag.PRC_VISION0, false, "user"); + WS_Send(0, Pub.wsL, Guid.NewGuid().ToString(), "BCDIN"); + } + else + { + Pub.flag.set(eFlag.RDY_VISION0, true, "USER"); + Pub.flag.set(eFlag.PRC_VISION2, false, "user"); + WS_Send(0, Pub.wsL, Pub.Result.ItemData[0].guid, "BCDIN"); + } + + + } + + private void visionTrigger1ToolStripMenuItem_Click(object sender, EventArgs e) + { + + //모든 큐를 제거한다. + lock (BarcodeQueR) + { + while (BarcodeQueR.IsEmpty == false) + BarcodeQueR.TryDequeue(out string msg); + Pub.log.Add($"[1]큐제거 완료"); + } + + + if (Pub.Result == null || Pub.Result.ItemData[2] == null) + { + Pub.flag.set(eFlag.RDY_VISION2, true, "USER"); + WS_Send(1, Pub.wsR, Guid.NewGuid().ToString(), "BCDIN"); + } + + else + { + Pub.flag.set(eFlag.RDY_VISION2, true, "USER"); + WS_Send(1, Pub.wsR, Pub.Result.ItemData[2].guid, "BCDIN"); + } + + } + public enum CmdShow + { + Hide, + Normal, + Minimized, + Maximized, + NoActivate, + Show, + Minimize, + MinimizeNoActive, + NA, + Restore, + Default, + ForceMinimize + } + private void button1_Click_1(object sender, EventArgs e) + { + if (Pub.wsL != null && Pub.wsL.Connected) + { + Util.MsgI("현재 프로그램이 연결되어 있습니다"); + return; + } + + //카메라 l실행 + if (Pub.setting.CameraLFile.isEmpty() == true) + { + Util.MsgE("바코드 프로그램 파일명이 지정되지 않았습니다", true); + return; + } + + var fi = new System.IO.FileInfo(Pub.setting.CameraLFile); + if (fi.Exists == false) + { + Util.MsgE("비젼 프로그램 파일이 존재하지 않습니다\n" + fi.FullName); + return; + } + + //var prc = null;// Util.CheckExistProcess("CrevisQRCode"); + //if (prc == null) + { + //Util.MsgI("바코드 프로그램을 새로 실행 했습니다\n잠시만 기다리면 실행 됩니다"); + Util.RunProcess(fi.FullName); + } + //else + //{ + + // SetActiveWindow((int)prc.MainWindowHandle); + // SetForegroundWindow(prc.MainWindowHandle); + // ShowWindow(prc.MainWindowHandle, (int)CmdShow.Normal); + //} + } + + private void button2_Click_1(object sender, EventArgs e) + { + if (Pub.wsR != null && Pub.wsR.Connected) + { + Util.MsgI("현재 프로그램이 연결되어 있습니다"); + return; + } + + + //카메라 l실행 + if (Pub.setting.CameraRFile.isEmpty() == true) + { + Util.MsgE("바코드 프로그램 파일명이 지정되지 않았습니다", true); + return; + } + + var fi = new System.IO.FileInfo(Pub.setting.CameraRFile); + if (fi.Exists == false) + { + Util.MsgE("비젼 프로그램 파일이 존재하지 않습니다\n" + fi.FullName); + return; + } + + //var prc = null;// Util.CheckExistProcess("CrevisQRCode"); + //if (prc == null) + { + //Util.MsgI("바코드 프로그램을 새로 실행 했습니다\n잠시만 기다리면 실행 됩니다"); + Util.RunProcess(fi.FullName); + } + //else + //{ + + // SetActiveWindow((int)prc.MainWindowHandle); + // SetForegroundWindow(prc.MainWindowHandle); + // ShowWindow(prc.MainWindowHandle, (int)CmdShow.Normal); + //} + } + + private void visionProcess0ToolStripMenuItem_Click(object sender, EventArgs e) + { + WS_Send(0, Pub.wsL, Guid.NewGuid().ToString(), "STATUS"); + } + + private void visionProcess1ToolStripMenuItem_Click(object sender, EventArgs e) + { + WS_Send(1, Pub.wsR, Guid.NewGuid().ToString(), "STATUS"); + } + + private void customerRuleToolStripMenuItem_Click(object sender, EventArgs e) + { + + + } + } + + +} \ No newline at end of file diff --git a/Handler/Project_form2/fMain.resx b/Handler/Project_form2/fMain.resx new file mode 100644 index 0000000..8207620 --- /dev/null +++ b/Handler/Project_form2/fMain.resx @@ -0,0 +1,715 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 124, 17 + + + 327, 17 + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + 815, 17 + + + 715, 17 + + + 649, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 + wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0 + v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg + UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA + Iu/O/9T+11gVGSSd+C+b9vW/bvA83AYYZt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPu + lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w + 5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f + Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+ + 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 + n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI + N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f + oAc0QjgAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// + h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B + twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA + kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG + WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9 + 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAcQgAAWEIAAIpC + AADYQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAAAkQwAAWEIAAIpC + AADYQQs= + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 + dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABlTeXN0ZW0uRHJh + d2luZy5SZWN0YW5nbGVGBAAAAAF4AXkFd2lkdGgGaGVpZ2h0AAAAAAsLCwsCAAAAAICQQwAAWEIAAIpC + AADYQQs= + + + + 556, 17 + + + 442, 17 + + + 221, 17 + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAA2xJREFUWEfV + l01IVFEUx1+fFEQQVASVRBFREYVGVKvCaldEYIsQWgQRmNgyClxkRQTZok0fRknYx1BoQaugiQKZRp0Z + x2bbh5HtjMJIzZp+53oc38cd51Yk9Ic/955zz/mfM/e9d98b779GZ2fnDKGak4eurq7V8AnFvwtlLj5d + /rdIJBJLKNoHX8OMUuZ9sqZh/w7t7e2z8/n8VDULEJ+sqfl7oPsGeFBNK6QAMbs6Ojou6vbLL+9VZvQy + NLK+09agH8QcIueUmuaa3sd5Rc0IWK8g4RXMO7IHlmt6BKxdlZpqmgLXaeCumgEQXAY/QVuhidifTCaX + qkwArN2DTWqaLTmDI6FmAPjPQVsBF55VmQDwv4QNahrHXvgNRp5pfK3QJu7CVpUpAJ+cHYP86D3q8rzu + 7u6FOOV53q2uAvC3QJu4C1tUpgApjH84lUotUNco5B6ggWfcwVPUZUCw7E4ajkBbkWIcQu+wyhiIttRg + 7ba6xsENs5aFr7BeXV4ul5uJPV/nc+i6kkZP4mtGSB7FBHzB/CHjDcbTjFXErIrH49ONiA+s1cMBdNao + KwgE9hMgx2sb8xrGz1B+zTsYg3UkbwlvnzTKD1iEfz151TRwntjHMMf8FuMBxkeMw7BK0+wgcJMGy26E + tzXMfjgQ8tkoMW00uFHLlAYJF3wCf0W5NCrrDpIu2cT+hGg1qqwdmUxmMdu+3E8SXR6/H0rbmp8tYX2p + aYpj7LAkuLJOaVsrSe6JSi8Wi03jDt7ANlX4SWNyJ1sTx0hctdC25qdo+bWFUlNqm12wgcTtYaEwpbjQ + tuYnDWxTWXdwkMwieewcsNKxgS+ipbLuIFFewymfUISODYhGmcqWBtdmKwlx+BPKCSijTdi1gQ9QNJ4S + u1nL2EHACQJHuGZyfK5T32XmNmGXBm6KBmM5cXcY5YV2XHwRUPQoi4ME7lOXAV+6c/G/gZECJRrozWaz + 81TGAF8VHIJH1DUKebnglLO/Vl0B0JwcTG9hoMgEDbxPp9MrNT0A4o+xLu8G85Y1wKiF8q1f9F8OgstI + ThJTKFSkgefSsKZFoK/4j+TVqMs00IRj/Cu1COQdj7h8UmelWKiBHpmHP2hsQOMB8dfUNA00w8KHiAuI + XyHnuVDm6naC1JKaanrmONbppEB2abJrFoHn/QK21s0ynEiLrwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAA2xJREFUWEfV + l01IVFEUx1+fFEQQVASVRBFREYVGVKvCaldEYIsQWgQRmNgyClxkRQTZok0fRknYx1BoQaugiQKZRp0Z + x2bbh5HtjMJIzZp+53oc38cd51Yk9Ic/955zz/mfM/e9d98b779GZ2fnDKGak4eurq7V8AnFvwtlLj5d + /rdIJBJLKNoHX8OMUuZ9sqZh/w7t7e2z8/n8VDULEJ+sqfl7oPsGeFBNK6QAMbs6Ojou6vbLL+9VZvQy + NLK+09agH8QcIueUmuaa3sd5Rc0IWK8g4RXMO7IHlmt6BKxdlZpqmgLXaeCumgEQXAY/QVuhidifTCaX + qkwArN2DTWqaLTmDI6FmAPjPQVsBF55VmQDwv4QNahrHXvgNRp5pfK3QJu7CVpUpAJ+cHYP86D3q8rzu + 7u6FOOV53q2uAvC3QJu4C1tUpgApjH84lUotUNco5B6ggWfcwVPUZUCw7E4ajkBbkWIcQu+wyhiIttRg + 7ba6xsENs5aFr7BeXV4ul5uJPV/nc+i6kkZP4mtGSB7FBHzB/CHjDcbTjFXErIrH49ONiA+s1cMBdNao + KwgE9hMgx2sb8xrGz1B+zTsYg3UkbwlvnzTKD1iEfz151TRwntjHMMf8FuMBxkeMw7BK0+wgcJMGy26E + tzXMfjgQ8tkoMW00uFHLlAYJF3wCf0W5NCrrDpIu2cT+hGg1qqwdmUxmMdu+3E8SXR6/H0rbmp8tYX2p + aYpj7LAkuLJOaVsrSe6JSi8Wi03jDt7ANlX4SWNyJ1sTx0hctdC25qdo+bWFUlNqm12wgcTtYaEwpbjQ + tuYnDWxTWXdwkMwieewcsNKxgS+ipbLuIFFewymfUISODYhGmcqWBtdmKwlx+BPKCSijTdi1gQ9QNJ4S + u1nL2EHACQJHuGZyfK5T32XmNmGXBm6KBmM5cXcY5YV2XHwRUPQoi4ME7lOXAV+6c/G/gZECJRrozWaz + 81TGAF8VHIJH1DUKebnglLO/Vl0B0JwcTG9hoMgEDbxPp9MrNT0A4o+xLu8G85Y1wKiF8q1f9F8OgstI + ThJTKFSkgefSsKZFoK/4j+TVqMs00IRj/Cu1COQdj7h8UmelWKiBHpmHP2hsQOMB8dfUNA00w8KHiAuI + XyHnuVDm6naC1JKaanrmONbppEB2abJrFoHn/QK21s0ynEiLrwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAb9JREFUWEft + lr8vBEEUxxchEST8ARIkOo1KqFwpUQgKdFRKKoVG+AtUSirFSkiuVCk2m9zt7e7dJtcIkVxFcK4QCYld + 3517e9ZkHGLfRuEln8zsvLf7/e7M7A/tP8rlckehUFgCG03IUHnygYsfgeALfMuy5uiUZAMXf5bEPqOa + y+UG6bTkQiHUjCq4/CU2ZnOK5H9sICkedF1vUxnwgQuOgc6JYRg9soFbMBaOlUqlLs/z+jgJgqD1gwGs + yyIYQf8iGmOmBr2FyMCLaZqdaA/pOC1uIgMuzcYVHadFJTKw77puL9pwE8pFbGAJssKAbdtraDPxZErs + CANwMgnWpSQ70JwPDfjhY4H2IJ5MAyz7sNh4tAGL8WQKPIp3ATon9En+7kcpETD9ZnjjGjpbYFRVxMye + MIDODAysSMk0WBUGsBEGcLArJdlxHGdcGMBGaMF74ExVxMgr9l13wwAGalIBN+dCPAys/5CigBud5DUN + 0z+rKGAFN71J8uIp2JYLuMFNT5O8WIKsqoiTfD7fT/JiBipyATP3JF0PDNxJBdycknQ9sB7LGHySiri4 + xvRPkPR7INEu/7Vy0PgT/juhaW/ZS5SxdhC40QAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAABAlJREFUWEft + V91vFFUU3wiC6AMBY0xIgb13ltJAjBoJMSF+BYkPIgkJH/ogxo8QP6ha1MDandn7qAkxmsiDoYkhJoUA + LyQYQwj1BfkPeFAeBLozszWh0PJR0XbX3296ZvbOfnVteewvOdmZc37nzJk7555zNzOP/4uqyTxQctWT + ZaO3Bq56L3D1+77n7C6Z7FPVvc88KLT7D991NvlF/WPg6b8g1RYyFhb1scCo58Vt7ghNbh0Cn6l7UCcy + RF8JMztwaRHothX0Hyz5Ofx+UvL05tDNrS8Z3Y1P8Zzvqn2w/QzbvxZ/wnf1OxIuE+Zzj3WcVOg5X1iB + KkFR/zRSyDlibonQZLNI5KTlS8kP93Utwe8IpOIb/bLQm8P39BskivN44DnbxdQxUDOvw3dMYlQR08TX + kD6hNWK4oNeA8LcQbwVGbxBTCpfM+kVXD65aRuG1qFMI3ewLiDEhseIXap8AjHHBVXxPvSbqBqA+eoXX + MiCSXwXbKYvXlp9hMcUkbidRJwg81Y+l/J7fE1vycBKwqI5e7s0txvW35AidL/NHwklLiwSKzhEhTAX9 + arWoIwSuU7ACXIPcs+5Z+VeTe1d9Oe2jzya6tDQmwC4Gww0SsHXOizoB3vI7K0BbwQ5y6VPdmVnAXTFi + urUtowf00iiojcBke5IgrvOxqBP8abIPwdauC8ZyZVYt2TdqWxwExbdF1Oj9Ly7kG4WeOg6bXckXOBM4 + A3D9m6Xn5xikD30lzMxA8bwpASrXzMoVosbKrHhY9Cnhw4WSkSQaOPQVSoTQ1R9C/03588cfEVUN053K + OYTl3yuqCC0TwEOFgqaTe7oZx07A73dWxnqszluinhlRIbnOntDTX8F5MgmOZWcSfDg+z0VLf48FyxlA + XwmDFc6+EnPa9ZeWGDZdy+E8GgdpI8P1S09gS34aczjARF0Dt0b9dikXVqv4LTiMrIfMJANRUAvoDb+K + 7XrT4oShTwhpQTOhPRq3tV3AphP3eAqbEpsTryvkRkEFfBHopyJ7Uf0g6jRgbJ6Ap38XCka0+oi1wJ6A + Vv11zGFbjnSwkSP0BCjuEwkXJytRpwFjswROcaAIJQU87IOYx8Ek6gZwlMc8FPNpUTcCBDuBeKknOFKF + kkJH49iojYhxR2LdbXugASFJoO7wMMYDitA6Bj7FTvjekhhToat2iak50BxeIhES8I3wmxfnacExi4NF + 6C3BA010Mq6tYgXJfCbm9vALam0p3/Oo3PJo9jYC3JVAlElsp1+iHYGjN/k8mHJ2IMH9nKLg2IfScXyG + HRJudpBj+ZAVtCNhwTFBCTN3yGlpEHLTflCdlCEDZZN9VtzuPzjrOQlZVFh2/C1T72JLvlp29RP82ya0 + eXSITOY/N4AkP6QQbUkAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAkNJREFUWEft + lU1LVFEYx6+F0KKXhRKR9QVSVxLoQqJoUdjCiAgl3CpKi/AjiGG0KVfRIiVoM34DC2Yzi7nz1sxiKkjQ + xahEazVfp98znYnT47nTmRgHIg/8OM88/3PO87/n3HsmOG7/TIvH46cymcxsNptN0Ue1EJ5Bq5nWuMai + c1D2ZNZM82+xWOxkOp3ugpsaFhxTBf7EHjv10LUWdEktU/Zny+VyfUxaUYscJcsY7K0UTyQSZ0isqQHN + oFQsFk8Hsi0OUThw5BqK1A7krBzCY/pWtDdaM+ybr+GtYOJ9o3kjtZ0GyPXI8WBkVGl78DyVSl0QPQzD + NkFiyaG9MGPsOZFEGoCP5J/Sf7NyG+Ru0Z+DJ7Bq8kIJs9PJZPIs/W1+b1haJLUMHIJxD3jKy8SftWbx + CROX6IdV3kk9BhbL5fIJxspZu3SbpIxlJ947tN/wNsBi9wSX5oI179Lf13mNtwFoh3mViwSzrwuFwnmX + ZuNrYJctbfHZ0iqs+U7mEO9qzcZ7B+TGol/Q+RrEzA3r0n7hbYAx/fSPdD4Kxk/wxVxzaTb1GHgp3zjx + V605WDdP/0rlD+FtAHZ4ok7G3iDeUprNJlyHbtgxuUjqMSB84W/7Ikau8kKmHXrIWj0yhnhJaU7qNSCU + YMDc/Z34GBIoekVyrHUH3b6ia/I3Bqp8gCmKjwgSQ95o3lQMEAxqoYkMBvl8voNgWwnN4Lu8L3J0cgwT + JLz/xxuA3JDjleLVRkI+nUmYOWKkRrcpe9z++xYEPwDT4GdbjzYebAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAP5JREFUWEft + lj0KwkAQhVNY6n0Uj6BtagvxEFqJvYWnEL1EmiBKfrrcIK3gDfSNTDZk2WQj65IQ9sFHZObtzCMkQc/J + qTdKkmQax/G1gQs4gVUYhhM+JkQ16rGHvKoZX2gXHyuFhg/eLXlFUbTmoxR+QzXJ04TPR0tRUTJpQYg9 + rge53oL/BDDAeoAjoHl1M60HEAsUvUpfiIqSyYTOA+gYeAC8njdciw+PyjP8Z8AFcAG6DdCH11BHDwPg + ts0VRiukaTrjtaWCIBih+ZDNFrjTLl5bVZZlY/y/24EzjMVDVMcTFEPpt8oj4Jlb2sHrzISBSwzMmQWX + nZx+lOd9AOxqphdZ7gKgAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAlxJREFUWEfV + l81u00AUhcOrIMGqgg0sYEMFe1QE5QlQd63oug/QbstT0B2UVgEKgW1+7GxoWSAeghKJSgGF70bHlpnc + cYbW5edIn6LcuefesT0e263/Ur1e7/pgMHiZZdmB0e/327Cg4fMXzTdhUoUJbGj4/MVRP3cm8FTDzYiC + DyjcodkVhUoR/1RtLg41XMq8xDvUuq9QmjA+xDhW4RP+P55MJhdsjOt/i9h3jVUZ53l+w3Isl/9r8K0Y + g2UbmyubrQxhg3fwIYh55NR448THSWeCpF3H3Ai2dtQmLiZwkeTj0NwAo263e1lt6sVMV5wCZ+WRys+X + LaLIdTwV1GqrdJq0ij+GhQJM2yIDL2cKZ7Sn0mnidrrjFRJfOKK7Si1FfAmia8e2b6XOSnv7lu6Az/Cj + MIZ4zQtxpPc8j7C9wzawZ7DJQV6TbTr7ffBMv0DzvixRkVd7OSrsyzK99dpOgse2LFGR8yTwuFhPWf6B + CRDYCxMiZLJERc4w8MTYk2V6BhZgg+AOHIH3LChYkm1G1LDniOcxrOYh7Fgv6ynbrFjNtyvGkGNb7Uot + peZfg9yS2tswVOJGlINdb6P2tP/2RmQTwPTeK3ZKXltNlZ8vTue6U+SsrKp8vWxxkFy8yTTJCbvfVbWJ + i8ROYGySt2oTl1bzzG3ImjjgN+mVDF4FMSPtlcxE8rIZZBzRfEVDNsFFYt7DasytdlNpxUvNqBiDtJfS + QjZb2B0Oh5cUKkUxe2KGEzjScCnzWo3kI08VzV4EzW1vb/bDpE403HIm8Oc+zfQC8/c+TptTq/UT/J7v + URSJG9cAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAsRJREFUWEft + lz9TU0EUxdOovWKv9Golo59AsRMr0ELQRjsHO4n4CWD8A/oNUD9IZpKQxCYVIg1gKTYChejvvDmbbN57 + IS8gY8OZOZPHuefe3b27+xJKpzgKqtXqhdXV1Sv1ev0OHNezNIdPBgw0Cl8xWAv+6cNmo9GYZzKXnXZ8 + NJvNixR+A/ejgQZR3tdwxGWOBlZzgyLbLhq4g77C5xyfD0U/S9uxJ3Cbro253HAg8R4FdqNiX9Em+Txj + SwaKwSm4DkPeLpObsKUYSNDKO4Mz8Lt2u33W4YGQl7ylkA93C3fCe/49JJP4zKGhQf5sqAO3Ct0UjDpw + SRKdeGs5QZECaQ91lkM9FrNoOR8YRjGG074et53O3ETTIXtsKQPF5JHXUmltbe0c2jeomvuHXlEmoHse + ZjtpWYVHYDjhv2FmEtIck0fezhWkkw+siy8tZ0Hwi0076UPHhGbQwwAH8KlDebEnDiXgb92OH443LPdC + e2eD9n7Fcg+IxatMOpGn2d4D9E/2HFQqlfOWu2Dfrtmg9r+wnAHx9IADBxeIzdmnBV613AWD6kslGKYt + 5yLVcjHT9jScE+rfttyFxGCQ2XIu+kygcybyQM6j4GesW5a7+O9bEB9CJvDRcg+IHecQfrYn/xAKBJs2 + FbmGnT3PifVsh19GPxXHW7ecBa2ZdxFxyrIm9i9fRGXLWeg1ieEkXsUbUDX3Wq3WJYfygUm/ZMJslywn + SH/R5CHtocb7UI9OLFjuD4xqd/wraNahoUHu86jOZpEFJOCcjJEQ/xpaVisdHgh5We2HKP9XrVa77nAx + UGCCxHgSG2j307cjhmI+cGHPk8HR7toyHNyJraiYqOukL5YyhadFPVtLrlrEzaFXnob2jYksUmyYn+V7 + TGyh8J4XAcV0RbXSRjRQmoqVB16140KvUgbSv2bjop77vl5PcShKpb/SGsNeH5IytgAAAABJRU5ErkJg + gg== + + + + + iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABGdBTUEAALGPC/xhBQAAA5hJREFUaEPt + mvtTElEUx/3v+lea6X9oppnGV5LV+EABUSRG8f3gvaZGagaakuIDFdPR0nykaZqv0/1eASmuAstursbX + +fyye45zvnDv2XN3KMhLq3poefzgke2J/i6BmmPlXwk3rBNt1DHbeydArag5Vv6VcBEB3uW+OwFqzRvR + EnkjWiNvRA0axuxUM9x4I9aJVmGuZow4FjxU5jXS1Nr8jZR4aoT5mjFSNWSh8NoCpZPmjRS59HTB/qC1 + 3Q3htwE0beQ1Gy96Q/3cBMw8dVQJ9wfQ9B4p9dbSwfEhNxJanWUFW4VxN3HrRrrnXaQftHET0AupnpyL + HmHsTdy6kQp/Ay1sfuYmdg/3SddnFMal41aNeJYlKnbXcBNQc8BB9qkuYWw6ZBkxjNqoTDKk8Ixhn868 + EAt7APrCQ9zE2fk5M6UXxmWCLCNogSLtHx2wpWEQ5ogo9lTT0ckxzw1EQ2RiH5AoLhMUNQJV9lupJ+IW + 5iXTOesg07uWWBaRzmci15JPGJsJsowUsSXQNu5O0D7u4d8GNL8RpUq2gUV5ybwcMNPqzhees7G3ReVv + TMK4TJFlpCfiovaZ3gT1Y83UEnTzoqASdy15o6l5cdxLEpV6DLFoosaRTmoL9whjM0WWERGFrmq2Yc94 + Yf2zo9QQtAvjQF2gifyRII89ZTnXjR3ZoJgRI9uoI4sfL4s7O2Wf+PXFFTPTJywG8kcCZA42CeOyQTEj + 7qiPdGwMj8v6vpNaw90pcVhCFraU4sISQ+7fcdmimBGADbyyvc4L3PqxK9zAuPZ17xuPwZT7atCcEiMH + RY10zTnJ4LfzIqFyyfzH3ORm7fW5VBe7S7z9og0n/w+5KGoEYOMeHP/khYZW50ifNMliIvjAHnzQ8ekv + KvHmvsnjKG4k+WwBYZbCTIV7ha6qRGeTZobZiNKSki8XxY0AtOKLi8vTnvPTID8MYQbDUBhXumdNtqhi + BCe5yZUZXjBmKRycdJKRdg6/82uLmytU8Tb90z8bVDHiXPSyA5KZFw1hU+PAFJd+wManA1GuXFQxAtBm + N/e3eeFoszjCQmgEpT62rAQ5uaCakcsHXwcvPlloBGgIopxcUM0IwEEJbTZZmJzjXUxJVDWCV6BS7AQI + Ta9HqHoo+zckmaCqEbTXIqc+8XJN5zXxV6PC2BxR1wjDNtmWeLmGb0gUowSqG/lX5I1ojbwRrfF/GLkX + P+G4Nz+qyUsTKij4DaqNxnRXLBhpAAAAAElFTkSuQmCC + + + + 879, 17 + + + 111 + + + + AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAAMMOAADDDgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWqUeEVyo + H1Bbpx59W6gepVunH8xbqB7gW6gf7lqoH/1aqB/9W6gf7luoHuBaqB/LW6gepVunHn1apyBPX68fEAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF2n + ISZaqB+BW6cfzFunH/xbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1unH/xaqB/LWqgfgVypHCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAA/vwAEW6keXFunHsZbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6cexlupHlw/vwAEAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAD+/AARaqR5lWqcf3luoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf3FqnHmM/vwAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFynHjpapx7QW6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gezluoHzgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX58fCFqnHpVbpx/+W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9aqB/9W6gfkUi2 + JAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWaUbJVunHs9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB7OWaUbJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWqgfQVun + HvBbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1qnHu9ZqSA/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAW6YeVFunHvhbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Wqge91um + H1EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAWqcfUlunH/xbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bpx/8W6YdTgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXKYeQlunHvlbqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1unHvhcph5CAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW6kgJ1unHvBbqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//Zq4u/3CzPP9cqSH/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6ce8Fyp + HCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVKkcCVqn + HtBbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9cqCD/u9uj//7+/f//////5PHa/3O1QP9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9apx/NSLYkBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAFuoHpZbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//k8Zr//////////////////// + ///P5r7/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1qnH5IAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFmqHTxbpx/+W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/7bY + nP//////////////////////8fjt/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9aqB/9W6gfOAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/AARbqB7RW6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/+726P///////////////////////X68v9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1unHs9VqgADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbqCBnW6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//u9uj///////////////////////1+vL/W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6geZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAA/vwAEWqcf3luoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/7vbo/////////////// + ////////9fry/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH9w/vwAEAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAXKgdXluoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/+726P///////////////////////X68v9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//WageWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFqoHshbqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//u9uj///////////////////////1+vL/W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1unHsYAAAAAAAAAAAAAAAAAAAAAAAAAAFmlHyhbqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/7vbo///////////////////////9fry/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//XKkcJAAAAAAAAAAAAAAAAAAA + AABaqB6EW6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/+726P///////// + //////////////X68v9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1qo + H4EAAAAAAAAAAAAAAAAAAAAAW6gezluoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//u9uj///////////////////////1+vL/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9aqB/LAAAAAAAAAAAAAAAAXa4aE1qoH/1bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//dbZC//D36v///////////////////////////6nRif9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6cf/FqlHhEAAAAAAAAAAFumH1FbqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//dbZC//D36v////////////////////////////// + ////////qdGJ/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9apyBPAAAAAAAA + AABbpx+AW6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//dbZC//D36v////////////// + ///2+vP/1+rJ//////////////////////+p0Yn/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6cefgAAAAAAAAAAWqcepluoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//dbZC//D3 + 6v/////////////////2+vP/gLxS/1+qJP/N5bv//////////////////////6nRif9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1unH6QAAAAAAAAAAFuoHs5bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//dbZC//D36v/////////////////2+vP/gLxS/1uoH/9bqB//X6ok/83lu/////////////// + ////////qdGJ/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9aqB/LAAAAAAAAAABapx7hW6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//dbZC//D36v/////////////////2+vP/gLxS/1uoH/9bqB//W6gf/1uo + H/9fqiT/zeW7//////////////////////+p0Yn/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Wqce4QAA + AAAAAAAAW6ce8FuoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//dbZC//D36v/////////////////2+vP/gLxS/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1+qJP/N5bv//////////////////////6nRif9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1qnHu8AAAAAAAAAAFqoH/1bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//dbZC//D36v////////////// + ///2+vP/gLxS/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//X6ok/83lu/////////////// + ////////qdGJ/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bpx/8AAAAAAAAAABaqB/9W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9gqyb/q9KM/3a2RP9bqB//W6gf/1uoH/9bqB//dbZC//D3 + 6v/////////////////2+vP/gLxS/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9fqiT/zeW7//////////////////////+p0Yn/W6gf/1uoH/9bqB//W6gf/1+qJP+o0Yj/e7lL/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6cf/AAAAAAAAAAAW6ce8Fuo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//kMRn///////z+e7/erhJ/1uo + H/9bqB//dbZC//D36v/////////////////2+vP/gLxS/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1+qJP/N5bv//////////////////////6nRif9bqB//W6gf/1+q + JP/O5bz//////9Dmv/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1qn + Hu8AAAAAAAAAAFqnHuFbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/7PX + l/////////////P57v97uUr/dbZC//D36v/////////////////2+vP/gLxS/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//X6ok/83lu/////////////// + ////////qdGJ/1+qJP/O5bz////////////y+O3/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9apx7hAAAAAAAAAABbqB7OW6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH//W6cf/////////////////8/nu//D36v/////////////////2+vP/gLxS/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9fqiT/zeW7///////////////////////l8dv//////////////////////3K0P/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//WqgfywAAAAAAAAAAWqcepluoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9dqSL/9/v0//////////////////////////////////// + ///2+vP/gLxS/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1+qJP/N5bv///////////////////////////////////////// + //+Uxm3/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1unH6QAAAAAAAAAAFun + H4BbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//ebhH//////////////////// + ///////////////////2+vP/gLxS/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//X6ok/83lu/////////////// + ////////////////////////uNmd/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bpx5+AAAAAAAAAABapx9SW6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/5vK + dv//////////////////////////////////////8fjt/3m4SP9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/12p + Iv/E4K7//////////////////////////////////////9rszf9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//WqcgTwAAAAAAAAAAXa4aE1qoH/1bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/+/3af////////////////////////////////////////////x+O3/ebhI/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/12pIv/E4K7////////////////////////////////////////////6/Pj/X6ok/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6cf/FqlHhEAAAAAAAAAAAAAAABapx7QW6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//4e/W//////////////////////////////////// + //////////////H47f91tkP/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH//C36z///////////////////////////////////////// + /////////////3y5TP9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1unH8wAAAAAAAAAAAAA + AAAAAAAAWqgehVuoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Yqwp//3+/P////////////// + ////////////////////////////////////////ptCG/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9hqyj//P37//////////////////// + //////////////////////////////////+gzX3/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9aqB+CAAAAAAAAAAAAAAAAAAAAAF2nHylbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/4O9 + Vf//////////////////////////////////////8ffs/87lvP+r043/iMBc/16pI/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/3W2 + Qv+gzX3/w9+t/+by3f/+//7/////////////////////////////////wd6r/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//WaUbJQAAAAAAAAAAAAAAAAAAAAAAAAAAWqcfyluoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/+Wx3D////////////5/Pf/2evL/7bYnP+Uxmz/cLM8/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Za0t/4nAXf+r043/zuW8//H47f///////////9jq + yf9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//WqcexwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFqn + H2BbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Xqoj/5DEaP97uUv/Xqkj/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//cLM8/5PGa/91tkP/W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1upHlwAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAA/vwAEW6ge31uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H90/vwAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFuoH2pbqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9apx5mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/vwAEWqcf01uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bpx7PP78ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAFunHT1bpx/+W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bpx/+XKceOgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW6cel1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gflAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGayGQpbqB7RW6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gezl+fHwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAWaUfKFunHvBbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6ce8F2nISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcph5CW6ce+VuoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6ce+VymHkIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFqoHlVbpx/8W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6cf/FumH1EAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAW6YeVFunHvhbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6ce+Fum + HlQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbpx5DWqce8luoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//Wqge8VqoH0EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFmlHyhapx/TW6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6cez12nISYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAVKkcCVqnHphbpx/+W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bpx/+W6cel1+fHwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW6cdPVqnH9NbqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB7RWqgeOwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/vwAEWqYea1uo + Ht9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1qnH95bqCBnP78ABAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABmmTMFW6kgX1unHslbqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Wqcex1up + IF8/vwAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWaUfKFunHoZapx7QWqgf/Vuo + H/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//W6gf/1uoH/9bqB//Wqgf/Vuo + Hs5aqB6EWaUfKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAF2uGhNapx9SW6cfgFunHqdapx/NW6ge4luoH+5bpx/+W6cf/luoH+5bqB7iWqcfzVun + Hqdbpx+AW6YfUV2uGhMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA//////////////8AAP//////+AAAH//////AAAAD/////wAAAAD////+AAAAAH////gAAAAA + H///8AAAAAAP///gAAAAAAf//8AAAAAAA///gAAAAAAB//8AAAAAAAD//gAAAAAAAH/8AAAAAAAAP/wA + AAAAAAA/+AAAAAAAAB/wAAAAAAAAD/AAAAAAAAAP4AAAAAAAAAfgAAAAAAAAB+AAAAAAAAAHwAAAAAAA + AAPAAAAAAAAAA8AAAAAAAAADgAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAYAA + AAAAAAABgAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAYAAAAAAAAABgAAAAAAA + AAGAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAHAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAPgAAAAAAAAB+AA + AAAAAAAH4AAAAAAAAAfwAAAAAAAAD/AAAAAAAAAP+AAAAAAAAB/8AAAAAAAAP/wAAAAAAAA//gAAAAAA + AH//AAAAAAAA//+AAAAAAAH//8AAAAAAA///4AAAAAAH///wAAAAAA////gAAAAAH////gAAAAB///// + AAAAAP/////AAAAD//////gAAB///////wAA//////////////8= + + + \ No newline at end of file diff --git a/Handler/Project_form2/fModelM.Designer.cs b/Handler/Project_form2/fModelM.Designer.cs new file mode 100644 index 0000000..6c00c67 --- /dev/null +++ b/Handler/Project_form2/fModelM.Designer.cs @@ -0,0 +1,1654 @@ +namespace Project +{ + partial class fModelM + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = 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 dataGridViewCellStyle2 = 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.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fModelM)); + arFrame.Control.ColorListItem colorListItem1 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem2 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem3 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem4 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem5 = new arFrame.Control.ColorListItem(); + arFrame.Control.ColorListItem colorListItem6 = new arFrame.Control.ColorListItem(); + this.dv = new System.Windows.Forms.DataGridView(); + this.titleDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.bs = new System.Windows.Forms.BindingSource(this.components); + this.ds1 = new Project.DataSet1(); + this.panel1 = new System.Windows.Forms.Panel(); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.dvPosition = new arCtl.arDatagridView(); + this.posTitleDataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.btPos = new System.Windows.Forms.DataGridViewButtonColumn(); + this.btspeed = new System.Windows.Forms.DataGridViewButtonColumn(); + this.btacc = new System.Windows.Forms.DataGridViewButtonColumn(); + this.btdcc = new System.Windows.Forms.DataGridViewButtonColumn(); + this.btGo = new System.Windows.Forms.DataGridViewButtonColumn(); + this.btSet = new System.Windows.Forms.DataGridViewButtonColumn(); + this.bsPosData = new System.Windows.Forms.BindingSource(this.components); + this.bindingNavigator1 = new System.Windows.Forms.BindingNavigator(this.components); + this.bindingNavigatorCountItem = new System.Windows.Forms.ToolStripLabel(); + this.bindingNavigatorMoveFirstItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMovePreviousItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorPositionItem = new System.Windows.Forms.ToolStripTextBox(); + this.bindingNavigatorSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorMoveNextItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMoveLastItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripButton1 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton2 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton3 = new System.Windows.Forms.ToolStripButton(); + this.panel12 = new System.Windows.Forms.Panel(); + this.panel5 = new System.Windows.Forms.Panel(); + this.panel4 = new System.Windows.Forms.Panel(); + this.groupBox4 = new System.Windows.Forms.GroupBox(); + this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); + this.panel3 = new System.Windows.Forms.Panel(); + this.panel11 = new System.Windows.Forms.Panel(); + this.nudJogVel = new arFrame.Control.MotValueNumericUpDown(); + this.linkLabel8 = new arFrame.Control.MotLinkLabel(); + this.panel8 = new System.Windows.Forms.Panel(); + this.nudPosAbs = new arFrame.Control.MotValueNumericUpDown(); + this.button1 = new arFrame.Control.MotCommandButton(); + this.linkLabel10 = new arFrame.Control.MotLinkLabel(); + this.panel7 = new System.Windows.Forms.Panel(); + this.nudPosRel = new arFrame.Control.MotValueNumericUpDown(); + this.button3 = new arFrame.Control.MotCommandButton(); + this.linkLabel11 = new arFrame.Control.MotLinkLabel(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.btJogLeft = new arFrame.Control.MotCommandButton(); + this.btJogStop = new arFrame.Control.MotCommandButton(); + this.btJogDn = new arFrame.Control.MotCommandButton(); + this.btJogUp = new arFrame.Control.MotCommandButton(); + this.button5 = new arFrame.Control.MotCommandButton(); + this.btPClear = new arFrame.Control.MotCommandButton(); + this.btSVY = new arFrame.Control.MotCommandButton(); + this.btAClear = new arFrame.Control.MotCommandButton(); + this.btJogRight = new arFrame.Control.MotCommandButton(); + this.chkJogMoveForce = new System.Windows.Forms.CheckBox(); + this.panel10 = new System.Windows.Forms.Panel(); + this.tabControl2 = new System.Windows.Forms.TabControl(); + this.tabPage7 = new System.Windows.Forms.TabPage(); + this.logTextBox1 = new arCtl.LogTextBox(); + this.panel2 = new System.Windows.Forms.Panel(); + this.tabControl3 = new System.Windows.Forms.TabControl(); + this.tabPage2 = new System.Windows.Forms.TabPage(); + this.groupBox3 = new System.Windows.Forms.GroupBox(); + this.tblFG = new arFrame.Control.GridView(); + this.tmDisplay = new System.Windows.Forms.Timer(this.components); + this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); + this.button31 = new System.Windows.Forms.Button(); + this.button7 = new System.Windows.Forms.Button(); + this.panLeft = new System.Windows.Forms.Panel(); + this.arLabel18 = new arCtl.arLabel(); + this.panel6 = new System.Windows.Forms.Panel(); + this.splitH = new System.Windows.Forms.Panel(); + this.panel9 = new System.Windows.Forms.Panel(); + this.panTopMenu = new System.Windows.Forms.Panel(); + this.button6 = new System.Windows.Forms.Button(); + this.button4 = new System.Windows.Forms.Button(); + this.panel13 = new System.Windows.Forms.Panel(); + this.button2 = new System.Windows.Forms.Button(); + this.btSave = new System.Windows.Forms.Button(); + this.btDel = new System.Windows.Forms.Button(); + this.btAdd = new System.Windows.Forms.Button(); + this.panTitleBar = new System.Windows.Forms.Panel(); + this.lbTitle = new arCtl.arLabel(); + ((System.ComponentModel.ISupportInitialize)(this.dv)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bs)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.ds1)).BeginInit(); + this.panel1.SuspendLayout(); + this.tabControl1.SuspendLayout(); + this.tabPage1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dvPosition)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsPosData)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bindingNavigator1)).BeginInit(); + this.bindingNavigator1.SuspendLayout(); + this.panel4.SuspendLayout(); + this.groupBox4.SuspendLayout(); + this.panel11.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudJogVel)).BeginInit(); + this.panel8.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudPosAbs)).BeginInit(); + this.panel7.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.nudPosRel)).BeginInit(); + this.tableLayoutPanel1.SuspendLayout(); + this.tabControl2.SuspendLayout(); + this.tabPage7.SuspendLayout(); + this.tabControl3.SuspendLayout(); + this.groupBox3.SuspendLayout(); + this.panLeft.SuspendLayout(); + this.panel6.SuspendLayout(); + this.panTopMenu.SuspendLayout(); + this.panTitleBar.SuspendLayout(); + this.SuspendLayout(); + // + // dv + // + this.dv.AllowUserToAddRows = false; + this.dv.AllowUserToDeleteRows = false; + this.dv.AutoGenerateColumns = false; + this.dv.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; + this.dv.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells; + this.dv.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + this.dv.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.dv.ColumnHeadersHeight = 35; + this.dv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing; + this.dv.ColumnHeadersVisible = false; + this.dv.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.titleDataGridViewTextBoxColumn}); + this.dv.DataSource = this.bs; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + dataGridViewCellStyle1.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle1.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle1.Padding = new System.Windows.Forms.Padding(5); + dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dv.DefaultCellStyle = dataGridViewCellStyle1; + this.dv.Dock = System.Windows.Forms.DockStyle.Fill; + this.dv.Location = new System.Drawing.Point(0, 34); + this.dv.MultiSelect = false; + this.dv.Name = "dv"; + this.dv.RowHeadersVisible = false; + this.dv.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect; + this.dv.Size = new System.Drawing.Size(166, 759); + this.dv.TabIndex = 1; + this.dv.DataError += new System.Windows.Forms.DataGridViewDataErrorEventHandler(this.dv_DataError); + // + // titleDataGridViewTextBoxColumn + // + this.titleDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; + this.titleDataGridViewTextBoxColumn.DataPropertyName = "Title"; + this.titleDataGridViewTextBoxColumn.HeaderText = "Title"; + this.titleDataGridViewTextBoxColumn.Name = "titleDataGridViewTextBoxColumn"; + // + // bs + // + this.bs.DataMember = "MCModel"; + this.bs.DataSource = this.ds1; + this.bs.Filter = "isnull(title,\'\') <> \'\'"; + this.bs.Sort = "idx"; + this.bs.CurrentChanged += new System.EventHandler(this.bs_CurrentChanged_1); + // + // ds1 + // + this.ds1.DataSetName = "DataSet1"; + this.ds1.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + // + // panel1 + // + this.panel1.BackColor = System.Drawing.Color.Transparent; + this.panel1.Controls.Add(this.tabControl1); + this.panel1.Controls.Add(this.panel12); + this.panel1.Controls.Add(this.panel5); + this.panel1.Controls.Add(this.panel4); + this.panel1.Controls.Add(this.panel10); + this.panel1.Controls.Add(this.tabControl2); + this.panel1.Controls.Add(this.panel2); + this.panel1.Controls.Add(this.tabControl3); + this.panel1.Controls.Add(this.groupBox3); + this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel1.Location = new System.Drawing.Point(176, 5); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(1159, 793); + this.panel1.TabIndex = 2; + // + // tabControl1 + // + this.tabControl1.Controls.Add(this.tabPage1); + this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tabControl1.Location = new System.Drawing.Point(247, 166); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(525, 500); + this.tabControl1.TabIndex = 141; + // + // tabPage1 + // + this.tabPage1.Controls.Add(this.dvPosition); + this.tabPage1.Controls.Add(this.bindingNavigator1); + this.tabPage1.Location = new System.Drawing.Point(4, 27); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(3); + this.tabPage1.Size = new System.Drawing.Size(517, 469); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "Values"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // dvPosition + // + this.dvPosition.A_DelCurrentCell = true; + this.dvPosition.A_EnterToTab = true; + this.dvPosition.A_KoreanField = null; + this.dvPosition.A_UpperField = null; + this.dvPosition.A_ViewRownumOnHeader = true; + this.dvPosition.AllowUserToAddRows = false; + this.dvPosition.AllowUserToDeleteRows = false; + this.dvPosition.AllowUserToResizeColumns = false; + this.dvPosition.AllowUserToResizeRows = false; + this.dvPosition.AutoGenerateColumns = false; + this.dvPosition.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; + this.dvPosition.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dvPosition.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.posTitleDataGridViewTextBoxColumn1, + this.btPos, + this.btspeed, + this.btacc, + this.btdcc, + this.btGo, + this.btSet}); + this.dvPosition.DataSource = this.bsPosData; + dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle5.BackColor = System.Drawing.Color.White; + dataGridViewCellStyle5.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle5.ForeColor = System.Drawing.Color.White; + dataGridViewCellStyle5.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle5.SelectionForeColor = System.Drawing.Color.Black; + dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dvPosition.DefaultCellStyle = dataGridViewCellStyle5; + this.dvPosition.Dock = System.Windows.Forms.DockStyle.Fill; + this.dvPosition.Location = new System.Drawing.Point(3, 3); + this.dvPosition.Name = "dvPosition"; + this.dvPosition.ReadOnly = true; + dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle6.BackColor = System.Drawing.Color.White; + dataGridViewCellStyle6.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle6.ForeColor = System.Drawing.Color.Black; + dataGridViewCellStyle6.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle6.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dvPosition.RowHeadersDefaultCellStyle = dataGridViewCellStyle6; + this.dvPosition.RowHeadersVisible = false; + this.dvPosition.RowTemplate.DefaultCellStyle.BackColor = System.Drawing.Color.White; + this.dvPosition.RowTemplate.DefaultCellStyle.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.dvPosition.RowTemplate.DefaultCellStyle.ForeColor = System.Drawing.Color.Black; + this.dvPosition.RowTemplate.DefaultCellStyle.Padding = new System.Windows.Forms.Padding(2); + this.dvPosition.RowTemplate.Height = 50; + this.dvPosition.Size = new System.Drawing.Size(511, 438); + this.dvPosition.TabIndex = 140; + this.dvPosition.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.arDatagridView2_CellClick); + // + // posTitleDataGridViewTextBoxColumn1 + // + this.posTitleDataGridViewTextBoxColumn1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; + this.posTitleDataGridViewTextBoxColumn1.DataPropertyName = "PosTitle"; + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + this.posTitleDataGridViewTextBoxColumn1.DefaultCellStyle = dataGridViewCellStyle2; + this.posTitleDataGridViewTextBoxColumn1.HeaderText = "Title"; + this.posTitleDataGridViewTextBoxColumn1.Name = "posTitleDataGridViewTextBoxColumn1"; + this.posTitleDataGridViewTextBoxColumn1.ReadOnly = true; + // + // btPos + // + this.btPos.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.btPos.DataPropertyName = "Position"; + this.btPos.HeaderText = "Position"; + this.btPos.Name = "btPos"; + this.btPos.ReadOnly = true; + this.btPos.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.btPos.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + // + // btspeed + // + this.btspeed.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.btspeed.DataPropertyName = "Speed"; + this.btspeed.HeaderText = "Speed"; + this.btspeed.Name = "btspeed"; + this.btspeed.ReadOnly = true; + this.btspeed.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.btspeed.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.btspeed.Width = 50; + // + // btacc + // + this.btacc.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.btacc.DataPropertyName = "SpeedAcc"; + this.btacc.HeaderText = "Acc"; + this.btacc.Name = "btacc"; + this.btacc.ReadOnly = true; + this.btacc.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.btacc.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.btacc.Text = "Acc"; + this.btacc.Width = 50; + // + // btdcc + // + this.btdcc.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.btdcc.DataPropertyName = "SpeedDcc"; + this.btdcc.HeaderText = "Dcc"; + this.btdcc.Name = "btdcc"; + this.btdcc.ReadOnly = true; + this.btdcc.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.btdcc.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; + this.btdcc.Text = "Dcc"; + this.btdcc.Width = 50; + // + // btGo + // + this.btGo.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(0))))); + this.btGo.DefaultCellStyle = dataGridViewCellStyle3; + this.btGo.HeaderText = "Go"; + this.btGo.Name = "btGo"; + this.btGo.ReadOnly = true; + this.btGo.Text = "Go"; + this.btGo.Width = 50; + // + // btSet + // + this.btSet.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle4.BackColor = System.Drawing.Color.Blue; + this.btSet.DefaultCellStyle = dataGridViewCellStyle4; + this.btSet.HeaderText = "Set"; + this.btSet.Name = "btSet"; + this.btSet.ReadOnly = true; + this.btSet.Text = "Set"; + this.btSet.Width = 50; + // + // bsPosData + // + this.bsPosData.DataMember = "MCModel"; + this.bsPosData.DataSource = this.ds1; + this.bsPosData.Sort = "idx"; + // + // bindingNavigator1 + // + this.bindingNavigator1.AddNewItem = null; + this.bindingNavigator1.BindingSource = this.bsPosData; + this.bindingNavigator1.CountItem = this.bindingNavigatorCountItem; + this.bindingNavigator1.DeleteItem = null; + this.bindingNavigator1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.bindingNavigator1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.bindingNavigatorMoveFirstItem, + this.bindingNavigatorMovePreviousItem, + this.bindingNavigatorSeparator, + this.bindingNavigatorPositionItem, + this.bindingNavigatorCountItem, + this.bindingNavigatorSeparator1, + this.bindingNavigatorMoveNextItem, + this.bindingNavigatorMoveLastItem, + this.bindingNavigatorSeparator2, + this.toolStripButton1, + this.toolStripButton2, + this.toolStripButton3}); + this.bindingNavigator1.Location = new System.Drawing.Point(3, 441); + this.bindingNavigator1.MoveFirstItem = this.bindingNavigatorMoveFirstItem; + this.bindingNavigator1.MoveLastItem = this.bindingNavigatorMoveLastItem; + this.bindingNavigator1.MoveNextItem = this.bindingNavigatorMoveNextItem; + this.bindingNavigator1.MovePreviousItem = this.bindingNavigatorMovePreviousItem; + this.bindingNavigator1.Name = "bindingNavigator1"; + this.bindingNavigator1.PositionItem = this.bindingNavigatorPositionItem; + this.bindingNavigator1.Size = new System.Drawing.Size(511, 25); + this.bindingNavigator1.TabIndex = 141; + this.bindingNavigator1.Text = "bindingNavigator1"; + // + // bindingNavigatorCountItem + // + this.bindingNavigatorCountItem.ForeColor = System.Drawing.Color.Black; + this.bindingNavigatorCountItem.Name = "bindingNavigatorCountItem"; + this.bindingNavigatorCountItem.Size = new System.Drawing.Size(27, 22); + this.bindingNavigatorCountItem.Text = "/{0}"; + this.bindingNavigatorCountItem.ToolTipText = "전체 항목 수"; + // + // bindingNavigatorMoveFirstItem + // + this.bindingNavigatorMoveFirstItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveFirstItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveFirstItem.Image"))); + this.bindingNavigatorMoveFirstItem.Name = "bindingNavigatorMoveFirstItem"; + this.bindingNavigatorMoveFirstItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveFirstItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveFirstItem.Text = "처음으로 이동"; + // + // bindingNavigatorMovePreviousItem + // + this.bindingNavigatorMovePreviousItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMovePreviousItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMovePreviousItem.Image"))); + this.bindingNavigatorMovePreviousItem.Name = "bindingNavigatorMovePreviousItem"; + this.bindingNavigatorMovePreviousItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMovePreviousItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMovePreviousItem.Text = "이전으로 이동"; + // + // bindingNavigatorSeparator + // + this.bindingNavigatorSeparator.Name = "bindingNavigatorSeparator"; + this.bindingNavigatorSeparator.Size = new System.Drawing.Size(6, 25); + // + // bindingNavigatorPositionItem + // + this.bindingNavigatorPositionItem.AccessibleName = "위치"; + this.bindingNavigatorPositionItem.AutoSize = false; + this.bindingNavigatorPositionItem.Name = "bindingNavigatorPositionItem"; + this.bindingNavigatorPositionItem.Size = new System.Drawing.Size(50, 23); + this.bindingNavigatorPositionItem.Text = "0"; + this.bindingNavigatorPositionItem.ToolTipText = "현재 위치"; + // + // bindingNavigatorSeparator1 + // + this.bindingNavigatorSeparator1.Name = "bindingNavigatorSeparator1"; + this.bindingNavigatorSeparator1.Size = new System.Drawing.Size(6, 25); + // + // bindingNavigatorMoveNextItem + // + this.bindingNavigatorMoveNextItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveNextItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveNextItem.Image"))); + this.bindingNavigatorMoveNextItem.Name = "bindingNavigatorMoveNextItem"; + this.bindingNavigatorMoveNextItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveNextItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveNextItem.Text = "다음으로 이동"; + // + // bindingNavigatorMoveLastItem + // + this.bindingNavigatorMoveLastItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveLastItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveLastItem.Image"))); + this.bindingNavigatorMoveLastItem.Name = "bindingNavigatorMoveLastItem"; + this.bindingNavigatorMoveLastItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveLastItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveLastItem.Text = "마지막으로 이동"; + // + // bindingNavigatorSeparator2 + // + this.bindingNavigatorSeparator2.Name = "bindingNavigatorSeparator2"; + this.bindingNavigatorSeparator2.Size = new System.Drawing.Size(6, 25); + // + // toolStripButton1 + // + this.toolStripButton1.ForeColor = System.Drawing.Color.Black; + this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image"))); + this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton1.Name = "toolStripButton1"; + this.toolStripButton1.Size = new System.Drawing.Size(51, 22); + this.toolStripButton1.Text = "속도"; + this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click); + // + // toolStripButton2 + // + this.toolStripButton2.ForeColor = System.Drawing.Color.Black; + this.toolStripButton2.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton2.Image"))); + this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton2.Name = "toolStripButton2"; + this.toolStripButton2.Size = new System.Drawing.Size(63, 22); + this.toolStripButton2.Text = "가속도"; + this.toolStripButton2.Click += new System.EventHandler(this.toolStripButton2_Click_2); + // + // toolStripButton3 + // + this.toolStripButton3.ForeColor = System.Drawing.Color.Black; + this.toolStripButton3.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton3.Image"))); + this.toolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton3.Name = "toolStripButton3"; + this.toolStripButton3.Size = new System.Drawing.Size(63, 22); + this.toolStripButton3.Text = "감속도"; + this.toolStripButton3.Click += new System.EventHandler(this.toolStripButton3_Click_1); + // + // panel12 + // + this.panel12.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel12.Location = new System.Drawing.Point(247, 666); + this.panel12.Name = "panel12"; + this.panel12.Size = new System.Drawing.Size(525, 5); + this.panel12.TabIndex = 144; + // + // panel5 + // + this.panel5.Dock = System.Windows.Forms.DockStyle.Left; + this.panel5.Location = new System.Drawing.Point(242, 166); + this.panel5.Name = "panel5"; + this.panel5.Size = new System.Drawing.Size(5, 505); + this.panel5.TabIndex = 40; + // + // panel4 + // + this.panel4.BackColor = System.Drawing.Color.Transparent; + this.panel4.Controls.Add(this.groupBox4); + this.panel4.Dock = System.Windows.Forms.DockStyle.Left; + this.panel4.Location = new System.Drawing.Point(0, 166); + this.panel4.Name = "panel4"; + this.panel4.Size = new System.Drawing.Size(242, 505); + this.panel4.TabIndex = 39; + // + // groupBox4 + // + this.groupBox4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(42)))), ((int)(((byte)(42)))), ((int)(((byte)(42))))); + this.groupBox4.Controls.Add(this.flowLayoutPanel1); + this.groupBox4.Controls.Add(this.panel3); + this.groupBox4.Controls.Add(this.panel11); + this.groupBox4.Controls.Add(this.panel8); + this.groupBox4.Controls.Add(this.panel7); + this.groupBox4.Controls.Add(this.tableLayoutPanel1); + this.groupBox4.Controls.Add(this.chkJogMoveForce); + this.groupBox4.Dock = System.Windows.Forms.DockStyle.Left; + this.groupBox4.ForeColor = System.Drawing.Color.White; + this.groupBox4.Location = new System.Drawing.Point(0, 0); + this.groupBox4.Name = "groupBox4"; + this.groupBox4.Padding = new System.Windows.Forms.Padding(10, 5, 10, 3); + this.groupBox4.Size = new System.Drawing.Size(242, 505); + this.groupBox4.TabIndex = 28; + this.groupBox4.TabStop = false; + this.groupBox4.Text = "Motion JOG Control"; + // + // flowLayoutPanel1 + // + this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.flowLayoutPanel1.FlowDirection = System.Windows.Forms.FlowDirection.TopDown; + this.flowLayoutPanel1.Location = new System.Drawing.Point(10, 24); + this.flowLayoutPanel1.Name = "flowLayoutPanel1"; + this.flowLayoutPanel1.Size = new System.Drawing.Size(222, 201); + this.flowLayoutPanel1.TabIndex = 60; + // + // panel3 + // + this.panel3.BackColor = System.Drawing.Color.Orange; + this.panel3.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel3.Location = new System.Drawing.Point(10, 225); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(222, 4); + this.panel3.TabIndex = 58; + // + // panel11 + // + this.panel11.Controls.Add(this.nudJogVel); + this.panel11.Controls.Add(this.linkLabel8); + this.panel11.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel11.Location = new System.Drawing.Point(10, 229); + this.panel11.Name = "panel11"; + this.panel11.Padding = new System.Windows.Forms.Padding(2); + this.panel11.Size = new System.Drawing.Size(222, 30); + this.panel11.TabIndex = 63; + // + // nudJogVel + // + this.nudJogVel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.nudJogVel.DecimalPlaces = 2; + this.nudJogVel.Dock = System.Windows.Forms.DockStyle.Fill; + this.nudJogVel.Location = new System.Drawing.Point(79, 2); + this.nudJogVel.Maximum = new decimal(new int[] { + 9999999, + 0, + 0, + 0}); + this.nudJogVel.MotionIndex = -1; + this.nudJogVel.Name = "nudJogVel"; + this.nudJogVel.Size = new System.Drawing.Size(141, 26); + this.nudJogVel.TabIndex = 0; + this.nudJogVel.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.toolTip1.SetToolTip(this.nudJogVel, "조그모드 이동 속도"); + this.nudJogVel.Value = new decimal(new int[] { + 100, + 0, + 0, + 0}); + // + // linkLabel8 + // + this.linkLabel8.Dock = System.Windows.Forms.DockStyle.Left; + this.linkLabel8.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.linkLabel8.ForeColor = System.Drawing.Color.SkyBlue; + this.linkLabel8.LinkColor = System.Drawing.Color.SkyBlue; + this.linkLabel8.Location = new System.Drawing.Point(2, 2); + this.linkLabel8.motValueControl = this.nudJogVel; + this.linkLabel8.Name = "linkLabel8"; + this.linkLabel8.Size = new System.Drawing.Size(77, 26); + this.linkLabel8.TabIndex = 41; + this.linkLabel8.TabStop = true; + this.linkLabel8.Text = "JOG Speed"; + this.linkLabel8.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.toolTip1.SetToolTip(this.linkLabel8, "값 변경"); + this.linkLabel8.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel8_LinkClicked); + // + // panel8 + // + this.panel8.Controls.Add(this.nudPosAbs); + this.panel8.Controls.Add(this.button1); + this.panel8.Controls.Add(this.linkLabel10); + this.panel8.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel8.Location = new System.Drawing.Point(10, 259); + this.panel8.Name = "panel8"; + this.panel8.Padding = new System.Windows.Forms.Padding(2); + this.panel8.Size = new System.Drawing.Size(222, 30); + this.panel8.TabIndex = 62; + // + // nudPosAbs + // + this.nudPosAbs.DecimalPlaces = 3; + this.nudPosAbs.Dock = System.Windows.Forms.DockStyle.Fill; + this.nudPosAbs.Location = new System.Drawing.Point(79, 2); + this.nudPosAbs.Maximum = new decimal(new int[] { + 9999999, + 0, + 0, + 0}); + this.nudPosAbs.MotionIndex = -1; + this.nudPosAbs.Name = "nudPosAbs"; + this.nudPosAbs.Size = new System.Drawing.Size(96, 26); + this.nudPosAbs.TabIndex = 13; + this.nudPosAbs.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.toolTip1.SetToolTip(this.nudPosAbs, "이동 할 임의 위치값 우측의 GO버튼을 누르면 이동 함"); + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Right; + this.button1.ForeColor = System.Drawing.Color.Black; + this.button1.Location = new System.Drawing.Point(175, 2); + this.button1.motAccControl = null; + this.button1.motCommand = arFrame.Control.MotCommandButton.eCommand.AbsoluteMove; + this.button1.motSpdControl = null; + this.button1.motValueControl = null; + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(45, 26); + this.button1.TabIndex = 51; + this.button1.Text = "GO"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // linkLabel10 + // + this.linkLabel10.Dock = System.Windows.Forms.DockStyle.Left; + this.linkLabel10.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.linkLabel10.ForeColor = System.Drawing.Color.SkyBlue; + this.linkLabel10.LinkColor = System.Drawing.Color.SkyBlue; + this.linkLabel10.Location = new System.Drawing.Point(2, 2); + this.linkLabel10.motValueControl = this.nudPosAbs; + this.linkLabel10.Name = "linkLabel10"; + this.linkLabel10.Size = new System.Drawing.Size(77, 26); + this.linkLabel10.TabIndex = 45; + this.linkLabel10.TabStop = true; + this.linkLabel10.Text = "ABS.Value"; + this.linkLabel10.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.toolTip1.SetToolTip(this.linkLabel10, "값 변경"); + this.linkLabel10.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel10_LinkClicked); + // + // panel7 + // + this.panel7.Controls.Add(this.nudPosRel); + this.panel7.Controls.Add(this.button3); + this.panel7.Controls.Add(this.linkLabel11); + this.panel7.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel7.Location = new System.Drawing.Point(10, 289); + this.panel7.Name = "panel7"; + this.panel7.Padding = new System.Windows.Forms.Padding(2); + this.panel7.Size = new System.Drawing.Size(222, 30); + this.panel7.TabIndex = 61; + // + // nudPosRel + // + this.nudPosRel.DecimalPlaces = 3; + this.nudPosRel.Dock = System.Windows.Forms.DockStyle.Fill; + this.nudPosRel.Location = new System.Drawing.Point(79, 2); + this.nudPosRel.Maximum = new decimal(new int[] { + 9999999, + 0, + 0, + 0}); + this.nudPosRel.MotionIndex = -1; + this.nudPosRel.Name = "nudPosRel"; + this.nudPosRel.Size = new System.Drawing.Size(96, 26); + this.nudPosRel.TabIndex = 50; + this.nudPosRel.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.toolTip1.SetToolTip(this.nudPosRel, "이동 할 임의 위치값 우측의 GO버튼을 누르면 이동 함"); + // + // button3 + // + this.button3.Dock = System.Windows.Forms.DockStyle.Right; + this.button3.ForeColor = System.Drawing.Color.Black; + this.button3.Location = new System.Drawing.Point(175, 2); + this.button3.motAccControl = null; + this.button3.motCommand = arFrame.Control.MotCommandButton.eCommand.AbsoluteMove; + this.button3.motSpdControl = null; + this.button3.motValueControl = null; + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(45, 26); + this.button3.TabIndex = 51; + this.button3.Text = "GO"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click_1); + // + // linkLabel11 + // + this.linkLabel11.Dock = System.Windows.Forms.DockStyle.Left; + this.linkLabel11.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.linkLabel11.ForeColor = System.Drawing.Color.SkyBlue; + this.linkLabel11.LinkColor = System.Drawing.Color.SkyBlue; + this.linkLabel11.Location = new System.Drawing.Point(2, 2); + this.linkLabel11.motValueControl = this.nudPosRel; + this.linkLabel11.Name = "linkLabel11"; + this.linkLabel11.Size = new System.Drawing.Size(77, 26); + this.linkLabel11.TabIndex = 47; + this.linkLabel11.TabStop = true; + this.linkLabel11.Text = "REL.Value"; + this.linkLabel11.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.toolTip1.SetToolTip(this.linkLabel11, "값 변경"); + this.linkLabel11.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel11_LinkClicked); + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.Single; + this.tableLayoutPanel1.ColumnCount = 3; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25.00062F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25.00062F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25.00062F)); + this.tableLayoutPanel1.Controls.Add(this.btJogLeft, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.btJogStop, 1, 1); + this.tableLayoutPanel1.Controls.Add(this.btJogDn, 1, 2); + this.tableLayoutPanel1.Controls.Add(this.btJogUp, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.button5, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.btPClear, 2, 2); + this.tableLayoutPanel1.Controls.Add(this.btSVY, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.btAClear, 2, 0); + this.tableLayoutPanel1.Controls.Add(this.btJogRight, 2, 1); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.tableLayoutPanel1.Location = new System.Drawing.Point(10, 319); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 3; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(222, 158); + this.tableLayoutPanel1.TabIndex = 2; + // + // btJogLeft + // + this.btJogLeft.BackColor = System.Drawing.Color.Turquoise; + this.btJogLeft.Dock = System.Windows.Forms.DockStyle.Fill; + this.btJogLeft.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.btJogLeft.ForeColor = System.Drawing.Color.Red; + this.btJogLeft.Location = new System.Drawing.Point(1, 53); + this.btJogLeft.Margin = new System.Windows.Forms.Padding(0); + this.btJogLeft.motAccControl = null; + this.btJogLeft.motCommand = arFrame.Control.MotCommandButton.eCommand.AbsoluteMove; + this.btJogLeft.motSpdControl = null; + this.btJogLeft.motValueControl = null; + this.btJogLeft.Name = "btJogLeft"; + this.btJogLeft.Size = new System.Drawing.Size(72, 51); + this.btJogLeft.TabIndex = 0; + this.btJogLeft.Tag = "CCW"; + this.btJogLeft.Text = "NEG"; + this.toolTip1.SetToolTip(this.btJogLeft, "역방향 이동"); + this.btJogLeft.UseVisualStyleBackColor = false; + this.btJogLeft.MouseDown += new System.Windows.Forms.MouseEventHandler(this.btJogDown_Click); + this.btJogLeft.MouseUp += new System.Windows.Forms.MouseEventHandler(this.btJogUp_Click); + // + // btJogStop + // + this.btJogStop.Dock = System.Windows.Forms.DockStyle.Fill; + this.btJogStop.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Bold); + this.btJogStop.ForeColor = System.Drawing.Color.Black; + this.btJogStop.Location = new System.Drawing.Point(74, 53); + this.btJogStop.Margin = new System.Windows.Forms.Padding(0); + this.btJogStop.motAccControl = null; + this.btJogStop.motCommand = arFrame.Control.MotCommandButton.eCommand.AbsoluteMove; + this.btJogStop.motSpdControl = null; + this.btJogStop.motValueControl = null; + this.btJogStop.Name = "btJogStop"; + this.btJogStop.Size = new System.Drawing.Size(72, 51); + this.btJogStop.TabIndex = 0; + this.btJogStop.Tag = "STOP"; + this.btJogStop.Text = "■"; + this.toolTip1.SetToolTip(this.btJogStop, "비상 정지"); + this.btJogStop.UseVisualStyleBackColor = true; + this.btJogStop.Click += new System.EventHandler(this.btJogStop_Click); + this.btJogStop.MouseDown += new System.Windows.Forms.MouseEventHandler(this.btJogDown_Click); + this.btJogStop.MouseUp += new System.Windows.Forms.MouseEventHandler(this.btJogUp_Click); + // + // btJogDn + // + this.btJogDn.BackColor = System.Drawing.Color.Turquoise; + this.btJogDn.Dock = System.Windows.Forms.DockStyle.Fill; + this.btJogDn.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.btJogDn.ForeColor = System.Drawing.Color.Blue; + this.btJogDn.Location = new System.Drawing.Point(74, 105); + this.btJogDn.Margin = new System.Windows.Forms.Padding(0); + this.btJogDn.motAccControl = null; + this.btJogDn.motCommand = arFrame.Control.MotCommandButton.eCommand.AbsoluteMove; + this.btJogDn.motSpdControl = null; + this.btJogDn.motValueControl = null; + this.btJogDn.Name = "btJogDn"; + this.btJogDn.Size = new System.Drawing.Size(72, 52); + this.btJogDn.TabIndex = 0; + this.btJogDn.Tag = "CW"; + this.btJogDn.Text = "NEG"; + this.toolTip1.SetToolTip(this.btJogDn, "정방향 이동"); + this.btJogDn.UseVisualStyleBackColor = false; + this.btJogDn.MouseDown += new System.Windows.Forms.MouseEventHandler(this.btJogDown_Click); + this.btJogDn.MouseUp += new System.Windows.Forms.MouseEventHandler(this.btJogUp_Click); + // + // btJogUp + // + this.btJogUp.BackColor = System.Drawing.Color.Turquoise; + this.btJogUp.Dock = System.Windows.Forms.DockStyle.Fill; + this.btJogUp.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.btJogUp.ForeColor = System.Drawing.Color.Red; + this.btJogUp.Location = new System.Drawing.Point(74, 1); + this.btJogUp.Margin = new System.Windows.Forms.Padding(0); + this.btJogUp.motAccControl = null; + this.btJogUp.motCommand = arFrame.Control.MotCommandButton.eCommand.AbsoluteMove; + this.btJogUp.motSpdControl = null; + this.btJogUp.motValueControl = null; + this.btJogUp.Name = "btJogUp"; + this.btJogUp.Size = new System.Drawing.Size(72, 51); + this.btJogUp.TabIndex = 0; + this.btJogUp.Tag = "CCW"; + this.btJogUp.Text = "POS"; + this.toolTip1.SetToolTip(this.btJogUp, "역 방향 이동"); + this.btJogUp.UseVisualStyleBackColor = false; + this.btJogUp.MouseDown += new System.Windows.Forms.MouseEventHandler(this.btJogDown_Click); + this.btJogUp.MouseUp += new System.Windows.Forms.MouseEventHandler(this.btJogUp_Click); + // + // button5 + // + this.button5.Dock = System.Windows.Forms.DockStyle.Fill; + this.button5.Font = new System.Drawing.Font("Calibri", 10F); + this.button5.ForeColor = System.Drawing.Color.Black; + this.button5.Location = new System.Drawing.Point(1, 105); + this.button5.Margin = new System.Windows.Forms.Padding(0); + this.button5.motAccControl = null; + this.button5.motCommand = arFrame.Control.MotCommandButton.eCommand.AbsoluteMove; + this.button5.motSpdControl = null; + this.button5.motValueControl = null; + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(72, 52); + this.button5.TabIndex = 3; + this.button5.Text = "HOME"; + this.toolTip1.SetToolTip(this.button5, "홈 검색 실행"); + this.button5.UseVisualStyleBackColor = true; + this.button5.Click += new System.EventHandler(this.btJogHome_Click); + // + // btPClear + // + this.btPClear.Dock = System.Windows.Forms.DockStyle.Fill; + this.btPClear.Font = new System.Drawing.Font("Calibri", 10F); + this.btPClear.ForeColor = System.Drawing.Color.Black; + this.btPClear.Location = new System.Drawing.Point(147, 105); + this.btPClear.Margin = new System.Windows.Forms.Padding(0); + this.btPClear.motAccControl = null; + this.btPClear.motCommand = arFrame.Control.MotCommandButton.eCommand.AbsoluteMove; + this.btPClear.motSpdControl = null; + this.btPClear.motValueControl = null; + this.btPClear.Name = "btPClear"; + this.btPClear.Size = new System.Drawing.Size(74, 52); + this.btPClear.TabIndex = 3; + this.btPClear.Text = "P.CLR"; + this.toolTip1.SetToolTip(this.btPClear, "현재 위치 초기화"); + this.btPClear.UseVisualStyleBackColor = true; + this.btPClear.Click += new System.EventHandler(this.btJogPClear_Click); + // + // btSVY + // + this.btSVY.Dock = System.Windows.Forms.DockStyle.Fill; + this.btSVY.Font = new System.Drawing.Font("Calibri", 10F); + this.btSVY.ForeColor = System.Drawing.Color.Black; + this.btSVY.Location = new System.Drawing.Point(1, 1); + this.btSVY.Margin = new System.Windows.Forms.Padding(0); + this.btSVY.motAccControl = null; + this.btSVY.motCommand = arFrame.Control.MotCommandButton.eCommand.AbsoluteMove; + this.btSVY.motSpdControl = null; + this.btSVY.motValueControl = null; + this.btSVY.Name = "btSVY"; + this.btSVY.Size = new System.Drawing.Size(72, 51); + this.btSVY.TabIndex = 4; + this.btSVY.Text = "SVON"; + this.toolTip1.SetToolTip(this.btSVY, "서보 ON/OFF"); + this.btSVY.UseVisualStyleBackColor = true; + this.btSVY.Click += new System.EventHandler(this.btJogSVon_Click); + // + // btAClear + // + this.btAClear.Dock = System.Windows.Forms.DockStyle.Fill; + this.btAClear.Font = new System.Drawing.Font("Calibri", 10F); + this.btAClear.ForeColor = System.Drawing.Color.Black; + this.btAClear.Location = new System.Drawing.Point(147, 1); + this.btAClear.Margin = new System.Windows.Forms.Padding(0); + this.btAClear.motAccControl = null; + this.btAClear.motCommand = arFrame.Control.MotCommandButton.eCommand.AbsoluteMove; + this.btAClear.motSpdControl = null; + this.btAClear.motValueControl = null; + this.btAClear.Name = "btAClear"; + this.btAClear.Size = new System.Drawing.Size(74, 51); + this.btAClear.TabIndex = 4; + this.btAClear.Text = "A.CLR"; + this.toolTip1.SetToolTip(this.btAClear, "서보알람 제거"); + this.btAClear.UseVisualStyleBackColor = true; + this.btAClear.Click += new System.EventHandler(this.btJogAClear_Click); + // + // btJogRight + // + this.btJogRight.BackColor = System.Drawing.Color.Turquoise; + this.btJogRight.Dock = System.Windows.Forms.DockStyle.Fill; + this.btJogRight.Font = new System.Drawing.Font("맑은 고딕", 9F, System.Drawing.FontStyle.Bold); + this.btJogRight.ForeColor = System.Drawing.Color.Blue; + this.btJogRight.Location = new System.Drawing.Point(147, 53); + this.btJogRight.Margin = new System.Windows.Forms.Padding(0); + this.btJogRight.motAccControl = null; + this.btJogRight.motCommand = arFrame.Control.MotCommandButton.eCommand.AbsoluteMove; + this.btJogRight.motSpdControl = null; + this.btJogRight.motValueControl = null; + this.btJogRight.Name = "btJogRight"; + this.btJogRight.Size = new System.Drawing.Size(74, 51); + this.btJogRight.TabIndex = 0; + this.btJogRight.Tag = "CW"; + this.btJogRight.Text = "POS"; + this.toolTip1.SetToolTip(this.btJogRight, "정 방향 이동"); + this.btJogRight.UseVisualStyleBackColor = false; + this.btJogRight.MouseDown += new System.Windows.Forms.MouseEventHandler(this.btJogDown_Click); + this.btJogRight.MouseUp += new System.Windows.Forms.MouseEventHandler(this.btJogUp_Click); + // + // chkJogMoveForce + // + this.chkJogMoveForce.AutoSize = true; + this.chkJogMoveForce.Dock = System.Windows.Forms.DockStyle.Bottom; + this.chkJogMoveForce.Font = new System.Drawing.Font("맑은 고딕", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.chkJogMoveForce.ForeColor = System.Drawing.Color.Gold; + this.chkJogMoveForce.Location = new System.Drawing.Point(10, 477); + this.chkJogMoveForce.Name = "chkJogMoveForce"; + this.chkJogMoveForce.Size = new System.Drawing.Size(222, 25); + this.chkJogMoveForce.TabIndex = 59; + this.chkJogMoveForce.Text = "조그모드 강제 이동"; + this.chkJogMoveForce.UseVisualStyleBackColor = true; + this.chkJogMoveForce.Click += new System.EventHandler(this.chkJogMoveForce_Click); + // + // panel10 + // + this.panel10.Dock = System.Windows.Forms.DockStyle.Top; + this.panel10.Location = new System.Drawing.Point(0, 161); + this.panel10.Name = "panel10"; + this.panel10.Size = new System.Drawing.Size(772, 5); + this.panel10.TabIndex = 41; + // + // tabControl2 + // + this.tabControl2.Controls.Add(this.tabPage7); + this.tabControl2.Dock = System.Windows.Forms.DockStyle.Bottom; + this.tabControl2.Location = new System.Drawing.Point(0, 671); + this.tabControl2.Name = "tabControl2"; + this.tabControl2.SelectedIndex = 0; + this.tabControl2.Size = new System.Drawing.Size(772, 122); + this.tabControl2.TabIndex = 45; + // + // tabPage7 + // + this.tabPage7.Controls.Add(this.logTextBox1); + this.tabPage7.Location = new System.Drawing.Point(4, 27); + this.tabPage7.Name = "tabPage7"; + this.tabPage7.Padding = new System.Windows.Forms.Padding(3); + this.tabPage7.Size = new System.Drawing.Size(764, 91); + this.tabPage7.TabIndex = 0; + this.tabPage7.Text = "Log"; + this.tabPage7.UseVisualStyleBackColor = true; + // + // logTextBox1 + // + this.logTextBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); + this.logTextBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.logTextBox1.ColorList = new arCtl.sLogMessageColor[0]; + this.logTextBox1.DateFormat = "mm:ss"; + this.logTextBox1.DefaultColor = System.Drawing.Color.LightGray; + this.logTextBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.logTextBox1.EnableDisplayTimer = true; + this.logTextBox1.EnableGubunColor = true; + this.logTextBox1.Font = new System.Drawing.Font("맑은 고딕", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.logTextBox1.ListFormat = "[{0}] {1}"; + this.logTextBox1.Location = new System.Drawing.Point(3, 3); + this.logTextBox1.Margin = new System.Windows.Forms.Padding(0); + this.logTextBox1.MaxListCount = ((ushort)(200)); + this.logTextBox1.MaxTextLength = ((uint)(4000u)); + this.logTextBox1.MessageInterval = 50; + this.logTextBox1.Name = "logTextBox1"; + this.logTextBox1.Size = new System.Drawing.Size(758, 85); + this.logTextBox1.TabIndex = 42; + this.logTextBox1.Text = ""; + // + // panel2 + // + this.panel2.Dock = System.Windows.Forms.DockStyle.Right; + this.panel2.Location = new System.Drawing.Point(772, 161); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(6, 632); + this.panel2.TabIndex = 143; + // + // tabControl3 + // + this.tabControl3.Controls.Add(this.tabPage2); + this.tabControl3.Dock = System.Windows.Forms.DockStyle.Right; + this.tabControl3.Location = new System.Drawing.Point(778, 161); + this.tabControl3.Name = "tabControl3"; + this.tabControl3.SelectedIndex = 0; + this.tabControl3.Size = new System.Drawing.Size(381, 632); + this.tabControl3.TabIndex = 142; + // + // tabPage2 + // + this.tabPage2.Location = new System.Drawing.Point(4, 27); + this.tabPage2.Name = "tabPage2"; + this.tabPage2.Padding = new System.Windows.Forms.Padding(3); + this.tabPage2.Size = new System.Drawing.Size(373, 601); + this.tabPage2.TabIndex = 0; + this.tabPage2.Text = "Command"; + this.tabPage2.UseVisualStyleBackColor = true; + // + // groupBox3 + // + this.groupBox3.Controls.Add(this.tblFG); + this.groupBox3.Dock = System.Windows.Forms.DockStyle.Top; + this.groupBox3.ForeColor = System.Drawing.Color.White; + this.groupBox3.Location = new System.Drawing.Point(0, 0); + this.groupBox3.Margin = new System.Windows.Forms.Padding(10, 3, 3, 3); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Padding = new System.Windows.Forms.Padding(10, 3, 10, 10); + this.groupBox3.Size = new System.Drawing.Size(1159, 161); + this.groupBox3.TabIndex = 35; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "Motion Status"; + // + // tblFG + // + this.tblFG.arVeriticalDraw = false; + this.tblFG.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(120)))), ((int)(((byte)(120)))), ((int)(((byte)(120))))); + this.tblFG.BorderSize = 1; + colorListItem1.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(210)))), ((int)(((byte)(210)))), ((int)(((byte)(210))))); + colorListItem1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(230)))), ((int)(((byte)(230)))), ((int)(((byte)(230))))); + colorListItem1.Remark = "title"; + colorListItem2.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(160)))), ((int)(((byte)(160)))), ((int)(((byte)(160))))); + colorListItem2.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180))))); + colorListItem2.Remark = "gray"; + colorListItem3.BackColor1 = System.Drawing.Color.Orange; + colorListItem3.BackColor2 = System.Drawing.Color.DarkOrange; + colorListItem3.Remark = "orange"; + colorListItem4.BackColor1 = System.Drawing.Color.Green; + colorListItem4.BackColor2 = System.Drawing.Color.ForestGreen; + colorListItem4.Remark = "green"; + colorListItem5.BackColor1 = System.Drawing.Color.Red; + colorListItem5.BackColor2 = System.Drawing.Color.Tomato; + colorListItem5.Remark = "red"; + colorListItem6.BackColor1 = System.Drawing.Color.SkyBlue; + colorListItem6.BackColor2 = System.Drawing.Color.DeepSkyBlue; + colorListItem6.Remark = "blue"; + this.tblFG.ColorList = new arFrame.Control.ColorListItem[] { + colorListItem1, + colorListItem2, + colorListItem3, + colorListItem4, + colorListItem5, + colorListItem6}; + this.tblFG.Cursor = System.Windows.Forms.Cursors.Arrow; + this.tblFG.Dock = System.Windows.Forms.DockStyle.Fill; + this.tblFG.Font = new System.Drawing.Font("Consolas", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tblFG.FontPin = new System.Drawing.Font("Consolas", 6.75F); + this.tblFG.ForeColor = System.Drawing.Color.Black; + this.tblFG.ForeColorPin = System.Drawing.Color.WhiteSmoke; + this.tblFG.Location = new System.Drawing.Point(10, 22); + this.tblFG.MatrixSize = new System.Drawing.Point(9, 7); + this.tblFG.MenuBorderSize = 1; + this.tblFG.MenuGap = 5; + this.tblFG.MinimumSize = new System.Drawing.Size(100, 50); + this.tblFG.Name = "tblFG"; + this.tblFG.Names = null; + this.tblFG.ShadowColor = System.Drawing.Color.White; + this.tblFG.showDebugInfo = false; + this.tblFG.ShowIndexString = true; + this.tblFG.Size = new System.Drawing.Size(1139, 129); + this.tblFG.TabIndex = 35; + this.tblFG.Tags = null; + this.tblFG.Text = "gridView1"; + this.tblFG.TextAttachToImage = true; + this.tblFG.Titles = new string[] { + "Axis|CMD|ACT|HOME|-|+|INP|ALM|HOME.SET", + "[0] AxisName||||||||", + "[1] AxisName||||||||", + "[2] AxisName||||||||", + "[3] AxisName||||||||", + "[4] AxisName||||||||", + "[5] AxisName||||||||"}; + this.tblFG.Values = new ushort[] { + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(1)), + ((ushort)(2)), + ((ushort)(3)), + ((ushort)(4)), + ((ushort)(5)), + ((ushort)(6)), + ((ushort)(7)), + ((ushort)(8)), + ((ushort)(9)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0)), + ((ushort)(0))}; + // + // tmDisplay + // + this.tmDisplay.Interval = 500; + this.tmDisplay.Tick += new System.EventHandler(this.tmDisplay_Tick); + // + // button31 + // + this.button31.BackColor = System.Drawing.Color.Transparent; + this.button31.Cursor = System.Windows.Forms.Cursors.Hand; + this.button31.Dock = System.Windows.Forms.DockStyle.Right; + this.button31.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(51)))), ((int)(((byte)(51))))); + this.button31.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button31.Font = new System.Drawing.Font("Consolas", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.button31.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(151)))), ((int)(((byte)(151)))), ((int)(((byte)(151))))); + this.button31.Location = new System.Drawing.Point(1296, 0); + this.button31.Name = "button31"; + this.button31.Size = new System.Drawing.Size(44, 32); + this.button31.TabIndex = 59; + this.button31.Text = "X"; + this.toolTip1.SetToolTip(this.button31, "종료"); + this.button31.UseVisualStyleBackColor = false; + this.button31.Click += new System.EventHandler(this.button31_Click); + // + // button7 + // + this.button7.BackColor = System.Drawing.Color.Transparent; + this.button7.Cursor = System.Windows.Forms.Cursors.Hand; + this.button7.Dock = System.Windows.Forms.DockStyle.Right; + this.button7.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(51)))), ((int)(((byte)(51))))); + this.button7.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button7.Font = new System.Drawing.Font("Consolas", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.button7.ForeColor = System.Drawing.Color.DimGray; + this.button7.Location = new System.Drawing.Point(1120, 0); + this.button7.Name = "button7"; + this.button7.Size = new System.Drawing.Size(176, 32); + this.button7.TabIndex = 61; + this.button7.Text = "PICKER - SAFE AREA"; + this.toolTip1.SetToolTip(this.button7, "종료"); + this.button7.UseVisualStyleBackColor = false; + // + // panLeft + // + this.panLeft.Controls.Add(this.dv); + this.panLeft.Controls.Add(this.arLabel18); + this.panLeft.Dock = System.Windows.Forms.DockStyle.Left; + this.panLeft.Location = new System.Drawing.Point(5, 5); + this.panLeft.Name = "panLeft"; + this.panLeft.Size = new System.Drawing.Size(166, 793); + this.panLeft.TabIndex = 3; + // + // arLabel18 + // + this.arLabel18.BackColor = System.Drawing.Color.Gray; + this.arLabel18.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.arLabel18.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel18.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.arLabel18.BorderColorOver = System.Drawing.Color.DodgerBlue; + this.arLabel18.BorderSize = new System.Windows.Forms.Padding(0); + this.arLabel18.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel18.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel18.Dock = System.Windows.Forms.DockStyle.Top; + this.arLabel18.Font = new System.Drawing.Font("Cambria", 14.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic)))); + this.arLabel18.ForeColor = System.Drawing.Color.White; + this.arLabel18.GradientEnable = true; + this.arLabel18.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel18.GradientRepeatBG = false; + this.arLabel18.isButton = false; + this.arLabel18.Location = new System.Drawing.Point(0, 0); + this.arLabel18.Margin = new System.Windows.Forms.Padding(0); + this.arLabel18.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel18.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel18.msg = null; + this.arLabel18.Name = "arLabel18"; + this.arLabel18.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel18.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel18.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel18.ProgressEnable = false; + this.arLabel18.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel18.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel18.ProgressMax = 100F; + this.arLabel18.ProgressMin = 0F; + this.arLabel18.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel18.ProgressValue = 0F; + this.arLabel18.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel18.Sign = ""; + this.arLabel18.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel18.SignColor = System.Drawing.Color.Yellow; + this.arLabel18.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel18.Size = new System.Drawing.Size(166, 34); + this.arLabel18.TabIndex = 6; + this.arLabel18.Text = "--"; + this.arLabel18.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel18.TextShadow = true; + this.arLabel18.TextVisible = true; + // + // panel6 + // + this.panel6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.panel6.Controls.Add(this.panel1); + this.panel6.Controls.Add(this.splitH); + this.panel6.Controls.Add(this.panLeft); + this.panel6.Controls.Add(this.panel9); + this.panel6.Controls.Add(this.panTopMenu); + this.panel6.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel6.Location = new System.Drawing.Point(5, 37); + this.panel6.Name = "panel6"; + this.panel6.Padding = new System.Windows.Forms.Padding(5); + this.panel6.Size = new System.Drawing.Size(1340, 858); + this.panel6.TabIndex = 4; + // + // splitH + // + this.splitH.Dock = System.Windows.Forms.DockStyle.Left; + this.splitH.Location = new System.Drawing.Point(171, 5); + this.splitH.Name = "splitH"; + this.splitH.Size = new System.Drawing.Size(5, 793); + this.splitH.TabIndex = 4; + // + // panel9 + // + this.panel9.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel9.Location = new System.Drawing.Point(5, 798); + this.panel9.Name = "panel9"; + this.panel9.Size = new System.Drawing.Size(1330, 5); + this.panel9.TabIndex = 75; + // + // panTopMenu + // + this.panTopMenu.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.panTopMenu.Controls.Add(this.button6); + this.panTopMenu.Controls.Add(this.button4); + this.panTopMenu.Controls.Add(this.panel13); + this.panTopMenu.Controls.Add(this.button2); + this.panTopMenu.Controls.Add(this.btSave); + this.panTopMenu.Controls.Add(this.btDel); + this.panTopMenu.Controls.Add(this.btAdd); + this.panTopMenu.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panTopMenu.Location = new System.Drawing.Point(5, 803); + this.panTopMenu.Name = "panTopMenu"; + this.panTopMenu.Size = new System.Drawing.Size(1330, 50); + this.panTopMenu.TabIndex = 134; + // + // button6 + // + this.button6.Dock = System.Windows.Forms.DockStyle.Left; + this.button6.FlatAppearance.BorderSize = 0; + this.button6.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button6.Font = new System.Drawing.Font("맑은 고딕", 11.25F); + this.button6.Image = global::Project.Properties.Resources.icons8_checked_40; + this.button6.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.button6.Location = new System.Drawing.Point(449, 0); + this.button6.Name = "button6"; + this.button6.Size = new System.Drawing.Size(95, 50); + this.button6.TabIndex = 23; + this.button6.Text = "적용"; + this.button6.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.button6.UseVisualStyleBackColor = true; + this.button6.Click += new System.EventHandler(this.button6_Click); + // + // button4 + // + this.button4.Dock = System.Windows.Forms.DockStyle.Left; + this.button4.FlatAppearance.BorderSize = 0; + this.button4.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button4.Font = new System.Drawing.Font("맑은 고딕", 11.25F); + this.button4.Image = global::Project.Properties.Resources.icons8_copy_40; + this.button4.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.button4.Location = new System.Drawing.Point(354, 0); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(95, 50); + this.button4.TabIndex = 22; + this.button4.Text = "복사"; + this.button4.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.button4.UseVisualStyleBackColor = true; + this.button4.Click += new System.EventHandler(this.button4_Click); + // + // panel13 + // + this.panel13.Dock = System.Windows.Forms.DockStyle.Left; + this.panel13.Location = new System.Drawing.Point(345, 0); + this.panel13.Name = "panel13"; + this.panel13.Size = new System.Drawing.Size(9, 50); + this.panel13.TabIndex = 21; + // + // button2 + // + this.button2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(60)))), ((int)(((byte)(60))))); + this.button2.Dock = System.Windows.Forms.DockStyle.Right; + this.button2.FlatAppearance.BorderSize = 0; + this.button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button2.Font = new System.Drawing.Font("맑은 고딕", 11.25F); + this.button2.Image = global::Project.Properties.Resources.icons8_checked_radio_button_48; + this.button2.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.button2.Location = new System.Drawing.Point(1115, 0); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(215, 50); + this.button2.TabIndex = 20; + this.button2.Text = "이 모델을 선택합니다"; + this.button2.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.button2.UseVisualStyleBackColor = false; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // btSave + // + this.btSave.Dock = System.Windows.Forms.DockStyle.Left; + this.btSave.FlatAppearance.BorderSize = 0; + this.btSave.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btSave.Font = new System.Drawing.Font("맑은 고딕", 11.25F); + this.btSave.Image = global::Project.Properties.Resources.icons8_save_40; + this.btSave.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.btSave.Location = new System.Drawing.Point(230, 0); + this.btSave.Name = "btSave"; + this.btSave.Size = new System.Drawing.Size(115, 50); + this.btSave.TabIndex = 19; + this.btSave.Text = "저장(&S)"; + this.btSave.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.btSave.UseVisualStyleBackColor = true; + this.btSave.Click += new System.EventHandler(this.btSave_Click); + // + // btDel + // + this.btDel.Dock = System.Windows.Forms.DockStyle.Left; + this.btDel.FlatAppearance.BorderSize = 0; + this.btDel.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btDel.Font = new System.Drawing.Font("맑은 고딕", 11.25F); + this.btDel.Image = global::Project.Properties.Resources.icons8_cancel_40; + this.btDel.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.btDel.Location = new System.Drawing.Point(115, 0); + this.btDel.Name = "btDel"; + this.btDel.Size = new System.Drawing.Size(115, 50); + this.btDel.TabIndex = 18; + this.btDel.Text = "삭제(&D)"; + this.btDel.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.btDel.UseVisualStyleBackColor = true; + this.btDel.Click += new System.EventHandler(this.btDel_Click); + // + // btAdd + // + this.btAdd.Dock = System.Windows.Forms.DockStyle.Left; + this.btAdd.FlatAppearance.BorderSize = 0; + this.btAdd.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btAdd.Font = new System.Drawing.Font("맑은 고딕", 11.25F); + this.btAdd.Image = global::Project.Properties.Resources.icons8_new_40; + this.btAdd.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.btAdd.Location = new System.Drawing.Point(0, 0); + this.btAdd.Name = "btAdd"; + this.btAdd.Size = new System.Drawing.Size(115, 50); + this.btAdd.TabIndex = 17; + this.btAdd.Text = "추가(&A)"; + this.btAdd.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.btAdd.UseVisualStyleBackColor = true; + this.btAdd.Click += new System.EventHandler(this.btAdd_Click); + // + // panTitleBar + // + this.panTitleBar.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); + this.panTitleBar.Controls.Add(this.lbTitle); + this.panTitleBar.Controls.Add(this.button7); + this.panTitleBar.Controls.Add(this.button31); + this.panTitleBar.Dock = System.Windows.Forms.DockStyle.Top; + this.panTitleBar.Location = new System.Drawing.Point(5, 5); + this.panTitleBar.Name = "panTitleBar"; + this.panTitleBar.Size = new System.Drawing.Size(1340, 32); + this.panTitleBar.TabIndex = 133; + // + // lbTitle + // + this.lbTitle.BackColor = System.Drawing.Color.Transparent; + this.lbTitle.BackColor2 = System.Drawing.Color.Transparent; + this.lbTitle.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbTitle.BorderColor = System.Drawing.Color.Red; + this.lbTitle.BorderColorOver = System.Drawing.Color.Red; + this.lbTitle.BorderSize = new System.Windows.Forms.Padding(0); + this.lbTitle.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbTitle.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbTitle.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbTitle.Font = new System.Drawing.Font("Cambria", 12F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbTitle.ForeColor = System.Drawing.Color.LightSkyBlue; + this.lbTitle.GradientEnable = true; + this.lbTitle.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lbTitle.GradientRepeatBG = false; + this.lbTitle.isButton = false; + this.lbTitle.Location = new System.Drawing.Point(0, 0); + this.lbTitle.MouseDownColor = System.Drawing.Color.Yellow; + this.lbTitle.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbTitle.msg = null; + this.lbTitle.Name = "lbTitle"; + this.lbTitle.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lbTitle.ProgressBorderColor = System.Drawing.Color.Black; + this.lbTitle.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbTitle.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbTitle.ProgressEnable = false; + this.lbTitle.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbTitle.ProgressForeColor = System.Drawing.Color.Black; + this.lbTitle.ProgressMax = 100F; + this.lbTitle.ProgressMin = 0F; + this.lbTitle.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbTitle.ProgressValue = 0F; + this.lbTitle.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.lbTitle.Sign = ""; + this.lbTitle.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbTitle.SignColor = System.Drawing.Color.Yellow; + this.lbTitle.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbTitle.Size = new System.Drawing.Size(1120, 32); + this.lbTitle.TabIndex = 60; + this.lbTitle.Text = "MODEL(MOTION) SETTING"; + this.lbTitle.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lbTitle.TextShadow = false; + this.lbTitle.TextVisible = true; + this.lbTitle.Click += new System.EventHandler(this.lbTitle_Click); + this.lbTitle.DoubleClick += new System.EventHandler(this.lbTitle_DoubleClick_1); + // + // fModelM + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.DarkOrange; + this.ClientSize = new System.Drawing.Size(1350, 900); + this.Controls.Add(this.panel6); + this.Controls.Add(this.panTitleBar); + this.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.ForeColor = System.Drawing.Color.White; + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fModelM"; + this.Padding = new System.Windows.Forms.Padding(5); + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Motion Setting / Select"; + this.Load += new System.EventHandler(this.@__Load); + ((System.ComponentModel.ISupportInitialize)(this.dv)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bs)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.ds1)).EndInit(); + this.panel1.ResumeLayout(false); + this.tabControl1.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + this.tabPage1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dvPosition)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsPosData)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bindingNavigator1)).EndInit(); + this.bindingNavigator1.ResumeLayout(false); + this.bindingNavigator1.PerformLayout(); + this.panel4.ResumeLayout(false); + this.groupBox4.ResumeLayout(false); + this.groupBox4.PerformLayout(); + this.panel11.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.nudJogVel)).EndInit(); + this.panel8.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.nudPosAbs)).EndInit(); + this.panel7.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.nudPosRel)).EndInit(); + this.tableLayoutPanel1.ResumeLayout(false); + this.tabControl2.ResumeLayout(false); + this.tabPage7.ResumeLayout(false); + this.tabControl3.ResumeLayout(false); + this.groupBox3.ResumeLayout(false); + this.panLeft.ResumeLayout(false); + this.panel6.ResumeLayout(false); + this.panTopMenu.ResumeLayout(false); + this.panTitleBar.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private DataSet1 ds1; + private System.Windows.Forms.DataGridView dv; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.GroupBox groupBox4; + private System.Windows.Forms.Timer tmDisplay; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private arFrame.Control.MotCommandButton btJogUp; + private arFrame.Control.MotCommandButton btJogDn; + private arFrame.Control.MotCommandButton btJogStop; + private arFrame.Control.MotValueNumericUpDown nudJogVel; + private arFrame.Control.MotCommandButton button5; + private arFrame.Control.MotCommandButton btPClear; + private System.Windows.Forms.ToolTip toolTip1; + private arFrame.Control.MotValueNumericUpDown nudPosAbs; + private arFrame.Control.MotLinkLabel linkLabel8; + private System.Windows.Forms.Panel panLeft; + private arFrame.Control.MotLinkLabel linkLabel10; + private arFrame.Control.MotLinkLabel linkLabel11; + private arFrame.Control.MotCommandButton button1; + private arFrame.Control.MotValueNumericUpDown nudPosRel; + private System.Windows.Forms.GroupBox groupBox3; + private arFrame.Control.MotCommandButton button3; + private System.Windows.Forms.BindingSource bs; + private arFrame.Control.MotCommandButton btAClear; + private System.Windows.Forms.DataGridViewTextBoxColumn titleDataGridViewTextBoxColumn; + private arCtl.arLabel arLabel18; + private arFrame.Control.MotCommandButton btSVY; + private arFrame.Control.MotCommandButton btJogLeft; + private arFrame.Control.MotCommandButton btJogRight; + private System.Windows.Forms.Panel panel3; + private System.Windows.Forms.Panel panel4; + private System.Windows.Forms.Panel panel6; + private System.Windows.Forms.Panel splitH; + private System.Windows.Forms.Panel panel9; + private arFrame.Control.GridView tblFG; + private System.Windows.Forms.Panel panel5; + private System.Windows.Forms.Panel panel10; + private arCtl.LogTextBox logTextBox1; + private System.Windows.Forms.CheckBox chkJogMoveForce; + private System.Windows.Forms.TabControl tabControl2; + private System.Windows.Forms.TabPage tabPage7; + public System.Windows.Forms.Panel panTitleBar; + private arCtl.arLabel lbTitle; + private System.Windows.Forms.Button button31; + private System.Windows.Forms.BindingSource bsPosData; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1; + private System.Windows.Forms.Panel panel7; + private System.Windows.Forms.Panel panel8; + private System.Windows.Forms.Panel panel11; + private arCtl.arDatagridView dvPosition; + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.TabControl tabControl3; + private System.Windows.Forms.TabPage tabPage2; + private System.Windows.Forms.Panel panel12; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.Panel panTopMenu; + private System.Windows.Forms.Button btAdd; + private System.Windows.Forms.Button btSave; + private System.Windows.Forms.Button btDel; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Panel panel13; + private System.Windows.Forms.Button button6; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.BindingNavigator bindingNavigator1; + private System.Windows.Forms.ToolStripLabel bindingNavigatorCountItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveFirstItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMovePreviousItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator; + private System.Windows.Forms.ToolStripTextBox bindingNavigatorPositionItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator1; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveNextItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveLastItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator2; + private System.Windows.Forms.ToolStripButton toolStripButton1; + private System.Windows.Forms.ToolStripButton toolStripButton2; + private System.Windows.Forms.DataGridViewTextBoxColumn posTitleDataGridViewTextBoxColumn1; + private System.Windows.Forms.DataGridViewButtonColumn btPos; + private System.Windows.Forms.DataGridViewButtonColumn btspeed; + private System.Windows.Forms.DataGridViewButtonColumn btacc; + private System.Windows.Forms.DataGridViewButtonColumn btdcc; + private System.Windows.Forms.DataGridViewButtonColumn btGo; + private System.Windows.Forms.DataGridViewButtonColumn btSet; + private System.Windows.Forms.ToolStripButton toolStripButton3; + private System.Windows.Forms.Button button7; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/fModelM.cs b/Handler/Project_form2/fModelM.cs new file mode 100644 index 0000000..b41db5e --- /dev/null +++ b/Handler/Project_form2/fModelM.cs @@ -0,0 +1,1035 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Project +{ + public partial class fModelM : Form + { + short axisIndex = 0; + eAxis axis = eAxis.X_PICKER;// + + public string Value = string.Empty; + // Dialog.fBlurPanel fb; + + public fModelM() + { + InitializeComponent(); + + if (System.Diagnostics.Debugger.IsAttached == false) + { + // fb = new Dialog.fBlurPanel(); + //fb.Show(); + } + + + this.KeyPreview = true; + this.KeyDown += (s1, e1) => { if (e1.KeyCode == Keys.Escape) this.Close(); }; + this.StartPosition = FormStartPosition.CenterScreen; + this.FormClosed += __Closed; + + this.lbTitle.MouseMove += LbTitle_MouseMove; + this.lbTitle.MouseUp += LbTitle_MouseUp; + this.lbTitle.MouseDown += LbTitle_MouseDown; + + var axlist = Enum.GetNames(typeof(eAxis)); + var axvalues = Enum.GetValues(typeof(eAxis)); + + var preValueList = new List(); + preValueList.AddRange(new ushort[] { 0, 0, 0, 0, 0, 0, 0, 0, 0 }); + + for (int i = 0; i < axlist.Length; i++) + { + var axTitle = axlist[i]; + var axradio = new RadioButton(); + axradio.Tag = i; //축번호 + axradio.Text = string.Format("[{0}] {1}", i, axTitle); + axradio.Click += radClick_MotAxisSelect; //클릭작업 + axradio.AutoSize = true; + this.flowLayoutPanel1.Controls.Add(axradio); + preValueList.AddRange(new ushort[] { 0, 1, 1, 1, 1, 1, 1, 1, 1 }); + + // this.tabControl1.TabPages[i].Text = string.Format("Axis [{0}]", i); //탭페이지 이름 변경 + tblFG.setTitle(i + 1, 0, axTitle); //모니터링 축정보의 이름 지정 + } + + tblFG.MatrixSize = new Point(tblFG.MatrixSize.X, axlist.Length + 1); + tblFG.Values = preValueList.ToArray(); + for (int i = 1; i <= 6; i++) + tblFG.setItemTextAlign(i, 0, ContentAlignment.MiddleLeft); + + //링크레이블과 버튼 연결 + AttachEvents(); + + + + } + private void __Load(object sender, EventArgs e) + { + this.Show(); + ////'Application.DoEvents(); + + this.ds1.Clear(); + this.ds1.MCModel.Merge(Pub.mdm.dataSet.MCModel); + this.ds1.MCModel.AcceptChanges(); + this.ds1.MCModel.TableNewRow += Model_TableNewRow; + + this.bs.Filter = "isnull(title,'') <> ''"; + this.bsPosData.Filter = "isnull(title,'') = '' and isnull(motindex,-1) = -1"; + this.tmDisplay.Start(); + + //dispal current + if (Pub.Result.isSetmModel) + { + arLabel18.Text = Pub.Result.mModel.Title; + //find data + var datas = this.ds1.MCModel.Select("", this.bs.Sort); + for (int i = 0; i < datas.Length; i++) + { + if (datas[i]["Title"].ToString() == Pub.Result.mModel.Title) + { + this.bs.Position = i; + break; + } + } + } + else arLabel18.Text = "--"; + + if (this.ds1.MCModel.Rows.Count < 1) + { + var newdr = this.ds1.MCModel.NewMCModelRow(); + newdr.Title = "Default"; + newdr.pidx = -1; + newdr.PosIndex = -1; + newdr.idx = ds1.MCModel.Rows.Count + 1; + this.ds1.MCModel.AddMCModelRow(newdr); + } + + //this.axisIndex = 0; //기본Z축 + radClick_MotAxisSelect(this.flowLayoutPanel1.Controls[0], null); + var rad = flowLayoutPanel1.Controls[0] as RadioButton; + rad.Checked = true; + + var fctl = new Dialog.QuickControl(); + fctl.TopLevel = false; + fctl.Visible = true; + fctl.Padding = new Padding(0, 0, 0, 0); + fctl.ForeColor = Color.Black; + fctl.panBG.BackColor = Color.White; + fctl.panBG.ForeColor = Color.Black; + + fctl.groupBox1.ForeColor = Color.Black; + //fctl.groupBox2.ForeColor = Color.Black; + fctl.groupBox3.ForeColor = Color.Black; + + this.tabPage2.Controls.Add(fctl); + fctl.Dock = DockStyle.Fill; + fctl.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + //fctl.FormBorderStyle =.Visible = false; + //fctl.panTopMenuDiv.Visible = false; + /// fctl.panBG.BackColor = this.panel6.BackColor; + fctl.panBG.BorderStyle = BorderStyle.None; + fctl.Show(); + fctl.Dock = DockStyle.Fill; + Pub.log.RaiseMsg += log_RaiseMsg; + //Pub.flag.set(eFlag.JOG, true, "MOTION CONTROL"); + } + + + void AttachEvents() + { + var EventConnectControls = new List(); + EventConnectControls.Add(groupBox4); + // foreach (TabPage page in this.tabControl1.TabPages) + // EventConnectControls.Add(page); + + //linklabel 과 button 에 클릭 이벤트 생성 + foreach (Control page in EventConnectControls) + { + foreach (var ctl in page.Controls) + { + if (ctl.GetType() == typeof(arFrame.Control.MotLinkLabel)) + { + var label = ctl as arFrame.Control.MotLinkLabel; + if (label.motValueControl != null) label.LinkClicked += label_LinkClicked; + + } + else if (ctl.GetType() == typeof(arFrame.Control.MotCommandButton)) + { + var button = ctl as arFrame.Control.MotCommandButton; + if (button.motValueControl != null) button.Click += button_Click; + } + } + } + } + + void button_Click(object sender, EventArgs e) + { + var ctl = sender as arFrame.Control.MotCommandButton; + var nud = ctl.motValueControl as arFrame.Control.MotValueNumericUpDown; + var nudAcc = ctl.motAccControl;// as arFrame.Control.MotValueNumericUpDown; + var nudSpd = ctl.motSpdControl; + if (nud.MotionIndex < 0) + { + Util.MsgE("모션 축 번호가 지정되지 않았습니다\n\n" + + "이름 : " + ctl.Name + "\n" + + "제목 : " + ctl.Text); + return; + } + if ((nudAcc == null || nudSpd == null) && ctl.motCommand != arFrame.Control.MotCommandButton.eCommand.AcceptPosition) + { + Util.MsgE("속도/가속도 컨트롤이 지정되지 않았습니다\n\n" + + "이름 : " + ctl.Name + "\n" + + "제목 : " + ctl.Text); + return; + } + + var axis = (eAxis)nud.MotionIndex; + var pos = (double)nud.Value; + + //모션이 초기화가 안되있다면 오류로 처리한다 + if (Pub.mot.isHomeSet[nud.MotionIndex] == false) + { + Util.MsgE("해당 축은 홈 검색이 완료되지 않았습니다.\n먼저 홈 검색을 완료 하세요"); + return; + } + + + + switch (ctl.motCommand) + { + case arFrame.Control.MotCommandButton.eCommand.AcceptPosition: + + var msg1 = string.Format("모션의 설정값을 변경 하시겠습니까\n" + + "축 : {0}\n" + + "변경전 : {1}\n" + + "변경후 : {2}\n" + + "변경 후 '저장'을 눌러야 영구 기록 됩니다", axis, Pub.mot.dACTPOS[nud.MotionIndex], pos, nud.Value); + + if (Util.MsgQ(msg1) != System.Windows.Forms.DialogResult.Yes) return; + + ChangeCurrentPosition(nud.MotionIndex, nud); + break; + case arFrame.Control.MotCommandButton.eCommand.AbsoluteMove: + case arFrame.Control.MotCommandButton.eCommand.RelativeMove: + + var speed = (double)nudSpd.Value; + var acc = (double)nudAcc.Value; + + + + + var relative = false; + if (ctl.motCommand == arFrame.Control.MotCommandButton.eCommand.RelativeMove) + relative = true; + + var msg = string.Format("모션의 위치를 변경 하시겠습니까\n" + + "축 : {0}\n" + + "현재위치 : {1}\n" + + "대상위치 : {2}\n" + + "이동 시 충돌 가능성이 있는지 반드시 확인 하세요", axis, Pub.mot.dACTPOS[nud.MotionIndex], pos); + + if (Util.MsgQ(msg) != System.Windows.Forms.DialogResult.Yes) return; + + if (!Util_Mot.Move(axis, pos, speed, acc, relative)) + Pub.log.AddE("MOT:MOVE_:" + axis.ToString() + ",Msg=" + Pub.mot.errorMessage); + break; + } + } + + void label_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + var ctl = sender as arFrame.Control.MotLinkLabel; + Pub.ChangeUIPopup(ctl.motValueControl); + } + + private void __Closed(object sender, FormClosedEventArgs e) + { + //if (fb != null) fb.Dispose(); + this.tmDisplay.Enabled = false; + this.ds1.MCModel.TableNewRow -= Model_TableNewRow; + //Pub.flag.set(eFlag.JOG, false, "MOTION CONTROL"); + } + + + #region "Mouse Form Move" + + private Boolean fMove = false; + private Point MDownPos; + + private void LbTitle_DoubleClick(object sender, EventArgs e) + { + if (this.WindowState == FormWindowState.Maximized) this.WindowState = FormWindowState.Normal; + else this.WindowState = FormWindowState.Maximized; + } + private void LbTitle_MouseMove(object sender, MouseEventArgs e) + { + if (fMove) + { + Point offset = new Point(e.X - MDownPos.X, e.Y - MDownPos.Y); + this.Left += offset.X; + this.Top += offset.Y; + offset = new Point(0, 0); + } + } + private void LbTitle_MouseUp(object sender, MouseEventArgs e) + { + fMove = false; + } + private void LbTitle_MouseDown(object sender, MouseEventArgs e) + { + MDownPos = new Point(e.X, e.Y); + fMove = true; + } + + #endregion + + + void log_RaiseMsg(DateTime LogTime, string TypeStr, string Message) + { + if (Message.StartsWith("[EO]") || Message.StartsWith("EO")) + { + return; + } + this.logTextBox1.AddMsg(LogTime, TypeStr, Message); + } + + + + Color sbBackColor = Color.FromArgb(200, 200, 200); + + + void Model_TableNewRow(object sender, DataTableNewRowEventArgs e) + { + // e.Row["SlotCount"] = 20; + } + + private void modelBindingNavigatorSaveItem_Click(object sender, EventArgs e) + { + + } + + private void bs_CurrentChanged(object sender, EventArgs e) + { + //z range 을 표시한다. + + //z position 영역을 문자로 변환한다. + //this.list + var drv = this.bs.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.MCModelRow; + } + + private void tmDisplay_Tick(object sender, EventArgs e) + { + button7.BackColor = Util_DO.GetIOInput(eDIName.PICKER_SAFE) ? Color.Lime : Color.DimGray; //*210111 + + if (Pub.joystick.IsOpen) + this.lbTitle.Text = "MODEL(MOTION) SETTING - JOYSTICK GROUP:" + Pub.Result.JoystickAxisGroup.ToString(); + else + this.lbTitle.Text = "MODEL(MOTION) SETTING"; + + if (Pub.mot.IsInit == false) + { + if (groupBox3.Enabled == true) groupBox3.Enabled = false; + } + else + { + if (groupBox3.Enabled == false) groupBox3.Enabled = true; + + //각축별 기본 상태를 표시해준다. + for (int axis = 0; axis < Pub.system.MotaxisCount; axis++) + { + this.tblFG.setValue(axis + 1, 0, Pub.mot.isSERVOON[axis] ? "title" : "orange"); + this.tblFG.setTitle(axis + 1, 1, string.Format("{0}mm", Pub.mot.dCMDPOS[axis])); + this.tblFG.setTitle(axis + 1, 2, string.Format("{0}mm", Pub.mot.dACTPOS[axis])); + this.tblFG.setValue(axis + 1, 3, Pub.mot.isOrg[axis] ? "blue" : "gray"); //MotStatus_Home[axis].BackColor = Pub.mot.isOrg[axis] ? Color.Lime : sbBackColor; + this.tblFG.setValue(axis + 1, 4, Pub.mot.isLimitN[axis] ? "red" : "gray"); //MotStatus_NLIM[axis].BackColor = Pub.mot.isLimitN[axis] ? Color.Red : sbBackColor; + this.tblFG.setValue(axis + 1, 5, Pub.mot.isLimitP[axis] ? "red" : "gray"); //MotStatus_PLIM[axis].BackColor = Pub.mot.isLimitP[axis] ? Color.Red : sbBackColor; + this.tblFG.setValue(axis + 1, 6, Pub.mot.isINP[axis] ? "blue" : "gray"); //MotStatus_INP[axis].BackColor = Pub.mot.isINP[axis] ? Color.Lime : sbBackColor; + this.tblFG.setValue(axis + 1, 7, Pub.mot.isSERVOAlarm[axis] ? "red" : "gray"); //MotStatus_ALM[axis].BackColor = Pub.mot.isSERVOAlarm[axis] ? Color.Lime : sbBackColor; + this.tblFG.setValue(axis + 1, 8, Pub.mot.isHomeSet[axis] ? "green" : "gray"); //MotStatus_SVON[axis].BackColor = Pub.mot.isHomeSet[axis] ? Color.Lime : Color.Magenta; + } + } + this.tblFG.Invalidate(); + } + + private void dv_DataError(object sender, DataGridViewDataErrorEventArgs e) + { + + } + + private void btSelect_Click(object sender, EventArgs e) + { + + } + + + #region "jog function" + + private void button1_Click(object sender, EventArgs e) + { + //절대값 이동 + var pos = (double)nudPosAbs.Value; + var vel = (double)nudJogVel.Value; + Util_Mot.Move(this.axis, pos, vel, 500, false, !chkJogMoveForce.Checked,!chkJogMoveForce.Checked); + Pub.log.AddI(string.Format("{0}번 축 수동이동(ABS) {1}mm", axisIndex, pos)); + } + + private void button3_Click_1(object sender, EventArgs e) + { + + //상대값 이동 + var pos = (double)nudPosRel.Value; + var vel = (double)nudJogVel.Value; + Util_Mot.Move(this.axis, pos, vel, 500, true, !chkJogMoveForce.Checked, !chkJogMoveForce.Checked); + Pub.log.AddI(string.Format("{0}번 축 수동이동(REL) {1}mm", axisIndex, pos)); + } + + + private void btJogHome_Click(object sender, EventArgs e) + { + //jog-home + + var dlg = Util.MsgQ(string.Format("{0} 축의 홈 검색을 실행하시겠습니까?", this.axis)); + if (dlg != System.Windows.Forms.DialogResult.Yes) return; + var rlt = Util_Mot.Home("Model(UserControl)", this.axis); + if (rlt == false) + { + Util.MsgE(Pub.mot.errorMessage); + return; + } + Pub.log.Add(string.Format("user click : home ({0})", axisIndex)); + } + + private void btJogPClear_Click(object sender, EventArgs e) + { + var dlg = Util.MsgQ("위치값을 초기화 하시겠습니까?\n" + + "실 사용전에는 반드시 홈 작업을 진행하세요"); + if (dlg != System.Windows.Forms.DialogResult.Yes) return; + //jog pos-clear + Pub.mot.ClearPosition((short)axisIndex); + Pub.mot.isHomeSet[axisIndex] = false; //홈셋도 풀어야한다 201222 + Pub.log.Add(string.Format("user click : pos clear ({0})", axisIndex)); + } + + private void btJogAClear_Click(object sender, EventArgs e) + { + //jog-alaram clear + Pub.mot.SetAlarmClearOn(this.axisIndex); + System.Threading.Thread.Sleep(200); + Pub.mot.SetAlarmClearOff(this.axisIndex); + Pub.log.Add(string.Format("user click : alarm clear ({0})", axisIndex)); + } + + private void btJogBrake_Click(object sender, EventArgs e) + { + //jog-brake + //var curstate = Util_DO.GetIOOutput(eDOName.BRAKE_OFF); + //Util_DO.SetBrake(!curstate); + //Pub.log.Add(string.Format("user click : set brake ({0})", axisIndex)); + } + + private void btJogSVon_Click(object sender, EventArgs e) + { + //jog-svon + var curstate = Pub.mot.isSERVOON[axisIndex]; + Pub.mot.SetSVON((short)axisIndex, !curstate); + Pub.log.Add(string.Format("user click : servo on ({0})", axisIndex)); + } + + + private void btJogStop_Click(object sender, EventArgs e) + { + //jog-stop + Pub.mot.MoveStop("JOG", this.axisIndex); + Pub.log.Add(string.Format("user click : move stop ({0})", axisIndex)); + } + + private void btJogDown_Click(object sender, MouseEventArgs e) + { + //jog-moouse down + var bt = sender as Button; + var tag = bt.Tag.ToString(); + var vel1 = (double)this.nudJogVel.Value; + var acc1 = (double)1000.0; + + arDev.AzinAxt.eMotionDirection motDir = arDev.AzinAxt.eMotionDirection.Positive; + if (tag == "CCW") motDir = arDev.AzinAxt.eMotionDirection.Negative; + + Boolean jogMoveForce = this.chkJogMoveForce.Checked; + if (!Pub.mot.JOG(this.axisIndex, motDir, vel1, acc1, acc1, false, !jogMoveForce)) + Pub.log.AddE("MOT:JOG:" + tag + ":" + Pub.mot.errorMessage); + + Pub.log.Add(string.Format("user click : jog start ({0}) - {1}", axisIndex, tag)); + } + + private void btJogUp_Click(object sender, MouseEventArgs e) + { + //jog-mouseup + var bt = sender as Button; + var tag = bt.Tag.ToString(); + Pub.mot.MoveStop("JOG", this.axisIndex); //선택된 축을 멈춘다. + Pub.log.Add(string.Format("user click : jog stop ({0})", axisIndex)); + } + + #endregion + + //void ChangeUIPopup(NumericUpDown valueCtl) + //{ + // var value = valueCtl.Value.ToString(); + // Dialog.fInput f = new Dialog.fInput(value); + // if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK) + // valueCtl.Value = decimal.Parse(f.tbInput.Text); + //} + void ChangeCurrentPosition(int Axis, NumericUpDown valueCtl) + { + valueCtl.Value = (decimal)Pub.mot.dACTPOS[Axis]; + } + + private void toolStripButton2_Click_1(object sender, EventArgs e) + { + //iocontrol + var f = new Dialog.QuickControl(); + f.TopMost = true; + f.Opacity = 0.95; + f.Show(); + } + + private void bindingNavigatorDeleteItem_Click(object sender, EventArgs e) + { + + } + + private void radClick_MotAxisSelect(object sender, EventArgs e) + { + var rad = sender as RadioButton; + this.axisIndex = short.Parse(rad.Tag.ToString()); + this.axis = (eAxis)this.axisIndex; + var axisTitle = rad.Text.Substring(3).Trim(); //.Substring(rad.Text.Substring(3)); + + var drv = this.bs.Current as DataRowView; + if (drv == null) return; + + var dr = drv.Row as DataSet1.MCModelRow; + + //모든 라디오 박스의 색상을 원복한다 + foreach (RadioButton rd in this.flowLayoutPanel1.Controls) rd.ForeColor = Color.White; + rad.ForeColor = Color.Yellow; //선택된 것은 라임색으로 변경 + + // this.tabControl1.SelectedIndex = axisIndex; //탭메뉴를 변경해준다. + + //선택된 축에따라서 조그모드 성격을 변경한다 + if (axisTitle.StartsWith("Z_")) + { + // nudJogVel.Value = this.nudSpdLoaderSlow.Value; + btJogLeft.Visible = false; + btJogRight.Visible = false; + btJogUp.Text = "UP(-)"; btJogUp.Visible = true; btJogUp.Tag = "CCW"; + btJogDn.Text = "DOWN(+)"; btJogDn.Visible = true; btJogDn.Tag = "CW"; + } + else if (axisTitle.StartsWith("X_")) + { + // nudJogVel.Value = nudSpdIndex1Slow.Value; + btJogUp.Visible = false; + btJogDn.Visible = false; + btJogLeft.Text = "LEFT(-)"; btJogLeft.Visible = true; btJogLeft.Tag = "CCW"; + btJogRight.Text = "RIGHT(+)"; btJogRight.Visible = true; btJogRight.Tag = "CW"; + } + else if (axisTitle.StartsWith("Y_")) + { + // nudJogVel.Value = nudSpdVision.Value; + btJogLeft.Visible = false; + btJogRight.Visible = false; + btJogUp.Text = "FAR(+)"; btJogUp.Visible = true; btJogUp.Tag = "CW"; + btJogDn.Text = "NEAR(-)"; btJogDn.Visible = true; btJogDn.Tag = "CCW"; + } + RefreshMotorPosition(); + } + + private void toolStripButton2_Click(object sender, EventArgs e) + { + + } + + private void tbClose_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void bs_CurrentChanged_1(object sender, EventArgs e) + { + + //BindingData(); + } + void RefreshMotorPosition() + { + var drv = this.bs.Current as DataRowView; + if (drv == null) + { + bsPosData.Filter = string.Format("pidx={0}", -1); //아무것도 보이지 않게 한다 + } + else + { + //해당 선택된 모터의 값을 체크한다 + var dr = drv.Row as DataSet1.MCModelRow; + + //위치정보 표시 + bsPosData.Filter = string.Format("pidx={0} and motindex = {1}", dr.idx, this.axisIndex); + + //(위치정보) 데이터수량이 맞지 않으면 재 생성한다 + string[] list = null; + Array val = null; + Type axType = null; + if (this.axisIndex == (int)eAxis.X_PICKER) axType = typeof(eAxisPXPos); + else if (this.axisIndex == (int)eAxis.Z_PICKER) axType = typeof(eAxisPZPos); + else if (this.axisIndex == (int)eAxis.Z_THETA) axType = typeof(eAxisPTPos); + + else if (this.axisIndex == (int)eAxis.PL_MOVE) axType = typeof(eAxisPLMovePos); + else if (this.axisIndex == (int)eAxis.PL_UPDN) axType = typeof(eAxisPLUPDNPos); + else if (this.axisIndex == (int)eAxis.PR_MOVE) axType = typeof(eAxisPRMovePos); + else if (this.axisIndex == (int)eAxis.PR_UPDN) axType = typeof(eAxisPRUPDNPos); + + + list = Enum.GetNames(axType); + val = Enum.GetValues(axType); + + var sb = new System.Text.StringBuilder(); + var cntI = 0; + var cntE = 0; + var cntD = 0; + + //posidx == -1인 데이터는 모두 소거한다 + var dellist = ds1.MCModel.Where(t => t.pidx == dr.idx && t.MotIndex == this.axisIndex && t.PosIndex == -1).ToList(); //메인목록은 남겨둔다 + cntD += dellist.Count(); + foreach (var item in dellist) + item.Delete(); + ds1.MCModel.AcceptChanges(); + + //모든데이터의 체크상태를 off한다. + var alllist = this.ds1.MCModel.Where(t => t.pidx == dr.idx && t.MotIndex == this.axisIndex); + foreach (var item in alllist) + item.Check = false; + ds1.MCModel.AcceptChanges(); + + for (int i = 0; i < list.Length; i++) + { + var arrTitle = list[i]; + var arrIndex = (short)((eAxis)(val.GetValue(i))); + + //이 값이 데이터가 없다면 추가하고, 있다면 이름을 검사해서 결과를 안내한다 + var pDr = this.ds1.MCModel.Where(t => t.pidx == dr.idx && t.PosIndex == arrIndex && t.MotIndex == axisIndex).FirstOrDefault(); + if (pDr == null) + { + cntI += 1; + var newdr = this.ds1.MCModel.NewMCModelRow(); + + if (ds1.MCModel.Rows.Count == 0) newdr.idx = 1; + else newdr.idx = ds1.MCModel.Max(t => t.idx) + 1; + + newdr.pidx = dr.idx; + newdr.MotIndex = this.axisIndex; + newdr.PosIndex = arrIndex; + newdr.PosTitle = arrTitle; + newdr.Position = 0.0; + newdr.Speed = 50; + newdr.SpeedAcc = 100; + newdr.Check = true; + + this.ds1.MCModel.AddMCModelRow(newdr); + newdr.EndEdit(); + sb.AppendLine("항목 추가 : " + arrTitle); + } + else + { + //이름이 다르다면 추가해준다. + if (pDr.PosTitle != arrTitle) + { + sb.AppendLine("(위치)항목 변경 : " + pDr.PosTitle + " => " + arrTitle); + cntE += 1; + pDr.PosTitle = arrTitle; + pDr.EndEdit(); + } + pDr.Check = true; + } + } + + //미사용개체 삭제한다 + + var NotUseList = this.ds1.MCModel.Where(t => t.pidx == dr.idx && t.MotIndex == this.axisIndex && t.Check == false).ToList(); + cntD += NotUseList.Count(); + foreach (var item in NotUseList) + item.Delete(); + ds1.MCModel.AcceptChanges(); + + if (cntI > 0) sb.AppendLine("추가수량 : " + cntI.ToString()); + if (cntE > 0) sb.AppendLine("변경수량 : " + cntE.ToString()); + if (cntD > 0) sb.AppendLine("삭제수량 : " + cntD.ToString()); + + //최종 확정 + this.ds1.MCModel.AcceptChanges(); + + if (sb.Length > 0) + { + Util.MsgI(sb.ToString()); + } + } + } + + private void chkJogMoveForce_Click(object sender, EventArgs e) + { + if (chkJogMoveForce.Checked) + { + Util.MsgI( + "조그 강제 이동시에는 충돌 조건을 검사하지 않습니다\n" + + "셔틀 이동 시 주변 장애물을 반드시 확인하시기 바랍니다\n" + + "'강제이동' 은 티칭작업시에만 사용하세요"); + } + } + + private void button10_Click(object sender, EventArgs e) + { + + } + + private void toolStripButton3_Click(object sender, EventArgs e) + { + + + } + + private void button31_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void bindingNavigatorAddNewItem_Click(object sender, EventArgs e) + { + + } + + private void btCapture_Click(object sender, EventArgs e) + { + + } + + private void btAdd_Click(object sender, EventArgs e) + { + var newdr = this.ds1.MCModel.NewMCModelRow();// this.bs.AddNew() as DataRowView; + newdr["Title"] = DateTime.Now.ToShortDateString(); + newdr["pidx"] = -1; + newdr.PosIndex = -1; + newdr["idx"] = this.ds1.MCModel.Rows.Count + 1; + this.ds1.MCModel.AddMCModelRow(newdr); + this.bs.Position = this.bs.Count - 1; + + //모터축을 자동 선택해줌 + radClick_MotAxisSelect(this.flowLayoutPanel1.Controls[0], null); + } + + private void btDel_Click(object sender, EventArgs e) + { + var drv = this.bs.Current as DataRowView; + if (drv == null) return; + var dlg = Util.MsgQ("현재 선택된 자료를 삭제하시겠습니까?"); + if (dlg != System.Windows.Forms.DialogResult.Yes) return; + bs.RemoveCurrent(); + this.ds1.MCModel.AcceptChanges(); + } + + private void btSave_Click(object sender, EventArgs e) + { + //button - save + this.dv.Focus(); + this.Validate(); + this.bs.EndEdit(); + this.bsPosData.EndEdit(); + this.Validate(); + + //numeric number validation (마지막 아이템이 저장안되는 현상이 있었음) + //var EventConnectControls = new List(); + //EventConnectControls.Add(groupBox4); + ////foreach (TabPage page in this.tabControl1.TabPages) + //// EventConnectControls.Add(page); + + ////linklabel 과 button 에 클릭 이벤트 생성 + //foreach (Control page in EventConnectControls) + //{ + // //var ctl = page as ContainerControl; + // // ctl.Validate(); + // foreach (var ctl in page.Controls) + // { + // if (ctl.GetType() == typeof(arFrame.Control.MotLinkLabel)) + // { + // var label = ctl as arFrame.Control.MotLinkLabel;// arFrame.Control.MotLinkLabel; + // // label.Validate(); + + // } + // else if (ctl.GetType() == typeof(LinkLabel)) + // { + // var link = ctl as LinkLabel;//LinkLabel; + // //link.Validate(); + // } + // } + //} + + + //z position 영역을 문자로 변환한다. + //var drv = this.bs.Current as DataRowView; + //if (drv == null) return; + //var dr = drv.Row as DataSet1.MCModelRow; + //dr.EndEdit(); + //this.ds1.AcceptChanges(); + + Dialog.fPassword f = new Dialog.fPassword(); + if (f.ShowDialog() != DialogResult.OK) return; + if (f.tbInput.Text != Pub.setting.Password_Setup) + { + Util.MsgE("Password incorrect"); + return; + } + + Pub.mdm.dataSet.MCModel.Clear(); + Pub.mdm.dataSet.MCModel.Merge(this.ds1.MCModel); + Pub.mdm.dataSet.AcceptChanges(); + Pub.mdm.SaveModelM(); + } + + private void button2_Click(object sender, EventArgs e) + { + //select + this.Invalidate(); + this.bs.EndEdit(); + var drv = this.bs.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.MCModelRow; + if (dr.Title == "") return; + this.Value = dr.Title; + DialogResult = System.Windows.Forms.DialogResult.OK; + } + + private void button6_Click(object sender, EventArgs e) + { + //적용 + + this.bs.EndEdit(); + this.bsPosData.EndEdit(); + this.Validate(); + + var drv = this.bs.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.MCModelRow; + + this.Value = dr.Title; + + Pub.Result.mModel.ReadValue(dr.Title, this.ds1.MCModel); + if (Pub.Result.mModel.isSet) + { + Pub.log.AddAT("모션모델선택완료 : " + Pub.Result.mModel.Title); + } + else Util.MsgE("적용 실패\n\n대상 모델 명이 없습니다"); + } + + private void button4_Click(object sender, EventArgs e) + { + var drv = this.bs.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.MCModelRow; + var dlg = Util.MsgQ(string.Format("다음 모델 정보를 복사하시겠습니까?\n\n모델명 : {0}", dr.Title)); + if (dlg != System.Windows.Forms.DialogResult.Yes) return; + + var newdr = this.ds1.MCModel.NewMCModelRow(); + Util.CopyData(dr, newdr); + newdr.Title += "-copy-"; + newdr.idx = this.ds1.MCModel.OrderByDescending(t => t.idx).FirstOrDefault().idx + 1; + newdr.EndEdit(); + this.ds1.MCModel.AddMCModelRow(newdr); + if (this.bs.Count > 0) this.bs.Position = this.bs.Count - 1; + } + + private void arDatagridView2_CellClick(object sender, DataGridViewCellEventArgs e) + { + //position click + var dv = sender as DataGridView; + var col = this.dvPosition.Columns[e.ColumnIndex]; + var colName = col.Name.ToLower(); + if (colName == "btgo") + { + //현재값으로 모터를 이동 + //현재위치값으로 설정 + var cell = dv.Rows[e.RowIndex].Cells["btpos"]; + var value = (double)cell.Value; + var drv = this.bsPosData.Current as DataRowView; + var drParent = drv.Row as DataSet1.MCModelRow; + + //일반 속도값을 찾는다 + //var speedDr = drParent.Speed;// this.ds1.MCModel.Where(t => t.pidx == drParent.idx && t.MotIndex == axisIndex && t.PosIndex == -1 && t.SpdIndex == (int)eAxisSpeed.Normal).FirstOrDefault(); + var speed = drParent.Speed;// speedDr.Speed;// (double)this.nudJogVel.Value; + var acc = drParent.SpeedAcc;// speedDr.SpeedAcc;// ; (double)nudAcc.Value; + + + var relative = false; + //if (ctl.motCommand == arFrame.Control.MotCommandButton.eCommand.RelativeMove) + // relative = true; + + var msg = string.Format("모션의 위치를 변경 하시겠습니까\n" + + "축 : {0}\n" + + "현재위치 : {1}\n" + + "대상위치 : {2}\n" + + "이동속도 : {3}(가속도:{4})\n" + + "이동 시 충돌 가능성이 있는지 반드시 확인 하세요", axis, Pub.mot.dACTPOS[axisIndex], value, speed, acc); + + if (Util.MsgQ(msg) != System.Windows.Forms.DialogResult.Yes) return; + + if (!Util_Mot.Move(axis, value, speed, acc, relative, !chkJogMoveForce.Checked, !chkJogMoveForce.Checked)) + Pub.log.AddE("MOT:MOVE_:" + axis.ToString() + ",Msg=" + Pub.mot.errorMessage); + + + + } + else if (colName == "btset") + { + //현재위치값으로 설정 + var cell = dv.Rows[e.RowIndex].Cells["btpos"]; + var value = (double)cell.Value; + var nValue = Pub.mot.dACTPOS[this.axisIndex]; + + + var msg1 = string.Format("모션의 설정값을 변경 하시겠습니까\n" + + "축 : {0}\n" + + "변경전 : {1}\n" + + "변경후 : {2}\n" + + "변경 후 '저장'을 눌러야 영구 기록 됩니다", this.axis, value, nValue); + + if (Util.MsgQ(msg1) != System.Windows.Forms.DialogResult.Yes) return; + cell.Value = nValue; + } + else if (colName == "btpos") + { + //현재값 변경 팝업 + var cell = dv.Rows[e.RowIndex].Cells[e.ColumnIndex]; + var value = (double)cell.Value; + value = Pub.ChangeValuePopup(value, "위치 입력"); + cell.Value = value; + } + else if (colName == "btspeed") + { + //현재값 변경 팝업 + var cell = dv.Rows[e.RowIndex].Cells[e.ColumnIndex]; + var value = (double)cell.Value; + value = Pub.ChangeValuePopup(value, "속도 입력"); + cell.Value = value; + } + else if (colName == "btacc") + { + //현재값 변경 팝업 + var cell = dv.Rows[e.RowIndex].Cells[e.ColumnIndex]; + var value = (double)cell.Value; + value = Pub.ChangeValuePopup(value, "가속도 입력"); + cell.Value = value; + } + else if (colName == "btdcc") + { + //현재값 변경 팝업 + var cell = dv.Rows[e.RowIndex].Cells[e.ColumnIndex]; + if (cell.Value.ToString().isEmpty()) cell.Value = "0"; + var value = (double)cell.Value; + value = Pub.ChangeValuePopup(value, "감속도 입력"); + cell.Value = value; + } + + } + + + private void lbTitle_Click(object sender, EventArgs e) + { + + } + + private void lbTitle_DoubleClick_1(object sender, EventArgs e) + { + //if (fb != null) fb.Hide(); + } + + private void linkLabel8_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + //jopgspeed + var value = (double)nudJogVel.Value; + value = Pub.ChangeValuePopup(value, "속도 입력"); + nudJogVel.Value = (decimal)value; + } + + private void linkLabel10_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + //absvalue + var value = (double)this.nudPosAbs.Value; + value = Pub.ChangeValuePopup(value, "속도 입력"); + nudPosAbs.Value = (decimal)value; + } + + private void linkLabel11_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + //reelvalu + var value = (double)nudPosRel.Value; + value = Pub.ChangeValuePopup(value, "속도 입력"); + nudPosRel.Value = (decimal)value; + } + + private void toolStripButton1_Click(object sender, EventArgs e) + { + var dlg = Util.MsgQ("모든 이동좌표의 속도를 일괄 변경하시겠습니까?"); + if (dlg != System.Windows.Forms.DialogResult.Yes) return; + var value = Pub.ChangeValuePopup(100.0, "일괄 속도 변경"); + + for (int i = 0; i < this.bsPosData.Count; i++) + { + this.bsPosData.Position = i; + var drv = this.bsPosData.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.MCModelRow; + dr.Speed = value; + dr.EndEdit(); + } + } + + private void toolStripButton2_Click_2(object sender, EventArgs e) + { + var dlg = Util.MsgQ("모든 이동좌표의 가(감)속도를 일괄 변경하시겠습니까?"); + if (dlg != System.Windows.Forms.DialogResult.Yes) return; + var value = Pub.ChangeValuePopup(100.0, "일괄 가(감)속도 변경"); + + for (int i = 0; i < this.bsPosData.Count; i++) + { + this.bsPosData.Position = i; + var drv = this.bsPosData.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.MCModelRow; + dr.SpeedAcc = value; + dr.EndEdit(); + } + } + + private void toolStripButton3_Click_1(object sender, EventArgs e) + { + var dlg = Util.MsgQ("모든 이동좌표의 감속도를 일괄 변경하시겠습니까?"); + if (dlg != System.Windows.Forms.DialogResult.Yes) return; + var value = Pub.ChangeValuePopup(0, "일괄 감속도 변경"); + + for (int i = 0; i < this.bsPosData.Count; i++) + { + this.bsPosData.Position = i; + var drv = this.bsPosData.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.MCModelRow; + dr.SpeedDcc = value; + dr.EndEdit(); + } + } + } +} + diff --git a/Handler/Project_form2/fModelM.resx b/Handler/Project_form2/fModelM.resx new file mode 100644 index 0000000..8cb49ad --- /dev/null +++ b/Handler/Project_form2/fModelM.resx @@ -0,0 +1,2016 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 292, 17 + + + 17, 17 + + + True + + + True + + + True + + + True + + + True + + + 356, 17 + + + 466, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 + wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0 + v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg + UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA + Iu/O/9T+11gVGSSd+C+b9vW/bvA83AYYZt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPu + lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w + 5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f + Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+ + 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 + n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI + N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f + oAc0QjgAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wwAADsMBx2+oZAAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// + h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B + twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA + kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG + WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9 + 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHoSURBVDhPlZBNiFJRGIa/VRRUEHF13NxoEUUTDDKINwh1 + /MHAv9qJ7TOjaFO0akJ06S5k1kEtDKbSnG4xiX9MoMyMkVQEk3sXTd6r92cRvnnlzEJuDM6zes/H+3zn + cGgexp+FE8rW0m12nA+1ucwrzeV7Rh5tXQkp9cWOkbU6f16u8fMtU5pLX5XmoqjULpa13RsY1flHw6pt + MKycTbDK4Ywal1a1LwnoP+5D33sCdSeEwYfTar/KnWQVM6PW5YXJrRWlfgHabhT6rwwaL6LoFG9hr3oH + ansF0qfjkD7SGlP+z6jGr6qdm2i8jEHXdYzHY+y8TUD7fhd/RPq2X6ZzrGpGbixwcsUqhsNhtNttaJqG + breL6vMQ9J8PIZVpKL0ngdVnUTdt/HDzTDEWiyGZTCKXy6FQKKC8tjKRH6O/QX+lDdoelOgpU8xEo9Gp + LAgCvF4vIpEIlO0Q5IoNsngK+yXiWdXMgex0OuHxeGCxWIwnP+u/m9xcoqtSkTqD15Ri9Vni8Tiy2exU + drvd4DgOxlwu0TXpDYlGxis69nudrht5hmAwiEwmY5IPGKxTgEUzPp8P6XQaDocDLpfLJB9KKpVCr9eD + 3W5HIBA4mmxgLGi1Wsjn89MPY+P58fv9D4xnW63Wo8tE9A9DQQsVv5Q4NwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHoSURBVDhPlZBNiFJRGIa/VRRUEHF13NxoEUUTDDKINwh1 + /MHAv9qJ7TOjaFO0akJ06S5k1kEtDKbSnG4xiX9MoMyMkVQEk3sXTd6r92cRvnnlzEJuDM6zes/H+3zn + cGgexp+FE8rW0m12nA+1ucwrzeV7Rh5tXQkp9cWOkbU6f16u8fMtU5pLX5XmoqjULpa13RsY1flHw6pt + MKycTbDK4Ywal1a1LwnoP+5D33sCdSeEwYfTar/KnWQVM6PW5YXJrRWlfgHabhT6rwwaL6LoFG9hr3oH + ansF0qfjkD7SGlP+z6jGr6qdm2i8jEHXdYzHY+y8TUD7fhd/RPq2X6ZzrGpGbixwcsUqhsNhtNttaJqG + breL6vMQ9J8PIZVpKL0ngdVnUTdt/HDzTDEWiyGZTCKXy6FQKKC8tjKRH6O/QX+lDdoelOgpU8xEo9Gp + LAgCvF4vIpEIlO0Q5IoNsngK+yXiWdXMgex0OuHxeGCxWIwnP+u/m9xcoqtSkTqD15Ri9Vni8Tiy2exU + drvd4DgOxlwu0TXpDYlGxis69nudrht5hmAwiEwmY5IPGKxTgEUzPp8P6XQaDocDLpfLJB9KKpVCr9eD + 3W5HIBA4mmxgLGi1Wsjn89MPY+P58fv9D4xnW63Wo8tE9A9DQQsVv5Q4NwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHpSURBVDhPlZBNiFJRGIa/VRRUEKGOmxstomiCQQbxBqGO + Pxio19qJ7TOjaFO0akJ06S5k1kEtDKbSnG4xiX9MoMyMkVQEk+tp0eS9en8Wg29eObOQG4PzrN7z8T7f + ORyahdFn/oSysXCbHWdDbS5ySnPxnpGHG1fCSn2+Y2Stzp2Xa9xsy5TmwlelOS8qtYtlbfsGhnXu0aBq + 7w8qZxOscjjDxqVl7UsC+o/70HeeQN0Ko//htPq7ajnJKmaGrctz41srSv0CtG0B+q8MGi8EdIq3sFO9 + A7W9BOnTcUgfaYUp/2dY45bVzk00Xsag6zpGoxG23iagfb+LvyJ92yvTOVY1IzfmLHLFJkYiEbTbbWia + hm63i+rzMPSfDyGVaSC9J57Vp1HX7dxg/UwxFoshmUwil8uhUCigvLI0lh9jd432pTXa7JfoKVPMCIIw + kXmeh8/nQzQahbIZhlyxQxZPYa9EHKuaOZBdLhe8Xi+sVqvx5Ge778Y3l+iqVKRO/zWlWH2aeDyObDY7 + kT0eDywWC4y5XKJr0hsSjYxXdOzPKl038hShUAiZTMYkH9BfpSCLZvx+P9LpNJxOJ9xut0k+lFQqhV6v + B4fDgWAweDTZwFjQarWQz+cnH8bGsxMIBB4Yz7bZbEeXiegfP4sLE2SR9nUAAAAASUVORK5CYII= + + + + 195, 17 + + + 88, 17 + + + 81 + + + + AAABAAYAAAAAAAEAIAASGgAAZgAAAICAAAABACAAKAgBAHgaAABAQAAAAQAgAChCAACgIgEAMDAAAAEA + IACoJQAAyGQBACAgAAABACAAqBAAAHCKAQAQEAAAAQAgAGgEAAAYmwEAiVBORw0KGgoAAAANSUhEUgAA + AQAAAAEACAYAAABccqhmAAAZ2UlEQVR42u3da4xu11kf8P+z1r68l5l3Zs7xuXh87OBgk8ZBWEGBGEs0 + caXKBiOiVHI+kMQNbYh6+YIqhBFVq1MqkIxQhVS1KCIo1MT94KhYIBAOaXGDRC7UAoIUm8RxjBOfm89l + 5szMO++7916Xfhh/IlnPPsnMmTMz6/+Tzqe99Mze+333f87WemYtAR1ZH/v4EwMAtTZmOt6OPWWapz/0 + X5tbfS10c5hbfQJEdOswAIgyxgAgyhgDgChjDACijDEAiDLGACDKmNzqE6Dv7MO/9QsVgCJ13FhTlFXx + gFbDGnNaRE5oY6JEtQ8gRlwJHhe1MV3bfTF475Qh7vf+9W+0+3f36EYVuy9BN0kNYKgcHwJ4v1pBcB8E + 9+hDen8HvAzEF3vGfBXATDk+A8AAOID4CkCUMQYAUcYYAEQZYwAQZYwBQJQxBgBRxhgARBljI9BN8OHf + /sVVAAup49aYY6U1/06rUZbFGWPM8dRxY8TcceL4Ga1GXRa2Kgq7m2tpnfNN57w25tzlq6+HEEPqeAjh + ate517UanQ//xYdwTRmy9Xs/9+vnd3Mt9O3YCHRzCADtwSugBMSbFgFMlB9hjIi62o8RI9bs7j95Rowx + Ij3fE5kA6QDAThNQ3/UWPfeMv6xuAr4CEGWMAUCUMQYAUcYYAEQZYwAQZYwBQJQxTq38A49/4heXAVSp + 49aYcWHt/VqNqrC3GyOLqePGmIVRXat/y19Ye8wYk5w6ExFZWRwv6DWMFHZXbQBw3sP5oC4asrY53Yox + vbBICGHLea/N8WO7aZ4NIWyla8TN1vkLPef6ZR/CVBnSPvXRX1/f1Q05YtgH8O1OQ51/x50AfkErYIw5 + VVgzTh0vrLUnVibHtRp1WWK3D+9eKKxFYa36i+L248uL2nHn/aTp3Ko25sKVa7c775MNRw5hCvhLPaf7 + GwC+pRzfALC+LzfukOArAFHGGABEGWMAEGWMAUCUMQYAUcYYAEQZYwAQZexINQI9/ttPvBs7f0f/HVkj + byms+YBWYzwcHLPWJP/OviqLwW2TyV1ajbKw1hiTvLcigDVGn+SXG9iy45CIAKBvQAQfgteGhBBi57y6 + MMmVjY1vtp2bJ3+GD810NlcbkpwPz/gQX1OGbD71c09+af/u3s111BqBBgDGyvFlAOoqOhAsiUiyE1BE + irKw6kIcZWFhdrkQx1EiwE7qKQqrdz2FIEDP91VEbhOR9BZlghbAqOd0lwFcUY53N/l27St+S4kyxgAg + yhgDgChjDACijDEAiDLGACDK2L5MNT/2zGO9P2th++47oEzzGDETgblDqzEoy/tFJLlIRmHNalUU/1Sr + UdfVyBpTpGtYuzQeaVONsNbAyFGZxT8YQozwPqhjrk+3p9qaAj4E1zTttlajdf5PXQjJhUdijFvztv2y + ViMinAsxbChD3Fv+fnSu55Lj2bNn9/o2fpv96gMQ9P9v4wEoTTwA3g5AXUWnrsrlwqYf3kFVFSeWJz2r + 6FgIH94Dx4jA9GxydNvSohrMMUY4749pYy5f3/jAvO2Sc/3OBzdv2+s9p/ssgJeU45sAfv8GLjvewJhd + 4SsAUcYYAEQZYwAQZYwBQJQxBgBRxhgARBljABBlrHfC+2Mf/5hBT1D4wbGHAZSp40bM2wTyoFZjaTy6 + yxhJzuHXZbU4GQ9PazXKorBGWUdDRKSwVr0W9gAcbbFnYRLnQ1B3OYoxds6pC5NsTGcXm67dTNYI0V2f + bn9TPU/Ez4cYvqoM6V55dfBcz+WG/3v2rHrBN9oI1PdUHIeynRZ2dtP5Qa2AEVk2kl4lp7C2HFSVuhBH + YQ0fYFL1fT/KQv8FEWOE1ikKANvz9kTnzHL6JIKHvvsUsLPD0VXleIv+51LQ00zEVwCijDEAiDLGACDK + GAOAKGMMAKKMMQCIMiYf+eRZPQT89HQEVrUhRVH8M0i6D2BQVvcOqvJHtRqLo+GCEUmeS12WxcJoqE4D + WmP6lp8n2pUYAR/0hUm2tmdN03XJ/QlCjGFjOtvSajRd+5fzrn05fSLoOhf/V8/pnjd2eEkbUECfv0eE + vBfAh7UxAvlxxHRPwXhQ2ztOHFPnTuuy5Bw+HXgiO/0mmuXFcQ0g+csqxojlhbG2+A3OX7n2aNN2WsOR + Mybc33O6n8LO4iRJfAUgyhgDgChjDACijDEAiDLGACDKGAOAKGMMAKKMFdj5u2LNn0Hf5AAB8UEoC4JM + m+a+1y5deY9WY1BXJwwkuR7AoCrLpYXRUKtRclMPuslijOi8uh4Irm9tz7TNRQKinzftZa1G03WfC4gv + KkM6AH/Rc7oX0fN878nT8s9/94kHoSwuYsU+YEQe02qMB/WdIukVgRYGdXVieaI2T1RlyS256KYKMUJ5 + tgEAl9c3NrfmTfLBizG66bz5Vs/P+bSP/ovKEPc/PvLk53d7PXwFIMoYA4AoYwwAoowxAIgyxgAgyhgD + gChjN7ovQJ+tnlqX0NNLEGNsoPQS+BgnTded0WugEmVREbOzMYjVaoi2swgdahFADH0bg3gflI1BYoyh + dZ06t+5jPBdj3FBqdAC+0XO6l7DzXCVPdS/uyYH5rj/+O0+8C8Agdbyw5oeskQ9qNQZldZcRSdYY1lV5 + 6tjyklajrkpYw/8YHUU+BDStPod/6dr69ZkyKMQ4n3etuquPD/Fp58PfKkPmT/3LJ1+41fcD4CsAUdYY + AEQZYwAQZYwBQJQxBgBRxhgARBljABBlbK8agfbCKwC0Jp0LAP5OK+BDeGuQdC/BvOtWL1xbf0SrUVp7 + 2ogkFx4prLXLC+MFtUZphb0Ee8uHgK7zahfP+tZ0y/n0ah0hxlnn/UWtRtt1z7ngz6eOx4g5+pt4XgNw + Xbuc/btzugPTCLQXPvLJJ+4BkHx4rTH3GmM+qtWobHGPEUkuPFKXZXn78ZVjWo1BXUqhNxzSd8l5j3nT + qQFw4eratabrtCaezda7r2s1Qgif8CG8rAyZ/e7PPqnWOEz4a4ooYwwAoowxAIgyxgAgyhgDgChjDACi + jB2kPoC90EHpJYjRzGKwa1qBEMs2iknO03qxpuugTkcZExCCMsUqQNHTJyCCI7PJSYwRUV+HAy4EaHfV + +RD77rt3hfdOkp9djKGNMaqff4yYAUFb8ENfUOCQORrfsBv0vn//R0sA3qGNqYbu50Xw9tRxW7b1eOWN + O7UaZT0vjXXJICqs4PTxkXqu40GNujoa+dy0DtN5o465eHUbTunzCb7wXTNQH77p2slv+a5K/qAY8VI7 + K36z53S/8ge/+lPXkQm+AhBljAFAlDEGAFHGGABEGWMAEGWMAUCUMQYAUcYOUB9AVM/lfb/02SVjw1u0 + MUVpH4JgOXm8KEbD4WhVqzGZDH/UFuZ46rixwdbDVl0QBDI3EKdcjwPsBb2EmQJIz52LCCZjvU+grgqU + xe7WJeicR9Pqm9BsTB2i2ulTI4ax/oP87VD70mIREQdBK9HMqq3glSYuF65ubMz+Uqsxm22fd85tp88D + 667zz/fcttee/dVH1nEIHKZOkzGA7+sZ85MA7kgdFJHKWrus/pDx0tJgUCe3KDPGoKoq9SR8aBBj+qEJ + scH6XO81ad0WXJgnjxsRlGWt1jBWdh8A3mPWs5vO2kaDoARAYSpUhd74tDx4K4ykr0ekEGtq9WLasl0K + IZ0R83mzOJ22K1oNEVkHoHUCngPwas9tuwxgHYcAXwGIMsYAIMoYA4AoYwwAoowxAIgyxgAgytieTAM+ + 9tgz6vHwAxMLI+rP8v5zA8R0X0JR2kURo04m28KUIpKcKrLWGmut2m9gjOx6IQ4BtEsBIBD9dsBIBSPp + 6UYRIEY9v0MAfOhZiaNHCNL7c0RK9TeJkar3enfumrqGyg3RPjtjBH2fv7XWxBiVRWViiSh6U4Ng8th/ + +t9TZUQMzusLJITozNc21A1EPv3pD9zgXUnbqz6AvsnmHwDwY9qAsnb/FkByjraqqmrcsyPP6VOnFqqy + TJ6LMQZlVeJmM6bu+a/VCCeK96gjQmgQlF6CGB2ubag9Lbi6dg0uXN3VtRRmGaW9XR1zeuFH1AfcSAFj + 9J6FvdDXn1HXdTmZTI5rY9quO671ErRtd8+lS5feqdWYbk232rbVegnWAPy3nsv5AoCv9YzZ9Q5DfAUg + yhgDgChjDACijDEAiDLGACDKGAOAKGMMAKKMyXvPPq+GwIrvTovyN/YAYK38Yyg9BfVgcHJQD+7Waiws + jH5MjBmmf4Y1Va1P9I5Ho8qadKOHiMDYw5F5MXpEKOtfxICZ0xcV8WGKEGf6z+k5DysjWKP/Lf+wuB2Q + 9H0VGCj9WQeKD0Fd3CR4H6fb29ocP9qmbb33yQ8vhjDb2tr+glZj3sxfbebzN5Qhzvv451qNCJxbs+VF + bUyB/v8FnAJwvzpC8C8ADFKHjZFBVVdq99Sx48cXiyL9dBpjYO3h+BLtBREL0fqrBBhX36fWiNEhRr1X + JPa02Al6mziPFNuzZRuslaqq1K4m732tNRM55xfbzv0TrUbbNVMI5sqQOYC+HYwcAC1E+ApAlDMGAFHG + GABEGWMAEGWMAUCUMQYAUcYYAEQZK07gshoC3k4KQNQGHIE1UMJEYER6ltkROVDbFB0JIsUNrMRDN4O6 + HtTO4kc9v3zFCNSmBAPrep7L2Pt8838ARBljABBljAFAlDEGAFHGGABEGWMAEGWMAUCUsQL9mwtcAPDX + PWM+AWVBkBDDSte16u4S165efY+IJFeeMNYWZVkOtRrj8biyNr2mgIhktaYAffe89+qCIN77sDWdqrv6 + uK6bB++Tu7qEGLe7rv2cViPGeAE7G4gkfwz6n8sL6Hm+96X35v3/8Y/PAHi7Nsaa8pcBJHdtKctyOBwO + jmk1VldXJ1VVJYPIGIO6vvk71NDh1TQN9J2BWnfu/AV1IY75bLbWdZ22FNNVH7pf6zmVl579lUdfv9nX + y1cAoowxAIgyxgAgyhgDgChjDACijDEAiDLGACDK2H6tFnEewKWeMV+E0pfQOndbu7n1Nq3A9tdf+Vci + ktzFyBgzLMtyVatx6tSphcFgoPYSjEZqPxLdItvbM3UOfz6fu0uXLm1pNbrOXQghJOfwY4znOu9+Sz2R + iK8KcEUdAXXTD6C/QW9P7EsAPPsrjwZA2+cKANBpB9/3H56rAKgfntmpkezAMsZ4Y4y6G1bcoY3Yj1tG + 35OodvHFGKP3Xv0AnXM+hOCUIZ1zXv0eAtj4g//8yMatvhs3gq8ARBljABBljAFAlDEGAFHGGABEGWMA + EGXsMO0aMQdwsWfMZwGsKMfHIcS71B8y2/4R59rkugRGTDGfzZa1GvVgIEVRJHsaRARVpe7pkJ22bdUp + POdcbOZzdQqv67r1ENNTeK5zV0OI/6/nVL4JYFs5vob+72HfHP+BkdVmPD/9y3+yAOCt2pjFhfLnRbTF + S2RkpLhPq3Hs+G12OBol760xBsvLS7f6dhwo6+vX1Sae2fZ2vHb1itocE6J7EYjJhzdGvLS51f1mz6l8 + 4w9/7Sf65vmPDL4CEGWMAUCUMQYAUcYYAEQZYwAQZYwBQJQxBgBRxo5UH8DTz/31uwEsJi9WcLeY+DNa + jbqqzxhj0jsUGVPWdX2bVuOV89uytpVe3sD5iAtr6uYyGI0XUNXphUdEBCsry2oNkb35ePX1EYC1tXV1 + TNvMsD3Vp9ZvX6lR2PT5riyU+P7VkXoiTdNcCSEkb3wIYbtpG3WzjRjkf8aIV5Uhmx985J1f2sXtPFAO + UyfgjRgAGKcOimBijZzUCgxrOyysLVPHrTHFcFiqT1ZVAEZZ/0QQ0LWteiGudrBFuu9lrx7uvdC3nZZz + rvd6BQWM8h/SqgAmI/2+z8QXXmkmct4PndM/fx8xiTH9HULPwjWHDV8BiDLGACDKGAOAKGMMAKKMMQCI + MsYAIMrYvkwDPvPMM0BPz4GbfP8d2vkYaybGpDf9AIBhXd8vgoXUcWvNalmYiVpjUA2tMcrGIGKrUr9t + p46NMKyTM4lwPqAsrFqj8RZd1JanF2xtXFdr2LJEUfR8xD3bHDjv4Dp95qsUB0i60HhscftkUa2xenyI + wqZ/H03GJYa1fi3W1FUIMXljfQi2LKy+qIgL93kfkovKxIitZ/7P34y0GiHEc8EHbV8A97Uv/vA56OLZ + szd/qne/+gAE/f/beABKEw+AtwN4v1agrovlwqYf3kFdFidWFha0GkVhYXY5x74y0XcO8iFifUtvBPrK + q+t4/Y1p8ngIEX9/7rJaY7SwiOFYvdzeAJhtb2G6tamOufvUGMak79mZk2O84251+h3LCzWs2e0XfqjN + 3yPECOf8MW3M5bWtD8ybdOI5H9ysafTkBZ4F8JJyfBPA79/ABd30XWj4CkCUMQYAUcYYAEQZYwAQZYwB + QJQxBgBRxhgARBnrnXj9+AsvGPQExdI1+zCAZOeLiLxNBA9qNVaWRndpDTiDulxcXBie1mpUhbWi/KG8 + MSKFNeq17Mff2UcA3gd1zLz1aLv0mBjR20vw+pUZLlzTx/Q5fazGnbfpfQ3LCzW021aVBoNKb3yy1uzL + 6jR9i5s4H0JQBsUQY+u8ukHJ5tbs4rzpks0TPgS3dn37m/p54vMxxq8qQ7pT5fpzPZcbHnroIfWCb7QR + qO+zOQ5A2+vqTgA/qBUwRpaNkeS3pLCmHNZlrV6MNQdqoYwUefNcNQtDAyjPXYxApa+PgfVpi8LoQdNn + cWhxcmXQc64VDsFtB9Af8GXPBxNjhFWazQBgNmtOGCPLyRoQD0DtSAXwLQBXleMt+p9LQU8zEV8BiDLG + ACDKGAOAKGMMAKKMMQCIMsYAIMpY8cnnn1dDoLiG04iyqlYx+EdQ+gDqujgzqEp1Mnk0qEtjJHkuVVXY + /im+QzIXtRdkZ+5cMxmVOLkyvMGC6Rp9Pyen2w5I71RiVRU2KtNvIUTTLnj1g2lad6ZpupkypLvQTu7X + TzWe/+Tzz1/ShhTQ5+8hAe8F8GF1jMiPQ+kpWBgN7JnTK+rc6aAqDsUc/kEhAEY9K+Tce2YJ955ZutWn + eqSI9PdwrEzGNYBkz0qMEcuTkbpE0rlLa4+2rdMajlyE6AEQ8SnsLE6SxFcAoowxAIgyxgAgyhgDgChj + DACijDEAiDLGACDKWIGdvyvW/Bn0TQ4QYnwQSiPQdNbc99r5q+/Ragzr8oSR9HoAdV2WS4tDtXmiKix7 + CeimijFCn54Hrm/OZo2yuUiI0c+aVt3VZd64z4UYX1SGdAD+oud0L6Ln+S5+9qGH+laMuPjmv6SnP/NX + QyiNQPOmq9rOvVOr4X1YMiLJGhGQxbG+MEVEZk1ptO8idnZl0sybzk23Gy0A3HTWaFuHIYT4dR/iXylD + 3Acf/uG/2e318BWAKGMMAKKMMQCIMsYAIMoYA4AoYwwAoozd6L4AfbZ6al1CTy9BjLGJSi+BD2HStN2Z + nhqVkfSiIiIiZWHVHSrECKcSj6gIIPZM4XXO+6hsDBJiDG3n1Ll1H8K5GGNymi/G2AH4Rs/pXsLOc5Xi + 9uKeHJjv+lN/8sK7ACQn+svC/JA15oNajWFd3WVEkjWGg6o8fWKirpAxqEv0bB5Eh5QPAfP09DwA4OLl + jeuzeavN4c9nTavu6uNDeLpz4W+VIfPHf+JdL9zq+wHwFYAoawwAoowxAIgyxgAgyhgDgChjDACijDEA + iDK2V41Ae+EVAFqTzgUAf6cVcM6/VZQ+AMzb1QtvXH9Eq1GW5rSIJBceKQtrlyfjBa1GVVphL8He8iGg + 7bzaxbO+Md3qnE+u1hFjnHVdUNe2mDfdc53z55Uac/Q38bwG4Lp2Oft353QHphFoL3zqj1+4B0Dy4S1K + e6+15qNajaq09xgjyV1b6qosV08uH9NqDOtSikJtOKTvknMes6ZTA+D8G+vXmlZZiSfEzbbzX9dqeB8+ + 4Tr/sjJk9qFH36XWOEz4a4ooYwwAoowxAIgyxgAgyhgDgChjDACijB2kPoC90EHvJZiiZ48DACMAyWnA + iFg7HyqtQOt8FWJU7q3AWqPOExrBkdnkJMaInnU44H3wO0t2fGfOB+d8UBfiiDFeBNAoQzbR//lPoW+m + 0eEIORrfsD301Ge+dBpKL0Fli9XCFP9Gq2GMeYeInEwdLwpr7zi5fJtWYzyqZVAVR+LzmbcuTrcbNQLO + vbF+xelNPG8EH76i1XDB/fc2uPPKkNnjD7+7LwCywlcAoowxAIgyxgAgyhgDgChjDACijDEAiDLGACDK + 2FFrBNoLG9hpBkmZAfgdrUAEVmNMNxOFEMfrG1N1YZLN6fwuYyTZKyAisrQwWNRq1FVpqtLuqpeg7Xxs + 2i5oY65vzTfV3XRCvOK9VzfTCCE+F6Jy3yM2AWhz/MDOojLaZ3dgFuI4KBgA/8DjD797u2dIbzfZU5/5 + 8hKAOnW8NG65bdo7tRpiTaWtTGSMmKowY62GNUZ2GwDO+Tibt2oAXF7b3A4hJsfEGC/GviaeiD/sgqwr + Q5rHH75fW2WHvgd8BSDKGAOAKGMMAKKMMQCIMsYAIMoYA4AoY5wGvDkitNUtgACgb7pxCzs9CSkmxjjR + CoQQKu/Drj7jEIKLMbY9wzbevCbtWvquN/Tcs54lReh7cSQWnDiKnvrMlxehLExiBcNK4i9pNcTKfWLk + nt2cRwzx5eDDi9qYLsqTPspMGTJ7/OH7N/fjvtF3h68ARBljABBljAFAlDEGAFHGGABEGWMAEGWMAUCU + MTYCHVwN9AUs5gCe7anxBQAntAHaQh5vuoL+3XTWADjluAMdSGwEOsKe+ewLAygLkwBA27m+AGg+9JMP + NKAjia8ARBljABBljAFAlDEGAFHGGABEGWMAEGWMAUCUsf8PzNlsT7yleHcAAAAASUVORK5CYIIoAAAA + gAAAAAABAAABACAAAAAAAAAAAQBhCgAAYQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMu6oEzLuqD8y7qg/Mu6oPzLuqD8i2pA7ItqQO + yLakDsi2pA7ItqQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAMy7qgTMu6oPzLuqD8y7qg/Mu6oPyLakDsi2pA7ItqQOyLakDsi2pAQAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLuqBMy7qg/Mu6oPzLuqD8y7qg/ItqQO + yLakDsi2pA7ItqQOyLakBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADMu6oEzLuqD8y7qg/Mu6oPzLuqD8i2pA7ItqQOyLakDsi2pA7ItqQEAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADRuaIN0bmiENG5ohDRuaIQ0LuqQ9C7q2/Qu6tv0Lurb9G9rH/SwK2s0sCtrNLArazSwK2s + 0sCtrNLArazSwK2s0sCtrNC9q37Pu6puz7uqbs+7qm7Pu6lC0bmiENG5ohDRuaIQ0bmiDQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANG5ohLRuaIW0bmiFtG5ohbQu6pb + 0Lurl9C7q5fQu6uX0b2srNLAreXSwK3l0sCt5dLAreXSwK3l0sCt5dLAreXSwK3l0L2rq8+7qpbPu6qW + z7uqls+7qVrRuaIW0bmiFtG5ohbRuaISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA0bmiEtG5ohbRuaIW0bmiFtC7qlvQu6uX0Lurl9C7q5fRvays0sCt5dLAreXSwK3l + 0sCt5dLAreXSwK3l0sCt5dLAreXQvaurz7uqls+7qpbPu6qWz7upWtG5ohbRuaIW0bmiFtG5ohIAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIS0bmiFtG5ohbRuaIW + 0LuqW9C7q5fQu6uX0Lurl9G9rKzSwK3l0sCt5dLAreXSwK3l0sCt5dLAreXSwK3l0sCt5dC9q6vPu6qW + z7uqls+7qpbPu6la0bmiFtG5ohbRuaIW0bmiEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANG5ogPRuaIK0bmiCtG5ogrRuqUO + 0LyrRNC8q0TQvKtE0LyrRNK/rGzTv6x207+sdtO/rHbYx7eg28y9xdvMvcXbzL3F3c7A0eHVxvHh1cbx + 4dXG8eHVxvHh1cbx4dXG8eHVxvHh1cbx3c7A0dvMvcXbzL3F28y9xdjHt6DTv6x207+sdtO/rHbSv6xs + 0LyrRNC8q0TQvKtE0LyrRNG6pQ7RuaIK0bmiCtG5ogrRuaIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA0bmiB9G5ohbRuaIW0bmiFtG6pR7QvKuR0LyrkdC8q5HQvKuR07+t09PArePTwK3j + 08Ct49zNve/j18r649fK+uPXyvrn3ND78erg//Hq4P/x6uD/8erg//Hq4P/x6uD/8erg//Hq4P/n3ND7 + 49fK+uPXyvrj18r63M2979PArePTwK3j08Ct49O/rdPQvKuR0LyrkdC8q5HQvKuR0bqlHtG5ohbRuaIW + 0bmiFtG5ogcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIH0bmiFtG5ohbRuaIW + 0bqlHtC8q5HQvKuR0LyrkdC8q5HTv63T08Ct49PArePTwK3j3M297+PXyvrj18r649fK+ufc0Pvx6uD/ + 8erg//Hq4P/x6uD/8erg//Hq4P/x6uD/8erg/+fc0Pvj18r649fK+uPXyvrczb3v08Ct49PArePTwK3j + 07+t09C8q5HQvKuR0LyrkdC8q5HRuqUe0bmiFtG5ohbRuaIW0bmiBwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAANG5ogfRuaIW0bmiFtG5ohbRuqUe0LyrkdC8q5HQvKuR0LyrkdO/rdPTwK3j + 08Ct49PArePczb3v49fK+uPXyvrj18r659zQ+/Hq4P/x6uD/8erg//Hq4P/x6uD/8erg//Hq4P/x6uD/ + 59zQ++PXyvrj18r649fK+tzNve/TwK3j08Ct49PArePTv63T0LyrkdC8q5HQvKuR0LyrkdG6pR7RuaIW + 0bmiFtG5ohbRuaIHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAMm5ogbJuaIHybmiB8m5ogfQvasW0b6sIdG+rCHRvqwh0r6sK9O/q0DTv6tA + 07+rQNTArUbXxban18W2p9fFtqfXxban2cm429rJuOnaybjp2sm46eHTxfLm28/75tvP++bbz/vp39P8 + 8erg//Hq4P/x6uD/8erg//Hq4P/x6uD/8erg//Hq4P/p39P85tvP++bbz/vm28/74dPF8trJuOnaybjp + 2sm46dnJuNvXxban18W2p9fFtqfXxban1MCtRtO/q0DTv6tA07+rQNK+rCvRvawh0b2sIdG9rCHQvasW + ybmiB8m5ogfJuaIHybmiBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAybmiHcm5oiHJuaIh + ybmiIdC9q3DRvqyl0b6spdG+rKXSv6271MGv5tTBr+bUwa/m1cOx6Ofbzv3n287959vO/efbzv3w6N3/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+fbzv3n287959vO/efbzv3Vw7Ho + 1MGv5tTBr+bUwa/m0r+tu9G9rKXRvayl0b2spdC9q3DJuaIhybmiIcm5oiHJuaIdAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAADJuaIdybmiIcm5oiHJuaIh0L2rcNG+rKXRvqyl0b6spdK/rbvUwa/m + 1MGv5tTBr+bVw7Ho59vO/efbzv3n287959vO/fDo3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6N3/59vO/efbzv3n287959vO/dXDsejUwa/m1MGv5tTBr+bSv6270b2spdG9rKXRvayl + 0L2rcMm5oiHJuaIhybmiIcm5oh0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMm5oh3JuaIh + ybmiIcm5oiHQvatw0b6spdG+rKXRvqyl0r+tu9TBr+bUwa/m1MGv5tXDsejn287959vO/efbzv3n2879 + 8Ojd//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Do3f/n287959vO/efbzv3n2879 + 1cOx6NTBr+bUwa/m1MGv5tK/rbvRvayl0b2spdG9rKXQvatwybmiIcm5oiHJuaIhybmiHQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAybmiHcm5oiHJuaIhybmiIdC9q3DRvqyl0b6spdG+rKXSv627 + 1MGv5tTBr+bUwa/m1cOx6Ofbzv3n287959vO/efbzv3w6N3/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8Ojd/+fbzv3n287959vO/efbzv3Vw7Ho1MGv5tTBr+bUwa/m0r+tu9G9rKXRvayl + 0b2spdC9q3DJuaIhybmiIcm5oiHJuaIdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAADMtaQRzLWkKsy1pCrMtaQqzrinO9G9q6rRvauq0b2rqtG9q6rUw7LT + 1cSz2tXEs9rVxLPa4tXH7One0vjp3tL46d7S+Ovi1vrw6N798Oje/fDo3v3w6d798erg//Hq4P/x6uD/ + 8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8erg//Hq4P/x6uD/ + 8erg//Dp3v3w6N798Oje/fDo3v3r4tb66d7S+One0vjp3tL44tXH7NXEs9rVxLPa1cSz2tTDstPRvauq + 0b2rqtG9q6rRvauqzrinO8y1pCrMtaQqzLWkKsy1pBEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy1pBLMtaQt + zLWkLcy1pC3OuKc/0b2rttG9q7bRvau20b2rttXDsuDVxLPn1cSz59XEs+fi1cj16uDU/urg1P7q4NT+ + 7eTY/vLr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+3k2P7q4NT+ + 6uDU/urg1P7i1cj11cSz59XEs+fVxLPn1cOy4NG9q7bRvau20b2rttG9q7bOuKc/zLWkLcy1pC3MtaQt + zLWkEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLWkEsy1pC3MtaQtzLWkLc64pz/Rvau20b2rttG9q7bRvau2 + 1cOy4NXEs+fVxLPn1cSz5+LVyPXq4NT+6uDU/urg1P7t5Nj+8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7eTY/urg1P7q4NT+6uDU/uLVyPXVxLPn1cSz59XEs+fVw7Lg + 0b2rttG9q7bRvau20b2rts64pz/MtaQtzLWkLcy1pC3MtaQSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMtaQS + zLWkLcy1pC3MtaQtzrinP9G9q7bRvau20b2rttG9q7bVw7Lg1cSz59XEs+fVxLPn4tXI9erg1P7q4NT+ + 6uDU/u3k2P7y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/t5Nj+ + 6uDU/urg1P7q4NT+4tXI9dXEs+fVxLPn1cSz59XDsuDRvau20b2rttG9q7bRvau2zrinP8y1pC3MtaQt + zLWkLcy1pBIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6Il + zLeiKMy3oijMt6Ioz7ypZdC9qoPQvaqD0L2qg9PArpPWxLSs1sS0rNbEtKzYx7e05NjL5+TYy+fk2Mvn + 5NjL5+je0vXp39P36d/T9+nf0/ft5Nn87+fd/+/n3f/v593/8One//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Dp3v/v593/7+fd/+/n3f/t5Nn86d/T9+nf0/fp39P3 + 6N7S9eTYy+fk2Mvn5NjL5+TYy+fYx7e01sS0rNbEtKzWxLSs08Cuk9C9qoPQvaqD0L2qg8+8qWXMt6Io + zLeiKMy3oijMt6IlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy3ojjMt6I8zLeiPMy3ojzPvKmX0L2qxdC9qsXQvarF + 08Gv1NfFtevXxbXr18W169rJuu7r4tb/6+LW/+vi1v/r4tb/8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/x6uD/6+LW/+vi1v/r4tb/6+LW/9rJuu7XxbXr + 18W169fFtevTwa/U0L2qxdC9qsXQvarFz7ypl8y3ojzMt6I8zLeiPMy3ojgAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + zLeiOMy3ojzMt6I8zLeiPM+8qZfQvarF0L2qxdC9qsXTwa/U18W169fFtevXxbXr2sm67uvi1v/r4tb/ + 6+LW/+vi1v/x6uD/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Hq4P/r4tb/6+LW/+vi1v/r4tb/2sm67tfFtevXxbXr18W169PBr9TQvarF0L2qxdC9qsXPvKmX + zLeiPMy3ojzMt6I8zLeiOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6I4zLeiPMy3ojzMt6I8z7ypl9C9qsXQvarF + 0L2qxdPBr9TXxbXr18W169fFtevaybru6+LW/+vi1v/r4tb/6+LW//Hq4P/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8erg/+vi1v/r4tb/6+LW/+vi1v/aybru + 18W169fFtevXxbXr08Gv1NC9qsXQvarF0L2qxc+8qZfMt6I8zLeiPMy3ojzMt6I4AAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM65pQzOuaUZzrmlGc65pRnPu6gk0b6rUdG+q1HRvqtR + 0b6rUdXDsn/Vw7KC1cOygtXDsoLczLy+3c+/3N3Pv9zdz7/c4NLD5eLVx/Pi1cfz4tXH8+TXyvXu5tr/ + 7uba/+7m2v/u5tr/8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/x6uD/7uba/+7m2v/u5tr/7uba/+TXyvXi1cfz4tXH8+LVx/Pg0sPl3c+/3N3Pv9zdz7/c + 3My8vtXDsoLVw7KC1cOygtXDsn/RvqtR0b6rUdG+q1HRvqtRz7uoJM65pRnOuaUZzrmlGc65pQwAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + zrmlHc65pT7OuaU+zrmlPs+7qFrRvqvL0b6ry9G+q8vRvqvL2ce36tnIuOzZyLjs2ci47Ofbzvnt5Nj/ + 7eTY/+3k2P/v59z/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh/+/n3P/t5Nj/7eTY/+3k2P/n28752ci47NnIuOzZyLjs2ce36tG+q8vRvqvL + 0b6ry9G+q8vPu6hazrmlPs65pT7OuaU+zrmlHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOuaUdzrmlPs65pT7OuaU+z7uoWtG+q8vRvqvL + 0b6ry9G+q8vZx7fq2ci47NnIuOzZyLjs59vO+e3k2P/t5Nj/7eTY/+/n3P/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7+fc/+3k2P/t5Nj/ + 7eTY/+fbzvnZyLjs2ci47NnIuOzZx7fq0b6ry9G+q8vRvqvL0b6ry8+7qFrOuaU+zrmlPs65pT7OuaUd + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAM65pR3OuaU+zrmlPs65pT7Pu6ha0b6ry9G+q8vRvqvL0b6ry9nHt+rZyLjs2ci47NnIuOzn2875 + 7eTY/+3k2P/t5Nj/7+fc//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/v59z/7eTY/+3k2P/t5Nj/59vO+dnIuOzZyLjs2ci47NnHt+rRvqvL + 0b6ry9G+q8vRvqvLz7uoWs65pT7OuaU+zrmlPs65pR0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAL+/nwG/v58Bv7+fAb+/nwHNuKQSzbikGM24pBjNuKQYzrqmNs+6p1fPuqdXz7qnV9G+q2/WxLLS + 1sSy0tbEstLWxLLS3My97d3Nvu/dzb7v3c2+7+jd0Pru5dn/7uXZ/+7l2f/v59z/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3P/u5dn/ + 7uXZ/+7l2f/o3dD63c2+793Nvu/dzb7v3My97dXEstLVxLLS1cSy0tXEstLRvqtvz7qnV8+6p1fPuqdX + z7qmNc65pRjOuaUYzrmlGM65pRK/v58Bv7+fAb+/nwG/v58Bv7+fCL+/nwi/v58Iv7+fCM24pIjNuKS3 + zbikt824pLfPuqfV0Lyp+NC8qfjQvKn41sSz+e3k2P/t5Nj/7eTY/+3k2P/y6+D/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/ + 7OPX/+zj1//s49f/7OPX/9bEs/nQvKr40Lyq+NC8qvjPu6jUzrmltc65pbXOuaW1zrmlh7+/nwi/v58I + v7+fCL+/nwi/v58Iv7+fCL+/nwi/v58IzbikiM24pLfNuKS3zbikt8+6p9XQvKn40Lyp+NC8qfjWxLP5 + 7eTY/+3k2P/t5Nj/7eTY//Lr4P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lq4P/s49f/7OPX/+zj1//s49f/1sSz+dC8qvjQvKr4 + 0Lyq+M+7qNTOuaW1zrmltc65pbXOuaWHv7+fCL+/nwi/v58Iv7+fCL+/nwi/v58Iv7+fCL+/nwjNuKSI + zbikt824pLfNuKS3z7qn1dC8qfjQvKn40Lyp+NbEs/nt5Nj/7eTY/+3k2P/t5Nj/8uvg//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8urg/+zj1//s49f/7OPX/+zj1//WxLP50Lyq+NC8qvjQvKr4z7uo1M65pbXOuaW1zrmltc65pYe/v58I + v7+fCL+/nwi/v58Iv7+fCL+/nwi/v58Iv7+fCM24pIjNuKS3zbikt824pLfPuqfV0Lyp+NC8qfjQvKn4 + 1sSz+e3k2P/t5Nj/7eTY/+3k2P/y6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/7OPX/+zj1//s49f/7OPX/9bEs/nQvKr4 + 0Lyq+NC8qvjPu6jUzrmltc65pbXOuaW1zrmlh7+/nwi/v58Iv7+fCL+/nwi/v58Bv7+fAb+/nwG/v58B + zbuiFc27oh3Nu6IdzbuiHc+7p0fPu6h4z7uoeM+7qHjRvauN1MKx4tTCseLUwrHi1MKx4t/Sw/Hg08Xy + 4NPF8uDTxfLq4dX77+jd/+/o3f/v6N3/8One//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7+bb/+3i1v/t4tb/7eLW/+fWxf/WtJj/1rSY/9a0mP/WtJj/ + 1rSY/9a0mP/WtJj/1rSY/+fWxf/t4tb/7eLW/+3i1v/v5tv/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/w6d7/7+jd/+/o3f/v6N3/6uHV++DTxfLg08Xy + 4NPF8t/Sw/HUwrHi1MKx4tTCseLUwrHi0b2rjc+7qXjPu6l4z7upeM+6qEfMuqgczLqoHMy6qBzMuqgV + v7+fAb+/nwG/v58Bv7+fAQAAAAAAAAAAAAAAAAAAAADMzJkEzMyZBczMmQXMzJkFz7unMc+6qGTPuqhk + z7qoZM+7qXzQvKrd0Lyq3dC8qt3QvKrd3M6/793PwPDdz8Dw3c/A8Onf0/rv59z/7+fc/+/n3P/w6d7/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/v5tr/ + 7OHU/+zh1P/s4dT/5dPB/9Ksjf/SrI3/0qyN/9Ksjf/SrI3/0qyN/9Ksjf/SrI3/5dPB/+zh1P/s4dT/ + 7OHU/+/m2v/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Dp3v/v59z/7+fc/+/n3P/p39P63c/A8N3PwPDdz8Dw3M6/79C8qt3QvKrd0Lyq3dC8qt3Pu6l8 + z7qoZM+6qGTPuqhkzrqpMb+/vwS/v78Ev7+/BL+/vwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAMzMmQTMzJkFzMyZBczMmQXPu6cxz7qoZM+6qGTPuqhkz7upfNC8qt3QvKrd0Lyq3dC8qt3czr/v + 3c/A8N3PwPDdz8Dw6d/T+u/n3P/v59z/7+fc//Dp3v/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/m2v/s4dT/7OHU/+zh1P/l08H/0qyN/9Ksjf/SrI3/ + 0qyN/9Ksjf/SrI3/0qyN/9Ksjf/l08H/7OHU/+zh1P/s4dT/7+ba//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8One/+/n3P/v59z/7+fc/+nf0/rdz8Dw + 3c/A8N3PwPDczr/v0Lyq3dC8qt3QvKrd0Lyq3c+7qXzPuqhkz7qoZM+6qGTOuqkxv7+/BL+/vwS/v78E + v7+/AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMyZBMzMmQXMzJkFzMyZBc+7pzHPuqhk + z7qoZM+6qGTPu6l80Lyq3dC8qt3QvKrd0Lyq3dzOv+/dz8Dw3c/A8N3PwPDp39P67+fc/+/n3P/v59z/ + 8One//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 7+ba/+zh1P/s4dT/7OHU/+XTwf/SrI3/0qyN/9Ksjf/SrI3/0qyN/9Ksjf/SrI3/0qyN/+XTwf/s4dT/ + 7OHU/+zh1P/v5tr/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6d7/7+fc/+/n3P/v59z/6d/T+t3PwPDdz8Dw3c/A8NzOv+/QvKrd0Lyq3dC8qt3QvKrd + z7upfM+6qGTPuqhkz7qoZM66qTG/v78Ev7+/BL+/vwS/v78DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADMzJkBzMyZAszMmQLMzJkCz7unFM+6qCjPuqgoz7qoKM+7qTLPvKpaz7yqWs+8qlrPvKpa + 18a2ltfGtprXxraa18a2mtzNvc/ez8Dp3s/A6d7PwOnh1MXu5trN9ebazfXm2s3159zP9/Do3f/w6N3/ + 8Ojd//Do3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/ + 7ePW/+3j1v/t49b/7ePW/+DItP/dwqv/3cKr/93Cq//Yt53/06+R/9Ovkf/Tr5H/1a2N/9ingP/Yp4D/ + 2KeA/9ingP/Yp4D/2KeA/9ingP/Yp4D/1ayM/9Ovkf/Tr5H/06+R/9i3nf/dwqv/3cKr/93Cq//gyLT/ + 7ePW/+3j1v/t49b/7ePW//Lq4P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6N3/8Ojd//Do3f/w6N3/59zP9ubazfXm2s315trN9eHUxe7ez8Dp3s/A6d7PwOnczb3P + 18a2mtfGtprXxraa18a2ltG7qVrRu6la0bupWtG7qVrQuqkyz7qoKM+6qCjPuqgozrqpFL+/vwK/v78C + v7+/Ar+/vwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAqqqqAaqqqgOqqqoDqqqqA6qqqgPNuKZbzbimYc24pmHNuKZhz7ypstC9qtvQvarb + 0L2q29XEsuPdzr7v3c6+793Ovu/f0cLx7ubb/+7m2//u5tv/7ubb//Hq4P/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hq4P/q3c7/6t3O/+rdzv/q3c7/1LGV/8+mh//Ppof/ + z6aH/8mZdf/DjWX/w41l/8ONZf/Kk2r/3KR4/9ykeP/cpHj/3KR4/9yjeP/co3j/3KN4/9yjeP/Kk2n/ + w41k/8ONZP/DjWT/yZl0/8+mh//Ppof/z6aH/9Sxlf/q3c7/6t3O/+rdzv/q3c7/8erg//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8erg/+7m2//u5tv/7ubb/+7m2//f0cLw + 3c6+7t3Ovu7dzr7u1cSy49C9qtvQvarb0L2q28+8qbLNuKZhzbimYc24pmHNuKZb/4CAAv+AgAL/gIAC + /4CAAv+AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqqqoBqqqqA6qqqgOqqqoD + qqqqA824plvNuKZhzbimYc24pmHPvKmy0L2q29C9qtvQvarb1cSy493Ovu/dzr7v3c6+79/RwvHu5tv/ + 7ubb/+7m2//u5tv/8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8erg/+rdzv/q3c7/6t3O/+rdzv/UsZX/z6aH/8+mh//Ppof/yZl1/8ONZf/DjWX/w41l/8qTav/cpHj/ + 3KR4/9ykeP/cpHj/3KN4/9yjeP/co3j/3KN4/8qTaf/DjWT/w41k/8ONZP/JmXT/z6aH/8+mh//Ppof/ + 1LGV/+rdzv/q3c7/6t3O/+rdzv/x6uD/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/x6uD/7ubb/+7m2//u5tv/7ubb/9/RwvDdzr7u3c6+7t3Ovu7VxLLj0L2q29C9qtvQvarb + z7ypss24pmHNuKZhzbimYc24plv/gIAC/4CAAv+AgAL/gIAC/4CAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAKqqqgGqqqoDqqqqA6qqqgOqqqoDzbimW824pmHNuKZhzbimYc+8qbLQvarb + 0L2q29C9qtvVxLLj3c6+793Ovu/dzr7v39HC8e7m2//u5tv/7ubb/+7m2//x6uD/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/x6uD/6t3O/+rdzv/q3c7/6t3O/9Sxlf/Ppof/ + z6aH/8+mh//JmXX/w41l/8ONZf/DjWX/ypNq/9ykeP/cpHj/3KR4/9ykeP/co3j/3KN4/9yjeP/co3j/ + ypNp/8ONZP/DjWT/w41k/8mZdP/Ppof/z6aH/8+mh//UsZX/6t3O/+rdzv/q3c7/6t3O//Hq4P/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hq4P/u5tv/7ubb/+7m2//u5tv/ + 39HC8N3Ovu7dzr7u3c6+7tXEsuPQvarb0L2q29C9qtvPvKmyzbimYc24pmHNuKZhzbimW/+AgAL/gIAC + /4CAAv+AgAL/gIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqqqqAKqqqgKqqqoC + qqqqAqqqqgLNuKY8zbimQc24pkHNuKZBz7ypd9C9qpLQvaqS0L2qktXDsqLby7q628u6utvLurrdzb3B + 5drN8eXazfHl2s3x5drN8erg1Pfr4dX46+HV+Ovh1fjt49f87uTY/+7k2P/u5Nj/69/R/+bUw//m1MP/ + 5tTD/+bTwf/dwqr/3cKq/93Cqv/dwqr/1aqJ/9Okgf/TpIH/06SB/9Kfef/Sm3H/0ptx/9Kbcf/Wn3X/ + 46p+/+Oqfv/jqn7/46p+/+Oqfv/jqn7/46p+/+Oqfv/Wn3T/0ptx/9Kbcf/Sm3H/0p94/9Okgf/TpIH/ + 06SB/9Wqif/dwqr/3cKq/93Cqv/dwqr/5tPB/+bUw//m1MP/5tTD/+vf0f/u5Nj/7uTY/+7k2P/t49f8 + 6+HV+Ovh1fjr4dX46uDU9+XazfHl2s3x5drN8eXazfHdzb3A28u6udvLurnby7q51cOyotC9qpLQvaqS + 0L2qks+8qXfNuKZBzbimQc24pkHNuKY8/4CAAf+AgAH/gIAB/4CAAf+AgAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAz7ilIM+4pU/PuKVPz7ilT8+5pmHPvarVz72q1c+9qtXPvarV2sm559vLu+rby7vq + 28u76uHSwvfl1sf/5dbH/+XWx//exrL/z6aH/8+mh//Ppof/zqSF/8OMY//DjGP/w4xj/8OMY//WnXH/ + 26F1/9uhdf/boXX/5qyA/++2iv/vtor/77aK/++2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/++2iv/vtor/77aK/++2iv/mrID/26F1/9uhdf/boXX/1p1x/8OMY//DjGP/w4xj/8OMY//OpIX/ + z6aH/8+mh//Ppof/3say/+XWx//l1sf/5dbH/+HSwvfby7vq28u76tvLu+raybnnz72q1c+9qtXPvarV + z72q1c+5pmHPuKVPz7ilT8+4pU/PuKUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPuKUgz7ilT8+4pU/PuKVP + z7mmYc+9qtXPvarVz72q1c+9qtXaybnn28u76tvLu+rby7vq4dLC9+XWx//l1sf/5dbH/97Gsv/Ppof/ + z6aH/8+mh//OpIX/w4xj/8OMY//DjGP/w4xj/9adcf/boXX/26F1/9uhdf/mrID/77aK/++2iv/vtor/ + 77aK//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/77aK/++2iv/vtor/77aK/+asgP/boXX/ + 26F1/9uhdf/WnXH/w4xj/8OMY//DjGP/w4xj/86khf/Ppof/z6aH/8+mh//exrL/5dbH/+XWx//l1sf/ + 4dLC99vLu+rby7vq28u76trJuefPvarVz72q1c+9qtXPvarVz7mmYc+4pU/PuKVPz7ilT8+4pSAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAM+4pSDPuKVPz7ilT8+4pU/PuaZhz72q1c+9qtXPvarVz72q1drJuefby7vq + 28u76tvLu+rh0sL35dbH/+XWx//l1sf/3say/8+mh//Ppof/z6aH/86khf/DjGP/w4xj/8OMY//DjGP/ + 1p1x/9uhdf/boXX/26F1/+asgP/vtor/77aK/++2iv/vtor/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//vtor/77aK/++2iv/vtor/5qyA/9uhdf/boXX/26F1/9adcf/DjGP/w4xj/8OMY//DjGP/ + zqSF/8+mh//Ppof/z6aH/97Gsv/l1sf/5dbH/+XWx//h0sL328u76tvLu+rby7vq2sm558+9qtXPvarV + z72q1c+9qtXPuaZhz7ilT8+4pU/PuKVPz7ilIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz7ilHc+4pUrPuKVK + z7ilSs+5plvPvKnKz7ypys+8qcrPvKnK2Ma05NnHtujZx7bo2ce26N/NvPbj0cD/49HA/+PRwP/cw63/ + 0KaG/9Cmhv/Qpob/z6SE/8aPZv/Gj2b/xo9m/8aPZv/Yn3P/3KJ2/9yidv/conb/5q2B/++2iv/vtor/ + 77aK/++2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/++2iv/vtor/77aK/++2iv/mrYH/ + 3KJ2/9yidv/conb/2J9z/8aPZv/Gj2b/xo9m/8aPZv/PpIT/0KaG/9Cmhv/Qpob/3MOt/+PRwP/j0cD/ + 49HA/9/NvPbZx7bo2ce26NnHtujYxrTkz7ypys+8qcrPvKnKz7ypys+5plvPuKVKz7ilSs+4pUrPuKUd + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAt3pOBrd6Ti63ek4ut3pOLrd6Ti68h1yz + vIdcx7yHXMe8h1zHv4hd5sGIXvvBiF77wYhe+8uSZ/zfpXn/36V5/9+lef/gpnr/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/+Cmev/fpXn/36V5/9+lef/Lkmf8wYhe+8GIXvvBiF77v4hd5ryHXMe8h1zHvIdcx7yHXLO3ek4u + t3pOLrd6Ti63ek4ut3pOBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAC3ek4Gt3pOLrd6Ti63ek4ut3pOLryHXLO8h1zHvIdcx7yHXMe/iF3mwYhe+8GIXvvBiF77 + y5Jn/N+lef/fpXn/36V5/+Cmev/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/4KZ6/9+lef/fpXn/36V5/8uSZ/zBiF77 + wYhe+8GIXvu/iF3mvIdcx7yHXMe8h1zHvIdcs7d6Ti63ek4ut3pOLrd6Ti63ek4GAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALd6Tga3ek4ut3pOLrd6Ti63ek4u + vIdcs7yHXMe8h1zHvIdcx7+IXebBiF77wYhe+8GIXvvLkmf836V5/9+lef/fpXn/4KZ6//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//gpnr/36V5/9+lef/fpXn/y5Jn/MGIXvvBiF77wYhe+7+IXea8h1zHvIdcx7yHXMe8h1yz + t3pOLrd6Ti63ek4ut3pOLrd6TgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAt3pOBrd6Ti63ek4ut3pOLrd6Ti68h1yzvIdcx7yHXMe8h1zHv4hd5sGIXvvBiF77 + wYhe+8uSZ/zfpXn/36V5/9+lef/gpnr/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+Cmev/fpXn/36V5/9+lef/Lkmf8 + wYhe+8GIXvvBiF77v4hd5ryHXMe8h1zHvIdcx7yHXLO3ek4ut3pOLrd6Ti63ek4ut3pOBgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAuH1PIbh9TzG4fU8xuH1PMbqAU127gVWgu4FVoLuBVaC8glalwohcyMKIXMjCiFzI + wohcyNqhde7dpHj03aR49N2kePTjqn76566C/ueugv7nroL+6bCE/u2zh//ts4f/7bOH/+20iP/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7bSI/+2zh//ts4f/7bOH/+mwhP7nroL+566C/ueugv7jqn763aR49N2kePTdpHj0 + 2qF17sKIXMjCiFzIwohcyMKIXMi9glamvIFVobyBVaG8gVWhu4BTXrh9TzG4fU8xuH1PMbh9TyEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4fU8puH1PPbh9Tz24fU89 + uoBTdbuBVci7gVXIu4FVyLyCVs3DiV3uw4ld7sOJXe7DiV3u4KZ6/eSqfv/kqn7/5Kp+/+uyhv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+uyhv/kqn7/5Kp+/+Sqfv/gpnr9w4ld7sOJXe7DiV3uw4ld7r2CVs68gVXJ + vIFVybyBVcm7gFN1uH1PPbh9Tz24fU89uH1PKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALh9Tym4fU89uH1PPbh9Tz26gFN1u4FVyLuBVci7gVXIvIJWzcOJXe7DiV3u + w4ld7sOJXe7gpnr95Kp+/+Sqfv/kqn7/67KG//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/67KG/+Sqfv/kqn7/ + 5Kp+/+Cmev3DiV3uw4ld7sOJXe7DiV3uvYJWzryBVcm8gVXJvIFVybuAU3W4fU89uH1PPbh9Tz24fU8p + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuH1PKbh9Tz24fU89 + uH1PPbqAU3W7gVXIu4FVyLuBVci8glbNw4ld7sOJXe7DiV3uw4ld7uCmev3kqn7/5Kp+/+Sqfv/rsob/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//rsob/5Kp+/+Sqfv/kqn7/4KZ6/cOJXe7DiV3uw4ld7sOJXe69glbO + vIFVybyBVcm8gVXJu4BTdbh9Tz24fU89uH1PPbh9TykAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1flEHtX5RJbV+USW1flEl + tX5RJbqAVGu6gFRwuoBUcLqAVHDCiFyNxItfm8SLX5vEi1+bzZNnudWccOXVnHDl1Zxw5dadcejconb3 + 3KJ299yidvfconb36a+D/uqxhf/qsYX/6rGF/+61if/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61if/qsYX/ + 6rGF/+qxhf/pr4P+3KJ299yidvfconb33KJ299adcejVnHDm1Zxw5tWccObNk2e5xYtemsWLXprFi16a + wohbjLqAVHC6gFRwuoBUcLqAVGu1flEltX5RJbV+USW1flEltX5RBwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALV+UQ61flFFtX5RRbV+UUW1flFFuoBUybqAVNK6gFTSuoBU0sOKXuTHjmLt + x45i7ceOYu3Um2/0566C/+eugv/nroL/6K+D//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 6K+D/+eugv/nroL/566C/9Wbb/TIjmHsyI5h7MiOYezEil3juoBU0rqAVNK6gFTSuoBUybV+UUW1flFF + tX5RRbV+UUW1flEOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtX5RDrV+UUW1flFF + tX5RRbV+UUW6gFTJuoBU0rqAVNK6gFTSw4pe5MeOYu3HjmLtx45i7dSbb/TnroL/566C/+eugv/or4P/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//or4P/566C/+eugv/nroL/1Ztv9MiOYezIjmHs + yI5h7MSKXeO6gFTSuoBU0rqAVNK6gFTJtX5RRbV+UUW1flFFtX5RRbV+UQ4AAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAC1flEOtX5RRbV+UUW1flFFtX5RRbqAVMm6gFTSuoBU0rqAVNLDil7k + x45i7ceOYu3HjmLt1Jtv9Oeugv/nroL/566C/+ivg//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/+ivg//nroL/566C/+eugv/Vm2/0yI5h7MiOYezIjmHsxIpd47qAVNK6gFTSuoBU0rqAVMm1flFF + tX5RRbV+UUW1flFFtX5RDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAKqAVQKqgFUCqoBVAqqAVQK5gFIVuYBSHLmAUhy5gFIcvIFVK72BVju9gVY7vYFWO8CFWUfFjGBz + xYxgc8WMYHPFjGBzyY9j18mPZN7Jj2TeyY9k3tCWauvTmm7y05pu8tOabvLco3f36bCE/+mwhP/psIT/ + 6rGF//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/6rGF/+mwhP/psIT/6bCE/9yjd/fTmm3x + 05pt8dOabfHQlmrryY9k3smPZN7Jj2TeyY9j18WMX3PFjF9zxYxfc8WMX3PAhVlHvYFWO72BVju9gVY7 + vIFVK7mAUhy5gFIcuYBSHLmAUhWqgFUCqoBVAqqAVQKqgFUCqoBVBqqAVQaqgFUGqoBVBrmAUk+5gFJq + uYBSarmAUmq8gVWhvYFW372BVt+9gVbfwYZa49KXa/HSl2vx0pdr8dKXa/HpsIX+67KH/+uyh//rsof/ + 7rWK//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61iv/rsof/67KH/+uyh//psIX+ + 0Zdq8tGXavLRl2ry0Zdq8sGGWuO9gVbfvYFW372BVt+8gVWhuYBSarmAUmq5gFJquYBST6qAVQaqgFUG + qoBVBqqAVQaqgFUGqoBVBqqAVQaqgFUGuYBST7mAUmq5gFJquYBSaryBVaG9gVbfvYFW372BVt/Bhlrj + 0pdr8dKXa/HSl2vx0pdr8emwhf7rsof/67KH/+uyh//utYr/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7rWK/+uyh//rsof/67KH/+mwhf7Rl2ry0Zdq8tGXavLRl2rywYZa472BVt+9gVbf + vYFW37yBVaG5gFJquYBSarmAUmq5gFJPqoBVBqqAVQaqgFUGqoBVBqqAVQaqgFUGqoBVBqqAVQa5gFJP + uYBSarmAUmq5gFJqvIFVob2BVt+9gVbfvYFW38GGWuPSl2vx0pdr8dKXa/HSl2vx6bCF/uuyh//rsof/ + 67KH/+61iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utYr/67KH/+uyh//rsof/ + 6bCF/tGXavLRl2ry0Zdq8tGXavLBhlrjvYFW372BVt+9gVbfvIFVobmAUmq5gFJquYBSarmAUk+qgFUG + qoBVBqqAVQaqgFUGqoBVBqqAVQaqgFUGqoBVBrmAUk+5gFJquYBSarmAUmq8gVWhvYFW372BVt+9gVbf + wYZa49KXa/HSl2vx0pdr8dKXa/HpsIX+67KH/+uyh//rsof/7rWK//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+61iv/rsof/67KH/+uyh//psIX+0Zdq8tGXavLRl2ry0Zdq8sGGWuO9gVbf + vYFW372BVt+8gVWhuYBSarmAUmq5gFJquYBST6qAVQaqgFUGqoBVBqqAVQa/gEAEv4BABL+AQAS/gEAE + un1SSrp9UmS6fVJkun1SZLuAVJy7gVXdu4FV3buBVd3AhVnh0ZZq8NGWavDRlmrw0ZZq8OmwhP7rsob/ + 67KG/+uyhv/utYn/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+62iv/ptYn/6bWJ/+m1if/ptYn/ + 6baI/+m2iP/ptoj/6baI/+63iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/7rWJ/+uyhv/rsob/ + 67KG/+mwhP7Rlmrw0ZZq8NGWavDRlmrwwIVZ4buBVd27gVXdu4FV3buAVJy6fVJkun1SZLp9UmS6fVJK + v4BABL+AQAS/gEAEv4BABL+AQAS/gEAEv4BABL+AQAS6fVJKun1SZLp9UmS6fVJku4BUnLuBVd27gVXd + u4FV3cCFWeHRlmrw0ZZq8NGWavDRlmrw6bCE/uuyhv/rsob/67KG/+61if/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7raK/+m1if/ptYn/6bWJ/+m1if/ptoj/6baI/+m2iP/ptoj/7reK//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//utYn/67KG/+uyhv/rsob/6bCE/tGWavDRlmrw0ZZq8NGWavDAhVnh + u4FV3buBVd27gVXdu4BUnLp9UmS6fVJkun1SZLp9Ukq/gEAEv4BABL+AQAS/gEAEv4BABL+AQAS/gEAE + v4BABLp9Ukq6fVJkun1SZLp9UmS7gFScu4FV3buBVd27gVXdwIVZ4dGWavDRlmrw0ZZq8NGWavDpsIT+ + 67KG/+uyhv/rsob/7rWJ//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utor/6bWJ/+m1if/ptYn/ + 6bWJ/+m2iP/ptoj/6baI/+m2iP/ut4r/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61if/rsob/ + 67KG/+uyhv/psIT+0ZZq8NGWavDRlmrw0ZZq8MCFWeG7gVXdu4FV3buBVd27gFScun1SZLp9UmS6fVJk + un1SSr+AQAS/gEAEv4BABL+AQAS/gEAEv4BABL+AQAS/gEAEun1SSrp9UmS6fVJkun1SZLuAVJy7gVXd + u4FV3buBVd3AhVnh0ZZq8NGWavDRlmrw0ZZq8OmwhP7rsob/67KG/+uyhv/utYn/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+62iv/ptYn/6bWJ/+m1if/ptYn/6baI/+m2iP/ptoj/6baI/+63iv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/7rWJ/+uyhv/rsob/67KG/+mwhP7Rlmrw0ZZq8NGWavDRlmrw + wIVZ4buBVd27gVXdu4FV3buAVJy6fVJkun1SZLp9UmS6fVJKv4BABL+AQAS/gEAEv4BABL+AQAG/gEAB + v4BAAb+AQAG6fVIUun1SG7p9Uhu6fVIbun9UK7p/VT26f1U9un9VPb6DWEzEiV6IxIleiMSJXojEiV6I + yo9j4MqPY+fKj2Pnyo9j59OZbPDXnXD0151w9NedcPTfpXn467GG/+uxhv/rsYb/7LKH//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+q1if/otYj/6LWI/+i1iP/RsYH/va16/72tev+9rXr/tqx4/6Opc/+jqXP/ + o6lz/6Opc/+jqnP/o6pz/6Oqc/+jqnP/t6x4/76tev++rXr/vq16/9Kxgf/otYj/6LWI/+i1iP/qtYn/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/7LOG/+uyhf/rsoX/67KF/9+mefjXnXD0151w9NedcPTTmWzw + yo9j58qPY+fKj2Pnyo9j4MSJXojEiV6IxIleiMSJXoi+g1hMun9VPbp/VT26f1U9un9UK7p9Uhu6fVIb + un1SG7p9UhS/gEABv4BAAb+AQAG/gEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUB + qlVVA6pVVQOqVVUDt3lTFrl9U2K5fVNiuX1TYrl9U2K8gVXWvIFV3ryBVd68gVXeyI1h6s2TZvDNk2bw + zZNm8Nmfcvbpr4T/6a+E/+mvhP/qsIX/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/57WI/+W0h//ltIf/ + 5bSH/8avff+rqnT/q6p0/6uqdP+iqXL/iaVr/4mla/+JpWv/iaVr/4mla/+JpWv/iaVr/4mla/+jqXL/ + rKp0/6yqdP+sqnT/x699/+W0h//ltIf/5bSH/+e1iP/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//qsYT/ + 6bCD/+mwg//psIP/2Z9y9s2TZvDNk2bwzZNm8MiNYeq8gVXevIFV3ryBVd68gVXWuX1TYrl9U2K5fVNi + uX1TYrd5UxaqVVUDqlVVA6pVVQOqVVUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKpVVQGqVVUDqlVVA6pVVQO3eVMWuX1TYrl9U2K5fVNi + uX1TYryBVda8gVXevIFV3ryBVd7IjWHqzZNm8M2TZvDNk2bw2Z9y9umvhP/pr4T/6a+E/+qwhf/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//ntYj/5bSH/+W0h//ltIf/xq99/6uqdP+rqnT/q6p0/6Kpcv+JpWv/ + iaVr/4mla/+JpWv/iaVr/4mla/+JpWv/iaVr/6Opcv+sqnT/rKp0/6yqdP/Hr33/5bSH/+W0h//ltIf/ + 57WI//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+qxhP/psIP/6bCD/+mwg//Zn3L2zZNm8M2TZvDNk2bw + yI1h6ryBVd68gVXevIFV3ryBVda5fVNiuX1TYrl9U2K5fVNit3lTFqpVVQOqVVUDqlVVA6pVVQEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + qlVVAapVVQOqVVUDqlVVA7d5Uxa5fVNiuX1TYrl9U2K5fVNivIFV1ryBVd68gVXevIFV3siNYerNk2bw + zZNm8M2TZvDZn3L26a+E/+mvhP/pr4T/6rCF//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+e1iP/ltIf/ + 5bSH/+W0h//Gr33/q6p0/6uqdP+rqnT/oqly/4mla/+JpWv/iaVr/4mla/+JpWv/iaVr/4mla/+JpWv/ + o6ly/6yqdP+sqnT/rKp0/8evff/ltIf/5bSH/+W0h//ntYj/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 6rGE/+mwg//psIP/6bCD/9mfcvbNk2bwzZNm8M2TZvDIjWHqvIFV3ryBVd68gVXevIFV1rl9U2K5fVNi + uX1TYrl9U2K3eVMWqlVVA6pVVQOqVVUDqlVVAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUBqlVVAqpVVQKqVVUCt3lTDLl9UzS5fVM0 + uX1TNLl9UzS8gFVyvIBVd7yAVXe8gFV3xYpelsiOYaXIjmGlyI5hpc+UacHWnHDr1pxw69accOvXnXLt + 4KZ69uCmevbgpnr24KZ69uuyhv7ss4f/7LOH/+yzh//vtor/8LeL//C3i//wt4v/7reK/+u2if/rton/ + 67aJ/+m1if/RsYH/0bGB/9Gxgf/RsYH/v657/7qtev+6rXr/uq16/6yve/+fsXv/n7F7/5+xe/+csnz/ + kraA/5K2gP+StoD/kraA/5K2gP+StoD/kraA/5K2gP+csnz/n7F7/5+xe/+fsXv/rK97/7qtev+6rXr/ + uq16/7+ue//RsYH/0bGB/9Gxgf/RsYH/6bWJ/+u2if/rton/67aJ/+63iv/wt4v/8LeL//C3i//vtor/ + 7LOH/+yzh//ss4f/67KG/uCmevbgpnr24KZ69uCmevbXnnHt1pxw69accOvWnHDrz5VowciOYaXIjmGl + yI5hpcWKXpW8gVV2vIFVdryBVXa8gVVyuX1TNLl9UzS5fVM0uX1TNLd5UwyqVVUCqlVVAqpVVQKqVVUB + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAH/AAAB/wAAAf8AAAG4elA1 + uHtRT7h7UU+4e1FPun9UhbuBVdW7gVXVu4FV1b2DV9jMkWXrzJFl68yRZevMkWXr5at//Oivg//or4P/ + 6K+D/+20iP/wt4v/8LeL//C3i//stor/5bSH/+W0h//ltIf/4bOG/62rdf+tq3X/rat1/62rdf+Qpm3/ + iaVr/4mla/+JpWv/jbB4/5G5g/+RuYP/kbmD/5S9if+dyZj/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/ + ncmY/5S9if+RuYP/kbmD/5G5g/+NsHj/iaVr/4mla/+JpWv/kKZt/62rdf+tq3X/rat1/62rdf/hs4b/ + 5bSH/+W0h//ltIf/7LaK//C3i//wt4v/8LeL/+20iP/or4P/6K+D/+ivg//lq3/8zJFl68yRZevMkWXr + zJFl672DV9i7gVXVu4FV1buBVdW6f1SFuHtRT7h7UU+4e1FPuHtRNQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA/wAAAf8AAAH/AAAB/wAAAbh6UDW4e1FPuHtRT7h7UU+6f1SFu4FV1buBVdW7gVXV + vYNX2MyRZevMkWXrzJFl68yRZevlq3/86K+D/+ivg//or4P/7bSI//C3i//wt4v/8LeL/+y2iv/ltIf/ + 5bSH/+W0h//hs4b/rat1/62rdf+tq3X/rat1/5Cmbf+JpWv/iaVr/4mla/+NsHj/kbmD/5G5g/+RuYP/ + lL2J/53JmP+dyZj/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/lL2J/5G5g/+RuYP/kbmD/42weP+JpWv/ + iaVr/4mla/+Qpm3/rat1/62rdf+tq3X/rat1/+Gzhv/ltIf/5bSH/+W0h//stor/8LeL//C3i//wt4v/ + 7bSI/+ivg//or4P/6K+D/+Wrf/zMkWXrzJFl68yRZevMkWXrvYNX2LuBVdW7gVXVu4FV1bp/VIW4e1FP + uHtRT7h7UU+4e1E1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAB/wAAAf8AAAH/AAAB + uHpQNbh7UU+4e1FPuHtRT7p/VIW7gVXVu4FV1buBVdW9g1fYzJFl68yRZevMkWXrzJFl6+Wrf/zor4P/ + 6K+D/+ivg//ttIj/8LeL//C3i//wt4v/7LaK/+W0h//ltIf/5bSH/+Gzhv+tq3X/rat1/62rdf+tq3X/ + kKZt/4mla/+JpWv/iaVr/42weP+RuYP/kbmD/5G5g/+UvYn/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/ + ncmY/53JmP+UvYn/kbmD/5G5g/+RuYP/jbB4/4mla/+JpWv/iaVr/5Cmbf+tq3X/rat1/62rdf+tq3X/ + 4bOG/+W0h//ltIf/5bSH/+y2iv/wt4v/8LeL//C3i//ttIj/6K+D/+ivg//or4P/5at//MyRZevMkWXr + zJFl68yRZeu9g1fYu4FV1buBVdW7gVXVun9Uhbh7UU+4e1FPuHtRT7h7UTUAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAP8AAAH/AAAB/wAAAf8AAAG4elAquHtRP7h7UT+4e1E/un9UaruBVaq7gVWq + u4FVqr2DV67LkGTIy5BkyMuQZMjLkGTI3KV58N6oe/beqHv23qh79t6ugPvesoP93rKD/d6yg/3asYP+ + 0rGB/9Kxgf/SsYH/0LGB/6iuef+ornn/qK55/6iuef+TrXX/jax0/42sdP+NrHT/kbV+/5S8h/+UvIf/ + lLyH/5bAjP+dyZj/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/ncmY/5bAjP+UvIf/lLyH/5S8h/+RtX7/ + jax0/42sdP+NrHT/k611/6iuef+ornn/qK55/6iuef/QsYH/0rGB/9Kxgf/SsYH/2rGD/t6yg/3esoP9 + 3rKD/d6ugPveqHv23qh79t6oe/bcpXnwy5BkyMuQZMjLkGTIy5BkyL2DV667gVWqu4FVqruBVaq6f1Rq + uHtRP7h7UT+4e1E/uHtRKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtHtPCLR7Tzq0e086tHtPOrR7TzqwhVa/ + sIVW07CFVtOwhVbTnpNf6ZSbZPeUm2T3lJtk95CeZvqIpWv/iKVr/4ila/+Jpm3/k7uH/5O7h/+Tu4f/ + k7uH/5zGlf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cxpX/k7uH/5O7h/+Tu4f/ + k7uH/4mmbf+IpWv/iKVr/4ila/+Qnmb6lJtk95SbZPeUm2T3npNf6bCFVtOwhVbTsIVW07CFVr+0e086 + tHtPOrR7Tzq0e086tHtPCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAC0e08ItHtPOrR7Tzq0e086tHtPOrCFVr+whVbTsIVW07CFVtOek1/plJtk95SbZPeUm2T3 + kJ5m+oila/+IpWv/iKVr/4mmbf+Tu4f/k7uH/5O7h/+Tu4f/nMaV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5zGlf+Tu4f/k7uH/5O7h/+Tu4f/iaZt/4ila/+IpWv/iKVr/5CeZvqUm2T3 + lJtk95SbZPeek1/psIVW07CFVtOwhVbTsIVWv7R7Tzq0e086tHtPOrR7Tzq0e08IAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALR7Twi0e086tHtPOrR7Tzq0e086 + sIVWv7CFVtOwhVbTsIVW056TX+mUm2T3lJtk95SbZPeQnmb6iKVr/4ila/+IpWv/iaZt/5O7h/+Tu4f/ + k7uH/5O7h/+cxpX/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMaV/5O7h/+Tu4f/ + k7uH/5O7h/+Jpm3/iKVr/4ila/+IpWv/kJ5m+pSbZPeUm2T3lJtk956TX+mwhVbTsIVW07CFVtOwhVa/ + tHtPOrR7Tzq0e086tHtPOrR7TwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAtHtPCLR7Tzq0e086tHtPOrR7TzqwhVa/sIVW07CFVtOwhVbTnpNf6ZSbZPeUm2T3 + lJtk95CeZvqIpWv/iKVr/4ila/+Jpm3/k7uH/5O7h/+Tu4f/k7uH/5zGlf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cxpX/k7uH/5O7h/+Tu4f/k7uH/4mmbf+IpWv/iKVr/4ila/+Qnmb6 + lJtk95SbZPeUm2T3npNf6bCFVtOwhVbTsIVW07CFVr+0e086tHtPOrR7Tzq0e086tHtPCAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHefYBF3n2Aqd59gKnefYCp5oGI8fKJlrnyiZa58omWu + fKJlroKla96DpWzmg6Vs5oOlbOaPtH/0lr2K/pa9iv6WvYr+mMCO/p3Hlv+dx5b/nceW/53Hlv+dyJj/ + nciY/53ImP+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/ + nciY/53ImP+dyJj/nceW/53Hlv+dx5b/nceW/5jAjv6WvYr+lr2K/pa9iv6PtH/0g6Vs5oOlbOaDpWzm + gqVr3nyiZa58omWufKJlrnyiZa55oGI8d59gKnefYCp3n2Aqd59gEQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + d59gEnefYC13n2Atd59gLXmhYj97o2W2e6NltnujZbZ7o2W2f6ds4ICnbeeAp23ngKdt5462gfWWv43+ + lr+N/pa/jf6ZwpH+nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + mcKR/pa/jf6Wv43+lr+N/o62gfWAp23ngKdt54Cnbed/p2zge6NltnujZbZ7o2W2e6NltnmhYj93n2At + d59gLXefYC13n2ASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3n2ASd59gLXefYC13n2AteaFiP3ujZbZ7o2W2 + e6NltnujZbZ/p2zggKdt54CnbeeAp23njraB9Za/jf6Wv43+lr+N/pnCkf6eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+ZwpH+lr+N/pa/jf6Wv43+jraB9YCnbeeAp23n + gKdt53+nbOB7o2W2e6NltnujZbZ7o2W2eaFiP3efYC13n2Atd59gLXefYBIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHefYBJ3n2Atd59gLXefYC15oWI/e6NltnujZbZ7o2W2e6Nltn+nbOCAp23ngKdt54CnbeeOtoH1 + lr+N/pa/jf6Wv43+mcKR/p7Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5nCkf6Wv43+lr+N/pa/jf6OtoH1gKdt54CnbeeAp23nf6ds4HujZbZ7o2W2e6NltnujZbZ5oWI/ + d59gLXefYC13n2Atd59gEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHedXiV3nV4od51eKHedXih6oWRleqJlg3qiZYN6omWDfaRpk4CnbqyAp26sgKdurIOqcrSQuYTn + kLmE55C5hOeQuYTnlL6K9ZW+i/eVvov3lb6L95nDkfybxpX/m8aV/5vGlf+cx5b/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMeW/5vGlf+bxpX/m8aV/5nDkfyVvov3 + lb6L95W+i/eUvor1kLmE55C5hOeQuYTnkLmE54OqcrSAp26sgKdurICnbqx9pGmTeqJlg3qiZYN6omWD + eqFkZXedXih3nV4od51eKHedXiUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd51eOHedXjx3nV48d51ePHqhZJd6omXF + eqJlxXqiZcV9pWnUgahv64Gob+uBqG/rhKx07pfBj/+XwY//l8GP/5fBj/+dyJj/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+XwY//l8GP/5fBj/+XwY// + hKx07oGob+uBqG/rgahv632ladR6omXFeqJlxXqiZcV6oWSXd51ePHedXjx3nV48d51eOAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3nV44d51ePHedXjx3nV48eqFkl3qiZcV6omXFeqJlxX2ladSBqG/rgahv64Gob+uErHTu + l8GP/5fBj/+XwY//l8GP/53ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nciY/5fBj/+XwY//l8GP/5fBj/+ErHTugahv64Gob+uBqG/rfaVp1HqiZcV6omXF + eqJlxXqhZJd3nV48d51ePHedXjx3nV44AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHedXjh3nV48d51ePHedXjx6oWSX + eqJlxXqiZcV6omXFfaVp1IGob+uBqG/rgahv64SsdO6XwY//l8GP/5fBj/+XwY//nciY/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/l8GP/5fBj/+XwY// + l8GP/4SsdO6BqG/rgahv64Gob+t9pWnUeqJlxXqiZcV6omXFeqFkl3edXjx3nV48d51ePHedXjgAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd6BfDHegXxl3oF8Zd6BfGXmhYSR7omRR + e6JkUXuiZFF7omRRf6drf4Cna4KAp2uCgKdrgoavdr6IsXnciLF53IixedyKs3zljbaB8422gfONtoHz + j7iD9ZrEk/+axJP/msST/5rEk/+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/53ImP+axJP/msST/5rEk/+axJP/j7iD9Y22gfONtoHzjbaB84qzfOWIsXnc + iLF53IixedyGr3a+gKdrgoCna4KAp2uCf6drf3uiZFF7omRRe6JkUXuiZFF5oWEkd6BfGXegXxl3oF8Z + d6BfDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3oF8dd6BfPnegXz53oF8+eaFhWnuiZMt7omTLe6Jky3uiZMuDqm/qg6tw7IOrcOyDq3Ds + kbuH+ZjDkf+Yw5H/mMOR/5rFlP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/msWU/5jDkf+Yw5H/mMOR/5G7h/mDq3Dsg6tw7IOrcOyDqm/q + e6Jky3uiZMt7omTLe6Jky3mhYVp3oF8+d6BfPnegXz53oF8dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHegXx13oF8+d6BfPnegXz55oWFa + e6Jky3uiZMt7omTLe6Jky4Oqb+qDq3Dsg6tw7IOrcOyRu4f5mMOR/5jDkf+Yw5H/msWU/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+axZT/ + mMOR/5jDkf+Yw5H/kbuH+YOrcOyDq3Dsg6tw7IOqb+p7omTLe6Jky3uiZMt7omTLeaFhWnegXz53oF8+ + d6BfPnegXx0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAd6BfHXegXz53oF8+d6BfPnmhYVp7omTLe6Jky3uiZMt7omTLg6pv6oOrcOyDq3Ds + g6tw7JG7h/mYw5H/mMOR/5jDkf+axZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5rFlP+Yw5H/mMOR/5jDkf+Ru4f5g6tw7IOrcOyDq3Ds + g6pv6nuiZMt7omTLe6Jky3uiZMt5oWFad6BfPnegXz53oF8+d6BfHQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAgJ9gAYCfYAGAn2ABgJ9gAXacXxJ2nF8YdpxfGHacXxh4n2A2eKBhV3igYVd4oGFX + e6Nlb4Cna9KAp2vSgKdr0oCna9KGr3Xth69274evdu+Hr3bvk72J+pnEkv+ZxJL/mcSS/5vGlf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + m8aV/5nEkv+ZxJL/mcSS/5O9ifqHr3bvh69274evdu+Gr3XtgKdr0oCna9KAp2vSgKdr0nujZW94oGFX + eKBhV3igYVd3oGE1dp5gGHaeYBh2nmAYdp5gEoCfYAGAn2ABgJ9gAYCfYAGAn2AIgJ9gCICfYAiAn2AI + dpxfiHacX7d2nF+3dpxft3ieYtV6oGT4eqBk+HqgZPiAp235mMOR/5jDkf+Yw5H/mMOR/57JmP+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57JmP+YwpD/mMKQ/5jCkP+YwpD/f6dt+XmgZPh5oGT4eaBk+HifYtR2nmC1dp5gtXaeYLV2nmCH + gJ9gCICfYAiAn2AIgJ9gCICfYAiAn2AIgJ9gCICfYAh2nF+Idpxft3acX7d2nF+3eJ5i1XqgZPh6oGT4 + eqBk+ICnbfmYw5H/mMOR/5jDkf+Yw5H/nsmY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmY/5jCkP+YwpD/mMKQ/5jCkP9/p235 + eaBk+HmgZPh5oGT4eJ9i1HaeYLV2nmC1dp5gtXaeYIeAn2AIgJ9gCICfYAiAn2AIgJ9gCICfYAiAn2AI + gJ9gCHacX4h2nF+3dpxft3acX7d4nmLVeqBk+HqgZPh6oGT4gKdt+ZjDkf+Yw5H/mMOR/5jDkf+eyZj/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZj/mMKQ/5jCkP+YwpD/mMKQ/3+nbfl5oGT4eaBk+HmgZPh4n2LUdp5gtXaeYLV2nmC1 + dp5gh4CfYAiAn2AIgJ9gCICfYAiAn2AIgJ9gCICfYAiAn2AIdpxfiHacX7d2nF+3dpxft3ieYtV6oGT4 + eqBk+HqgZPiAp235mMOR/5jDkf+Yw5H/mMOR/57JmP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57JmP+YwpD/mMKQ/5jCkP+YwpD/ + f6dt+XmgZPh5oGT4eaBk+HifYtR2nmC1dp5gtXaeYLV2nmCHgJ9gCICfYAiAn2AIgJ9gCICfYAGAn2AB + gJ9gAYCfYAF0nGAVdJxgHXScYB10nGAdd6BjR3mhY3h5oWN4eaFjeHujZo1/p2zif6ds4n+nbOJ/p2zi + irN88Yu0ffKLtH3yi7R98pbAjfubxpX/m8aV/5vGlf+cx5b/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHlv+bxpX/m8aV/5vGlf+WwI37 + i7R98ou0ffKLtH3yirN88X+nbOJ/p2zif6ds4n+nbOJ7o2aNeKFjeHihY3h4oWN4eJ9iR3eaXBx3mlwc + d5pcHHeaXBWAn2ABgJ9gAYCfYAGAn2ABAAAAAAAAAAAAAAAAAAAAAGaZZgRmmWYFZplmBWaZZgV3oWMx + eKFjZHihY2R4oWNkeaFkfHuiZt17ombde6Jm3XuiZt2Hr3jviLB58IiwefCIsHnwlb6L+pvFlP+bxZT/ + m8WU/5zHlv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nMeW/5vFlP+bxZT/m8WU/5W+i/qIsHnwiLB58IiwefCHr3jve6Jm3XuiZt17ombd + e6Jm3XmhZHx4oWNkeKFjZHihY2R4oGExgIBABICAQASAgEAEgIBAAwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAZplmBGaZZgVmmWYFZplmBXehYzF4oWNkeKFjZHihY2R5oWR8e6Jm3XuiZt17ombd + e6Jm3YeveO+IsHnwiLB58IiwefCVvov6m8WU/5vFlP+bxZT/nMeW/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cx5b/m8WU/5vFlP+bxZT/ + lb6L+oiwefCIsHnwiLB58IeveO97ombde6Jm3XuiZt17ombdeaFkfHihY2R4oWNkeKFjZHigYTGAgEAE + gIBABICAQASAgEADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmmWYEZplmBWaZZgVmmWYF + d6FjMXihY2R4oWNkeKFjZHmhZHx7ombde6Jm3XuiZt17ombdh69474iwefCIsHnwiLB58JW+i/qbxZT/ + m8WU/5vFlP+cx5b/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5zHlv+bxZT/m8WU/5vFlP+Vvov6iLB58IiwefCIsHnwh69473uiZt17ombd + e6Jm3XuiZt15oWR8eKFjZHihY2R4oWNkeKBhMYCAQASAgEAEgIBABICAQAMAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAGaZZgFmmWYCZplmAmaZZgJ3oWMUeKFjKHihYyh4oWMoeaFkMnqiZlp6omZa + eqJmWnqiZlqBqnCWgapwmoGqcJqBqnCah693z4ixeemIsXnpiLF56Yy0fu6QuoX1kLqF9ZC6hfWSvIf3 + nMeW/5zHlv+cx5b/nMeW/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5zHlv+cx5b/nMeW/5zHlv+SvIf2kbqF9ZG6hfWRuoX1jLV+7oixeemIsXnp + iLF56Yevd8+BqnCagapwmoGqcJqBqnCWe6JmWnuiZlp7omZae6JmWnmhZDJ4oWMoeKFjKHihYyh4oGEU + gIBAAoCAQAKAgEACgIBAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAABVqlUBVapVA1WqVQNVqlUDVapVA3agYVt2oGFhdqBhYXagYWF5oWOy + eqFk23qhZNt6oWTbf6ds44avd++Gr3fvhq9374mye/GaxZT/msWU/5rFlP+axZT/nciY/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/msWU/5rFlP+axZT/ + msWU/4qze/CHsHfuh7B37oewd+5/p2zjeqFk23qhZNt6oWTbeaFjsnagYWF2oGFhdqBhYXagYVuAgIAC + gICAAoCAgAKAgIACgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFWqVQFVqlUD + VapVA1WqVQNVqlUDdqBhW3agYWF2oGFhdqBhYXmhY7J6oWTbeqFk23qhZNt/p2zjhq9374avd++Gr3fv + ibJ78ZrFlP+axZT/msWU/5rFlP+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/53ImP+axZT/msWU/5rFlP+axZT/irN78Iewd+6HsHfuh7B37n+nbON6oWTb + eqFk23qhZNt5oWOydqBhYXagYWF2oGFhdqBhW4CAgAKAgIACgICAAoCAgAKAgIAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVapVAVWqVQNVqlUDVapVA1WqVQN2oGFbdqBhYXagYWF2oGFh + eaFjsnqhZNt6oWTbeqFk23+nbOOGr3fvhq9374avd++JsnvxmsWU/5rFlP+axZT/msWU/53ImP+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciY/5rFlP+axZT/ + msWU/5rFlP+Ks3vwh7B37oewd+6HsHfuf6ds43qhZNt6oWTbeqFk23mhY7J2oGFhdqBhYXagYWF2oGFb + gICAAoCAgAKAgIACgICAAoCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVqlUA + VapVAlWqVQJVqlUCVapVAnagYTx2oGFBdqBhQXagYUF5oWN3eqFkknqhZJJ6oWSSf6ZrooSsc7qErHO6 + hKxzuoaud8GRuobxkbqG8ZG6hvGRuobxlb+M95bAjfiWwI34lsCN+JrEk/ycx5f/nMeX/5zHl/+dyJf/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciX/5zHl/+cx5f/ + nMeX/5rEk/yWwI34lsCN+JbAjfiVv4z3kbqG8ZG6hvGRuobxkbqG8Yevd8CFrXO5ha1zuYWtc7l/p2ui + eqFkknqhZJJ6oWSSeaFjd3agYUF2oGFBdqBhQXagYTyAgIABgICAAYCAgAGAgIABgICAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB3m14gd5teT3ebXk93m15PeJxgYXqgZdV6oGXVeqBl1XqgZdWEq3Ln + ha106oWtdOqFrXTqkbuH95nDkv+Zw5L/mcOS/5vFlP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+bxZT/mcOS/5nDkv+Zw5L/kbuH94WtdOqFrXTqha106oSrcud6oGXV + eqBl1XqgZdV6oGXVeJxgYXebXk93m15Pd5teT3ebXiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHebXiB3m15P + d5teT3ebXk94nGBheqBl1XqgZdV6oGXVeqBl1YSrcueFrXTqha106oWtdOqRu4f3mcOS/5nDkv+Zw5L/ + m8WU/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5vFlP+Zw5L/ + mcOS/5nDkv+Ru4f3ha106oWtdOqFrXTqhKty53qgZdV6oGXVeqBl1XqgZdV4nGBhd5teT3ebXk93m15P + d5teIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5teIHebXk93m15Pd5teT3icYGF6oGXVeqBl1XqgZdV6oGXV + hKty54WtdOqFrXTqha106pG7h/eZw5L/mcOS/5nDkv+bxZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/m8WU/5nDkv+Zw5L/mcOS/5G7h/eFrXTqha106oWtdOqEq3Ln + eqBl1XqgZdV6oGXVeqBl1XicYGF3m15Pd5teT3ebXk93m14gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3m14d + d5teSnebXkp3m15KeJxgWnqgZcd6oGXHeqBlx3qgZceDq3Lbha103oWtdN6FrXTekLqF8JfBkPuXwZD7 + l8GQ+5nDkvycx5f+nMeX/pzHl/6cx5f+nciY/53ImP+dyJj/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsiY/57ImP+eyJj/nsiY/5zHl/6cx5f+nMeX/pzHl/6Zw5L8 + l8GQ+5fBkPuXwZD7kLqF8IWtdN6FrXTeha103oOrctt6oGXHeqBlx3qgZcd6oGXHeJxgWnebXkp3m15K + d5teSnebXh0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHacXi92nF42dpxeNnacXjZ6oGSNe6Flx3uhZcd7oWXHfqRp0oKqcemCqnHpgqpx6YOsc+qWwY7/ + lsGO/5bBjv+WwY7/nMeX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Hl/+XwY7/ + l8GO/5fBjv+XwY7/hKxz6oKqcemCqnHpgqpx6X6kadJ7oWXHe6Flx3uhZcd6oGSNdpxeNnacXjZ2nF42 + dpxeLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdpxeL3acXjZ2nF42dpxeNnqgZI17oWXH + e6Flx3uhZcd+pGnSgqpx6YKqcemCqnHpg6xz6pbBjv+WwY7/lsGO/5bBjv+cx5f/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nceX/5fBjv+XwY7/l8GO/5fBjv+ErHPqgqpx6YKqcemCqnHp + fqRp0nuhZcd7oWXHe6Flx3qgZI12nF42dpxeNnacXjZ2nF4vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB2nF4vdpxeNnacXjZ2nF42eqBkjXuhZcd7oWXHe6Flx36kadKCqnHpgqpx6YKqcemDrHPq + lsGO/5bBjv+WwY7/lsGO/5zHl/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dx5f/ + l8GO/5fBjv+XwY7/l8GO/4Ssc+qCqnHpgqpx6YKqcel+pGnSe6Flx3uhZcd7oWXHeqBkjXacXjZ2nF42 + dpxeNnacXi8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHacXi92nF42dpxeNnacXjZ6oGSN + e6Flx3uhZcd7oWXHfqRp0oKqcemCqnHpgqpx6YOsc+qWwY7/lsGO/5bBjv+WwY7/nMeX/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Hl/+XwY7/l8GO/5fBjv+XwY7/hKxz6oKqcemCqnHp + gqpx6X6kadJ7oWXHe6Flx3uhZcd6oGSNdpxeNnacXjZ2nF42dpxeLwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAdpxeCXacXgt2nF4LdpxeC3qgZBx7oWUoe6FlKHuhZSh8omc1faRpT32kaU99pGlP + fqVqV4GpcMWBqXDFgalwxYGpcMWGrXXkhq527IauduyGrnbsj7mD9pfBjv6XwY7+l8GO/pnDkf6eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5nDkf6XwY7+l8GO/pfBjv6PuYP2hq527IauduyGrnbs + hq115IKpcMWCqXDFgqlwxYKpcMV+pWpXfaRpT32kaU99pGlPfKJnNXuhZSh7oWUoe6FlKHqgZBx2nF4L + dpxeC3acXgt2nF4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAHabXQ52m10pdptdKXabXSl3nF8yeqBltnqgZbZ6oGW2eqBltn+ma92Ap2zn + gKds54CnbOeMtH3zlb+L/pW/i/6Vv4v+l8KP/p7Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + l8KP/pW/i/6Vv4v+lb+L/oy0ffOAp2zngKds54CnbOd/pmvdeqBltnqgZbZ6oGW2eqBltnecXzJ2m10p + dptdKXabXSl2m10OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdptdDnabXSl2m10p + dptdKXecXzJ6oGW2eqBltnqgZbZ6oGW2f6Zr3YCnbOeAp2zngKds54y0ffOVv4v+lb+L/pW/i/6Xwo/+ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+Xwo/+lb+L/pW/i/6Vv4v+jLR984CnbOeAp2zn + gKds53+ma916oGW2eqBltnqgZbZ6oGW2d5xfMnabXSl2m10pdptdKXabXQ4AAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB2m10OdptdKXabXSl2m10pd5xfMnqgZbZ6oGW2eqBltnqgZbZ/pmvd + gKds54CnbOeAp2znjLR985W/i/6Vv4v+lb+L/pfCj/6eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5fCj/6Vv4v+lb+L/pW/i/6MtH3zgKds54CnbOeAp2znf6Zr3XqgZbZ6oGW2eqBltnqgZbZ3nF8y + dptdKXabXSl2m10pdptdDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHabXQZ2m10T + dptdE3abXRN3nF8YeqBlVXqgZVV6oGVVeqBlVX6lanF/pWt4f6VreH+la3iGrnWiirJ7x4qye8eKsnvH + i7R90o22gPGNtoDxjbaA8Y22gPGNtoDxjbaA8Y22gPGNtoDxjLR90ouze8eLs3vHi7N7x4eudqJ/pWt4 + f6VreH+la3h+pWpxeqBlVXqgZVV6oGVVeqBlVXecXxh2m10TdptdE3abXRN2m10GAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + dJddEnSXXRZ0l10WdJddFnmfY1t6oGSXeqBkl3qgZJd7oWWsfaRo5X2kaOV9pGjlfaRo5X2kaOV9pGjl + faRo5X2kaOV8oWWrfKBklnygZJZ8oGSWe59jWnSXXRZ0l10WdJddFnSXXRIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0l10SdJddFnSXXRZ0l10WeZ9jW3qgZJd6oGSX + eqBkl3uhZax9pGjlfaRo5X2kaOV9pGjlfaRo5X2kaOV9pGjlfaRo5XyhZat8oGSWfKBklnygZJZ7n2Na + dJddFnSXXRZ0l10WdJddEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHSXXRJ0l10WdJddFnSXXRZ5n2NbeqBkl3qgZJd6oGSXe6FlrH2kaOV9pGjlfaRo5X2kaOV9pGjl + faRo5X2kaOV9pGjlfKFlq3ygZJZ8oGSWfKBklnufY1p0l10WdJddFnSXXRZ0l10SAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddDXSXXRB0l10QdJddEHmfY0N6oGRv + eqBkb3qgZG97oWV/faRorH2kaKx9pGisfaRorH2kaKx9pGisfaRorH2kaKx8oWV+fKBkbnygZG58oGRu + e59jQnSXXRB0l10QdJddEHSXXQ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHeZZgR3mWYPd5lmD3eZZg93mWYP + baRbDm2kWw5tpFsObaRbDm2kWwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAd5lmBHeZZg93mWYPd5lmD3eZZg9tpFsObaRbDm2kWw5tpFsObaRbBAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3mWYEd5lmD3eZZg93mWYP + d5lmD22kWw5tpFsObaRbDm2kWw5tpFsEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAHeZZgR3mWYPd5lmD3eZZg93mWYPbaRbDm2kWw5tpFsObaRbDm2kWwQAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/////////g + B///////////////////4Af//////////////////+AH///////////////////gB/////////////// + ///gAAAH////////////////4AAAB////////////////+AAAAf////////////////gAAAH//////// + ///////AAAAAAAP/////////////wAAAAAAD/////////////8AAAAAAA//////////////AAAAAAAP/ + ///////////AAAAAAAAAA///////////wAAAAAAAAAP//////////8AAAAAAAAAD///////////AAAAA + AAAAA///////////wAAAAAAAAAP/////////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAH///////+A + AAAAAAAAAAAB////////gAAAAAAAAAAAAf//////gAAAAAAAAAAAAAAB/////4AAAAAAAAAAAAAAAf// + //+AAAAAAAAAAAAAAAH/////gAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAA + AAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP + 8AAAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAA + AAAP///wAAAAAAAAAAAAAAAAD/////+AAAAAAAAAAAAB////////gAAAAAAAAAAAAf///////4AAAAAA + AAAAAAH///////+AAAAAAAAAAAAB////////+AAAAAAAAAAAH/////////gAAAAAAAAAAB/////////4 + AAAAAAAAAAAf////////+AAAAAAAAAAAH///////+AAAAAAAAAAAAAAf//////gAAAAAAAAAAAAAH/// + ///4AAAAAAAAAAAAAB//////+AAAAAAAAAAAAAAf////8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAA + AAAP///wAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAA + AAAA//8AAAAAAAAAAAAAAAAAAP///4AAAAAAAAAAAAAAH/////+AAAAAAAAAAAAAAB//////gAAAAAAA + AAAAAAAf/////4AAAAAAAAAAAAAAH///////+AAAAAAAAAAAH/////////gAAAAAAAAAAB/////////4 + AAAAAAAAAAAf////////+AAAAAAAAAAAH////////4AAAAAAAAAAAAH///////+AAAAAAAAAAAAB//// + ////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAH//////4AAAAAAAAAAAAAAAf////+AAAAAAAAAAAAA + AAH/////gAAAAAAAAAAAAAAB/////4AAAAAAAAAAAAAAAf///wAAAAAAAAAAAAAAAAAA//8AAAAAAAAA + AAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAA + AAAAD/AAAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAP///wAAAAAAAA + AAAAAAAAD///8AAAAAAAAAAAAAAAAA//////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAH///////+A + AAAAAAAAAAAB////////gAAAAAAAAAAAAf/////////AAAAAAAAAA///////////wAAAAAAAAAP///// + /////8AAAAAAAAAD///////////AAAAAAAAAA///////////wAAAAAAAAAP////////////AAAAAAAP/ + ////////////wAAAAAAD/////////////8AAAAAAA//////////////AAAAAAAP//////////////+AA + AAf////////////////gAAAH////////////////4AAAB////////////////+AAAAf///////////// + ////4Af//////////////////+AH///////////////////gB///////////////////4Af///////// + KAAAAEAAAACAAAAAAQAgAAAAAAAAQAAAYQoAAGEKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLuqAsy7qg/Mu6oPyLakDsi2pA7ItqQC + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy7qgLMu6oP + zLuqD8i2pA7ItqQOyLakAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANG5ogjRuaIT + 0LqoMdC7q4PQvKuM0sCtyNLArcjSwK3I0sCtyNC8q4vPu6qC0LqoMdG5ohPRuaIIAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADRuaIJ0bmiFtC6qDjQu6uX0LyrodLAreXSwK3l0sCt5dLAreXQvKuhz7uqltC6qDjRuaIW + 0bmiCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADRuaIL0bmiENC8qkDQvKtq0r6shdPArazXxrS64NLE4OHUx+Pp4NP46eDT+Ong0/jp4NP4 + 4dTG49/SxN/XxrS608CtrNK+rIXQvKtq0LyqQNG5ohDRuaILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0bmiD9G5ohbQvKpY0LyrkdK+rLLTwK3j2Me16ePXyvrl2s37 + 8erg//Hq4P/x6uD/8erg/+Xazfvj18r62Me16dPArePSvqyy0LyrkdC8qljRuaIW0bmiDwAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAybmiEsm5ohTRvqxT0b6sY9PAroPUwa6T3My8tOHSxNLj1sjf + 5tvO9Ojd0Pbs49j97eTZ/fLr4f/y6+H/8uvh//Lr4f/t5Nn97OPY/ejd0Pbm287049bI3+HSxNLczLy0 + 1MGuk9PAroPRvaxj0b2sU8m5ohTJuaISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMm5oh/JuaIh0b6si9G+rKXTwK7Q + 1MGv5t/PwPLn28796+HW/vLr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh/+vh1v7n287938/A8tTBr+bTwK7Q0b2spdG9rIvJuaIhybmiHwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLWkBMy1pBXNt6YZ0b2rVdG9q1XTwrB7 + 08Kxfd7Qwb7f0sPP4tTG5uPWyPLo3dD47OLX/u7m2/7y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/u5tv+7OLX/ujd0Pjj1sjy4tTG5t/Rw8/ez8G+08KxfdPCsHvRvatV + 0b2rVc23phnMtaQVzLWkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy1pAnMtaQt + zbemNtG9q7bRvau21cSz5NXEs+fm28756uDU/u/n3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3f/q4NT+ + 5tvO+dXEs+fVxLPk0b2rttG9q7bNt6Y2zLWkLcy1pAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy3ognMt6IU + zrunI9C9qkLRvqxK1MGwbNXCsnPczL3O3My9zt/Sw+3f0sPv6uDU++3k2P7w6d7/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6d7/7eTY/urg1Pvf0sPv39LD7dzMvc7czL3O1cKyc9TBsGzRvqxK0L2qQs67pyPMt6IU + zLeiCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADMt6IczLeiPM67p2rQvarF0r+tzdfFtevYx7fs6+LW/+vi1v/y6uD/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lq4P/r4tb/6+LW/9jHt+zXxbXr + 0r+tzdC9qsXOu6dqzLeiPMy3ohwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADOuaUJzrmlDNC9qh3Rvqsp0r+sQtK/rV/Vw7GF18e10djIt9fdzb7v3s/A8Ozk2P/s5Nj/ + 8uvg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+D/ + 7OTY/+zk2P/ez8Dw3c2+79jIt9fXx7XR1cOxhdK/rV/Sv6xC0b6rKdC9qh3OuaUMzrmlCQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzrmlLc65pT7QvaqT0b6ry9XDstrZyLjs4NLD8u3k2P/u5dr/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/u5dr/7eTY/+DSw/LZyLjs1cOy2tG+q8vQvaqT + zrmlPs65pS0AAAAAAAAAAAAAAAAAAAAAv7+fAb+/nwHNuKQLzbikDM66pjrOuqZK0sCtmtPBr87XxrXd + 28u77eHUxfPt5Nn/7uba//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7uba/+3k2f/h1MXz + 28u77dfGtd3Twa/O0sCtms66pkrOuqY6zrmlDM65pQu/v58Bv7+fAb+/nwi/v58IzbikoM24pLfPu6jn + 0Lyp+OLUxvzt5Nj/7+fc//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/v59z/7OPX/+HUxfzQvKr40Lup5s65pbXOuaWev7+fCL+/nwi/v58I + v7+fCM24pKDNuKS3z7uo59C8qfji1Mb87eTY/+/n3P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7+fc/+zj1//h1MX80Lyq+NC7qebOuaW1 + zrmlnr+/nwi/v58Iv7+fAb+/nwHNvqEPzb6hEc+6qFXPuqhu0b6sstK/rt/YyLjo3tHC8eTZy/bv59z/ + 8Ojd//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8ene/+zi1f/p28z/1LCT/9Swk//UsJP/1LCT/+nbzP/s4tX/8ene//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+/n3P/k2cv23tHC8djIuOjSv63f + 0b6sss+6qG7PuqhVyrqrEMq6qw6/v58Bv7+fAQAAAAAAAAAAzMyZBMzMmQXPuqhLz7qoZNC8qq3QvKrd + 1sW15t3PwPDj18r17+fc//Do3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Do3v/s4dT/6drL/9Ksjf/SrI3/0qyN/9Ksjf/p2sv/7OHU//Do3v/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Do3f/v59z/ + 49fK9d3PwPDWxbXm0Lyq3dC8qq3Puqhkz7qoSr+/vwS/v78DAAAAAAAAAAAAAAAAAAAAAMzMmQHMzJkB + z7qoD8+6qBTOu6okzruqL9K/rlPTwbB+1cOyn9fGteLZybnl4dTF8uLVx/Pv59z/7+fc//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh/+/l2f/s4NL/4867/9a0mf/TrpH/y557/82fe//apnz/2qZ8/9qlfP/apXz/ + zZ97/8ueev/TrpH/1rSZ/+POu//s4NL/7+XZ//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3P/v59z/ + 4tXH8uHUxfHZybnl18a14tXDsp/TwbB+07+uU9K6qS7Ruqgjz7qoFM+6qA+/v78Bv7+/AQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqqqqAqqqqgPMuKYvzbimYc+7qIrQvarb08Gu393Ovu/e0MDw + 7ubb/+7m2//y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/u5Nf/6t3O/9/Hsv/Ppof/zJ9+/8ONZf/GkGj/ + 3KR4/9ykeP/co3j/3KN4/8aQZ//DjWT/zJ9+/8+mh//fx7L/6t3O/+7k1//y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/u5tv/7ubb/97QwO/dzr7u08Gu39C9qtvPu6iKzbimYc63pS7/gIAC/4CAAQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKqqqgGqqqoBzLimEM24piDPu6gu + 0L2qSdLArVXXxbSE2Ma1i9vMvOPbzLzj49bI8OPWyPHo3M786d3Q/+DIs//bvaX/1bGV/9Cnh//TpYL/ + 16N7/9mkfP/gqH7/4ql//+mxhf/psYX/6bCF/+mwhf/iqX7/4Kh9/9mkfP/Xo3v/06WC/9Cnh//VsZX/ + 272l/+DIs//p3dD/6NzO/OPWyPHj1sjw28y849vMvOPYxrWK18W0hNLArVXQvapJz7uoLs24piDOt6UP + /4CAAf+AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAADPuKUQz7ilT8+5pljPvarVz72q1drKuunby7vq49TF++XWx//Wtpz/ + z6aH/8mYdP/DjGP/zZRq/9uhdf/gp3v/77aK/++2iv/wt4v/8LeL//C3i//wt4v/77aK/++2iv/gp3v/ + 26F1/82Uav/DjGP/yZh0/8+mh//Wtpz/5dbH/+PUxfvby7vq2sq66c+9qtXPvarVz7mmWM+4pU/PuKUQ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz7ilB8+4pSXOtqIryrCYfMqwmHzMqo3R + zKmM19Gsj/XSrY/91qiF/tilgP/ZpHz/26N4/9+nfP/mrYH/6a+D//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/6a+D/+atgf/fp3z/26N4/9mkfP/YpYD/1qiF/tKtj/3RrI/1zKmM18yqjdHKsJh8 + yrCYfM62oivPuKUlz7ilBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + t3pOA7d6Ti63ek4uvIdcvbyHXMfAiF7xwYhe+9WbcP7fpXn/6K+D//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//or4P/36V5/9WbcP7BiF77 + wIhe8byHXMe8h1y9t3pOLrd6Ti63ek4DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + uH1PCLh9Txi5f1Iku4FVULyBVVPAhlp7wIZae86Wa9fOl2zd05pv9tSbcP3gpnv+5qyA/+uyhv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 67KG/+asgP/gpnv+1Jtw/dOab/bOl2zdzpZr18CGWnvAhlp7vIFVU7yBVVC6f1IkuH1PGLh9TwgAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALh9TxS4fU89uX9SWbuBVci8glbLw4ld7sOJXe7iqHz+5Kp+/+60iP/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utIj/5Kp+/+KofP7DiV3uw4ld7r2CVsu8gVXJ + un9SWbh9Tz24fU8UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALV+UQu1flESuX9TJLqAVDi9g1dJwYdabMOKXYHJj2PXyZBk2dCWavPQlmrz + 5qyA/uetgf/utYn/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/7rWJ/+etgf/mrID+ + 0JZq89CWavPKkGTZyo9j18SKXYHBh1psvoNXSbqAVDi5f1MktX5RErV+UQsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1flEptX5RRbl/U4e6gFTSv4VZ28eOYu3OlWnx + 566C/+ivg//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/6K+D/+eugv/PlWjwyI5h7L+FWdu6gFTSuX9Th7V+UUW1flEp + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqoBVAaqAVQG5gFIMuYBSDryBVRq9gVYev4ZZQ7+HWlzBh1uW + wohc2MaMYODNlGjv05pu8+ivg//psIT/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+mwhP/or4P/05pt8s6UZ+/GjGDg + wohc2MGIW5a/h1pcvoZZQ72BVh68gVUauYBSDrmAUgyqgFUBqoBVAaqAVQaqgFUGuYBSXbmAUmq8gVXA + vYFW38qPY+rSl2vx3qR4+Ouyh//ttIj/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7bSI/+uyh//dpHj40Zdq8smPYuq9gVbfvIFVwLmAUmq5gFJdqoBVBqqAVQaqgFUG + qoBVBrmAUl25gFJqvIFVwL2BVt/Kj2Pq0pdr8d6kePjrsof/7bSI//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+20iP/rsof/3aR4+NGXavLJj2LqvYFW37yBVcC5gFJq + uYBSXaqAVQaqgFUGv4BABL+AQAS6fVJXun1SZLuAVb27gVXdyY5i6NGWavDeo3f367KG/+20iP/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//vt4v/6bWJ/+m1if/ptoj/6baI/++3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//ttIj/67KG/96jd/fRlmrw + yY5i6LuBVd27gFW9un1SZLp9Ule/gEAEv4BABL+AQAS/gEAEun1SV7p9UmS7gFW9u4FV3cmOYujRlmrw + 3qN39+uyhv/ttIj/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/77eL/+m1if/ptYn/6baI/+m2iP/vt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 7bSI/+uyhv/eo3f30ZZq8MmOYui7gVXdu4BVvbp9UmS6fVJXv4BABL+AQAS/gEABv4BAAbp9Ugy6fVIN + un1VG7p9VSC/g1lTwIRZdcKHW6jDiFziyI5i6NKYa/LXnXH16rCF/+qxhf/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/7LaK/+a0iP/ZsoP/tKx3/7Crdv+Wp2//lqdv/5anb/+Wp2// + sat2/7Wsd//ZsoP/5rSI/+y2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 6rGF/+qxhP/XnXD10phr8siOYujDiFziwodbqMCEWXW/g1lTun1VILp9VRu6fVINun1SDL+AQAG/gEAB + AAAAAAAAAAAAAAAAAAAAAKpVVQKqVVUDuXxTPLl9U2K7gFScvIFV3sKHW+TNk2bw05ls8+mvhP/psIT/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+y2if/ltIf/1rGC/6uqdP+mqXP/ + iaVr/4mla/+JpWv/iaVr/6epc/+sqnT/1rGC/+W0h//ston/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+mwhP/psIP/05ls882TZvDCh1vkvIFV3ruAVJy5fVNiuXxTPKpVVQOqVVUC + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUBqlVVAbl8UxC5fVMavH9UKr1/VDzAhFhR + w4hcesWKXo7Jj2PgypBk4daccPDWnHDw6bCE/uqxhf/vtor/8LeL/+u2if/otYj/0rGB/7+ue/+zrHj/ + oqly/5+sdv+YtX//mLaB/5i/jP+Yv4z/mL+M/5i/jP+YtoH/mLV//5+sdv+iqXL/s6x4/7+ue//SsYH/ + 6LWI/+u2if/wt4v/77aK/+qxhf/psIT+1pxw8NaccPDKkGThyY9j4MWKXo7DiFx6wIRZULyBVTu7gFQq + uX1TGrl8UxCqVVUBqlVVAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAP8AAAD/AAABunhPG7h7UU+5fVNqu4FV1byCVtbMkWXrzJFl6+atgf7or4P/7rWJ//C3i//ptYj/ + 5bSH/8evff+tq3X/n6lx/4mla/+LqnH/kbmD/5O7hv+dyZj/ncmY/53JmP+dyZj/k7uG/5G5g/+LqnH/ + iaVr/5+pcf+tq3X/x699/+W0h//ptYj/8LeL/+61if/or4P/5q2B/syRZevMkWXrvIJW1ruBVdW5fVNq + uHtRT7h7URoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAALp4Twu4e1EguX1TKruBVVW8glZYxotfgcaLX4HJl2re + yZhq5bykcva6pnT6sal1/a2rdv+lsHv/nbWA/5q3g/+Wu4f/lr2J/5nDkP+Zw5H/nsmZ/57Jmf+eyZn/ + nsmZ/5nDkf+Zw5D/lr2J/5a7h/+at4P/nbWA/6Wwe/+tq3b/sal1/bqmdPq8pHL2yZhq5cmXat7Gi1+B + xotfgbyCVli7gVVVuX1TKrh7USC4e1ELAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tHtPBLR7Tzq0e086sIVWybCFVtOZl2LwlJtk94yiafyIpWv/jrF6/5O7h/+XwY7/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/l8GO/5O7h/+OsXr/iKVr/4yiafyUm2T3 + mZdi8LCFVtOwhVbJtHtPOrR7Tzq0e08EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3n2AEd59gFXydYBuKmF90iphfdJiWYdWZlmHclqhz9JWsd/qTs339kraA/5W8iP+Ywo// + msWT/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5rFk/+Ywo// + lbyI/5K2gP+Ts339lax3+paoc/SZlmHcmJZh1YqYX3SKmF90fJ1gG3efYBV3n2AEAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd59gCXefYC14oGE2e6NltnujZbaAp23kgKdt55K7h/mWv43+ + m8aV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/m8aV/5a/jf6Su4f5gKdt54CnbeR7o2W2e6NltnigYTZ3n2At + d59gCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd51eCXedXhR5oGIjeqJlQnujZ0p+pmtsf6dsc4evds6Hr3bO + irN87Yuzfe+Wv437mcKR/pzHlv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHlv+ZwpH+lr+N+4uzfe+Ks3zt + h692zoevds5/p2xzfqZrbHujZ0p6omVCeaBiI3edXhR3nV4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHedXhx3nV48eaBianqiZcV8o2fN + gahv64OqceyXwY//l8GP/57ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsiY/5fBj/+XwY//g6px7IGob+t8o2fNeqJlxXmgYmp3nV48d51eHAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHegXwl3oF8MeqJjHXuiZCl8o2ZC + faRnX3+nbIWBqnDRg6ty14eveO+IsHrwmMOR/5jDkf+eyZj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57JmP+Yw5H/mMOR/4iwevCHr3jvg6ty14GqcNF/p2yF + faRnX3yjZkJ7omQpeqJjHXegXwx3oF8JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3oF8t + d6BfPnqiY5N7omTLf6dq2oOrcOyKs3zymMOR/5nEk/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5nEk/+Yw5H/irN88oOrcOx/p2rae6Jky3qiY5N3oF8+d6BfLQAAAAAAAAAAAAAAAAAAAACAn2AB + gJ9gAXacXwt2nF8MeKBgOnigYEp8pGaafaVozoGpbd2FrXPtjLV+85jDkv+axZP/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+axZP/mMOS/4y1fvOFrXPtgalt3X2laM58pGaad6BgSnegYDp2nmAM + dp5gC4CfYAGAn2ABgJ9gCICfYAh2nF+gdpxft3mfY+d6oGT4jLV//JjDkf+bxpX/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5vFlP+YwpD/ + jLV//HmgZPh4oGPmdp5gtXaeYJ6An2AIgJ9gCICfYAiAn2AIdpxfoHacX7d5n2PneqBk+Iy1f/yYw5H/ + m8aV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+bxZT/mMKQ/4y1f/x5oGT4eKBj5naeYLV2nmCegJ9gCICfYAiAn2ABgJ9gAXKbYQ9ym2ER + eKFjVXihY258pGiyfaVp34OrcuiKsnvxkLmE9pvFlP+cxpX/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+cxpX/m8WU/5C5hPaKsnvxg6ty6H2kad98pGiyeKFjbnigY1V4l1gQeJdYDoCfYAGAn2AB + AAAAAAAAAABmmWYEZplmBXihY0t4oWNkeqJlrXuiZt2BqW/miLB58I+3gvWbxZT/nMaV/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMaV/5vFlP+Pt4L1iLB58IGpb+Z7ombdeqJlrXihY2R4oWJK + gIBABICAQAMAAAAAAAAAAAAAAAAAAAAAZplmAWaZZgF4oWMPeKFjFHmiZSR5omUvfKVpU32man5/qGyf + galv4oOscuWLtH7yjLaA85vGlf+bxpX/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/m8aV/5vGlf+NtoDyjLV+8YSscuWBqW/if6hsn32man58pWlT + e6FnLnqhZiN4oWMUeKFiD4CAQAGAgEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVqlUC + VapVA3WgYS92oGFheKFjinqhZNt9pGjfhq9374exefCaxZT/msWU/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5rFlP+axZT/iLF574ewd+59pGjf + eqFk23ihY4p2oGFhdp9iLoCAgAKAgIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAVapVAVWqVQF1oGEQdqBhIHihYy56oWRJfKNnVYCnbYSBqG6Lhq5344aud+ONtoDw + jreB8ZjCkfybxZT/nciX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciX/5vFlP+YwpH8jreB8Y22gPCGrnfj + hq5344GoboqBqG2EfKNnVXqhZEl4oWMudqBhIHafYg+AgIABgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHebXhB3m15P + d5xfWHqgZdV6oGXVhKxz6YWtdOqVv4z7mcOS/5zHl/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHl/+Zw5L/ + lb+M+4WtdOqErHPpeqBl1XqgZdV3nF9Yd5teT3ebXhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3m14Hd5teJXecXyl6oGVjeqBlY4Gpb4eCqW+KirJ70IuzfeGOt4LtkLmF85W/jfqaxZP/ + m8aV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zGlf+axZP/ + lb+N+pC5hfOOt4Lti7N94Yqye9CCqW+Kgalvh3qgZWN6oGVjd5xfKXebXiV3m14HAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2nF4ydpxeNnuhZap7oWXH + gKdt3oKqcemNt4H1lsGO/5nEkv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+axJL/l8GO/463gfWCqnHpgKdt3nuhZcd7oWWqdpxeNnacXjIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + dpxeHnacXiB7oWVme6Fld3+mbJCBqG+ciLF6wY22geKPuYTqk7yI9ZW/i/iaxZP/m8aU/57Jmf+eyZn/ + nsmZ/57Jmf+bxpT/msWT/5W/i/iTvIj1kLmE6o62geKJsXrBgahvnH+mbJB7oWV3e6FlZnacXiB2nF4e + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2m10bdptdKXmfZHR6oGW2faNoyoCnbOeGrnXt + lb+L/pbAjf6eyZn/nsmZ/57Jmf+eyZn/lsCN/pW/i/6GrnXtgKds532jaMp6oGW2eZ9kdHabXSl2m10b + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdptdFHabXR55n2RV + eqBlhX2jaJaApmuvha1zvZC5hOORuoXllsCN+JbAjfiWwI34lsCN+JG6heWRuoTiha1zvYCma699o2iW + eqBlhXmfZFV2m10edptdFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB0l10JdJddFnidYjh6oGSXe6FloX2kaOV9pGjlfaRo5X2kaOV8oWWh + fKBklnqdYjh0l10WdJddCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddCHSXXRN4nWIxeqBkg3uhZYx9pGjI + faRoyH2kaMh9pGjIfKFli3ygZIJ6nWIxdJddE3SXXQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3mWYCd5lmD3eZZg9tpFsObaRbDm2kWwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5lmAneZZg93mWYPbaRbDm2kWw5tpFsCAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////4H/////////gf//// + ////gAH///////+AAf//////+AAAH//////4AAAf/////4AAAAH/////gAAAAf////AAAAAAD///8AAA + AAAP//8AAAAAAAD//wAAAAAAAP/wAAAAAAAAD/AAAAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADAAAAAAAAAA8AAAAAAAAAD/AAAAAAAAD/8AAAAAAAAP//wAAAAAA////AAAAAAD////AAA + AAA////AAAAAAAP//8AAAAAAA//8AAAAAAAAP/wAAAAAAAA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAA/wAAAAAAAAD/8AAAAAAAP//wAAAAAAA////AAA + AAA////wAAAAAA////AAAAAAD///AAAAAAAA//8AAAAAAAD/8AAAAAAAAA/wAAAAAAAADwAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAPAAAAAAAAAA/wAAAAAAAA//AAAAAAAAD//8AAA + AAAP///wAAAAAA////+AAAAB/////4AAAAH/////+AAAH//////4AAAf//////+AAf///////4AB//// + ////+B/////////4H////ygAAAAwAAAAYAAAAAEAIAAAAAAAACQAAGEKAABhCgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLuqCcy7qg/ItqQOyLakCAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0bmiB9C6qBPQu6s80b6sVdHArWXRv6xk0b6sVM+7qjzQuqcT + 0bmiBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0bmiEtC6qDDQu6uX0b6sxtLAreXSwK3l + 0b6sxc+7qpbQuqcw0bmiEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIB0bmiEdC7qTnQvKt007+trNbEs8Ph08bm + 593Q8uvi1/rr4tf6593Q8uDTxubWxLPD07+trNC8q3TQu6k50bmiEdG5ogEAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJuaIBybmiB9C9qxbRvqwi07+rPtbDsmnXxban + 2cm429zNvezm28/77eTZ/fHq4P/x6uD/7eTZ/ebbz/vczb3s2cm429fFtqfWw7Jp07+rPtG9rCLQvasW + ybmiB8m5ogEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJuaIHybmiIdC9q3DRvqyo + 1MGv49zMvO/n28798Ojd//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+fbzv3czLzv + 1MGv49G9rKjQvatwybmiIcm5ogcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMtaQLzLWkG9G9q13Sv612 + 1MOymN7QwcDj1sjc59vO9Orf0/nu5dn+8erf//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8erf/+7l2f7q39P559vO9OPWyNze0MHA1MOymNK/rXbRvatdzLWkG8y1pAsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6ICzLijA9C9qgjOuaga + zrinNdK/rZ/Twa/C1sa16OPWyfXr4dX+8uvg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvg/+vh1f7j1sn11sa16NPBr8LSv62fzrinNc65qBrQvaoI + zLijA8y3ogIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6Ij + zLijP9C9qrfTwa/M18W14+fcz/fs49f88erf/vHq4P/y6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4P/x6uD/8erf/uzj1/zn3M/3 + 18W149PBr8zQvaq3zLijP8y3oiMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOuaUU + z7uoJNG+q1HUwrBv1sSzht3Pv9jg0sPl4tXH8+zi1/3v59z/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh/+/n3P/s4tf94tXH8+DSw+Xdz7/Y1sSzhtTCsG/RvqtRz7uoJM65pRQAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADOuaUyz7uoWtG+q8vWxLPf2sm57ezj1/7v59z/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3P/s49f+2sm57dbEs9/RvqvLz7uoWs65pTIAAAAA + AAAAAAAAAAC/v58GzLikPs24pJLPu6jG1cOy2uje0fXr4tb57eXa+/Hp3//x6uD/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hq4P/x6d//7eXa++vh1vno3dD1 + 1cOy2tC7qcbOuaWRzbmlPr+/nwa/v58GzLmkP824pJPPu6jM1cOy4Ojd0Pjs4tb67ubb/PHq4P/y6+D/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4P/x6d7/7uPW/+ze0P/s3tD/ + 7uPW//Hp3v/y6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4P/x6uD/ + 7ubb/Ovi1vrn3M/41cOy4NC7qczOuaWSzbmlPr+/nwYAAAAAzMyZAszMmQXPuqhRz7upfNC8qt3YyLjo + 3tDB8e7m2/7w6d7/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hp3v/s4dT/ + 3MGp/9Ksjf/SrI3/3MGp/+zh1P/x6d7/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Dp3v/u5tv+3tDB8djIuOjQvKrdz7upfM+6qFG/v78Ev7+/AgAAAAAAAAAAzMyZAczMmQLPuqgg + z7upMs+8qlrVw7OB18e3nt3PwObh1MXu5trN9e7l2v3w6d7/8uvh//Lr4f/y6+H/8uvh//Do3P/t49b/ + 4Mi0/9u+pv/Tr5H/1qqH/9ingP/Yp4D/1qqH/9Ovkf/bvqb/4Mi0/+3j1v/w6Nz/8uvh//Lr4f/y6+H/ + 8uvh//Dp3v/u5dr95trN9eHUxe7dz8Dm18e3ntXDs4DRu6la0LqpMs+6qCC/v78Cv7+/AQAAAAAAAAAA + AAAAAAAAAAAAAAAAqqqqAaqqqgPMuKY5zbimYtC9qs3VxLLb3c6+6Org1Pnu5tv98erg/vHq4P/x6uD/ + 8ejd/+3i1f/o2sr/1LCU/82hgP/Fj2f/05xx/92lef/dpHn/05tx/8WPZv/NoYD/1LCU/+jayv/t4tX/ + 8ejd//Hq4P/x6uD/8erg/u7m2/3q4NT53c6+59XEstrQvarNzbimYs63pTn/gIAC/4CAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqqqqAKqqqgDMuKYCzbimBNC9qgnRu6go0buoVtG/rL3TwrDb + 3My96+LTxPfl1cb/0auN/8yfff/Fj2f/1p5z/96lef/ttIj/7rWK/++2iv/vtor/7rWJ/+20iP/epXn/ + 1p5z/8WPZ//Mn33/0auN/+XVxv/i08T33My969PCsNvRv6y90buoVtG7qCjQvaoJzbimBM63pQL/gIAA + /4CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPuKUT + z7ilL8y1n37NtJ2h0LKZ3NS1nPDXtpz91aaD/9WifP/VnXP/4ad8/+asgP/vtor/8LeL//C3i//wt4v/ + 8LeL/++2iv/mrID/4ad8/9Wdc//Vonz/1aaD/9e2nP3UtZzw0LKZ3M20naHMtZ9+z7ilL8+4pRMAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALd6TiW6gVVNvIdcx7+IXebCiV/73qR4/+asgP/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//mrID/3qR4/8KJX/u/iF3mvIdcx7qBVU23ek4l + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAuH1PArh9Ty+6gFNdu4FVoMGHW8DJj2PQ3aR49OOqfvrnroL+7LOH/+61if/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utYn/7LOH/+eugv7jqn76 + 3aR49MmPY9DBh1vAvIFVobuAU164fU8vuH1PAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAtX5RA7V+UQ65gFMfuoBULL+FWF7DiV2Oxoxg08uRZevSmGz05q2B/+yzh//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//ss4f/5q2B/9KYbPTLkWXrxoxg1MSJXY7AhVheu4BULLmAUx+1flEOtX5RAwAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtX5RDrV+UUW5gFOau4FV08eNYezUm2/0566C/+61if/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utYn/566C/9Wbb/THjWHru4FV07mAU5q1flFF + tX5RDgAAAAAAAAAAAAAAAAAAAACqgFUEuIBSHLmAUkC9gVZ4wYVajc2TZ6zWnHDT2qF17eCne/flrID7 + 7LOH/++2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//vtor/7LOH/+WsgPrgp3v3 + 2qF17dWccNPNk2atwYVajr2BVni5gFJAuIBSHKqAVQSqgFUGuIBSLrmAUmq9gVbIwYZa49KXa/HhqHz5 + 67KH//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/67KH/+GofPrRl2rywYZa472BVsi5gFJquIBSLqqAVQa/gEAEun1RKrp9UmS7gVXF + wIVZ4dGWavDhp3v567KG//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7LaK/+m1if/ptoj/7LaJ//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/67KG/+Gne/nRlmrwwIVZ4buBVcW6fVJkun1RKr+AQAS/gEAC + un1RGbp9Ujy7gFV3v4VZkMyRZbfVm2/a2qB08uKpfPnnrYH77bSI/++2iv/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7LaK/+e1iP/UsoL/yrB//8Ovff/Dr3z/yrB//9Wygv/ntYj/7LaK//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//vtor/7bSI/+eugfviqXz52qB08tWbb9rMkWW3v4VZkLuAVXe6fVI8 + un1RGb+AQAIAAAAAAAAAAAAAAACqVVUCt3lTFrl9U2K7gFWsvYJW38ySZe/Zn3L26a+E/++1iv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/57WI/9myg/+rqnT/l6dv/4mla/+JpWv/l6dv/6yqdP/asoP/ + 57WI//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//vton/6bCD/9mfcvbMkmXvvYJW37uAVay5fVNi + t3lTFqpVVQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUAt3lTBLl9UxS8flMjvn9UMMGFWmzEiV2b + xoxg3dGXa+vYnnLy6rGF/+20iP/wt4v/6LWI/9Wygv+6rXn/oqly/5qrdP+WtoD/mL2J/5nCj/+Zwo// + mL2J/5a2gP+aq3T/oqly/7qtef/VsoL/6LWI//C3i//ttIj/6rGF/9iecvLRl2vrxoxg3cSJXZvBhVps + vIFVL7uAVSK5fVMUt3lTBKpVVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA + yF8/A7h7UT26f1Rqu4FVqsiNYcLPlWnR3qh79t6ugPvesoP907GB/8Gwfv+ornn/k611/46veP+UvIf/ + mcSR/53JmP+dyZj/mcSR/5S8h/+Or3j/k611/6iuef/BsH7/07GB/96yg/3eroD73qh79s+VadHIjWHC + u4FVqrp/VGq4e1E9uHtRAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALR7Ty6ygFJZsIVW056TX+mTm2T3iKVr/4yudv+Tu4f/ + nMaV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMaV/5O7h/+Mrnb/iKVr/5ObZPeek1/p + sIVW07KAUlm0e08uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3n2ALd59gG4ScYW+Jm2KXkppk35SodPCVsX37 + lbqG/5e+i/+aw5L/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciY/5rDkv+Xvov/ + lbqG/5WxffuUqHTwkppk34mbYpeEnGFvd59gG3efYAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3nV4Cd55fA3qiZQh5oWMaeaFjNXykZ59+pmnC + galv6I63gvWXwI7+nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5fAjv6Ot4L1galv6H6macJ8pGefeaFjNXmhYxp6omUId55fA3edXgIAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3nV4jd55fP3qiZbd9pWnM + gahv45K8iPeYwpD8nciX/p3ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/nciX/pjCkPySvIj3gahv432lacx6omW3 + d55fP3edXiMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3oF8UeaFhJHuiZFF+pmlv + gKhshoixediKs3zljbaB85fBj/2bxZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5vFlP+XwY/9 + jbaB84qzfOWIsXnYgKhshn6maW97omRReaFhJHegXxQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3oF8y + eaFhWnuiZMuAqGzfhKxx7ZfCkP6axZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5rFlP+XwpD+hKxx7YCobN97omTLeaFhWnegXzIAAAAAAAAAAAAAAACAn2AG + d5xfPnacX5J5n2PGgKds2pO+ivWXwY75mcSS+53Il/+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+dyJf/mcSS+5fBjvmTvYn1f6Zs2nigY8Z2nmCR + d55gPoCfYAaAn2AGd5xfP3acX5N5n2PMf6ds4JO9ifiXwY/6msST/J3ImP+eyZj/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57JmP+dyJj/msST/JfBj/qTvIn4 + f6Zs4HmgY8x2nmCSd55gPoCfYAYAAAAAZplmAmaZZgV4oWNReaFkfHuiZt2Dq3LoibF68ZrEk/6cx5b/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHlv+axJP+ + ibF68YOrcuh7ombdeaFkfHihY1GAgEAEgIBAAgAAAAAAAAAAZplmAWaZZgJ4oWMgeaFkMnqiZlp/qG2B + gqpwnoixeeaMtH7ukLqF9ZnEk/2cx5f/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHl/+ZxJP9 + kbqF9Yy1fu6IsXnmgqpwnn+obYB7omZaeaFkMnihYyCAgEACgIBAAQAAAAAAAAAAAAAAAAAAAAAAAAAA + VapVAVWqVQN1oGE5dqBhYnqhZM1/p2zbhq936JXAjfmaxZP9nciY/p3ImP+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/ + nciY/prFk/2WwI35h7B353+nbNp6oWTNdqBhYnagYTmAgIACgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAVapVAFWqVQB1oGECdqBhBHqhZAl5nmEoeZ1hVnuhZ71+pWrbhq5265K7h/eZw5P/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5nDk/+Su4f3hq52636latt7oWe9eZ1hVnmeYSh6oWQJdqBhBHagYQKAgIAAgICAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3m14Td5teL3qgZHB8o2iH + g6txoouzfcyPuIPpk72K9pbBjvqbxpX/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nciY/5vGlf+XwY76k72K9o+4g+mLs33Mg6txonyjaId6oGRwd5teL3ebXhMAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB2nF4LdpxeNnqgZI17oWbIgqpx6Iq0ffKWwY7/nMeX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nceX/5fBjv+LtH3ygqpx6HuhZsh6oGSNdpxeNnacXgsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB2nF4CdpxeC3qgZBx7oWUpfaRpToCnbX6BqXDFhq115Iqye++XwY7+ + m8aV/57Jmf+eyZn/m8aV/5fBjv6Ksnvvhq115IKpcMWAp21+faRpTnuhZSl6oGQcdpxeC3acXgIAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2m10BdptdH3mfY056oGWS + f6ZrtISrcsaSu4bplb+M85jCkPqYwpD6lr+M85K7humEq3LGf6ZrtHqgZZJ5n2NOdptdH3abXQEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAdJddEnidYTB6oGSXfKNnxn2kaOV9pGjlfaNnxXygZJZ5nWEwdJddEgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddB3idYRN6oGQ8fKJnVXyjaGV8pGdkfKNmVHygZDx5nWET + dJddBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5lmCXeZZg9tpFsO + baRbCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///w///8AAP//4Af//wAA///gB///AAD//gAA + f/8AAP/wAAAP/wAA//AAAA//AAD/gAAAAf8AAPwAAAAAPwAA/AAAAAA/AADgAAAAAAcAAOAAAAAABwAA + AAAAAAAAAAAAAAAAAAAAAIAAAAAAAQAAgAAAAAABAADwAAAAAA8AAPAAAAAADwAA/4AAAAH/AAD/4AAA + B/8AAP4AAAAAfwAA8AAAAAAPAADwAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 4AAAAAAHAADgAAAAAAcAAPwAAAAAfwAA/+AAAAf/AAD/gAAAAf8AAPwAAAAAPwAA/AAAAAA/AADgAAAA + AAcAAOAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAQAAgAAAAAABAADwAAAAAA8AAPAAAAAADwAA + /4AAAAH/AAD/8AAAD/8AAP/wAAAP/wAA//4AAH//AAD//+AH//8AAP//4Af//wAA///8P///AAAoAAAA + IAAAAEAAAAABACAAAAAAAAAQAABhCgAAYQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMu6oBzLuqD8i2pA7ItqQBAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIE0LqnJdC7q5LSwK3X0sCt18+7qpHQuqYk + 0bmiBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIG0LuoL9G9rIzVw7HN4tbJ7u3l2vzt5dr8 + 4tbJ7tXDsc3RvayM0LuoL9G5ogYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJuaIMz72qRdK/rZfZyLfI5trN6+3k2Prv593+ + 8uvh//Lr4f/v593+7eTY+ubazevZyLfI0r+tl8+8qkXJuaIMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMtaQU0LyqV9PAr5rczr7H59zP7Ozi1/rw6N3/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+zi1/rn3M/s3M6+x9PAr5rQvKpXzLWkFAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6Idz7ypZdTBsJzf0MLL5tvP7uzi1/rw6d7/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Dp3v/s4tf65tvP7t/QwsvUwbCc + z7ypZcy3oh0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOuaUg0b6radbEs5rg0sPS5trN8ezi1/vx6d// + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/x6d// + 7OLX++bazfHg0sPS1sSzmtG+q2nOuaUgAAAAAAAAAAC/v58EzbikW8+7qJnf0cHZ5drM8u3k2Pzx6t// + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8erf/+3k2Pzl2czy3tDB2dC7qZnOuaVav7+fBL+/nwTNuKRe0LuoqN7PwOPm2872 + 7ubb/fHq4P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/7uXZ/+POuv/jzrr/7uXZ//Lq4P/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/x6uD/7ubb/ebbzvbdz7/j0LupqM65pVy/v58EAAAAAMzMmQPPuqg0 + 0Lyqd9jHt6rh1Mbd593Q9e3l2vzx6uD/8uvh//Lr4f/x6t//7eHU/+PNuv/bvqX/1qmF/9aohf/bvqX/ + 4826/+3h1P/x6t//8uvh//Lr4f/x6uD/7eXa/Ofd0PXh1Mbd2Me3qtC7qnfPuqg0v7+/AgAAAAAAAAAA + AAAAAAAAAACqqqoCzbimMM+8qXfXxrWq4dTF1+jd0fTs4tb769/R/+TPvP/bvKL/06N//9Occv/jqn7/ + 46p+/9Occv/To3//27yi/+TPvP/r39H/7OLW++jd0fTh1MXX18a1qc+8qXfNuKYw/4CAAQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM+4pSPOuKR10bqkw9e+p+zZuJ7+0qJ+/9ObcP/jqX3/ + 77aK//C3i//wt4v/77aK/+Opff/Tm3D/0qJ+/9m4nv7Xvqfs0bqkw864pHXPuKUjAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4fU8IuoBUHb2CVkDDi2CPyJBm49OZbv3mrID/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//mrID/05lu/ciQZuPDi2CPvYJWQLuAVB24fU8I + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1flEHuYBUF72DVkLBh1uexoxg4dedcffqsIT/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/6rCE/9edcffHjGDh + wodbn72DVUK5gFQXtX5RBwAAAAAAAAAAAAAAAKqAVQC5gFIHvYFWDruDVkO+hFiyxo1h5tyjd/jss4f/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/+yzh//do3f4x41g5b6EWLK7g1ZDvYFWDrmAUgeqgFUAqoBVBrmAUmO9gVbPzpNn7eWrgPvutYr/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//utYr/5KuA/M2TZu69gVbPuYBSY6qAVQa/gEAEun1SXruBVc3Nkmbs + 5Kt/++61if/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//ptYn/6baI//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61if/kq3/7zZJm7LuBVc26fVJev4BABL+AQAC6fVIG + uHpVELyAVlm/hFjBypBk69+levnttIj/8LeL//C3i//wt4v/8LeL/+62iv/fs4X/rat1/4+mbf+Ppm3/ + rqt1/9+zhf/utor/8LeL//C3i//wt4v/8LeL/+20iP/fpnn5ypBk67+EWMG8gFZZuHpVELp9Uga/gEAA + AAAAAAAAAACqVVUAuX1TC719Uxq/gldNwYdbq8qQZOXdo3f27LOH/+22iv/asoP/r6t2/5Wpcf+VuIL/ + msSS/5rEkv+VuIL/lalx/6+rdv/asoP/7baK/+yzh//do3f2ypBk5cGHW6u+gldNvIBVGbl9UwuqVVUA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAALh6UAu6gFQgv4VZRr6MXpizlmXno6Nu+5qsdv+Zuob/ + msKQ/5zGlf+eyZn/nsmZ/5zGlf+awpD/mbqG/5qsdv+jo277s5Zl576MXpi/hVlGuoBUILh7UQsAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHefYBR/n2Jfh59luZCoc+yWuYb9 + mcGP/5zGlf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cxpX/mcGP/5a5hv2QqHPsh59luX+fYl93n2AU + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHedXh16oWRlfqVrnIqye8uSvIfu + l8GP+pzHlv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMeW/5fBj/qSvIfu + irJ7y36la5x6oWRld51eHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHegXyB7omRpgKhrmou0fdKRu4bx + l8KQ+53Hl/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/53Hl/+XwpD7kbuG8Yu0fdKAqGuae6JkaXegXyAAAAAAAAAAAICfYAR2nF9beaBjmYmyetmQuoXy + mMOR/J3ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/mMOR/JC6hPKJsnrZeKBjmXaeYFqAn2AEgJ9gBHacX155oGOo + ibJ645K7h/aaxJP9nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+axJP9kruH9omxeuN5oGOodp1fXICfYAQAAAAA + ZplmA3ihYzR6omZ3gqpxqoy1ft2TvIj1mcSS/J3ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+ZxJL8k7yI9Yy1ft2CqnGqe6Jmd3ihYzSAgEAC + AAAAAAAAAAAAAAAAAAAAAFWqVQJ2oGEweaFjd4CobqqLtH/Xk72K9JnDkfudyJf/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Il/+Zw5H7k72K9Iy1f9eBqW6peaFjd3agYTCAgIAB + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5teI3mfY25/pmyqi7N80JS9ivOYw5H7 + nMeX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Hl/+Yw5H7lL2K84uzfNB/pmyqeZ9jbnebXiMAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHacXhR6oGNa + faRpq4evd8+TvYrymcOR+5zHlv+eyZn/nsmZ/5zHlv+Zw5H7lL2K8oevd899pGmreqBjWnacXhQAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB2m10MeJ5iRHuiZ6eDqnDQk72J8ZrFk/yaxZP8k72J8YOqcNB7omeneJ5iRHabXQwAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddBHecYSV6oGSSfaRo132kaNd8oGSReJxhJHSXXQQAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHeZZgF3mWYPbaRbDm2kWwEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/8P///8A// + /8AD//8AAP/8AAA/8AAAD8AAAAMAAAAAAAAAAIAAAAHgAAAH/AAAP/gAAB/gAAAHAAAAAAAAAAAAAAAA + AAAAAMAAAAPwAAAf/AAAP/AAAA/AAAADAAAAAAAAAACAAAAB4AAAB/wAAD//AAD//8AD///wD////D// + KAAAABAAAAAgAAAAAQAgAAAAAAAABAAAYQoAAGEKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAANG6pgrRvqxe0b6sXtC6pgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + zrypFNXDsWXg0sTQ7OPY+uzj2Prg0sTQ1cOxZc68qRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPu6ch + 2Ma2dOLVx9Lt5dn58erg//Lr4f/y6+H/8erg/+3l2fni1cfS2Ma2dM+7pyEAAAAAAAAAAMy4pBjWxbN/ + 49fJ1u3l2fvy6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvg/+3l2fvj18nW1sWzf825pRjMuaMZ + 1cOyjuTZy97u5tv88uvh//Lr4P/t4dT/4cav/+HGr//t4dT/8uvg//Lr4f/u5tv85NnL3tXDso7NuqYZ + AAAAAKqqqgDPu6gq2Mi3huDPvujewqr/2amE/+Wtgf/lrYH/2amE/97Cqv/gz77o2Mi3hs+7qCr/gIAA + AAAAAAAAAAC1flECvIJVGMOJXHfVnHHa5q2B/vC3i//wt4v/8LeL//C3i//mrYH+1Zxx2sOJXHe8glUY + tX5RAgAAAAC4gFIcxIleg9ifc+TqsYX98LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//qsYX9 + 2J9z5MSJXYS4gFIcun1RGsOIXYnZn3Pq67KG/vC3i//wt4v/67aJ/8Wvff/Gr33/67aJ//C3i//wt4v/ + 67KG/tmfc+rDiF2Jun1RGgAAAAC4e1MDvoBVHMWKXn3RoHPdwa58/p60f/+aw5D/msOQ/560f//Brnz+ + 0aBz3cWKXn29gVYcuHtTAwAAAAAAAAAAAAAAAHmgYyGDqXB2kbJ945rCkf6dyJj/nsmZ/57Jmf+dyJj/ + msKR/pGyfeODqXB2eaBjIQAAAAAAAAAAdpxfGICobX+OuILWmcOS+57JmP+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZj/mcOS+464gtaAqG1/dp5gGHacXxmAp22OkLmE3prEk/yeyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5rEk/yQuYTef6dtjnedXxkAAAAAVapVAHihYyqDqnKFj7iD2prEk/ueyZj/ + nsmZ/57Jmf+eyZj/msST+4+4g9qDq3KEeKFjKoCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAHmfYhuBqG5y + jLV/2ZrFk/uaxZP7jbV/2YGobnJ5n2IbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHebYAp8omdefKNmXnibYAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8PwAA8A8AAMADAAAAAAAA + AAAAAIABAACAAQAAAAAAAAAAAACAAQAAwAMAAAAAAAAAAAAAgAEAAPAPAAD8PwAA + + + \ No newline at end of file diff --git a/Handler/Project_form2/fModelV.Designer.cs b/Handler/Project_form2/fModelV.Designer.cs new file mode 100644 index 0000000..77d154d --- /dev/null +++ b/Handler/Project_form2/fModelV.Designer.cs @@ -0,0 +1,477 @@ +namespace Project +{ + partial class fModelV + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fModelV)); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + this.bn = new System.Windows.Forms.BindingNavigator(this.components); + this.bindingNavigatorAddNewItem = new System.Windows.Forms.ToolStripButton(); + this.bs = new System.Windows.Forms.BindingSource(this.components); + this.ds1 = new Project.DataSet1(); + this.bindingNavigatorMoveFirstItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMoveLastItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorDeleteItem = new System.Windows.Forms.ToolStripButton(); + this.modelBindingNavigatorSaveItem = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton1 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton2 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton3 = new System.Windows.Forms.ToolStripButton(); + this.dv = new arCtl.arDatagridView(); + this.tmDisplay = new System.Windows.Forms.Timer(this.components); + this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); + this.tbClose = new System.Windows.Forms.Button(); + this.panel5 = new System.Windows.Forms.Panel(); + this.panel1 = new System.Windows.Forms.Panel(); + this.panel2 = new System.Windows.Forms.Panel(); + this.linkLabel1 = new System.Windows.Forms.LinkLabel(); + this.tbFind = new System.Windows.Forms.TextBox(); + this.arLabel18 = new arCtl.arLabel(); + this.panTitleBar = new System.Windows.Forms.Panel(); + this.lbTitle = new arCtl.arLabel(); + this.dvc_title = new System.Windows.Forms.DataGridViewTextBoxColumn(); + ((System.ComponentModel.ISupportInitialize)(this.bn)).BeginInit(); + this.bn.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.bs)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.ds1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dv)).BeginInit(); + this.panel5.SuspendLayout(); + this.panel1.SuspendLayout(); + this.panel2.SuspendLayout(); + this.panTitleBar.SuspendLayout(); + this.SuspendLayout(); + // + // bn + // + this.bn.AddNewItem = this.bindingNavigatorAddNewItem; + this.bn.BindingSource = this.bs; + this.bn.CountItem = null; + this.bn.DeleteItem = null; + this.bn.Dock = System.Windows.Forms.DockStyle.Bottom; + this.bn.Font = new System.Drawing.Font("맑은 고딕", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.bn.ImageScalingSize = new System.Drawing.Size(40, 40); + this.bn.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.bindingNavigatorMoveFirstItem, + this.bindingNavigatorMoveLastItem, + this.bindingNavigatorSeparator2, + this.bindingNavigatorAddNewItem, + this.bindingNavigatorDeleteItem, + this.modelBindingNavigatorSaveItem, + this.toolStripButton1, + this.toolStripButton2, + this.toolStripButton3}); + this.bn.Location = new System.Drawing.Point(1, 561); + this.bn.MoveFirstItem = this.bindingNavigatorMoveFirstItem; + this.bn.MoveLastItem = this.bindingNavigatorMoveLastItem; + this.bn.MoveNextItem = null; + this.bn.MovePreviousItem = null; + this.bn.Name = "bn"; + this.bn.PositionItem = null; + this.bn.Size = new System.Drawing.Size(998, 47); + this.bn.TabIndex = 0; + this.bn.Text = "bindingNavigator1"; + // + // bindingNavigatorAddNewItem + // + this.bindingNavigatorAddNewItem.Image = global::Project.Properties.Resources.icons8_new_40; + this.bindingNavigatorAddNewItem.Name = "bindingNavigatorAddNewItem"; + this.bindingNavigatorAddNewItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorAddNewItem.Size = new System.Drawing.Size(103, 44); + this.bindingNavigatorAddNewItem.Text = "추가(&A)"; + // + // bs + // + this.bs.DataMember = "Model"; + this.bs.DataSource = this.ds1; + // + // ds1 + // + this.ds1.DataSetName = "DataSet1"; + this.ds1.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + // + // bindingNavigatorMoveFirstItem + // + this.bindingNavigatorMoveFirstItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveFirstItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveFirstItem.Image"))); + this.bindingNavigatorMoveFirstItem.Name = "bindingNavigatorMoveFirstItem"; + this.bindingNavigatorMoveFirstItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveFirstItem.Size = new System.Drawing.Size(44, 44); + this.bindingNavigatorMoveFirstItem.Text = "처음으로 이동"; + // + // bindingNavigatorMoveLastItem + // + this.bindingNavigatorMoveLastItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveLastItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveLastItem.Image"))); + this.bindingNavigatorMoveLastItem.Name = "bindingNavigatorMoveLastItem"; + this.bindingNavigatorMoveLastItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveLastItem.Size = new System.Drawing.Size(44, 44); + this.bindingNavigatorMoveLastItem.Text = "마지막으로 이동"; + // + // bindingNavigatorSeparator2 + // + this.bindingNavigatorSeparator2.Name = "bindingNavigatorSeparator2"; + this.bindingNavigatorSeparator2.Size = new System.Drawing.Size(6, 47); + // + // bindingNavigatorDeleteItem + // + this.bindingNavigatorDeleteItem.Image = global::Project.Properties.Resources.icons8_unavailable_40; + this.bindingNavigatorDeleteItem.Name = "bindingNavigatorDeleteItem"; + this.bindingNavigatorDeleteItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorDeleteItem.Size = new System.Drawing.Size(104, 44); + this.bindingNavigatorDeleteItem.Text = "삭제(&D)"; + this.bindingNavigatorDeleteItem.Click += new System.EventHandler(this.bindingNavigatorDeleteItem_Click); + // + // modelBindingNavigatorSaveItem + // + this.modelBindingNavigatorSaveItem.Image = global::Project.Properties.Resources.icons8_save_40; + this.modelBindingNavigatorSaveItem.Name = "modelBindingNavigatorSaveItem"; + this.modelBindingNavigatorSaveItem.Size = new System.Drawing.Size(101, 44); + this.modelBindingNavigatorSaveItem.Text = "저장(&S)"; + this.modelBindingNavigatorSaveItem.Click += new System.EventHandler(this.modelBindingNavigatorSaveItem_Click); + // + // toolStripButton1 + // + this.toolStripButton1.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.toolStripButton1.Image = global::Project.Properties.Resources.icons8_checked_radio_button_48; + this.toolStripButton1.Name = "toolStripButton1"; + this.toolStripButton1.Size = new System.Drawing.Size(105, 44); + this.toolStripButton1.Text = "선택(&O)"; + this.toolStripButton1.Click += new System.EventHandler(this.btSelect_Click); + // + // toolStripButton2 + // + this.toolStripButton2.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton2.Image"))); + this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton2.Name = "toolStripButton2"; + this.toolStripButton2.Size = new System.Drawing.Size(83, 44); + this.toolStripButton2.Text = "복사"; + this.toolStripButton2.Click += new System.EventHandler(this.toolStripButton2_Click); + // + // toolStripButton3 + // + this.toolStripButton3.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton3.Image"))); + this.toolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton3.Name = "toolStripButton3"; + this.toolStripButton3.Size = new System.Drawing.Size(83, 44); + this.toolStripButton3.Text = "SEM"; + this.toolStripButton3.ToolTipText = "레이저마킹 장비의 SEM 파일을 선택 합니다"; + this.toolStripButton3.Click += new System.EventHandler(this.toolStripButton3_Click); + // + // dv + // + this.dv.A_DelCurrentCell = true; + this.dv.A_EnterToTab = true; + this.dv.A_KoreanField = null; + this.dv.A_UpperField = null; + this.dv.A_ViewRownumOnHeader = true; + this.dv.AllowUserToAddRows = false; + this.dv.AllowUserToDeleteRows = false; + this.dv.AutoGenerateColumns = false; + this.dv.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; + this.dv.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells; + this.dv.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.dv.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.dv.ColumnHeadersHeight = 35; + this.dv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing; + this.dv.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dvc_title}); + this.dv.DataSource = this.bs; + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle2.Font = new System.Drawing.Font("맑은 고딕", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle2.Padding = new System.Windows.Forms.Padding(5); + dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dv.DefaultCellStyle = dataGridViewCellStyle2; + this.dv.Dock = System.Windows.Forms.DockStyle.Fill; + this.dv.Location = new System.Drawing.Point(5, 0); + this.dv.MultiSelect = false; + this.dv.Name = "dv"; + this.dv.RowHeadersVisible = false; + this.dv.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect; + this.dv.Size = new System.Drawing.Size(988, 435); + this.dv.TabIndex = 1; + this.dv.DataError += new System.Windows.Forms.DataGridViewDataErrorEventHandler(this.dv_DataError); + // + // tmDisplay + // + this.tmDisplay.Interval = 500; + this.tmDisplay.Tick += new System.EventHandler(this.tmDisplay_Tick); + // + // tbClose + // + this.tbClose.BackColor = System.Drawing.Color.Transparent; + this.tbClose.Cursor = System.Windows.Forms.Cursors.Hand; + this.tbClose.Dock = System.Windows.Forms.DockStyle.Right; + this.tbClose.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(51)))), ((int)(((byte)(51))))); + this.tbClose.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.tbClose.Font = new System.Drawing.Font("Consolas", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tbClose.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(151)))), ((int)(((byte)(151)))), ((int)(((byte)(151))))); + this.tbClose.Location = new System.Drawing.Point(954, 0); + this.tbClose.Name = "tbClose"; + this.tbClose.Size = new System.Drawing.Size(44, 32); + this.tbClose.TabIndex = 59; + this.tbClose.Text = "X"; + this.toolTip1.SetToolTip(this.tbClose, "종료"); + this.tbClose.UseVisualStyleBackColor = false; + this.tbClose.Click += new System.EventHandler(this.tbClose_Click); + // + // panel5 + // + this.panel5.Controls.Add(this.panel1); + this.panel5.Controls.Add(this.panel2); + this.panel5.Controls.Add(this.arLabel18); + this.panel5.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel5.Location = new System.Drawing.Point(1, 33); + this.panel5.Name = "panel5"; + this.panel5.Size = new System.Drawing.Size(998, 528); + this.panel5.TabIndex = 3; + // + // panel1 + // + this.panel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.panel1.Controls.Add(this.dv); + this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel1.Location = new System.Drawing.Point(0, 53); + this.panel1.Name = "panel1"; + this.panel1.Padding = new System.Windows.Forms.Padding(5, 0, 5, 0); + this.panel1.Size = new System.Drawing.Size(998, 435); + this.panel1.TabIndex = 7; + // + // panel2 + // + this.panel2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.panel2.Controls.Add(this.linkLabel1); + this.panel2.Controls.Add(this.tbFind); + this.panel2.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel2.Location = new System.Drawing.Point(0, 488); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(998, 40); + this.panel2.TabIndex = 6; + // + // linkLabel1 + // + this.linkLabel1.AutoSize = true; + this.linkLabel1.ForeColor = System.Drawing.Color.WhiteSmoke; + this.linkLabel1.LinkColor = System.Drawing.Color.WhiteSmoke; + this.linkLabel1.Location = new System.Drawing.Point(8, 10); + this.linkLabel1.Name = "linkLabel1"; + this.linkLabel1.Size = new System.Drawing.Size(39, 20); + this.linkLabel1.TabIndex = 8; + this.linkLabel1.TabStop = true; + this.linkLabel1.Text = "검색"; + this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked); + // + // tbFind + // + this.tbFind.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbFind.Location = new System.Drawing.Point(52, 7); + this.tbFind.Name = "tbFind"; + this.tbFind.Size = new System.Drawing.Size(937, 27); + this.tbFind.TabIndex = 7; + this.tbFind.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.tbFind.KeyDown += new System.Windows.Forms.KeyEventHandler(this.tbFind_KeyDown); + // + // arLabel18 + // + this.arLabel18.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel18.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); + this.arLabel18.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.arLabel18.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.arLabel18.BorderColorOver = System.Drawing.Color.DodgerBlue; + this.arLabel18.BorderSize = new System.Windows.Forms.Padding(0); + this.arLabel18.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.arLabel18.Cursor = System.Windows.Forms.Cursors.Arrow; + this.arLabel18.Dock = System.Windows.Forms.DockStyle.Top; + this.arLabel18.Font = new System.Drawing.Font("Cambria", 21.75F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.arLabel18.ForeColor = System.Drawing.Color.Gainsboro; + this.arLabel18.GradientEnable = true; + this.arLabel18.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.arLabel18.GradientRepeatBG = false; + this.arLabel18.isButton = false; + this.arLabel18.Location = new System.Drawing.Point(0, 0); + this.arLabel18.Margin = new System.Windows.Forms.Padding(0); + this.arLabel18.MouseDownColor = System.Drawing.Color.Yellow; + this.arLabel18.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.arLabel18.msg = null; + this.arLabel18.Name = "arLabel18"; + this.arLabel18.ProgressBorderColor = System.Drawing.Color.Black; + this.arLabel18.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.arLabel18.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.arLabel18.ProgressEnable = false; + this.arLabel18.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.arLabel18.ProgressForeColor = System.Drawing.Color.Black; + this.arLabel18.ProgressMax = 100F; + this.arLabel18.ProgressMin = 0F; + this.arLabel18.ProgressPadding = new System.Windows.Forms.Padding(0); + this.arLabel18.ProgressValue = 0F; + this.arLabel18.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.arLabel18.Sign = ""; + this.arLabel18.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.arLabel18.SignColor = System.Drawing.Color.Yellow; + this.arLabel18.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.arLabel18.Size = new System.Drawing.Size(998, 53); + this.arLabel18.TabIndex = 5; + this.arLabel18.Text = "--"; + this.arLabel18.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.arLabel18.TextShadow = true; + this.arLabel18.TextVisible = true; + // + // panTitleBar + // + this.panTitleBar.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(48)))), ((int)(((byte)(48)))), ((int)(((byte)(48))))); + this.panTitleBar.Controls.Add(this.lbTitle); + this.panTitleBar.Controls.Add(this.tbClose); + this.panTitleBar.Dock = System.Windows.Forms.DockStyle.Top; + this.panTitleBar.Location = new System.Drawing.Point(1, 1); + this.panTitleBar.Name = "panTitleBar"; + this.panTitleBar.Size = new System.Drawing.Size(998, 32); + this.panTitleBar.TabIndex = 133; + // + // lbTitle + // + this.lbTitle.BackColor = System.Drawing.Color.Transparent; + this.lbTitle.BackColor2 = System.Drawing.Color.Transparent; + this.lbTitle.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbTitle.BorderColor = System.Drawing.Color.Red; + this.lbTitle.BorderColorOver = System.Drawing.Color.Red; + this.lbTitle.BorderSize = new System.Windows.Forms.Padding(0); + this.lbTitle.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbTitle.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbTitle.Dock = System.Windows.Forms.DockStyle.Fill; + this.lbTitle.Font = new System.Drawing.Font("Cambria", 12F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbTitle.ForeColor = System.Drawing.Color.LightSkyBlue; + this.lbTitle.GradientEnable = true; + this.lbTitle.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; + this.lbTitle.GradientRepeatBG = false; + this.lbTitle.isButton = false; + this.lbTitle.Location = new System.Drawing.Point(0, 0); + this.lbTitle.MouseDownColor = System.Drawing.Color.Yellow; + this.lbTitle.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbTitle.msg = null; + this.lbTitle.Name = "lbTitle"; + this.lbTitle.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); + this.lbTitle.ProgressBorderColor = System.Drawing.Color.Black; + this.lbTitle.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbTitle.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbTitle.ProgressEnable = false; + this.lbTitle.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbTitle.ProgressForeColor = System.Drawing.Color.Black; + this.lbTitle.ProgressMax = 100F; + this.lbTitle.ProgressMin = 0F; + this.lbTitle.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbTitle.ProgressValue = 0F; + this.lbTitle.ShadowColor = System.Drawing.Color.WhiteSmoke; + this.lbTitle.Sign = ""; + this.lbTitle.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbTitle.SignColor = System.Drawing.Color.Yellow; + this.lbTitle.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbTitle.Size = new System.Drawing.Size(954, 32); + this.lbTitle.TabIndex = 60; + this.lbTitle.Text = "MODEL(VISION) SETTING"; + this.lbTitle.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.lbTitle.TextShadow = false; + this.lbTitle.TextVisible = true; + // + // dvc_title + // + this.dvc_title.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; + this.dvc_title.DataPropertyName = "Title"; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.dvc_title.DefaultCellStyle = dataGridViewCellStyle1; + this.dvc_title.HeaderText = "Remark"; + this.dvc_title.Name = "dvc_title"; + // + // fModelV + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(15)))), ((int)(((byte)(15))))); + this.ClientSize = new System.Drawing.Size(1000, 609); + this.Controls.Add(this.panel5); + this.Controls.Add(this.panTitleBar); + this.Controls.Add(this.bn); + this.Font = new System.Drawing.Font("맑은 고딕", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fModelV"; + this.Padding = new System.Windows.Forms.Padding(1); + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "MODEL SETTING"; + this.Load += new System.EventHandler(this.@__Load); + ((System.ComponentModel.ISupportInitialize)(this.bn)).EndInit(); + this.bn.ResumeLayout(false); + this.bn.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.bs)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.ds1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dv)).EndInit(); + this.panel5.ResumeLayout(false); + this.panel1.ResumeLayout(false); + this.panel2.ResumeLayout(false); + this.panel2.PerformLayout(); + this.panTitleBar.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private DataSet1 ds1; + private System.Windows.Forms.BindingNavigator bn; + private System.Windows.Forms.ToolStripButton bindingNavigatorAddNewItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorDeleteItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveFirstItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveLastItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator2; + private System.Windows.Forms.ToolStripButton modelBindingNavigatorSaveItem; + private arCtl.arDatagridView dv; + private System.Windows.Forms.Timer tmDisplay; + private System.Windows.Forms.ToolStripButton toolStripButton1; + private System.Windows.Forms.ToolTip toolTip1; + private System.Windows.Forms.Panel panel5; + private System.Windows.Forms.BindingSource bs; + private arCtl.arLabel arLabel18; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.LinkLabel linkLabel1; + private System.Windows.Forms.TextBox tbFind; + private System.Windows.Forms.ToolStripButton toolStripButton2; + private System.Windows.Forms.ToolStripButton toolStripButton3; + public System.Windows.Forms.Panel panTitleBar; + private arCtl.arLabel lbTitle; + private System.Windows.Forms.Button tbClose; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.DataGridViewTextBoxColumn dvc_title; + } +} \ No newline at end of file diff --git a/Handler/Project_form2/fModelV.cs b/Handler/Project_form2/fModelV.cs new file mode 100644 index 0000000..856e52c --- /dev/null +++ b/Handler/Project_form2/fModelV.cs @@ -0,0 +1,353 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace Project +{ + public partial class fModelV : Form + { + + public string Value = string.Empty; + public fModelV() + { + InitializeComponent(); + this.KeyPreview = true; + this.KeyDown += (s1, e1) => { if (e1.KeyCode == Keys.Escape) this.Close(); }; + this.StartPosition = FormStartPosition.CenterScreen; + this.FormClosed += __Closed; + this.dv.CellContentClick += dv_CellContentClick; + + this.lbTitle.MouseMove += LbTitle_MouseMove; + this.lbTitle.MouseUp += LbTitle_MouseUp; + this.lbTitle.MouseDown += LbTitle_MouseDown; + this.lbTitle.DoubleClick += LbTitle_DoubleClick; + } + + private void __Closed(object sender, FormClosedEventArgs e) + { + //Pub.sm.setNewStep(StateMachine.eSystemStep.IDLE); + this.ds1.Model.TableNewRow -= Model_TableNewRow; + } + + private void __Load(object sender, EventArgs e) + { + + + this.ds1.Clear(); + this.ds1.Model.Merge(Pub.mdm.dataSet.Model); + this.ds1.Model.TableNewRow += Model_TableNewRow; + this.tmDisplay.Start(); + + if (this.ds1.Model.Rows.Count < 1) + { + var newdr = this.ds1.Model.NewModelRow(); + newdr.Title = "New Model"; + this.ds1.Model.AddModelRow(newdr); + Util.MsgI("신규 모델 정보가 추가되었습니다.\n\n최초 설정 이므로 각 상태값을 확인 하세요."); + } + + //dispal current + if (Pub.Result.isSetvModel) + { + arLabel18.Text = Pub.Result.vModel.Title; + //find data + var datas = this.ds1.Model.Select("", this.bs.Sort); + for (int i = 0; i < datas.Length; i++) + { + if (datas[i]["Title"].ToString() == Pub.Result.vModel.Title) + { + this.bs.Position = i; + break; + } + } + } + else arLabel18.Text = "--"; + + } + #region "Mouse Form Move" + + private Boolean fMove = false; + private Point MDownPos; + + private void LbTitle_DoubleClick(object sender, EventArgs e) + { + if (this.WindowState == FormWindowState.Maximized) this.WindowState = FormWindowState.Normal; + else this.WindowState = FormWindowState.Maximized; + } + private void LbTitle_MouseMove(object sender, MouseEventArgs e) + { + if (fMove) + { + Point offset = new Point(e.X - MDownPos.X, e.Y - MDownPos.Y); + this.Left += offset.X; + this.Top += offset.Y; + offset = new Point(0, 0); + } + } + private void LbTitle_MouseUp(object sender, MouseEventArgs e) + { + fMove = false; + } + private void LbTitle_MouseDown(object sender, MouseEventArgs e) + { + MDownPos = new Point(e.X, e.Y); + fMove = true; + } + + #endregion + + void EntertoTab(Control ctl) + { + if(ctl.HasChildren) + { + foreach(var item in ctl.Controls) + { + if(item.GetType()==typeof(TextBox)) + { + var tb = item as TextBox; + tb.KeyDown += (s1, e1) => + { + if (e1.KeyCode == Keys.Enter) SendKeys.Send("{TAB}"); + }; + } + } + } + } + + void Model_TableNewRow(object sender, DataTableNewRowEventArgs e) + { + + e.Row["Title"] = DateTime.Now.ToString("yyMMddHHmmss"); + // e.Row["RowCount"] = 5; + // e.Row["ColCount"] = 0; + // e.Row["Light"] = 50; + } + + private void modelBindingNavigatorSaveItem_Click(object sender, EventArgs e) + { + //button - save + this.Validate(); + this.bs.EndEdit(); + + //z position 영역을 문자로 변환한다. + var drv = this.bs.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.ModelRow; + dr.EndEdit(); + this.ds1.AcceptChanges(); + + Dialog.fPassword f = new Dialog.fPassword(); + if (f.ShowDialog() != DialogResult.OK) return; + if (f.tbInput.Text != Pub.setting.Password_Setup) + { + Util.MsgE("Password incorrect"); + return; + } + + Pub.mdm.dataSet.Model.Clear(); + Pub.mdm.dataSet.Model.Merge(this.ds1.Model); + Pub.mdm.dataSet.AcceptChanges(); + Pub.mdm.SaveModelV(); + } + + private void bs_CurrentChanged(object sender, EventArgs e) + { + //z range 을 표시한다. + + //z position 영역을 문자로 변환한다. + //this.list + var drv = this.bs.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.MCModelRow; + } + + private void tmDisplay_Tick(object sender, EventArgs e) + { + + } + + + private void dv_DataError(object sender, DataGridViewDataErrorEventArgs e) + { + + } + + private void btSelect_Click(object sender, EventArgs e) + { + selectModel(); + } + void selectModel() + { + //select + this.Invalidate(); + this.bs.EndEdit(); + var drv = this.bs.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.ModelRow; + if (dr.Title == "") return; + this.Value = dr.Title; + DialogResult = System.Windows.Forms.DialogResult.OK; + } + + + private void toolStripButton2_Click_1(object sender, EventArgs e) + { + //iocontrol + var f = new Dialog.QuickControl(); + f.TopMost = true; + f.Opacity = 0.95; + f.Show(); + } + + private void bindingNavigatorDeleteItem_Click(object sender, EventArgs e) + { + var drv = this.bs.Current as DataRowView; + if (drv == null) return; + var dlg = Util.MsgQ("현재 선택된 자료를 삭제하시겠습니까?"); + if (dlg != System.Windows.Forms.DialogResult.Yes) return; + bs.RemoveCurrent(); + this.ds1.Model.AcceptChanges(); + } + + + + private void tbFind_KeyDown(object sender, KeyEventArgs e) + { + if(e.KeyCode == Keys.Enter) + { + findModel(); + } + } + + void findModel() + { + try + { + if (this.tbFind.Text.Trim() == "") + { + this.bs.Filter = ""; + this.tbFind.BackColor = Color.White; + } + else + { + string filter = "title like '%{0}%'"; + filter = string.Format(filter, tbFind.Text.Trim()); + this.bs.Filter = filter; + this.tbFind.BackColor = Color.SkyBlue; + this.tbFind.SelectAll(); + } + } + catch (Exception Ex) + { + this.bs.Filter = ""; + this.tbFind.BackColor = Color.Tomato; + Util.MsgE(Ex.Message); + } + } + private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + var f = new Dialog.fTouchKeyFull("INPUT - ", this.tbFind.Text.Trim()); + if (f.ShowDialog() != System.Windows.Forms.DialogResult.OK) return; + var inputLot = f.tbInput.Text.Trim().ToUpper(); + //if (inputLot == "") return; + tbFind.Text = inputLot; + findModel(); + tbFind.Focus(); + tbFind.SelectAll(); + } + + + private void button23_Click(object sender, EventArgs e) + { + + } + + + + private void toolStripButton2_Click(object sender, EventArgs e) + { + var drv = this.bs.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.ModelRow; + var dlg = Util.MsgQ(string.Format("다음 모델 정보를 복사하시겠습니까?\n\n모델명 : {0}", dr.Title)); + if (dlg != System.Windows.Forms.DialogResult.Yes) return; + + var newdr = this.ds1.Model.NewModelRow(); + Util.CopyData(dr, newdr); + newdr.Title += "-copy-"; + newdr.idx = this.ds1.Model.OrderByDescending(t => t.idx).FirstOrDefault().idx + 1; + newdr.EndEdit(); + this.ds1.Model.AddModelRow(newdr); + if (this.bs.Count > 0) this.bs.Position = this.bs.Count - 1; + } + + void dv_CellContentClick(object sender, DataGridViewCellEventArgs e) + { + if(this.dv.Columns[e.ColumnIndex].DataPropertyName.ToLower()=="spn") + { + //var drv = dv.Rows[e.RowIndex].DataBoundItem as DataRowView; + //var dr = drv.Row as DataSet1.ModelRow; + //var spn = dr.SPN; + //spn = selectSPn(spn); + //if(spn != "") + //{ + // dr.SPN = spn; + // dv.EndEdit(); + //} + } + } + //string selectSPn(string selectedname) + //{ + // var od = new OpenFileDialog(); + // od.InitialDirectory = Pub.setting.SPNPath; + // od.FileName = selectedname; + // if (od.ShowDialog() != System.Windows.Forms.DialogResult.OK) return ""; + // var fi = new System.IO.FileInfo(od.FileName); + // if (Pub.setting.SPNPath != fi.Directory.FullName) + // { + // Pub.setting.SPNPath = fi.Directory.FullName; + // Pub.setting.Save(); + // } + // var SPN = fi.Name.Replace(fi.Extension, ""); + // return SPN; + //} + + private void toolStripButton3_Click(object sender, EventArgs e) + { + + + //if(Pub.setting.SPNPath == "") + //{ + // Util.MsgE("SEM 파일 저장 경로가 입력되지 않았습니다\n"+ + // "환경설정에서 해당 값을 입력할 수 있습니다"); + // return; + //} + //Util.RunExplorer(Pub.setting.SPNPath); + //return; + + + + //var drv = this.bs.Current as DataRowView; + //if (drv == null) return; + //var dr = drv.Row as DataSet1.ModelRow; + + //var spn = selectSPn(dr.SPN); + //if(spn != "") + //{ + // dr.SPN = spn; + // dr.EndEdit(); + //} + } + + private void tbClose_Click(object sender, EventArgs e) + { + this.Close(); + } + } +} + diff --git a/Handler/Project_form2/fModelV.resx b/Handler/Project_form2/fModelV.resx new file mode 100644 index 0000000..69dc166 --- /dev/null +++ b/Handler/Project_form2/fModelV.resx @@ -0,0 +1,1974 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 88, 17 + + + 358, 17 + + + 17, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 + wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0 + v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg + UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA + Iu/O/9T+11gVGSSd+C+b9vW/bvA83AYYZt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPu + lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// + h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B + twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA + kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG + WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9 + 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJKSURBVFhH7ZbPShtRFMbzCD5CH8E3sJtmTA2kunCjaEot + uGzB7ruSgmJ3BjITUwhaTKmRUOrkf6oRE1JFJS4Ed24MttmEJjZdHD2XmzEtdzLezEmRTj/4mJlzmTm/ + OefOnev6pzS3XAAK88fRCx++fQG2TArY+dZti5LKWPRMnk5eeLMoCaX/A9o1OeDcZuU39xo3xh1XQWqT + A5q1TDZujDuugtQmBzRrmWzcGHdcBalNDmjWMtm4Me64ClKbHNCsZbJxY9xxFaT2aql6P1ucKychu7XA + znk6eVFV8Mt5HfKV49vr8mfYjk5BITrBIHk6VyL4aHAroDzgl9aiAswd7kIm7IOkOgzpd6MM7FdVYy7F + nkFKG/qBY/GVkVZCVV7z9NaianFgbQnOdl8B1CLQOA8wMDxvG2N4rFbmIRvyfuXprUVWwY2XLHknlMgI + mgl6vuXCQwMcobvsAuZPjiC9OgnF2IxRJSuXPk3X9bD7MqEOT3MMc9lpMc47nFe100UhSDfjPfGIt5UM + ul9wFLHsVjBzU71eALHaae3xlWWr7QLiWre3OSOE6Obj+GwrE/a+4RjmstNijCHgzoenQohuzumzP3sG + lPG9bnH7I7nL8vKn8aXyEV+z7x8JLjPZ9edsHt51mdmP+xu4FiaCip9jmAsB7Th68J2Byi7UPP3fE/5f + +/Kro5KuuZ+kQyNXOCdjbz3Nwntfs71ZKH6cqOuqu9HTZoFK+DWmVOUhv7zZVin+VGispqvjjZTmWeNh + +e1WP8UgO+DEcrmuAWxuQ/mZbbsZAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAPtSURBVHhe7ZrNaxVnFMbzdzSoJWlJVKKNTRtrrGlEab6o + 1GKpGu8NkaQxWCh00VhwIQouCkIXhZYshNJCCrYWpKUV0hav1mX3Lr3Lrop20SF3Hufo8x7kzkfe93be + mVjmBz+S58w575xhZpFFuioqKioqKoqheymc3LIYNLecBRKNrnWfDSfY/v9jW/SAzy8BWW5dCu6z/dmh + 5/1wUh6u9wxgI8diJPUmKffqWdxEX0pftFDfImArx2Ik9aY6X+KXsj164/0LQXPHAtCJPCZGUq+Nssv2 + +QK/iP75oDkwD3Qqj4mR1GtvgV/E4GlAZLRmozlf5+bO0BwgMlozVH/4QOYG58LnWFL21sJuuTYw98/f + LFnT6T4dMzwLiIzWDM+2fn08W8cyS8qrs+G5x9dqrTWWrOl0n44ZqQMiozX7T4XTT2b/+jf6ubwv+hLk + zY/UwnOs4bV6OMV2azrdp2MO1ACR0YnXa61LZj7mqdZFtjlh5hn9MzYDiIzOjJ4Ip0dPtNbGZh4+EOX3 + N066v3nDf93HmcMnAZGxdArfZ/w4IDKWTuH7TL0HiIylU/g+R94FRMbSKXyfo8cAkVExdd/ydkpa3RvH + 3gFERsXUfcvbKWl1bxw/CoiMpVP4PjNvAyJj6RS+T/0IIDIqpu4qx5Xlxvqd5dtAsusNtilp53jj9FuA + yKiYuqscVy7eArJkm5J2jjcWpgGRMXeu/AZkyTbF9z4xzkwBImPufLkGZMk2xfc+MT6YAERGxdRd5bjy + 9U0gS7Ypaed448NxQGRUTN1VjivXfwayZJuSdo43PnoTEBlz5+aPQJZsU3zvE+Pjw4DImDu3bwBZsk3x + vU+MTw4BIqNi6q5yXPnzByBLtilp53jj/EFAZFRM3VWOK/eurTfufQ8k+t36LbYpaed448IYIDKWTuH7 + XBoFRMbSKXyfywcAkVExdVc5riT1PC3blLS6Nz7dD4iMiqm7ynElqedp2aak1b1xZST6mzySsXQK3+ez + fYDIWDqF7/P5XkBkLJ3C9/liGBAZS6fwfVZeAUTG3Fl5OZxc2RM0zX1s5bh/rg4BImPuXI0e3tzDRY77 + 56s9gMiYO67n+94nxjeDgMiYO67n+94nxre7AZFRaa+7ZkN7ffWlcHJ1d9C07ffOtV2AyKi0112zob2+ + uitomppNv3euDwAio9Jed80G2z7DRtdz58ZOQGRU2uuu2WDbZ9joeu78tAMQGXPH9Xzf+8T4pR8QGXPH + 9Xzf+8RY6wNExtxxPd/3PjF+fxEQGXPH9Xzf+8RobAuajReAzWWB/yx9tyecuLM1uH+3F9gMyi5/9Ibj + XK+ioqKiosKKrq5HFoJNnSjLhC8AAAAASUVORK5CYII= + + + + 154, 17 + + + 261, 17 + + + + AAABAAYAAAAAAAEAIAASGgAAZgAAAICAAAABACAAKAgBAHgaAABAQAAAAQAgAChCAACgIgEAMDAAAAEA + IACoJQAAyGQBACAgAAABACAAqBAAAHCKAQAQEAAAAQAgAGgEAAAYmwEAiVBORw0KGgoAAAANSUhEUgAA + AQAAAAEACAYAAABccqhmAAAZ2UlEQVR42u3da4xu11kf8P+z1r68l5l3Zs7xuXh87OBgk8ZBWEGBGEs0 + caXKBiOiVHI+kMQNbYh6+YIqhBFVq1MqkIxQhVS1KCIo1MT94KhYIBAOaXGDRC7UAoIUm8RxjBOfm89l + 5szMO++7916Xfhh/IlnPPsnMmTMz6/+Tzqe99Mze+333f87WemYtAR1ZH/v4EwMAtTZmOt6OPWWapz/0 + X5tbfS10c5hbfQJEdOswAIgyxgAgyhgDgChjDACijDEAiDLGACDKmNzqE6Dv7MO/9QsVgCJ13FhTlFXx + gFbDGnNaRE5oY6JEtQ8gRlwJHhe1MV3bfTF475Qh7vf+9W+0+3f36EYVuy9BN0kNYKgcHwJ4v1pBcB8E + 9+hDen8HvAzEF3vGfBXATDk+A8AAOID4CkCUMQYAUcYYAEQZYwAQZYwBQJQxBgBRxhgARBljI9BN8OHf + /sVVAAup49aYY6U1/06rUZbFGWPM8dRxY8TcceL4Ga1GXRa2Kgq7m2tpnfNN57w25tzlq6+HEEPqeAjh + ate517UanQ//xYdwTRmy9Xs/9+vnd3Mt9O3YCHRzCADtwSugBMSbFgFMlB9hjIi62o8RI9bs7j95Rowx + Ij3fE5kA6QDAThNQ3/UWPfeMv6xuAr4CEGWMAUCUMQYAUcYYAEQZYwAQZYwBQJQxTq38A49/4heXAVSp + 49aYcWHt/VqNqrC3GyOLqePGmIVRXat/y19Ye8wYk5w6ExFZWRwv6DWMFHZXbQBw3sP5oC4asrY53Yox + vbBICGHLea/N8WO7aZ4NIWyla8TN1vkLPef6ZR/CVBnSPvXRX1/f1Q05YtgH8O1OQ51/x50AfkErYIw5 + VVgzTh0vrLUnVibHtRp1WWK3D+9eKKxFYa36i+L248uL2nHn/aTp3Ko25sKVa7c775MNRw5hCvhLPaf7 + GwC+pRzfALC+LzfukOArAFHGGABEGWMAEGWMAUCUMQYAUcYYAEQZYwAQZexINQI9/ttPvBs7f0f/HVkj + byms+YBWYzwcHLPWJP/OviqLwW2TyV1ajbKw1hiTvLcigDVGn+SXG9iy45CIAKBvQAQfgteGhBBi57y6 + MMmVjY1vtp2bJ3+GD810NlcbkpwPz/gQX1OGbD71c09+af/u3s111BqBBgDGyvFlAOoqOhAsiUiyE1BE + irKw6kIcZWFhdrkQx1EiwE7qKQqrdz2FIEDP91VEbhOR9BZlghbAqOd0lwFcUY53N/l27St+S4kyxgAg + yhgDgChjDACijDEAiDLGACDK2L5MNT/2zGO9P2th++47oEzzGDETgblDqzEoy/tFJLlIRmHNalUU/1Sr + UdfVyBpTpGtYuzQeaVONsNbAyFGZxT8YQozwPqhjrk+3p9qaAj4E1zTttlajdf5PXQjJhUdijFvztv2y + ViMinAsxbChD3Fv+fnSu55Lj2bNn9/o2fpv96gMQ9P9v4wEoTTwA3g5AXUWnrsrlwqYf3kFVFSeWJz2r + 6FgIH94Dx4jA9GxydNvSohrMMUY4749pYy5f3/jAvO2Sc/3OBzdv2+s9p/ssgJeU45sAfv8GLjvewJhd + 4SsAUcYYAEQZYwAQZYwBQJQxBgBRxhgARBljABBlrHfC+2Mf/5hBT1D4wbGHAZSp40bM2wTyoFZjaTy6 + yxhJzuHXZbU4GQ9PazXKorBGWUdDRKSwVr0W9gAcbbFnYRLnQ1B3OYoxds6pC5NsTGcXm67dTNYI0V2f + bn9TPU/Ez4cYvqoM6V55dfBcz+WG/3v2rHrBN9oI1PdUHIeynRZ2dtP5Qa2AEVk2kl4lp7C2HFSVuhBH + YQ0fYFL1fT/KQv8FEWOE1ikKANvz9kTnzHL6JIKHvvsUsLPD0VXleIv+51LQ00zEVwCijDEAiDLGACDK + GAOAKGMMAKKMMQCIMiYf+eRZPQT89HQEVrUhRVH8M0i6D2BQVvcOqvJHtRqLo+GCEUmeS12WxcJoqE4D + WmP6lp8n2pUYAR/0hUm2tmdN03XJ/QlCjGFjOtvSajRd+5fzrn05fSLoOhf/V8/pnjd2eEkbUECfv0eE + vBfAh7UxAvlxxHRPwXhQ2ztOHFPnTuuy5Bw+HXgiO/0mmuXFcQ0g+csqxojlhbG2+A3OX7n2aNN2WsOR + Mybc33O6n8LO4iRJfAUgyhgDgChjDACijDEAiDLGACDKGAOAKGMMAKKMFdj5u2LNn0Hf5AAB8UEoC4JM + m+a+1y5deY9WY1BXJwwkuR7AoCrLpYXRUKtRclMPuslijOi8uh4Irm9tz7TNRQKinzftZa1G03WfC4gv + KkM6AH/Rc7oX0fN878nT8s9/94kHoSwuYsU+YEQe02qMB/WdIukVgRYGdXVieaI2T1RlyS256KYKMUJ5 + tgEAl9c3NrfmTfLBizG66bz5Vs/P+bSP/ovKEPc/PvLk53d7PXwFIMoYA4AoYwwAoowxAIgyxgAgyhgD + gChjN7ovQJ+tnlqX0NNLEGNsoPQS+BgnTded0WugEmVREbOzMYjVaoi2swgdahFADH0bg3gflI1BYoyh + dZ06t+5jPBdj3FBqdAC+0XO6l7DzXCVPdS/uyYH5rj/+O0+8C8Agdbyw5oeskQ9qNQZldZcRSdYY1lV5 + 6tjyklajrkpYw/8YHUU+BDStPod/6dr69ZkyKMQ4n3etuquPD/Fp58PfKkPmT/3LJ1+41fcD4CsAUdYY + AEQZYwAQZYwBQJQxBgBRxhgARBljABBlbK8agfbCKwC0Jp0LAP5OK+BDeGuQdC/BvOtWL1xbf0SrUVp7 + 2ogkFx4prLXLC+MFtUZphb0Ee8uHgK7zahfP+tZ0y/n0ah0hxlnn/UWtRtt1z7ngz6eOx4g5+pt4XgNw + Xbuc/btzugPTCLQXPvLJJ+4BkHx4rTH3GmM+qtWobHGPEUkuPFKXZXn78ZVjWo1BXUqhNxzSd8l5j3nT + qQFw4eratabrtCaezda7r2s1Qgif8CG8rAyZ/e7PPqnWOEz4a4ooYwwAoowxAIgyxgAgyhgDgChjDACi + jB2kPoC90EHpJYjRzGKwa1qBEMs2iknO03qxpuugTkcZExCCMsUqQNHTJyCCI7PJSYwRUV+HAy4EaHfV + +RD77rt3hfdOkp9djKGNMaqff4yYAUFb8ENfUOCQORrfsBv0vn//R0sA3qGNqYbu50Xw9tRxW7b1eOWN + O7UaZT0vjXXJICqs4PTxkXqu40GNujoa+dy0DtN5o465eHUbTunzCb7wXTNQH77p2slv+a5K/qAY8VI7 + K36z53S/8ge/+lPXkQm+AhBljAFAlDEGAFHGGABEGWMAEGWMAUCUMQYAUcYOUB9AVM/lfb/02SVjw1u0 + MUVpH4JgOXm8KEbD4WhVqzGZDH/UFuZ46rixwdbDVl0QBDI3EKdcjwPsBb2EmQJIz52LCCZjvU+grgqU + xe7WJeicR9Pqm9BsTB2i2ulTI4ax/oP87VD70mIREQdBK9HMqq3glSYuF65ubMz+Uqsxm22fd85tp88D + 667zz/fcttee/dVH1nEIHKZOkzGA7+sZ85MA7kgdFJHKWrus/pDx0tJgUCe3KDPGoKoq9SR8aBBj+qEJ + scH6XO81ad0WXJgnjxsRlGWt1jBWdh8A3mPWs5vO2kaDoARAYSpUhd74tDx4K4ykr0ekEGtq9WLasl0K + IZ0R83mzOJ22K1oNEVkHoHUCngPwas9tuwxgHYcAXwGIMsYAIMoYA4AoYwwAoowxAIgyxgAgytieTAM+ + 9tgz6vHwAxMLI+rP8v5zA8R0X0JR2kURo04m28KUIpKcKrLWGmut2m9gjOx6IQ4BtEsBIBD9dsBIBSPp + 6UYRIEY9v0MAfOhZiaNHCNL7c0RK9TeJkar3enfumrqGyg3RPjtjBH2fv7XWxBiVRWViiSh6U4Ng8th/ + +t9TZUQMzusLJITozNc21A1EPv3pD9zgXUnbqz6AvsnmHwDwY9qAsnb/FkByjraqqmrcsyPP6VOnFqqy + TJ6LMQZlVeJmM6bu+a/VCCeK96gjQmgQlF6CGB2ubag9Lbi6dg0uXN3VtRRmGaW9XR1zeuFH1AfcSAFj + 9J6FvdDXn1HXdTmZTI5rY9quO671ErRtd8+lS5feqdWYbk232rbVegnWAPy3nsv5AoCv9YzZ9Q5DfAUg + yhgDgChjDACijDEAiDLGACDKGAOAKGMMAKKMyXvPPq+GwIrvTovyN/YAYK38Yyg9BfVgcHJQD+7Waiws + jH5MjBmmf4Y1Va1P9I5Ho8qadKOHiMDYw5F5MXpEKOtfxICZ0xcV8WGKEGf6z+k5DysjWKP/Lf+wuB2Q + 9H0VGCj9WQeKD0Fd3CR4H6fb29ocP9qmbb33yQ8vhjDb2tr+glZj3sxfbebzN5Qhzvv451qNCJxbs+VF + bUyB/v8FnAJwvzpC8C8ADFKHjZFBVVdq99Sx48cXiyL9dBpjYO3h+BLtBREL0fqrBBhX36fWiNEhRr1X + JPa02Al6mziPFNuzZRuslaqq1K4m732tNRM55xfbzv0TrUbbNVMI5sqQOYC+HYwcAC1E+ApAlDMGAFHG + GABEGWMAEGWMAUCUMQYAUcYYAEQZK07gshoC3k4KQNQGHIE1UMJEYER6ltkROVDbFB0JIsUNrMRDN4O6 + HtTO4kc9v3zFCNSmBAPrep7L2Pt8838ARBljABBljAFAlDEGAFHGGABEGWMAEGWMAUCUsQL9mwtcAPDX + PWM+AWVBkBDDSte16u4S165efY+IJFeeMNYWZVkOtRrj8biyNr2mgIhktaYAffe89+qCIN77sDWdqrv6 + uK6bB++Tu7qEGLe7rv2cViPGeAE7G4gkfwz6n8sL6Hm+96X35v3/8Y/PAHi7Nsaa8pcBJHdtKctyOBwO + jmk1VldXJ1VVJYPIGIO6vvk71NDh1TQN9J2BWnfu/AV1IY75bLbWdZ22FNNVH7pf6zmVl579lUdfv9nX + y1cAoowxAIgyxgAgyhgDgChjDACijDEAiDLGACDK2H6tFnEewKWeMV+E0pfQOndbu7n1Nq3A9tdf+Vci + ktzFyBgzLMtyVatx6tSphcFgoPYSjEZqPxLdItvbM3UOfz6fu0uXLm1pNbrOXQghJOfwY4znOu9+Sz2R + iK8KcEUdAXXTD6C/QW9P7EsAPPsrjwZA2+cKANBpB9/3H56rAKgfntmpkezAMsZ4Y4y6G1bcoY3Yj1tG + 35OodvHFGKP3Xv0AnXM+hOCUIZ1zXv0eAtj4g//8yMatvhs3gq8ARBljABBljAFAlDEGAFHGGABEGWMA + EGXsMO0aMQdwsWfMZwGsKMfHIcS71B8y2/4R59rkugRGTDGfzZa1GvVgIEVRJHsaRARVpe7pkJ22bdUp + POdcbOZzdQqv67r1ENNTeK5zV0OI/6/nVL4JYFs5vob+72HfHP+BkdVmPD/9y3+yAOCt2pjFhfLnRbTF + S2RkpLhPq3Hs+G12OBol760xBsvLS7f6dhwo6+vX1Sae2fZ2vHb1itocE6J7EYjJhzdGvLS51f1mz6l8 + 4w9/7Sf65vmPDL4CEGWMAUCUMQYAUcYYAEQZYwAQZYwBQJQxBgBRxo5UH8DTz/31uwEsJi9WcLeY+DNa + jbqqzxhj0jsUGVPWdX2bVuOV89uytpVe3sD5iAtr6uYyGI0XUNXphUdEBCsry2oNkb35ePX1EYC1tXV1 + TNvMsD3Vp9ZvX6lR2PT5riyU+P7VkXoiTdNcCSEkb3wIYbtpG3WzjRjkf8aIV5Uhmx985J1f2sXtPFAO + UyfgjRgAGKcOimBijZzUCgxrOyysLVPHrTHFcFiqT1ZVAEZZ/0QQ0LWteiGudrBFuu9lrx7uvdC3nZZz + rvd6BQWM8h/SqgAmI/2+z8QXXmkmct4PndM/fx8xiTH9HULPwjWHDV8BiDLGACDKGAOAKGMMAKKMMQCI + MsYAIMrYvkwDPvPMM0BPz4GbfP8d2vkYaybGpDf9AIBhXd8vgoXUcWvNalmYiVpjUA2tMcrGIGKrUr9t + p46NMKyTM4lwPqAsrFqj8RZd1JanF2xtXFdr2LJEUfR8xD3bHDjv4Dp95qsUB0i60HhscftkUa2xenyI + wqZ/H03GJYa1fi3W1FUIMXljfQi2LKy+qIgL93kfkovKxIitZ/7P34y0GiHEc8EHbV8A97Uv/vA56OLZ + szd/qne/+gAE/f/beABKEw+AtwN4v1agrovlwqYf3kFdFidWFha0GkVhYXY5x74y0XcO8iFifUtvBPrK + q+t4/Y1p8ngIEX9/7rJaY7SwiOFYvdzeAJhtb2G6tamOufvUGMak79mZk2O84251+h3LCzWs2e0XfqjN + 3yPECOf8MW3M5bWtD8ybdOI5H9ysafTkBZ4F8JJyfBPA79/ABd30XWj4CkCUMQYAUcYYAEQZYwAQZYwB + QJQxBgBRxhgARBnrnXj9+AsvGPQExdI1+zCAZOeLiLxNBA9qNVaWRndpDTiDulxcXBie1mpUhbWi/KG8 + MSKFNeq17Mff2UcA3gd1zLz1aLv0mBjR20vw+pUZLlzTx/Q5fazGnbfpfQ3LCzW021aVBoNKb3yy1uzL + 6jR9i5s4H0JQBsUQY+u8ukHJ5tbs4rzpks0TPgS3dn37m/p54vMxxq8qQ7pT5fpzPZcbHnroIfWCb7QR + qO+zOQ5A2+vqTgA/qBUwRpaNkeS3pLCmHNZlrV6MNQdqoYwUefNcNQtDAyjPXYxApa+PgfVpi8LoQdNn + cWhxcmXQc64VDsFtB9Af8GXPBxNjhFWazQBgNmtOGCPLyRoQD0DtSAXwLQBXleMt+p9LQU8zEV8BiDLG + ACDKGAOAKGMMAKKMMQCIMsYAIMpY8cnnn1dDoLiG04iyqlYx+EdQ+gDqujgzqEp1Mnk0qEtjJHkuVVXY + /im+QzIXtRdkZ+5cMxmVOLkyvMGC6Rp9Pyen2w5I71RiVRU2KtNvIUTTLnj1g2lad6ZpupkypLvQTu7X + TzWe/+Tzz1/ShhTQ5+8hAe8F8GF1jMiPQ+kpWBgN7JnTK+rc6aAqDsUc/kEhAEY9K+Tce2YJ955ZutWn + eqSI9PdwrEzGNYBkz0qMEcuTkbpE0rlLa4+2rdMajlyE6AEQ8SnsLE6SxFcAoowxAIgyxgAgyhgDgChj + DACijDEAiDLGACDKWIGdvyvW/Bn0TQ4QYnwQSiPQdNbc99r5q+/Ragzr8oSR9HoAdV2WS4tDtXmiKix7 + CeimijFCn54Hrm/OZo2yuUiI0c+aVt3VZd64z4UYX1SGdAD+oud0L6Ln+S5+9qGH+laMuPjmv6SnP/NX + QyiNQPOmq9rOvVOr4X1YMiLJGhGQxbG+MEVEZk1ptO8idnZl0sybzk23Gy0A3HTWaFuHIYT4dR/iXylD + 3Acf/uG/2e318BWAKGMMAKKMMQCIMsYAIMoYA4AoYwwAoozd6L4AfbZ6al1CTy9BjLGJSi+BD2HStN2Z + nhqVkfSiIiIiZWHVHSrECKcSj6gIIPZM4XXO+6hsDBJiDG3n1Ll1H8K5GGNymi/G2AH4Rs/pXsLOc5Xi + 9uKeHJjv+lN/8sK7ACQn+svC/JA15oNajWFd3WVEkjWGg6o8fWKirpAxqEv0bB5Eh5QPAfP09DwA4OLl + jeuzeavN4c9nTavu6uNDeLpz4W+VIfPHf+JdL9zq+wHwFYAoawwAoowxAIgyxgAgyhgDgChjDACijDEA + iDK2V41Ae+EVAFqTzgUAf6cVcM6/VZQ+AMzb1QtvXH9Eq1GW5rSIJBceKQtrlyfjBa1GVVphL8He8iGg + 7bzaxbO+Md3qnE+u1hFjnHVdUNe2mDfdc53z55Uac/Q38bwG4Lp2Oft353QHphFoL3zqj1+4B0Dy4S1K + e6+15qNajaq09xgjyV1b6qosV08uH9NqDOtSikJtOKTvknMes6ZTA+D8G+vXmlZZiSfEzbbzX9dqeB8+ + 4Tr/sjJk9qFH36XWOEz4a4ooYwwAoowxAIgyxgAgyhgDgChjDACijB2kPoC90EHvJZiiZ48DACMAyWnA + iFg7HyqtQOt8FWJU7q3AWqPOExrBkdnkJMaInnU44H3wO0t2fGfOB+d8UBfiiDFeBNAoQzbR//lPoW+m + 0eEIORrfsD301Ge+dBpKL0Fli9XCFP9Gq2GMeYeInEwdLwpr7zi5fJtWYzyqZVAVR+LzmbcuTrcbNQLO + vbF+xelNPG8EH76i1XDB/fc2uPPKkNnjD7+7LwCywlcAoowxAIgyxgAgyhgDgChjDACijDEAiDLGACDK + 2FFrBNoLG9hpBkmZAfgdrUAEVmNMNxOFEMfrG1N1YZLN6fwuYyTZKyAisrQwWNRq1FVpqtLuqpeg7Xxs + 2i5oY65vzTfV3XRCvOK9VzfTCCE+F6Jy3yM2AWhz/MDOojLaZ3dgFuI4KBgA/8DjD797u2dIbzfZU5/5 + 8hKAOnW8NG65bdo7tRpiTaWtTGSMmKowY62GNUZ2GwDO+Tibt2oAXF7b3A4hJsfEGC/GviaeiD/sgqwr + Q5rHH75fW2WHvgd8BSDKGAOAKGMMAKKMMQCIMsYAIMoYA4AoY5wGvDkitNUtgACgb7pxCzs9CSkmxjjR + CoQQKu/Drj7jEIKLMbY9wzbevCbtWvquN/Tcs54lReh7cSQWnDiKnvrMlxehLExiBcNK4i9pNcTKfWLk + nt2cRwzx5eDDi9qYLsqTPspMGTJ7/OH7N/fjvtF3h68ARBljABBljAFAlDEGAFHGGABEGWMAEGWMAUCU + MTYCHVwN9AUs5gCe7anxBQAntAHaQh5vuoL+3XTWADjluAMdSGwEOsKe+ewLAygLkwBA27m+AGg+9JMP + NKAjia8ARBljABBljAFAlDEGAFHGGABEGWMAEGWMAUCUsf8PzNlsT7yleHcAAAAASUVORK5CYIIoAAAA + gAAAAAABAAABACAAAAAAAAAAAQBhCgAAYQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMu6oEzLuqD8y7qg/Mu6oPzLuqD8i2pA7ItqQO + yLakDsi2pA7ItqQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAMy7qgTMu6oPzLuqD8y7qg/Mu6oPyLakDsi2pA7ItqQOyLakDsi2pAQAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLuqBMy7qg/Mu6oPzLuqD8y7qg/ItqQO + yLakDsi2pA7ItqQOyLakBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADMu6oEzLuqD8y7qg/Mu6oPzLuqD8i2pA7ItqQOyLakDsi2pA7ItqQEAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADRuaIN0bmiENG5ohDRuaIQ0LuqQ9C7q2/Qu6tv0Lurb9G9rH/SwK2s0sCtrNLArazSwK2s + 0sCtrNLArazSwK2s0sCtrNC9q37Pu6puz7uqbs+7qm7Pu6lC0bmiENG5ohDRuaIQ0bmiDQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANG5ohLRuaIW0bmiFtG5ohbQu6pb + 0Lurl9C7q5fQu6uX0b2srNLAreXSwK3l0sCt5dLAreXSwK3l0sCt5dLAreXSwK3l0L2rq8+7qpbPu6qW + z7uqls+7qVrRuaIW0bmiFtG5ohbRuaISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA0bmiEtG5ohbRuaIW0bmiFtC7qlvQu6uX0Lurl9C7q5fRvays0sCt5dLAreXSwK3l + 0sCt5dLAreXSwK3l0sCt5dLAreXQvaurz7uqls+7qpbPu6qWz7upWtG5ohbRuaIW0bmiFtG5ohIAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIS0bmiFtG5ohbRuaIW + 0LuqW9C7q5fQu6uX0Lurl9G9rKzSwK3l0sCt5dLAreXSwK3l0sCt5dLAreXSwK3l0sCt5dC9q6vPu6qW + z7uqls+7qpbPu6la0bmiFtG5ohbRuaIW0bmiEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANG5ogPRuaIK0bmiCtG5ogrRuqUO + 0LyrRNC8q0TQvKtE0LyrRNK/rGzTv6x207+sdtO/rHbYx7eg28y9xdvMvcXbzL3F3c7A0eHVxvHh1cbx + 4dXG8eHVxvHh1cbx4dXG8eHVxvHh1cbx3c7A0dvMvcXbzL3F28y9xdjHt6DTv6x207+sdtO/rHbSv6xs + 0LyrRNC8q0TQvKtE0LyrRNG6pQ7RuaIK0bmiCtG5ogrRuaIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA0bmiB9G5ohbRuaIW0bmiFtG6pR7QvKuR0LyrkdC8q5HQvKuR07+t09PArePTwK3j + 08Ct49zNve/j18r649fK+uPXyvrn3ND78erg//Hq4P/x6uD/8erg//Hq4P/x6uD/8erg//Hq4P/n3ND7 + 49fK+uPXyvrj18r63M2979PArePTwK3j08Ct49O/rdPQvKuR0LyrkdC8q5HQvKuR0bqlHtG5ohbRuaIW + 0bmiFtG5ogcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIH0bmiFtG5ohbRuaIW + 0bqlHtC8q5HQvKuR0LyrkdC8q5HTv63T08Ct49PArePTwK3j3M297+PXyvrj18r649fK+ufc0Pvx6uD/ + 8erg//Hq4P/x6uD/8erg//Hq4P/x6uD/8erg/+fc0Pvj18r649fK+uPXyvrczb3v08Ct49PArePTwK3j + 07+t09C8q5HQvKuR0LyrkdC8q5HRuqUe0bmiFtG5ohbRuaIW0bmiBwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAANG5ogfRuaIW0bmiFtG5ohbRuqUe0LyrkdC8q5HQvKuR0LyrkdO/rdPTwK3j + 08Ct49PArePczb3v49fK+uPXyvrj18r659zQ+/Hq4P/x6uD/8erg//Hq4P/x6uD/8erg//Hq4P/x6uD/ + 59zQ++PXyvrj18r649fK+tzNve/TwK3j08Ct49PArePTv63T0LyrkdC8q5HQvKuR0LyrkdG6pR7RuaIW + 0bmiFtG5ohbRuaIHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAMm5ogbJuaIHybmiB8m5ogfQvasW0b6sIdG+rCHRvqwh0r6sK9O/q0DTv6tA + 07+rQNTArUbXxban18W2p9fFtqfXxban2cm429rJuOnaybjp2sm46eHTxfLm28/75tvP++bbz/vp39P8 + 8erg//Hq4P/x6uD/8erg//Hq4P/x6uD/8erg//Hq4P/p39P85tvP++bbz/vm28/74dPF8trJuOnaybjp + 2sm46dnJuNvXxban18W2p9fFtqfXxban1MCtRtO/q0DTv6tA07+rQNK+rCvRvawh0b2sIdG9rCHQvasW + ybmiB8m5ogfJuaIHybmiBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAybmiHcm5oiHJuaIh + ybmiIdC9q3DRvqyl0b6spdG+rKXSv6271MGv5tTBr+bUwa/m1cOx6Ofbzv3n287959vO/efbzv3w6N3/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+fbzv3n287959vO/efbzv3Vw7Ho + 1MGv5tTBr+bUwa/m0r+tu9G9rKXRvayl0b2spdC9q3DJuaIhybmiIcm5oiHJuaIdAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAADJuaIdybmiIcm5oiHJuaIh0L2rcNG+rKXRvqyl0b6spdK/rbvUwa/m + 1MGv5tTBr+bVw7Ho59vO/efbzv3n287959vO/fDo3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6N3/59vO/efbzv3n287959vO/dXDsejUwa/m1MGv5tTBr+bSv6270b2spdG9rKXRvayl + 0L2rcMm5oiHJuaIhybmiIcm5oh0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMm5oh3JuaIh + ybmiIcm5oiHQvatw0b6spdG+rKXRvqyl0r+tu9TBr+bUwa/m1MGv5tXDsejn287959vO/efbzv3n2879 + 8Ojd//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Do3f/n287959vO/efbzv3n2879 + 1cOx6NTBr+bUwa/m1MGv5tK/rbvRvayl0b2spdG9rKXQvatwybmiIcm5oiHJuaIhybmiHQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAybmiHcm5oiHJuaIhybmiIdC9q3DRvqyl0b6spdG+rKXSv627 + 1MGv5tTBr+bUwa/m1cOx6Ofbzv3n287959vO/efbzv3w6N3/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8Ojd/+fbzv3n287959vO/efbzv3Vw7Ho1MGv5tTBr+bUwa/m0r+tu9G9rKXRvayl + 0b2spdC9q3DJuaIhybmiIcm5oiHJuaIdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAADMtaQRzLWkKsy1pCrMtaQqzrinO9G9q6rRvauq0b2rqtG9q6rUw7LT + 1cSz2tXEs9rVxLPa4tXH7One0vjp3tL46d7S+Ovi1vrw6N798Oje/fDo3v3w6d798erg//Hq4P/x6uD/ + 8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8erg//Hq4P/x6uD/ + 8erg//Dp3v3w6N798Oje/fDo3v3r4tb66d7S+One0vjp3tL44tXH7NXEs9rVxLPa1cSz2tTDstPRvauq + 0b2rqtG9q6rRvauqzrinO8y1pCrMtaQqzLWkKsy1pBEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy1pBLMtaQt + zLWkLcy1pC3OuKc/0b2rttG9q7bRvau20b2rttXDsuDVxLPn1cSz59XEs+fi1cj16uDU/urg1P7q4NT+ + 7eTY/vLr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+3k2P7q4NT+ + 6uDU/urg1P7i1cj11cSz59XEs+fVxLPn1cOy4NG9q7bRvau20b2rttG9q7bOuKc/zLWkLcy1pC3MtaQt + zLWkEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLWkEsy1pC3MtaQtzLWkLc64pz/Rvau20b2rttG9q7bRvau2 + 1cOy4NXEs+fVxLPn1cSz5+LVyPXq4NT+6uDU/urg1P7t5Nj+8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7eTY/urg1P7q4NT+6uDU/uLVyPXVxLPn1cSz59XEs+fVw7Lg + 0b2rttG9q7bRvau20b2rts64pz/MtaQtzLWkLcy1pC3MtaQSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMtaQS + zLWkLcy1pC3MtaQtzrinP9G9q7bRvau20b2rttG9q7bVw7Lg1cSz59XEs+fVxLPn4tXI9erg1P7q4NT+ + 6uDU/u3k2P7y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/t5Nj+ + 6uDU/urg1P7q4NT+4tXI9dXEs+fVxLPn1cSz59XDsuDRvau20b2rttG9q7bRvau2zrinP8y1pC3MtaQt + zLWkLcy1pBIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6Il + zLeiKMy3oijMt6Ioz7ypZdC9qoPQvaqD0L2qg9PArpPWxLSs1sS0rNbEtKzYx7e05NjL5+TYy+fk2Mvn + 5NjL5+je0vXp39P36d/T9+nf0/ft5Nn87+fd/+/n3f/v593/8One//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Dp3v/v593/7+fd/+/n3f/t5Nn86d/T9+nf0/fp39P3 + 6N7S9eTYy+fk2Mvn5NjL5+TYy+fYx7e01sS0rNbEtKzWxLSs08Cuk9C9qoPQvaqD0L2qg8+8qWXMt6Io + zLeiKMy3oijMt6IlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy3ojjMt6I8zLeiPMy3ojzPvKmX0L2qxdC9qsXQvarF + 08Gv1NfFtevXxbXr18W169rJuu7r4tb/6+LW/+vi1v/r4tb/8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/x6uD/6+LW/+vi1v/r4tb/6+LW/9rJuu7XxbXr + 18W169fFtevTwa/U0L2qxdC9qsXQvarFz7ypl8y3ojzMt6I8zLeiPMy3ojgAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + zLeiOMy3ojzMt6I8zLeiPM+8qZfQvarF0L2qxdC9qsXTwa/U18W169fFtevXxbXr2sm67uvi1v/r4tb/ + 6+LW/+vi1v/x6uD/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Hq4P/r4tb/6+LW/+vi1v/r4tb/2sm67tfFtevXxbXr18W169PBr9TQvarF0L2qxdC9qsXPvKmX + zLeiPMy3ojzMt6I8zLeiOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6I4zLeiPMy3ojzMt6I8z7ypl9C9qsXQvarF + 0L2qxdPBr9TXxbXr18W169fFtevaybru6+LW/+vi1v/r4tb/6+LW//Hq4P/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8erg/+vi1v/r4tb/6+LW/+vi1v/aybru + 18W169fFtevXxbXr08Gv1NC9qsXQvarF0L2qxc+8qZfMt6I8zLeiPMy3ojzMt6I4AAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM65pQzOuaUZzrmlGc65pRnPu6gk0b6rUdG+q1HRvqtR + 0b6rUdXDsn/Vw7KC1cOygtXDsoLczLy+3c+/3N3Pv9zdz7/c4NLD5eLVx/Pi1cfz4tXH8+TXyvXu5tr/ + 7uba/+7m2v/u5tr/8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/x6uD/7uba/+7m2v/u5tr/7uba/+TXyvXi1cfz4tXH8+LVx/Pg0sPl3c+/3N3Pv9zdz7/c + 3My8vtXDsoLVw7KC1cOygtXDsn/RvqtR0b6rUdG+q1HRvqtRz7uoJM65pRnOuaUZzrmlGc65pQwAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + zrmlHc65pT7OuaU+zrmlPs+7qFrRvqvL0b6ry9G+q8vRvqvL2ce36tnIuOzZyLjs2ci47Ofbzvnt5Nj/ + 7eTY/+3k2P/v59z/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh/+/n3P/t5Nj/7eTY/+3k2P/n28752ci47NnIuOzZyLjs2ce36tG+q8vRvqvL + 0b6ry9G+q8vPu6hazrmlPs65pT7OuaU+zrmlHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOuaUdzrmlPs65pT7OuaU+z7uoWtG+q8vRvqvL + 0b6ry9G+q8vZx7fq2ci47NnIuOzZyLjs59vO+e3k2P/t5Nj/7eTY/+/n3P/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7+fc/+3k2P/t5Nj/ + 7eTY/+fbzvnZyLjs2ci47NnIuOzZx7fq0b6ry9G+q8vRvqvL0b6ry8+7qFrOuaU+zrmlPs65pT7OuaUd + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAM65pR3OuaU+zrmlPs65pT7Pu6ha0b6ry9G+q8vRvqvL0b6ry9nHt+rZyLjs2ci47NnIuOzn2875 + 7eTY/+3k2P/t5Nj/7+fc//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/v59z/7eTY/+3k2P/t5Nj/59vO+dnIuOzZyLjs2ci47NnHt+rRvqvL + 0b6ry9G+q8vRvqvLz7uoWs65pT7OuaU+zrmlPs65pR0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAL+/nwG/v58Bv7+fAb+/nwHNuKQSzbikGM24pBjNuKQYzrqmNs+6p1fPuqdXz7qnV9G+q2/WxLLS + 1sSy0tbEstLWxLLS3My97d3Nvu/dzb7v3c2+7+jd0Pru5dn/7uXZ/+7l2f/v59z/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3P/u5dn/ + 7uXZ/+7l2f/o3dD63c2+793Nvu/dzb7v3My97dXEstLVxLLS1cSy0tXEstLRvqtvz7qnV8+6p1fPuqdX + z7qmNc65pRjOuaUYzrmlGM65pRK/v58Bv7+fAb+/nwG/v58Bv7+fCL+/nwi/v58Iv7+fCM24pIjNuKS3 + zbikt824pLfPuqfV0Lyp+NC8qfjQvKn41sSz+e3k2P/t5Nj/7eTY/+3k2P/y6+D/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/ + 7OPX/+zj1//s49f/7OPX/9bEs/nQvKr40Lyq+NC8qvjPu6jUzrmltc65pbXOuaW1zrmlh7+/nwi/v58I + v7+fCL+/nwi/v58Iv7+fCL+/nwi/v58IzbikiM24pLfNuKS3zbikt8+6p9XQvKn40Lyp+NC8qfjWxLP5 + 7eTY/+3k2P/t5Nj/7eTY//Lr4P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lq4P/s49f/7OPX/+zj1//s49f/1sSz+dC8qvjQvKr4 + 0Lyq+M+7qNTOuaW1zrmltc65pbXOuaWHv7+fCL+/nwi/v58Iv7+fCL+/nwi/v58Iv7+fCL+/nwjNuKSI + zbikt824pLfNuKS3z7qn1dC8qfjQvKn40Lyp+NbEs/nt5Nj/7eTY/+3k2P/t5Nj/8uvg//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8urg/+zj1//s49f/7OPX/+zj1//WxLP50Lyq+NC8qvjQvKr4z7uo1M65pbXOuaW1zrmltc65pYe/v58I + v7+fCL+/nwi/v58Iv7+fCL+/nwi/v58Iv7+fCM24pIjNuKS3zbikt824pLfPuqfV0Lyp+NC8qfjQvKn4 + 1sSz+e3k2P/t5Nj/7eTY/+3k2P/y6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/7OPX/+zj1//s49f/7OPX/9bEs/nQvKr4 + 0Lyq+NC8qvjPu6jUzrmltc65pbXOuaW1zrmlh7+/nwi/v58Iv7+fCL+/nwi/v58Bv7+fAb+/nwG/v58B + zbuiFc27oh3Nu6IdzbuiHc+7p0fPu6h4z7uoeM+7qHjRvauN1MKx4tTCseLUwrHi1MKx4t/Sw/Hg08Xy + 4NPF8uDTxfLq4dX77+jd/+/o3f/v6N3/8One//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7+bb/+3i1v/t4tb/7eLW/+fWxf/WtJj/1rSY/9a0mP/WtJj/ + 1rSY/9a0mP/WtJj/1rSY/+fWxf/t4tb/7eLW/+3i1v/v5tv/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/w6d7/7+jd/+/o3f/v6N3/6uHV++DTxfLg08Xy + 4NPF8t/Sw/HUwrHi1MKx4tTCseLUwrHi0b2rjc+7qXjPu6l4z7upeM+6qEfMuqgczLqoHMy6qBzMuqgV + v7+fAb+/nwG/v58Bv7+fAQAAAAAAAAAAAAAAAAAAAADMzJkEzMyZBczMmQXMzJkFz7unMc+6qGTPuqhk + z7qoZM+7qXzQvKrd0Lyq3dC8qt3QvKrd3M6/793PwPDdz8Dw3c/A8Onf0/rv59z/7+fc/+/n3P/w6d7/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/v5tr/ + 7OHU/+zh1P/s4dT/5dPB/9Ksjf/SrI3/0qyN/9Ksjf/SrI3/0qyN/9Ksjf/SrI3/5dPB/+zh1P/s4dT/ + 7OHU/+/m2v/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Dp3v/v59z/7+fc/+/n3P/p39P63c/A8N3PwPDdz8Dw3M6/79C8qt3QvKrd0Lyq3dC8qt3Pu6l8 + z7qoZM+6qGTPuqhkzrqpMb+/vwS/v78Ev7+/BL+/vwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAMzMmQTMzJkFzMyZBczMmQXPu6cxz7qoZM+6qGTPuqhkz7upfNC8qt3QvKrd0Lyq3dC8qt3czr/v + 3c/A8N3PwPDdz8Dw6d/T+u/n3P/v59z/7+fc//Dp3v/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/m2v/s4dT/7OHU/+zh1P/l08H/0qyN/9Ksjf/SrI3/ + 0qyN/9Ksjf/SrI3/0qyN/9Ksjf/l08H/7OHU/+zh1P/s4dT/7+ba//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8One/+/n3P/v59z/7+fc/+nf0/rdz8Dw + 3c/A8N3PwPDczr/v0Lyq3dC8qt3QvKrd0Lyq3c+7qXzPuqhkz7qoZM+6qGTOuqkxv7+/BL+/vwS/v78E + v7+/AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMyZBMzMmQXMzJkFzMyZBc+7pzHPuqhk + z7qoZM+6qGTPu6l80Lyq3dC8qt3QvKrd0Lyq3dzOv+/dz8Dw3c/A8N3PwPDp39P67+fc/+/n3P/v59z/ + 8One//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 7+ba/+zh1P/s4dT/7OHU/+XTwf/SrI3/0qyN/9Ksjf/SrI3/0qyN/9Ksjf/SrI3/0qyN/+XTwf/s4dT/ + 7OHU/+zh1P/v5tr/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6d7/7+fc/+/n3P/v59z/6d/T+t3PwPDdz8Dw3c/A8NzOv+/QvKrd0Lyq3dC8qt3QvKrd + z7upfM+6qGTPuqhkz7qoZM66qTG/v78Ev7+/BL+/vwS/v78DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADMzJkBzMyZAszMmQLMzJkCz7unFM+6qCjPuqgoz7qoKM+7qTLPvKpaz7yqWs+8qlrPvKpa + 18a2ltfGtprXxraa18a2mtzNvc/ez8Dp3s/A6d7PwOnh1MXu5trN9ebazfXm2s3159zP9/Do3f/w6N3/ + 8Ojd//Do3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/ + 7ePW/+3j1v/t49b/7ePW/+DItP/dwqv/3cKr/93Cq//Yt53/06+R/9Ovkf/Tr5H/1a2N/9ingP/Yp4D/ + 2KeA/9ingP/Yp4D/2KeA/9ingP/Yp4D/1ayM/9Ovkf/Tr5H/06+R/9i3nf/dwqv/3cKr/93Cq//gyLT/ + 7ePW/+3j1v/t49b/7ePW//Lq4P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6N3/8Ojd//Do3f/w6N3/59zP9ubazfXm2s315trN9eHUxe7ez8Dp3s/A6d7PwOnczb3P + 18a2mtfGtprXxraa18a2ltG7qVrRu6la0bupWtG7qVrQuqkyz7qoKM+6qCjPuqgozrqpFL+/vwK/v78C + v7+/Ar+/vwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAqqqqAaqqqgOqqqoDqqqqA6qqqgPNuKZbzbimYc24pmHNuKZhz7ypstC9qtvQvarb + 0L2q29XEsuPdzr7v3c6+793Ovu/f0cLx7ubb/+7m2//u5tv/7ubb//Hq4P/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hq4P/q3c7/6t3O/+rdzv/q3c7/1LGV/8+mh//Ppof/ + z6aH/8mZdf/DjWX/w41l/8ONZf/Kk2r/3KR4/9ykeP/cpHj/3KR4/9yjeP/co3j/3KN4/9yjeP/Kk2n/ + w41k/8ONZP/DjWT/yZl0/8+mh//Ppof/z6aH/9Sxlf/q3c7/6t3O/+rdzv/q3c7/8erg//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8erg/+7m2//u5tv/7ubb/+7m2//f0cLw + 3c6+7t3Ovu7dzr7u1cSy49C9qtvQvarb0L2q28+8qbLNuKZhzbimYc24pmHNuKZb/4CAAv+AgAL/gIAC + /4CAAv+AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqqqoBqqqqA6qqqgOqqqoD + qqqqA824plvNuKZhzbimYc24pmHPvKmy0L2q29C9qtvQvarb1cSy493Ovu/dzr7v3c6+79/RwvHu5tv/ + 7ubb/+7m2//u5tv/8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8erg/+rdzv/q3c7/6t3O/+rdzv/UsZX/z6aH/8+mh//Ppof/yZl1/8ONZf/DjWX/w41l/8qTav/cpHj/ + 3KR4/9ykeP/cpHj/3KN4/9yjeP/co3j/3KN4/8qTaf/DjWT/w41k/8ONZP/JmXT/z6aH/8+mh//Ppof/ + 1LGV/+rdzv/q3c7/6t3O/+rdzv/x6uD/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/x6uD/7ubb/+7m2//u5tv/7ubb/9/RwvDdzr7u3c6+7t3Ovu7VxLLj0L2q29C9qtvQvarb + z7ypss24pmHNuKZhzbimYc24plv/gIAC/4CAAv+AgAL/gIAC/4CAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAKqqqgGqqqoDqqqqA6qqqgOqqqoDzbimW824pmHNuKZhzbimYc+8qbLQvarb + 0L2q29C9qtvVxLLj3c6+793Ovu/dzr7v39HC8e7m2//u5tv/7ubb/+7m2//x6uD/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/x6uD/6t3O/+rdzv/q3c7/6t3O/9Sxlf/Ppof/ + z6aH/8+mh//JmXX/w41l/8ONZf/DjWX/ypNq/9ykeP/cpHj/3KR4/9ykeP/co3j/3KN4/9yjeP/co3j/ + ypNp/8ONZP/DjWT/w41k/8mZdP/Ppof/z6aH/8+mh//UsZX/6t3O/+rdzv/q3c7/6t3O//Hq4P/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hq4P/u5tv/7ubb/+7m2//u5tv/ + 39HC8N3Ovu7dzr7u3c6+7tXEsuPQvarb0L2q29C9qtvPvKmyzbimYc24pmHNuKZhzbimW/+AgAL/gIAC + /4CAAv+AgAL/gIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqqqqAKqqqgKqqqoC + qqqqAqqqqgLNuKY8zbimQc24pkHNuKZBz7ypd9C9qpLQvaqS0L2qktXDsqLby7q628u6utvLurrdzb3B + 5drN8eXazfHl2s3x5drN8erg1Pfr4dX46+HV+Ovh1fjt49f87uTY/+7k2P/u5Nj/69/R/+bUw//m1MP/ + 5tTD/+bTwf/dwqr/3cKq/93Cqv/dwqr/1aqJ/9Okgf/TpIH/06SB/9Kfef/Sm3H/0ptx/9Kbcf/Wn3X/ + 46p+/+Oqfv/jqn7/46p+/+Oqfv/jqn7/46p+/+Oqfv/Wn3T/0ptx/9Kbcf/Sm3H/0p94/9Okgf/TpIH/ + 06SB/9Wqif/dwqr/3cKq/93Cqv/dwqr/5tPB/+bUw//m1MP/5tTD/+vf0f/u5Nj/7uTY/+7k2P/t49f8 + 6+HV+Ovh1fjr4dX46uDU9+XazfHl2s3x5drN8eXazfHdzb3A28u6udvLurnby7q51cOyotC9qpLQvaqS + 0L2qks+8qXfNuKZBzbimQc24pkHNuKY8/4CAAf+AgAH/gIAB/4CAAf+AgAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAz7ilIM+4pU/PuKVPz7ilT8+5pmHPvarVz72q1c+9qtXPvarV2sm559vLu+rby7vq + 28u76uHSwvfl1sf/5dbH/+XWx//exrL/z6aH/8+mh//Ppof/zqSF/8OMY//DjGP/w4xj/8OMY//WnXH/ + 26F1/9uhdf/boXX/5qyA/++2iv/vtor/77aK/++2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/++2iv/vtor/77aK/++2iv/mrID/26F1/9uhdf/boXX/1p1x/8OMY//DjGP/w4xj/8OMY//OpIX/ + z6aH/8+mh//Ppof/3say/+XWx//l1sf/5dbH/+HSwvfby7vq28u76tvLu+raybnnz72q1c+9qtXPvarV + z72q1c+5pmHPuKVPz7ilT8+4pU/PuKUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPuKUgz7ilT8+4pU/PuKVP + z7mmYc+9qtXPvarVz72q1c+9qtXaybnn28u76tvLu+rby7vq4dLC9+XWx//l1sf/5dbH/97Gsv/Ppof/ + z6aH/8+mh//OpIX/w4xj/8OMY//DjGP/w4xj/9adcf/boXX/26F1/9uhdf/mrID/77aK/++2iv/vtor/ + 77aK//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/77aK/++2iv/vtor/77aK/+asgP/boXX/ + 26F1/9uhdf/WnXH/w4xj/8OMY//DjGP/w4xj/86khf/Ppof/z6aH/8+mh//exrL/5dbH/+XWx//l1sf/ + 4dLC99vLu+rby7vq28u76trJuefPvarVz72q1c+9qtXPvarVz7mmYc+4pU/PuKVPz7ilT8+4pSAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAM+4pSDPuKVPz7ilT8+4pU/PuaZhz72q1c+9qtXPvarVz72q1drJuefby7vq + 28u76tvLu+rh0sL35dbH/+XWx//l1sf/3say/8+mh//Ppof/z6aH/86khf/DjGP/w4xj/8OMY//DjGP/ + 1p1x/9uhdf/boXX/26F1/+asgP/vtor/77aK/++2iv/vtor/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//vtor/77aK/++2iv/vtor/5qyA/9uhdf/boXX/26F1/9adcf/DjGP/w4xj/8OMY//DjGP/ + zqSF/8+mh//Ppof/z6aH/97Gsv/l1sf/5dbH/+XWx//h0sL328u76tvLu+rby7vq2sm558+9qtXPvarV + z72q1c+9qtXPuaZhz7ilT8+4pU/PuKVPz7ilIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz7ilHc+4pUrPuKVK + z7ilSs+5plvPvKnKz7ypys+8qcrPvKnK2Ma05NnHtujZx7bo2ce26N/NvPbj0cD/49HA/+PRwP/cw63/ + 0KaG/9Cmhv/Qpob/z6SE/8aPZv/Gj2b/xo9m/8aPZv/Yn3P/3KJ2/9yidv/conb/5q2B/++2iv/vtor/ + 77aK/++2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/++2iv/vtor/77aK/++2iv/mrYH/ + 3KJ2/9yidv/conb/2J9z/8aPZv/Gj2b/xo9m/8aPZv/PpIT/0KaG/9Cmhv/Qpob/3MOt/+PRwP/j0cD/ + 49HA/9/NvPbZx7bo2ce26NnHtujYxrTkz7ypys+8qcrPvKnKz7ypys+5plvPuKVKz7ilSs+4pUrPuKUd + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAt3pOBrd6Ti63ek4ut3pOLrd6Ti68h1yz + vIdcx7yHXMe8h1zHv4hd5sGIXvvBiF77wYhe+8uSZ/zfpXn/36V5/9+lef/gpnr/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/+Cmev/fpXn/36V5/9+lef/Lkmf8wYhe+8GIXvvBiF77v4hd5ryHXMe8h1zHvIdcx7yHXLO3ek4u + t3pOLrd6Ti63ek4ut3pOBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAC3ek4Gt3pOLrd6Ti63ek4ut3pOLryHXLO8h1zHvIdcx7yHXMe/iF3mwYhe+8GIXvvBiF77 + y5Jn/N+lef/fpXn/36V5/+Cmev/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/4KZ6/9+lef/fpXn/36V5/8uSZ/zBiF77 + wYhe+8GIXvu/iF3mvIdcx7yHXMe8h1zHvIdcs7d6Ti63ek4ut3pOLrd6Ti63ek4GAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALd6Tga3ek4ut3pOLrd6Ti63ek4u + vIdcs7yHXMe8h1zHvIdcx7+IXebBiF77wYhe+8GIXvvLkmf836V5/9+lef/fpXn/4KZ6//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//gpnr/36V5/9+lef/fpXn/y5Jn/MGIXvvBiF77wYhe+7+IXea8h1zHvIdcx7yHXMe8h1yz + t3pOLrd6Ti63ek4ut3pOLrd6TgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAt3pOBrd6Ti63ek4ut3pOLrd6Ti68h1yzvIdcx7yHXMe8h1zHv4hd5sGIXvvBiF77 + wYhe+8uSZ/zfpXn/36V5/9+lef/gpnr/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+Cmev/fpXn/36V5/9+lef/Lkmf8 + wYhe+8GIXvvBiF77v4hd5ryHXMe8h1zHvIdcx7yHXLO3ek4ut3pOLrd6Ti63ek4ut3pOBgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAuH1PIbh9TzG4fU8xuH1PMbqAU127gVWgu4FVoLuBVaC8glalwohcyMKIXMjCiFzI + wohcyNqhde7dpHj03aR49N2kePTjqn76566C/ueugv7nroL+6bCE/u2zh//ts4f/7bOH/+20iP/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7bSI/+2zh//ts4f/7bOH/+mwhP7nroL+566C/ueugv7jqn763aR49N2kePTdpHj0 + 2qF17sKIXMjCiFzIwohcyMKIXMi9glamvIFVobyBVaG8gVWhu4BTXrh9TzG4fU8xuH1PMbh9TyEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4fU8puH1PPbh9Tz24fU89 + uoBTdbuBVci7gVXIu4FVyLyCVs3DiV3uw4ld7sOJXe7DiV3u4KZ6/eSqfv/kqn7/5Kp+/+uyhv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+uyhv/kqn7/5Kp+/+Sqfv/gpnr9w4ld7sOJXe7DiV3uw4ld7r2CVs68gVXJ + vIFVybyBVcm7gFN1uH1PPbh9Tz24fU89uH1PKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALh9Tym4fU89uH1PPbh9Tz26gFN1u4FVyLuBVci7gVXIvIJWzcOJXe7DiV3u + w4ld7sOJXe7gpnr95Kp+/+Sqfv/kqn7/67KG//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/67KG/+Sqfv/kqn7/ + 5Kp+/+Cmev3DiV3uw4ld7sOJXe7DiV3uvYJWzryBVcm8gVXJvIFVybuAU3W4fU89uH1PPbh9Tz24fU8p + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuH1PKbh9Tz24fU89 + uH1PPbqAU3W7gVXIu4FVyLuBVci8glbNw4ld7sOJXe7DiV3uw4ld7uCmev3kqn7/5Kp+/+Sqfv/rsob/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//rsob/5Kp+/+Sqfv/kqn7/4KZ6/cOJXe7DiV3uw4ld7sOJXe69glbO + vIFVybyBVcm8gVXJu4BTdbh9Tz24fU89uH1PPbh9TykAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1flEHtX5RJbV+USW1flEl + tX5RJbqAVGu6gFRwuoBUcLqAVHDCiFyNxItfm8SLX5vEi1+bzZNnudWccOXVnHDl1Zxw5dadcejconb3 + 3KJ299yidvfconb36a+D/uqxhf/qsYX/6rGF/+61if/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61if/qsYX/ + 6rGF/+qxhf/pr4P+3KJ299yidvfconb33KJ299adcejVnHDm1Zxw5tWccObNk2e5xYtemsWLXprFi16a + wohbjLqAVHC6gFRwuoBUcLqAVGu1flEltX5RJbV+USW1flEltX5RBwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALV+UQ61flFFtX5RRbV+UUW1flFFuoBUybqAVNK6gFTSuoBU0sOKXuTHjmLt + x45i7ceOYu3Um2/0566C/+eugv/nroL/6K+D//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 6K+D/+eugv/nroL/566C/9Wbb/TIjmHsyI5h7MiOYezEil3juoBU0rqAVNK6gFTSuoBUybV+UUW1flFF + tX5RRbV+UUW1flEOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtX5RDrV+UUW1flFF + tX5RRbV+UUW6gFTJuoBU0rqAVNK6gFTSw4pe5MeOYu3HjmLtx45i7dSbb/TnroL/566C/+eugv/or4P/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//or4P/566C/+eugv/nroL/1Ztv9MiOYezIjmHs + yI5h7MSKXeO6gFTSuoBU0rqAVNK6gFTJtX5RRbV+UUW1flFFtX5RRbV+UQ4AAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAC1flEOtX5RRbV+UUW1flFFtX5RRbqAVMm6gFTSuoBU0rqAVNLDil7k + x45i7ceOYu3HjmLt1Jtv9Oeugv/nroL/566C/+ivg//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/+ivg//nroL/566C/+eugv/Vm2/0yI5h7MiOYezIjmHsxIpd47qAVNK6gFTSuoBU0rqAVMm1flFF + tX5RRbV+UUW1flFFtX5RDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAKqAVQKqgFUCqoBVAqqAVQK5gFIVuYBSHLmAUhy5gFIcvIFVK72BVju9gVY7vYFWO8CFWUfFjGBz + xYxgc8WMYHPFjGBzyY9j18mPZN7Jj2TeyY9k3tCWauvTmm7y05pu8tOabvLco3f36bCE/+mwhP/psIT/ + 6rGF//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/6rGF/+mwhP/psIT/6bCE/9yjd/fTmm3x + 05pt8dOabfHQlmrryY9k3smPZN7Jj2TeyY9j18WMX3PFjF9zxYxfc8WMX3PAhVlHvYFWO72BVju9gVY7 + vIFVK7mAUhy5gFIcuYBSHLmAUhWqgFUCqoBVAqqAVQKqgFUCqoBVBqqAVQaqgFUGqoBVBrmAUk+5gFJq + uYBSarmAUmq8gVWhvYFW372BVt+9gVbfwYZa49KXa/HSl2vx0pdr8dKXa/HpsIX+67KH/+uyh//rsof/ + 7rWK//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61iv/rsof/67KH/+uyh//psIX+ + 0Zdq8tGXavLRl2ry0Zdq8sGGWuO9gVbfvYFW372BVt+8gVWhuYBSarmAUmq5gFJquYBST6qAVQaqgFUG + qoBVBqqAVQaqgFUGqoBVBqqAVQaqgFUGuYBST7mAUmq5gFJquYBSaryBVaG9gVbfvYFW372BVt/Bhlrj + 0pdr8dKXa/HSl2vx0pdr8emwhf7rsof/67KH/+uyh//utYr/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7rWK/+uyh//rsof/67KH/+mwhf7Rl2ry0Zdq8tGXavLRl2rywYZa472BVt+9gVbf + vYFW37yBVaG5gFJquYBSarmAUmq5gFJPqoBVBqqAVQaqgFUGqoBVBqqAVQaqgFUGqoBVBqqAVQa5gFJP + uYBSarmAUmq5gFJqvIFVob2BVt+9gVbfvYFW38GGWuPSl2vx0pdr8dKXa/HSl2vx6bCF/uuyh//rsof/ + 67KH/+61iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utYr/67KH/+uyh//rsof/ + 6bCF/tGXavLRl2ry0Zdq8tGXavLBhlrjvYFW372BVt+9gVbfvIFVobmAUmq5gFJquYBSarmAUk+qgFUG + qoBVBqqAVQaqgFUGqoBVBqqAVQaqgFUGqoBVBrmAUk+5gFJquYBSarmAUmq8gVWhvYFW372BVt+9gVbf + wYZa49KXa/HSl2vx0pdr8dKXa/HpsIX+67KH/+uyh//rsof/7rWK//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+61iv/rsof/67KH/+uyh//psIX+0Zdq8tGXavLRl2ry0Zdq8sGGWuO9gVbf + vYFW372BVt+8gVWhuYBSarmAUmq5gFJquYBST6qAVQaqgFUGqoBVBqqAVQa/gEAEv4BABL+AQAS/gEAE + un1SSrp9UmS6fVJkun1SZLuAVJy7gVXdu4FV3buBVd3AhVnh0ZZq8NGWavDRlmrw0ZZq8OmwhP7rsob/ + 67KG/+uyhv/utYn/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+62iv/ptYn/6bWJ/+m1if/ptYn/ + 6baI/+m2iP/ptoj/6baI/+63iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/7rWJ/+uyhv/rsob/ + 67KG/+mwhP7Rlmrw0ZZq8NGWavDRlmrwwIVZ4buBVd27gVXdu4FV3buAVJy6fVJkun1SZLp9UmS6fVJK + v4BABL+AQAS/gEAEv4BABL+AQAS/gEAEv4BABL+AQAS6fVJKun1SZLp9UmS6fVJku4BUnLuBVd27gVXd + u4FV3cCFWeHRlmrw0ZZq8NGWavDRlmrw6bCE/uuyhv/rsob/67KG/+61if/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7raK/+m1if/ptYn/6bWJ/+m1if/ptoj/6baI/+m2iP/ptoj/7reK//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//utYn/67KG/+uyhv/rsob/6bCE/tGWavDRlmrw0ZZq8NGWavDAhVnh + u4FV3buBVd27gVXdu4BUnLp9UmS6fVJkun1SZLp9Ukq/gEAEv4BABL+AQAS/gEAEv4BABL+AQAS/gEAE + v4BABLp9Ukq6fVJkun1SZLp9UmS7gFScu4FV3buBVd27gVXdwIVZ4dGWavDRlmrw0ZZq8NGWavDpsIT+ + 67KG/+uyhv/rsob/7rWJ//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utor/6bWJ/+m1if/ptYn/ + 6bWJ/+m2iP/ptoj/6baI/+m2iP/ut4r/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61if/rsob/ + 67KG/+uyhv/psIT+0ZZq8NGWavDRlmrw0ZZq8MCFWeG7gVXdu4FV3buBVd27gFScun1SZLp9UmS6fVJk + un1SSr+AQAS/gEAEv4BABL+AQAS/gEAEv4BABL+AQAS/gEAEun1SSrp9UmS6fVJkun1SZLuAVJy7gVXd + u4FV3buBVd3AhVnh0ZZq8NGWavDRlmrw0ZZq8OmwhP7rsob/67KG/+uyhv/utYn/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+62iv/ptYn/6bWJ/+m1if/ptYn/6baI/+m2iP/ptoj/6baI/+63iv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/7rWJ/+uyhv/rsob/67KG/+mwhP7Rlmrw0ZZq8NGWavDRlmrw + wIVZ4buBVd27gVXdu4FV3buAVJy6fVJkun1SZLp9UmS6fVJKv4BABL+AQAS/gEAEv4BABL+AQAG/gEAB + v4BAAb+AQAG6fVIUun1SG7p9Uhu6fVIbun9UK7p/VT26f1U9un9VPb6DWEzEiV6IxIleiMSJXojEiV6I + yo9j4MqPY+fKj2Pnyo9j59OZbPDXnXD0151w9NedcPTfpXn467GG/+uxhv/rsYb/7LKH//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+q1if/otYj/6LWI/+i1iP/RsYH/va16/72tev+9rXr/tqx4/6Opc/+jqXP/ + o6lz/6Opc/+jqnP/o6pz/6Oqc/+jqnP/t6x4/76tev++rXr/vq16/9Kxgf/otYj/6LWI/+i1iP/qtYn/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/7LOG/+uyhf/rsoX/67KF/9+mefjXnXD0151w9NedcPTTmWzw + yo9j58qPY+fKj2Pnyo9j4MSJXojEiV6IxIleiMSJXoi+g1hMun9VPbp/VT26f1U9un9UK7p9Uhu6fVIb + un1SG7p9UhS/gEABv4BAAb+AQAG/gEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUB + qlVVA6pVVQOqVVUDt3lTFrl9U2K5fVNiuX1TYrl9U2K8gVXWvIFV3ryBVd68gVXeyI1h6s2TZvDNk2bw + zZNm8Nmfcvbpr4T/6a+E/+mvhP/qsIX/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/57WI/+W0h//ltIf/ + 5bSH/8avff+rqnT/q6p0/6uqdP+iqXL/iaVr/4mla/+JpWv/iaVr/4mla/+JpWv/iaVr/4mla/+jqXL/ + rKp0/6yqdP+sqnT/x699/+W0h//ltIf/5bSH/+e1iP/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//qsYT/ + 6bCD/+mwg//psIP/2Z9y9s2TZvDNk2bwzZNm8MiNYeq8gVXevIFV3ryBVd68gVXWuX1TYrl9U2K5fVNi + uX1TYrd5UxaqVVUDqlVVA6pVVQOqVVUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKpVVQGqVVUDqlVVA6pVVQO3eVMWuX1TYrl9U2K5fVNi + uX1TYryBVda8gVXevIFV3ryBVd7IjWHqzZNm8M2TZvDNk2bw2Z9y9umvhP/pr4T/6a+E/+qwhf/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//ntYj/5bSH/+W0h//ltIf/xq99/6uqdP+rqnT/q6p0/6Kpcv+JpWv/ + iaVr/4mla/+JpWv/iaVr/4mla/+JpWv/iaVr/6Opcv+sqnT/rKp0/6yqdP/Hr33/5bSH/+W0h//ltIf/ + 57WI//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+qxhP/psIP/6bCD/+mwg//Zn3L2zZNm8M2TZvDNk2bw + yI1h6ryBVd68gVXevIFV3ryBVda5fVNiuX1TYrl9U2K5fVNit3lTFqpVVQOqVVUDqlVVA6pVVQEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + qlVVAapVVQOqVVUDqlVVA7d5Uxa5fVNiuX1TYrl9U2K5fVNivIFV1ryBVd68gVXevIFV3siNYerNk2bw + zZNm8M2TZvDZn3L26a+E/+mvhP/pr4T/6rCF//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+e1iP/ltIf/ + 5bSH/+W0h//Gr33/q6p0/6uqdP+rqnT/oqly/4mla/+JpWv/iaVr/4mla/+JpWv/iaVr/4mla/+JpWv/ + o6ly/6yqdP+sqnT/rKp0/8evff/ltIf/5bSH/+W0h//ntYj/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 6rGE/+mwg//psIP/6bCD/9mfcvbNk2bwzZNm8M2TZvDIjWHqvIFV3ryBVd68gVXevIFV1rl9U2K5fVNi + uX1TYrl9U2K3eVMWqlVVA6pVVQOqVVUDqlVVAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUBqlVVAqpVVQKqVVUCt3lTDLl9UzS5fVM0 + uX1TNLl9UzS8gFVyvIBVd7yAVXe8gFV3xYpelsiOYaXIjmGlyI5hpc+UacHWnHDr1pxw69accOvXnXLt + 4KZ69uCmevbgpnr24KZ69uuyhv7ss4f/7LOH/+yzh//vtor/8LeL//C3i//wt4v/7reK/+u2if/rton/ + 67aJ/+m1if/RsYH/0bGB/9Gxgf/RsYH/v657/7qtev+6rXr/uq16/6yve/+fsXv/n7F7/5+xe/+csnz/ + kraA/5K2gP+StoD/kraA/5K2gP+StoD/kraA/5K2gP+csnz/n7F7/5+xe/+fsXv/rK97/7qtev+6rXr/ + uq16/7+ue//RsYH/0bGB/9Gxgf/RsYH/6bWJ/+u2if/rton/67aJ/+63iv/wt4v/8LeL//C3i//vtor/ + 7LOH/+yzh//ss4f/67KG/uCmevbgpnr24KZ69uCmevbXnnHt1pxw69accOvWnHDrz5VowciOYaXIjmGl + yI5hpcWKXpW8gVV2vIFVdryBVXa8gVVyuX1TNLl9UzS5fVM0uX1TNLd5UwyqVVUCqlVVAqpVVQKqVVUB + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAH/AAAB/wAAAf8AAAG4elA1 + uHtRT7h7UU+4e1FPun9UhbuBVdW7gVXVu4FV1b2DV9jMkWXrzJFl68yRZevMkWXr5at//Oivg//or4P/ + 6K+D/+20iP/wt4v/8LeL//C3i//stor/5bSH/+W0h//ltIf/4bOG/62rdf+tq3X/rat1/62rdf+Qpm3/ + iaVr/4mla/+JpWv/jbB4/5G5g/+RuYP/kbmD/5S9if+dyZj/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/ + ncmY/5S9if+RuYP/kbmD/5G5g/+NsHj/iaVr/4mla/+JpWv/kKZt/62rdf+tq3X/rat1/62rdf/hs4b/ + 5bSH/+W0h//ltIf/7LaK//C3i//wt4v/8LeL/+20iP/or4P/6K+D/+ivg//lq3/8zJFl68yRZevMkWXr + zJFl672DV9i7gVXVu4FV1buBVdW6f1SFuHtRT7h7UU+4e1FPuHtRNQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA/wAAAf8AAAH/AAAB/wAAAbh6UDW4e1FPuHtRT7h7UU+6f1SFu4FV1buBVdW7gVXV + vYNX2MyRZevMkWXrzJFl68yRZevlq3/86K+D/+ivg//or4P/7bSI//C3i//wt4v/8LeL/+y2iv/ltIf/ + 5bSH/+W0h//hs4b/rat1/62rdf+tq3X/rat1/5Cmbf+JpWv/iaVr/4mla/+NsHj/kbmD/5G5g/+RuYP/ + lL2J/53JmP+dyZj/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/lL2J/5G5g/+RuYP/kbmD/42weP+JpWv/ + iaVr/4mla/+Qpm3/rat1/62rdf+tq3X/rat1/+Gzhv/ltIf/5bSH/+W0h//stor/8LeL//C3i//wt4v/ + 7bSI/+ivg//or4P/6K+D/+Wrf/zMkWXrzJFl68yRZevMkWXrvYNX2LuBVdW7gVXVu4FV1bp/VIW4e1FP + uHtRT7h7UU+4e1E1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAB/wAAAf8AAAH/AAAB + uHpQNbh7UU+4e1FPuHtRT7p/VIW7gVXVu4FV1buBVdW9g1fYzJFl68yRZevMkWXrzJFl6+Wrf/zor4P/ + 6K+D/+ivg//ttIj/8LeL//C3i//wt4v/7LaK/+W0h//ltIf/5bSH/+Gzhv+tq3X/rat1/62rdf+tq3X/ + kKZt/4mla/+JpWv/iaVr/42weP+RuYP/kbmD/5G5g/+UvYn/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/ + ncmY/53JmP+UvYn/kbmD/5G5g/+RuYP/jbB4/4mla/+JpWv/iaVr/5Cmbf+tq3X/rat1/62rdf+tq3X/ + 4bOG/+W0h//ltIf/5bSH/+y2iv/wt4v/8LeL//C3i//ttIj/6K+D/+ivg//or4P/5at//MyRZevMkWXr + zJFl68yRZeu9g1fYu4FV1buBVdW7gVXVun9Uhbh7UU+4e1FPuHtRT7h7UTUAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAP8AAAH/AAAB/wAAAf8AAAG4elAquHtRP7h7UT+4e1E/un9UaruBVaq7gVWq + u4FVqr2DV67LkGTIy5BkyMuQZMjLkGTI3KV58N6oe/beqHv23qh79t6ugPvesoP93rKD/d6yg/3asYP+ + 0rGB/9Kxgf/SsYH/0LGB/6iuef+ornn/qK55/6iuef+TrXX/jax0/42sdP+NrHT/kbV+/5S8h/+UvIf/ + lLyH/5bAjP+dyZj/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/ncmY/5bAjP+UvIf/lLyH/5S8h/+RtX7/ + jax0/42sdP+NrHT/k611/6iuef+ornn/qK55/6iuef/QsYH/0rGB/9Kxgf/SsYH/2rGD/t6yg/3esoP9 + 3rKD/d6ugPveqHv23qh79t6oe/bcpXnwy5BkyMuQZMjLkGTIy5BkyL2DV667gVWqu4FVqruBVaq6f1Rq + uHtRP7h7UT+4e1E/uHtRKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtHtPCLR7Tzq0e086tHtPOrR7TzqwhVa/ + sIVW07CFVtOwhVbTnpNf6ZSbZPeUm2T3lJtk95CeZvqIpWv/iKVr/4ila/+Jpm3/k7uH/5O7h/+Tu4f/ + k7uH/5zGlf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cxpX/k7uH/5O7h/+Tu4f/ + k7uH/4mmbf+IpWv/iKVr/4ila/+Qnmb6lJtk95SbZPeUm2T3npNf6bCFVtOwhVbTsIVW07CFVr+0e086 + tHtPOrR7Tzq0e086tHtPCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAC0e08ItHtPOrR7Tzq0e086tHtPOrCFVr+whVbTsIVW07CFVtOek1/plJtk95SbZPeUm2T3 + kJ5m+oila/+IpWv/iKVr/4mmbf+Tu4f/k7uH/5O7h/+Tu4f/nMaV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5zGlf+Tu4f/k7uH/5O7h/+Tu4f/iaZt/4ila/+IpWv/iKVr/5CeZvqUm2T3 + lJtk95SbZPeek1/psIVW07CFVtOwhVbTsIVWv7R7Tzq0e086tHtPOrR7Tzq0e08IAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALR7Twi0e086tHtPOrR7Tzq0e086 + sIVWv7CFVtOwhVbTsIVW056TX+mUm2T3lJtk95SbZPeQnmb6iKVr/4ila/+IpWv/iaZt/5O7h/+Tu4f/ + k7uH/5O7h/+cxpX/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMaV/5O7h/+Tu4f/ + k7uH/5O7h/+Jpm3/iKVr/4ila/+IpWv/kJ5m+pSbZPeUm2T3lJtk956TX+mwhVbTsIVW07CFVtOwhVa/ + tHtPOrR7Tzq0e086tHtPOrR7TwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAtHtPCLR7Tzq0e086tHtPOrR7TzqwhVa/sIVW07CFVtOwhVbTnpNf6ZSbZPeUm2T3 + lJtk95CeZvqIpWv/iKVr/4ila/+Jpm3/k7uH/5O7h/+Tu4f/k7uH/5zGlf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cxpX/k7uH/5O7h/+Tu4f/k7uH/4mmbf+IpWv/iKVr/4ila/+Qnmb6 + lJtk95SbZPeUm2T3npNf6bCFVtOwhVbTsIVW07CFVr+0e086tHtPOrR7Tzq0e086tHtPCAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHefYBF3n2Aqd59gKnefYCp5oGI8fKJlrnyiZa58omWu + fKJlroKla96DpWzmg6Vs5oOlbOaPtH/0lr2K/pa9iv6WvYr+mMCO/p3Hlv+dx5b/nceW/53Hlv+dyJj/ + nciY/53ImP+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/ + nciY/53ImP+dyJj/nceW/53Hlv+dx5b/nceW/5jAjv6WvYr+lr2K/pa9iv6PtH/0g6Vs5oOlbOaDpWzm + gqVr3nyiZa58omWufKJlrnyiZa55oGI8d59gKnefYCp3n2Aqd59gEQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + d59gEnefYC13n2Atd59gLXmhYj97o2W2e6NltnujZbZ7o2W2f6ds4ICnbeeAp23ngKdt5462gfWWv43+ + lr+N/pa/jf6ZwpH+nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + mcKR/pa/jf6Wv43+lr+N/o62gfWAp23ngKdt54Cnbed/p2zge6NltnujZbZ7o2W2e6NltnmhYj93n2At + d59gLXefYC13n2ASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3n2ASd59gLXefYC13n2AteaFiP3ujZbZ7o2W2 + e6NltnujZbZ/p2zggKdt54CnbeeAp23njraB9Za/jf6Wv43+lr+N/pnCkf6eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+ZwpH+lr+N/pa/jf6Wv43+jraB9YCnbeeAp23n + gKdt53+nbOB7o2W2e6NltnujZbZ7o2W2eaFiP3efYC13n2Atd59gLXefYBIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHefYBJ3n2Atd59gLXefYC15oWI/e6NltnujZbZ7o2W2e6Nltn+nbOCAp23ngKdt54CnbeeOtoH1 + lr+N/pa/jf6Wv43+mcKR/p7Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5nCkf6Wv43+lr+N/pa/jf6OtoH1gKdt54CnbeeAp23nf6ds4HujZbZ7o2W2e6NltnujZbZ5oWI/ + d59gLXefYC13n2Atd59gEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHedXiV3nV4od51eKHedXih6oWRleqJlg3qiZYN6omWDfaRpk4CnbqyAp26sgKdurIOqcrSQuYTn + kLmE55C5hOeQuYTnlL6K9ZW+i/eVvov3lb6L95nDkfybxpX/m8aV/5vGlf+cx5b/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMeW/5vGlf+bxpX/m8aV/5nDkfyVvov3 + lb6L95W+i/eUvor1kLmE55C5hOeQuYTnkLmE54OqcrSAp26sgKdurICnbqx9pGmTeqJlg3qiZYN6omWD + eqFkZXedXih3nV4od51eKHedXiUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd51eOHedXjx3nV48d51ePHqhZJd6omXF + eqJlxXqiZcV9pWnUgahv64Gob+uBqG/rhKx07pfBj/+XwY//l8GP/5fBj/+dyJj/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+XwY//l8GP/5fBj/+XwY// + hKx07oGob+uBqG/rgahv632ladR6omXFeqJlxXqiZcV6oWSXd51ePHedXjx3nV48d51eOAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3nV44d51ePHedXjx3nV48eqFkl3qiZcV6omXFeqJlxX2ladSBqG/rgahv64Gob+uErHTu + l8GP/5fBj/+XwY//l8GP/53ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nciY/5fBj/+XwY//l8GP/5fBj/+ErHTugahv64Gob+uBqG/rfaVp1HqiZcV6omXF + eqJlxXqhZJd3nV48d51ePHedXjx3nV44AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHedXjh3nV48d51ePHedXjx6oWSX + eqJlxXqiZcV6omXFfaVp1IGob+uBqG/rgahv64SsdO6XwY//l8GP/5fBj/+XwY//nciY/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/l8GP/5fBj/+XwY// + l8GP/4SsdO6BqG/rgahv64Gob+t9pWnUeqJlxXqiZcV6omXFeqFkl3edXjx3nV48d51ePHedXjgAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd6BfDHegXxl3oF8Zd6BfGXmhYSR7omRR + e6JkUXuiZFF7omRRf6drf4Cna4KAp2uCgKdrgoavdr6IsXnciLF53IixedyKs3zljbaB8422gfONtoHz + j7iD9ZrEk/+axJP/msST/5rEk/+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/53ImP+axJP/msST/5rEk/+axJP/j7iD9Y22gfONtoHzjbaB84qzfOWIsXnc + iLF53IixedyGr3a+gKdrgoCna4KAp2uCf6drf3uiZFF7omRRe6JkUXuiZFF5oWEkd6BfGXegXxl3oF8Z + d6BfDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3oF8dd6BfPnegXz53oF8+eaFhWnuiZMt7omTLe6Jky3uiZMuDqm/qg6tw7IOrcOyDq3Ds + kbuH+ZjDkf+Yw5H/mMOR/5rFlP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/msWU/5jDkf+Yw5H/mMOR/5G7h/mDq3Dsg6tw7IOrcOyDqm/q + e6Jky3uiZMt7omTLe6Jky3mhYVp3oF8+d6BfPnegXz53oF8dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHegXx13oF8+d6BfPnegXz55oWFa + e6Jky3uiZMt7omTLe6Jky4Oqb+qDq3Dsg6tw7IOrcOyRu4f5mMOR/5jDkf+Yw5H/msWU/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+axZT/ + mMOR/5jDkf+Yw5H/kbuH+YOrcOyDq3Dsg6tw7IOqb+p7omTLe6Jky3uiZMt7omTLeaFhWnegXz53oF8+ + d6BfPnegXx0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAd6BfHXegXz53oF8+d6BfPnmhYVp7omTLe6Jky3uiZMt7omTLg6pv6oOrcOyDq3Ds + g6tw7JG7h/mYw5H/mMOR/5jDkf+axZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5rFlP+Yw5H/mMOR/5jDkf+Ru4f5g6tw7IOrcOyDq3Ds + g6pv6nuiZMt7omTLe6Jky3uiZMt5oWFad6BfPnegXz53oF8+d6BfHQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAgJ9gAYCfYAGAn2ABgJ9gAXacXxJ2nF8YdpxfGHacXxh4n2A2eKBhV3igYVd4oGFX + e6Nlb4Cna9KAp2vSgKdr0oCna9KGr3Xth69274evdu+Hr3bvk72J+pnEkv+ZxJL/mcSS/5vGlf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + m8aV/5nEkv+ZxJL/mcSS/5O9ifqHr3bvh69274evdu+Gr3XtgKdr0oCna9KAp2vSgKdr0nujZW94oGFX + eKBhV3igYVd3oGE1dp5gGHaeYBh2nmAYdp5gEoCfYAGAn2ABgJ9gAYCfYAGAn2AIgJ9gCICfYAiAn2AI + dpxfiHacX7d2nF+3dpxft3ieYtV6oGT4eqBk+HqgZPiAp235mMOR/5jDkf+Yw5H/mMOR/57JmP+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57JmP+YwpD/mMKQ/5jCkP+YwpD/f6dt+XmgZPh5oGT4eaBk+HifYtR2nmC1dp5gtXaeYLV2nmCH + gJ9gCICfYAiAn2AIgJ9gCICfYAiAn2AIgJ9gCICfYAh2nF+Idpxft3acX7d2nF+3eJ5i1XqgZPh6oGT4 + eqBk+ICnbfmYw5H/mMOR/5jDkf+Yw5H/nsmY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmY/5jCkP+YwpD/mMKQ/5jCkP9/p235 + eaBk+HmgZPh5oGT4eJ9i1HaeYLV2nmC1dp5gtXaeYIeAn2AIgJ9gCICfYAiAn2AIgJ9gCICfYAiAn2AI + gJ9gCHacX4h2nF+3dpxft3acX7d4nmLVeqBk+HqgZPh6oGT4gKdt+ZjDkf+Yw5H/mMOR/5jDkf+eyZj/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZj/mMKQ/5jCkP+YwpD/mMKQ/3+nbfl5oGT4eaBk+HmgZPh4n2LUdp5gtXaeYLV2nmC1 + dp5gh4CfYAiAn2AIgJ9gCICfYAiAn2AIgJ9gCICfYAiAn2AIdpxfiHacX7d2nF+3dpxft3ieYtV6oGT4 + eqBk+HqgZPiAp235mMOR/5jDkf+Yw5H/mMOR/57JmP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57JmP+YwpD/mMKQ/5jCkP+YwpD/ + f6dt+XmgZPh5oGT4eaBk+HifYtR2nmC1dp5gtXaeYLV2nmCHgJ9gCICfYAiAn2AIgJ9gCICfYAGAn2AB + gJ9gAYCfYAF0nGAVdJxgHXScYB10nGAdd6BjR3mhY3h5oWN4eaFjeHujZo1/p2zif6ds4n+nbOJ/p2zi + irN88Yu0ffKLtH3yi7R98pbAjfubxpX/m8aV/5vGlf+cx5b/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHlv+bxpX/m8aV/5vGlf+WwI37 + i7R98ou0ffKLtH3yirN88X+nbOJ/p2zif6ds4n+nbOJ7o2aNeKFjeHihY3h4oWN4eJ9iR3eaXBx3mlwc + d5pcHHeaXBWAn2ABgJ9gAYCfYAGAn2ABAAAAAAAAAAAAAAAAAAAAAGaZZgRmmWYFZplmBWaZZgV3oWMx + eKFjZHihY2R4oWNkeaFkfHuiZt17ombde6Jm3XuiZt2Hr3jviLB58IiwefCIsHnwlb6L+pvFlP+bxZT/ + m8WU/5zHlv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nMeW/5vFlP+bxZT/m8WU/5W+i/qIsHnwiLB58IiwefCHr3jve6Jm3XuiZt17ombd + e6Jm3XmhZHx4oWNkeKFjZHihY2R4oGExgIBABICAQASAgEAEgIBAAwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAZplmBGaZZgVmmWYFZplmBXehYzF4oWNkeKFjZHihY2R5oWR8e6Jm3XuiZt17ombd + e6Jm3YeveO+IsHnwiLB58IiwefCVvov6m8WU/5vFlP+bxZT/nMeW/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cx5b/m8WU/5vFlP+bxZT/ + lb6L+oiwefCIsHnwiLB58IeveO97ombde6Jm3XuiZt17ombdeaFkfHihY2R4oWNkeKFjZHigYTGAgEAE + gIBABICAQASAgEADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmmWYEZplmBWaZZgVmmWYF + d6FjMXihY2R4oWNkeKFjZHmhZHx7ombde6Jm3XuiZt17ombdh69474iwefCIsHnwiLB58JW+i/qbxZT/ + m8WU/5vFlP+cx5b/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5zHlv+bxZT/m8WU/5vFlP+Vvov6iLB58IiwefCIsHnwh69473uiZt17ombd + e6Jm3XuiZt15oWR8eKFjZHihY2R4oWNkeKBhMYCAQASAgEAEgIBABICAQAMAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAGaZZgFmmWYCZplmAmaZZgJ3oWMUeKFjKHihYyh4oWMoeaFkMnqiZlp6omZa + eqJmWnqiZlqBqnCWgapwmoGqcJqBqnCah693z4ixeemIsXnpiLF56Yy0fu6QuoX1kLqF9ZC6hfWSvIf3 + nMeW/5zHlv+cx5b/nMeW/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5zHlv+cx5b/nMeW/5zHlv+SvIf2kbqF9ZG6hfWRuoX1jLV+7oixeemIsXnp + iLF56Yevd8+BqnCagapwmoGqcJqBqnCWe6JmWnuiZlp7omZae6JmWnmhZDJ4oWMoeKFjKHihYyh4oGEU + gIBAAoCAQAKAgEACgIBAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAABVqlUBVapVA1WqVQNVqlUDVapVA3agYVt2oGFhdqBhYXagYWF5oWOy + eqFk23qhZNt6oWTbf6ds44avd++Gr3fvhq9374mye/GaxZT/msWU/5rFlP+axZT/nciY/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/msWU/5rFlP+axZT/ + msWU/4qze/CHsHfuh7B37oewd+5/p2zjeqFk23qhZNt6oWTbeaFjsnagYWF2oGFhdqBhYXagYVuAgIAC + gICAAoCAgAKAgIACgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFWqVQFVqlUD + VapVA1WqVQNVqlUDdqBhW3agYWF2oGFhdqBhYXmhY7J6oWTbeqFk23qhZNt/p2zjhq9374avd++Gr3fv + ibJ78ZrFlP+axZT/msWU/5rFlP+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/53ImP+axZT/msWU/5rFlP+axZT/irN78Iewd+6HsHfuh7B37n+nbON6oWTb + eqFk23qhZNt5oWOydqBhYXagYWF2oGFhdqBhW4CAgAKAgIACgICAAoCAgAKAgIAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVapVAVWqVQNVqlUDVapVA1WqVQN2oGFbdqBhYXagYWF2oGFh + eaFjsnqhZNt6oWTbeqFk23+nbOOGr3fvhq9374avd++JsnvxmsWU/5rFlP+axZT/msWU/53ImP+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciY/5rFlP+axZT/ + msWU/5rFlP+Ks3vwh7B37oewd+6HsHfuf6ds43qhZNt6oWTbeqFk23mhY7J2oGFhdqBhYXagYWF2oGFb + gICAAoCAgAKAgIACgICAAoCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVqlUA + VapVAlWqVQJVqlUCVapVAnagYTx2oGFBdqBhQXagYUF5oWN3eqFkknqhZJJ6oWSSf6ZrooSsc7qErHO6 + hKxzuoaud8GRuobxkbqG8ZG6hvGRuobxlb+M95bAjfiWwI34lsCN+JrEk/ycx5f/nMeX/5zHl/+dyJf/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciX/5zHl/+cx5f/ + nMeX/5rEk/yWwI34lsCN+JbAjfiVv4z3kbqG8ZG6hvGRuobxkbqG8Yevd8CFrXO5ha1zuYWtc7l/p2ui + eqFkknqhZJJ6oWSSeaFjd3agYUF2oGFBdqBhQXagYTyAgIABgICAAYCAgAGAgIABgICAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB3m14gd5teT3ebXk93m15PeJxgYXqgZdV6oGXVeqBl1XqgZdWEq3Ln + ha106oWtdOqFrXTqkbuH95nDkv+Zw5L/mcOS/5vFlP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+bxZT/mcOS/5nDkv+Zw5L/kbuH94WtdOqFrXTqha106oSrcud6oGXV + eqBl1XqgZdV6oGXVeJxgYXebXk93m15Pd5teT3ebXiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHebXiB3m15P + d5teT3ebXk94nGBheqBl1XqgZdV6oGXVeqBl1YSrcueFrXTqha106oWtdOqRu4f3mcOS/5nDkv+Zw5L/ + m8WU/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5vFlP+Zw5L/ + mcOS/5nDkv+Ru4f3ha106oWtdOqFrXTqhKty53qgZdV6oGXVeqBl1XqgZdV4nGBhd5teT3ebXk93m15P + d5teIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5teIHebXk93m15Pd5teT3icYGF6oGXVeqBl1XqgZdV6oGXV + hKty54WtdOqFrXTqha106pG7h/eZw5L/mcOS/5nDkv+bxZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/m8WU/5nDkv+Zw5L/mcOS/5G7h/eFrXTqha106oWtdOqEq3Ln + eqBl1XqgZdV6oGXVeqBl1XicYGF3m15Pd5teT3ebXk93m14gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3m14d + d5teSnebXkp3m15KeJxgWnqgZcd6oGXHeqBlx3qgZceDq3Lbha103oWtdN6FrXTekLqF8JfBkPuXwZD7 + l8GQ+5nDkvycx5f+nMeX/pzHl/6cx5f+nciY/53ImP+dyJj/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsiY/57ImP+eyJj/nsiY/5zHl/6cx5f+nMeX/pzHl/6Zw5L8 + l8GQ+5fBkPuXwZD7kLqF8IWtdN6FrXTeha103oOrctt6oGXHeqBlx3qgZcd6oGXHeJxgWnebXkp3m15K + d5teSnebXh0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHacXi92nF42dpxeNnacXjZ6oGSNe6Flx3uhZcd7oWXHfqRp0oKqcemCqnHpgqpx6YOsc+qWwY7/ + lsGO/5bBjv+WwY7/nMeX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Hl/+XwY7/ + l8GO/5fBjv+XwY7/hKxz6oKqcemCqnHpgqpx6X6kadJ7oWXHe6Flx3uhZcd6oGSNdpxeNnacXjZ2nF42 + dpxeLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdpxeL3acXjZ2nF42dpxeNnqgZI17oWXH + e6Flx3uhZcd+pGnSgqpx6YKqcemCqnHpg6xz6pbBjv+WwY7/lsGO/5bBjv+cx5f/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nceX/5fBjv+XwY7/l8GO/5fBjv+ErHPqgqpx6YKqcemCqnHp + fqRp0nuhZcd7oWXHe6Flx3qgZI12nF42dpxeNnacXjZ2nF4vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB2nF4vdpxeNnacXjZ2nF42eqBkjXuhZcd7oWXHe6Flx36kadKCqnHpgqpx6YKqcemDrHPq + lsGO/5bBjv+WwY7/lsGO/5zHl/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dx5f/ + l8GO/5fBjv+XwY7/l8GO/4Ssc+qCqnHpgqpx6YKqcel+pGnSe6Flx3uhZcd7oWXHeqBkjXacXjZ2nF42 + dpxeNnacXi8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHacXi92nF42dpxeNnacXjZ6oGSN + e6Flx3uhZcd7oWXHfqRp0oKqcemCqnHpgqpx6YOsc+qWwY7/lsGO/5bBjv+WwY7/nMeX/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Hl/+XwY7/l8GO/5fBjv+XwY7/hKxz6oKqcemCqnHp + gqpx6X6kadJ7oWXHe6Flx3uhZcd6oGSNdpxeNnacXjZ2nF42dpxeLwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAdpxeCXacXgt2nF4LdpxeC3qgZBx7oWUoe6FlKHuhZSh8omc1faRpT32kaU99pGlP + fqVqV4GpcMWBqXDFgalwxYGpcMWGrXXkhq527IauduyGrnbsj7mD9pfBjv6XwY7+l8GO/pnDkf6eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5nDkf6XwY7+l8GO/pfBjv6PuYP2hq527IauduyGrnbs + hq115IKpcMWCqXDFgqlwxYKpcMV+pWpXfaRpT32kaU99pGlPfKJnNXuhZSh7oWUoe6FlKHqgZBx2nF4L + dpxeC3acXgt2nF4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAHabXQ52m10pdptdKXabXSl3nF8yeqBltnqgZbZ6oGW2eqBltn+ma92Ap2zn + gKds54CnbOeMtH3zlb+L/pW/i/6Vv4v+l8KP/p7Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + l8KP/pW/i/6Vv4v+lb+L/oy0ffOAp2zngKds54CnbOd/pmvdeqBltnqgZbZ6oGW2eqBltnecXzJ2m10p + dptdKXabXSl2m10OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdptdDnabXSl2m10p + dptdKXecXzJ6oGW2eqBltnqgZbZ6oGW2f6Zr3YCnbOeAp2zngKds54y0ffOVv4v+lb+L/pW/i/6Xwo/+ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+Xwo/+lb+L/pW/i/6Vv4v+jLR984CnbOeAp2zn + gKds53+ma916oGW2eqBltnqgZbZ6oGW2d5xfMnabXSl2m10pdptdKXabXQ4AAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB2m10OdptdKXabXSl2m10pd5xfMnqgZbZ6oGW2eqBltnqgZbZ/pmvd + gKds54CnbOeAp2znjLR985W/i/6Vv4v+lb+L/pfCj/6eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5fCj/6Vv4v+lb+L/pW/i/6MtH3zgKds54CnbOeAp2znf6Zr3XqgZbZ6oGW2eqBltnqgZbZ3nF8y + dptdKXabXSl2m10pdptdDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHabXQZ2m10T + dptdE3abXRN3nF8YeqBlVXqgZVV6oGVVeqBlVX6lanF/pWt4f6VreH+la3iGrnWiirJ7x4qye8eKsnvH + i7R90o22gPGNtoDxjbaA8Y22gPGNtoDxjbaA8Y22gPGNtoDxjLR90ouze8eLs3vHi7N7x4eudqJ/pWt4 + f6VreH+la3h+pWpxeqBlVXqgZVV6oGVVeqBlVXecXxh2m10TdptdE3abXRN2m10GAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + dJddEnSXXRZ0l10WdJddFnmfY1t6oGSXeqBkl3qgZJd7oWWsfaRo5X2kaOV9pGjlfaRo5X2kaOV9pGjl + faRo5X2kaOV8oWWrfKBklnygZJZ8oGSWe59jWnSXXRZ0l10WdJddFnSXXRIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0l10SdJddFnSXXRZ0l10WeZ9jW3qgZJd6oGSX + eqBkl3uhZax9pGjlfaRo5X2kaOV9pGjlfaRo5X2kaOV9pGjlfaRo5XyhZat8oGSWfKBklnygZJZ7n2Na + dJddFnSXXRZ0l10WdJddEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHSXXRJ0l10WdJddFnSXXRZ5n2NbeqBkl3qgZJd6oGSXe6FlrH2kaOV9pGjlfaRo5X2kaOV9pGjl + faRo5X2kaOV9pGjlfKFlq3ygZJZ8oGSWfKBklnufY1p0l10WdJddFnSXXRZ0l10SAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddDXSXXRB0l10QdJddEHmfY0N6oGRv + eqBkb3qgZG97oWV/faRorH2kaKx9pGisfaRorH2kaKx9pGisfaRorH2kaKx8oWV+fKBkbnygZG58oGRu + e59jQnSXXRB0l10QdJddEHSXXQ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHeZZgR3mWYPd5lmD3eZZg93mWYP + baRbDm2kWw5tpFsObaRbDm2kWwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAd5lmBHeZZg93mWYPd5lmD3eZZg9tpFsObaRbDm2kWw5tpFsObaRbBAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3mWYEd5lmD3eZZg93mWYP + d5lmD22kWw5tpFsObaRbDm2kWw5tpFsEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAHeZZgR3mWYPd5lmD3eZZg93mWYPbaRbDm2kWw5tpFsObaRbDm2kWwQAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/////////g + B///////////////////4Af//////////////////+AH///////////////////gB/////////////// + ///gAAAH////////////////4AAAB////////////////+AAAAf////////////////gAAAH//////// + ///////AAAAAAAP/////////////wAAAAAAD/////////////8AAAAAAA//////////////AAAAAAAP/ + ///////////AAAAAAAAAA///////////wAAAAAAAAAP//////////8AAAAAAAAAD///////////AAAAA + AAAAA///////////wAAAAAAAAAP/////////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAH///////+A + AAAAAAAAAAAB////////gAAAAAAAAAAAAf//////gAAAAAAAAAAAAAAB/////4AAAAAAAAAAAAAAAf// + //+AAAAAAAAAAAAAAAH/////gAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAA + AAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP + 8AAAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAA + AAAP///wAAAAAAAAAAAAAAAAD/////+AAAAAAAAAAAAB////////gAAAAAAAAAAAAf///////4AAAAAA + AAAAAAH///////+AAAAAAAAAAAAB////////+AAAAAAAAAAAH/////////gAAAAAAAAAAB/////////4 + AAAAAAAAAAAf////////+AAAAAAAAAAAH///////+AAAAAAAAAAAAAAf//////gAAAAAAAAAAAAAH/// + ///4AAAAAAAAAAAAAB//////+AAAAAAAAAAAAAAf////8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAA + AAAP///wAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAA + AAAA//8AAAAAAAAAAAAAAAAAAP///4AAAAAAAAAAAAAAH/////+AAAAAAAAAAAAAAB//////gAAAAAAA + AAAAAAAf/////4AAAAAAAAAAAAAAH///////+AAAAAAAAAAAH/////////gAAAAAAAAAAB/////////4 + AAAAAAAAAAAf////////+AAAAAAAAAAAH////////4AAAAAAAAAAAAH///////+AAAAAAAAAAAAB//// + ////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAH//////4AAAAAAAAAAAAAAAf////+AAAAAAAAAAAAA + AAH/////gAAAAAAAAAAAAAAB/////4AAAAAAAAAAAAAAAf///wAAAAAAAAAAAAAAAAAA//8AAAAAAAAA + AAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAA + AAAAD/AAAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAP///wAAAAAAAA + AAAAAAAAD///8AAAAAAAAAAAAAAAAA//////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAH///////+A + AAAAAAAAAAAB////////gAAAAAAAAAAAAf/////////AAAAAAAAAA///////////wAAAAAAAAAP///// + /////8AAAAAAAAAD///////////AAAAAAAAAA///////////wAAAAAAAAAP////////////AAAAAAAP/ + ////////////wAAAAAAD/////////////8AAAAAAA//////////////AAAAAAAP//////////////+AA + AAf////////////////gAAAH////////////////4AAAB////////////////+AAAAf///////////// + ////4Af//////////////////+AH///////////////////gB///////////////////4Af///////// + KAAAAEAAAACAAAAAAQAgAAAAAAAAQAAAYQoAAGEKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLuqAsy7qg/Mu6oPyLakDsi2pA7ItqQC + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy7qgLMu6oP + zLuqD8i2pA7ItqQOyLakAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANG5ogjRuaIT + 0LqoMdC7q4PQvKuM0sCtyNLArcjSwK3I0sCtyNC8q4vPu6qC0LqoMdG5ohPRuaIIAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADRuaIJ0bmiFtC6qDjQu6uX0LyrodLAreXSwK3l0sCt5dLAreXQvKuhz7uqltC6qDjRuaIW + 0bmiCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADRuaIL0bmiENC8qkDQvKtq0r6shdPArazXxrS64NLE4OHUx+Pp4NP46eDT+Ong0/jp4NP4 + 4dTG49/SxN/XxrS608CtrNK+rIXQvKtq0LyqQNG5ohDRuaILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0bmiD9G5ohbQvKpY0LyrkdK+rLLTwK3j2Me16ePXyvrl2s37 + 8erg//Hq4P/x6uD/8erg/+Xazfvj18r62Me16dPArePSvqyy0LyrkdC8qljRuaIW0bmiDwAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAybmiEsm5ohTRvqxT0b6sY9PAroPUwa6T3My8tOHSxNLj1sjf + 5tvO9Ojd0Pbs49j97eTZ/fLr4f/y6+H/8uvh//Lr4f/t5Nn97OPY/ejd0Pbm287049bI3+HSxNLczLy0 + 1MGuk9PAroPRvaxj0b2sU8m5ohTJuaISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMm5oh/JuaIh0b6si9G+rKXTwK7Q + 1MGv5t/PwPLn28796+HW/vLr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh/+vh1v7n287938/A8tTBr+bTwK7Q0b2spdG9rIvJuaIhybmiHwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLWkBMy1pBXNt6YZ0b2rVdG9q1XTwrB7 + 08Kxfd7Qwb7f0sPP4tTG5uPWyPLo3dD47OLX/u7m2/7y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/u5tv+7OLX/ujd0Pjj1sjy4tTG5t/Rw8/ez8G+08KxfdPCsHvRvatV + 0b2rVc23phnMtaQVzLWkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy1pAnMtaQt + zbemNtG9q7bRvau21cSz5NXEs+fm28756uDU/u/n3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3f/q4NT+ + 5tvO+dXEs+fVxLPk0b2rttG9q7bNt6Y2zLWkLcy1pAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy3ognMt6IU + zrunI9C9qkLRvqxK1MGwbNXCsnPczL3O3My9zt/Sw+3f0sPv6uDU++3k2P7w6d7/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6d7/7eTY/urg1Pvf0sPv39LD7dzMvc7czL3O1cKyc9TBsGzRvqxK0L2qQs67pyPMt6IU + zLeiCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADMt6IczLeiPM67p2rQvarF0r+tzdfFtevYx7fs6+LW/+vi1v/y6uD/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lq4P/r4tb/6+LW/9jHt+zXxbXr + 0r+tzdC9qsXOu6dqzLeiPMy3ohwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADOuaUJzrmlDNC9qh3Rvqsp0r+sQtK/rV/Vw7GF18e10djIt9fdzb7v3s/A8Ozk2P/s5Nj/ + 8uvg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+D/ + 7OTY/+zk2P/ez8Dw3c2+79jIt9fXx7XR1cOxhdK/rV/Sv6xC0b6rKdC9qh3OuaUMzrmlCQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzrmlLc65pT7QvaqT0b6ry9XDstrZyLjs4NLD8u3k2P/u5dr/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/u5dr/7eTY/+DSw/LZyLjs1cOy2tG+q8vQvaqT + zrmlPs65pS0AAAAAAAAAAAAAAAAAAAAAv7+fAb+/nwHNuKQLzbikDM66pjrOuqZK0sCtmtPBr87XxrXd + 28u77eHUxfPt5Nn/7uba//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7uba/+3k2f/h1MXz + 28u77dfGtd3Twa/O0sCtms66pkrOuqY6zrmlDM65pQu/v58Bv7+fAb+/nwi/v58IzbikoM24pLfPu6jn + 0Lyp+OLUxvzt5Nj/7+fc//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/v59z/7OPX/+HUxfzQvKr40Lup5s65pbXOuaWev7+fCL+/nwi/v58I + v7+fCM24pKDNuKS3z7uo59C8qfji1Mb87eTY/+/n3P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7+fc/+zj1//h1MX80Lyq+NC7qebOuaW1 + zrmlnr+/nwi/v58Iv7+fAb+/nwHNvqEPzb6hEc+6qFXPuqhu0b6sstK/rt/YyLjo3tHC8eTZy/bv59z/ + 8Ojd//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8ene/+zi1f/p28z/1LCT/9Swk//UsJP/1LCT/+nbzP/s4tX/8ene//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+/n3P/k2cv23tHC8djIuOjSv63f + 0b6sss+6qG7PuqhVyrqrEMq6qw6/v58Bv7+fAQAAAAAAAAAAzMyZBMzMmQXPuqhLz7qoZNC8qq3QvKrd + 1sW15t3PwPDj18r17+fc//Do3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Do3v/s4dT/6drL/9Ksjf/SrI3/0qyN/9Ksjf/p2sv/7OHU//Do3v/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Do3f/v59z/ + 49fK9d3PwPDWxbXm0Lyq3dC8qq3Puqhkz7qoSr+/vwS/v78DAAAAAAAAAAAAAAAAAAAAAMzMmQHMzJkB + z7qoD8+6qBTOu6okzruqL9K/rlPTwbB+1cOyn9fGteLZybnl4dTF8uLVx/Pv59z/7+fc//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh/+/l2f/s4NL/4867/9a0mf/TrpH/y557/82fe//apnz/2qZ8/9qlfP/apXz/ + zZ97/8ueev/TrpH/1rSZ/+POu//s4NL/7+XZ//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3P/v59z/ + 4tXH8uHUxfHZybnl18a14tXDsp/TwbB+07+uU9K6qS7Ruqgjz7qoFM+6qA+/v78Bv7+/AQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqqqqAqqqqgPMuKYvzbimYc+7qIrQvarb08Gu393Ovu/e0MDw + 7ubb/+7m2//y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/u5Nf/6t3O/9/Hsv/Ppof/zJ9+/8ONZf/GkGj/ + 3KR4/9ykeP/co3j/3KN4/8aQZ//DjWT/zJ9+/8+mh//fx7L/6t3O/+7k1//y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/u5tv/7ubb/97QwO/dzr7u08Gu39C9qtvPu6iKzbimYc63pS7/gIAC/4CAAQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKqqqgGqqqoBzLimEM24piDPu6gu + 0L2qSdLArVXXxbSE2Ma1i9vMvOPbzLzj49bI8OPWyPHo3M786d3Q/+DIs//bvaX/1bGV/9Cnh//TpYL/ + 16N7/9mkfP/gqH7/4ql//+mxhf/psYX/6bCF/+mwhf/iqX7/4Kh9/9mkfP/Xo3v/06WC/9Cnh//VsZX/ + 272l/+DIs//p3dD/6NzO/OPWyPHj1sjw28y849vMvOPYxrWK18W0hNLArVXQvapJz7uoLs24piDOt6UP + /4CAAf+AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAADPuKUQz7ilT8+5pljPvarVz72q1drKuunby7vq49TF++XWx//Wtpz/ + z6aH/8mYdP/DjGP/zZRq/9uhdf/gp3v/77aK/++2iv/wt4v/8LeL//C3i//wt4v/77aK/++2iv/gp3v/ + 26F1/82Uav/DjGP/yZh0/8+mh//Wtpz/5dbH/+PUxfvby7vq2sq66c+9qtXPvarVz7mmWM+4pU/PuKUQ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz7ilB8+4pSXOtqIryrCYfMqwmHzMqo3R + zKmM19Gsj/XSrY/91qiF/tilgP/ZpHz/26N4/9+nfP/mrYH/6a+D//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/6a+D/+atgf/fp3z/26N4/9mkfP/YpYD/1qiF/tKtj/3RrI/1zKmM18yqjdHKsJh8 + yrCYfM62oivPuKUlz7ilBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + t3pOA7d6Ti63ek4uvIdcvbyHXMfAiF7xwYhe+9WbcP7fpXn/6K+D//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//or4P/36V5/9WbcP7BiF77 + wIhe8byHXMe8h1y9t3pOLrd6Ti63ek4DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + uH1PCLh9Txi5f1Iku4FVULyBVVPAhlp7wIZae86Wa9fOl2zd05pv9tSbcP3gpnv+5qyA/+uyhv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 67KG/+asgP/gpnv+1Jtw/dOab/bOl2zdzpZr18CGWnvAhlp7vIFVU7yBVVC6f1IkuH1PGLh9TwgAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALh9TxS4fU89uX9SWbuBVci8glbLw4ld7sOJXe7iqHz+5Kp+/+60iP/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utIj/5Kp+/+KofP7DiV3uw4ld7r2CVsu8gVXJ + un9SWbh9Tz24fU8UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALV+UQu1flESuX9TJLqAVDi9g1dJwYdabMOKXYHJj2PXyZBk2dCWavPQlmrz + 5qyA/uetgf/utYn/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/7rWJ/+etgf/mrID+ + 0JZq89CWavPKkGTZyo9j18SKXYHBh1psvoNXSbqAVDi5f1MktX5RErV+UQsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1flEptX5RRbl/U4e6gFTSv4VZ28eOYu3OlWnx + 566C/+ivg//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/6K+D/+eugv/PlWjwyI5h7L+FWdu6gFTSuX9Th7V+UUW1flEp + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqoBVAaqAVQG5gFIMuYBSDryBVRq9gVYev4ZZQ7+HWlzBh1uW + wohc2MaMYODNlGjv05pu8+ivg//psIT/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+mwhP/or4P/05pt8s6UZ+/GjGDg + wohc2MGIW5a/h1pcvoZZQ72BVh68gVUauYBSDrmAUgyqgFUBqoBVAaqAVQaqgFUGuYBSXbmAUmq8gVXA + vYFW38qPY+rSl2vx3qR4+Ouyh//ttIj/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7bSI/+uyh//dpHj40Zdq8smPYuq9gVbfvIFVwLmAUmq5gFJdqoBVBqqAVQaqgFUG + qoBVBrmAUl25gFJqvIFVwL2BVt/Kj2Pq0pdr8d6kePjrsof/7bSI//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+20iP/rsof/3aR4+NGXavLJj2LqvYFW37yBVcC5gFJq + uYBSXaqAVQaqgFUGv4BABL+AQAS6fVJXun1SZLuAVb27gVXdyY5i6NGWavDeo3f367KG/+20iP/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//vt4v/6bWJ/+m1if/ptoj/6baI/++3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//ttIj/67KG/96jd/fRlmrw + yY5i6LuBVd27gFW9un1SZLp9Ule/gEAEv4BABL+AQAS/gEAEun1SV7p9UmS7gFW9u4FV3cmOYujRlmrw + 3qN39+uyhv/ttIj/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/77eL/+m1if/ptYn/6baI/+m2iP/vt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 7bSI/+uyhv/eo3f30ZZq8MmOYui7gVXdu4BVvbp9UmS6fVJXv4BABL+AQAS/gEABv4BAAbp9Ugy6fVIN + un1VG7p9VSC/g1lTwIRZdcKHW6jDiFziyI5i6NKYa/LXnXH16rCF/+qxhf/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/7LaK/+a0iP/ZsoP/tKx3/7Crdv+Wp2//lqdv/5anb/+Wp2// + sat2/7Wsd//ZsoP/5rSI/+y2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 6rGF/+qxhP/XnXD10phr8siOYujDiFziwodbqMCEWXW/g1lTun1VILp9VRu6fVINun1SDL+AQAG/gEAB + AAAAAAAAAAAAAAAAAAAAAKpVVQKqVVUDuXxTPLl9U2K7gFScvIFV3sKHW+TNk2bw05ls8+mvhP/psIT/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+y2if/ltIf/1rGC/6uqdP+mqXP/ + iaVr/4mla/+JpWv/iaVr/6epc/+sqnT/1rGC/+W0h//ston/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+mwhP/psIP/05ls882TZvDCh1vkvIFV3ruAVJy5fVNiuXxTPKpVVQOqVVUC + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUBqlVVAbl8UxC5fVMavH9UKr1/VDzAhFhR + w4hcesWKXo7Jj2PgypBk4daccPDWnHDw6bCE/uqxhf/vtor/8LeL/+u2if/otYj/0rGB/7+ue/+zrHj/ + oqly/5+sdv+YtX//mLaB/5i/jP+Yv4z/mL+M/5i/jP+YtoH/mLV//5+sdv+iqXL/s6x4/7+ue//SsYH/ + 6LWI/+u2if/wt4v/77aK/+qxhf/psIT+1pxw8NaccPDKkGThyY9j4MWKXo7DiFx6wIRZULyBVTu7gFQq + uX1TGrl8UxCqVVUBqlVVAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAP8AAAD/AAABunhPG7h7UU+5fVNqu4FV1byCVtbMkWXrzJFl6+atgf7or4P/7rWJ//C3i//ptYj/ + 5bSH/8evff+tq3X/n6lx/4mla/+LqnH/kbmD/5O7hv+dyZj/ncmY/53JmP+dyZj/k7uG/5G5g/+LqnH/ + iaVr/5+pcf+tq3X/x699/+W0h//ptYj/8LeL/+61if/or4P/5q2B/syRZevMkWXrvIJW1ruBVdW5fVNq + uHtRT7h7URoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAALp4Twu4e1EguX1TKruBVVW8glZYxotfgcaLX4HJl2re + yZhq5bykcva6pnT6sal1/a2rdv+lsHv/nbWA/5q3g/+Wu4f/lr2J/5nDkP+Zw5H/nsmZ/57Jmf+eyZn/ + nsmZ/5nDkf+Zw5D/lr2J/5a7h/+at4P/nbWA/6Wwe/+tq3b/sal1/bqmdPq8pHL2yZhq5cmXat7Gi1+B + xotfgbyCVli7gVVVuX1TKrh7USC4e1ELAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tHtPBLR7Tzq0e086sIVWybCFVtOZl2LwlJtk94yiafyIpWv/jrF6/5O7h/+XwY7/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/l8GO/5O7h/+OsXr/iKVr/4yiafyUm2T3 + mZdi8LCFVtOwhVbJtHtPOrR7Tzq0e08EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3n2AEd59gFXydYBuKmF90iphfdJiWYdWZlmHclqhz9JWsd/qTs339kraA/5W8iP+Ywo// + msWT/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5rFk/+Ywo// + lbyI/5K2gP+Ts339lax3+paoc/SZlmHcmJZh1YqYX3SKmF90fJ1gG3efYBV3n2AEAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd59gCXefYC14oGE2e6NltnujZbaAp23kgKdt55K7h/mWv43+ + m8aV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/m8aV/5a/jf6Su4f5gKdt54CnbeR7o2W2e6NltnigYTZ3n2At + d59gCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd51eCXedXhR5oGIjeqJlQnujZ0p+pmtsf6dsc4evds6Hr3bO + irN87Yuzfe+Wv437mcKR/pzHlv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHlv+ZwpH+lr+N+4uzfe+Ks3zt + h692zoevds5/p2xzfqZrbHujZ0p6omVCeaBiI3edXhR3nV4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHedXhx3nV48eaBianqiZcV8o2fN + gahv64OqceyXwY//l8GP/57ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsiY/5fBj/+XwY//g6px7IGob+t8o2fNeqJlxXmgYmp3nV48d51eHAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHegXwl3oF8MeqJjHXuiZCl8o2ZC + faRnX3+nbIWBqnDRg6ty14eveO+IsHrwmMOR/5jDkf+eyZj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57JmP+Yw5H/mMOR/4iwevCHr3jvg6ty14GqcNF/p2yF + faRnX3yjZkJ7omQpeqJjHXegXwx3oF8JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3oF8t + d6BfPnqiY5N7omTLf6dq2oOrcOyKs3zymMOR/5nEk/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5nEk/+Yw5H/irN88oOrcOx/p2rae6Jky3qiY5N3oF8+d6BfLQAAAAAAAAAAAAAAAAAAAACAn2AB + gJ9gAXacXwt2nF8MeKBgOnigYEp8pGaafaVozoGpbd2FrXPtjLV+85jDkv+axZP/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+axZP/mMOS/4y1fvOFrXPtgalt3X2laM58pGaad6BgSnegYDp2nmAM + dp5gC4CfYAGAn2ABgJ9gCICfYAh2nF+gdpxft3mfY+d6oGT4jLV//JjDkf+bxpX/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5vFlP+YwpD/ + jLV//HmgZPh4oGPmdp5gtXaeYJ6An2AIgJ9gCICfYAiAn2AIdpxfoHacX7d5n2PneqBk+Iy1f/yYw5H/ + m8aV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+bxZT/mMKQ/4y1f/x5oGT4eKBj5naeYLV2nmCegJ9gCICfYAiAn2ABgJ9gAXKbYQ9ym2ER + eKFjVXihY258pGiyfaVp34OrcuiKsnvxkLmE9pvFlP+cxpX/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+cxpX/m8WU/5C5hPaKsnvxg6ty6H2kad98pGiyeKFjbnigY1V4l1gQeJdYDoCfYAGAn2AB + AAAAAAAAAABmmWYEZplmBXihY0t4oWNkeqJlrXuiZt2BqW/miLB58I+3gvWbxZT/nMaV/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMaV/5vFlP+Pt4L1iLB58IGpb+Z7ombdeqJlrXihY2R4oWJK + gIBABICAQAMAAAAAAAAAAAAAAAAAAAAAZplmAWaZZgF4oWMPeKFjFHmiZSR5omUvfKVpU32man5/qGyf + galv4oOscuWLtH7yjLaA85vGlf+bxpX/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/m8aV/5vGlf+NtoDyjLV+8YSscuWBqW/if6hsn32man58pWlT + e6FnLnqhZiN4oWMUeKFiD4CAQAGAgEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVqlUC + VapVA3WgYS92oGFheKFjinqhZNt9pGjfhq9374exefCaxZT/msWU/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5rFlP+axZT/iLF574ewd+59pGjf + eqFk23ihY4p2oGFhdp9iLoCAgAKAgIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAVapVAVWqVQF1oGEQdqBhIHihYy56oWRJfKNnVYCnbYSBqG6Lhq5344aud+ONtoDw + jreB8ZjCkfybxZT/nciX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciX/5vFlP+YwpH8jreB8Y22gPCGrnfj + hq5344GoboqBqG2EfKNnVXqhZEl4oWMudqBhIHafYg+AgIABgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHebXhB3m15P + d5xfWHqgZdV6oGXVhKxz6YWtdOqVv4z7mcOS/5zHl/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHl/+Zw5L/ + lb+M+4WtdOqErHPpeqBl1XqgZdV3nF9Yd5teT3ebXhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3m14Hd5teJXecXyl6oGVjeqBlY4Gpb4eCqW+KirJ70IuzfeGOt4LtkLmF85W/jfqaxZP/ + m8aV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zGlf+axZP/ + lb+N+pC5hfOOt4Lti7N94Yqye9CCqW+Kgalvh3qgZWN6oGVjd5xfKXebXiV3m14HAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2nF4ydpxeNnuhZap7oWXH + gKdt3oKqcemNt4H1lsGO/5nEkv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+axJL/l8GO/463gfWCqnHpgKdt3nuhZcd7oWWqdpxeNnacXjIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + dpxeHnacXiB7oWVme6Fld3+mbJCBqG+ciLF6wY22geKPuYTqk7yI9ZW/i/iaxZP/m8aU/57Jmf+eyZn/ + nsmZ/57Jmf+bxpT/msWT/5W/i/iTvIj1kLmE6o62geKJsXrBgahvnH+mbJB7oWV3e6FlZnacXiB2nF4e + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2m10bdptdKXmfZHR6oGW2faNoyoCnbOeGrnXt + lb+L/pbAjf6eyZn/nsmZ/57Jmf+eyZn/lsCN/pW/i/6GrnXtgKds532jaMp6oGW2eZ9kdHabXSl2m10b + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdptdFHabXR55n2RV + eqBlhX2jaJaApmuvha1zvZC5hOORuoXllsCN+JbAjfiWwI34lsCN+JG6heWRuoTiha1zvYCma699o2iW + eqBlhXmfZFV2m10edptdFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB0l10JdJddFnidYjh6oGSXe6FloX2kaOV9pGjlfaRo5X2kaOV8oWWh + fKBklnqdYjh0l10WdJddCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddCHSXXRN4nWIxeqBkg3uhZYx9pGjI + faRoyH2kaMh9pGjIfKFli3ygZIJ6nWIxdJddE3SXXQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3mWYCd5lmD3eZZg9tpFsObaRbDm2kWwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5lmAneZZg93mWYPbaRbDm2kWw5tpFsCAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////4H/////////gf//// + ////gAH///////+AAf//////+AAAH//////4AAAf/////4AAAAH/////gAAAAf////AAAAAAD///8AAA + AAAP//8AAAAAAAD//wAAAAAAAP/wAAAAAAAAD/AAAAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADAAAAAAAAAA8AAAAAAAAAD/AAAAAAAAD/8AAAAAAAAP//wAAAAAA////AAAAAAD////AAA + AAA////AAAAAAAP//8AAAAAAA//8AAAAAAAAP/wAAAAAAAA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAA/wAAAAAAAAD/8AAAAAAAP//wAAAAAAA////AAA + AAA////wAAAAAA////AAAAAAD///AAAAAAAA//8AAAAAAAD/8AAAAAAAAA/wAAAAAAAADwAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAPAAAAAAAAAA/wAAAAAAAA//AAAAAAAAD//8AAA + AAAP///wAAAAAA////+AAAAB/////4AAAAH/////+AAAH//////4AAAf//////+AAf///////4AB//// + ////+B/////////4H////ygAAAAwAAAAYAAAAAEAIAAAAAAAACQAAGEKAABhCgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLuqCcy7qg/ItqQOyLakCAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0bmiB9C6qBPQu6s80b6sVdHArWXRv6xk0b6sVM+7qjzQuqcT + 0bmiBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0bmiEtC6qDDQu6uX0b6sxtLAreXSwK3l + 0b6sxc+7qpbQuqcw0bmiEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIB0bmiEdC7qTnQvKt007+trNbEs8Ph08bm + 593Q8uvi1/rr4tf6593Q8uDTxubWxLPD07+trNC8q3TQu6k50bmiEdG5ogEAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJuaIBybmiB9C9qxbRvqwi07+rPtbDsmnXxban + 2cm429zNvezm28/77eTZ/fHq4P/x6uD/7eTZ/ebbz/vczb3s2cm429fFtqfWw7Jp07+rPtG9rCLQvasW + ybmiB8m5ogEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJuaIHybmiIdC9q3DRvqyo + 1MGv49zMvO/n28798Ojd//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+fbzv3czLzv + 1MGv49G9rKjQvatwybmiIcm5ogcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMtaQLzLWkG9G9q13Sv612 + 1MOymN7QwcDj1sjc59vO9Orf0/nu5dn+8erf//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8erf/+7l2f7q39P559vO9OPWyNze0MHA1MOymNK/rXbRvatdzLWkG8y1pAsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6ICzLijA9C9qgjOuaga + zrinNdK/rZ/Twa/C1sa16OPWyfXr4dX+8uvg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvg/+vh1f7j1sn11sa16NPBr8LSv62fzrinNc65qBrQvaoI + zLijA8y3ogIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6Ij + zLijP9C9qrfTwa/M18W14+fcz/fs49f88erf/vHq4P/y6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4P/x6uD/8erf/uzj1/zn3M/3 + 18W149PBr8zQvaq3zLijP8y3oiMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOuaUU + z7uoJNG+q1HUwrBv1sSzht3Pv9jg0sPl4tXH8+zi1/3v59z/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh/+/n3P/s4tf94tXH8+DSw+Xdz7/Y1sSzhtTCsG/RvqtRz7uoJM65pRQAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADOuaUyz7uoWtG+q8vWxLPf2sm57ezj1/7v59z/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3P/s49f+2sm57dbEs9/RvqvLz7uoWs65pTIAAAAA + AAAAAAAAAAC/v58GzLikPs24pJLPu6jG1cOy2uje0fXr4tb57eXa+/Hp3//x6uD/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hq4P/x6d//7eXa++vh1vno3dD1 + 1cOy2tC7qcbOuaWRzbmlPr+/nwa/v58GzLmkP824pJPPu6jM1cOy4Ojd0Pjs4tb67ubb/PHq4P/y6+D/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4P/x6d7/7uPW/+ze0P/s3tD/ + 7uPW//Hp3v/y6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4P/x6uD/ + 7ubb/Ovi1vrn3M/41cOy4NC7qczOuaWSzbmlPr+/nwYAAAAAzMyZAszMmQXPuqhRz7upfNC8qt3YyLjo + 3tDB8e7m2/7w6d7/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hp3v/s4dT/ + 3MGp/9Ksjf/SrI3/3MGp/+zh1P/x6d7/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Dp3v/u5tv+3tDB8djIuOjQvKrdz7upfM+6qFG/v78Ev7+/AgAAAAAAAAAAzMyZAczMmQLPuqgg + z7upMs+8qlrVw7OB18e3nt3PwObh1MXu5trN9e7l2v3w6d7/8uvh//Lr4f/y6+H/8uvh//Do3P/t49b/ + 4Mi0/9u+pv/Tr5H/1qqH/9ingP/Yp4D/1qqH/9Ovkf/bvqb/4Mi0/+3j1v/w6Nz/8uvh//Lr4f/y6+H/ + 8uvh//Dp3v/u5dr95trN9eHUxe7dz8Dm18e3ntXDs4DRu6la0LqpMs+6qCC/v78Cv7+/AQAAAAAAAAAA + AAAAAAAAAAAAAAAAqqqqAaqqqgPMuKY5zbimYtC9qs3VxLLb3c6+6Org1Pnu5tv98erg/vHq4P/x6uD/ + 8ejd/+3i1f/o2sr/1LCU/82hgP/Fj2f/05xx/92lef/dpHn/05tx/8WPZv/NoYD/1LCU/+jayv/t4tX/ + 8ejd//Hq4P/x6uD/8erg/u7m2/3q4NT53c6+59XEstrQvarNzbimYs63pTn/gIAC/4CAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqqqqAKqqqgDMuKYCzbimBNC9qgnRu6go0buoVtG/rL3TwrDb + 3My96+LTxPfl1cb/0auN/8yfff/Fj2f/1p5z/96lef/ttIj/7rWK/++2iv/vtor/7rWJ/+20iP/epXn/ + 1p5z/8WPZ//Mn33/0auN/+XVxv/i08T33My969PCsNvRv6y90buoVtG7qCjQvaoJzbimBM63pQL/gIAA + /4CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPuKUT + z7ilL8y1n37NtJ2h0LKZ3NS1nPDXtpz91aaD/9WifP/VnXP/4ad8/+asgP/vtor/8LeL//C3i//wt4v/ + 8LeL/++2iv/mrID/4ad8/9Wdc//Vonz/1aaD/9e2nP3UtZzw0LKZ3M20naHMtZ9+z7ilL8+4pRMAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALd6TiW6gVVNvIdcx7+IXebCiV/73qR4/+asgP/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//mrID/3qR4/8KJX/u/iF3mvIdcx7qBVU23ek4l + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAuH1PArh9Ty+6gFNdu4FVoMGHW8DJj2PQ3aR49OOqfvrnroL+7LOH/+61if/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utYn/7LOH/+eugv7jqn76 + 3aR49MmPY9DBh1vAvIFVobuAU164fU8vuH1PAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAtX5RA7V+UQ65gFMfuoBULL+FWF7DiV2Oxoxg08uRZevSmGz05q2B/+yzh//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//ss4f/5q2B/9KYbPTLkWXrxoxg1MSJXY7AhVheu4BULLmAUx+1flEOtX5RAwAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtX5RDrV+UUW5gFOau4FV08eNYezUm2/0566C/+61if/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utYn/566C/9Wbb/THjWHru4FV07mAU5q1flFF + tX5RDgAAAAAAAAAAAAAAAAAAAACqgFUEuIBSHLmAUkC9gVZ4wYVajc2TZ6zWnHDT2qF17eCne/flrID7 + 7LOH/++2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//vtor/7LOH/+WsgPrgp3v3 + 2qF17dWccNPNk2atwYVajr2BVni5gFJAuIBSHKqAVQSqgFUGuIBSLrmAUmq9gVbIwYZa49KXa/HhqHz5 + 67KH//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/67KH/+GofPrRl2rywYZa472BVsi5gFJquIBSLqqAVQa/gEAEun1RKrp9UmS7gVXF + wIVZ4dGWavDhp3v567KG//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7LaK/+m1if/ptoj/7LaJ//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/67KG/+Gne/nRlmrwwIVZ4buBVcW6fVJkun1RKr+AQAS/gEAC + un1RGbp9Ujy7gFV3v4VZkMyRZbfVm2/a2qB08uKpfPnnrYH77bSI/++2iv/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7LaK/+e1iP/UsoL/yrB//8Ovff/Dr3z/yrB//9Wygv/ntYj/7LaK//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//vtor/7bSI/+eugfviqXz52qB08tWbb9rMkWW3v4VZkLuAVXe6fVI8 + un1RGb+AQAIAAAAAAAAAAAAAAACqVVUCt3lTFrl9U2K7gFWsvYJW38ySZe/Zn3L26a+E/++1iv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/57WI/9myg/+rqnT/l6dv/4mla/+JpWv/l6dv/6yqdP/asoP/ + 57WI//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//vton/6bCD/9mfcvbMkmXvvYJW37uAVay5fVNi + t3lTFqpVVQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUAt3lTBLl9UxS8flMjvn9UMMGFWmzEiV2b + xoxg3dGXa+vYnnLy6rGF/+20iP/wt4v/6LWI/9Wygv+6rXn/oqly/5qrdP+WtoD/mL2J/5nCj/+Zwo// + mL2J/5a2gP+aq3T/oqly/7qtef/VsoL/6LWI//C3i//ttIj/6rGF/9iecvLRl2vrxoxg3cSJXZvBhVps + vIFVL7uAVSK5fVMUt3lTBKpVVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA + yF8/A7h7UT26f1Rqu4FVqsiNYcLPlWnR3qh79t6ugPvesoP907GB/8Gwfv+ornn/k611/46veP+UvIf/ + mcSR/53JmP+dyZj/mcSR/5S8h/+Or3j/k611/6iuef/BsH7/07GB/96yg/3eroD73qh79s+VadHIjWHC + u4FVqrp/VGq4e1E9uHtRAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALR7Ty6ygFJZsIVW056TX+mTm2T3iKVr/4yudv+Tu4f/ + nMaV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMaV/5O7h/+Mrnb/iKVr/5ObZPeek1/p + sIVW07KAUlm0e08uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3n2ALd59gG4ScYW+Jm2KXkppk35SodPCVsX37 + lbqG/5e+i/+aw5L/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciY/5rDkv+Xvov/ + lbqG/5WxffuUqHTwkppk34mbYpeEnGFvd59gG3efYAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3nV4Cd55fA3qiZQh5oWMaeaFjNXykZ59+pmnC + galv6I63gvWXwI7+nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5fAjv6Ot4L1galv6H6macJ8pGefeaFjNXmhYxp6omUId55fA3edXgIAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3nV4jd55fP3qiZbd9pWnM + gahv45K8iPeYwpD8nciX/p3ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/nciX/pjCkPySvIj3gahv432lacx6omW3 + d55fP3edXiMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3oF8UeaFhJHuiZFF+pmlv + gKhshoixediKs3zljbaB85fBj/2bxZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5vFlP+XwY/9 + jbaB84qzfOWIsXnYgKhshn6maW97omRReaFhJHegXxQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3oF8y + eaFhWnuiZMuAqGzfhKxx7ZfCkP6axZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5rFlP+XwpD+hKxx7YCobN97omTLeaFhWnegXzIAAAAAAAAAAAAAAACAn2AG + d5xfPnacX5J5n2PGgKds2pO+ivWXwY75mcSS+53Il/+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+dyJf/mcSS+5fBjvmTvYn1f6Zs2nigY8Z2nmCR + d55gPoCfYAaAn2AGd5xfP3acX5N5n2PMf6ds4JO9ifiXwY/6msST/J3ImP+eyZj/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57JmP+dyJj/msST/JfBj/qTvIn4 + f6Zs4HmgY8x2nmCSd55gPoCfYAYAAAAAZplmAmaZZgV4oWNReaFkfHuiZt2Dq3LoibF68ZrEk/6cx5b/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHlv+axJP+ + ibF68YOrcuh7ombdeaFkfHihY1GAgEAEgIBAAgAAAAAAAAAAZplmAWaZZgJ4oWMgeaFkMnqiZlp/qG2B + gqpwnoixeeaMtH7ukLqF9ZnEk/2cx5f/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHl/+ZxJP9 + kbqF9Yy1fu6IsXnmgqpwnn+obYB7omZaeaFkMnihYyCAgEACgIBAAQAAAAAAAAAAAAAAAAAAAAAAAAAA + VapVAVWqVQN1oGE5dqBhYnqhZM1/p2zbhq936JXAjfmaxZP9nciY/p3ImP+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/ + nciY/prFk/2WwI35h7B353+nbNp6oWTNdqBhYnagYTmAgIACgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAVapVAFWqVQB1oGECdqBhBHqhZAl5nmEoeZ1hVnuhZ71+pWrbhq5265K7h/eZw5P/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5nDk/+Su4f3hq52636latt7oWe9eZ1hVnmeYSh6oWQJdqBhBHagYQKAgIAAgICAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3m14Td5teL3qgZHB8o2iH + g6txoouzfcyPuIPpk72K9pbBjvqbxpX/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nciY/5vGlf+XwY76k72K9o+4g+mLs33Mg6txonyjaId6oGRwd5teL3ebXhMAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB2nF4LdpxeNnqgZI17oWbIgqpx6Iq0ffKWwY7/nMeX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nceX/5fBjv+LtH3ygqpx6HuhZsh6oGSNdpxeNnacXgsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB2nF4CdpxeC3qgZBx7oWUpfaRpToCnbX6BqXDFhq115Iqye++XwY7+ + m8aV/57Jmf+eyZn/m8aV/5fBjv6Ksnvvhq115IKpcMWAp21+faRpTnuhZSl6oGQcdpxeC3acXgIAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2m10BdptdH3mfY056oGWS + f6ZrtISrcsaSu4bplb+M85jCkPqYwpD6lr+M85K7humEq3LGf6ZrtHqgZZJ5n2NOdptdH3abXQEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAdJddEnidYTB6oGSXfKNnxn2kaOV9pGjlfaNnxXygZJZ5nWEwdJddEgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddB3idYRN6oGQ8fKJnVXyjaGV8pGdkfKNmVHygZDx5nWET + dJddBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5lmCXeZZg9tpFsO + baRbCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///w///8AAP//4Af//wAA///gB///AAD//gAA + f/8AAP/wAAAP/wAA//AAAA//AAD/gAAAAf8AAPwAAAAAPwAA/AAAAAA/AADgAAAAAAcAAOAAAAAABwAA + AAAAAAAAAAAAAAAAAAAAAIAAAAAAAQAAgAAAAAABAADwAAAAAA8AAPAAAAAADwAA/4AAAAH/AAD/4AAA + B/8AAP4AAAAAfwAA8AAAAAAPAADwAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 4AAAAAAHAADgAAAAAAcAAPwAAAAAfwAA/+AAAAf/AAD/gAAAAf8AAPwAAAAAPwAA/AAAAAA/AADgAAAA + AAcAAOAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAQAAgAAAAAABAADwAAAAAA8AAPAAAAAADwAA + /4AAAAH/AAD/8AAAD/8AAP/wAAAP/wAA//4AAH//AAD//+AH//8AAP//4Af//wAA///8P///AAAoAAAA + IAAAAEAAAAABACAAAAAAAAAQAABhCgAAYQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMu6oBzLuqD8i2pA7ItqQBAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIE0LqnJdC7q5LSwK3X0sCt18+7qpHQuqYk + 0bmiBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIG0LuoL9G9rIzVw7HN4tbJ7u3l2vzt5dr8 + 4tbJ7tXDsc3RvayM0LuoL9G5ogYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJuaIMz72qRdK/rZfZyLfI5trN6+3k2Prv593+ + 8uvh//Lr4f/v593+7eTY+ubazevZyLfI0r+tl8+8qkXJuaIMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMtaQU0LyqV9PAr5rczr7H59zP7Ozi1/rw6N3/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+zi1/rn3M/s3M6+x9PAr5rQvKpXzLWkFAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6Idz7ypZdTBsJzf0MLL5tvP7uzi1/rw6d7/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Dp3v/s4tf65tvP7t/QwsvUwbCc + z7ypZcy3oh0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOuaUg0b6radbEs5rg0sPS5trN8ezi1/vx6d// + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/x6d// + 7OLX++bazfHg0sPS1sSzmtG+q2nOuaUgAAAAAAAAAAC/v58EzbikW8+7qJnf0cHZ5drM8u3k2Pzx6t// + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8erf/+3k2Pzl2czy3tDB2dC7qZnOuaVav7+fBL+/nwTNuKRe0LuoqN7PwOPm2872 + 7ubb/fHq4P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/7uXZ/+POuv/jzrr/7uXZ//Lq4P/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/x6uD/7ubb/ebbzvbdz7/j0LupqM65pVy/v58EAAAAAMzMmQPPuqg0 + 0Lyqd9jHt6rh1Mbd593Q9e3l2vzx6uD/8uvh//Lr4f/x6t//7eHU/+PNuv/bvqX/1qmF/9aohf/bvqX/ + 4826/+3h1P/x6t//8uvh//Lr4f/x6uD/7eXa/Ofd0PXh1Mbd2Me3qtC7qnfPuqg0v7+/AgAAAAAAAAAA + AAAAAAAAAACqqqoCzbimMM+8qXfXxrWq4dTF1+jd0fTs4tb769/R/+TPvP/bvKL/06N//9Occv/jqn7/ + 46p+/9Occv/To3//27yi/+TPvP/r39H/7OLW++jd0fTh1MXX18a1qc+8qXfNuKYw/4CAAQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM+4pSPOuKR10bqkw9e+p+zZuJ7+0qJ+/9ObcP/jqX3/ + 77aK//C3i//wt4v/77aK/+Opff/Tm3D/0qJ+/9m4nv7Xvqfs0bqkw864pHXPuKUjAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4fU8IuoBUHb2CVkDDi2CPyJBm49OZbv3mrID/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//mrID/05lu/ciQZuPDi2CPvYJWQLuAVB24fU8I + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1flEHuYBUF72DVkLBh1uexoxg4dedcffqsIT/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/6rCE/9edcffHjGDh + wodbn72DVUK5gFQXtX5RBwAAAAAAAAAAAAAAAKqAVQC5gFIHvYFWDruDVkO+hFiyxo1h5tyjd/jss4f/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/+yzh//do3f4x41g5b6EWLK7g1ZDvYFWDrmAUgeqgFUAqoBVBrmAUmO9gVbPzpNn7eWrgPvutYr/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//utYr/5KuA/M2TZu69gVbPuYBSY6qAVQa/gEAEun1SXruBVc3Nkmbs + 5Kt/++61if/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//ptYn/6baI//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61if/kq3/7zZJm7LuBVc26fVJev4BABL+AQAC6fVIG + uHpVELyAVlm/hFjBypBk69+levnttIj/8LeL//C3i//wt4v/8LeL/+62iv/fs4X/rat1/4+mbf+Ppm3/ + rqt1/9+zhf/utor/8LeL//C3i//wt4v/8LeL/+20iP/fpnn5ypBk67+EWMG8gFZZuHpVELp9Uga/gEAA + AAAAAAAAAACqVVUAuX1TC719Uxq/gldNwYdbq8qQZOXdo3f27LOH/+22iv/asoP/r6t2/5Wpcf+VuIL/ + msSS/5rEkv+VuIL/lalx/6+rdv/asoP/7baK/+yzh//do3f2ypBk5cGHW6u+gldNvIBVGbl9UwuqVVUA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAALh6UAu6gFQgv4VZRr6MXpizlmXno6Nu+5qsdv+Zuob/ + msKQ/5zGlf+eyZn/nsmZ/5zGlf+awpD/mbqG/5qsdv+jo277s5Zl576MXpi/hVlGuoBUILh7UQsAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHefYBR/n2Jfh59luZCoc+yWuYb9 + mcGP/5zGlf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cxpX/mcGP/5a5hv2QqHPsh59luX+fYl93n2AU + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHedXh16oWRlfqVrnIqye8uSvIfu + l8GP+pzHlv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMeW/5fBj/qSvIfu + irJ7y36la5x6oWRld51eHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHegXyB7omRpgKhrmou0fdKRu4bx + l8KQ+53Hl/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/53Hl/+XwpD7kbuG8Yu0fdKAqGuae6JkaXegXyAAAAAAAAAAAICfYAR2nF9beaBjmYmyetmQuoXy + mMOR/J3ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/mMOR/JC6hPKJsnrZeKBjmXaeYFqAn2AEgJ9gBHacX155oGOo + ibJ645K7h/aaxJP9nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+axJP9kruH9omxeuN5oGOodp1fXICfYAQAAAAA + ZplmA3ihYzR6omZ3gqpxqoy1ft2TvIj1mcSS/J3ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+ZxJL8k7yI9Yy1ft2CqnGqe6Jmd3ihYzSAgEAC + AAAAAAAAAAAAAAAAAAAAAFWqVQJ2oGEweaFjd4CobqqLtH/Xk72K9JnDkfudyJf/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Il/+Zw5H7k72K9Iy1f9eBqW6peaFjd3agYTCAgIAB + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5teI3mfY25/pmyqi7N80JS9ivOYw5H7 + nMeX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Hl/+Yw5H7lL2K84uzfNB/pmyqeZ9jbnebXiMAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHacXhR6oGNa + faRpq4evd8+TvYrymcOR+5zHlv+eyZn/nsmZ/5zHlv+Zw5H7lL2K8oevd899pGmreqBjWnacXhQAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB2m10MeJ5iRHuiZ6eDqnDQk72J8ZrFk/yaxZP8k72J8YOqcNB7omeneJ5iRHabXQwAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddBHecYSV6oGSSfaRo132kaNd8oGSReJxhJHSXXQQAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHeZZgF3mWYPbaRbDm2kWwEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/8P///8A// + /8AD//8AAP/8AAA/8AAAD8AAAAMAAAAAAAAAAIAAAAHgAAAH/AAAP/gAAB/gAAAHAAAAAAAAAAAAAAAA + AAAAAMAAAAPwAAAf/AAAP/AAAA/AAAADAAAAAAAAAACAAAAB4AAAB/wAAD//AAD//8AD///wD////D// + KAAAABAAAAAgAAAAAQAgAAAAAAAABAAAYQoAAGEKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAANG6pgrRvqxe0b6sXtC6pgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + zrypFNXDsWXg0sTQ7OPY+uzj2Prg0sTQ1cOxZc68qRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPu6ch + 2Ma2dOLVx9Lt5dn58erg//Lr4f/y6+H/8erg/+3l2fni1cfS2Ma2dM+7pyEAAAAAAAAAAMy4pBjWxbN/ + 49fJ1u3l2fvy6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvg/+3l2fvj18nW1sWzf825pRjMuaMZ + 1cOyjuTZy97u5tv88uvh//Lr4P/t4dT/4cav/+HGr//t4dT/8uvg//Lr4f/u5tv85NnL3tXDso7NuqYZ + AAAAAKqqqgDPu6gq2Mi3huDPvujewqr/2amE/+Wtgf/lrYH/2amE/97Cqv/gz77o2Mi3hs+7qCr/gIAA + AAAAAAAAAAC1flECvIJVGMOJXHfVnHHa5q2B/vC3i//wt4v/8LeL//C3i//mrYH+1Zxx2sOJXHe8glUY + tX5RAgAAAAC4gFIcxIleg9ifc+TqsYX98LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//qsYX9 + 2J9z5MSJXYS4gFIcun1RGsOIXYnZn3Pq67KG/vC3i//wt4v/67aJ/8Wvff/Gr33/67aJ//C3i//wt4v/ + 67KG/tmfc+rDiF2Jun1RGgAAAAC4e1MDvoBVHMWKXn3RoHPdwa58/p60f/+aw5D/msOQ/560f//Brnz+ + 0aBz3cWKXn29gVYcuHtTAwAAAAAAAAAAAAAAAHmgYyGDqXB2kbJ945rCkf6dyJj/nsmZ/57Jmf+dyJj/ + msKR/pGyfeODqXB2eaBjIQAAAAAAAAAAdpxfGICobX+OuILWmcOS+57JmP+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZj/mcOS+464gtaAqG1/dp5gGHacXxmAp22OkLmE3prEk/yeyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5rEk/yQuYTef6dtjnedXxkAAAAAVapVAHihYyqDqnKFj7iD2prEk/ueyZj/ + nsmZ/57Jmf+eyZj/msST+4+4g9qDq3KEeKFjKoCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAHmfYhuBqG5y + jLV/2ZrFk/uaxZP7jbV/2YGobnJ5n2IbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHebYAp8omdefKNmXnibYAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8PwAA8A8AAMADAAAAAAAA + AAAAAIABAACAAQAAAAAAAAAAAACAAQAAwAMAAAAAAAAAAAAAgAEAAPAPAAD8PwAA + + + \ No newline at end of file diff --git a/Handler/Project_form2/icons8-layers-30.ico b/Handler/Project_form2/icons8-layers-30.ico new file mode 100644 index 0000000..058c52e Binary files /dev/null and b/Handler/Project_form2/icons8-layers-30.ico differ diff --git a/Handler/Project_form2/icons8-split-64.ico b/Handler/Project_form2/icons8-split-64.ico new file mode 100644 index 0000000..4bd26bf Binary files /dev/null and b/Handler/Project_form2/icons8-split-64.ico differ diff --git a/Handler/Project_form2/libxl.dll b/Handler/Project_form2/libxl.dll new file mode 100644 index 0000000..204a7e3 Binary files /dev/null and b/Handler/Project_form2/libxl.dll differ diff --git a/Handler/Project_form2/packages.config b/Handler/Project_form2/packages.config new file mode 100644 index 0000000..33b93fd --- /dev/null +++ b/Handler/Project_form2/packages.config @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/Handler/Project_form2/vCustomerList.cs b/Handler/Project_form2/vCustomerList.cs new file mode 100644 index 0000000..e241867 --- /dev/null +++ b/Handler/Project_form2/vCustomerList.cs @@ -0,0 +1,20 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 템플릿에서 생성되었습니다. +// +// 이 파일을 수동으로 변경하면 응용 프로그램에서 예기치 않은 동작이 발생할 수 있습니다. +// 이 파일을 수동으로 변경하면 코드가 다시 생성될 때 변경 내용을 덮어씁니다. +// +//------------------------------------------------------------------------------ + +namespace Project +{ + using System; + using System.Collections.Generic; + + public partial class vCustomerList + { + public string CustCode { get; set; } + public string CustName { get; set; } + } +} diff --git a/Handler/ResultView/CSetting.cs b/Handler/ResultView/CSetting.cs new file mode 100644 index 0000000..690bca9 --- /dev/null +++ b/Handler/ResultView/CSetting.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel; + +namespace ResultView +{ + public class CSetting : arUtil.Setting + { + public string MCName { get; set; } + + [DisplayName("프린터이름")] + public string PrinterName { get; set; } + [DisplayName("프린트 테두리 그림")] + public Boolean DrawBorder { get; set; } + [DisplayName("라벨포맷 7자리 사용")] + public Boolean PrinterForm7 { get; set; } + public override void AfterLoad() + { + if (PrinterName.isEmpty()) PrinterName = "PrinterL"; + } + public override void AfterSave() + { + //throw new NotImplementedException(); + } + } +} diff --git a/Handler/ResultView/DataSet1.Designer.cs b/Handler/ResultView/DataSet1.Designer.cs new file mode 100644 index 0000000..b8b6cbd --- /dev/null +++ b/Handler/ResultView/DataSet1.Designer.cs @@ -0,0 +1,3371 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +#pragma warning disable 1591 + +namespace ResultView { + + + /// + ///Represents a strongly typed in-memory cache of data. + /// + [global::System.Serializable()] + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] + [global::System.Xml.Serialization.XmlRootAttribute("DataSet1")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] + public partial class DataSet1 : global::System.Data.DataSet { + + private Component_Reel_ResultDataTable tableComponent_Reel_Result; + + private global::System.Data.SchemaSerializationMode _schemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public DataSet1() { + this.BeginInit(); + this.InitClass(); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + base.Relations.CollectionChanged += schemaChangedHandler; + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected DataSet1(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context, false) { + if ((this.IsBinarySerialized(info, context) == true)) { + this.InitVars(false); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + this.Tables.CollectionChanged += schemaChangedHandler1; + this.Relations.CollectionChanged += schemaChangedHandler1; + return; + } + string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); + if ((this.DetermineSchemaSerializationMode(info, context) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { + global::System.Data.DataSet ds = new global::System.Data.DataSet(); + ds.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); + if ((ds.Tables["Component_Reel_Result"] != null)) { + base.Tables.Add(new Component_Reel_ResultDataTable(ds.Tables["Component_Reel_Result"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); + } + this.GetSerializationData(info, context); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + this.Relations.CollectionChanged += schemaChangedHandler; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public Component_Reel_ResultDataTable Component_Reel_Result { + get { + return this.tableComponent_Reel_Result; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.BrowsableAttribute(true)] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Visible)] + public override global::System.Data.SchemaSerializationMode SchemaSerializationMode { + get { + return this._schemaSerializationMode; + } + set { + this._schemaSerializationMode = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new global::System.Data.DataTableCollection Tables { + get { + return base.Tables; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new global::System.Data.DataRelationCollection Relations { + get { + return base.Relations; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void InitializeDerivedDataSet() { + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public override global::System.Data.DataSet Clone() { + DataSet1 cln = ((DataSet1)(base.Clone())); + cln.InitVars(); + cln.SchemaSerializationMode = this.SchemaSerializationMode; + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override bool ShouldSerializeTables() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override bool ShouldSerializeRelations() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void ReadXmlSerializable(global::System.Xml.XmlReader reader) { + if ((this.DetermineSchemaSerializationMode(reader) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { + this.Reset(); + global::System.Data.DataSet ds = new global::System.Data.DataSet(); + ds.ReadXml(reader); + if ((ds.Tables["Component_Reel_Result"] != null)) { + base.Tables.Add(new Component_Reel_ResultDataTable(ds.Tables["Component_Reel_Result"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXml(reader); + this.InitVars(); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Xml.Schema.XmlSchema GetSchemaSerializable() { + global::System.IO.MemoryStream stream = new global::System.IO.MemoryStream(); + this.WriteXmlSchema(new global::System.Xml.XmlTextWriter(stream, null)); + stream.Position = 0; + return global::System.Xml.Schema.XmlSchema.Read(new global::System.Xml.XmlTextReader(stream), null); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal void InitVars() { + this.InitVars(true); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal void InitVars(bool initTable) { + this.tableComponent_Reel_Result = ((Component_Reel_ResultDataTable)(base.Tables["Component_Reel_Result"])); + if ((initTable == true)) { + if ((this.tableComponent_Reel_Result != null)) { + this.tableComponent_Reel_Result.InitVars(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitClass() { + this.DataSetName = "DataSet1"; + this.Prefix = ""; + this.Namespace = "http://tempuri.org/DataSet1.xsd"; + this.EnforceConstraints = true; + this.SchemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; + this.tableComponent_Reel_Result = new Component_Reel_ResultDataTable(); + base.Tables.Add(this.tableComponent_Reel_Result); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private bool ShouldSerializeComponent_Reel_Result() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void SchemaChanged(object sender, global::System.ComponentModel.CollectionChangeEventArgs e) { + if ((e.Action == global::System.ComponentModel.CollectionChangeAction.Remove)) { + this.InitVars(); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + global::System.Xml.Schema.XmlSchemaAny any = new global::System.Xml.Schema.XmlSchemaAny(); + any.Namespace = ds.Namespace; + sequence.Items.Add(any); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public delegate void Component_Reel_ResultRowChangeEventHandler(object sender, Component_Reel_ResultRowChangeEvent e); + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class Component_Reel_ResultDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnidx; + + private global::System.Data.DataColumn columnSTIME; + + private global::System.Data.DataColumn columnETIME; + + private global::System.Data.DataColumn columnPDATE; + + private global::System.Data.DataColumn columnJTYPE; + + private global::System.Data.DataColumn columnJGUID; + + private global::System.Data.DataColumn columnSID; + + private global::System.Data.DataColumn columnSID0; + + private global::System.Data.DataColumn columnRID; + + private global::System.Data.DataColumn columnRID0; + + private global::System.Data.DataColumn columnRSN; + + private global::System.Data.DataColumn columnQR; + + private global::System.Data.DataColumn columnZPL; + + private global::System.Data.DataColumn columnPOS; + + private global::System.Data.DataColumn columnLOC; + + private global::System.Data.DataColumn columnANGLE; + + private global::System.Data.DataColumn columnQTY; + + private global::System.Data.DataColumn columnQTY0; + + private global::System.Data.DataColumn columnVNAME; + + private global::System.Data.DataColumn columnPRNATTACH; + + private global::System.Data.DataColumn columnPRNVALID; + + private global::System.Data.DataColumn columnwdate; + + private global::System.Data.DataColumn columnVLOT; + + private global::System.Data.DataColumn columnBATCH; + + private global::System.Data.DataColumn columnqtymax; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_ResultDataTable() { + this.TableName = "Component_Reel_Result"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal Component_Reel_ResultDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected Component_Reel_ResultDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn idxColumn { + get { + return this.columnidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn STIMEColumn { + get { + return this.columnSTIME; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn ETIMEColumn { + get { + return this.columnETIME; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn PDATEColumn { + get { + return this.columnPDATE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn JTYPEColumn { + get { + return this.columnJTYPE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn JGUIDColumn { + get { + return this.columnJGUID; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn SIDColumn { + get { + return this.columnSID; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn SID0Column { + get { + return this.columnSID0; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn RIDColumn { + get { + return this.columnRID; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn RID0Column { + get { + return this.columnRID0; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn RSNColumn { + get { + return this.columnRSN; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn QRColumn { + get { + return this.columnQR; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn ZPLColumn { + get { + return this.columnZPL; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn POSColumn { + get { + return this.columnPOS; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn LOCColumn { + get { + return this.columnLOC; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn ANGLEColumn { + get { + return this.columnANGLE; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn QTYColumn { + get { + return this.columnQTY; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn QTY0Column { + get { + return this.columnQTY0; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn VNAMEColumn { + get { + return this.columnVNAME; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn PRNATTACHColumn { + get { + return this.columnPRNATTACH; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn PRNVALIDColumn { + get { + return this.columnPRNVALID; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn wdateColumn { + get { + return this.columnwdate; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn VLOTColumn { + get { + return this.columnVLOT; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn BATCHColumn { + get { + return this.columnBATCH; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataColumn qtymaxColumn { + get { + return this.columnqtymax; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_ResultRow this[int index] { + get { + return ((Component_Reel_ResultRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event Component_Reel_ResultRowChangeEventHandler Component_Reel_ResultRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event Component_Reel_ResultRowChangeEventHandler Component_Reel_ResultRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event Component_Reel_ResultRowChangeEventHandler Component_Reel_ResultRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public event Component_Reel_ResultRowChangeEventHandler Component_Reel_ResultRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void AddComponent_Reel_ResultRow(Component_Reel_ResultRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_ResultRow AddComponent_Reel_ResultRow( + System.DateTime STIME, + System.DateTime ETIME, + string PDATE, + string JTYPE, + string JGUID, + string SID, + string SID0, + string RID, + string RID0, + string RSN, + string QR, + string ZPL, + string POS, + string LOC, + double ANGLE, + int QTY, + int QTY0, + string VNAME, + bool PRNATTACH, + bool PRNVALID, + System.DateTime wdate, + string VLOT, + string BATCH, + int qtymax) { + Component_Reel_ResultRow rowComponent_Reel_ResultRow = ((Component_Reel_ResultRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + STIME, + ETIME, + PDATE, + JTYPE, + JGUID, + SID, + SID0, + RID, + RID0, + RSN, + QR, + ZPL, + POS, + LOC, + ANGLE, + QTY, + QTY0, + VNAME, + PRNATTACH, + PRNVALID, + wdate, + VLOT, + BATCH, + qtymax}; + rowComponent_Reel_ResultRow.ItemArray = columnValuesArray; + this.Rows.Add(rowComponent_Reel_ResultRow); + return rowComponent_Reel_ResultRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_ResultRow FindByidx(int idx) { + return ((Component_Reel_ResultRow)(this.Rows.Find(new object[] { + idx}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public override global::System.Data.DataTable Clone() { + Component_Reel_ResultDataTable cln = ((Component_Reel_ResultDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new Component_Reel_ResultDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal void InitVars() { + this.columnidx = base.Columns["idx"]; + this.columnSTIME = base.Columns["STIME"]; + this.columnETIME = base.Columns["ETIME"]; + this.columnPDATE = base.Columns["PDATE"]; + this.columnJTYPE = base.Columns["JTYPE"]; + this.columnJGUID = base.Columns["JGUID"]; + this.columnSID = base.Columns["SID"]; + this.columnSID0 = base.Columns["SID0"]; + this.columnRID = base.Columns["RID"]; + this.columnRID0 = base.Columns["RID0"]; + this.columnRSN = base.Columns["RSN"]; + this.columnQR = base.Columns["QR"]; + this.columnZPL = base.Columns["ZPL"]; + this.columnPOS = base.Columns["POS"]; + this.columnLOC = base.Columns["LOC"]; + this.columnANGLE = base.Columns["ANGLE"]; + this.columnQTY = base.Columns["QTY"]; + this.columnQTY0 = base.Columns["QTY0"]; + this.columnVNAME = base.Columns["VNAME"]; + this.columnPRNATTACH = base.Columns["PRNATTACH"]; + this.columnPRNVALID = base.Columns["PRNVALID"]; + this.columnwdate = base.Columns["wdate"]; + this.columnVLOT = base.Columns["VLOT"]; + this.columnBATCH = base.Columns["BATCH"]; + this.columnqtymax = base.Columns["qtymax"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitClass() { + this.columnidx = new global::System.Data.DataColumn("idx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnidx); + this.columnSTIME = new global::System.Data.DataColumn("STIME", typeof(global::System.DateTime), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSTIME); + this.columnETIME = new global::System.Data.DataColumn("ETIME", typeof(global::System.DateTime), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnETIME); + this.columnPDATE = new global::System.Data.DataColumn("PDATE", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPDATE); + this.columnJTYPE = new global::System.Data.DataColumn("JTYPE", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnJTYPE); + this.columnJGUID = new global::System.Data.DataColumn("JGUID", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnJGUID); + this.columnSID = new global::System.Data.DataColumn("SID", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSID); + this.columnSID0 = new global::System.Data.DataColumn("SID0", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSID0); + this.columnRID = new global::System.Data.DataColumn("RID", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnRID); + this.columnRID0 = new global::System.Data.DataColumn("RID0", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnRID0); + this.columnRSN = new global::System.Data.DataColumn("RSN", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnRSN); + this.columnQR = new global::System.Data.DataColumn("QR", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnQR); + this.columnZPL = new global::System.Data.DataColumn("ZPL", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnZPL); + this.columnPOS = new global::System.Data.DataColumn("POS", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPOS); + this.columnLOC = new global::System.Data.DataColumn("LOC", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnLOC); + this.columnANGLE = new global::System.Data.DataColumn("ANGLE", typeof(double), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnANGLE); + this.columnQTY = new global::System.Data.DataColumn("QTY", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnQTY); + this.columnQTY0 = new global::System.Data.DataColumn("QTY0", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnQTY0); + this.columnVNAME = new global::System.Data.DataColumn("VNAME", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnVNAME); + this.columnPRNATTACH = new global::System.Data.DataColumn("PRNATTACH", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPRNATTACH); + this.columnPRNVALID = new global::System.Data.DataColumn("PRNVALID", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPRNVALID); + this.columnwdate = new global::System.Data.DataColumn("wdate", typeof(global::System.DateTime), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnwdate); + this.columnVLOT = new global::System.Data.DataColumn("VLOT", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnVLOT); + this.columnBATCH = new global::System.Data.DataColumn("BATCH", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnBATCH); + this.columnqtymax = new global::System.Data.DataColumn("qtymax", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnqtymax); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnidx}, true)); + this.columnidx.AutoIncrement = true; + this.columnidx.AutoIncrementSeed = -1; + this.columnidx.AutoIncrementStep = -1; + this.columnidx.AllowDBNull = false; + this.columnidx.ReadOnly = true; + this.columnidx.Unique = true; + this.columnSTIME.AllowDBNull = false; + this.columnPDATE.MaxLength = 10; + this.columnJTYPE.MaxLength = 10; + this.columnJGUID.MaxLength = 50; + this.columnSID.MaxLength = 20; + this.columnSID0.MaxLength = 20; + this.columnRID.MaxLength = 50; + this.columnRID0.MaxLength = 50; + this.columnRSN.MaxLength = 10; + this.columnQR.MaxLength = 100; + this.columnZPL.MaxLength = 1000; + this.columnPOS.MaxLength = 10; + this.columnLOC.MaxLength = 1; + this.columnVNAME.MaxLength = 100; + this.columnwdate.AllowDBNull = false; + this.columnVLOT.MaxLength = 100; + this.columnBATCH.MaxLength = 100; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_ResultRow NewComponent_Reel_ResultRow() { + return ((Component_Reel_ResultRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new Component_Reel_ResultRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(Component_Reel_ResultRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.Component_Reel_ResultRowChanged != null)) { + this.Component_Reel_ResultRowChanged(this, new Component_Reel_ResultRowChangeEvent(((Component_Reel_ResultRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.Component_Reel_ResultRowChanging != null)) { + this.Component_Reel_ResultRowChanging(this, new Component_Reel_ResultRowChangeEvent(((Component_Reel_ResultRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.Component_Reel_ResultRowDeleted != null)) { + this.Component_Reel_ResultRowDeleted(this, new Component_Reel_ResultRowChangeEvent(((Component_Reel_ResultRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.Component_Reel_ResultRowDeleting != null)) { + this.Component_Reel_ResultRowDeleting(this, new Component_Reel_ResultRowChangeEvent(((Component_Reel_ResultRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void RemoveComponent_Reel_ResultRow(Component_Reel_ResultRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "Component_Reel_ResultDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class Component_Reel_ResultRow : global::System.Data.DataRow { + + private Component_Reel_ResultDataTable tableComponent_Reel_Result; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal Component_Reel_ResultRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableComponent_Reel_Result = ((Component_Reel_ResultDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public int idx { + get { + return ((int)(this[this.tableComponent_Reel_Result.idxColumn])); + } + set { + this[this.tableComponent_Reel_Result.idxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public System.DateTime STIME { + get { + return ((global::System.DateTime)(this[this.tableComponent_Reel_Result.STIMEColumn])); + } + set { + this[this.tableComponent_Reel_Result.STIMEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public System.DateTime ETIME { + get { + try { + return ((global::System.DateTime)(this[this.tableComponent_Reel_Result.ETIMEColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'Component_Reel_Result\' 테이블의 \'ETIME\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableComponent_Reel_Result.ETIMEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string PDATE { + get { + if (this.IsPDATENull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.PDATEColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.PDATEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string JTYPE { + get { + if (this.IsJTYPENull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.JTYPEColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.JTYPEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string JGUID { + get { + if (this.IsJGUIDNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.JGUIDColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.JGUIDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string SID { + get { + if (this.IsSIDNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.SIDColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.SIDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string SID0 { + get { + if (this.IsSID0Null()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.SID0Column])); + } + } + set { + this[this.tableComponent_Reel_Result.SID0Column] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string RID { + get { + if (this.IsRIDNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.RIDColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.RIDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string RID0 { + get { + if (this.IsRID0Null()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.RID0Column])); + } + } + set { + this[this.tableComponent_Reel_Result.RID0Column] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string RSN { + get { + if (this.IsRSNNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.RSNColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.RSNColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string QR { + get { + if (this.IsQRNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.QRColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.QRColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string ZPL { + get { + if (this.IsZPLNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.ZPLColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.ZPLColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string POS { + get { + if (this.IsPOSNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.POSColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.POSColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string LOC { + get { + if (this.IsLOCNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.LOCColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.LOCColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public double ANGLE { + get { + if (this.IsANGLENull()) { + return -1D; + } + else { + return ((double)(this[this.tableComponent_Reel_Result.ANGLEColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.ANGLEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public int QTY { + get { + if (this.IsQTYNull()) { + return -1; + } + else { + return ((int)(this[this.tableComponent_Reel_Result.QTYColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.QTYColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public int QTY0 { + get { + if (this.IsQTY0Null()) { + return -1; + } + else { + return ((int)(this[this.tableComponent_Reel_Result.QTY0Column])); + } + } + set { + this[this.tableComponent_Reel_Result.QTY0Column] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string VNAME { + get { + if (this.IsVNAMENull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.VNAMEColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.VNAMEColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool PRNATTACH { + get { + if (this.IsPRNATTACHNull()) { + return false; + } + else { + return ((bool)(this[this.tableComponent_Reel_Result.PRNATTACHColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.PRNATTACHColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool PRNVALID { + get { + if (this.IsPRNVALIDNull()) { + return false; + } + else { + return ((bool)(this[this.tableComponent_Reel_Result.PRNVALIDColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.PRNVALIDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public System.DateTime wdate { + get { + return ((global::System.DateTime)(this[this.tableComponent_Reel_Result.wdateColumn])); + } + set { + this[this.tableComponent_Reel_Result.wdateColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string VLOT { + get { + if (this.IsVLOTNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.VLOTColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.VLOTColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public string BATCH { + get { + if (this.IsBATCHNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Result.BATCHColumn])); + } + } + set { + this[this.tableComponent_Reel_Result.BATCHColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public int qtymax { + get { + try { + return ((int)(this[this.tableComponent_Reel_Result.qtymaxColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'Component_Reel_Result\' 테이블의 \'qtymax\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableComponent_Reel_Result.qtymaxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsETIMENull() { + return this.IsNull(this.tableComponent_Reel_Result.ETIMEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetETIMENull() { + this[this.tableComponent_Reel_Result.ETIMEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsPDATENull() { + return this.IsNull(this.tableComponent_Reel_Result.PDATEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetPDATENull() { + this[this.tableComponent_Reel_Result.PDATEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsJTYPENull() { + return this.IsNull(this.tableComponent_Reel_Result.JTYPEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetJTYPENull() { + this[this.tableComponent_Reel_Result.JTYPEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsJGUIDNull() { + return this.IsNull(this.tableComponent_Reel_Result.JGUIDColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetJGUIDNull() { + this[this.tableComponent_Reel_Result.JGUIDColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsSIDNull() { + return this.IsNull(this.tableComponent_Reel_Result.SIDColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetSIDNull() { + this[this.tableComponent_Reel_Result.SIDColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsSID0Null() { + return this.IsNull(this.tableComponent_Reel_Result.SID0Column); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetSID0Null() { + this[this.tableComponent_Reel_Result.SID0Column] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsRIDNull() { + return this.IsNull(this.tableComponent_Reel_Result.RIDColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetRIDNull() { + this[this.tableComponent_Reel_Result.RIDColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsRID0Null() { + return this.IsNull(this.tableComponent_Reel_Result.RID0Column); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetRID0Null() { + this[this.tableComponent_Reel_Result.RID0Column] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsRSNNull() { + return this.IsNull(this.tableComponent_Reel_Result.RSNColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetRSNNull() { + this[this.tableComponent_Reel_Result.RSNColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsQRNull() { + return this.IsNull(this.tableComponent_Reel_Result.QRColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetQRNull() { + this[this.tableComponent_Reel_Result.QRColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsZPLNull() { + return this.IsNull(this.tableComponent_Reel_Result.ZPLColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetZPLNull() { + this[this.tableComponent_Reel_Result.ZPLColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsPOSNull() { + return this.IsNull(this.tableComponent_Reel_Result.POSColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetPOSNull() { + this[this.tableComponent_Reel_Result.POSColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsLOCNull() { + return this.IsNull(this.tableComponent_Reel_Result.LOCColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetLOCNull() { + this[this.tableComponent_Reel_Result.LOCColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsANGLENull() { + return this.IsNull(this.tableComponent_Reel_Result.ANGLEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetANGLENull() { + this[this.tableComponent_Reel_Result.ANGLEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsQTYNull() { + return this.IsNull(this.tableComponent_Reel_Result.QTYColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetQTYNull() { + this[this.tableComponent_Reel_Result.QTYColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsQTY0Null() { + return this.IsNull(this.tableComponent_Reel_Result.QTY0Column); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetQTY0Null() { + this[this.tableComponent_Reel_Result.QTY0Column] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsVNAMENull() { + return this.IsNull(this.tableComponent_Reel_Result.VNAMEColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetVNAMENull() { + this[this.tableComponent_Reel_Result.VNAMEColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsPRNATTACHNull() { + return this.IsNull(this.tableComponent_Reel_Result.PRNATTACHColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetPRNATTACHNull() { + this[this.tableComponent_Reel_Result.PRNATTACHColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsPRNVALIDNull() { + return this.IsNull(this.tableComponent_Reel_Result.PRNVALIDColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetPRNVALIDNull() { + this[this.tableComponent_Reel_Result.PRNVALIDColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsVLOTNull() { + return this.IsNull(this.tableComponent_Reel_Result.VLOTColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetVLOTNull() { + this[this.tableComponent_Reel_Result.VLOTColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsBATCHNull() { + return this.IsNull(this.tableComponent_Reel_Result.BATCHColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetBATCHNull() { + this[this.tableComponent_Reel_Result.BATCHColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool IsqtymaxNull() { + return this.IsNull(this.tableComponent_Reel_Result.qtymaxColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public void SetqtymaxNull() { + this[this.tableComponent_Reel_Result.qtymaxColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public class Component_Reel_ResultRowChangeEvent : global::System.EventArgs { + + private Component_Reel_ResultRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_ResultRowChangeEvent(Component_Reel_ResultRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_ResultRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + } +} +namespace ResultView.DataSet1TableAdapters { + + + /// + ///Represents the connection and commands used to retrieve and save data. + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DataObjectAttribute(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + + ", Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public partial class Component_Reel_ResultTableAdapter : global::System.ComponentModel.Component { + + private global::System.Data.SqlClient.SqlDataAdapter _adapter; + + private global::System.Data.SqlClient.SqlConnection _connection; + + private global::System.Data.SqlClient.SqlTransaction _transaction; + + private global::System.Data.SqlClient.SqlCommand[] _commandCollection; + + private bool _clearBeforeFill; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public Component_Reel_ResultTableAdapter() { + this.ClearBeforeFill = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected internal global::System.Data.SqlClient.SqlDataAdapter Adapter { + get { + if ((this._adapter == null)) { + this.InitAdapter(); + } + return this._adapter; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal global::System.Data.SqlClient.SqlConnection Connection { + get { + if ((this._connection == null)) { + this.InitConnection(); + } + return this._connection; + } + set { + this._connection = value; + if ((this.Adapter.InsertCommand != null)) { + this.Adapter.InsertCommand.Connection = value; + } + if ((this.Adapter.DeleteCommand != null)) { + this.Adapter.DeleteCommand.Connection = value; + } + if ((this.Adapter.UpdateCommand != null)) { + this.Adapter.UpdateCommand.Connection = value; + } + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + if ((this.CommandCollection[i] != null)) { + ((global::System.Data.SqlClient.SqlCommand)(this.CommandCollection[i])).Connection = value; + } + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal global::System.Data.SqlClient.SqlTransaction Transaction { + get { + return this._transaction; + } + set { + this._transaction = value; + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + this.CommandCollection[i].Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.DeleteCommand != null))) { + this.Adapter.DeleteCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.InsertCommand != null))) { + this.Adapter.InsertCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.UpdateCommand != null))) { + this.Adapter.UpdateCommand.Transaction = this._transaction; + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected global::System.Data.SqlClient.SqlCommand[] CommandCollection { + get { + if ((this._commandCollection == null)) { + this.InitCommandCollection(); + } + return this._commandCollection; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool ClearBeforeFill { + get { + return this._clearBeforeFill; + } + set { + this._clearBeforeFill = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitAdapter() { + this._adapter = new global::System.Data.SqlClient.SqlDataAdapter(); + global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); + tableMapping.SourceTable = "Table"; + tableMapping.DataSetTable = "Component_Reel_Result"; + tableMapping.ColumnMappings.Add("idx", "idx"); + tableMapping.ColumnMappings.Add("STIME", "STIME"); + tableMapping.ColumnMappings.Add("ETIME", "ETIME"); + tableMapping.ColumnMappings.Add("PDATE", "PDATE"); + tableMapping.ColumnMappings.Add("JTYPE", "JTYPE"); + tableMapping.ColumnMappings.Add("JGUID", "JGUID"); + tableMapping.ColumnMappings.Add("SID", "SID"); + tableMapping.ColumnMappings.Add("SID0", "SID0"); + tableMapping.ColumnMappings.Add("RID", "RID"); + tableMapping.ColumnMappings.Add("RID0", "RID0"); + tableMapping.ColumnMappings.Add("RSN", "RSN"); + tableMapping.ColumnMappings.Add("QR", "QR"); + tableMapping.ColumnMappings.Add("ZPL", "ZPL"); + tableMapping.ColumnMappings.Add("POS", "POS"); + tableMapping.ColumnMappings.Add("LOC", "LOC"); + tableMapping.ColumnMappings.Add("ANGLE", "ANGLE"); + tableMapping.ColumnMappings.Add("QTY", "QTY"); + tableMapping.ColumnMappings.Add("QTY0", "QTY0"); + tableMapping.ColumnMappings.Add("VNAME", "VNAME"); + tableMapping.ColumnMappings.Add("PRNATTACH", "PRNATTACH"); + tableMapping.ColumnMappings.Add("PRNVALID", "PRNVALID"); + tableMapping.ColumnMappings.Add("wdate", "wdate"); + tableMapping.ColumnMappings.Add("VLOT", "VLOT"); + tableMapping.ColumnMappings.Add("BATCH", "BATCH"); + tableMapping.ColumnMappings.Add("-1", "qtymax"); + this._adapter.TableMappings.Add(tableMapping); + this._adapter.DeleteCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.DeleteCommand.Connection = this.Connection; + this._adapter.DeleteCommand.CommandText = "DELETE FROM [Component_Reel_Result] WHERE (([idx] = @Original_idx) AND ([STIME] =" + + " @Original_STIME) AND ((@IsNull_ETIME = 1 AND [ETIME] IS NULL) OR ([ETIME] = @Or" + + "iginal_ETIME)) AND ((@IsNull_PDATE = 1 AND [PDATE] IS NULL) OR ([PDATE] = @Origi" + + "nal_PDATE)) AND ((@IsNull_JTYPE = 1 AND [JTYPE] IS NULL) OR ([JTYPE] = @Original" + + "_JTYPE)) AND ((@IsNull_JGUID = 1 AND [JGUID] IS NULL) OR ([JGUID] = @Original_JG" + + "UID)) AND ((@IsNull_SID = 1 AND [SID] IS NULL) OR ([SID] = @Original_SID)) AND (" + + "(@IsNull_SID0 = 1 AND [SID0] IS NULL) OR ([SID0] = @Original_SID0)) AND ((@IsNul" + + "l_RID = 1 AND [RID] IS NULL) OR ([RID] = @Original_RID)) AND ((@IsNull_RID0 = 1 " + + "AND [RID0] IS NULL) OR ([RID0] = @Original_RID0)) AND ((@IsNull_RSN = 1 AND [RSN" + + "] IS NULL) OR ([RSN] = @Original_RSN)) AND ((@IsNull_QR = 1 AND [QR] IS NULL) OR" + + " ([QR] = @Original_QR)) AND ((@IsNull_ZPL = 1 AND [ZPL] IS NULL) OR ([ZPL] = @Or" + + "iginal_ZPL)) AND ((@IsNull_POS = 1 AND [POS] IS NULL) OR ([POS] = @Original_POS)" + + ") AND ((@IsNull_LOC = 1 AND [LOC] IS NULL) OR ([LOC] = @Original_LOC)) AND ((@Is" + + "Null_ANGLE = 1 AND [ANGLE] IS NULL) OR ([ANGLE] = @Original_ANGLE)) AND ((@IsNul" + + "l_QTY = 1 AND [QTY] IS NULL) OR ([QTY] = @Original_QTY)) AND ((@IsNull_QTY0 = 1 " + + "AND [QTY0] IS NULL) OR ([QTY0] = @Original_QTY0)) AND ((@IsNull_VNAME = 1 AND [V" + + "NAME] IS NULL) OR ([VNAME] = @Original_VNAME)) AND ((@IsNull_PRNATTACH = 1 AND [" + + "PRNATTACH] IS NULL) OR ([PRNATTACH] = @Original_PRNATTACH)) AND ((@IsNull_PRNVAL" + + "ID = 1 AND [PRNVALID] IS NULL) OR ([PRNVALID] = @Original_PRNVALID)) AND ([wdate" + + "] = @Original_wdate) AND ((@IsNull_VLOT = 1 AND [VLOT] IS NULL) OR ([VLOT] = @Or" + + "iginal_VLOT)) AND ((@IsNull_BATCH = 1 AND [BATCH] IS NULL) OR ([BATCH] = @Origin" + + "al_BATCH)) AND ((@IsNull_qtymax = 1 AND [qtymax] IS NULL) OR ([qtymax] = @Origin" + + "al_qtymax)))"; + this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_idx", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_STIME", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "STIME", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_ETIME", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ETIME", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_ETIME", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ETIME", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_PDATE", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PDATE", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PDATE", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PDATE", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_JTYPE", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "JTYPE", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_JTYPE", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "JTYPE", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_JGUID", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "JGUID", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_JGUID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "JGUID", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_SID", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_SID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_SID0", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID0", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_SID0", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID0", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_RID", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "RID", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_RID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "RID", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_RID0", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "RID0", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_RID0", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "RID0", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_RSN", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "RSN", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_RSN", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "RSN", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_QR", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QR", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_QR", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QR", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_ZPL", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ZPL", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_ZPL", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ZPL", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_POS", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "POS", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_POS", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "POS", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_LOC", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "LOC", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_LOC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "LOC", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_ANGLE", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ANGLE", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_ANGLE", global::System.Data.SqlDbType.Float, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ANGLE", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_QTY", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QTY", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_QTY", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QTY", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_QTY0", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QTY0", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_QTY0", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QTY0", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_VNAME", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VNAME", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_VNAME", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VNAME", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_PRNATTACH", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PRNATTACH", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PRNATTACH", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PRNATTACH", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_PRNVALID", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PRNVALID", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PRNVALID", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PRNVALID", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_VLOT", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VLOT", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_VLOT", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VLOT", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_BATCH", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "BATCH", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_BATCH", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "BATCH", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_qtymax", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "qtymax", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_qtymax", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "qtymax", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.InsertCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.InsertCommand.Connection = this.Connection; + this._adapter.InsertCommand.CommandText = @"INSERT INTO [Component_Reel_Result] ([STIME], [ETIME], [PDATE], [JTYPE], [JGUID], [SID], [SID0], [RID], [RID0], [RSN], [QR], [ZPL], [POS], [LOC], [ANGLE], [QTY], [QTY0], [VNAME], [PRNATTACH], [PRNVALID], [wdate], [VLOT], [BATCH], [qtymax]) VALUES (@STIME, @ETIME, @PDATE, @JTYPE, @JGUID, @SID, @SID0, @RID, @RID0, @RSN, @QR, @ZPL, @POS, @LOC, @ANGLE, @QTY, @QTY0, @VNAME, @PRNATTACH, @PRNVALID, @wdate, @VLOT, @BATCH, @qtymax); +SELECT idx, STIME, ETIME, PDATE, JTYPE, JGUID, SID, SID0, RID, RID0, RSN, QR, ZPL, POS, LOC, ANGLE, QTY, QTY0, VNAME, PRNATTACH, PRNVALID, wdate, VLOT, BATCH, qtymax FROM Component_Reel_Result WHERE (idx = SCOPE_IDENTITY()) ORDER BY wdate DESC"; + this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@STIME", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "STIME", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@ETIME", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ETIME", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PDATE", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PDATE", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@JTYPE", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "JTYPE", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@JGUID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "JGUID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SID0", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID0", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "RID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RID0", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "RID0", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RSN", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "RSN", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@QR", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QR", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@ZPL", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ZPL", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@POS", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "POS", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@LOC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "LOC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@ANGLE", global::System.Data.SqlDbType.Float, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ANGLE", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@QTY", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QTY", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@QTY0", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QTY0", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@VNAME", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VNAME", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PRNATTACH", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PRNATTACH", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PRNVALID", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PRNVALID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@VLOT", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VLOT", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@BATCH", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "BATCH", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@qtymax", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "qtymax", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.UpdateCommand.Connection = this.Connection; + this._adapter.UpdateCommand.CommandText = "UPDATE [Component_Reel_Result] SET [STIME] = @STIME, [ETIME] = @ETIME, [PDATE] = " + + "@PDATE, [JTYPE] = @JTYPE, [JGUID] = @JGUID, [SID] = @SID, [SID0] = @SID0, [RID] " + + "= @RID, [RID0] = @RID0, [RSN] = @RSN, [QR] = @QR, [ZPL] = @ZPL, [POS] = @POS, [L" + + "OC] = @LOC, [ANGLE] = @ANGLE, [QTY] = @QTY, [QTY0] = @QTY0, [VNAME] = @VNAME, [P" + + "RNATTACH] = @PRNATTACH, [PRNVALID] = @PRNVALID, [wdate] = @wdate, [VLOT] = @VLOT" + + ", [BATCH] = @BATCH, [qtymax] = @qtymax WHERE (([idx] = @Original_idx) AND ([STIM" + + "E] = @Original_STIME) AND ((@IsNull_ETIME = 1 AND [ETIME] IS NULL) OR ([ETIME] =" + + " @Original_ETIME)) AND ((@IsNull_PDATE = 1 AND [PDATE] IS NULL) OR ([PDATE] = @O" + + "riginal_PDATE)) AND ((@IsNull_JTYPE = 1 AND [JTYPE] IS NULL) OR ([JTYPE] = @Orig" + + "inal_JTYPE)) AND ((@IsNull_JGUID = 1 AND [JGUID] IS NULL) OR ([JGUID] = @Origina" + + "l_JGUID)) AND ((@IsNull_SID = 1 AND [SID] IS NULL) OR ([SID] = @Original_SID)) A" + + "ND ((@IsNull_SID0 = 1 AND [SID0] IS NULL) OR ([SID0] = @Original_SID0)) AND ((@I" + + "sNull_RID = 1 AND [RID] IS NULL) OR ([RID] = @Original_RID)) AND ((@IsNull_RID0 " + + "= 1 AND [RID0] IS NULL) OR ([RID0] = @Original_RID0)) AND ((@IsNull_RSN = 1 AND " + + "[RSN] IS NULL) OR ([RSN] = @Original_RSN)) AND ((@IsNull_QR = 1 AND [QR] IS NULL" + + ") OR ([QR] = @Original_QR)) AND ((@IsNull_ZPL = 1 AND [ZPL] IS NULL) OR ([ZPL] =" + + " @Original_ZPL)) AND ((@IsNull_POS = 1 AND [POS] IS NULL) OR ([POS] = @Original_" + + "POS)) AND ((@IsNull_LOC = 1 AND [LOC] IS NULL) OR ([LOC] = @Original_LOC)) AND (" + + "(@IsNull_ANGLE = 1 AND [ANGLE] IS NULL) OR ([ANGLE] = @Original_ANGLE)) AND ((@I" + + "sNull_QTY = 1 AND [QTY] IS NULL) OR ([QTY] = @Original_QTY)) AND ((@IsNull_QTY0 " + + "= 1 AND [QTY0] IS NULL) OR ([QTY0] = @Original_QTY0)) AND ((@IsNull_VNAME = 1 AN" + + "D [VNAME] IS NULL) OR ([VNAME] = @Original_VNAME)) AND ((@IsNull_PRNATTACH = 1 A" + + "ND [PRNATTACH] IS NULL) OR ([PRNATTACH] = @Original_PRNATTACH)) AND ((@IsNull_PR" + + "NVALID = 1 AND [PRNVALID] IS NULL) OR ([PRNVALID] = @Original_PRNVALID)) AND ([w" + + "date] = @Original_wdate) AND ((@IsNull_VLOT = 1 AND [VLOT] IS NULL) OR ([VLOT] =" + + " @Original_VLOT)) AND ((@IsNull_BATCH = 1 AND [BATCH] IS NULL) OR ([BATCH] = @Or" + + "iginal_BATCH)) AND ((@IsNull_qtymax = 1 AND [qtymax] IS NULL) OR ([qtymax] = @Or" + + "iginal_qtymax)));\r\nSELECT idx, STIME, ETIME, PDATE, JTYPE, JGUID, SID, SID0, RID" + + ", RID0, RSN, QR, ZPL, POS, LOC, ANGLE, QTY, QTY0, VNAME, PRNATTACH, PRNVALID, wd" + + "ate, VLOT, BATCH, qtymax FROM Component_Reel_Result WHERE (idx = @idx) ORDER BY " + + "wdate DESC"; + this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@STIME", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "STIME", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@ETIME", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ETIME", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PDATE", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PDATE", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@JTYPE", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "JTYPE", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@JGUID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "JGUID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SID0", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID0", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "RID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RID0", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "RID0", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@RSN", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "RSN", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@QR", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QR", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@ZPL", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ZPL", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@POS", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "POS", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@LOC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "LOC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@ANGLE", global::System.Data.SqlDbType.Float, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ANGLE", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@QTY", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QTY", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@QTY0", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QTY0", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@VNAME", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VNAME", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PRNATTACH", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PRNATTACH", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PRNVALID", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PRNVALID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@VLOT", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VLOT", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@BATCH", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "BATCH", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@qtymax", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "qtymax", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_idx", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_STIME", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "STIME", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_ETIME", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ETIME", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_ETIME", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ETIME", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_PDATE", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PDATE", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PDATE", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PDATE", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_JTYPE", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "JTYPE", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_JTYPE", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "JTYPE", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_JGUID", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "JGUID", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_JGUID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "JGUID", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_SID", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_SID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_SID0", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID0", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_SID0", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID0", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_RID", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "RID", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_RID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "RID", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_RID0", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "RID0", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_RID0", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "RID0", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_RSN", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "RSN", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_RSN", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "RSN", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_QR", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QR", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_QR", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QR", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_ZPL", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ZPL", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_ZPL", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ZPL", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_POS", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "POS", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_POS", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "POS", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_LOC", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "LOC", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_LOC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "LOC", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_ANGLE", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ANGLE", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_ANGLE", global::System.Data.SqlDbType.Float, 0, global::System.Data.ParameterDirection.Input, 0, 0, "ANGLE", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_QTY", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QTY", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_QTY", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QTY", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_QTY0", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QTY0", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_QTY0", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "QTY0", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_VNAME", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VNAME", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_VNAME", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VNAME", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_PRNATTACH", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PRNATTACH", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PRNATTACH", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PRNATTACH", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_PRNVALID", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PRNVALID", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PRNVALID", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PRNVALID", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_VLOT", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VLOT", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_VLOT", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VLOT", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_BATCH", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "BATCH", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_BATCH", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "BATCH", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_qtymax", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "qtymax", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_qtymax", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "qtymax", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@idx", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitConnection() { + this._connection = new global::System.Data.SqlClient.SqlConnection(); + this._connection.ConnectionString = global::ResultView.Properties.Settings.Default.cs; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private void InitCommandCollection() { + this._commandCollection = new global::System.Data.SqlClient.SqlCommand[1]; + this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[0].Connection = this.Connection; + this._commandCollection[0].CommandText = @"SELECT idx, STIME, ETIME, PDATE, JTYPE, JGUID, SID, SID0, RID, RID0, RSN, QR, ZPL, POS, LOC, ANGLE, QTY, QTY0, VNAME, PRNATTACH, PRNVALID, wdate, VLOT, BATCH, qtymax +FROM Component_Reel_Result +WHERE (MC = @mc) AND (CONVERT(varchar(10), wdate, 120) BETWEEN @sd AND @ed) AND (ISNULL(QR, '') LIKE @search) +ORDER BY wdate DESC"; + this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[0].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@mc", global::System.Data.SqlDbType.VarChar, 10, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[0].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@sd", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[0].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@ed", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[0].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@search", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] + public virtual int Fill(DataSet1.Component_Reel_ResultDataTable dataTable, string mc, string sd, string ed, string search) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((mc == null)) { + this.Adapter.SelectCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(mc)); + } + if ((sd == null)) { + throw new global::System.ArgumentNullException("sd"); + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(sd)); + } + if ((ed == null)) { + throw new global::System.ArgumentNullException("ed"); + } + else { + this.Adapter.SelectCommand.Parameters[2].Value = ((string)(ed)); + } + if ((search == null)) { + throw new global::System.ArgumentNullException("search"); + } + else { + this.Adapter.SelectCommand.Parameters[3].Value = ((string)(search)); + } + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] + public virtual DataSet1.Component_Reel_ResultDataTable GetData(string mc, string sd, string ed, string search) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((mc == null)) { + this.Adapter.SelectCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(mc)); + } + if ((sd == null)) { + throw new global::System.ArgumentNullException("sd"); + } + else { + this.Adapter.SelectCommand.Parameters[1].Value = ((string)(sd)); + } + if ((ed == null)) { + throw new global::System.ArgumentNullException("ed"); + } + else { + this.Adapter.SelectCommand.Parameters[2].Value = ((string)(ed)); + } + if ((search == null)) { + throw new global::System.ArgumentNullException("search"); + } + else { + this.Adapter.SelectCommand.Parameters[3].Value = ((string)(search)); + } + DataSet1.Component_Reel_ResultDataTable dataTable = new DataSet1.Component_Reel_ResultDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1.Component_Reel_ResultDataTable dataTable) { + return this.Adapter.Update(dataTable); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1 dataSet) { + return this.Adapter.Update(dataSet, "Component_Reel_Result"); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow dataRow) { + return this.Adapter.Update(new global::System.Data.DataRow[] { + dataRow}); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow[] dataRows) { + return this.Adapter.Update(dataRows); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, true)] + public virtual int Delete( + int Original_idx, + System.DateTime Original_STIME, + global::System.Nullable Original_ETIME, + string Original_PDATE, + string Original_JTYPE, + string Original_JGUID, + string Original_SID, + string Original_SID0, + string Original_RID, + string Original_RID0, + string Original_RSN, + string Original_QR, + string Original_ZPL, + string Original_POS, + string Original_LOC, + global::System.Nullable Original_ANGLE, + global::System.Nullable Original_QTY, + global::System.Nullable Original_QTY0, + string Original_VNAME, + global::System.Nullable Original_PRNATTACH, + global::System.Nullable Original_PRNVALID, + System.DateTime Original_wdate, + string Original_VLOT, + string Original_BATCH, + global::System.Nullable Original_qtymax) { + this.Adapter.DeleteCommand.Parameters[0].Value = ((int)(Original_idx)); + this.Adapter.DeleteCommand.Parameters[1].Value = ((System.DateTime)(Original_STIME)); + if ((Original_ETIME.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[2].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[3].Value = ((System.DateTime)(Original_ETIME.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[2].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[3].Value = global::System.DBNull.Value; + } + if ((Original_PDATE == null)) { + this.Adapter.DeleteCommand.Parameters[4].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[5].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[4].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[5].Value = ((string)(Original_PDATE)); + } + if ((Original_JTYPE == null)) { + this.Adapter.DeleteCommand.Parameters[6].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[7].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[6].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[7].Value = ((string)(Original_JTYPE)); + } + if ((Original_JGUID == null)) { + this.Adapter.DeleteCommand.Parameters[8].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[9].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[8].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[9].Value = ((string)(Original_JGUID)); + } + if ((Original_SID == null)) { + this.Adapter.DeleteCommand.Parameters[10].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[11].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[10].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[11].Value = ((string)(Original_SID)); + } + if ((Original_SID0 == null)) { + this.Adapter.DeleteCommand.Parameters[12].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[13].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[12].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[13].Value = ((string)(Original_SID0)); + } + if ((Original_RID == null)) { + this.Adapter.DeleteCommand.Parameters[14].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[15].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[14].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[15].Value = ((string)(Original_RID)); + } + if ((Original_RID0 == null)) { + this.Adapter.DeleteCommand.Parameters[16].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[17].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[16].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[17].Value = ((string)(Original_RID0)); + } + if ((Original_RSN == null)) { + this.Adapter.DeleteCommand.Parameters[18].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[19].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[18].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[19].Value = ((string)(Original_RSN)); + } + if ((Original_QR == null)) { + this.Adapter.DeleteCommand.Parameters[20].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[21].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[20].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[21].Value = ((string)(Original_QR)); + } + if ((Original_ZPL == null)) { + this.Adapter.DeleteCommand.Parameters[22].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[23].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[22].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[23].Value = ((string)(Original_ZPL)); + } + if ((Original_POS == null)) { + this.Adapter.DeleteCommand.Parameters[24].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[25].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[24].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[25].Value = ((string)(Original_POS)); + } + if ((Original_LOC == null)) { + this.Adapter.DeleteCommand.Parameters[26].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[27].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[26].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[27].Value = ((string)(Original_LOC)); + } + if ((Original_ANGLE.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[28].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[29].Value = ((double)(Original_ANGLE.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[28].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[29].Value = global::System.DBNull.Value; + } + if ((Original_QTY.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[30].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[31].Value = ((int)(Original_QTY.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[30].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[31].Value = global::System.DBNull.Value; + } + if ((Original_QTY0.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[32].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[33].Value = ((int)(Original_QTY0.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[32].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[33].Value = global::System.DBNull.Value; + } + if ((Original_VNAME == null)) { + this.Adapter.DeleteCommand.Parameters[34].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[35].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[34].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[35].Value = ((string)(Original_VNAME)); + } + if ((Original_PRNATTACH.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[36].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[37].Value = ((bool)(Original_PRNATTACH.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[36].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[37].Value = global::System.DBNull.Value; + } + if ((Original_PRNVALID.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[38].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[39].Value = ((bool)(Original_PRNVALID.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[38].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[39].Value = global::System.DBNull.Value; + } + this.Adapter.DeleteCommand.Parameters[40].Value = ((System.DateTime)(Original_wdate)); + if ((Original_VLOT == null)) { + this.Adapter.DeleteCommand.Parameters[41].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[42].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[41].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[42].Value = ((string)(Original_VLOT)); + } + if ((Original_BATCH == null)) { + this.Adapter.DeleteCommand.Parameters[43].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[44].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[43].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[44].Value = ((string)(Original_BATCH)); + } + if ((Original_qtymax.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[45].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[46].Value = ((int)(Original_qtymax.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[45].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[46].Value = global::System.DBNull.Value; + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; + if (((this.Adapter.DeleteCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.DeleteCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.DeleteCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.DeleteCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] + public virtual int Insert( + System.DateTime STIME, + global::System.Nullable ETIME, + string PDATE, + string JTYPE, + string JGUID, + string SID, + string SID0, + string RID, + string RID0, + string RSN, + string QR, + string ZPL, + string POS, + string LOC, + global::System.Nullable ANGLE, + global::System.Nullable QTY, + global::System.Nullable QTY0, + string VNAME, + global::System.Nullable PRNATTACH, + global::System.Nullable PRNVALID, + System.DateTime wdate, + string VLOT, + string BATCH, + global::System.Nullable qtymax) { + this.Adapter.InsertCommand.Parameters[0].Value = ((System.DateTime)(STIME)); + if ((ETIME.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[1].Value = ((System.DateTime)(ETIME.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; + } + if ((PDATE == null)) { + this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[2].Value = ((string)(PDATE)); + } + if ((JTYPE == null)) { + this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[3].Value = ((string)(JTYPE)); + } + if ((JGUID == null)) { + this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[4].Value = ((string)(JGUID)); + } + if ((SID == null)) { + this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[5].Value = ((string)(SID)); + } + if ((SID0 == null)) { + this.Adapter.InsertCommand.Parameters[6].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[6].Value = ((string)(SID0)); + } + if ((RID == null)) { + this.Adapter.InsertCommand.Parameters[7].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[7].Value = ((string)(RID)); + } + if ((RID0 == null)) { + this.Adapter.InsertCommand.Parameters[8].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[8].Value = ((string)(RID0)); + } + if ((RSN == null)) { + this.Adapter.InsertCommand.Parameters[9].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[9].Value = ((string)(RSN)); + } + if ((QR == null)) { + this.Adapter.InsertCommand.Parameters[10].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[10].Value = ((string)(QR)); + } + if ((ZPL == null)) { + this.Adapter.InsertCommand.Parameters[11].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[11].Value = ((string)(ZPL)); + } + if ((POS == null)) { + this.Adapter.InsertCommand.Parameters[12].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[12].Value = ((string)(POS)); + } + if ((LOC == null)) { + this.Adapter.InsertCommand.Parameters[13].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[13].Value = ((string)(LOC)); + } + if ((ANGLE.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[14].Value = ((double)(ANGLE.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[14].Value = global::System.DBNull.Value; + } + if ((QTY.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[15].Value = ((int)(QTY.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[15].Value = global::System.DBNull.Value; + } + if ((QTY0.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[16].Value = ((int)(QTY0.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[16].Value = global::System.DBNull.Value; + } + if ((VNAME == null)) { + this.Adapter.InsertCommand.Parameters[17].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[17].Value = ((string)(VNAME)); + } + if ((PRNATTACH.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[18].Value = ((bool)(PRNATTACH.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[18].Value = global::System.DBNull.Value; + } + if ((PRNVALID.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[19].Value = ((bool)(PRNVALID.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[19].Value = global::System.DBNull.Value; + } + this.Adapter.InsertCommand.Parameters[20].Value = ((System.DateTime)(wdate)); + if ((VLOT == null)) { + this.Adapter.InsertCommand.Parameters[21].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[21].Value = ((string)(VLOT)); + } + if ((BATCH == null)) { + this.Adapter.InsertCommand.Parameters[22].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[22].Value = ((string)(BATCH)); + } + if ((qtymax.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[23].Value = ((int)(qtymax.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[23].Value = global::System.DBNull.Value; + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; + if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.InsertCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.InsertCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update( + System.DateTime STIME, + global::System.Nullable ETIME, + string PDATE, + string JTYPE, + string JGUID, + string SID, + string SID0, + string RID, + string RID0, + string RSN, + string QR, + string ZPL, + string POS, + string LOC, + global::System.Nullable ANGLE, + global::System.Nullable QTY, + global::System.Nullable QTY0, + string VNAME, + global::System.Nullable PRNATTACH, + global::System.Nullable PRNVALID, + System.DateTime wdate, + string VLOT, + string BATCH, + global::System.Nullable qtymax, + int Original_idx, + System.DateTime Original_STIME, + global::System.Nullable Original_ETIME, + string Original_PDATE, + string Original_JTYPE, + string Original_JGUID, + string Original_SID, + string Original_SID0, + string Original_RID, + string Original_RID0, + string Original_RSN, + string Original_QR, + string Original_ZPL, + string Original_POS, + string Original_LOC, + global::System.Nullable Original_ANGLE, + global::System.Nullable Original_QTY, + global::System.Nullable Original_QTY0, + string Original_VNAME, + global::System.Nullable Original_PRNATTACH, + global::System.Nullable Original_PRNVALID, + System.DateTime Original_wdate, + string Original_VLOT, + string Original_BATCH, + global::System.Nullable Original_qtymax, + int idx) { + this.Adapter.UpdateCommand.Parameters[0].Value = ((System.DateTime)(STIME)); + if ((ETIME.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[1].Value = ((System.DateTime)(ETIME.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[1].Value = global::System.DBNull.Value; + } + if ((PDATE == null)) { + this.Adapter.UpdateCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[2].Value = ((string)(PDATE)); + } + if ((JTYPE == null)) { + this.Adapter.UpdateCommand.Parameters[3].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[3].Value = ((string)(JTYPE)); + } + if ((JGUID == null)) { + this.Adapter.UpdateCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[4].Value = ((string)(JGUID)); + } + if ((SID == null)) { + this.Adapter.UpdateCommand.Parameters[5].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[5].Value = ((string)(SID)); + } + if ((SID0 == null)) { + this.Adapter.UpdateCommand.Parameters[6].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[6].Value = ((string)(SID0)); + } + if ((RID == null)) { + this.Adapter.UpdateCommand.Parameters[7].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[7].Value = ((string)(RID)); + } + if ((RID0 == null)) { + this.Adapter.UpdateCommand.Parameters[8].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[8].Value = ((string)(RID0)); + } + if ((RSN == null)) { + this.Adapter.UpdateCommand.Parameters[9].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[9].Value = ((string)(RSN)); + } + if ((QR == null)) { + this.Adapter.UpdateCommand.Parameters[10].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[10].Value = ((string)(QR)); + } + if ((ZPL == null)) { + this.Adapter.UpdateCommand.Parameters[11].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[11].Value = ((string)(ZPL)); + } + if ((POS == null)) { + this.Adapter.UpdateCommand.Parameters[12].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[12].Value = ((string)(POS)); + } + if ((LOC == null)) { + this.Adapter.UpdateCommand.Parameters[13].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[13].Value = ((string)(LOC)); + } + if ((ANGLE.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[14].Value = ((double)(ANGLE.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[14].Value = global::System.DBNull.Value; + } + if ((QTY.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[15].Value = ((int)(QTY.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[15].Value = global::System.DBNull.Value; + } + if ((QTY0.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[16].Value = ((int)(QTY0.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[16].Value = global::System.DBNull.Value; + } + if ((VNAME == null)) { + this.Adapter.UpdateCommand.Parameters[17].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[17].Value = ((string)(VNAME)); + } + if ((PRNATTACH.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[18].Value = ((bool)(PRNATTACH.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[18].Value = global::System.DBNull.Value; + } + if ((PRNVALID.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[19].Value = ((bool)(PRNVALID.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[19].Value = global::System.DBNull.Value; + } + this.Adapter.UpdateCommand.Parameters[20].Value = ((System.DateTime)(wdate)); + if ((VLOT == null)) { + this.Adapter.UpdateCommand.Parameters[21].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[21].Value = ((string)(VLOT)); + } + if ((BATCH == null)) { + this.Adapter.UpdateCommand.Parameters[22].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[22].Value = ((string)(BATCH)); + } + if ((qtymax.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[23].Value = ((int)(qtymax.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[23].Value = global::System.DBNull.Value; + } + this.Adapter.UpdateCommand.Parameters[24].Value = ((int)(Original_idx)); + this.Adapter.UpdateCommand.Parameters[25].Value = ((System.DateTime)(Original_STIME)); + if ((Original_ETIME.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[26].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[27].Value = ((System.DateTime)(Original_ETIME.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[26].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[27].Value = global::System.DBNull.Value; + } + if ((Original_PDATE == null)) { + this.Adapter.UpdateCommand.Parameters[28].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[29].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[28].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[29].Value = ((string)(Original_PDATE)); + } + if ((Original_JTYPE == null)) { + this.Adapter.UpdateCommand.Parameters[30].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[31].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[30].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[31].Value = ((string)(Original_JTYPE)); + } + if ((Original_JGUID == null)) { + this.Adapter.UpdateCommand.Parameters[32].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[33].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[32].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[33].Value = ((string)(Original_JGUID)); + } + if ((Original_SID == null)) { + this.Adapter.UpdateCommand.Parameters[34].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[35].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[34].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[35].Value = ((string)(Original_SID)); + } + if ((Original_SID0 == null)) { + this.Adapter.UpdateCommand.Parameters[36].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[37].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[36].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[37].Value = ((string)(Original_SID0)); + } + if ((Original_RID == null)) { + this.Adapter.UpdateCommand.Parameters[38].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[39].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[38].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[39].Value = ((string)(Original_RID)); + } + if ((Original_RID0 == null)) { + this.Adapter.UpdateCommand.Parameters[40].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[41].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[40].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[41].Value = ((string)(Original_RID0)); + } + if ((Original_RSN == null)) { + this.Adapter.UpdateCommand.Parameters[42].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[43].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[42].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[43].Value = ((string)(Original_RSN)); + } + if ((Original_QR == null)) { + this.Adapter.UpdateCommand.Parameters[44].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[45].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[44].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[45].Value = ((string)(Original_QR)); + } + if ((Original_ZPL == null)) { + this.Adapter.UpdateCommand.Parameters[46].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[47].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[46].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[47].Value = ((string)(Original_ZPL)); + } + if ((Original_POS == null)) { + this.Adapter.UpdateCommand.Parameters[48].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[49].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[48].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[49].Value = ((string)(Original_POS)); + } + if ((Original_LOC == null)) { + this.Adapter.UpdateCommand.Parameters[50].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[51].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[50].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[51].Value = ((string)(Original_LOC)); + } + if ((Original_ANGLE.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[52].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[53].Value = ((double)(Original_ANGLE.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[52].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[53].Value = global::System.DBNull.Value; + } + if ((Original_QTY.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[54].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[55].Value = ((int)(Original_QTY.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[54].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[55].Value = global::System.DBNull.Value; + } + if ((Original_QTY0.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[56].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[57].Value = ((int)(Original_QTY0.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[56].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[57].Value = global::System.DBNull.Value; + } + if ((Original_VNAME == null)) { + this.Adapter.UpdateCommand.Parameters[58].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[59].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[58].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[59].Value = ((string)(Original_VNAME)); + } + if ((Original_PRNATTACH.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[60].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[61].Value = ((bool)(Original_PRNATTACH.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[60].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[61].Value = global::System.DBNull.Value; + } + if ((Original_PRNVALID.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[62].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[63].Value = ((bool)(Original_PRNVALID.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[62].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[63].Value = global::System.DBNull.Value; + } + this.Adapter.UpdateCommand.Parameters[64].Value = ((System.DateTime)(Original_wdate)); + if ((Original_VLOT == null)) { + this.Adapter.UpdateCommand.Parameters[65].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[66].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[65].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[66].Value = ((string)(Original_VLOT)); + } + if ((Original_BATCH == null)) { + this.Adapter.UpdateCommand.Parameters[67].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[68].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[67].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[68].Value = ((string)(Original_BATCH)); + } + if ((Original_qtymax.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[69].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[70].Value = ((int)(Original_qtymax.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[69].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[70].Value = global::System.DBNull.Value; + } + this.Adapter.UpdateCommand.Parameters[71].Value = ((int)(idx)); + global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; + if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.UpdateCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.UpdateCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update( + System.DateTime STIME, + global::System.Nullable ETIME, + string PDATE, + string JTYPE, + string JGUID, + string SID, + string SID0, + string RID, + string RID0, + string RSN, + string QR, + string ZPL, + string POS, + string LOC, + global::System.Nullable ANGLE, + global::System.Nullable QTY, + global::System.Nullable QTY0, + string VNAME, + global::System.Nullable PRNATTACH, + global::System.Nullable PRNVALID, + System.DateTime wdate, + string VLOT, + string BATCH, + global::System.Nullable qtymax, + int Original_idx, + System.DateTime Original_STIME, + global::System.Nullable Original_ETIME, + string Original_PDATE, + string Original_JTYPE, + string Original_JGUID, + string Original_SID, + string Original_SID0, + string Original_RID, + string Original_RID0, + string Original_RSN, + string Original_QR, + string Original_ZPL, + string Original_POS, + string Original_LOC, + global::System.Nullable Original_ANGLE, + global::System.Nullable Original_QTY, + global::System.Nullable Original_QTY0, + string Original_VNAME, + global::System.Nullable Original_PRNATTACH, + global::System.Nullable Original_PRNVALID, + System.DateTime Original_wdate, + string Original_VLOT, + string Original_BATCH, + global::System.Nullable Original_qtymax) { + return this.Update(STIME, ETIME, PDATE, JTYPE, JGUID, SID, SID0, RID, RID0, RSN, QR, ZPL, POS, LOC, ANGLE, QTY, QTY0, VNAME, PRNATTACH, PRNVALID, wdate, VLOT, BATCH, qtymax, Original_idx, Original_STIME, Original_ETIME, Original_PDATE, Original_JTYPE, Original_JGUID, Original_SID, Original_SID0, Original_RID, Original_RID0, Original_RSN, Original_QR, Original_ZPL, Original_POS, Original_LOC, Original_ANGLE, Original_QTY, Original_QTY0, Original_VNAME, Original_PRNATTACH, Original_PRNVALID, Original_wdate, Original_VLOT, Original_BATCH, Original_qtymax, Original_idx); + } + } + + /// + ///TableAdapterManager is used to coordinate TableAdapters in the dataset to enable Hierarchical Update scenarios + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterManagerDesigner, Microsoft.VSD" + + "esigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapterManager")] + public partial class TableAdapterManager : global::System.ComponentModel.Component { + + private UpdateOrderOption _updateOrder; + + private Component_Reel_ResultTableAdapter _component_Reel_ResultTableAdapter; + + private bool _backupDataSetBeforeUpdate; + + private global::System.Data.IDbConnection _connection; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public UpdateOrderOption UpdateOrder { + get { + return this._updateOrder; + } + set { + this._updateOrder = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.EditorAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterManagerPropertyEditor, Microso" + + "ft.VSDesigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3" + + "a", "System.Drawing.Design.UITypeEditor")] + public Component_Reel_ResultTableAdapter Component_Reel_ResultTableAdapter { + get { + return this._component_Reel_ResultTableAdapter; + } + set { + this._component_Reel_ResultTableAdapter = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public bool BackupDataSetBeforeUpdate { + get { + return this._backupDataSetBeforeUpdate; + } + set { + this._backupDataSetBeforeUpdate = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public global::System.Data.IDbConnection Connection { + get { + if ((this._connection != null)) { + return this._connection; + } + if (((this._component_Reel_ResultTableAdapter != null) + && (this._component_Reel_ResultTableAdapter.Connection != null))) { + return this._component_Reel_ResultTableAdapter.Connection; + } + return null; + } + set { + this._connection = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int TableAdapterInstanceCount { + get { + int count = 0; + if ((this._component_Reel_ResultTableAdapter != null)) { + count = (count + 1); + } + return count; + } + } + + /// + ///Update rows in top-down order. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private int UpdateUpdatedRows(DataSet1 dataSet, global::System.Collections.Generic.List allChangedRows, global::System.Collections.Generic.List allAddedRows) { + int result = 0; + if ((this._component_Reel_ResultTableAdapter != null)) { + global::System.Data.DataRow[] updatedRows = dataSet.Component_Reel_Result.Select(null, null, global::System.Data.DataViewRowState.ModifiedCurrent); + updatedRows = this.GetRealUpdatedRows(updatedRows, allAddedRows); + if (((updatedRows != null) + && (0 < updatedRows.Length))) { + result = (result + this._component_Reel_ResultTableAdapter.Update(updatedRows)); + allChangedRows.AddRange(updatedRows); + } + } + return result; + } + + /// + ///Insert rows in top-down order. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private int UpdateInsertedRows(DataSet1 dataSet, global::System.Collections.Generic.List allAddedRows) { + int result = 0; + if ((this._component_Reel_ResultTableAdapter != null)) { + global::System.Data.DataRow[] addedRows = dataSet.Component_Reel_Result.Select(null, null, global::System.Data.DataViewRowState.Added); + if (((addedRows != null) + && (0 < addedRows.Length))) { + result = (result + this._component_Reel_ResultTableAdapter.Update(addedRows)); + allAddedRows.AddRange(addedRows); + } + } + return result; + } + + /// + ///Delete rows in bottom-up order. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private int UpdateDeletedRows(DataSet1 dataSet, global::System.Collections.Generic.List allChangedRows) { + int result = 0; + if ((this._component_Reel_ResultTableAdapter != null)) { + global::System.Data.DataRow[] deletedRows = dataSet.Component_Reel_Result.Select(null, null, global::System.Data.DataViewRowState.Deleted); + if (((deletedRows != null) + && (0 < deletedRows.Length))) { + result = (result + this._component_Reel_ResultTableAdapter.Update(deletedRows)); + allChangedRows.AddRange(deletedRows); + } + } + return result; + } + + /// + ///Remove inserted rows that become updated rows after calling TableAdapter.Update(inserted rows) first + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private global::System.Data.DataRow[] GetRealUpdatedRows(global::System.Data.DataRow[] updatedRows, global::System.Collections.Generic.List allAddedRows) { + if (((updatedRows == null) + || (updatedRows.Length < 1))) { + return updatedRows; + } + if (((allAddedRows == null) + || (allAddedRows.Count < 1))) { + return updatedRows; + } + global::System.Collections.Generic.List realUpdatedRows = new global::System.Collections.Generic.List(); + for (int i = 0; (i < updatedRows.Length); i = (i + 1)) { + global::System.Data.DataRow row = updatedRows[i]; + if ((allAddedRows.Contains(row) == false)) { + realUpdatedRows.Add(row); + } + } + return realUpdatedRows.ToArray(); + } + + /// + ///Update all changes to the dataset. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public virtual int UpdateAll(DataSet1 dataSet) { + if ((dataSet == null)) { + throw new global::System.ArgumentNullException("dataSet"); + } + if ((dataSet.HasChanges() == false)) { + return 0; + } + if (((this._component_Reel_ResultTableAdapter != null) + && (this.MatchTableAdapterConnection(this._component_Reel_ResultTableAdapter.Connection) == false))) { + throw new global::System.ArgumentException("TableAdapterManager에서 관리하는 모든 TableAdapter에는 동일한 연결 문자열을 사용해야 합니다."); + } + global::System.Data.IDbConnection workConnection = this.Connection; + if ((workConnection == null)) { + throw new global::System.ApplicationException("TableAdapterManager에 연결 정보가 없습니다. 각 TableAdapterManager TableAdapter 속성을 올바른 Tabl" + + "eAdapter 인스턴스로 설정하십시오."); + } + bool workConnOpened = false; + if (((workConnection.State & global::System.Data.ConnectionState.Broken) + == global::System.Data.ConnectionState.Broken)) { + workConnection.Close(); + } + if ((workConnection.State == global::System.Data.ConnectionState.Closed)) { + workConnection.Open(); + workConnOpened = true; + } + global::System.Data.IDbTransaction workTransaction = workConnection.BeginTransaction(); + if ((workTransaction == null)) { + throw new global::System.ApplicationException("트랜잭션을 시작할 수 없습니다. 현재 데이터 연결에서 트랜잭션이 지원되지 않거나 현재 상태에서 트랜잭션을 시작할 수 없습니다."); + } + global::System.Collections.Generic.List allChangedRows = new global::System.Collections.Generic.List(); + global::System.Collections.Generic.List allAddedRows = new global::System.Collections.Generic.List(); + global::System.Collections.Generic.List adaptersWithAcceptChangesDuringUpdate = new global::System.Collections.Generic.List(); + global::System.Collections.Generic.Dictionary revertConnections = new global::System.Collections.Generic.Dictionary(); + int result = 0; + global::System.Data.DataSet backupDataSet = null; + if (this.BackupDataSetBeforeUpdate) { + backupDataSet = new global::System.Data.DataSet(); + backupDataSet.Merge(dataSet); + } + try { + // ---- Prepare for update ----------- + // + if ((this._component_Reel_ResultTableAdapter != null)) { + revertConnections.Add(this._component_Reel_ResultTableAdapter, this._component_Reel_ResultTableAdapter.Connection); + this._component_Reel_ResultTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(workConnection)); + this._component_Reel_ResultTableAdapter.Transaction = ((global::System.Data.SqlClient.SqlTransaction)(workTransaction)); + if (this._component_Reel_ResultTableAdapter.Adapter.AcceptChangesDuringUpdate) { + this._component_Reel_ResultTableAdapter.Adapter.AcceptChangesDuringUpdate = false; + adaptersWithAcceptChangesDuringUpdate.Add(this._component_Reel_ResultTableAdapter.Adapter); + } + } + // + //---- Perform updates ----------- + // + if ((this.UpdateOrder == UpdateOrderOption.UpdateInsertDelete)) { + result = (result + this.UpdateUpdatedRows(dataSet, allChangedRows, allAddedRows)); + result = (result + this.UpdateInsertedRows(dataSet, allAddedRows)); + } + else { + result = (result + this.UpdateInsertedRows(dataSet, allAddedRows)); + result = (result + this.UpdateUpdatedRows(dataSet, allChangedRows, allAddedRows)); + } + result = (result + this.UpdateDeletedRows(dataSet, allChangedRows)); + // + //---- Commit updates ----------- + // + workTransaction.Commit(); + if ((0 < allAddedRows.Count)) { + global::System.Data.DataRow[] rows = new System.Data.DataRow[allAddedRows.Count]; + allAddedRows.CopyTo(rows); + for (int i = 0; (i < rows.Length); i = (i + 1)) { + global::System.Data.DataRow row = rows[i]; + row.AcceptChanges(); + } + } + if ((0 < allChangedRows.Count)) { + global::System.Data.DataRow[] rows = new System.Data.DataRow[allChangedRows.Count]; + allChangedRows.CopyTo(rows); + for (int i = 0; (i < rows.Length); i = (i + 1)) { + global::System.Data.DataRow row = rows[i]; + row.AcceptChanges(); + } + } + } + catch (global::System.Exception ex) { + workTransaction.Rollback(); + // ---- Restore the dataset ----------- + if (this.BackupDataSetBeforeUpdate) { + global::System.Diagnostics.Debug.Assert((backupDataSet != null)); + dataSet.Clear(); + dataSet.Merge(backupDataSet); + } + else { + if ((0 < allAddedRows.Count)) { + global::System.Data.DataRow[] rows = new System.Data.DataRow[allAddedRows.Count]; + allAddedRows.CopyTo(rows); + for (int i = 0; (i < rows.Length); i = (i + 1)) { + global::System.Data.DataRow row = rows[i]; + row.AcceptChanges(); + row.SetAdded(); + } + } + } + throw ex; + } + finally { + if (workConnOpened) { + workConnection.Close(); + } + if ((this._component_Reel_ResultTableAdapter != null)) { + this._component_Reel_ResultTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(revertConnections[this._component_Reel_ResultTableAdapter])); + this._component_Reel_ResultTableAdapter.Transaction = null; + } + if ((0 < adaptersWithAcceptChangesDuringUpdate.Count)) { + global::System.Data.Common.DataAdapter[] adapters = new System.Data.Common.DataAdapter[adaptersWithAcceptChangesDuringUpdate.Count]; + adaptersWithAcceptChangesDuringUpdate.CopyTo(adapters); + for (int i = 0; (i < adapters.Length); i = (i + 1)) { + global::System.Data.Common.DataAdapter adapter = adapters[i]; + adapter.AcceptChangesDuringUpdate = true; + } + } + } + return result; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected virtual void SortSelfReferenceRows(global::System.Data.DataRow[] rows, global::System.Data.DataRelation relation, bool childFirst) { + global::System.Array.Sort(rows, new SelfReferenceComparer(relation, childFirst)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + protected virtual bool MatchTableAdapterConnection(global::System.Data.IDbConnection inputConnection) { + if ((this._connection != null)) { + return true; + } + if (((this.Connection == null) + || (inputConnection == null))) { + return true; + } + if (string.Equals(this.Connection.ConnectionString, inputConnection.ConnectionString, global::System.StringComparison.Ordinal)) { + return true; + } + return false; + } + + /// + ///Update Order Option + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public enum UpdateOrderOption { + + InsertUpdateDelete = 0, + + UpdateInsertDelete = 1, + } + + /// + ///Used to sort self-referenced table's rows + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private class SelfReferenceComparer : object, global::System.Collections.Generic.IComparer { + + private global::System.Data.DataRelation _relation; + + private int _childFirst; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + internal SelfReferenceComparer(global::System.Data.DataRelation relation, bool childFirst) { + this._relation = relation; + if (childFirst) { + this._childFirst = -1; + } + else { + this._childFirst = 1; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + private global::System.Data.DataRow GetRoot(global::System.Data.DataRow row, out int distance) { + global::System.Diagnostics.Debug.Assert((row != null)); + global::System.Data.DataRow root = row; + distance = 0; + + global::System.Collections.Generic.IDictionary traversedRows = new global::System.Collections.Generic.Dictionary(); + traversedRows[row] = row; + + global::System.Data.DataRow parent = row.GetParentRow(this._relation, global::System.Data.DataRowVersion.Default); + for ( + ; ((parent != null) + && (traversedRows.ContainsKey(parent) == false)); + ) { + distance = (distance + 1); + root = parent; + traversedRows[parent] = parent; + parent = parent.GetParentRow(this._relation, global::System.Data.DataRowVersion.Default); + } + + if ((distance == 0)) { + traversedRows.Clear(); + traversedRows[row] = row; + parent = row.GetParentRow(this._relation, global::System.Data.DataRowVersion.Original); + for ( + ; ((parent != null) + && (traversedRows.ContainsKey(parent) == false)); + ) { + distance = (distance + 1); + root = parent; + traversedRows[parent] = parent; + parent = parent.GetParentRow(this._relation, global::System.Data.DataRowVersion.Original); + } + } + + return root; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "16.0.0.0")] + public int Compare(global::System.Data.DataRow row1, global::System.Data.DataRow row2) { + if (object.ReferenceEquals(row1, row2)) { + return 0; + } + if ((row1 == null)) { + return -1; + } + if ((row2 == null)) { + return 1; + } + + int distance1 = 0; + global::System.Data.DataRow root1 = this.GetRoot(row1, out distance1); + + int distance2 = 0; + global::System.Data.DataRow root2 = this.GetRoot(row2, out distance2); + + if (object.ReferenceEquals(root1, root2)) { + return (this._childFirst * distance1.CompareTo(distance2)); + } + else { + global::System.Diagnostics.Debug.Assert(((root1.Table != null) + && (root2.Table != null))); + if ((root1.Table.Rows.IndexOf(root1) < root2.Table.Rows.IndexOf(root2))) { + return -1; + } + else { + return 1; + } + } + } + } + } +} + +#pragma warning restore 1591 \ No newline at end of file diff --git a/Handler/ResultView/DataSet1.xsc b/Handler/ResultView/DataSet1.xsc new file mode 100644 index 0000000..05b0199 --- /dev/null +++ b/Handler/ResultView/DataSet1.xsc @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/Handler/ResultView/DataSet1.xsd b/Handler/ResultView/DataSet1.xsd new file mode 100644 index 0000000..82deb60 --- /dev/null +++ b/Handler/ResultView/DataSet1.xsd @@ -0,0 +1,360 @@ + + + + + + + + + + + + + + + DELETE FROM [Component_Reel_Result] WHERE (([idx] = @Original_idx) AND ([STIME] = @Original_STIME) AND ((@IsNull_ETIME = 1 AND [ETIME] IS NULL) OR ([ETIME] = @Original_ETIME)) AND ((@IsNull_PDATE = 1 AND [PDATE] IS NULL) OR ([PDATE] = @Original_PDATE)) AND ((@IsNull_JTYPE = 1 AND [JTYPE] IS NULL) OR ([JTYPE] = @Original_JTYPE)) AND ((@IsNull_JGUID = 1 AND [JGUID] IS NULL) OR ([JGUID] = @Original_JGUID)) AND ((@IsNull_SID = 1 AND [SID] IS NULL) OR ([SID] = @Original_SID)) AND ((@IsNull_SID0 = 1 AND [SID0] IS NULL) OR ([SID0] = @Original_SID0)) AND ((@IsNull_RID = 1 AND [RID] IS NULL) OR ([RID] = @Original_RID)) AND ((@IsNull_RID0 = 1 AND [RID0] IS NULL) OR ([RID0] = @Original_RID0)) AND ((@IsNull_RSN = 1 AND [RSN] IS NULL) OR ([RSN] = @Original_RSN)) AND ((@IsNull_QR = 1 AND [QR] IS NULL) OR ([QR] = @Original_QR)) AND ((@IsNull_ZPL = 1 AND [ZPL] IS NULL) OR ([ZPL] = @Original_ZPL)) AND ((@IsNull_POS = 1 AND [POS] IS NULL) OR ([POS] = @Original_POS)) AND ((@IsNull_LOC = 1 AND [LOC] IS NULL) OR ([LOC] = @Original_LOC)) AND ((@IsNull_ANGLE = 1 AND [ANGLE] IS NULL) OR ([ANGLE] = @Original_ANGLE)) AND ((@IsNull_QTY = 1 AND [QTY] IS NULL) OR ([QTY] = @Original_QTY)) AND ((@IsNull_QTY0 = 1 AND [QTY0] IS NULL) OR ([QTY0] = @Original_QTY0)) AND ((@IsNull_VNAME = 1 AND [VNAME] IS NULL) OR ([VNAME] = @Original_VNAME)) AND ((@IsNull_PRNATTACH = 1 AND [PRNATTACH] IS NULL) OR ([PRNATTACH] = @Original_PRNATTACH)) AND ((@IsNull_PRNVALID = 1 AND [PRNVALID] IS NULL) OR ([PRNVALID] = @Original_PRNVALID)) AND ([wdate] = @Original_wdate) AND ((@IsNull_VLOT = 1 AND [VLOT] IS NULL) OR ([VLOT] = @Original_VLOT)) AND ((@IsNull_BATCH = 1 AND [BATCH] IS NULL) OR ([BATCH] = @Original_BATCH)) AND ((@IsNull_qtymax = 1 AND [qtymax] IS NULL) OR ([qtymax] = @Original_qtymax))) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO [Component_Reel_Result] ([STIME], [ETIME], [PDATE], [JTYPE], [JGUID], [SID], [SID0], [RID], [RID0], [RSN], [QR], [ZPL], [POS], [LOC], [ANGLE], [QTY], [QTY0], [VNAME], [PRNATTACH], [PRNVALID], [wdate], [VLOT], [BATCH], [qtymax]) VALUES (@STIME, @ETIME, @PDATE, @JTYPE, @JGUID, @SID, @SID0, @RID, @RID0, @RSN, @QR, @ZPL, @POS, @LOC, @ANGLE, @QTY, @QTY0, @VNAME, @PRNATTACH, @PRNVALID, @wdate, @VLOT, @BATCH, @qtymax); +SELECT idx, STIME, ETIME, PDATE, JTYPE, JGUID, SID, SID0, RID, RID0, RSN, QR, ZPL, POS, LOC, ANGLE, QTY, QTY0, VNAME, PRNATTACH, PRNVALID, wdate, VLOT, BATCH, qtymax FROM Component_Reel_Result WHERE (idx = SCOPE_IDENTITY()) ORDER BY wdate DESC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT idx, STIME, ETIME, PDATE, JTYPE, JGUID, SID, SID0, RID, RID0, RSN, QR, ZPL, POS, LOC, ANGLE, QTY, QTY0, VNAME, PRNATTACH, PRNVALID, wdate, VLOT, BATCH, qtymax +FROM Component_Reel_Result +WHERE (MC = @mc) AND (CONVERT(varchar(10), wdate, 120) BETWEEN @sd AND @ed) AND (ISNULL(QR, '') LIKE @search) +ORDER BY wdate DESC + + + + + + + + + + + UPDATE [Component_Reel_Result] SET [STIME] = @STIME, [ETIME] = @ETIME, [PDATE] = @PDATE, [JTYPE] = @JTYPE, [JGUID] = @JGUID, [SID] = @SID, [SID0] = @SID0, [RID] = @RID, [RID0] = @RID0, [RSN] = @RSN, [QR] = @QR, [ZPL] = @ZPL, [POS] = @POS, [LOC] = @LOC, [ANGLE] = @ANGLE, [QTY] = @QTY, [QTY0] = @QTY0, [VNAME] = @VNAME, [PRNATTACH] = @PRNATTACH, [PRNVALID] = @PRNVALID, [wdate] = @wdate, [VLOT] = @VLOT, [BATCH] = @BATCH, [qtymax] = @qtymax WHERE (([idx] = @Original_idx) AND ([STIME] = @Original_STIME) AND ((@IsNull_ETIME = 1 AND [ETIME] IS NULL) OR ([ETIME] = @Original_ETIME)) AND ((@IsNull_PDATE = 1 AND [PDATE] IS NULL) OR ([PDATE] = @Original_PDATE)) AND ((@IsNull_JTYPE = 1 AND [JTYPE] IS NULL) OR ([JTYPE] = @Original_JTYPE)) AND ((@IsNull_JGUID = 1 AND [JGUID] IS NULL) OR ([JGUID] = @Original_JGUID)) AND ((@IsNull_SID = 1 AND [SID] IS NULL) OR ([SID] = @Original_SID)) AND ((@IsNull_SID0 = 1 AND [SID0] IS NULL) OR ([SID0] = @Original_SID0)) AND ((@IsNull_RID = 1 AND [RID] IS NULL) OR ([RID] = @Original_RID)) AND ((@IsNull_RID0 = 1 AND [RID0] IS NULL) OR ([RID0] = @Original_RID0)) AND ((@IsNull_RSN = 1 AND [RSN] IS NULL) OR ([RSN] = @Original_RSN)) AND ((@IsNull_QR = 1 AND [QR] IS NULL) OR ([QR] = @Original_QR)) AND ((@IsNull_ZPL = 1 AND [ZPL] IS NULL) OR ([ZPL] = @Original_ZPL)) AND ((@IsNull_POS = 1 AND [POS] IS NULL) OR ([POS] = @Original_POS)) AND ((@IsNull_LOC = 1 AND [LOC] IS NULL) OR ([LOC] = @Original_LOC)) AND ((@IsNull_ANGLE = 1 AND [ANGLE] IS NULL) OR ([ANGLE] = @Original_ANGLE)) AND ((@IsNull_QTY = 1 AND [QTY] IS NULL) OR ([QTY] = @Original_QTY)) AND ((@IsNull_QTY0 = 1 AND [QTY0] IS NULL) OR ([QTY0] = @Original_QTY0)) AND ((@IsNull_VNAME = 1 AND [VNAME] IS NULL) OR ([VNAME] = @Original_VNAME)) AND ((@IsNull_PRNATTACH = 1 AND [PRNATTACH] IS NULL) OR ([PRNATTACH] = @Original_PRNATTACH)) AND ((@IsNull_PRNVALID = 1 AND [PRNVALID] IS NULL) OR ([PRNVALID] = @Original_PRNVALID)) AND ([wdate] = @Original_wdate) AND ((@IsNull_VLOT = 1 AND [VLOT] IS NULL) OR ([VLOT] = @Original_VLOT)) AND ((@IsNull_BATCH = 1 AND [BATCH] IS NULL) OR ([BATCH] = @Original_BATCH)) AND ((@IsNull_qtymax = 1 AND [qtymax] IS NULL) OR ([qtymax] = @Original_qtymax))); +SELECT idx, STIME, ETIME, PDATE, JTYPE, JGUID, SID, SID0, RID, RID0, RSN, QR, ZPL, POS, LOC, ANGLE, QTY, QTY0, VNAME, PRNATTACH, PRNVALID, wdate, VLOT, BATCH, qtymax FROM Component_Reel_Result WHERE (idx = @idx) ORDER BY wdate DESC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Handler/ResultView/DataSet1.xss b/Handler/ResultView/DataSet1.xss new file mode 100644 index 0000000..8b1680f --- /dev/null +++ b/Handler/ResultView/DataSet1.xss @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/Handler/ResultView/MethodExtentions.cs b/Handler/ResultView/MethodExtentions.cs new file mode 100644 index 0000000..b880040 --- /dev/null +++ b/Handler/ResultView/MethodExtentions.cs @@ -0,0 +1,114 @@ + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.InteropServices; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; + +namespace ResultView +{ + /// + /// generic method Extension + /// + public static class MethodExtensions + { + public static string ToString(this System.Drawing.Rectangle rect) + { + return string.Format("X={0},Y={1},W={2},H={3}", rect.X, rect.Y, rect.Width, rect.Height); + } + public static string ToString(this System.Drawing.RectangleF rect) + { + return string.Format("X={0},Y={1},W={2},H={3}", rect.X, rect.Y, rect.Width, rect.Height); + } + + //public static void SetBGColor(this System.Windows.Forms.Label ctl,System.Drawing.Color color1) + //{ + // ctl.BackColor = System.Drawing.Color.Red; + //} + + /// + /// 0101이 반복되는 문자열 형태로 전환합니다. + /// + /// + /// + public static string BitString(this System.Collections.BitArray arr) + { + System.Text.StringBuilder sb = new System.Text.StringBuilder(); + for (int i = arr.Length; i > 0; i--) + sb.Append(arr[i - 1] ? "1" : "0"); + return sb.ToString(); + } + + /// + /// int 값으로 변환합니다. + /// + /// + /// + public static int ValueI(this System.Collections.BitArray arr) + { + byte[] buf = new byte[4]; + arr.CopyTo(buf, 0); + return BitConverter.ToInt32(buf, 0); + } + + /// + /// 숫자인지 검사합니다. + /// + /// + /// + public static bool IsNumeric(this string input) + { + double data; + return double.TryParse(input, out data); + //return Regex.IsMatch(input, @"^\d+$"); + } + + /// + /// isnullorempty 를 수행합니다. + /// + /// + /// + public static Boolean isEmpty(this string input) + { + return string.IsNullOrEmpty(input); + } + + /// + /// default 인코딩을 사용하여 문자열로 반환합니다. + /// + /// + /// + public static string GetString(this Byte[] input) + { + return System.Text.Encoding.Default.GetString(input); + } + + /// + /// 16진수 문자열 형태로 반환합니다. + /// + /// + /// + public static string GetHexString(this Byte[] input) + { + System.Text.StringBuilder sb = new System.Text.StringBuilder(); + foreach (byte b in input) + sb.Append(" " + b.ToString("X2")); + return sb.ToString(); + } + + public static string Base64Encode(this string src) + { + string base64enc = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(src)); + return base64enc; + } + public static string Base64Decode(this string src) + { + var base64dec = Convert.FromBase64String(src); + return System.Text.Encoding.UTF8.GetString(base64dec); + } + + } +} + diff --git a/Handler/ResultView/Program.cs b/Handler/ResultView/Program.cs new file mode 100644 index 0000000..d59b9d6 --- /dev/null +++ b/Handler/ResultView/Program.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; + +namespace ResultView +{ + static class Program + { + /// + /// 해당 응용 프로그램의 주 진입점입니다. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new fHistory()); + } + } +} diff --git a/Handler/ResultView/Properties/AssemblyInfo.cs b/Handler/ResultView/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..5b4c3a0 --- /dev/null +++ b/Handler/ResultView/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리의 일반 정보는 다음 특성 집합을 통해 제어됩니다. +// 어셈블리와 관련된 정보를 수정하려면 +// 이 특성 값을 변경하십시오. +[assembly: AssemblyTitle("Amkor STD Label Attach Result Viewer (x64)")] +[assembly: AssemblyDescription("Amkor STD Label Attach Result Viewer (x64)")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("ATK4-EET")] +[assembly: AssemblyProduct("Amkor STD Label Attach Result Viewer (x64)")] +[assembly: AssemblyCopyright("Copyright ©ATK4-EET 2021")] +[assembly: AssemblyTrademark("Amkor STD Label Attach Result Viewer (x64)")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하십시오. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("d15c03ae-e7ab-489f-8cad-343a40e4668b")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 버전이 자동으로 +// 지정되도록 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("25.05.21.1530")] +[assembly: AssemblyFileVersion("25.05.21.1530")] diff --git a/Handler/ResultView/Properties/Resources.Designer.cs b/Handler/ResultView/Properties/Resources.Designer.cs new file mode 100644 index 0000000..b63370d --- /dev/null +++ b/Handler/ResultView/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +namespace ResultView.Properties { + using System; + + + /// + /// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다. + /// + // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder + // 클래스에서 자동으로 생성되었습니다. + // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을 + // 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ResultView.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을 + /// 재정의합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Handler/ResultView/Properties/Resources.resx b/Handler/ResultView/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Handler/ResultView/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/ResultView/Properties/Settings.Designer.cs b/Handler/ResultView/Properties/Settings.Designer.cs new file mode 100644 index 0000000..730051e --- /dev/null +++ b/Handler/ResultView/Properties/Settings.Designer.cs @@ -0,0 +1,135 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +namespace ResultView.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.9.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute(@"^XA~TA000~JSN^LT0^MNW^MTT^PON^PMN^LH0,0^JMA^PR6,6~SD15^JUS^LRN^CI0^XZ +^XA +^MMT +^PW519 +^LL0200 +^LS25 +^FO205,5^GB305,186,4^FS +^FT25,170^BQN,2,4 +^FDLA, +{qrData} +^FS +^FO205,9^GB0,183,4^FS +^FO250,9^GB0,183,4^FS +^FO209,34^GB299,0,4^FS +^FO209,65^GB299,0,4^FS +^FO207,95^GB300,0,4^FS +^FO207,126^GB303,0,4^FS +^FT211,30^A0N,23,24^FDSID^FS +^FT210,59^A0N,23,24^FDLOT^FS +^FT215,91^A0N,23,24^FDPN^FS +^FT212,153^A0N,23,24^FDRID^FS +^FT210,120^A0N,23,24^FDQ'ty^FS +^FT260,31^A0N,23,24^FD +{sid} +^FS +^FT260,60^A0N,23,24^FD +{lot} +^FS +^FT258,93^A0N,27,16^FD +{partnum} +^FS +^FT256,150^A0N,21,19^FD +{rid} +^FS +^FT259,121^A0N,23,24^FD +{qty} +^FS +^FO207,157^GB303,0,4^FS +^FT212,182^A0N,20,19^FDDate^FS +^FT260,183^A0N,23,24^FD +{mfg} +^FS +^PQ1,0,1,Y^XZ +")] + public string ZPL { + get { + return ((string)(this["ZPL"])); + } + set { + this["ZPL"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute(@"^XA +^MMT +^PW519 +^LL0200 +^LS0 +^FO207,5^GB303,186,4^FS +^FT10,190^BQN,2,4 +^FH\^FDLA,{qrData}^FS +^FO250,8^GB0,183,4^FS +^FO209,29^GB299,0,4^FS +^FO209,56^GB299,0,4^FS +^FO207,81^GB300,0,4^FS +^FO207,108^GB303,0,4^FS +^FT212,27^A0N,20,19^FH\^FDSID^FS +^FT212,52^A0N,20,19^FH\^FDLOT^FS +^FT211,132^A0N,20,19^FH\^FDRID^FS +^FT212,104^A0N,20,19^FH\^FDQ'ty^FS +^FT256,27^A0N,20,19^FH\^FD{sid}^FS +^FT257,53^A0N,20,19^FH\^FD{lot}^FS +^FT257,184^A0N,17,16^FH\^FD{partnum}^FS +^FT258,131^A0N,20,19^FH\^FD{rid}^FS +^FT257,104^A0N,20,19^FH\^FD{qty}^FS +^FO207,162^GB303,0,4^FS +^FO207,135^GB303,0,4^FS +^FT211,158^A0N,20,19^FH\^FDDate^FS +^FT258,158^A0N,20,19^FH\^FD{mfg}^FS +^FT212,183^A0N,17,16^FH\^FDPN#^FS +^FT212,79^A0N,20,19^FH\^FDSPY^FS +^FT256,79^A0N,20,19^FH\^FDSupplier^FS +^PQ1,0,1,Y^XZ +")] + public string ZPL7 { + get { + return ((string)(this["ZPL7"])); + } + set { + this["ZPL7"] = value; + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)] + [global::System.Configuration.DefaultSettingValueAttribute("Data Source=K4FASQL.kr.ds.amkor.com,50150;Initial Catalog=EE;Persist Security Inf" + + "o=True;User ID=eeadm;Password=uJnU8a8q&DJ+ug-D;Encrypt=False;TrustServerCertific" + + "ate=True")] + public string cs { + get { + return ((string)(this["cs"])); + } + } + } +} diff --git a/Handler/ResultView/Properties/Settings.settings b/Handler/ResultView/Properties/Settings.settings new file mode 100644 index 0000000..0f088ff --- /dev/null +++ b/Handler/ResultView/Properties/Settings.settings @@ -0,0 +1,93 @@ + + + + + + ^XA~TA000~JSN^LT0^MNW^MTT^PON^PMN^LH0,0^JMA^PR6,6~SD15^JUS^LRN^CI0^XZ +^XA +^MMT +^PW519 +^LL0200 +^LS25 +^FO205,5^GB305,186,4^FS +^FT25,170^BQN,2,4 +^FDLA, +{qrData} +^FS +^FO205,9^GB0,183,4^FS +^FO250,9^GB0,183,4^FS +^FO209,34^GB299,0,4^FS +^FO209,65^GB299,0,4^FS +^FO207,95^GB300,0,4^FS +^FO207,126^GB303,0,4^FS +^FT211,30^A0N,23,24^FDSID^FS +^FT210,59^A0N,23,24^FDLOT^FS +^FT215,91^A0N,23,24^FDPN^FS +^FT212,153^A0N,23,24^FDRID^FS +^FT210,120^A0N,23,24^FDQ'ty^FS +^FT260,31^A0N,23,24^FD +{sid} +^FS +^FT260,60^A0N,23,24^FD +{lot} +^FS +^FT258,93^A0N,27,16^FD +{partnum} +^FS +^FT256,150^A0N,21,19^FD +{rid} +^FS +^FT259,121^A0N,23,24^FD +{qty} +^FS +^FO207,157^GB303,0,4^FS +^FT212,182^A0N,20,19^FDDate^FS +^FT260,183^A0N,23,24^FD +{mfg} +^FS +^PQ1,0,1,Y^XZ + + + + ^XA +^MMT +^PW519 +^LL0200 +^LS0 +^FO207,5^GB303,186,4^FS +^FT10,190^BQN,2,4 +^FH\^FDLA,{qrData}^FS +^FO250,8^GB0,183,4^FS +^FO209,29^GB299,0,4^FS +^FO209,56^GB299,0,4^FS +^FO207,81^GB300,0,4^FS +^FO207,108^GB303,0,4^FS +^FT212,27^A0N,20,19^FH\^FDSID^FS +^FT212,52^A0N,20,19^FH\^FDLOT^FS +^FT211,132^A0N,20,19^FH\^FDRID^FS +^FT212,104^A0N,20,19^FH\^FDQ'ty^FS +^FT256,27^A0N,20,19^FH\^FD{sid}^FS +^FT257,53^A0N,20,19^FH\^FD{lot}^FS +^FT257,184^A0N,17,16^FH\^FD{partnum}^FS +^FT258,131^A0N,20,19^FH\^FD{rid}^FS +^FT257,104^A0N,20,19^FH\^FD{qty}^FS +^FO207,162^GB303,0,4^FS +^FO207,135^GB303,0,4^FS +^FT211,158^A0N,20,19^FH\^FDDate^FS +^FT258,158^A0N,20,19^FH\^FD{mfg}^FS +^FT212,183^A0N,17,16^FH\^FDPN#^FS +^FT212,79^A0N,20,19^FH\^FDSPY^FS +^FT256,79^A0N,20,19^FH\^FDSupplier^FS +^PQ1,0,1,Y^XZ + + + + <?xml version="1.0" encoding="utf-16"?> +<SerializableConnectionString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <ConnectionString>Data Source=K4FASQL.kr.ds.amkor.com,50150;Initial Catalog=EE;Persist Security Info=True;User ID=eeadm;Password=uJnU8a8q&amp;DJ+ug-D;Encrypt=False;TrustServerCertificate=True</ConnectionString> + <ProviderName>System.Data.SqlClient</ProviderName> +</SerializableConnectionString> + Data Source=K4FASQL.kr.ds.amkor.com,50150;Initial Catalog=EE;Persist Security Info=True;User ID=eeadm;Password=uJnU8a8q&DJ+ug-D;Encrypt=False;TrustServerCertificate=True + + + \ No newline at end of file diff --git a/Handler/ResultView/Pub.cs b/Handler/ResultView/Pub.cs new file mode 100644 index 0000000..c5e91fe --- /dev/null +++ b/Handler/ResultView/Pub.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace ResultView +{ + public static class Pub + { + + + + public static arUtil.Log log; + + public static CSetting setting; + + public static void init() + { + + //log + log = new arUtil.Log(); + + //setting + setting = new CSetting(); + setting.Load(); + + + } + } +} diff --git a/Handler/ResultView/ResultView.csproj b/Handler/ResultView/ResultView.csproj new file mode 100644 index 0000000..1ceb32a --- /dev/null +++ b/Handler/ResultView/ResultView.csproj @@ -0,0 +1,155 @@ + + + + + Debug + AnyCPU + {4ED6F01A-0081-43E3-8EE5-7446BE0F2366} + WinExe + Properties + ResultView + ResultView + v4.7 + 512 + + + + x64 + true + full + false + ..\..\..\..\..\..\Amkor\STDLabelAttach%28Conv%29\ResultView\ + DEBUG;TRACE + prompt + 4 + false + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + false + + + + False + ..\DLL\ArLog.Net4.dll + + + False + ..\DLL\ArSetting.Net4.dll + + + False + ..\DLL\libxl.net.dll + + + + + + + + + + + + + + + True + True + DataSet1.xsd + + + Form + + + fHistory.cs + + + Form + + + fSetting.cs + + + Form + + + fTouchKeyFull.cs + + + + + + + + + fHistory.cs + + + fSetting.cs + + + fTouchKeyFull.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + + DataSet1.xsd + + + Designer + MSDataSetGenerator + DataSet1.Designer.cs + + + DataSet1.xsd + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + {f31c242c-1b15-4518-9733-48558499fe4b} + arControl + + + {b18d3b96-2fdf-4ed9-9a49-d9b8cee4ed6d} + StdLabelPrint + + + + + PreserveNewest + + + + + \ No newline at end of file diff --git a/Handler/ResultView/Util.cs b/Handler/ResultView/Util.cs new file mode 100644 index 0000000..4a74edd --- /dev/null +++ b/Handler/ResultView/Util.cs @@ -0,0 +1,366 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Net; +using System.Text; +using System.Windows.Forms; + +namespace ResultView +{ + public static class Util + { + #region "MessageBox" + public static void MsgI(string m) + { + MessageBox.Show(m, "확인", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + public static void MsgE(string m) + { + MessageBox.Show(m, "오류", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + public static DialogResult MsgQ(string m) + { + DialogResult dlg = MessageBox.Show(m, "확인", MessageBoxButtons.YesNo, MessageBoxIcon.Question); + return dlg; + } + + #endregion + + public static void SaveBugReport(string content, string subdirName = "BugReport") + { + try + { + var path = CurrentPath + subdirName; + if (!System.IO.Directory.Exists(path)) System.IO.Directory.CreateDirectory(path); + var file = path + "\\" + DateTime.Now.ToString("yyyyMMdd_HHmmss_fff") + ".txt"; + System.IO.File.WriteAllText(file, content, System.Text.Encoding.UTF8); + } + catch + { + //nothing + } + } + + public static void CopyData(System.Data.DataRow drSrc, System.Data.DataRow drDes) + { + if (drDes == null || drSrc == null) return; + foreach (System.Data.DataColumn col in drSrc.Table.Columns) + { + if (col.ColumnName.ToUpper() == "IDX") continue; + drDes[col.ColumnName] = drSrc[col.ColumnName]; + } + + } + + /// + /// 현재실행중인폴더를 반환합니다. + /// + public static string CurrentPath + { + get + { + return AppDomain.CurrentDomain.BaseDirectory; + } + } + /// + /// 콤마와 줄바꿈등을 제거합니다. + /// + /// + public static string ToCSVString(string src) + { + string retval = src.Replace("\r", "").Replace("\n", "").Replace(",", ""); + return retval; + } + + public static Boolean RunProcess(string file, string arg = "") + { + var fi = new System.IO.FileInfo(file); + if (!fi.Exists) + { + Pub.log.AddE("Run Error : " + file); + return false; + } + System.Diagnostics.Process prc = new System.Diagnostics.Process(); + System.Diagnostics.ProcessStartInfo si = new System.Diagnostics.ProcessStartInfo(file); + si.Arguments = arg; + prc.StartInfo = si; + prc.Start(); + return true; + } + + #region "convert" + public static string RectToStr(Rectangle rect) + { + return string.Format("{0};{1};{2};{3}", rect.X, rect.Y, rect.Width, rect.Height); + } + public static string RectToStr(RectangleF rect) + { + return string.Format("{0};{1};{2};{3}", rect.X, rect.Y, rect.Width, rect.Height); + } + public static string PointToStr(Point pt) + { + return string.Format("{0};{1}", pt.X, pt.Y); + } + public static string PointToStr(PointF pt) + { + return string.Format("{0};{1}", pt.X, pt.Y); + } + public static Rectangle StrToRect(string str) + { + if (str.isEmpty() || str.Split(';').Length != 4) str = "0;0;0;0"; + var roibuf1 = str.Split(';'); + return new System.Drawing.Rectangle( + int.Parse(roibuf1[0]), + int.Parse(roibuf1[1]), + int.Parse(roibuf1[2]), + int.Parse(roibuf1[3])); + } + public static RectangleF StrToRectF(string str) + { + if (str.isEmpty() || str.Split(';').Length != 4) str = "0;0;0;0"; + var roibuf1 = str.Split(';'); + return new System.Drawing.RectangleF( + float.Parse(roibuf1[0]), + float.Parse(roibuf1[1]), + float.Parse(roibuf1[2]), + float.Parse(roibuf1[3])); + } + public static Point StrToPoint(string str) + { + if (str.isEmpty() || str.Split(';').Length != 2) str = "0;0"; + var roibuf1 = str.Split(';'); + return new System.Drawing.Point( + int.Parse(roibuf1[0]), + int.Parse(roibuf1[1])); + } + public static PointF StrToPointF(string str) + { + if (str.isEmpty() || str.Split(';').Length != 2) str = "0;0"; + var roibuf1 = str.Split(';'); + return new System.Drawing.PointF( + float.Parse(roibuf1[0]), + float.Parse(roibuf1[1])); + } + #endregion + + #region "NIC" + + /// + /// 지정된 nic카드가 현재 목록에 존재하는지 확인한다. + /// + /// + public static Boolean ExistNIC(string NICName) + { + if (string.IsNullOrEmpty(NICName)) return false; + foreach (string NetName in NICCardList()) + { + if (NetName.ToLower() == NICName.ToLower()) + { + return true; + } + } + return false; + } + + /// + /// Ehternet Card 를 사용안함으로 설정합니다.(관리자권한필요) + /// + /// + public static Boolean NICDisable(string NICName) + { + //해당 nic 가 현재 목록에 존재하는지 확인한다. + + string cmd = "interface set interface " + NICName + " disable"; + Process prc = new Process(); + ProcessStartInfo si = new ProcessStartInfo("netsh", cmd); + si.WindowStyle = ProcessWindowStyle.Hidden; + prc.StartInfo = si; + prc.Start(); + + ////목록에서 사라질때까지 기다린다. + DateTime SD = DateTime.Now; + Boolean timeout = false; + while ((true)) + { + + bool FindNetwork = false; + foreach (string NetName in NICCardList()) + { + if (NetName == NICName.ToLower()) + { + FindNetwork = true; + break; // TODO: might not be correct. Was : Exit For + } + } + + if (!FindNetwork) + break; // TODO: might not be correct. Was : Exit While + + System.Threading.Thread.Sleep(1000); + TimeSpan ts = DateTime.Now - SD; + if (ts.TotalSeconds > 10) + { + timeout = true; + break; // TODO: might not be correct. Was : Exit While + } + } + return !timeout; + } + + public static List NICCardList() + { + List Retval = new List(); + foreach (System.Net.NetworkInformation.NetworkInterface Net in System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()) + { + if (Net.NetworkInterfaceType == System.Net.NetworkInformation.NetworkInterfaceType.Ethernet) + { + Retval.Add(Net.Name.ToUpper()); + } + } + return Retval; + } + + /// + /// 이더넷카드를 사용함으로 설정합니다. + /// + /// + public static Boolean NICEnable(string NICName) + { + string cmd = "interface set interface " + NICName + " enable"; + System.Diagnostics.Process prc = new System.Diagnostics.Process(); + System.Diagnostics.ProcessStartInfo si = new System.Diagnostics.ProcessStartInfo("netsh", cmd); + si.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; + prc.StartInfo = si; + prc.Start(); + + + ////목록에생길떄까지 대기 + DateTime SD = DateTime.Now; + while ((true)) + { + + bool FindNetwork = false; + foreach (string NetName in NICCardList()) + { + if (NetName.ToLower() == NICName.ToLower()) + { + FindNetwork = true; + break; // TODO: might not be correct. Was : Exit For + } + } + + if (FindNetwork) + break; // TODO: might not be correct. Was : Exit While + + System.Threading.Thread.Sleep(1000); + TimeSpan ts = DateTime.Now - SD; + if (ts.TotalSeconds > 10) + { + return false; + } + } + + ////결이 완료될떄까지 기다린다. + SD = DateTime.Now; + while ((true)) + { + + bool FindNetwork = false; + foreach (System.Net.NetworkInformation.NetworkInterface Net in System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()) + { + if (Net.NetworkInterfaceType != System.Net.NetworkInformation.NetworkInterfaceType.GigabitEthernet && + Net.NetworkInterfaceType != System.Net.NetworkInformation.NetworkInterfaceType.Ethernet) continue; + if (Net.Name.ToLower() == NICName.ToLower()) + { + //string data = Net.GetIPProperties().GatewayAddresses[0].ToString(); + + if (Net.OperationalStatus == System.Net.NetworkInformation.OperationalStatus.Up) + { + + FindNetwork = true; + break; // TODO: might not be correct. Was : Exit For + } + } + } + if (FindNetwork) + return true; + + System.Threading.Thread.Sleep(1000); + TimeSpan ts = DateTime.Now - SD; + if (ts.TotalSeconds > 10) + { + return false; + } + } + + } + + #endregion + + public static void RunExplorer(string arg) + { + System.Diagnostics.ProcessStartInfo si = new ProcessStartInfo("explorer"); + si.Arguments = arg; + System.Diagnostics.Process.Start(si); + } + + #region "watchdog" + public static void WatchDog_Run() + { + System.IO.FileInfo fi = new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "WatchCat.exe"); + if (!fi.Exists) return; + var Exist = CheckExistProcess("watchcat"); + if (Exist) return; + RunProcess(fi.FullName); + } + + public static Boolean CheckExistProcess(string ProcessName) + { + foreach (var prc in System.Diagnostics.Process.GetProcesses()) + { + if (prc.ProcessName.StartsWith("svchost")) continue; + if (prc.ProcessName.ToUpper() == ProcessName.ToUpper()) return true; + } + return false; + } + #endregion + + #region "web function" + /// + /// URL로부터 문자열을 수신합니다. + /// + /// + /// + /// + public static string GetStrfromurl(string url, out Boolean isError) + { + isError = false; + string result = ""; + try + { + HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(url)); + request.Timeout = 60000; + request.ReadWriteTimeout = 60000; + + request.MaximumAutomaticRedirections = 4; + request.MaximumResponseHeadersLength = 4; + request.Credentials = CredentialCache.DefaultCredentials; + var response = request.GetResponse() as HttpWebResponse; + var txtReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8); + result = txtReader.ReadToEnd(); + } + catch (Exception ex) + { + isError = true; + result = ex.Message.ToString(); + } + return result; + } + + #endregion + + } +} diff --git a/Handler/ResultView/app.config b/Handler/ResultView/app.config new file mode 100644 index 0000000..deb162c --- /dev/null +++ b/Handler/ResultView/app.config @@ -0,0 +1,95 @@ + + + + +
+ + + + + + + + + ^XA~TA000~JSN^LT0^MNW^MTT^PON^PMN^LH0,0^JMA^PR6,6~SD15^JUS^LRN^CI0^XZ +^XA +^MMT +^PW519 +^LL0200 +^LS25 +^FO205,5^GB305,186,4^FS +^FT25,170^BQN,2,4 +^FDLA, +{qrData} +^FS +^FO205,9^GB0,183,4^FS +^FO250,9^GB0,183,4^FS +^FO209,34^GB299,0,4^FS +^FO209,65^GB299,0,4^FS +^FO207,95^GB300,0,4^FS +^FO207,126^GB303,0,4^FS +^FT211,30^A0N,23,24^FDSID^FS +^FT210,59^A0N,23,24^FDLOT^FS +^FT215,91^A0N,23,24^FDPN^FS +^FT212,153^A0N,23,24^FDRID^FS +^FT210,120^A0N,23,24^FDQ'ty^FS +^FT260,31^A0N,23,24^FD +{sid} +^FS +^FT260,60^A0N,23,24^FD +{lot} +^FS +^FT258,93^A0N,27,16^FD +{partnum} +^FS +^FT256,150^A0N,21,19^FD +{rid} +^FS +^FT259,121^A0N,23,24^FD +{qty} +^FS +^FO207,157^GB303,0,4^FS +^FT212,182^A0N,20,19^FDDate^FS +^FT260,183^A0N,23,24^FD +{mfg} +^FS +^PQ1,0,1,Y^XZ + + + + ^XA +^MMT +^PW519 +^LL0200 +^LS0 +^FO207,5^GB303,186,4^FS +^FT10,190^BQN,2,4 +^FH\^FDLA,{qrData}^FS +^FO250,8^GB0,183,4^FS +^FO209,29^GB299,0,4^FS +^FO209,56^GB299,0,4^FS +^FO207,81^GB300,0,4^FS +^FO207,108^GB303,0,4^FS +^FT212,27^A0N,20,19^FH\^FDSID^FS +^FT212,52^A0N,20,19^FH\^FDLOT^FS +^FT211,132^A0N,20,19^FH\^FDRID^FS +^FT212,104^A0N,20,19^FH\^FDQ'ty^FS +^FT256,27^A0N,20,19^FH\^FD{sid}^FS +^FT257,53^A0N,20,19^FH\^FD{lot}^FS +^FT257,184^A0N,17,16^FH\^FD{partnum}^FS +^FT258,131^A0N,20,19^FH\^FD{rid}^FS +^FT257,104^A0N,20,19^FH\^FD{qty}^FS +^FO207,162^GB303,0,4^FS +^FO207,135^GB303,0,4^FS +^FT211,158^A0N,20,19^FH\^FDDate^FS +^FT258,158^A0N,20,19^FH\^FD{mfg}^FS +^FT212,183^A0N,17,16^FH\^FDPN#^FS +^FT212,79^A0N,20,19^FH\^FDSPY^FS +^FT256,79^A0N,20,19^FH\^FDSupplier^FS +^PQ1,0,1,Y^XZ + + + + + diff --git a/Handler/ResultView/fHistory.Designer.cs b/Handler/ResultView/fHistory.Designer.cs new file mode 100644 index 0000000..cfa50be --- /dev/null +++ b/Handler/ResultView/fHistory.Designer.cs @@ -0,0 +1,530 @@ +namespace ResultView +{ + partial class fHistory + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fHistory)); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = 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 dataGridViewCellStyle4 = 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(); + this.panel1 = new System.Windows.Forms.Panel(); + this.btSetting = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.btExport = new System.Windows.Forms.Button(); + this.dtED = new System.Windows.Forms.DateTimePicker(); + this.dtSD = new System.Windows.Forms.DateTimePicker(); + this.tbSearch = new System.Windows.Forms.ComboBox(); + this.btSearch = new System.Windows.Forms.Button(); + this.cm = new System.Windows.Forms.ContextMenuStrip(this.components); + this.목록저장ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.viewXMLToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); + this.sendDataToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.tbFind = new System.Windows.Forms.TextBox(); + this.statusStrip1 = new System.Windows.Forms.StatusStrip(); + this.dv = new arCtl.arDatagridView(); + this.bs = new System.Windows.Forms.BindingSource(this.components); + this.dataSet1 = new ResultView.DataSet1(); + this.ta = new ResultView.DataSet1TableAdapters.Component_Reel_ResultTableAdapter(); + this.panel2 = new System.Windows.Forms.Panel(); + this.button1 = new System.Windows.Forms.Button(); + this.sTIMEDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.ETIME = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.jTYPEDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.BATCH = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.sIDDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.SID0 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.rIDDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.rID0DataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.lOCDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.qTYDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.qtymax = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.vNAMEDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.VLOT = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewCheckBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.PRNVALID = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.panel1.SuspendLayout(); + this.cm.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dv)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bs)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).BeginInit(); + this.panel2.SuspendLayout(); + this.SuspendLayout(); + // + // panel1 + // + this.panel1.BackColor = System.Drawing.Color.Gainsboro; + this.panel1.Controls.Add(this.btSetting); + this.panel1.Controls.Add(this.label1); + this.panel1.Controls.Add(this.btExport); + this.panel1.Controls.Add(this.dtED); + this.panel1.Controls.Add(this.dtSD); + this.panel1.Controls.Add(this.tbSearch); + this.panel1.Controls.Add(this.btSearch); + this.panel1.Dock = System.Windows.Forms.DockStyle.Top; + this.panel1.Location = new System.Drawing.Point(0, 0); + this.panel1.Name = "panel1"; + this.panel1.Padding = new System.Windows.Forms.Padding(5); + this.panel1.Size = new System.Drawing.Size(954, 73); + this.panel1.TabIndex = 0; + // + // btSetting + // + this.btSetting.Dock = System.Windows.Forms.DockStyle.Right; + this.btSetting.Font = new System.Drawing.Font("Calibri", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btSetting.Image = ((System.Drawing.Image)(resources.GetObject("btSetting.Image"))); + this.btSetting.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.btSetting.Location = new System.Drawing.Point(846, 5); + this.btSetting.Name = "btSetting"; + this.btSetting.Padding = new System.Windows.Forms.Padding(10, 0, 5, 0); + this.btSetting.Size = new System.Drawing.Size(103, 63); + this.btSetting.TabIndex = 12; + this.btSetting.Tag = "0"; + this.btSetting.Text = "설정"; + this.btSetting.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.btSetting.UseVisualStyleBackColor = true; + this.btSetting.Click += new System.EventHandler(this.btSetting_Click); + // + // label1 + // + this.label1.Location = new System.Drawing.Point(207, 13); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(149, 23); + this.label1.TabIndex = 11; + this.label1.Text = "검색어를 입력하세요"; + // + // btExport + // + this.btExport.Font = new System.Drawing.Font("Calibri", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btExport.Image = ((System.Drawing.Image)(resources.GetObject("btExport.Image"))); + this.btExport.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.btExport.Location = new System.Drawing.Point(588, 9); + this.btExport.Name = "btExport"; + this.btExport.Padding = new System.Windows.Forms.Padding(10, 0, 5, 0); + this.btExport.Size = new System.Drawing.Size(145, 56); + this.btExport.TabIndex = 10; + this.btExport.Tag = "0"; + this.btExport.Text = "내보내기(&O)"; + this.btExport.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.btExport.UseVisualStyleBackColor = true; + this.btExport.Click += new System.EventHandler(this.btExport_Click); + // + // dtED + // + this.dtED.Location = new System.Drawing.Point(8, 39); + this.dtED.Name = "dtED"; + this.dtED.Size = new System.Drawing.Size(192, 26); + this.dtED.TabIndex = 2; + // + // dtSD + // + this.dtSD.Location = new System.Drawing.Point(8, 10); + this.dtSD.Name = "dtSD"; + this.dtSD.Size = new System.Drawing.Size(192, 26); + this.dtSD.TabIndex = 1; + // + // tbSearch + // + this.tbSearch.Font = new System.Drawing.Font("Calibri", 12F); + this.tbSearch.FormattingEnabled = true; + this.tbSearch.Location = new System.Drawing.Point(207, 38); + this.tbSearch.Name = "tbSearch"; + this.tbSearch.Size = new System.Drawing.Size(219, 27); + this.tbSearch.TabIndex = 0; + this.tbSearch.Tag = "0"; + // + // btSearch + // + this.btSearch.Font = new System.Drawing.Font("Calibri", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.btSearch.Image = ((System.Drawing.Image)(resources.GetObject("btSearch.Image"))); + this.btSearch.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.btSearch.Location = new System.Drawing.Point(430, 9); + this.btSearch.Name = "btSearch"; + this.btSearch.Padding = new System.Windows.Forms.Padding(10, 0, 5, 0); + this.btSearch.Size = new System.Drawing.Size(155, 56); + this.btSearch.TabIndex = 9; + this.btSearch.Tag = "0"; + this.btSearch.Text = "검색(F5)"; + this.btSearch.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.btSearch.UseVisualStyleBackColor = true; + this.btSearch.Click += new System.EventHandler(this.btSearch_Click); + // + // cm + // + this.cm.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.목록저장ToolStripMenuItem, + this.viewXMLToolStripMenuItem, + this.toolStripMenuItem1, + this.sendDataToolStripMenuItem}); + this.cm.Name = "cm"; + this.cm.Size = new System.Drawing.Size(129, 76); + // + // 목록저장ToolStripMenuItem + // + this.목록저장ToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("목록저장ToolStripMenuItem.Image"))); + this.목록저장ToolStripMenuItem.Name = "목록저장ToolStripMenuItem"; + this.목록저장ToolStripMenuItem.Size = new System.Drawing.Size(128, 22); + this.목록저장ToolStripMenuItem.Text = "Export"; + this.목록저장ToolStripMenuItem.Click += new System.EventHandler(this.목록저장ToolStripMenuItem_Click); + // + // viewXMLToolStripMenuItem + // + this.viewXMLToolStripMenuItem.Name = "viewXMLToolStripMenuItem"; + this.viewXMLToolStripMenuItem.Size = new System.Drawing.Size(128, 22); + this.viewXMLToolStripMenuItem.Text = "View XML"; + this.viewXMLToolStripMenuItem.Click += new System.EventHandler(this.viewXMLToolStripMenuItem_Click); + // + // toolStripMenuItem1 + // + this.toolStripMenuItem1.Name = "toolStripMenuItem1"; + this.toolStripMenuItem1.Size = new System.Drawing.Size(125, 6); + // + // sendDataToolStripMenuItem + // + this.sendDataToolStripMenuItem.ForeColor = System.Drawing.Color.Red; + this.sendDataToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("sendDataToolStripMenuItem.Image"))); + this.sendDataToolStripMenuItem.Name = "sendDataToolStripMenuItem"; + this.sendDataToolStripMenuItem.Size = new System.Drawing.Size(128, 22); + this.sendDataToolStripMenuItem.Text = "Print"; + this.sendDataToolStripMenuItem.Visible = false; + this.sendDataToolStripMenuItem.Click += new System.EventHandler(this.sendDataToolStripMenuItem_Click); + // + // tbFind + // + this.tbFind.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper; + this.tbFind.Dock = System.Windows.Forms.DockStyle.Fill; + this.tbFind.Font = new System.Drawing.Font("Calibri", 20F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.tbFind.ImeMode = System.Windows.Forms.ImeMode.Alpha; + this.tbFind.Location = new System.Drawing.Point(0, 0); + this.tbFind.Name = "tbFind"; + this.tbFind.Size = new System.Drawing.Size(898, 40); + this.tbFind.TabIndex = 3; + this.tbFind.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.tbFind.KeyDown += new System.Windows.Forms.KeyEventHandler(this.tbiSearch_KeyDown); + // + // statusStrip1 + // + this.statusStrip1.Location = new System.Drawing.Point(0, 583); + this.statusStrip1.Name = "statusStrip1"; + this.statusStrip1.Size = new System.Drawing.Size(954, 22); + this.statusStrip1.TabIndex = 5; + this.statusStrip1.Text = "statusStrip1"; + // + // dv + // + this.dv.A_DelCurrentCell = true; + this.dv.A_EnterToTab = true; + this.dv.A_KoreanField = null; + this.dv.A_UpperField = null; + this.dv.A_ViewRownumOnHeader = true; + this.dv.AllowUserToAddRows = false; + this.dv.AllowUserToDeleteRows = false; + this.dv.AutoGenerateColumns = false; + this.dv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dv.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.sTIMEDataGridViewTextBoxColumn, + this.ETIME, + this.jTYPEDataGridViewTextBoxColumn, + this.BATCH, + this.sIDDataGridViewTextBoxColumn, + this.SID0, + this.rIDDataGridViewTextBoxColumn, + this.rID0DataGridViewTextBoxColumn, + this.lOCDataGridViewTextBoxColumn, + this.qTYDataGridViewTextBoxColumn, + this.qtymax, + this.vNAMEDataGridViewTextBoxColumn, + this.VLOT, + this.dataGridViewCheckBoxColumn1, + this.PRNVALID, + this.Column1}); + this.dv.ContextMenuStrip = this.cm; + this.dv.DataSource = this.bs; + dataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle7.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle7.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle7.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle7.Padding = new System.Windows.Forms.Padding(3); + dataGridViewCellStyle7.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle7.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dv.DefaultCellStyle = dataGridViewCellStyle7; + this.dv.Dock = System.Windows.Forms.DockStyle.Fill; + this.dv.Location = new System.Drawing.Point(0, 73); + this.dv.Name = "dv"; + this.dv.ReadOnly = true; + dataGridViewCellStyle8.Font = new System.Drawing.Font("Calibri", 9.75F); + this.dv.RowsDefaultCellStyle = dataGridViewCellStyle8; + this.dv.RowTemplate.DefaultCellStyle.Font = new System.Drawing.Font("Calibri", 9.75F); + this.dv.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; + this.dv.Size = new System.Drawing.Size(954, 470); + this.dv.TabIndex = 2; + this.dv.CellDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dv_CellDoubleClick); + // + // bs + // + this.bs.DataMember = "Component_Reel_Result"; + this.bs.DataSource = this.dataSet1; + this.bs.Sort = "wdate desc"; + // + // dataSet1 + // + this.dataSet1.DataSetName = "DataSet1"; + this.dataSet1.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + // + // ta + // + this.ta.ClearBeforeFill = true; + // + // panel2 + // + this.panel2.Controls.Add(this.tbFind); + this.panel2.Controls.Add(this.button1); + this.panel2.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel2.Location = new System.Drawing.Point(0, 543); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(954, 40); + this.panel2.TabIndex = 6; + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Right; + this.button1.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.button1.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.button1.Location = new System.Drawing.Point(898, 0); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(56, 40); + this.button1.TabIndex = 11; + this.button1.Tag = "0"; + this.button1.Text = "KEY"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // sTIMEDataGridViewTextBoxColumn + // + this.sTIMEDataGridViewTextBoxColumn.DataPropertyName = "STIME"; + dataGridViewCellStyle1.Format = "MM-dd HH:mm:ss"; + this.sTIMEDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle1; + this.sTIMEDataGridViewTextBoxColumn.HeaderText = "시작"; + this.sTIMEDataGridViewTextBoxColumn.Name = "sTIMEDataGridViewTextBoxColumn"; + this.sTIMEDataGridViewTextBoxColumn.ReadOnly = true; + // + // ETIME + // + this.ETIME.DataPropertyName = "ETIME"; + dataGridViewCellStyle2.Format = "MM-dd HH:mm:ss"; + this.ETIME.DefaultCellStyle = dataGridViewCellStyle2; + this.ETIME.HeaderText = "종료"; + this.ETIME.Name = "ETIME"; + this.ETIME.ReadOnly = true; + // + // jTYPEDataGridViewTextBoxColumn + // + this.jTYPEDataGridViewTextBoxColumn.DataPropertyName = "JTYPE"; + this.jTYPEDataGridViewTextBoxColumn.HeaderText = "형태"; + this.jTYPEDataGridViewTextBoxColumn.Name = "jTYPEDataGridViewTextBoxColumn"; + this.jTYPEDataGridViewTextBoxColumn.ReadOnly = true; + // + // BATCH + // + this.BATCH.DataPropertyName = "BATCH"; + this.BATCH.HeaderText = "BATCH"; + this.BATCH.Name = "BATCH"; + this.BATCH.ReadOnly = true; + // + // sIDDataGridViewTextBoxColumn + // + this.sIDDataGridViewTextBoxColumn.DataPropertyName = "SID"; + this.sIDDataGridViewTextBoxColumn.HeaderText = "SID"; + this.sIDDataGridViewTextBoxColumn.Name = "sIDDataGridViewTextBoxColumn"; + this.sIDDataGridViewTextBoxColumn.ReadOnly = true; + // + // SID0 + // + this.SID0.DataPropertyName = "SID0"; + dataGridViewCellStyle3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.SID0.DefaultCellStyle = dataGridViewCellStyle3; + this.SID0.HeaderText = "*"; + this.SID0.Name = "SID0"; + this.SID0.ReadOnly = true; + // + // rIDDataGridViewTextBoxColumn + // + this.rIDDataGridViewTextBoxColumn.DataPropertyName = "RID"; + dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + this.rIDDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle4; + this.rIDDataGridViewTextBoxColumn.HeaderText = "RID"; + this.rIDDataGridViewTextBoxColumn.Name = "rIDDataGridViewTextBoxColumn"; + this.rIDDataGridViewTextBoxColumn.ReadOnly = true; + // + // rID0DataGridViewTextBoxColumn + // + this.rID0DataGridViewTextBoxColumn.DataPropertyName = "RID0"; + dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.rID0DataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle5; + this.rID0DataGridViewTextBoxColumn.HeaderText = "*"; + this.rID0DataGridViewTextBoxColumn.Name = "rID0DataGridViewTextBoxColumn"; + this.rID0DataGridViewTextBoxColumn.ReadOnly = true; + // + // lOCDataGridViewTextBoxColumn + // + this.lOCDataGridViewTextBoxColumn.DataPropertyName = "LOC"; + this.lOCDataGridViewTextBoxColumn.HeaderText = "L/R"; + this.lOCDataGridViewTextBoxColumn.Name = "lOCDataGridViewTextBoxColumn"; + this.lOCDataGridViewTextBoxColumn.ReadOnly = true; + // + // qTYDataGridViewTextBoxColumn + // + this.qTYDataGridViewTextBoxColumn.DataPropertyName = "QTY"; + this.qTYDataGridViewTextBoxColumn.HeaderText = "QTY"; + this.qTYDataGridViewTextBoxColumn.Name = "qTYDataGridViewTextBoxColumn"; + this.qTYDataGridViewTextBoxColumn.ReadOnly = true; + // + // qtymax + // + this.qtymax.DataPropertyName = "qtymax"; + this.qtymax.HeaderText = "(MAX)"; + this.qtymax.Name = "qtymax"; + this.qtymax.ReadOnly = true; + // + // vNAMEDataGridViewTextBoxColumn + // + this.vNAMEDataGridViewTextBoxColumn.DataPropertyName = "VNAME"; + dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + this.vNAMEDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle6; + this.vNAMEDataGridViewTextBoxColumn.HeaderText = "Vender"; + this.vNAMEDataGridViewTextBoxColumn.Name = "vNAMEDataGridViewTextBoxColumn"; + this.vNAMEDataGridViewTextBoxColumn.ReadOnly = true; + // + // VLOT + // + this.VLOT.DataPropertyName = "VLOT"; + this.VLOT.HeaderText = "Vendor #"; + this.VLOT.Name = "VLOT"; + this.VLOT.ReadOnly = true; + // + // dataGridViewCheckBoxColumn1 + // + this.dataGridViewCheckBoxColumn1.DataPropertyName = "PRNATTACH"; + this.dataGridViewCheckBoxColumn1.HeaderText = "부착"; + this.dataGridViewCheckBoxColumn1.Name = "dataGridViewCheckBoxColumn1"; + this.dataGridViewCheckBoxColumn1.ReadOnly = true; + this.dataGridViewCheckBoxColumn1.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.dataGridViewCheckBoxColumn1.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + // + // PRNVALID + // + this.PRNVALID.DataPropertyName = "PRNVALID"; + this.PRNVALID.HeaderText = "검증"; + this.PRNVALID.Name = "PRNVALID"; + this.PRNVALID.ReadOnly = true; + this.PRNVALID.Resizable = System.Windows.Forms.DataGridViewTriState.True; + this.PRNVALID.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable; + // + // Column1 + // + this.Column1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; + this.Column1.HeaderText = "비고"; + this.Column1.Name = "Column1"; + this.Column1.ReadOnly = true; + // + // fHistory + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size(954, 605); + this.Controls.Add(this.dv); + this.Controls.Add(this.panel2); + this.Controls.Add(this.panel1); + this.Controls.Add(this.statusStrip1); + this.Font = new System.Drawing.Font("Calibri", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.KeyPreview = true; + this.Name = "fHistory"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Data History"; + this.Load += new System.EventHandler(this.fHistory_Load); + this.panel1.ResumeLayout(false); + this.cm.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.dv)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bs)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).EndInit(); + this.panel2.ResumeLayout(false); + this.panel2.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + private System.Windows.Forms.Label label1; + + #endregion + private System.Windows.Forms.Panel panel1; + private arCtl.arDatagridView dv; + private System.Windows.Forms.BindingSource bs; + private DataSet1 dataSet1; + private System.Windows.Forms.Button btSearch; + private System.Windows.Forms.ComboBox tbSearch; + private System.Windows.Forms.DateTimePicker dtSD; + private System.Windows.Forms.DateTimePicker dtED; + private System.Windows.Forms.TextBox tbFind; + private System.Windows.Forms.Button btExport; + private System.Windows.Forms.ContextMenuStrip cm; + private System.Windows.Forms.ToolStripMenuItem 목록저장ToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem sendDataToolStripMenuItem; + private System.Windows.Forms.StatusStrip statusStrip1; + private System.Windows.Forms.ToolStripMenuItem viewXMLToolStripMenuItem; + private DataSet1TableAdapters.Component_Reel_ResultTableAdapter ta; + private System.Windows.Forms.Button btSetting; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.DataGridViewTextBoxColumn sTIMEDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn ETIME; + private System.Windows.Forms.DataGridViewTextBoxColumn jTYPEDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn BATCH; + private System.Windows.Forms.DataGridViewTextBoxColumn sIDDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn SID0; + private System.Windows.Forms.DataGridViewTextBoxColumn rIDDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn rID0DataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn lOCDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn qTYDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn qtymax; + private System.Windows.Forms.DataGridViewTextBoxColumn vNAMEDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn VLOT; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewCheckBoxColumn1; + private System.Windows.Forms.DataGridViewTextBoxColumn PRNVALID; + private System.Windows.Forms.DataGridViewTextBoxColumn Column1; + } +} \ No newline at end of file diff --git a/Handler/ResultView/fHistory.cs b/Handler/ResultView/fHistory.cs new file mode 100644 index 0000000..dec3e83 --- /dev/null +++ b/Handler/ResultView/fHistory.cs @@ -0,0 +1,322 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace ResultView +{ + public partial class fHistory : Form + { + public StdLabelPrint.LabelPrint PrinterL = null; + // public StdLabelPrint.LabelPrint PrinterR = null; + public fHistory() + { + InitializeComponent(); + Pub.init(); + this.KeyDown += (s1, e1) => + { + if (e1.KeyCode == Keys.Escape) this.Close(); + else if (e1.KeyCode == Keys.F5) btSearch.PerformClick(); + }; + this.tbSearch.KeyDown += (s1, e1) => { if (e1.KeyCode == Keys.Enter) btSearch.PerformClick(); }; + this.dv.CellFormatting += (s1, e1) => + { + if (e1.RowIndex >= 0 && e1.ColumnIndex >= 0) + { + var dv = s1 as DataGridView; + //var cell = dv.Rows[e1.RowIndex].Cells["dvc_upload"]; + //if (cell.Value != null) + //{ + // if (cell.Value.ToString() == "X") + // dv.Rows[e1.RowIndex].DefaultCellStyle.ForeColor = Color.Red; + // else + // dv.Rows[e1.RowIndex].DefaultCellStyle.ForeColor = Color.Black; + //} + //else dv.Rows[e1.RowIndex].DefaultCellStyle.ForeColor = Color.Black; + } + }; + this.dv.DataError += dv_DataError; + + this.Text = string.Format("{0} ver{1} - {2}", Application.ProductName, Application.ProductVersion,Pub.setting.MCName); + } + + void dv_DataError(object sender, DataGridViewDataErrorEventArgs e) + { + + } + + private void fHistory_Load(object sender, EventArgs e) + { + + dtSD.Value = DateTime.Now; + dtED.Value = DateTime.Now; + + PrinterL = new StdLabelPrint.LabelPrint(Pub.setting.PrinterName); + //PrinterR = new StdLabelPrint.LabelPrint("PrinterR"); + ApplyZplCode(); + + refreshList(); + + } + + public void ApplyZplCode() + { + string zplfil = string.Empty; + var basedir = new System.IO.DirectoryInfo(Util.CurrentPath); + if (Pub.setting.PrinterForm7) + { + zplfil = System.IO.Path.Combine(basedir.Parent.FullName, "zpl7.txt"); + } + else + { + zplfil = System.IO.Path.Combine(basedir.Parent.FullName, "zpl.txt"); + } + + if (System.IO.File.Exists(zplfil)) + { + PrinterL.baseZPL = System.IO.File.ReadAllText(zplfil, System.Text.Encoding.Default); + } + else + { + Pub.log.AddAT("기본 ZPL파일이 없어 설정파일의 내용을 사용합니다"); + if (Pub.setting.PrinterForm7) + { + PrinterL.baseZPL = Properties.Settings.Default.ZPL7; + } + else + { + PrinterL.baseZPL = Properties.Settings.Default.ZPL; + } + + } + } + + private void checkBox5_CheckedChanged(object sender, EventArgs e) + { + // cmbUser.Enabled = checkBox5.Checked; + // if(cmbUser.Enabled && cmbUser.Text.isEmpty()) + // { + // cmbUser.Text = string.Format("{0}({1})", Pub.LoginName, Pub.LoginNo); + // } + } + + void refreshList() + { + //검색일자 검색 + if (dtED.Value < dtSD.Value) + { + Util.MsgE("검색종료일자가 시작일자보다 작습니다"); + dtSD.Value = dtED.Value; + dtSD.Focus(); + return; + } + //저장소초기화 + this.dataSet1.Component_Reel_Result.Clear(); + + System.Diagnostics.Stopwatch wat = new System.Diagnostics.Stopwatch(); + wat.Restart(); + + //자료를 검색한다. + var search = tbSearch.Text.Trim(); + if (search.isEmpty()) search = "%"; + else search = "%" + search + "%"; + + ta.Fill(this.dataSet1.Component_Reel_Result, Pub.setting.MCName, dtSD.Value.ToShortDateString(), dtED.Value.ToShortDateString(), search); + + wat.Stop(); + + tbSearch.Focus(); + tbSearch.SelectAll(); + dv.AutoResizeColumns(); + + } + private void btSearch_Click(object sender, EventArgs e) + { + refreshList(); + } + + private void tbiSearch_KeyDown(object sender, KeyEventArgs e) + { + //내부검색기능 + if (e.KeyCode == Keys.Enter) + { + FindData(); + } + + } + void FindData() + { + string searchkey = tbFind.Text.Trim(); + if (searchkey.isEmpty()) + { + bs.Filter = ""; + tbFind.BackColor = SystemColors.Control; + } + else + { + string filter = "rid0 like '%{0}%' or sid0 like '%{0}%' or qr like '%{0}%' or vlot like '%{0}%'"; + filter = string.Format(filter, searchkey); + try + { + bs.Filter = filter; + tbFind.BackColor = Color.Lime; + } + catch + { + bs.Filter = ""; + tbFind.BackColor = Color.Pink; + } + } + tbFind.Focus(); + tbFind.SelectAll(); + } + private void btExport_Click(object sender, EventArgs e) + { + saveXLS(); + } + void saveXLS() + { + + var license = ("Amkor Technology/windows-242f240302c3e50d6cb1686ba2q4k0o9").Split('/'); + var xls = new libxl.XmlBook(); + xls.setKey(license[0], license[1]); + xls.addSheet("Result"); + var Sheet = xls.getSheet(0); + + int row = 0; + for (int i = 0; i < this.dv.Columns.Count; i++) + { + var col = this.dv.Columns[i]; + Sheet.writeStr(row, i, col.HeaderText); + } + row += 1; + foreach (DataGridViewRow dr in this.dv.Rows) + { + for (int i = 0; i < this.dv.Columns.Count; i++) + { + var propertyName = dv.Columns[i].DataPropertyName; + if (propertyName.isEmpty()) + { + Sheet.writeStr(row, i, dr.Cells[i].FormattedValue.ToString());// dr[colname].ToString()); + } + else + { + var dType = this.dataSet1.Component_Reel_Result.Columns[propertyName].DataType; + if (dType == typeof(float)) Sheet.writeNum(row, i, (float)dr.Cells[i].Value); + else if (dType == typeof(double)) Sheet.writeNum(row, i, (double)dr.Cells[i].Value); + else if (dType == typeof(int)) Sheet.writeNum(row, i, (int)dr.Cells[i].Value); + else Sheet.writeStr(row, i, dr.Cells[i].FormattedValue.ToString());// dr[colname].ToString()); + } + + } + row += 1; + } + Sheet.setAutoFitArea(0, 0, row, dv.Columns.Count); + + string filename = "export_{0}~{1}.xlsx"; + filename = string.Format(filename, dtSD.Value.ToString("yyyyMMdd"), dtED.Value.ToString("yyyyMMdd")); + + var sd = new SaveFileDialog(); + sd.Filter = "xlsx|*.xlsx"; + sd.FileName = filename; + sd.RestoreDirectory = true; + if (sd.ShowDialog() != System.Windows.Forms.DialogResult.OK) return; + + try + { + + xls.save(sd.FileName); + Pub.log.Add("Export Data : " + sd.FileName); + if (Util.MsgQ("다음 파일이 생성되었습니다.\n\n" + sd.FileName + "\n\n파일을 확인하시겠습니까?") == DialogResult.Yes) + Util.RunExplorer(sd.FileName); + } + catch (Exception ex) + { + Pub.log.AddE(ex.Message); + } + + } + private void 목록저장ToolStripMenuItem_Click(object sender, EventArgs e) + { + saveXLS(); + } + + + + private void label2_Click(object sender, EventArgs e) + { + + } + + private void viewXMLToolStripMenuItem_Click(object sender, EventArgs e) + { + //var drv = this.bs.Current as DataRowView; + //if (drv == null) return; + //var dr = drv.Row as DataSet1.Component_Reel_ResultRow; + //var file = dr.info_filename; + //if (file == "") return; + //Util.RunExplorer(file); + } + + private void dv_CellDoubleClick(object sender, DataGridViewCellEventArgs e) + { + //var drv = this.bs.Current as DataRowView; + //if (drv == null) return; + //var dr = drv.Row as DataSet1.Component_Reel_ResultRow; + //var fi = new System.IO.FileInfo(dr.info_filename); + + //if (fi.Exists == false) + //{ + // Util.MsgE("결과 파일이 없습니다"); + // return; + //} + //else + //{ + // Util.RunExplorer(fi.Directory.FullName); + //} + + } + private void sendDataToolStripMenuItem_Click(object sender, EventArgs e) + { + var drv = this.bs.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.Component_Reel_ResultRow; + var data = dr.QR; + var bcd = new StdLabelPrint.CAmkorSTDBarcode(data); + if (bcd.VENDERNAME.isEmpty() && dr.VNAME.isEmpty() == false) + bcd.VENDERNAME = dr.VNAME.Trim(); + + var reeldata = new StdLabelPrint.Reel(); + reeldata.id = bcd.RID; + reeldata.manu = bcd.VENDERNAME; + reeldata.lot = bcd.VLOT; + reeldata.mfg = bcd.MFGDate; + reeldata.qty = bcd.QTY; + reeldata.sid = bcd.SID; + reeldata.partnum = bcd.PARTNO; + + PrinterL.Print(reeldata, false, Pub.setting.DrawBorder, Pub.setting.PrinterForm7); + } + + + private void btSetting_Click(object sender, EventArgs e) + { + var f = new fSetting(); + f.ShowDialog(); + PrinterL.printerName = Pub.setting.PrinterName; + } + + private void button1_Click(object sender, EventArgs e) + { + var str = tbFind.Text.Trim(); + var f = new Dialog.fTouchKeyFull("검색어 입력", str); + if (f.ShowDialog() != DialogResult.OK) return; + tbFind.Text = f.tbInput.Text.Trim(); + FindData(); + } + } +} diff --git a/Handler/ResultView/fHistory.resx b/Handler/ResultView/fHistory.resx new file mode 100644 index 0000000..d2cd4b1 --- /dev/null +++ b/Handler/ResultView/fHistory.resx @@ -0,0 +1,2034 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABGdBTUEAALGPC/xhBQAABzRJREFUWEft + mFtTU2cUhv0Fbaftb+j0ohft2N/R1lqt1npoUc7ISQ4xBEg4JeF8EkRRWrS2ap1ObTtaqwilYCVyyiYQ + CASRQADlIKCoF2/X+nb2zk4At150xgv3zDPOMLjzsNa71vfBltfP6+dVe2xl9R8XlR+7STgKBbUqBUxp + TSglMnkKxTUOS3FVEHuVw2yvDCHXXhHEypQ7cqzlLaaiyq0Bjc2fgtLaVmtlPY6fPqtSz5xizqAuhGYc + U2hsRq2Wk82oOfl9kBMK3wmqGxSaBGZbJUyFZTcDGps/+SU1Eos8ffpM5YnCk6cvxdrzWHsSQuXx08gq + LJECGps/lpIqiSuy0QduxoYCCmEiWh5rKK8/BUPeCwia7VUSt+f/EtmM8mONyLTY9QUptBJnZEMJBXqh + QldPH1ZWVtfJLNPXbvf0hkis4/GaSkntSWTkWvUFs4vKJA5tuEg4f7V1oKS6ATTtOP3DhXUf3njmPGjK + YS2vw/XWTlXk0SYU1zQgLbdIXzCrsFTiwCoi4R+88HCZJvYMrBV1Qk6hrLYRly5fwUWitOakkKOBA60d + WIqrUUebYHHpYYjU6iPmscBWdRyp2YX6gsb8EokDGy6m8K+jZ51cYRlTS1IKoXKUa+TSGmm/dUcVWlll + HqnwakvJytcXNOTZJQ5siBj9tNr22OhlLytnIRSZ5RWFVRV+V7IxT18w02yTOLDaVoRTTO3QytXRYr78 + x1W0tXeg/Z9OXLnWIha5IpdjrSDZKiHycFlhRWXp4QoK6D2JBou+YDpNEgdWK6S0hRm7O6nKcasv/34F + vb29cDqdcLlccLvd8Hg88Hq9uNHaDjrqkF1UTku4DMOjXiEjsyxYXJLJo8onZObqC3JQObDBrARz4p+5 + L/aVUjmtXHefhPPX7+BiSw8Gh0cxMTEBn8+H1vZOIWcsKIWZ2j7pmxHDwiwsBuE4xGe8iKCJBCljways + 4trNdhxv+kFUTNtWRe7CdQfeS7yIN/afJZrxfsKPuHLLBb/fj7m5OdHuo/mlfFII7LSeLv1+DfMLSyp8 + FsemZesLJtMkcQu1Oamob1w3EJw5pXJauTf3NuGtPY34ILYZvukZzM/Po63jXyGWaSlGeq4NR7KtMFHb + H8wvBlgQOY1JzdIXTKKgcmC1OeGFrJVj2tr/EZn7idoaLvf27ga8s6sOf3W5sbS0hGHPWIhciqkQaTk2 + 3H+wIJi7P49saxmiUoz6ggkGs8SBVXLC2KtYMCjHq6S945YYCM7cRnLv7qzGze4RrK6uwjM2HiKXZCzA + EVMRZuceqGRRRiOTDS8gSEHlwC4sLgk4HzwYWjnec7xKeFp5IDhz4XIfRp3APP3/tbU1dHb1hMgdNuQh + gyrqn71PgzeHaYIzejApU18wLj1bolsviSn5WCSZNrqUnqUqBpcwB59XCU8rDwRnTivX6fQKuWfPntHl + 9Ywql2TMh7mkGucu/YYp/yympmdFVg0WOyISMvQFY1JNEgdWyYc2J96JSdgrT6gnBO85XiU8rfwhnLkb + jmG1cix3u7tflUvPLcYQ5ZG/d3KK8eMe4/NTRW34JiFdXzCKJokDy0LMLBPIyQwhDY4Ejy/6l/ccrxKe + Vh4IzpxWLt1sU9t6u1cSMhO+aZnJadydnBLQAYH9can6gpEpBoluNJihfDByToJZmfbPiRZzlZUTgtvd + 1nEb7pFRMRCcOW1bWS7JWCjL3JvCuMCH8QkfdYWZ5JsM9sW+gOChJINkpMDKMpSRAL5AVhheqoocnxDK + Eg5fJYpcfKZFwCIMH5fM6N17GB2XSTEVYE9Uir5gRGKmRDeakJyIrFBrmKs3/n5pudh0M6KP5ODir3/C + Mz4Bj1dmhBm7K6CbDAkm6QtyUDmw9zbICbeHX1xRf3qdXLa1HA3f/Yi6pnPIpK+FyuUiq6gKA7SShklG + MDoOd4AhjxeJRy3YHZmoL3ggPk3iwG6UE217LtDNmX6PFXKldJsOVkWuSD5d9VkuLsOCpp9+kWVIhGWY + wZExgYukGbrJYNfBBH1BnqQjFFhFZEyTk/D2uEnk16st9AHekIow0tAofr78p0ZElhlwMx5IzNAInMzg + MP0wOdgREa8vuDcmReLAKjIiJ4GqbNaejarC7VwvMoJ+kul3DaPP5UbfgBu9A0PolYboJmPCjm/i9AX3 + RCVLybTtw0We1x61KkMBGRLhqsgyJBIm0yMNosc5iG6nC939LtzpH0B0aha2H4jRF/yKgsqBDRV5fns2 + q8p6EaJvAA6BhC5a3F29Tvr92YnIlKP4fF+UvuDug4dbv45OFqFl4jOIdJk4yglnJTZNwRRCTFqWDFWD + oVOJMPI1igQUjvKtBYe0JBmoerH4bG+0/h+Pdhw8vPXLiISWnRHxDsG3Mjs0fCGIlTkQ66CXEzGO7fu1 + RDu275PZJohybNsb5fgsjE9VIm98sivio4DG6+f184o8W7b8B7JRe7LzHiHuAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAN + 0gAADdIBb5L+jgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAALxSURBVEhL5ZTL + T1NBGMVZuPI/8H9whxgFDdVUEzX1URa6AjGEKAZDjbEoKBihiGAExSBQSktBoLys4RGQShVofSBFQDCK + EZSFQQiifVAoHDvD3HqLkNp7kY2nOcl3Tzrfb765nYb830rOUUOIr+ZpO1gLYSJNghVZk11cg/R83RPW + JngJBdsdLuSU1JDJLaxVcBIKJhIFFwMmEgznN2kfM/nMiZ9x+crNEniu2rAUFFzoxGuZtQ0s8mVOKycj + 4mf8fDUJBotVUOBo9UWsp1nbwOIWxGlToOmqg95qhLI2x69Z/mMdql40IbOpkD4nValQ87IF8bor9Lnc + 0oh0411as7aBxTXvG3+LT1MTsIzaMLfgRmLldZpXWh9h2j6D5gEzXPNz0HTX43R5GhaXFnGjpZjWS95P + VnORMPCMYxal3oljNZfoNIpqFc17xwbROfKc1kXmahSYKmg9OjkOw6tW3GxVw70wj1Nll0WAn9XSmm8C + Iidg/dhP6xi1kuZGm8m7qSHUv27DwJd3vu+ztoHFLVgLTHzuQQb0FiOcbhe0PQ00UzXf9675gf7PI/T9 + 62119LqxtoHFNefA5Kib3nTigiGb5rqeRu9xltDaNj4M07CV1uRoyRG7PfNIabhNodslMj8zxOriwIMT + 7+l76/7QC4fbibMV12jeMvAUX2envJsxwz7nRGFnFc2JyRF/d/6kx8+B1XUm6r8Gx+tSoe1u8F6Nhzhf + neVrHlOqxJ0Ovd914kyu0K02Da0Fg8U6aPB6/mUKBpNdc+bEz/j5atqwiVW5BRTANx/Md1ikrIghlyVm + Yo/HgwRFKuIUaT7gSkcnJNvDpcfMEolkE0MuS+w7djpdOBGbiMSU7D+gZ5Qq9659UUOhMtlmhvut9fhx + fZuaxsGok0jOvOeDKjMKFsOl8snQ3fItDOUvAhZrQ7sVrV19iDxwHNfyyqgjpHL7NsmhrQzzbxW257A8 + Yn+Ug5jULN4Y7ZAeUezcezSJPfIUEvILA5nT3LqWQaIAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAK + XQAACl0B/If0DAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAM3SURBVEhLtZZZ + TxNRFMeJRuMaY6Iv+qRG426ivOCDr8YP4BdQg/HRKJQCHaat2paWlpYudqcz3ehGlYgp2hJAKd1sywMS + wASklIISDLtEOs4lNz7oWDow/SUnzcw99//vnHPvnSljAhQ176uRmU7XSPQ36sX6U+AaDjEPiqK7EIXt + EV/TNig0tudUnuCs6U3/PPgF1+A+qrRVgjw4ZefUig2Xn6mdo3hXfDmaWSXSc8Q/EZlaIcjxJZ7GMcKW + mC7CqdsHabHcEeq9MwOTy5SGf0f46xIh0Htz3BbsNpSgDyozXRcafbPx3Dqlyf8C5AuM3lmOAr8GpYrn + rsu1m6d2jA1kVijFtwpQIXL+CO2eIwr8oSOUWqQSLTZsoeQC0ozdh5LFwdc4BxMz9Er8d8SnfxI8jTMF + JbcGVakOiYztWSoxuiEw+LIoqj0ApQvDlmjPa7yhHJUQ3VC5gzl2k+4clC4Mq0l309wZnqMSohsmUoct + NlZA6cKAf6hyM/PEandwuqpRewZKFwb0hKkei4y+KVpnOf+lMxnNrlGKFRvRqVWC3B0JKFkcYB/j7+I7 + 2sdYIEp/H4OTi6u0f+mfWKQU3Sr6xxcIrspO/+QCfeFIWz+JDN78ds7q5zp3liU1X4FyxQEOELJEidaO + 3jVbIAwWSJ7e28mTpf12Ygm1RxC5JY2//bjeGRkiDP7QUr2stYcs2zDWFftR6H2MBWLzXLV9qFqkvwDl + iuOJRHusQYF9tgfCG8DU3NGz2iDHA6DfoFccmeUBX+VMUn2BcMn75Pg92j2tFhlPIApstO19BJr2riHN + lj4Ude2FKX9g7JsLiJBPOuEKxfLAFJSZI7fEH0td+2EK81Q1ms9ylXjG0x0ngClZ5l+IHEs9FWMHYQrz + 1Ir1V7kt1oyvJ7lp6uiKbJCmw2CBwRTmYcssFTyVLevvS22auoOxPFneMfYL03GYwjx1EsMtnto24/+Q + 3jT1dCcIcmGN10ktJ2EK89QI1Ee5SmvmFTRtJ8sMyg16DVNKA7ltyputr78BU39fGphmWULdJThcOsC+ + RBV4Sm7t+I4qrZN1UmM5HCo9lVrtHrCiyac/DG+VmLKy39JXNTjPcJ2cAAAAAElFTkSuQmCC + + + + 181, 17 + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAN + 0gAADdIBb5L+jgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAFPSURBVDhPlZJf + S8JgGMX3qbruC9RHKIIgqvsSglwXRVBRUhHWLHMFZXYhdGEjy9JYipRBZSqW9I8RSCDmn6vT3seVU96c + /uDA+7x7ztkZTLDNSWhHosMTE3iwh1awnQWXD+KyrBq2Or8BSi5Iaj4z2E65UtVDDmBf2m4M6ZPG0KkM + aw12cZVNIPGSRDCpol8aR/TpluZwOo5FxY3LzDVGZBGfhTw/oFgpkXH9fB/Dsp0WB90T2LjwYsgzibcv + DfMBF0KPUX5AoVxsqLgVOURae4YvHqA5reVwfBfG6ulu6wBZ9VMDZ2iPGn1XS3TvvzmhlqM7U/yASCaO + 5EcWZ3rFgU0b7t8z9NZQKkaG6aM1pPRG7MwN6FSGtUar/6B5Zjy85vkB7dLV3UMy7O01MPNvgBUrTvef + 2aRZCrCSV1Hp22ccLpO5VzQ6dAYz1s2C8AOKH12z48KW+wAAAABJRU5ErkJggg== + + + + + R0lGODlhEAAQAIQfAJfL/HKQrsDf/ezx9uXt9cfj/omwyldwkbvd/UlVa/L2+mOc4bba/KPQ+6vU+4m7 + 7FJhe7TR4F6Z4ENLXNTh6rHX/JrA1qjL3mif4tvn7ykxQz5FVeLp8Hyhvf///////yH/C05FVFNDQVBF + Mi4wAwEBAAAh+QQBAAAfACwAAAAAEAAQAAAIvQA9CBxIcOCHgx4yRIhwwYIFAwY6dAgQwAPCCBkIDNC4 + kYDHBwcseohAoIBJkwJSKngAUuAFBScLpESAQIFNCAItwEQpAAMCBgwqKMDpQSdPBBgWBHUwVKABmBii + LpgqwQHTBE4V9Ey6QILXBg0IYPXQYcDMoF/BEpggsCzNpRLANgDAga2HAAN+LpULAECGDQIDKPhZwSrY + vgAGAPZwgIKCjhwic8gwIIKGwAcyQ4CQIMGECRs2aCBasDTBgAA7 + + + + 249, 17 + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + 117, 17 + + + 17, 17 + + + 366, 17 + + + + AAABAAYAAAAAAAEAIAASGgAAZgAAAICAAAABACAAKAgBAHgaAABAQAAAAQAgAChCAACgIgEAMDAAAAEA + IACoJQAAyGQBACAgAAABACAAqBAAAHCKAQAQEAAAAQAgAGgEAAAYmwEAiVBORw0KGgoAAAANSUhEUgAA + AQAAAAEACAYAAABccqhmAAAZ2UlEQVR42u3da4xu11kf8P+z1r68l5l3Zs7xuXh87OBgk8ZBWEGBGEs0 + caXKBiOiVHI+kMQNbYh6+YIqhBFVq1MqkIxQhVS1KCIo1MT94KhYIBAOaXGDRC7UAoIUm8RxjBOfm89l + 5szMO++7916Xfhh/IlnPPsnMmTMz6/+Tzqe99Mze+333f87WemYtAR1ZH/v4EwMAtTZmOt6OPWWapz/0 + X5tbfS10c5hbfQJEdOswAIgyxgAgyhgDgChjDACijDEAiDLGACDKmNzqE6Dv7MO/9QsVgCJ13FhTlFXx + gFbDGnNaRE5oY6JEtQ8gRlwJHhe1MV3bfTF475Qh7vf+9W+0+3f36EYVuy9BN0kNYKgcHwJ4v1pBcB8E + 9+hDen8HvAzEF3vGfBXATDk+A8AAOID4CkCUMQYAUcYYAEQZYwAQZYwBQJQxBgBRxhgARBljI9BN8OHf + /sVVAAup49aYY6U1/06rUZbFGWPM8dRxY8TcceL4Ga1GXRa2Kgq7m2tpnfNN57w25tzlq6+HEEPqeAjh + ate517UanQ//xYdwTRmy9Xs/9+vnd3Mt9O3YCHRzCADtwSugBMSbFgFMlB9hjIi62o8RI9bs7j95Rowx + Ij3fE5kA6QDAThNQ3/UWPfeMv6xuAr4CEGWMAUCUMQYAUcYYAEQZYwAQZYwBQJQxTq38A49/4heXAVSp + 49aYcWHt/VqNqrC3GyOLqePGmIVRXat/y19Ye8wYk5w6ExFZWRwv6DWMFHZXbQBw3sP5oC4asrY53Yox + vbBICGHLea/N8WO7aZ4NIWyla8TN1vkLPef6ZR/CVBnSPvXRX1/f1Q05YtgH8O1OQ51/x50AfkErYIw5 + VVgzTh0vrLUnVibHtRp1WWK3D+9eKKxFYa36i+L248uL2nHn/aTp3Ko25sKVa7c775MNRw5hCvhLPaf7 + GwC+pRzfALC+LzfukOArAFHGGABEGWMAEGWMAUCUMQYAUcYYAEQZYwAQZexINQI9/ttPvBs7f0f/HVkj + byms+YBWYzwcHLPWJP/OviqLwW2TyV1ajbKw1hiTvLcigDVGn+SXG9iy45CIAKBvQAQfgteGhBBi57y6 + MMmVjY1vtp2bJ3+GD810NlcbkpwPz/gQX1OGbD71c09+af/u3s111BqBBgDGyvFlAOoqOhAsiUiyE1BE + irKw6kIcZWFhdrkQx1EiwE7qKQqrdz2FIEDP91VEbhOR9BZlghbAqOd0lwFcUY53N/l27St+S4kyxgAg + yhgDgChjDACijDEAiDLGACDK2L5MNT/2zGO9P2th++47oEzzGDETgblDqzEoy/tFJLlIRmHNalUU/1Sr + UdfVyBpTpGtYuzQeaVONsNbAyFGZxT8YQozwPqhjrk+3p9qaAj4E1zTttlajdf5PXQjJhUdijFvztv2y + ViMinAsxbChD3Fv+fnSu55Lj2bNn9/o2fpv96gMQ9P9v4wEoTTwA3g5AXUWnrsrlwqYf3kFVFSeWJz2r + 6FgIH94Dx4jA9GxydNvSohrMMUY4749pYy5f3/jAvO2Sc/3OBzdv2+s9p/ssgJeU45sAfv8GLjvewJhd + 4SsAUcYYAEQZYwAQZYwBQJQxBgBRxhgARBljABBlrHfC+2Mf/5hBT1D4wbGHAZSp40bM2wTyoFZjaTy6 + yxhJzuHXZbU4GQ9PazXKorBGWUdDRKSwVr0W9gAcbbFnYRLnQ1B3OYoxds6pC5NsTGcXm67dTNYI0V2f + bn9TPU/Ez4cYvqoM6V55dfBcz+WG/3v2rHrBN9oI1PdUHIeynRZ2dtP5Qa2AEVk2kl4lp7C2HFSVuhBH + YQ0fYFL1fT/KQv8FEWOE1ikKANvz9kTnzHL6JIKHvvsUsLPD0VXleIv+51LQ00zEVwCijDEAiDLGACDK + GAOAKGMMAKKMMQCIMiYf+eRZPQT89HQEVrUhRVH8M0i6D2BQVvcOqvJHtRqLo+GCEUmeS12WxcJoqE4D + WmP6lp8n2pUYAR/0hUm2tmdN03XJ/QlCjGFjOtvSajRd+5fzrn05fSLoOhf/V8/pnjd2eEkbUECfv0eE + vBfAh7UxAvlxxHRPwXhQ2ztOHFPnTuuy5Bw+HXgiO/0mmuXFcQ0g+csqxojlhbG2+A3OX7n2aNN2WsOR + Mybc33O6n8LO4iRJfAUgyhgDgChjDACijDEAiDLGACDKGAOAKGMMAKKMFdj5u2LNn0Hf5AAB8UEoC4JM + m+a+1y5deY9WY1BXJwwkuR7AoCrLpYXRUKtRclMPuslijOi8uh4Irm9tz7TNRQKinzftZa1G03WfC4gv + KkM6AH/Rc7oX0fN878nT8s9/94kHoSwuYsU+YEQe02qMB/WdIukVgRYGdXVieaI2T1RlyS256KYKMUJ5 + tgEAl9c3NrfmTfLBizG66bz5Vs/P+bSP/ovKEPc/PvLk53d7PXwFIMoYA4AoYwwAoowxAIgyxgAgyhgD + gChjN7ovQJ+tnlqX0NNLEGNsoPQS+BgnTded0WugEmVREbOzMYjVaoi2swgdahFADH0bg3gflI1BYoyh + dZ06t+5jPBdj3FBqdAC+0XO6l7DzXCVPdS/uyYH5rj/+O0+8C8Agdbyw5oeskQ9qNQZldZcRSdYY1lV5 + 6tjyklajrkpYw/8YHUU+BDStPod/6dr69ZkyKMQ4n3etuquPD/Fp58PfKkPmT/3LJ1+41fcD4CsAUdYY + AEQZYwAQZYwBQJQxBgBRxhgARBljABBlbK8agfbCKwC0Jp0LAP5OK+BDeGuQdC/BvOtWL1xbf0SrUVp7 + 2ogkFx4prLXLC+MFtUZphb0Ee8uHgK7zahfP+tZ0y/n0ah0hxlnn/UWtRtt1z7ngz6eOx4g5+pt4XgNw + Xbuc/btzugPTCLQXPvLJJ+4BkHx4rTH3GmM+qtWobHGPEUkuPFKXZXn78ZVjWo1BXUqhNxzSd8l5j3nT + qQFw4eratabrtCaezda7r2s1Qgif8CG8rAyZ/e7PPqnWOEz4a4ooYwwAoowxAIgyxgAgyhgDgChjDACi + jB2kPoC90EHpJYjRzGKwa1qBEMs2iknO03qxpuugTkcZExCCMsUqQNHTJyCCI7PJSYwRUV+HAy4EaHfV + +RD77rt3hfdOkp9djKGNMaqff4yYAUFb8ENfUOCQORrfsBv0vn//R0sA3qGNqYbu50Xw9tRxW7b1eOWN + O7UaZT0vjXXJICqs4PTxkXqu40GNujoa+dy0DtN5o465eHUbTunzCb7wXTNQH77p2slv+a5K/qAY8VI7 + K36z53S/8ge/+lPXkQm+AhBljAFAlDEGAFHGGABEGWMAEGWMAUCUMQYAUcYOUB9AVM/lfb/02SVjw1u0 + MUVpH4JgOXm8KEbD4WhVqzGZDH/UFuZ46rixwdbDVl0QBDI3EKdcjwPsBb2EmQJIz52LCCZjvU+grgqU + xe7WJeicR9Pqm9BsTB2i2ulTI4ax/oP87VD70mIREQdBK9HMqq3glSYuF65ubMz+Uqsxm22fd85tp88D + 667zz/fcttee/dVH1nEIHKZOkzGA7+sZ85MA7kgdFJHKWrus/pDx0tJgUCe3KDPGoKoq9SR8aBBj+qEJ + scH6XO81ad0WXJgnjxsRlGWt1jBWdh8A3mPWs5vO2kaDoARAYSpUhd74tDx4K4ykr0ekEGtq9WLasl0K + IZ0R83mzOJ22K1oNEVkHoHUCngPwas9tuwxgHYcAXwGIMsYAIMoYA4AoYwwAoowxAIgyxgAgytieTAM+ + 9tgz6vHwAxMLI+rP8v5zA8R0X0JR2kURo04m28KUIpKcKrLWGmut2m9gjOx6IQ4BtEsBIBD9dsBIBSPp + 6UYRIEY9v0MAfOhZiaNHCNL7c0RK9TeJkar3enfumrqGyg3RPjtjBH2fv7XWxBiVRWViiSh6U4Ng8th/ + +t9TZUQMzusLJITozNc21A1EPv3pD9zgXUnbqz6AvsnmHwDwY9qAsnb/FkByjraqqmrcsyPP6VOnFqqy + TJ6LMQZlVeJmM6bu+a/VCCeK96gjQmgQlF6CGB2ubag9Lbi6dg0uXN3VtRRmGaW9XR1zeuFH1AfcSAFj + 9J6FvdDXn1HXdTmZTI5rY9quO671ErRtd8+lS5feqdWYbk232rbVegnWAPy3nsv5AoCv9YzZ9Q5DfAUg + yhgDgChjDACijDEAiDLGACDKGAOAKGMMAKKMyXvPPq+GwIrvTovyN/YAYK38Yyg9BfVgcHJQD+7Waiws + jH5MjBmmf4Y1Va1P9I5Ho8qadKOHiMDYw5F5MXpEKOtfxICZ0xcV8WGKEGf6z+k5DysjWKP/Lf+wuB2Q + 9H0VGCj9WQeKD0Fd3CR4H6fb29ocP9qmbb33yQ8vhjDb2tr+glZj3sxfbebzN5Qhzvv451qNCJxbs+VF + bUyB/v8FnAJwvzpC8C8ADFKHjZFBVVdq99Sx48cXiyL9dBpjYO3h+BLtBREL0fqrBBhX36fWiNEhRr1X + JPa02Al6mziPFNuzZRuslaqq1K4m732tNRM55xfbzv0TrUbbNVMI5sqQOYC+HYwcAC1E+ApAlDMGAFHG + GABEGWMAEGWMAUCUMQYAUcYYAEQZK07gshoC3k4KQNQGHIE1UMJEYER6ltkROVDbFB0JIsUNrMRDN4O6 + HtTO4kc9v3zFCNSmBAPrep7L2Pt8838ARBljABBljAFAlDEGAFHGGABEGWMAEGWMAUCUsQL9mwtcAPDX + PWM+AWVBkBDDSte16u4S165efY+IJFeeMNYWZVkOtRrj8biyNr2mgIhktaYAffe89+qCIN77sDWdqrv6 + uK6bB++Tu7qEGLe7rv2cViPGeAE7G4gkfwz6n8sL6Hm+96X35v3/8Y/PAHi7Nsaa8pcBJHdtKctyOBwO + jmk1VldXJ1VVJYPIGIO6vvk71NDh1TQN9J2BWnfu/AV1IY75bLbWdZ22FNNVH7pf6zmVl579lUdfv9nX + y1cAoowxAIgyxgAgyhgDgChjDACijDEAiDLGACDK2H6tFnEewKWeMV+E0pfQOndbu7n1Nq3A9tdf+Vci + ktzFyBgzLMtyVatx6tSphcFgoPYSjEZqPxLdItvbM3UOfz6fu0uXLm1pNbrOXQghJOfwY4znOu9+Sz2R + iK8KcEUdAXXTD6C/QW9P7EsAPPsrjwZA2+cKANBpB9/3H56rAKgfntmpkezAMsZ4Y4y6G1bcoY3Yj1tG + 35OodvHFGKP3Xv0AnXM+hOCUIZ1zXv0eAtj4g//8yMatvhs3gq8ARBljABBljAFAlDEGAFHGGABEGWMA + EGXsMO0aMQdwsWfMZwGsKMfHIcS71B8y2/4R59rkugRGTDGfzZa1GvVgIEVRJHsaRARVpe7pkJ22bdUp + POdcbOZzdQqv67r1ENNTeK5zV0OI/6/nVL4JYFs5vob+72HfHP+BkdVmPD/9y3+yAOCt2pjFhfLnRbTF + S2RkpLhPq3Hs+G12OBol760xBsvLS7f6dhwo6+vX1Sae2fZ2vHb1itocE6J7EYjJhzdGvLS51f1mz6l8 + 4w9/7Sf65vmPDL4CEGWMAUCUMQYAUcYYAEQZYwAQZYwBQJQxBgBRxo5UH8DTz/31uwEsJi9WcLeY+DNa + jbqqzxhj0jsUGVPWdX2bVuOV89uytpVe3sD5iAtr6uYyGI0XUNXphUdEBCsry2oNkb35ePX1EYC1tXV1 + TNvMsD3Vp9ZvX6lR2PT5riyU+P7VkXoiTdNcCSEkb3wIYbtpG3WzjRjkf8aIV5Uhmx985J1f2sXtPFAO + UyfgjRgAGKcOimBijZzUCgxrOyysLVPHrTHFcFiqT1ZVAEZZ/0QQ0LWteiGudrBFuu9lrx7uvdC3nZZz + rvd6BQWM8h/SqgAmI/2+z8QXXmkmct4PndM/fx8xiTH9HULPwjWHDV8BiDLGACDKGAOAKGMMAKKMMQCI + MsYAIMrYvkwDPvPMM0BPz4GbfP8d2vkYaybGpDf9AIBhXd8vgoXUcWvNalmYiVpjUA2tMcrGIGKrUr9t + p46NMKyTM4lwPqAsrFqj8RZd1JanF2xtXFdr2LJEUfR8xD3bHDjv4Dp95qsUB0i60HhscftkUa2xenyI + wqZ/H03GJYa1fi3W1FUIMXljfQi2LKy+qIgL93kfkovKxIitZ/7P34y0GiHEc8EHbV8A97Uv/vA56OLZ + szd/qne/+gAE/f/beABKEw+AtwN4v1agrovlwqYf3kFdFidWFha0GkVhYXY5x74y0XcO8iFifUtvBPrK + q+t4/Y1p8ngIEX9/7rJaY7SwiOFYvdzeAJhtb2G6tamOufvUGMak79mZk2O84251+h3LCzWs2e0XfqjN + 3yPECOf8MW3M5bWtD8ybdOI5H9ysafTkBZ4F8JJyfBPA79/ABd30XWj4CkCUMQYAUcYYAEQZYwAQZYwB + QJQxBgBRxhgARBnrnXj9+AsvGPQExdI1+zCAZOeLiLxNBA9qNVaWRndpDTiDulxcXBie1mpUhbWi/KG8 + MSKFNeq17Mff2UcA3gd1zLz1aLv0mBjR20vw+pUZLlzTx/Q5fazGnbfpfQ3LCzW021aVBoNKb3yy1uzL + 6jR9i5s4H0JQBsUQY+u8ukHJ5tbs4rzpks0TPgS3dn37m/p54vMxxq8qQ7pT5fpzPZcbHnroIfWCb7QR + qO+zOQ5A2+vqTgA/qBUwRpaNkeS3pLCmHNZlrV6MNQdqoYwUefNcNQtDAyjPXYxApa+PgfVpi8LoQdNn + cWhxcmXQc64VDsFtB9Af8GXPBxNjhFWazQBgNmtOGCPLyRoQD0DtSAXwLQBXleMt+p9LQU8zEV8BiDLG + ACDKGAOAKGMMAKKMMQCIMsYAIMpY8cnnn1dDoLiG04iyqlYx+EdQ+gDqujgzqEp1Mnk0qEtjJHkuVVXY + /im+QzIXtRdkZ+5cMxmVOLkyvMGC6Rp9Pyen2w5I71RiVRU2KtNvIUTTLnj1g2lad6ZpupkypLvQTu7X + TzWe/+Tzz1/ShhTQ5+8hAe8F8GF1jMiPQ+kpWBgN7JnTK+rc6aAqDsUc/kEhAEY9K+Tce2YJ955ZutWn + eqSI9PdwrEzGNYBkz0qMEcuTkbpE0rlLa4+2rdMajlyE6AEQ8SnsLE6SxFcAoowxAIgyxgAgyhgDgChj + DACijDEAiDLGACDKWIGdvyvW/Bn0TQ4QYnwQSiPQdNbc99r5q+/Ragzr8oSR9HoAdV2WS4tDtXmiKix7 + CeimijFCn54Hrm/OZo2yuUiI0c+aVt3VZd64z4UYX1SGdAD+oud0L6Ln+S5+9qGH+laMuPjmv6SnP/NX + QyiNQPOmq9rOvVOr4X1YMiLJGhGQxbG+MEVEZk1ptO8idnZl0sybzk23Gy0A3HTWaFuHIYT4dR/iXylD + 3Acf/uG/2e318BWAKGMMAKKMMQCIMsYAIMoYA4AoYwwAoozd6L4AfbZ6al1CTy9BjLGJSi+BD2HStN2Z + nhqVkfSiIiIiZWHVHSrECKcSj6gIIPZM4XXO+6hsDBJiDG3n1Ll1H8K5GGNymi/G2AH4Rs/pXsLOc5Xi + 9uKeHJjv+lN/8sK7ACQn+svC/JA15oNajWFd3WVEkjWGg6o8fWKirpAxqEv0bB5Eh5QPAfP09DwA4OLl + jeuzeavN4c9nTavu6uNDeLpz4W+VIfPHf+JdL9zq+wHwFYAoawwAoowxAIgyxgAgyhgDgChjDACijDEA + iDK2V41Ae+EVAFqTzgUAf6cVcM6/VZQ+AMzb1QtvXH9Eq1GW5rSIJBceKQtrlyfjBa1GVVphL8He8iGg + 7bzaxbO+Md3qnE+u1hFjnHVdUNe2mDfdc53z55Uac/Q38bwG4Lp2Oft353QHphFoL3zqj1+4B0Dy4S1K + e6+15qNajaq09xgjyV1b6qosV08uH9NqDOtSikJtOKTvknMes6ZTA+D8G+vXmlZZiSfEzbbzX9dqeB8+ + 4Tr/sjJk9qFH36XWOEz4a4ooYwwAoowxAIgyxgAgyhgDgChjDACijB2kPoC90EHvJZiiZ48DACMAyWnA + iFg7HyqtQOt8FWJU7q3AWqPOExrBkdnkJMaInnU44H3wO0t2fGfOB+d8UBfiiDFeBNAoQzbR//lPoW+m + 0eEIORrfsD301Ge+dBpKL0Fli9XCFP9Gq2GMeYeInEwdLwpr7zi5fJtWYzyqZVAVR+LzmbcuTrcbNQLO + vbF+xelNPG8EH76i1XDB/fc2uPPKkNnjD7+7LwCywlcAoowxAIgyxgAgyhgDgChjDACijDEAiDLGACDK + 2FFrBNoLG9hpBkmZAfgdrUAEVmNMNxOFEMfrG1N1YZLN6fwuYyTZKyAisrQwWNRq1FVpqtLuqpeg7Xxs + 2i5oY65vzTfV3XRCvOK9VzfTCCE+F6Jy3yM2AWhz/MDOojLaZ3dgFuI4KBgA/8DjD797u2dIbzfZU5/5 + 8hKAOnW8NG65bdo7tRpiTaWtTGSMmKowY62GNUZ2GwDO+Tibt2oAXF7b3A4hJsfEGC/GviaeiD/sgqwr + Q5rHH75fW2WHvgd8BSDKGAOAKGMMAKKMMQCIMsYAIMoYA4AoY5wGvDkitNUtgACgb7pxCzs9CSkmxjjR + CoQQKu/Drj7jEIKLMbY9wzbevCbtWvquN/Tcs54lReh7cSQWnDiKnvrMlxehLExiBcNK4i9pNcTKfWLk + nt2cRwzx5eDDi9qYLsqTPspMGTJ7/OH7N/fjvtF3h68ARBljABBljAFAlDEGAFHGGABEGWMAEGWMAUCU + MTYCHVwN9AUs5gCe7anxBQAntAHaQh5vuoL+3XTWADjluAMdSGwEOsKe+ewLAygLkwBA27m+AGg+9JMP + NKAjia8ARBljABBljAFAlDEGAFHGGABEGWMAEGWMAUCUsf8PzNlsT7yleHcAAAAASUVORK5CYIIoAAAA + gAAAAAABAAABACAAAAAAAAAAAQBhCgAAYQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMu6oEzLuqD8y7qg/Mu6oPzLuqD8i2pA7ItqQO + yLakDsi2pA7ItqQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAMy7qgTMu6oPzLuqD8y7qg/Mu6oPyLakDsi2pA7ItqQOyLakDsi2pAQAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLuqBMy7qg/Mu6oPzLuqD8y7qg/ItqQO + yLakDsi2pA7ItqQOyLakBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADMu6oEzLuqD8y7qg/Mu6oPzLuqD8i2pA7ItqQOyLakDsi2pA7ItqQEAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADRuaIN0bmiENG5ohDRuaIQ0LuqQ9C7q2/Qu6tv0Lurb9G9rH/SwK2s0sCtrNLArazSwK2s + 0sCtrNLArazSwK2s0sCtrNC9q37Pu6puz7uqbs+7qm7Pu6lC0bmiENG5ohDRuaIQ0bmiDQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANG5ohLRuaIW0bmiFtG5ohbQu6pb + 0Lurl9C7q5fQu6uX0b2srNLAreXSwK3l0sCt5dLAreXSwK3l0sCt5dLAreXSwK3l0L2rq8+7qpbPu6qW + z7uqls+7qVrRuaIW0bmiFtG5ohbRuaISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA0bmiEtG5ohbRuaIW0bmiFtC7qlvQu6uX0Lurl9C7q5fRvays0sCt5dLAreXSwK3l + 0sCt5dLAreXSwK3l0sCt5dLAreXQvaurz7uqls+7qpbPu6qWz7upWtG5ohbRuaIW0bmiFtG5ohIAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIS0bmiFtG5ohbRuaIW + 0LuqW9C7q5fQu6uX0Lurl9G9rKzSwK3l0sCt5dLAreXSwK3l0sCt5dLAreXSwK3l0sCt5dC9q6vPu6qW + z7uqls+7qpbPu6la0bmiFtG5ohbRuaIW0bmiEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANG5ogPRuaIK0bmiCtG5ogrRuqUO + 0LyrRNC8q0TQvKtE0LyrRNK/rGzTv6x207+sdtO/rHbYx7eg28y9xdvMvcXbzL3F3c7A0eHVxvHh1cbx + 4dXG8eHVxvHh1cbx4dXG8eHVxvHh1cbx3c7A0dvMvcXbzL3F28y9xdjHt6DTv6x207+sdtO/rHbSv6xs + 0LyrRNC8q0TQvKtE0LyrRNG6pQ7RuaIK0bmiCtG5ogrRuaIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA0bmiB9G5ohbRuaIW0bmiFtG6pR7QvKuR0LyrkdC8q5HQvKuR07+t09PArePTwK3j + 08Ct49zNve/j18r649fK+uPXyvrn3ND78erg//Hq4P/x6uD/8erg//Hq4P/x6uD/8erg//Hq4P/n3ND7 + 49fK+uPXyvrj18r63M2979PArePTwK3j08Ct49O/rdPQvKuR0LyrkdC8q5HQvKuR0bqlHtG5ohbRuaIW + 0bmiFtG5ogcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIH0bmiFtG5ohbRuaIW + 0bqlHtC8q5HQvKuR0LyrkdC8q5HTv63T08Ct49PArePTwK3j3M297+PXyvrj18r649fK+ufc0Pvx6uD/ + 8erg//Hq4P/x6uD/8erg//Hq4P/x6uD/8erg/+fc0Pvj18r649fK+uPXyvrczb3v08Ct49PArePTwK3j + 07+t09C8q5HQvKuR0LyrkdC8q5HRuqUe0bmiFtG5ohbRuaIW0bmiBwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAANG5ogfRuaIW0bmiFtG5ohbRuqUe0LyrkdC8q5HQvKuR0LyrkdO/rdPTwK3j + 08Ct49PArePczb3v49fK+uPXyvrj18r659zQ+/Hq4P/x6uD/8erg//Hq4P/x6uD/8erg//Hq4P/x6uD/ + 59zQ++PXyvrj18r649fK+tzNve/TwK3j08Ct49PArePTv63T0LyrkdC8q5HQvKuR0LyrkdG6pR7RuaIW + 0bmiFtG5ohbRuaIHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAMm5ogbJuaIHybmiB8m5ogfQvasW0b6sIdG+rCHRvqwh0r6sK9O/q0DTv6tA + 07+rQNTArUbXxban18W2p9fFtqfXxban2cm429rJuOnaybjp2sm46eHTxfLm28/75tvP++bbz/vp39P8 + 8erg//Hq4P/x6uD/8erg//Hq4P/x6uD/8erg//Hq4P/p39P85tvP++bbz/vm28/74dPF8trJuOnaybjp + 2sm46dnJuNvXxban18W2p9fFtqfXxban1MCtRtO/q0DTv6tA07+rQNK+rCvRvawh0b2sIdG9rCHQvasW + ybmiB8m5ogfJuaIHybmiBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAybmiHcm5oiHJuaIh + ybmiIdC9q3DRvqyl0b6spdG+rKXSv6271MGv5tTBr+bUwa/m1cOx6Ofbzv3n287959vO/efbzv3w6N3/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+fbzv3n287959vO/efbzv3Vw7Ho + 1MGv5tTBr+bUwa/m0r+tu9G9rKXRvayl0b2spdC9q3DJuaIhybmiIcm5oiHJuaIdAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAADJuaIdybmiIcm5oiHJuaIh0L2rcNG+rKXRvqyl0b6spdK/rbvUwa/m + 1MGv5tTBr+bVw7Ho59vO/efbzv3n287959vO/fDo3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6N3/59vO/efbzv3n287959vO/dXDsejUwa/m1MGv5tTBr+bSv6270b2spdG9rKXRvayl + 0L2rcMm5oiHJuaIhybmiIcm5oh0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMm5oh3JuaIh + ybmiIcm5oiHQvatw0b6spdG+rKXRvqyl0r+tu9TBr+bUwa/m1MGv5tXDsejn287959vO/efbzv3n2879 + 8Ojd//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Do3f/n287959vO/efbzv3n2879 + 1cOx6NTBr+bUwa/m1MGv5tK/rbvRvayl0b2spdG9rKXQvatwybmiIcm5oiHJuaIhybmiHQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAybmiHcm5oiHJuaIhybmiIdC9q3DRvqyl0b6spdG+rKXSv627 + 1MGv5tTBr+bUwa/m1cOx6Ofbzv3n287959vO/efbzv3w6N3/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8Ojd/+fbzv3n287959vO/efbzv3Vw7Ho1MGv5tTBr+bUwa/m0r+tu9G9rKXRvayl + 0b2spdC9q3DJuaIhybmiIcm5oiHJuaIdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAADMtaQRzLWkKsy1pCrMtaQqzrinO9G9q6rRvauq0b2rqtG9q6rUw7LT + 1cSz2tXEs9rVxLPa4tXH7One0vjp3tL46d7S+Ovi1vrw6N798Oje/fDo3v3w6d798erg//Hq4P/x6uD/ + 8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8erg//Hq4P/x6uD/ + 8erg//Dp3v3w6N798Oje/fDo3v3r4tb66d7S+One0vjp3tL44tXH7NXEs9rVxLPa1cSz2tTDstPRvauq + 0b2rqtG9q6rRvauqzrinO8y1pCrMtaQqzLWkKsy1pBEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy1pBLMtaQt + zLWkLcy1pC3OuKc/0b2rttG9q7bRvau20b2rttXDsuDVxLPn1cSz59XEs+fi1cj16uDU/urg1P7q4NT+ + 7eTY/vLr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+3k2P7q4NT+ + 6uDU/urg1P7i1cj11cSz59XEs+fVxLPn1cOy4NG9q7bRvau20b2rttG9q7bOuKc/zLWkLcy1pC3MtaQt + zLWkEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLWkEsy1pC3MtaQtzLWkLc64pz/Rvau20b2rttG9q7bRvau2 + 1cOy4NXEs+fVxLPn1cSz5+LVyPXq4NT+6uDU/urg1P7t5Nj+8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7eTY/urg1P7q4NT+6uDU/uLVyPXVxLPn1cSz59XEs+fVw7Lg + 0b2rttG9q7bRvau20b2rts64pz/MtaQtzLWkLcy1pC3MtaQSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMtaQS + zLWkLcy1pC3MtaQtzrinP9G9q7bRvau20b2rttG9q7bVw7Lg1cSz59XEs+fVxLPn4tXI9erg1P7q4NT+ + 6uDU/u3k2P7y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/t5Nj+ + 6uDU/urg1P7q4NT+4tXI9dXEs+fVxLPn1cSz59XDsuDRvau20b2rttG9q7bRvau2zrinP8y1pC3MtaQt + zLWkLcy1pBIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6Il + zLeiKMy3oijMt6Ioz7ypZdC9qoPQvaqD0L2qg9PArpPWxLSs1sS0rNbEtKzYx7e05NjL5+TYy+fk2Mvn + 5NjL5+je0vXp39P36d/T9+nf0/ft5Nn87+fd/+/n3f/v593/8One//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Dp3v/v593/7+fd/+/n3f/t5Nn86d/T9+nf0/fp39P3 + 6N7S9eTYy+fk2Mvn5NjL5+TYy+fYx7e01sS0rNbEtKzWxLSs08Cuk9C9qoPQvaqD0L2qg8+8qWXMt6Io + zLeiKMy3oijMt6IlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy3ojjMt6I8zLeiPMy3ojzPvKmX0L2qxdC9qsXQvarF + 08Gv1NfFtevXxbXr18W169rJuu7r4tb/6+LW/+vi1v/r4tb/8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/x6uD/6+LW/+vi1v/r4tb/6+LW/9rJuu7XxbXr + 18W169fFtevTwa/U0L2qxdC9qsXQvarFz7ypl8y3ojzMt6I8zLeiPMy3ojgAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + zLeiOMy3ojzMt6I8zLeiPM+8qZfQvarF0L2qxdC9qsXTwa/U18W169fFtevXxbXr2sm67uvi1v/r4tb/ + 6+LW/+vi1v/x6uD/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Hq4P/r4tb/6+LW/+vi1v/r4tb/2sm67tfFtevXxbXr18W169PBr9TQvarF0L2qxdC9qsXPvKmX + zLeiPMy3ojzMt6I8zLeiOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6I4zLeiPMy3ojzMt6I8z7ypl9C9qsXQvarF + 0L2qxdPBr9TXxbXr18W169fFtevaybru6+LW/+vi1v/r4tb/6+LW//Hq4P/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8erg/+vi1v/r4tb/6+LW/+vi1v/aybru + 18W169fFtevXxbXr08Gv1NC9qsXQvarF0L2qxc+8qZfMt6I8zLeiPMy3ojzMt6I4AAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM65pQzOuaUZzrmlGc65pRnPu6gk0b6rUdG+q1HRvqtR + 0b6rUdXDsn/Vw7KC1cOygtXDsoLczLy+3c+/3N3Pv9zdz7/c4NLD5eLVx/Pi1cfz4tXH8+TXyvXu5tr/ + 7uba/+7m2v/u5tr/8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/x6uD/7uba/+7m2v/u5tr/7uba/+TXyvXi1cfz4tXH8+LVx/Pg0sPl3c+/3N3Pv9zdz7/c + 3My8vtXDsoLVw7KC1cOygtXDsn/RvqtR0b6rUdG+q1HRvqtRz7uoJM65pRnOuaUZzrmlGc65pQwAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + zrmlHc65pT7OuaU+zrmlPs+7qFrRvqvL0b6ry9G+q8vRvqvL2ce36tnIuOzZyLjs2ci47Ofbzvnt5Nj/ + 7eTY/+3k2P/v59z/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh/+/n3P/t5Nj/7eTY/+3k2P/n28752ci47NnIuOzZyLjs2ce36tG+q8vRvqvL + 0b6ry9G+q8vPu6hazrmlPs65pT7OuaU+zrmlHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOuaUdzrmlPs65pT7OuaU+z7uoWtG+q8vRvqvL + 0b6ry9G+q8vZx7fq2ci47NnIuOzZyLjs59vO+e3k2P/t5Nj/7eTY/+/n3P/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7+fc/+3k2P/t5Nj/ + 7eTY/+fbzvnZyLjs2ci47NnIuOzZx7fq0b6ry9G+q8vRvqvL0b6ry8+7qFrOuaU+zrmlPs65pT7OuaUd + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAM65pR3OuaU+zrmlPs65pT7Pu6ha0b6ry9G+q8vRvqvL0b6ry9nHt+rZyLjs2ci47NnIuOzn2875 + 7eTY/+3k2P/t5Nj/7+fc//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/v59z/7eTY/+3k2P/t5Nj/59vO+dnIuOzZyLjs2ci47NnHt+rRvqvL + 0b6ry9G+q8vRvqvLz7uoWs65pT7OuaU+zrmlPs65pR0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAL+/nwG/v58Bv7+fAb+/nwHNuKQSzbikGM24pBjNuKQYzrqmNs+6p1fPuqdXz7qnV9G+q2/WxLLS + 1sSy0tbEstLWxLLS3My97d3Nvu/dzb7v3c2+7+jd0Pru5dn/7uXZ/+7l2f/v59z/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3P/u5dn/ + 7uXZ/+7l2f/o3dD63c2+793Nvu/dzb7v3My97dXEstLVxLLS1cSy0tXEstLRvqtvz7qnV8+6p1fPuqdX + z7qmNc65pRjOuaUYzrmlGM65pRK/v58Bv7+fAb+/nwG/v58Bv7+fCL+/nwi/v58Iv7+fCM24pIjNuKS3 + zbikt824pLfPuqfV0Lyp+NC8qfjQvKn41sSz+e3k2P/t5Nj/7eTY/+3k2P/y6+D/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/ + 7OPX/+zj1//s49f/7OPX/9bEs/nQvKr40Lyq+NC8qvjPu6jUzrmltc65pbXOuaW1zrmlh7+/nwi/v58I + v7+fCL+/nwi/v58Iv7+fCL+/nwi/v58IzbikiM24pLfNuKS3zbikt8+6p9XQvKn40Lyp+NC8qfjWxLP5 + 7eTY/+3k2P/t5Nj/7eTY//Lr4P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lq4P/s49f/7OPX/+zj1//s49f/1sSz+dC8qvjQvKr4 + 0Lyq+M+7qNTOuaW1zrmltc65pbXOuaWHv7+fCL+/nwi/v58Iv7+fCL+/nwi/v58Iv7+fCL+/nwjNuKSI + zbikt824pLfNuKS3z7qn1dC8qfjQvKn40Lyp+NbEs/nt5Nj/7eTY/+3k2P/t5Nj/8uvg//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8urg/+zj1//s49f/7OPX/+zj1//WxLP50Lyq+NC8qvjQvKr4z7uo1M65pbXOuaW1zrmltc65pYe/v58I + v7+fCL+/nwi/v58Iv7+fCL+/nwi/v58Iv7+fCM24pIjNuKS3zbikt824pLfPuqfV0Lyp+NC8qfjQvKn4 + 1sSz+e3k2P/t5Nj/7eTY/+3k2P/y6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/7OPX/+zj1//s49f/7OPX/9bEs/nQvKr4 + 0Lyq+NC8qvjPu6jUzrmltc65pbXOuaW1zrmlh7+/nwi/v58Iv7+fCL+/nwi/v58Bv7+fAb+/nwG/v58B + zbuiFc27oh3Nu6IdzbuiHc+7p0fPu6h4z7uoeM+7qHjRvauN1MKx4tTCseLUwrHi1MKx4t/Sw/Hg08Xy + 4NPF8uDTxfLq4dX77+jd/+/o3f/v6N3/8One//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7+bb/+3i1v/t4tb/7eLW/+fWxf/WtJj/1rSY/9a0mP/WtJj/ + 1rSY/9a0mP/WtJj/1rSY/+fWxf/t4tb/7eLW/+3i1v/v5tv/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/w6d7/7+jd/+/o3f/v6N3/6uHV++DTxfLg08Xy + 4NPF8t/Sw/HUwrHi1MKx4tTCseLUwrHi0b2rjc+7qXjPu6l4z7upeM+6qEfMuqgczLqoHMy6qBzMuqgV + v7+fAb+/nwG/v58Bv7+fAQAAAAAAAAAAAAAAAAAAAADMzJkEzMyZBczMmQXMzJkFz7unMc+6qGTPuqhk + z7qoZM+7qXzQvKrd0Lyq3dC8qt3QvKrd3M6/793PwPDdz8Dw3c/A8Onf0/rv59z/7+fc/+/n3P/w6d7/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/v5tr/ + 7OHU/+zh1P/s4dT/5dPB/9Ksjf/SrI3/0qyN/9Ksjf/SrI3/0qyN/9Ksjf/SrI3/5dPB/+zh1P/s4dT/ + 7OHU/+/m2v/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Dp3v/v59z/7+fc/+/n3P/p39P63c/A8N3PwPDdz8Dw3M6/79C8qt3QvKrd0Lyq3dC8qt3Pu6l8 + z7qoZM+6qGTPuqhkzrqpMb+/vwS/v78Ev7+/BL+/vwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAMzMmQTMzJkFzMyZBczMmQXPu6cxz7qoZM+6qGTPuqhkz7upfNC8qt3QvKrd0Lyq3dC8qt3czr/v + 3c/A8N3PwPDdz8Dw6d/T+u/n3P/v59z/7+fc//Dp3v/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/m2v/s4dT/7OHU/+zh1P/l08H/0qyN/9Ksjf/SrI3/ + 0qyN/9Ksjf/SrI3/0qyN/9Ksjf/l08H/7OHU/+zh1P/s4dT/7+ba//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8One/+/n3P/v59z/7+fc/+nf0/rdz8Dw + 3c/A8N3PwPDczr/v0Lyq3dC8qt3QvKrd0Lyq3c+7qXzPuqhkz7qoZM+6qGTOuqkxv7+/BL+/vwS/v78E + v7+/AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMyZBMzMmQXMzJkFzMyZBc+7pzHPuqhk + z7qoZM+6qGTPu6l80Lyq3dC8qt3QvKrd0Lyq3dzOv+/dz8Dw3c/A8N3PwPDp39P67+fc/+/n3P/v59z/ + 8One//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 7+ba/+zh1P/s4dT/7OHU/+XTwf/SrI3/0qyN/9Ksjf/SrI3/0qyN/9Ksjf/SrI3/0qyN/+XTwf/s4dT/ + 7OHU/+zh1P/v5tr/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6d7/7+fc/+/n3P/v59z/6d/T+t3PwPDdz8Dw3c/A8NzOv+/QvKrd0Lyq3dC8qt3QvKrd + z7upfM+6qGTPuqhkz7qoZM66qTG/v78Ev7+/BL+/vwS/v78DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADMzJkBzMyZAszMmQLMzJkCz7unFM+6qCjPuqgoz7qoKM+7qTLPvKpaz7yqWs+8qlrPvKpa + 18a2ltfGtprXxraa18a2mtzNvc/ez8Dp3s/A6d7PwOnh1MXu5trN9ebazfXm2s3159zP9/Do3f/w6N3/ + 8Ojd//Do3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/ + 7ePW/+3j1v/t49b/7ePW/+DItP/dwqv/3cKr/93Cq//Yt53/06+R/9Ovkf/Tr5H/1a2N/9ingP/Yp4D/ + 2KeA/9ingP/Yp4D/2KeA/9ingP/Yp4D/1ayM/9Ovkf/Tr5H/06+R/9i3nf/dwqv/3cKr/93Cq//gyLT/ + 7ePW/+3j1v/t49b/7ePW//Lq4P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6N3/8Ojd//Do3f/w6N3/59zP9ubazfXm2s315trN9eHUxe7ez8Dp3s/A6d7PwOnczb3P + 18a2mtfGtprXxraa18a2ltG7qVrRu6la0bupWtG7qVrQuqkyz7qoKM+6qCjPuqgozrqpFL+/vwK/v78C + v7+/Ar+/vwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAqqqqAaqqqgOqqqoDqqqqA6qqqgPNuKZbzbimYc24pmHNuKZhz7ypstC9qtvQvarb + 0L2q29XEsuPdzr7v3c6+793Ovu/f0cLx7ubb/+7m2//u5tv/7ubb//Hq4P/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hq4P/q3c7/6t3O/+rdzv/q3c7/1LGV/8+mh//Ppof/ + z6aH/8mZdf/DjWX/w41l/8ONZf/Kk2r/3KR4/9ykeP/cpHj/3KR4/9yjeP/co3j/3KN4/9yjeP/Kk2n/ + w41k/8ONZP/DjWT/yZl0/8+mh//Ppof/z6aH/9Sxlf/q3c7/6t3O/+rdzv/q3c7/8erg//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8erg/+7m2//u5tv/7ubb/+7m2//f0cLw + 3c6+7t3Ovu7dzr7u1cSy49C9qtvQvarb0L2q28+8qbLNuKZhzbimYc24pmHNuKZb/4CAAv+AgAL/gIAC + /4CAAv+AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqqqoBqqqqA6qqqgOqqqoD + qqqqA824plvNuKZhzbimYc24pmHPvKmy0L2q29C9qtvQvarb1cSy493Ovu/dzr7v3c6+79/RwvHu5tv/ + 7ubb/+7m2//u5tv/8erg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8erg/+rdzv/q3c7/6t3O/+rdzv/UsZX/z6aH/8+mh//Ppof/yZl1/8ONZf/DjWX/w41l/8qTav/cpHj/ + 3KR4/9ykeP/cpHj/3KN4/9yjeP/co3j/3KN4/8qTaf/DjWT/w41k/8ONZP/JmXT/z6aH/8+mh//Ppof/ + 1LGV/+rdzv/q3c7/6t3O/+rdzv/x6uD/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/x6uD/7ubb/+7m2//u5tv/7ubb/9/RwvDdzr7u3c6+7t3Ovu7VxLLj0L2q29C9qtvQvarb + z7ypss24pmHNuKZhzbimYc24plv/gIAC/4CAAv+AgAL/gIAC/4CAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAKqqqgGqqqoDqqqqA6qqqgOqqqoDzbimW824pmHNuKZhzbimYc+8qbLQvarb + 0L2q29C9qtvVxLLj3c6+793Ovu/dzr7v39HC8e7m2//u5tv/7ubb/+7m2//x6uD/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/x6uD/6t3O/+rdzv/q3c7/6t3O/9Sxlf/Ppof/ + z6aH/8+mh//JmXX/w41l/8ONZf/DjWX/ypNq/9ykeP/cpHj/3KR4/9ykeP/co3j/3KN4/9yjeP/co3j/ + ypNp/8ONZP/DjWT/w41k/8mZdP/Ppof/z6aH/8+mh//UsZX/6t3O/+rdzv/q3c7/6t3O//Hq4P/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hq4P/u5tv/7ubb/+7m2//u5tv/ + 39HC8N3Ovu7dzr7u3c6+7tXEsuPQvarb0L2q29C9qtvPvKmyzbimYc24pmHNuKZhzbimW/+AgAL/gIAC + /4CAAv+AgAL/gIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqqqqAKqqqgKqqqoC + qqqqAqqqqgLNuKY8zbimQc24pkHNuKZBz7ypd9C9qpLQvaqS0L2qktXDsqLby7q628u6utvLurrdzb3B + 5drN8eXazfHl2s3x5drN8erg1Pfr4dX46+HV+Ovh1fjt49f87uTY/+7k2P/u5Nj/69/R/+bUw//m1MP/ + 5tTD/+bTwf/dwqr/3cKq/93Cqv/dwqr/1aqJ/9Okgf/TpIH/06SB/9Kfef/Sm3H/0ptx/9Kbcf/Wn3X/ + 46p+/+Oqfv/jqn7/46p+/+Oqfv/jqn7/46p+/+Oqfv/Wn3T/0ptx/9Kbcf/Sm3H/0p94/9Okgf/TpIH/ + 06SB/9Wqif/dwqr/3cKq/93Cqv/dwqr/5tPB/+bUw//m1MP/5tTD/+vf0f/u5Nj/7uTY/+7k2P/t49f8 + 6+HV+Ovh1fjr4dX46uDU9+XazfHl2s3x5drN8eXazfHdzb3A28u6udvLurnby7q51cOyotC9qpLQvaqS + 0L2qks+8qXfNuKZBzbimQc24pkHNuKY8/4CAAf+AgAH/gIAB/4CAAf+AgAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAz7ilIM+4pU/PuKVPz7ilT8+5pmHPvarVz72q1c+9qtXPvarV2sm559vLu+rby7vq + 28u76uHSwvfl1sf/5dbH/+XWx//exrL/z6aH/8+mh//Ppof/zqSF/8OMY//DjGP/w4xj/8OMY//WnXH/ + 26F1/9uhdf/boXX/5qyA/++2iv/vtor/77aK/++2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/++2iv/vtor/77aK/++2iv/mrID/26F1/9uhdf/boXX/1p1x/8OMY//DjGP/w4xj/8OMY//OpIX/ + z6aH/8+mh//Ppof/3say/+XWx//l1sf/5dbH/+HSwvfby7vq28u76tvLu+raybnnz72q1c+9qtXPvarV + z72q1c+5pmHPuKVPz7ilT8+4pU/PuKUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPuKUgz7ilT8+4pU/PuKVP + z7mmYc+9qtXPvarVz72q1c+9qtXaybnn28u76tvLu+rby7vq4dLC9+XWx//l1sf/5dbH/97Gsv/Ppof/ + z6aH/8+mh//OpIX/w4xj/8OMY//DjGP/w4xj/9adcf/boXX/26F1/9uhdf/mrID/77aK/++2iv/vtor/ + 77aK//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/77aK/++2iv/vtor/77aK/+asgP/boXX/ + 26F1/9uhdf/WnXH/w4xj/8OMY//DjGP/w4xj/86khf/Ppof/z6aH/8+mh//exrL/5dbH/+XWx//l1sf/ + 4dLC99vLu+rby7vq28u76trJuefPvarVz72q1c+9qtXPvarVz7mmYc+4pU/PuKVPz7ilT8+4pSAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAM+4pSDPuKVPz7ilT8+4pU/PuaZhz72q1c+9qtXPvarVz72q1drJuefby7vq + 28u76tvLu+rh0sL35dbH/+XWx//l1sf/3say/8+mh//Ppof/z6aH/86khf/DjGP/w4xj/8OMY//DjGP/ + 1p1x/9uhdf/boXX/26F1/+asgP/vtor/77aK/++2iv/vtor/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//vtor/77aK/++2iv/vtor/5qyA/9uhdf/boXX/26F1/9adcf/DjGP/w4xj/8OMY//DjGP/ + zqSF/8+mh//Ppof/z6aH/97Gsv/l1sf/5dbH/+XWx//h0sL328u76tvLu+rby7vq2sm558+9qtXPvarV + z72q1c+9qtXPuaZhz7ilT8+4pU/PuKVPz7ilIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz7ilHc+4pUrPuKVK + z7ilSs+5plvPvKnKz7ypys+8qcrPvKnK2Ma05NnHtujZx7bo2ce26N/NvPbj0cD/49HA/+PRwP/cw63/ + 0KaG/9Cmhv/Qpob/z6SE/8aPZv/Gj2b/xo9m/8aPZv/Yn3P/3KJ2/9yidv/conb/5q2B/++2iv/vtor/ + 77aK/++2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/++2iv/vtor/77aK/++2iv/mrYH/ + 3KJ2/9yidv/conb/2J9z/8aPZv/Gj2b/xo9m/8aPZv/PpIT/0KaG/9Cmhv/Qpob/3MOt/+PRwP/j0cD/ + 49HA/9/NvPbZx7bo2ce26NnHtujYxrTkz7ypys+8qcrPvKnKz7ypys+5plvPuKVKz7ilSs+4pUrPuKUd + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAt3pOBrd6Ti63ek4ut3pOLrd6Ti68h1yz + vIdcx7yHXMe8h1zHv4hd5sGIXvvBiF77wYhe+8uSZ/zfpXn/36V5/9+lef/gpnr/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/+Cmev/fpXn/36V5/9+lef/Lkmf8wYhe+8GIXvvBiF77v4hd5ryHXMe8h1zHvIdcx7yHXLO3ek4u + t3pOLrd6Ti63ek4ut3pOBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAC3ek4Gt3pOLrd6Ti63ek4ut3pOLryHXLO8h1zHvIdcx7yHXMe/iF3mwYhe+8GIXvvBiF77 + y5Jn/N+lef/fpXn/36V5/+Cmev/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/4KZ6/9+lef/fpXn/36V5/8uSZ/zBiF77 + wYhe+8GIXvu/iF3mvIdcx7yHXMe8h1zHvIdcs7d6Ti63ek4ut3pOLrd6Ti63ek4GAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALd6Tga3ek4ut3pOLrd6Ti63ek4u + vIdcs7yHXMe8h1zHvIdcx7+IXebBiF77wYhe+8GIXvvLkmf836V5/9+lef/fpXn/4KZ6//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//gpnr/36V5/9+lef/fpXn/y5Jn/MGIXvvBiF77wYhe+7+IXea8h1zHvIdcx7yHXMe8h1yz + t3pOLrd6Ti63ek4ut3pOLrd6TgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAt3pOBrd6Ti63ek4ut3pOLrd6Ti68h1yzvIdcx7yHXMe8h1zHv4hd5sGIXvvBiF77 + wYhe+8uSZ/zfpXn/36V5/9+lef/gpnr/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+Cmev/fpXn/36V5/9+lef/Lkmf8 + wYhe+8GIXvvBiF77v4hd5ryHXMe8h1zHvIdcx7yHXLO3ek4ut3pOLrd6Ti63ek4ut3pOBgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAuH1PIbh9TzG4fU8xuH1PMbqAU127gVWgu4FVoLuBVaC8glalwohcyMKIXMjCiFzI + wohcyNqhde7dpHj03aR49N2kePTjqn76566C/ueugv7nroL+6bCE/u2zh//ts4f/7bOH/+20iP/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7bSI/+2zh//ts4f/7bOH/+mwhP7nroL+566C/ueugv7jqn763aR49N2kePTdpHj0 + 2qF17sKIXMjCiFzIwohcyMKIXMi9glamvIFVobyBVaG8gVWhu4BTXrh9TzG4fU8xuH1PMbh9TyEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4fU8puH1PPbh9Tz24fU89 + uoBTdbuBVci7gVXIu4FVyLyCVs3DiV3uw4ld7sOJXe7DiV3u4KZ6/eSqfv/kqn7/5Kp+/+uyhv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+uyhv/kqn7/5Kp+/+Sqfv/gpnr9w4ld7sOJXe7DiV3uw4ld7r2CVs68gVXJ + vIFVybyBVcm7gFN1uH1PPbh9Tz24fU89uH1PKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALh9Tym4fU89uH1PPbh9Tz26gFN1u4FVyLuBVci7gVXIvIJWzcOJXe7DiV3u + w4ld7sOJXe7gpnr95Kp+/+Sqfv/kqn7/67KG//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/67KG/+Sqfv/kqn7/ + 5Kp+/+Cmev3DiV3uw4ld7sOJXe7DiV3uvYJWzryBVcm8gVXJvIFVybuAU3W4fU89uH1PPbh9Tz24fU8p + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuH1PKbh9Tz24fU89 + uH1PPbqAU3W7gVXIu4FVyLuBVci8glbNw4ld7sOJXe7DiV3uw4ld7uCmev3kqn7/5Kp+/+Sqfv/rsob/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//rsob/5Kp+/+Sqfv/kqn7/4KZ6/cOJXe7DiV3uw4ld7sOJXe69glbO + vIFVybyBVcm8gVXJu4BTdbh9Tz24fU89uH1PPbh9TykAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1flEHtX5RJbV+USW1flEl + tX5RJbqAVGu6gFRwuoBUcLqAVHDCiFyNxItfm8SLX5vEi1+bzZNnudWccOXVnHDl1Zxw5dadcejconb3 + 3KJ299yidvfconb36a+D/uqxhf/qsYX/6rGF/+61if/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61if/qsYX/ + 6rGF/+qxhf/pr4P+3KJ299yidvfconb33KJ299adcejVnHDm1Zxw5tWccObNk2e5xYtemsWLXprFi16a + wohbjLqAVHC6gFRwuoBUcLqAVGu1flEltX5RJbV+USW1flEltX5RBwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALV+UQ61flFFtX5RRbV+UUW1flFFuoBUybqAVNK6gFTSuoBU0sOKXuTHjmLt + x45i7ceOYu3Um2/0566C/+eugv/nroL/6K+D//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 6K+D/+eugv/nroL/566C/9Wbb/TIjmHsyI5h7MiOYezEil3juoBU0rqAVNK6gFTSuoBUybV+UUW1flFF + tX5RRbV+UUW1flEOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtX5RDrV+UUW1flFF + tX5RRbV+UUW6gFTJuoBU0rqAVNK6gFTSw4pe5MeOYu3HjmLtx45i7dSbb/TnroL/566C/+eugv/or4P/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//or4P/566C/+eugv/nroL/1Ztv9MiOYezIjmHs + yI5h7MSKXeO6gFTSuoBU0rqAVNK6gFTJtX5RRbV+UUW1flFFtX5RRbV+UQ4AAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAC1flEOtX5RRbV+UUW1flFFtX5RRbqAVMm6gFTSuoBU0rqAVNLDil7k + x45i7ceOYu3HjmLt1Jtv9Oeugv/nroL/566C/+ivg//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/+ivg//nroL/566C/+eugv/Vm2/0yI5h7MiOYezIjmHsxIpd47qAVNK6gFTSuoBU0rqAVMm1flFF + tX5RRbV+UUW1flFFtX5RDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAKqAVQKqgFUCqoBVAqqAVQK5gFIVuYBSHLmAUhy5gFIcvIFVK72BVju9gVY7vYFWO8CFWUfFjGBz + xYxgc8WMYHPFjGBzyY9j18mPZN7Jj2TeyY9k3tCWauvTmm7y05pu8tOabvLco3f36bCE/+mwhP/psIT/ + 6rGF//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/6rGF/+mwhP/psIT/6bCE/9yjd/fTmm3x + 05pt8dOabfHQlmrryY9k3smPZN7Jj2TeyY9j18WMX3PFjF9zxYxfc8WMX3PAhVlHvYFWO72BVju9gVY7 + vIFVK7mAUhy5gFIcuYBSHLmAUhWqgFUCqoBVAqqAVQKqgFUCqoBVBqqAVQaqgFUGqoBVBrmAUk+5gFJq + uYBSarmAUmq8gVWhvYFW372BVt+9gVbfwYZa49KXa/HSl2vx0pdr8dKXa/HpsIX+67KH/+uyh//rsof/ + 7rWK//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61iv/rsof/67KH/+uyh//psIX+ + 0Zdq8tGXavLRl2ry0Zdq8sGGWuO9gVbfvYFW372BVt+8gVWhuYBSarmAUmq5gFJquYBST6qAVQaqgFUG + qoBVBqqAVQaqgFUGqoBVBqqAVQaqgFUGuYBST7mAUmq5gFJquYBSaryBVaG9gVbfvYFW372BVt/Bhlrj + 0pdr8dKXa/HSl2vx0pdr8emwhf7rsof/67KH/+uyh//utYr/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7rWK/+uyh//rsof/67KH/+mwhf7Rl2ry0Zdq8tGXavLRl2rywYZa472BVt+9gVbf + vYFW37yBVaG5gFJquYBSarmAUmq5gFJPqoBVBqqAVQaqgFUGqoBVBqqAVQaqgFUGqoBVBqqAVQa5gFJP + uYBSarmAUmq5gFJqvIFVob2BVt+9gVbfvYFW38GGWuPSl2vx0pdr8dKXa/HSl2vx6bCF/uuyh//rsof/ + 67KH/+61iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utYr/67KH/+uyh//rsof/ + 6bCF/tGXavLRl2ry0Zdq8tGXavLBhlrjvYFW372BVt+9gVbfvIFVobmAUmq5gFJquYBSarmAUk+qgFUG + qoBVBqqAVQaqgFUGqoBVBqqAVQaqgFUGqoBVBrmAUk+5gFJquYBSarmAUmq8gVWhvYFW372BVt+9gVbf + wYZa49KXa/HSl2vx0pdr8dKXa/HpsIX+67KH/+uyh//rsof/7rWK//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+61iv/rsof/67KH/+uyh//psIX+0Zdq8tGXavLRl2ry0Zdq8sGGWuO9gVbf + vYFW372BVt+8gVWhuYBSarmAUmq5gFJquYBST6qAVQaqgFUGqoBVBqqAVQa/gEAEv4BABL+AQAS/gEAE + un1SSrp9UmS6fVJkun1SZLuAVJy7gVXdu4FV3buBVd3AhVnh0ZZq8NGWavDRlmrw0ZZq8OmwhP7rsob/ + 67KG/+uyhv/utYn/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+62iv/ptYn/6bWJ/+m1if/ptYn/ + 6baI/+m2iP/ptoj/6baI/+63iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/7rWJ/+uyhv/rsob/ + 67KG/+mwhP7Rlmrw0ZZq8NGWavDRlmrwwIVZ4buBVd27gVXdu4FV3buAVJy6fVJkun1SZLp9UmS6fVJK + v4BABL+AQAS/gEAEv4BABL+AQAS/gEAEv4BABL+AQAS6fVJKun1SZLp9UmS6fVJku4BUnLuBVd27gVXd + u4FV3cCFWeHRlmrw0ZZq8NGWavDRlmrw6bCE/uuyhv/rsob/67KG/+61if/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7raK/+m1if/ptYn/6bWJ/+m1if/ptoj/6baI/+m2iP/ptoj/7reK//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//utYn/67KG/+uyhv/rsob/6bCE/tGWavDRlmrw0ZZq8NGWavDAhVnh + u4FV3buBVd27gVXdu4BUnLp9UmS6fVJkun1SZLp9Ukq/gEAEv4BABL+AQAS/gEAEv4BABL+AQAS/gEAE + v4BABLp9Ukq6fVJkun1SZLp9UmS7gFScu4FV3buBVd27gVXdwIVZ4dGWavDRlmrw0ZZq8NGWavDpsIT+ + 67KG/+uyhv/rsob/7rWJ//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utor/6bWJ/+m1if/ptYn/ + 6bWJ/+m2iP/ptoj/6baI/+m2iP/ut4r/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61if/rsob/ + 67KG/+uyhv/psIT+0ZZq8NGWavDRlmrw0ZZq8MCFWeG7gVXdu4FV3buBVd27gFScun1SZLp9UmS6fVJk + un1SSr+AQAS/gEAEv4BABL+AQAS/gEAEv4BABL+AQAS/gEAEun1SSrp9UmS6fVJkun1SZLuAVJy7gVXd + u4FV3buBVd3AhVnh0ZZq8NGWavDRlmrw0ZZq8OmwhP7rsob/67KG/+uyhv/utYn/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+62iv/ptYn/6bWJ/+m1if/ptYn/6baI/+m2iP/ptoj/6baI/+63iv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/7rWJ/+uyhv/rsob/67KG/+mwhP7Rlmrw0ZZq8NGWavDRlmrw + wIVZ4buBVd27gVXdu4FV3buAVJy6fVJkun1SZLp9UmS6fVJKv4BABL+AQAS/gEAEv4BABL+AQAG/gEAB + v4BAAb+AQAG6fVIUun1SG7p9Uhu6fVIbun9UK7p/VT26f1U9un9VPb6DWEzEiV6IxIleiMSJXojEiV6I + yo9j4MqPY+fKj2Pnyo9j59OZbPDXnXD0151w9NedcPTfpXn467GG/+uxhv/rsYb/7LKH//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+q1if/otYj/6LWI/+i1iP/RsYH/va16/72tev+9rXr/tqx4/6Opc/+jqXP/ + o6lz/6Opc/+jqnP/o6pz/6Oqc/+jqnP/t6x4/76tev++rXr/vq16/9Kxgf/otYj/6LWI/+i1iP/qtYn/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/7LOG/+uyhf/rsoX/67KF/9+mefjXnXD0151w9NedcPTTmWzw + yo9j58qPY+fKj2Pnyo9j4MSJXojEiV6IxIleiMSJXoi+g1hMun9VPbp/VT26f1U9un9UK7p9Uhu6fVIb + un1SG7p9UhS/gEABv4BAAb+AQAG/gEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUB + qlVVA6pVVQOqVVUDt3lTFrl9U2K5fVNiuX1TYrl9U2K8gVXWvIFV3ryBVd68gVXeyI1h6s2TZvDNk2bw + zZNm8Nmfcvbpr4T/6a+E/+mvhP/qsIX/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/57WI/+W0h//ltIf/ + 5bSH/8avff+rqnT/q6p0/6uqdP+iqXL/iaVr/4mla/+JpWv/iaVr/4mla/+JpWv/iaVr/4mla/+jqXL/ + rKp0/6yqdP+sqnT/x699/+W0h//ltIf/5bSH/+e1iP/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//qsYT/ + 6bCD/+mwg//psIP/2Z9y9s2TZvDNk2bwzZNm8MiNYeq8gVXevIFV3ryBVd68gVXWuX1TYrl9U2K5fVNi + uX1TYrd5UxaqVVUDqlVVA6pVVQOqVVUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKpVVQGqVVUDqlVVA6pVVQO3eVMWuX1TYrl9U2K5fVNi + uX1TYryBVda8gVXevIFV3ryBVd7IjWHqzZNm8M2TZvDNk2bw2Z9y9umvhP/pr4T/6a+E/+qwhf/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//ntYj/5bSH/+W0h//ltIf/xq99/6uqdP+rqnT/q6p0/6Kpcv+JpWv/ + iaVr/4mla/+JpWv/iaVr/4mla/+JpWv/iaVr/6Opcv+sqnT/rKp0/6yqdP/Hr33/5bSH/+W0h//ltIf/ + 57WI//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+qxhP/psIP/6bCD/+mwg//Zn3L2zZNm8M2TZvDNk2bw + yI1h6ryBVd68gVXevIFV3ryBVda5fVNiuX1TYrl9U2K5fVNit3lTFqpVVQOqVVUDqlVVA6pVVQEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + qlVVAapVVQOqVVUDqlVVA7d5Uxa5fVNiuX1TYrl9U2K5fVNivIFV1ryBVd68gVXevIFV3siNYerNk2bw + zZNm8M2TZvDZn3L26a+E/+mvhP/pr4T/6rCF//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+e1iP/ltIf/ + 5bSH/+W0h//Gr33/q6p0/6uqdP+rqnT/oqly/4mla/+JpWv/iaVr/4mla/+JpWv/iaVr/4mla/+JpWv/ + o6ly/6yqdP+sqnT/rKp0/8evff/ltIf/5bSH/+W0h//ntYj/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 6rGE/+mwg//psIP/6bCD/9mfcvbNk2bwzZNm8M2TZvDIjWHqvIFV3ryBVd68gVXevIFV1rl9U2K5fVNi + uX1TYrl9U2K3eVMWqlVVA6pVVQOqVVUDqlVVAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUBqlVVAqpVVQKqVVUCt3lTDLl9UzS5fVM0 + uX1TNLl9UzS8gFVyvIBVd7yAVXe8gFV3xYpelsiOYaXIjmGlyI5hpc+UacHWnHDr1pxw69accOvXnXLt + 4KZ69uCmevbgpnr24KZ69uuyhv7ss4f/7LOH/+yzh//vtor/8LeL//C3i//wt4v/7reK/+u2if/rton/ + 67aJ/+m1if/RsYH/0bGB/9Gxgf/RsYH/v657/7qtev+6rXr/uq16/6yve/+fsXv/n7F7/5+xe/+csnz/ + kraA/5K2gP+StoD/kraA/5K2gP+StoD/kraA/5K2gP+csnz/n7F7/5+xe/+fsXv/rK97/7qtev+6rXr/ + uq16/7+ue//RsYH/0bGB/9Gxgf/RsYH/6bWJ/+u2if/rton/67aJ/+63iv/wt4v/8LeL//C3i//vtor/ + 7LOH/+yzh//ss4f/67KG/uCmevbgpnr24KZ69uCmevbXnnHt1pxw69accOvWnHDrz5VowciOYaXIjmGl + yI5hpcWKXpW8gVV2vIFVdryBVXa8gVVyuX1TNLl9UzS5fVM0uX1TNLd5UwyqVVUCqlVVAqpVVQKqVVUB + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAH/AAAB/wAAAf8AAAG4elA1 + uHtRT7h7UU+4e1FPun9UhbuBVdW7gVXVu4FV1b2DV9jMkWXrzJFl68yRZevMkWXr5at//Oivg//or4P/ + 6K+D/+20iP/wt4v/8LeL//C3i//stor/5bSH/+W0h//ltIf/4bOG/62rdf+tq3X/rat1/62rdf+Qpm3/ + iaVr/4mla/+JpWv/jbB4/5G5g/+RuYP/kbmD/5S9if+dyZj/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/ + ncmY/5S9if+RuYP/kbmD/5G5g/+NsHj/iaVr/4mla/+JpWv/kKZt/62rdf+tq3X/rat1/62rdf/hs4b/ + 5bSH/+W0h//ltIf/7LaK//C3i//wt4v/8LeL/+20iP/or4P/6K+D/+ivg//lq3/8zJFl68yRZevMkWXr + zJFl672DV9i7gVXVu4FV1buBVdW6f1SFuHtRT7h7UU+4e1FPuHtRNQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA/wAAAf8AAAH/AAAB/wAAAbh6UDW4e1FPuHtRT7h7UU+6f1SFu4FV1buBVdW7gVXV + vYNX2MyRZevMkWXrzJFl68yRZevlq3/86K+D/+ivg//or4P/7bSI//C3i//wt4v/8LeL/+y2iv/ltIf/ + 5bSH/+W0h//hs4b/rat1/62rdf+tq3X/rat1/5Cmbf+JpWv/iaVr/4mla/+NsHj/kbmD/5G5g/+RuYP/ + lL2J/53JmP+dyZj/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/lL2J/5G5g/+RuYP/kbmD/42weP+JpWv/ + iaVr/4mla/+Qpm3/rat1/62rdf+tq3X/rat1/+Gzhv/ltIf/5bSH/+W0h//stor/8LeL//C3i//wt4v/ + 7bSI/+ivg//or4P/6K+D/+Wrf/zMkWXrzJFl68yRZevMkWXrvYNX2LuBVdW7gVXVu4FV1bp/VIW4e1FP + uHtRT7h7UU+4e1E1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAB/wAAAf8AAAH/AAAB + uHpQNbh7UU+4e1FPuHtRT7p/VIW7gVXVu4FV1buBVdW9g1fYzJFl68yRZevMkWXrzJFl6+Wrf/zor4P/ + 6K+D/+ivg//ttIj/8LeL//C3i//wt4v/7LaK/+W0h//ltIf/5bSH/+Gzhv+tq3X/rat1/62rdf+tq3X/ + kKZt/4mla/+JpWv/iaVr/42weP+RuYP/kbmD/5G5g/+UvYn/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/ + ncmY/53JmP+UvYn/kbmD/5G5g/+RuYP/jbB4/4mla/+JpWv/iaVr/5Cmbf+tq3X/rat1/62rdf+tq3X/ + 4bOG/+W0h//ltIf/5bSH/+y2iv/wt4v/8LeL//C3i//ttIj/6K+D/+ivg//or4P/5at//MyRZevMkWXr + zJFl68yRZeu9g1fYu4FV1buBVdW7gVXVun9Uhbh7UU+4e1FPuHtRT7h7UTUAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAP8AAAH/AAAB/wAAAf8AAAG4elAquHtRP7h7UT+4e1E/un9UaruBVaq7gVWq + u4FVqr2DV67LkGTIy5BkyMuQZMjLkGTI3KV58N6oe/beqHv23qh79t6ugPvesoP93rKD/d6yg/3asYP+ + 0rGB/9Kxgf/SsYH/0LGB/6iuef+ornn/qK55/6iuef+TrXX/jax0/42sdP+NrHT/kbV+/5S8h/+UvIf/ + lLyH/5bAjP+dyZj/ncmY/53JmP+dyZj/ncmY/53JmP+dyZj/ncmY/5bAjP+UvIf/lLyH/5S8h/+RtX7/ + jax0/42sdP+NrHT/k611/6iuef+ornn/qK55/6iuef/QsYH/0rGB/9Kxgf/SsYH/2rGD/t6yg/3esoP9 + 3rKD/d6ugPveqHv23qh79t6oe/bcpXnwy5BkyMuQZMjLkGTIy5BkyL2DV667gVWqu4FVqruBVaq6f1Rq + uHtRP7h7UT+4e1E/uHtRKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtHtPCLR7Tzq0e086tHtPOrR7TzqwhVa/ + sIVW07CFVtOwhVbTnpNf6ZSbZPeUm2T3lJtk95CeZvqIpWv/iKVr/4ila/+Jpm3/k7uH/5O7h/+Tu4f/ + k7uH/5zGlf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cxpX/k7uH/5O7h/+Tu4f/ + k7uH/4mmbf+IpWv/iKVr/4ila/+Qnmb6lJtk95SbZPeUm2T3npNf6bCFVtOwhVbTsIVW07CFVr+0e086 + tHtPOrR7Tzq0e086tHtPCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAC0e08ItHtPOrR7Tzq0e086tHtPOrCFVr+whVbTsIVW07CFVtOek1/plJtk95SbZPeUm2T3 + kJ5m+oila/+IpWv/iKVr/4mmbf+Tu4f/k7uH/5O7h/+Tu4f/nMaV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5zGlf+Tu4f/k7uH/5O7h/+Tu4f/iaZt/4ila/+IpWv/iKVr/5CeZvqUm2T3 + lJtk95SbZPeek1/psIVW07CFVtOwhVbTsIVWv7R7Tzq0e086tHtPOrR7Tzq0e08IAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALR7Twi0e086tHtPOrR7Tzq0e086 + sIVWv7CFVtOwhVbTsIVW056TX+mUm2T3lJtk95SbZPeQnmb6iKVr/4ila/+IpWv/iaZt/5O7h/+Tu4f/ + k7uH/5O7h/+cxpX/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMaV/5O7h/+Tu4f/ + k7uH/5O7h/+Jpm3/iKVr/4ila/+IpWv/kJ5m+pSbZPeUm2T3lJtk956TX+mwhVbTsIVW07CFVtOwhVa/ + tHtPOrR7Tzq0e086tHtPOrR7TwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAtHtPCLR7Tzq0e086tHtPOrR7TzqwhVa/sIVW07CFVtOwhVbTnpNf6ZSbZPeUm2T3 + lJtk95CeZvqIpWv/iKVr/4ila/+Jpm3/k7uH/5O7h/+Tu4f/k7uH/5zGlf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cxpX/k7uH/5O7h/+Tu4f/k7uH/4mmbf+IpWv/iKVr/4ila/+Qnmb6 + lJtk95SbZPeUm2T3npNf6bCFVtOwhVbTsIVW07CFVr+0e086tHtPOrR7Tzq0e086tHtPCAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHefYBF3n2Aqd59gKnefYCp5oGI8fKJlrnyiZa58omWu + fKJlroKla96DpWzmg6Vs5oOlbOaPtH/0lr2K/pa9iv6WvYr+mMCO/p3Hlv+dx5b/nceW/53Hlv+dyJj/ + nciY/53ImP+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/ + nciY/53ImP+dyJj/nceW/53Hlv+dx5b/nceW/5jAjv6WvYr+lr2K/pa9iv6PtH/0g6Vs5oOlbOaDpWzm + gqVr3nyiZa58omWufKJlrnyiZa55oGI8d59gKnefYCp3n2Aqd59gEQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + d59gEnefYC13n2Atd59gLXmhYj97o2W2e6NltnujZbZ7o2W2f6ds4ICnbeeAp23ngKdt5462gfWWv43+ + lr+N/pa/jf6ZwpH+nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + mcKR/pa/jf6Wv43+lr+N/o62gfWAp23ngKdt54Cnbed/p2zge6NltnujZbZ7o2W2e6NltnmhYj93n2At + d59gLXefYC13n2ASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3n2ASd59gLXefYC13n2AteaFiP3ujZbZ7o2W2 + e6NltnujZbZ/p2zggKdt54CnbeeAp23njraB9Za/jf6Wv43+lr+N/pnCkf6eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+ZwpH+lr+N/pa/jf6Wv43+jraB9YCnbeeAp23n + gKdt53+nbOB7o2W2e6NltnujZbZ7o2W2eaFiP3efYC13n2Atd59gLXefYBIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHefYBJ3n2Atd59gLXefYC15oWI/e6NltnujZbZ7o2W2e6Nltn+nbOCAp23ngKdt54CnbeeOtoH1 + lr+N/pa/jf6Wv43+mcKR/p7Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5nCkf6Wv43+lr+N/pa/jf6OtoH1gKdt54CnbeeAp23nf6ds4HujZbZ7o2W2e6NltnujZbZ5oWI/ + d59gLXefYC13n2Atd59gEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHedXiV3nV4od51eKHedXih6oWRleqJlg3qiZYN6omWDfaRpk4CnbqyAp26sgKdurIOqcrSQuYTn + kLmE55C5hOeQuYTnlL6K9ZW+i/eVvov3lb6L95nDkfybxpX/m8aV/5vGlf+cx5b/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMeW/5vGlf+bxpX/m8aV/5nDkfyVvov3 + lb6L95W+i/eUvor1kLmE55C5hOeQuYTnkLmE54OqcrSAp26sgKdurICnbqx9pGmTeqJlg3qiZYN6omWD + eqFkZXedXih3nV4od51eKHedXiUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd51eOHedXjx3nV48d51ePHqhZJd6omXF + eqJlxXqiZcV9pWnUgahv64Gob+uBqG/rhKx07pfBj/+XwY//l8GP/5fBj/+dyJj/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+XwY//l8GP/5fBj/+XwY// + hKx07oGob+uBqG/rgahv632ladR6omXFeqJlxXqiZcV6oWSXd51ePHedXjx3nV48d51eOAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3nV44d51ePHedXjx3nV48eqFkl3qiZcV6omXFeqJlxX2ladSBqG/rgahv64Gob+uErHTu + l8GP/5fBj/+XwY//l8GP/53ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nciY/5fBj/+XwY//l8GP/5fBj/+ErHTugahv64Gob+uBqG/rfaVp1HqiZcV6omXF + eqJlxXqhZJd3nV48d51ePHedXjx3nV44AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHedXjh3nV48d51ePHedXjx6oWSX + eqJlxXqiZcV6omXFfaVp1IGob+uBqG/rgahv64SsdO6XwY//l8GP/5fBj/+XwY//nciY/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/l8GP/5fBj/+XwY// + l8GP/4SsdO6BqG/rgahv64Gob+t9pWnUeqJlxXqiZcV6omXFeqFkl3edXjx3nV48d51ePHedXjgAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd6BfDHegXxl3oF8Zd6BfGXmhYSR7omRR + e6JkUXuiZFF7omRRf6drf4Cna4KAp2uCgKdrgoavdr6IsXnciLF53IixedyKs3zljbaB8422gfONtoHz + j7iD9ZrEk/+axJP/msST/5rEk/+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/53ImP+axJP/msST/5rEk/+axJP/j7iD9Y22gfONtoHzjbaB84qzfOWIsXnc + iLF53IixedyGr3a+gKdrgoCna4KAp2uCf6drf3uiZFF7omRRe6JkUXuiZFF5oWEkd6BfGXegXxl3oF8Z + d6BfDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3oF8dd6BfPnegXz53oF8+eaFhWnuiZMt7omTLe6Jky3uiZMuDqm/qg6tw7IOrcOyDq3Ds + kbuH+ZjDkf+Yw5H/mMOR/5rFlP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/msWU/5jDkf+Yw5H/mMOR/5G7h/mDq3Dsg6tw7IOrcOyDqm/q + e6Jky3uiZMt7omTLe6Jky3mhYVp3oF8+d6BfPnegXz53oF8dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHegXx13oF8+d6BfPnegXz55oWFa + e6Jky3uiZMt7omTLe6Jky4Oqb+qDq3Dsg6tw7IOrcOyRu4f5mMOR/5jDkf+Yw5H/msWU/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+axZT/ + mMOR/5jDkf+Yw5H/kbuH+YOrcOyDq3Dsg6tw7IOqb+p7omTLe6Jky3uiZMt7omTLeaFhWnegXz53oF8+ + d6BfPnegXx0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAd6BfHXegXz53oF8+d6BfPnmhYVp7omTLe6Jky3uiZMt7omTLg6pv6oOrcOyDq3Ds + g6tw7JG7h/mYw5H/mMOR/5jDkf+axZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5rFlP+Yw5H/mMOR/5jDkf+Ru4f5g6tw7IOrcOyDq3Ds + g6pv6nuiZMt7omTLe6Jky3uiZMt5oWFad6BfPnegXz53oF8+d6BfHQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAgJ9gAYCfYAGAn2ABgJ9gAXacXxJ2nF8YdpxfGHacXxh4n2A2eKBhV3igYVd4oGFX + e6Nlb4Cna9KAp2vSgKdr0oCna9KGr3Xth69274evdu+Hr3bvk72J+pnEkv+ZxJL/mcSS/5vGlf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + m8aV/5nEkv+ZxJL/mcSS/5O9ifqHr3bvh69274evdu+Gr3XtgKdr0oCna9KAp2vSgKdr0nujZW94oGFX + eKBhV3igYVd3oGE1dp5gGHaeYBh2nmAYdp5gEoCfYAGAn2ABgJ9gAYCfYAGAn2AIgJ9gCICfYAiAn2AI + dpxfiHacX7d2nF+3dpxft3ieYtV6oGT4eqBk+HqgZPiAp235mMOR/5jDkf+Yw5H/mMOR/57JmP+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57JmP+YwpD/mMKQ/5jCkP+YwpD/f6dt+XmgZPh5oGT4eaBk+HifYtR2nmC1dp5gtXaeYLV2nmCH + gJ9gCICfYAiAn2AIgJ9gCICfYAiAn2AIgJ9gCICfYAh2nF+Idpxft3acX7d2nF+3eJ5i1XqgZPh6oGT4 + eqBk+ICnbfmYw5H/mMOR/5jDkf+Yw5H/nsmY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmY/5jCkP+YwpD/mMKQ/5jCkP9/p235 + eaBk+HmgZPh5oGT4eJ9i1HaeYLV2nmC1dp5gtXaeYIeAn2AIgJ9gCICfYAiAn2AIgJ9gCICfYAiAn2AI + gJ9gCHacX4h2nF+3dpxft3acX7d4nmLVeqBk+HqgZPh6oGT4gKdt+ZjDkf+Yw5H/mMOR/5jDkf+eyZj/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZj/mMKQ/5jCkP+YwpD/mMKQ/3+nbfl5oGT4eaBk+HmgZPh4n2LUdp5gtXaeYLV2nmC1 + dp5gh4CfYAiAn2AIgJ9gCICfYAiAn2AIgJ9gCICfYAiAn2AIdpxfiHacX7d2nF+3dpxft3ieYtV6oGT4 + eqBk+HqgZPiAp235mMOR/5jDkf+Yw5H/mMOR/57JmP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57JmP+YwpD/mMKQ/5jCkP+YwpD/ + f6dt+XmgZPh5oGT4eaBk+HifYtR2nmC1dp5gtXaeYLV2nmCHgJ9gCICfYAiAn2AIgJ9gCICfYAGAn2AB + gJ9gAYCfYAF0nGAVdJxgHXScYB10nGAdd6BjR3mhY3h5oWN4eaFjeHujZo1/p2zif6ds4n+nbOJ/p2zi + irN88Yu0ffKLtH3yi7R98pbAjfubxpX/m8aV/5vGlf+cx5b/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHlv+bxpX/m8aV/5vGlf+WwI37 + i7R98ou0ffKLtH3yirN88X+nbOJ/p2zif6ds4n+nbOJ7o2aNeKFjeHihY3h4oWN4eJ9iR3eaXBx3mlwc + d5pcHHeaXBWAn2ABgJ9gAYCfYAGAn2ABAAAAAAAAAAAAAAAAAAAAAGaZZgRmmWYFZplmBWaZZgV3oWMx + eKFjZHihY2R4oWNkeaFkfHuiZt17ombde6Jm3XuiZt2Hr3jviLB58IiwefCIsHnwlb6L+pvFlP+bxZT/ + m8WU/5zHlv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nMeW/5vFlP+bxZT/m8WU/5W+i/qIsHnwiLB58IiwefCHr3jve6Jm3XuiZt17ombd + e6Jm3XmhZHx4oWNkeKFjZHihY2R4oGExgIBABICAQASAgEAEgIBAAwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAZplmBGaZZgVmmWYFZplmBXehYzF4oWNkeKFjZHihY2R5oWR8e6Jm3XuiZt17ombd + e6Jm3YeveO+IsHnwiLB58IiwefCVvov6m8WU/5vFlP+bxZT/nMeW/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cx5b/m8WU/5vFlP+bxZT/ + lb6L+oiwefCIsHnwiLB58IeveO97ombde6Jm3XuiZt17ombdeaFkfHihY2R4oWNkeKFjZHigYTGAgEAE + gIBABICAQASAgEADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmmWYEZplmBWaZZgVmmWYF + d6FjMXihY2R4oWNkeKFjZHmhZHx7ombde6Jm3XuiZt17ombdh69474iwefCIsHnwiLB58JW+i/qbxZT/ + m8WU/5vFlP+cx5b/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5zHlv+bxZT/m8WU/5vFlP+Vvov6iLB58IiwefCIsHnwh69473uiZt17ombd + e6Jm3XuiZt15oWR8eKFjZHihY2R4oWNkeKBhMYCAQASAgEAEgIBABICAQAMAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAGaZZgFmmWYCZplmAmaZZgJ3oWMUeKFjKHihYyh4oWMoeaFkMnqiZlp6omZa + eqJmWnqiZlqBqnCWgapwmoGqcJqBqnCah693z4ixeemIsXnpiLF56Yy0fu6QuoX1kLqF9ZC6hfWSvIf3 + nMeW/5zHlv+cx5b/nMeW/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5zHlv+cx5b/nMeW/5zHlv+SvIf2kbqF9ZG6hfWRuoX1jLV+7oixeemIsXnp + iLF56Yevd8+BqnCagapwmoGqcJqBqnCWe6JmWnuiZlp7omZae6JmWnmhZDJ4oWMoeKFjKHihYyh4oGEU + gIBAAoCAQAKAgEACgIBAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAABVqlUBVapVA1WqVQNVqlUDVapVA3agYVt2oGFhdqBhYXagYWF5oWOy + eqFk23qhZNt6oWTbf6ds44avd++Gr3fvhq9374mye/GaxZT/msWU/5rFlP+axZT/nciY/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/msWU/5rFlP+axZT/ + msWU/4qze/CHsHfuh7B37oewd+5/p2zjeqFk23qhZNt6oWTbeaFjsnagYWF2oGFhdqBhYXagYVuAgIAC + gICAAoCAgAKAgIACgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFWqVQFVqlUD + VapVA1WqVQNVqlUDdqBhW3agYWF2oGFhdqBhYXmhY7J6oWTbeqFk23qhZNt/p2zjhq9374avd++Gr3fv + ibJ78ZrFlP+axZT/msWU/5rFlP+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/53ImP+axZT/msWU/5rFlP+axZT/irN78Iewd+6HsHfuh7B37n+nbON6oWTb + eqFk23qhZNt5oWOydqBhYXagYWF2oGFhdqBhW4CAgAKAgIACgICAAoCAgAKAgIAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVapVAVWqVQNVqlUDVapVA1WqVQN2oGFbdqBhYXagYWF2oGFh + eaFjsnqhZNt6oWTbeqFk23+nbOOGr3fvhq9374avd++JsnvxmsWU/5rFlP+axZT/msWU/53ImP+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciY/5rFlP+axZT/ + msWU/5rFlP+Ks3vwh7B37oewd+6HsHfuf6ds43qhZNt6oWTbeqFk23mhY7J2oGFhdqBhYXagYWF2oGFb + gICAAoCAgAKAgIACgICAAoCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVqlUA + VapVAlWqVQJVqlUCVapVAnagYTx2oGFBdqBhQXagYUF5oWN3eqFkknqhZJJ6oWSSf6ZrooSsc7qErHO6 + hKxzuoaud8GRuobxkbqG8ZG6hvGRuobxlb+M95bAjfiWwI34lsCN+JrEk/ycx5f/nMeX/5zHl/+dyJf/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciX/5zHl/+cx5f/ + nMeX/5rEk/yWwI34lsCN+JbAjfiVv4z3kbqG8ZG6hvGRuobxkbqG8Yevd8CFrXO5ha1zuYWtc7l/p2ui + eqFkknqhZJJ6oWSSeaFjd3agYUF2oGFBdqBhQXagYTyAgIABgICAAYCAgAGAgIABgICAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB3m14gd5teT3ebXk93m15PeJxgYXqgZdV6oGXVeqBl1XqgZdWEq3Ln + ha106oWtdOqFrXTqkbuH95nDkv+Zw5L/mcOS/5vFlP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+bxZT/mcOS/5nDkv+Zw5L/kbuH94WtdOqFrXTqha106oSrcud6oGXV + eqBl1XqgZdV6oGXVeJxgYXebXk93m15Pd5teT3ebXiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHebXiB3m15P + d5teT3ebXk94nGBheqBl1XqgZdV6oGXVeqBl1YSrcueFrXTqha106oWtdOqRu4f3mcOS/5nDkv+Zw5L/ + m8WU/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5vFlP+Zw5L/ + mcOS/5nDkv+Ru4f3ha106oWtdOqFrXTqhKty53qgZdV6oGXVeqBl1XqgZdV4nGBhd5teT3ebXk93m15P + d5teIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5teIHebXk93m15Pd5teT3icYGF6oGXVeqBl1XqgZdV6oGXV + hKty54WtdOqFrXTqha106pG7h/eZw5L/mcOS/5nDkv+bxZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/m8WU/5nDkv+Zw5L/mcOS/5G7h/eFrXTqha106oWtdOqEq3Ln + eqBl1XqgZdV6oGXVeqBl1XicYGF3m15Pd5teT3ebXk93m14gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3m14d + d5teSnebXkp3m15KeJxgWnqgZcd6oGXHeqBlx3qgZceDq3Lbha103oWtdN6FrXTekLqF8JfBkPuXwZD7 + l8GQ+5nDkvycx5f+nMeX/pzHl/6cx5f+nciY/53ImP+dyJj/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsiY/57ImP+eyJj/nsiY/5zHl/6cx5f+nMeX/pzHl/6Zw5L8 + l8GQ+5fBkPuXwZD7kLqF8IWtdN6FrXTeha103oOrctt6oGXHeqBlx3qgZcd6oGXHeJxgWnebXkp3m15K + d5teSnebXh0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHacXi92nF42dpxeNnacXjZ6oGSNe6Flx3uhZcd7oWXHfqRp0oKqcemCqnHpgqpx6YOsc+qWwY7/ + lsGO/5bBjv+WwY7/nMeX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Hl/+XwY7/ + l8GO/5fBjv+XwY7/hKxz6oKqcemCqnHpgqpx6X6kadJ7oWXHe6Flx3uhZcd6oGSNdpxeNnacXjZ2nF42 + dpxeLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdpxeL3acXjZ2nF42dpxeNnqgZI17oWXH + e6Flx3uhZcd+pGnSgqpx6YKqcemCqnHpg6xz6pbBjv+WwY7/lsGO/5bBjv+cx5f/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nceX/5fBjv+XwY7/l8GO/5fBjv+ErHPqgqpx6YKqcemCqnHp + fqRp0nuhZcd7oWXHe6Flx3qgZI12nF42dpxeNnacXjZ2nF4vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB2nF4vdpxeNnacXjZ2nF42eqBkjXuhZcd7oWXHe6Flx36kadKCqnHpgqpx6YKqcemDrHPq + lsGO/5bBjv+WwY7/lsGO/5zHl/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dx5f/ + l8GO/5fBjv+XwY7/l8GO/4Ssc+qCqnHpgqpx6YKqcel+pGnSe6Flx3uhZcd7oWXHeqBkjXacXjZ2nF42 + dpxeNnacXi8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHacXi92nF42dpxeNnacXjZ6oGSN + e6Flx3uhZcd7oWXHfqRp0oKqcemCqnHpgqpx6YOsc+qWwY7/lsGO/5bBjv+WwY7/nMeX/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Hl/+XwY7/l8GO/5fBjv+XwY7/hKxz6oKqcemCqnHp + gqpx6X6kadJ7oWXHe6Flx3uhZcd6oGSNdpxeNnacXjZ2nF42dpxeLwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAdpxeCXacXgt2nF4LdpxeC3qgZBx7oWUoe6FlKHuhZSh8omc1faRpT32kaU99pGlP + fqVqV4GpcMWBqXDFgalwxYGpcMWGrXXkhq527IauduyGrnbsj7mD9pfBjv6XwY7+l8GO/pnDkf6eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5nDkf6XwY7+l8GO/pfBjv6PuYP2hq527IauduyGrnbs + hq115IKpcMWCqXDFgqlwxYKpcMV+pWpXfaRpT32kaU99pGlPfKJnNXuhZSh7oWUoe6FlKHqgZBx2nF4L + dpxeC3acXgt2nF4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAHabXQ52m10pdptdKXabXSl3nF8yeqBltnqgZbZ6oGW2eqBltn+ma92Ap2zn + gKds54CnbOeMtH3zlb+L/pW/i/6Vv4v+l8KP/p7Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + l8KP/pW/i/6Vv4v+lb+L/oy0ffOAp2zngKds54CnbOd/pmvdeqBltnqgZbZ6oGW2eqBltnecXzJ2m10p + dptdKXabXSl2m10OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdptdDnabXSl2m10p + dptdKXecXzJ6oGW2eqBltnqgZbZ6oGW2f6Zr3YCnbOeAp2zngKds54y0ffOVv4v+lb+L/pW/i/6Xwo/+ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+Xwo/+lb+L/pW/i/6Vv4v+jLR984CnbOeAp2zn + gKds53+ma916oGW2eqBltnqgZbZ6oGW2d5xfMnabXSl2m10pdptdKXabXQ4AAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB2m10OdptdKXabXSl2m10pd5xfMnqgZbZ6oGW2eqBltnqgZbZ/pmvd + gKds54CnbOeAp2znjLR985W/i/6Vv4v+lb+L/pfCj/6eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5fCj/6Vv4v+lb+L/pW/i/6MtH3zgKds54CnbOeAp2znf6Zr3XqgZbZ6oGW2eqBltnqgZbZ3nF8y + dptdKXabXSl2m10pdptdDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHabXQZ2m10T + dptdE3abXRN3nF8YeqBlVXqgZVV6oGVVeqBlVX6lanF/pWt4f6VreH+la3iGrnWiirJ7x4qye8eKsnvH + i7R90o22gPGNtoDxjbaA8Y22gPGNtoDxjbaA8Y22gPGNtoDxjLR90ouze8eLs3vHi7N7x4eudqJ/pWt4 + f6VreH+la3h+pWpxeqBlVXqgZVV6oGVVeqBlVXecXxh2m10TdptdE3abXRN2m10GAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + dJddEnSXXRZ0l10WdJddFnmfY1t6oGSXeqBkl3qgZJd7oWWsfaRo5X2kaOV9pGjlfaRo5X2kaOV9pGjl + faRo5X2kaOV8oWWrfKBklnygZJZ8oGSWe59jWnSXXRZ0l10WdJddFnSXXRIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0l10SdJddFnSXXRZ0l10WeZ9jW3qgZJd6oGSX + eqBkl3uhZax9pGjlfaRo5X2kaOV9pGjlfaRo5X2kaOV9pGjlfaRo5XyhZat8oGSWfKBklnygZJZ7n2Na + dJddFnSXXRZ0l10WdJddEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHSXXRJ0l10WdJddFnSXXRZ5n2NbeqBkl3qgZJd6oGSXe6FlrH2kaOV9pGjlfaRo5X2kaOV9pGjl + faRo5X2kaOV9pGjlfKFlq3ygZJZ8oGSWfKBklnufY1p0l10WdJddFnSXXRZ0l10SAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddDXSXXRB0l10QdJddEHmfY0N6oGRv + eqBkb3qgZG97oWV/faRorH2kaKx9pGisfaRorH2kaKx9pGisfaRorH2kaKx8oWV+fKBkbnygZG58oGRu + e59jQnSXXRB0l10QdJddEHSXXQ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHeZZgR3mWYPd5lmD3eZZg93mWYP + baRbDm2kWw5tpFsObaRbDm2kWwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAd5lmBHeZZg93mWYPd5lmD3eZZg9tpFsObaRbDm2kWw5tpFsObaRbBAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3mWYEd5lmD3eZZg93mWYP + d5lmD22kWw5tpFsObaRbDm2kWw5tpFsEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAHeZZgR3mWYPd5lmD3eZZg93mWYPbaRbDm2kWw5tpFsObaRbDm2kWwQAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/////////g + B///////////////////4Af//////////////////+AH///////////////////gB/////////////// + ///gAAAH////////////////4AAAB////////////////+AAAAf////////////////gAAAH//////// + ///////AAAAAAAP/////////////wAAAAAAD/////////////8AAAAAAA//////////////AAAAAAAP/ + ///////////AAAAAAAAAA///////////wAAAAAAAAAP//////////8AAAAAAAAAD///////////AAAAA + AAAAA///////////wAAAAAAAAAP/////////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAH///////+A + AAAAAAAAAAAB////////gAAAAAAAAAAAAf//////gAAAAAAAAAAAAAAB/////4AAAAAAAAAAAAAAAf// + //+AAAAAAAAAAAAAAAH/////gAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAA + AAAA//8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP + 8AAAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAA + AAAP///wAAAAAAAAAAAAAAAAD/////+AAAAAAAAAAAAB////////gAAAAAAAAAAAAf///////4AAAAAA + AAAAAAH///////+AAAAAAAAAAAAB////////+AAAAAAAAAAAH/////////gAAAAAAAAAAB/////////4 + AAAAAAAAAAAf////////+AAAAAAAAAAAH///////+AAAAAAAAAAAAAAf//////gAAAAAAAAAAAAAH/// + ///4AAAAAAAAAAAAAB//////+AAAAAAAAAAAAAAf////8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAA + AAAP///wAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAA + AAAA//8AAAAAAAAAAAAAAAAAAP///4AAAAAAAAAAAAAAH/////+AAAAAAAAAAAAAAB//////gAAAAAAA + AAAAAAAf/////4AAAAAAAAAAAAAAH///////+AAAAAAAAAAAH/////////gAAAAAAAAAAB/////////4 + AAAAAAAAAAAf////////+AAAAAAAAAAAH////////4AAAAAAAAAAAAH///////+AAAAAAAAAAAAB//// + ////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAH//////4AAAAAAAAAAAAAAAf////+AAAAAAAAAAAAA + AAH/////gAAAAAAAAAAAAAAB/////4AAAAAAAAAAAAAAAf///wAAAAAAAAAAAAAAAAAA//8AAAAAAAAA + AAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAA + AAAAD/AAAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAP///wAAAAAAAA + AAAAAAAAD///8AAAAAAAAAAAAAAAAA//////gAAAAAAAAAAAAf///////4AAAAAAAAAAAAH///////+A + AAAAAAAAAAAB////////gAAAAAAAAAAAAf/////////AAAAAAAAAA///////////wAAAAAAAAAP///// + /////8AAAAAAAAAD///////////AAAAAAAAAA///////////wAAAAAAAAAP////////////AAAAAAAP/ + ////////////wAAAAAAD/////////////8AAAAAAA//////////////AAAAAAAP//////////////+AA + AAf////////////////gAAAH////////////////4AAAB////////////////+AAAAf///////////// + ////4Af//////////////////+AH///////////////////gB///////////////////4Af///////// + KAAAAEAAAACAAAAAAQAgAAAAAAAAQAAAYQoAAGEKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLuqAsy7qg/Mu6oPyLakDsi2pA7ItqQC + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy7qgLMu6oP + zLuqD8i2pA7ItqQOyLakAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANG5ogjRuaIT + 0LqoMdC7q4PQvKuM0sCtyNLArcjSwK3I0sCtyNC8q4vPu6qC0LqoMdG5ohPRuaIIAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADRuaIJ0bmiFtC6qDjQu6uX0LyrodLAreXSwK3l0sCt5dLAreXQvKuhz7uqltC6qDjRuaIW + 0bmiCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADRuaIL0bmiENC8qkDQvKtq0r6shdPArazXxrS64NLE4OHUx+Pp4NP46eDT+Ong0/jp4NP4 + 4dTG49/SxN/XxrS608CtrNK+rIXQvKtq0LyqQNG5ohDRuaILAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0bmiD9G5ohbQvKpY0LyrkdK+rLLTwK3j2Me16ePXyvrl2s37 + 8erg//Hq4P/x6uD/8erg/+Xazfvj18r62Me16dPArePSvqyy0LyrkdC8qljRuaIW0bmiDwAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAybmiEsm5ohTRvqxT0b6sY9PAroPUwa6T3My8tOHSxNLj1sjf + 5tvO9Ojd0Pbs49j97eTZ/fLr4f/y6+H/8uvh//Lr4f/t5Nn97OPY/ejd0Pbm287049bI3+HSxNLczLy0 + 1MGuk9PAroPRvaxj0b2sU8m5ohTJuaISAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMm5oh/JuaIh0b6si9G+rKXTwK7Q + 1MGv5t/PwPLn28796+HW/vLr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh/+vh1v7n287938/A8tTBr+bTwK7Q0b2spdG9rIvJuaIhybmiHwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLWkBMy1pBXNt6YZ0b2rVdG9q1XTwrB7 + 08Kxfd7Qwb7f0sPP4tTG5uPWyPLo3dD47OLX/u7m2/7y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/u5tv+7OLX/ujd0Pjj1sjy4tTG5t/Rw8/ez8G+08KxfdPCsHvRvatV + 0b2rVc23phnMtaQVzLWkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy1pAnMtaQt + zbemNtG9q7bRvau21cSz5NXEs+fm28756uDU/u/n3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3f/q4NT+ + 5tvO+dXEs+fVxLPk0b2rttG9q7bNt6Y2zLWkLcy1pAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMy3ognMt6IU + zrunI9C9qkLRvqxK1MGwbNXCsnPczL3O3My9zt/Sw+3f0sPv6uDU++3k2P7w6d7/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/w6d7/7eTY/urg1Pvf0sPv39LD7dzMvc7czL3O1cKyc9TBsGzRvqxK0L2qQs67pyPMt6IU + zLeiCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADMt6IczLeiPM67p2rQvarF0r+tzdfFtevYx7fs6+LW/+vi1v/y6uD/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lq4P/r4tb/6+LW/9jHt+zXxbXr + 0r+tzdC9qsXOu6dqzLeiPMy3ohwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADOuaUJzrmlDNC9qh3Rvqsp0r+sQtK/rV/Vw7GF18e10djIt9fdzb7v3s/A8Ozk2P/s5Nj/ + 8uvg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+D/ + 7OTY/+zk2P/ez8Dw3c2+79jIt9fXx7XR1cOxhdK/rV/Sv6xC0b6rKdC9qh3OuaUMzrmlCQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzrmlLc65pT7QvaqT0b6ry9XDstrZyLjs4NLD8u3k2P/u5dr/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/u5dr/7eTY/+DSw/LZyLjs1cOy2tG+q8vQvaqT + zrmlPs65pS0AAAAAAAAAAAAAAAAAAAAAv7+fAb+/nwHNuKQLzbikDM66pjrOuqZK0sCtmtPBr87XxrXd + 28u77eHUxfPt5Nn/7uba//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7uba/+3k2f/h1MXz + 28u77dfGtd3Twa/O0sCtms66pkrOuqY6zrmlDM65pQu/v58Bv7+fAb+/nwi/v58IzbikoM24pLfPu6jn + 0Lyp+OLUxvzt5Nj/7+fc//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/v59z/7OPX/+HUxfzQvKr40Lup5s65pbXOuaWev7+fCL+/nwi/v58I + v7+fCM24pKDNuKS3z7uo59C8qfji1Mb87eTY/+/n3P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/7+fc/+zj1//h1MX80Lyq+NC7qebOuaW1 + zrmlnr+/nwi/v58Iv7+fAb+/nwHNvqEPzb6hEc+6qFXPuqhu0b6sstK/rt/YyLjo3tHC8eTZy/bv59z/ + 8Ojd//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8ene/+zi1f/p28z/1LCT/9Swk//UsJP/1LCT/+nbzP/s4tX/8ene//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+/n3P/k2cv23tHC8djIuOjSv63f + 0b6sss+6qG7PuqhVyrqrEMq6qw6/v58Bv7+fAQAAAAAAAAAAzMyZBMzMmQXPuqhLz7qoZNC8qq3QvKrd + 1sW15t3PwPDj18r17+fc//Do3f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Do3v/s4dT/6drL/9Ksjf/SrI3/0qyN/9Ksjf/p2sv/7OHU//Do3v/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Do3f/v59z/ + 49fK9d3PwPDWxbXm0Lyq3dC8qq3Puqhkz7qoSr+/vwS/v78DAAAAAAAAAAAAAAAAAAAAAMzMmQHMzJkB + z7qoD8+6qBTOu6okzruqL9K/rlPTwbB+1cOyn9fGteLZybnl4dTF8uLVx/Pv59z/7+fc//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh/+/l2f/s4NL/4867/9a0mf/TrpH/y557/82fe//apnz/2qZ8/9qlfP/apXz/ + zZ97/8ueev/TrpH/1rSZ/+POu//s4NL/7+XZ//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3P/v59z/ + 4tXH8uHUxfHZybnl18a14tXDsp/TwbB+07+uU9K6qS7Ruqgjz7qoFM+6qA+/v78Bv7+/AQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqqqqAqqqqgPMuKYvzbimYc+7qIrQvarb08Gu393Ovu/e0MDw + 7ubb/+7m2//y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/u5Nf/6t3O/9/Hsv/Ppof/zJ9+/8ONZf/GkGj/ + 3KR4/9ykeP/co3j/3KN4/8aQZ//DjWT/zJ9+/8+mh//fx7L/6t3O/+7k1//y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/u5tv/7ubb/97QwO/dzr7u08Gu39C9qtvPu6iKzbimYc63pS7/gIAC/4CAAQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKqqqgGqqqoBzLimEM24piDPu6gu + 0L2qSdLArVXXxbSE2Ma1i9vMvOPbzLzj49bI8OPWyPHo3M786d3Q/+DIs//bvaX/1bGV/9Cnh//TpYL/ + 16N7/9mkfP/gqH7/4ql//+mxhf/psYX/6bCF/+mwhf/iqX7/4Kh9/9mkfP/Xo3v/06WC/9Cnh//VsZX/ + 272l/+DIs//p3dD/6NzO/OPWyPHj1sjw28y849vMvOPYxrWK18W0hNLArVXQvapJz7uoLs24piDOt6UP + /4CAAf+AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAADPuKUQz7ilT8+5pljPvarVz72q1drKuunby7vq49TF++XWx//Wtpz/ + z6aH/8mYdP/DjGP/zZRq/9uhdf/gp3v/77aK/++2iv/wt4v/8LeL//C3i//wt4v/77aK/++2iv/gp3v/ + 26F1/82Uav/DjGP/yZh0/8+mh//Wtpz/5dbH/+PUxfvby7vq2sq66c+9qtXPvarVz7mmWM+4pU/PuKUQ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz7ilB8+4pSXOtqIryrCYfMqwmHzMqo3R + zKmM19Gsj/XSrY/91qiF/tilgP/ZpHz/26N4/9+nfP/mrYH/6a+D//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/6a+D/+atgf/fp3z/26N4/9mkfP/YpYD/1qiF/tKtj/3RrI/1zKmM18yqjdHKsJh8 + yrCYfM62oivPuKUlz7ilBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + t3pOA7d6Ti63ek4uvIdcvbyHXMfAiF7xwYhe+9WbcP7fpXn/6K+D//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//or4P/36V5/9WbcP7BiF77 + wIhe8byHXMe8h1y9t3pOLrd6Ti63ek4DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + uH1PCLh9Txi5f1Iku4FVULyBVVPAhlp7wIZae86Wa9fOl2zd05pv9tSbcP3gpnv+5qyA/+uyhv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 67KG/+asgP/gpnv+1Jtw/dOab/bOl2zdzpZr18CGWnvAhlp7vIFVU7yBVVC6f1IkuH1PGLh9TwgAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALh9TxS4fU89uX9SWbuBVci8glbLw4ld7sOJXe7iqHz+5Kp+/+60iP/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utIj/5Kp+/+KofP7DiV3uw4ld7r2CVsu8gVXJ + un9SWbh9Tz24fU8UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALV+UQu1flESuX9TJLqAVDi9g1dJwYdabMOKXYHJj2PXyZBk2dCWavPQlmrz + 5qyA/uetgf/utYn/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/7rWJ/+etgf/mrID+ + 0JZq89CWavPKkGTZyo9j18SKXYHBh1psvoNXSbqAVDi5f1MktX5RErV+UQsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1flEptX5RRbl/U4e6gFTSv4VZ28eOYu3OlWnx + 566C/+ivg//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/6K+D/+eugv/PlWjwyI5h7L+FWdu6gFTSuX9Th7V+UUW1flEp + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqoBVAaqAVQG5gFIMuYBSDryBVRq9gVYev4ZZQ7+HWlzBh1uW + wohc2MaMYODNlGjv05pu8+ivg//psIT/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+mwhP/or4P/05pt8s6UZ+/GjGDg + wohc2MGIW5a/h1pcvoZZQ72BVh68gVUauYBSDrmAUgyqgFUBqoBVAaqAVQaqgFUGuYBSXbmAUmq8gVXA + vYFW38qPY+rSl2vx3qR4+Ouyh//ttIj/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7bSI/+uyh//dpHj40Zdq8smPYuq9gVbfvIFVwLmAUmq5gFJdqoBVBqqAVQaqgFUG + qoBVBrmAUl25gFJqvIFVwL2BVt/Kj2Pq0pdr8d6kePjrsof/7bSI//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+20iP/rsof/3aR4+NGXavLJj2LqvYFW37yBVcC5gFJq + uYBSXaqAVQaqgFUGv4BABL+AQAS6fVJXun1SZLuAVb27gVXdyY5i6NGWavDeo3f367KG/+20iP/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//vt4v/6bWJ/+m1if/ptoj/6baI/++3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//ttIj/67KG/96jd/fRlmrw + yY5i6LuBVd27gFW9un1SZLp9Ule/gEAEv4BABL+AQAS/gEAEun1SV7p9UmS7gFW9u4FV3cmOYujRlmrw + 3qN39+uyhv/ttIj/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/77eL/+m1if/ptYn/6baI/+m2iP/vt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 7bSI/+uyhv/eo3f30ZZq8MmOYui7gVXdu4BVvbp9UmS6fVJXv4BABL+AQAS/gEABv4BAAbp9Ugy6fVIN + un1VG7p9VSC/g1lTwIRZdcKHW6jDiFziyI5i6NKYa/LXnXH16rCF/+qxhf/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/7LaK/+a0iP/ZsoP/tKx3/7Crdv+Wp2//lqdv/5anb/+Wp2// + sat2/7Wsd//ZsoP/5rSI/+y2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 6rGF/+qxhP/XnXD10phr8siOYujDiFziwodbqMCEWXW/g1lTun1VILp9VRu6fVINun1SDL+AQAG/gEAB + AAAAAAAAAAAAAAAAAAAAAKpVVQKqVVUDuXxTPLl9U2K7gFScvIFV3sKHW+TNk2bw05ls8+mvhP/psIT/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+y2if/ltIf/1rGC/6uqdP+mqXP/ + iaVr/4mla/+JpWv/iaVr/6epc/+sqnT/1rGC/+W0h//ston/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL/+mwhP/psIP/05ls882TZvDCh1vkvIFV3ruAVJy5fVNiuXxTPKpVVQOqVVUC + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUBqlVVAbl8UxC5fVMavH9UKr1/VDzAhFhR + w4hcesWKXo7Jj2PgypBk4daccPDWnHDw6bCE/uqxhf/vtor/8LeL/+u2if/otYj/0rGB/7+ue/+zrHj/ + oqly/5+sdv+YtX//mLaB/5i/jP+Yv4z/mL+M/5i/jP+YtoH/mLV//5+sdv+iqXL/s6x4/7+ue//SsYH/ + 6LWI/+u2if/wt4v/77aK/+qxhf/psIT+1pxw8NaccPDKkGThyY9j4MWKXo7DiFx6wIRZULyBVTu7gFQq + uX1TGrl8UxCqVVUBqlVVAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAP8AAAD/AAABunhPG7h7UU+5fVNqu4FV1byCVtbMkWXrzJFl6+atgf7or4P/7rWJ//C3i//ptYj/ + 5bSH/8evff+tq3X/n6lx/4mla/+LqnH/kbmD/5O7hv+dyZj/ncmY/53JmP+dyZj/k7uG/5G5g/+LqnH/ + iaVr/5+pcf+tq3X/x699/+W0h//ptYj/8LeL/+61if/or4P/5q2B/syRZevMkWXrvIJW1ruBVdW5fVNq + uHtRT7h7URoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAALp4Twu4e1EguX1TKruBVVW8glZYxotfgcaLX4HJl2re + yZhq5bykcva6pnT6sal1/a2rdv+lsHv/nbWA/5q3g/+Wu4f/lr2J/5nDkP+Zw5H/nsmZ/57Jmf+eyZn/ + nsmZ/5nDkf+Zw5D/lr2J/5a7h/+at4P/nbWA/6Wwe/+tq3b/sal1/bqmdPq8pHL2yZhq5cmXat7Gi1+B + xotfgbyCVli7gVVVuX1TKrh7USC4e1ELAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + tHtPBLR7Tzq0e086sIVWybCFVtOZl2LwlJtk94yiafyIpWv/jrF6/5O7h/+XwY7/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/l8GO/5O7h/+OsXr/iKVr/4yiafyUm2T3 + mZdi8LCFVtOwhVbJtHtPOrR7Tzq0e08EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3n2AEd59gFXydYBuKmF90iphfdJiWYdWZlmHclqhz9JWsd/qTs339kraA/5W8iP+Ywo// + msWT/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5rFk/+Ywo// + lbyI/5K2gP+Ts339lax3+paoc/SZlmHcmJZh1YqYX3SKmF90fJ1gG3efYBV3n2AEAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd59gCXefYC14oGE2e6NltnujZbaAp23kgKdt55K7h/mWv43+ + m8aV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/m8aV/5a/jf6Su4f5gKdt54CnbeR7o2W2e6NltnigYTZ3n2At + d59gCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd51eCXedXhR5oGIjeqJlQnujZ0p+pmtsf6dsc4evds6Hr3bO + irN87Yuzfe+Wv437mcKR/pzHlv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHlv+ZwpH+lr+N+4uzfe+Ks3zt + h692zoevds5/p2xzfqZrbHujZ0p6omVCeaBiI3edXhR3nV4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHedXhx3nV48eaBianqiZcV8o2fN + gahv64OqceyXwY//l8GP/57ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsiY/5fBj/+XwY//g6px7IGob+t8o2fNeqJlxXmgYmp3nV48d51eHAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHegXwl3oF8MeqJjHXuiZCl8o2ZC + faRnX3+nbIWBqnDRg6ty14eveO+IsHrwmMOR/5jDkf+eyZj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57JmP+Yw5H/mMOR/4iwevCHr3jvg6ty14GqcNF/p2yF + faRnX3yjZkJ7omQpeqJjHXegXwx3oF8JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3oF8t + d6BfPnqiY5N7omTLf6dq2oOrcOyKs3zymMOR/5nEk/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5nEk/+Yw5H/irN88oOrcOx/p2rae6Jky3qiY5N3oF8+d6BfLQAAAAAAAAAAAAAAAAAAAACAn2AB + gJ9gAXacXwt2nF8MeKBgOnigYEp8pGaafaVozoGpbd2FrXPtjLV+85jDkv+axZP/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+axZP/mMOS/4y1fvOFrXPtgalt3X2laM58pGaad6BgSnegYDp2nmAM + dp5gC4CfYAGAn2ABgJ9gCICfYAh2nF+gdpxft3mfY+d6oGT4jLV//JjDkf+bxpX/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5vFlP+YwpD/ + jLV//HmgZPh4oGPmdp5gtXaeYJ6An2AIgJ9gCICfYAiAn2AIdpxfoHacX7d5n2PneqBk+Iy1f/yYw5H/ + m8aV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+bxZT/mMKQ/4y1f/x5oGT4eKBj5naeYLV2nmCegJ9gCICfYAiAn2ABgJ9gAXKbYQ9ym2ER + eKFjVXihY258pGiyfaVp34OrcuiKsnvxkLmE9pvFlP+cxpX/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+cxpX/m8WU/5C5hPaKsnvxg6ty6H2kad98pGiyeKFjbnigY1V4l1gQeJdYDoCfYAGAn2AB + AAAAAAAAAABmmWYEZplmBXihY0t4oWNkeqJlrXuiZt2BqW/miLB58I+3gvWbxZT/nMaV/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMaV/5vFlP+Pt4L1iLB58IGpb+Z7ombdeqJlrXihY2R4oWJK + gIBABICAQAMAAAAAAAAAAAAAAAAAAAAAZplmAWaZZgF4oWMPeKFjFHmiZSR5omUvfKVpU32man5/qGyf + galv4oOscuWLtH7yjLaA85vGlf+bxpX/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/m8aV/5vGlf+NtoDyjLV+8YSscuWBqW/if6hsn32man58pWlT + e6FnLnqhZiN4oWMUeKFiD4CAQAGAgEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVqlUC + VapVA3WgYS92oGFheKFjinqhZNt9pGjfhq9374exefCaxZT/msWU/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5rFlP+axZT/iLF574ewd+59pGjf + eqFk23ihY4p2oGFhdp9iLoCAgAKAgIABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAVapVAVWqVQF1oGEQdqBhIHihYy56oWRJfKNnVYCnbYSBqG6Lhq5344aud+ONtoDw + jreB8ZjCkfybxZT/nciX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciX/5vFlP+YwpH8jreB8Y22gPCGrnfj + hq5344GoboqBqG2EfKNnVXqhZEl4oWMudqBhIHafYg+AgIABgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHebXhB3m15P + d5xfWHqgZdV6oGXVhKxz6YWtdOqVv4z7mcOS/5zHl/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHl/+Zw5L/ + lb+M+4WtdOqErHPpeqBl1XqgZdV3nF9Yd5teT3ebXhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3m14Hd5teJXecXyl6oGVjeqBlY4Gpb4eCqW+KirJ70IuzfeGOt4LtkLmF85W/jfqaxZP/ + m8aV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zGlf+axZP/ + lb+N+pC5hfOOt4Lti7N94Yqye9CCqW+Kgalvh3qgZWN6oGVjd5xfKXebXiV3m14HAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2nF4ydpxeNnuhZap7oWXH + gKdt3oKqcemNt4H1lsGO/5nEkv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+axJL/l8GO/463gfWCqnHpgKdt3nuhZcd7oWWqdpxeNnacXjIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + dpxeHnacXiB7oWVme6Fld3+mbJCBqG+ciLF6wY22geKPuYTqk7yI9ZW/i/iaxZP/m8aU/57Jmf+eyZn/ + nsmZ/57Jmf+bxpT/msWT/5W/i/iTvIj1kLmE6o62geKJsXrBgahvnH+mbJB7oWV3e6FlZnacXiB2nF4e + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2m10bdptdKXmfZHR6oGW2faNoyoCnbOeGrnXt + lb+L/pbAjf6eyZn/nsmZ/57Jmf+eyZn/lsCN/pW/i/6GrnXtgKds532jaMp6oGW2eZ9kdHabXSl2m10b + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdptdFHabXR55n2RV + eqBlhX2jaJaApmuvha1zvZC5hOORuoXllsCN+JbAjfiWwI34lsCN+JG6heWRuoTiha1zvYCma699o2iW + eqBlhXmfZFV2m10edptdFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB0l10JdJddFnidYjh6oGSXe6FloX2kaOV9pGjlfaRo5X2kaOV8oWWh + fKBklnqdYjh0l10WdJddCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddCHSXXRN4nWIxeqBkg3uhZYx9pGjI + faRoyH2kaMh9pGjIfKFli3ygZIJ6nWIxdJddE3SXXQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB3mWYCd5lmD3eZZg9tpFsObaRbDm2kWwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5lmAneZZg93mWYPbaRbDm2kWw5tpFsCAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////4H/////////gf//// + ////gAH///////+AAf//////+AAAH//////4AAAf/////4AAAAH/////gAAAAf////AAAAAAD///8AAA + AAAP//8AAAAAAAD//wAAAAAAAP/wAAAAAAAAD/AAAAAAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADAAAAAAAAAA8AAAAAAAAAD/AAAAAAAAD/8AAAAAAAAP//wAAAAAA////AAAAAAD////AAA + AAA////AAAAAAAP//8AAAAAAA//8AAAAAAAAP/wAAAAAAAA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAA/wAAAAAAAAD/8AAAAAAAP//wAAAAAAA////AAA + AAA////wAAAAAA////AAAAAAD///AAAAAAAA//8AAAAAAAD/8AAAAAAAAA/wAAAAAAAADwAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAPAAAAAAAAAA/wAAAAAAAA//AAAAAAAAD//8AAA + AAAP///wAAAAAA////+AAAAB/////4AAAAH/////+AAAH//////4AAAf//////+AAf///////4AB//// + ////+B/////////4H////ygAAAAwAAAAYAAAAAEAIAAAAAAAACQAAGEKAABhCgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzLuqCcy7qg/ItqQOyLakCAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0bmiB9C6qBPQu6s80b6sVdHArWXRv6xk0b6sVM+7qjzQuqcT + 0bmiBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0bmiEtC6qDDQu6uX0b6sxtLAreXSwK3l + 0b6sxc+7qpbQuqcw0bmiEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIB0bmiEdC7qTnQvKt007+trNbEs8Ph08bm + 593Q8uvi1/rr4tf6593Q8uDTxubWxLPD07+trNC8q3TQu6k50bmiEdG5ogEAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJuaIBybmiB9C9qxbRvqwi07+rPtbDsmnXxban + 2cm429zNvezm28/77eTZ/fHq4P/x6uD/7eTZ/ebbz/vczb3s2cm429fFtqfWw7Jp07+rPtG9rCLQvasW + ybmiB8m5ogEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJuaIHybmiIdC9q3DRvqyo + 1MGv49zMvO/n28798Ojd//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+fbzv3czLzv + 1MGv49G9rKjQvatwybmiIcm5ogcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMtaQLzLWkG9G9q13Sv612 + 1MOymN7QwcDj1sjc59vO9Orf0/nu5dn+8erf//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8erf/+7l2f7q39P559vO9OPWyNze0MHA1MOymNK/rXbRvatdzLWkG8y1pAsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6ICzLijA9C9qgjOuaga + zrinNdK/rZ/Twa/C1sa16OPWyfXr4dX+8uvg//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvg/+vh1f7j1sn11sa16NPBr8LSv62fzrinNc65qBrQvaoI + zLijA8y3ogIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6Ij + zLijP9C9qrfTwa/M18W14+fcz/fs49f88erf/vHq4P/y6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4P/x6uD/8erf/uzj1/zn3M/3 + 18W149PBr8zQvaq3zLijP8y3oiMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOuaUU + z7uoJNG+q1HUwrBv1sSzht3Pv9jg0sPl4tXH8+zi1/3v59z/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh/+/n3P/s4tf94tXH8+DSw+Xdz7/Y1sSzhtTCsG/RvqtRz7uoJM65pRQAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAADOuaUyz7uoWtG+q8vWxLPf2sm57ezj1/7v59z/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh/+/n3P/s49f+2sm57dbEs9/RvqvLz7uoWs65pTIAAAAA + AAAAAAAAAAC/v58GzLikPs24pJLPu6jG1cOy2uje0fXr4tb57eXa+/Hp3//x6uD/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hq4P/x6d//7eXa++vh1vno3dD1 + 1cOy2tC7qcbOuaWRzbmlPr+/nwa/v58GzLmkP824pJPPu6jM1cOy4Ojd0Pjs4tb67ubb/PHq4P/y6+D/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4P/x6d7/7uPW/+ze0P/s3tD/ + 7uPW//Hp3v/y6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4P/x6uD/ + 7ubb/Ovi1vrn3M/41cOy4NC7qczOuaWSzbmlPr+/nwYAAAAAzMyZAszMmQXPuqhRz7upfNC8qt3YyLjo + 3tDB8e7m2/7w6d7/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Hp3v/s4dT/ + 3MGp/9Ksjf/SrI3/3MGp/+zh1P/x6d7/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Dp3v/u5tv+3tDB8djIuOjQvKrdz7upfM+6qFG/v78Ev7+/AgAAAAAAAAAAzMyZAczMmQLPuqgg + z7upMs+8qlrVw7OB18e3nt3PwObh1MXu5trN9e7l2v3w6d7/8uvh//Lr4f/y6+H/8uvh//Do3P/t49b/ + 4Mi0/9u+pv/Tr5H/1qqH/9ingP/Yp4D/1qqH/9Ovkf/bvqb/4Mi0/+3j1v/w6Nz/8uvh//Lr4f/y6+H/ + 8uvh//Dp3v/u5dr95trN9eHUxe7dz8Dm18e3ntXDs4DRu6la0LqpMs+6qCC/v78Cv7+/AQAAAAAAAAAA + AAAAAAAAAAAAAAAAqqqqAaqqqgPMuKY5zbimYtC9qs3VxLLb3c6+6Org1Pnu5tv98erg/vHq4P/x6uD/ + 8ejd/+3i1f/o2sr/1LCU/82hgP/Fj2f/05xx/92lef/dpHn/05tx/8WPZv/NoYD/1LCU/+jayv/t4tX/ + 8ejd//Hq4P/x6uD/8erg/u7m2/3q4NT53c6+59XEstrQvarNzbimYs63pTn/gIAC/4CAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqqqqAKqqqgDMuKYCzbimBNC9qgnRu6go0buoVtG/rL3TwrDb + 3My96+LTxPfl1cb/0auN/8yfff/Fj2f/1p5z/96lef/ttIj/7rWK/++2iv/vtor/7rWJ/+20iP/epXn/ + 1p5z/8WPZ//Mn33/0auN/+XVxv/i08T33My969PCsNvRv6y90buoVtG7qCjQvaoJzbimBM63pQL/gIAA + /4CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPuKUT + z7ilL8y1n37NtJ2h0LKZ3NS1nPDXtpz91aaD/9WifP/VnXP/4ad8/+asgP/vtor/8LeL//C3i//wt4v/ + 8LeL/++2iv/mrID/4ad8/9Wdc//Vonz/1aaD/9e2nP3UtZzw0LKZ3M20naHMtZ9+z7ilL8+4pRMAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAALd6TiW6gVVNvIdcx7+IXebCiV/73qR4/+asgP/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//mrID/3qR4/8KJX/u/iF3mvIdcx7qBVU23ek4l + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAuH1PArh9Ty+6gFNdu4FVoMGHW8DJj2PQ3aR49OOqfvrnroL+7LOH/+61if/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utYn/7LOH/+eugv7jqn76 + 3aR49MmPY9DBh1vAvIFVobuAU164fU8vuH1PAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAtX5RA7V+UQ65gFMfuoBULL+FWF7DiV2Oxoxg08uRZevSmGz05q2B/+yzh//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//ss4f/5q2B/9KYbPTLkWXrxoxg1MSJXY7AhVheu4BULLmAUx+1flEOtX5RAwAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtX5RDrV+UUW5gFOau4FV08eNYezUm2/0566C/+61if/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//utYn/566C/9Wbb/THjWHru4FV07mAU5q1flFF + tX5RDgAAAAAAAAAAAAAAAAAAAACqgFUEuIBSHLmAUkC9gVZ4wYVajc2TZ6zWnHDT2qF17eCne/flrID7 + 7LOH/++2iv/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//vtor/7LOH/+WsgPrgp3v3 + 2qF17dWccNPNk2atwYVajr2BVni5gFJAuIBSHKqAVQSqgFUGuIBSLrmAUmq9gVbIwYZa49KXa/HhqHz5 + 67KH//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/67KH/+GofPrRl2rywYZa472BVsi5gFJquIBSLqqAVQa/gEAEun1RKrp9UmS7gVXF + wIVZ4dGWavDhp3v567KG//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7LaK/+m1if/ptoj/7LaJ//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/67KG/+Gne/nRlmrwwIVZ4buBVcW6fVJkun1RKr+AQAS/gEAC + un1RGbp9Ujy7gFV3v4VZkMyRZbfVm2/a2qB08uKpfPnnrYH77bSI/++2iv/wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/7LaK/+e1iP/UsoL/yrB//8Ovff/Dr3z/yrB//9Wygv/ntYj/7LaK//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//vtor/7bSI/+eugfviqXz52qB08tWbb9rMkWW3v4VZkLuAVXe6fVI8 + un1RGb+AQAIAAAAAAAAAAAAAAACqVVUCt3lTFrl9U2K7gFWsvYJW38ySZe/Zn3L26a+E/++1iv/wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/57WI/9myg/+rqnT/l6dv/4mla/+JpWv/l6dv/6yqdP/asoP/ + 57WI//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//vton/6bCD/9mfcvbMkmXvvYJW37uAVay5fVNi + t3lTFqpVVQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqVVUAt3lTBLl9UxS8flMjvn9UMMGFWmzEiV2b + xoxg3dGXa+vYnnLy6rGF/+20iP/wt4v/6LWI/9Wygv+6rXn/oqly/5qrdP+WtoD/mL2J/5nCj/+Zwo// + mL2J/5a2gP+aq3T/oqly/7qtef/VsoL/6LWI//C3i//ttIj/6rGF/9iecvLRl2vrxoxg3cSJXZvBhVps + vIFVL7uAVSK5fVMUt3lTBKpVVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA + yF8/A7h7UT26f1Rqu4FVqsiNYcLPlWnR3qh79t6ugPvesoP907GB/8Gwfv+ornn/k611/46veP+UvIf/ + mcSR/53JmP+dyZj/mcSR/5S8h/+Or3j/k611/6iuef/BsH7/07GB/96yg/3eroD73qh79s+VadHIjWHC + u4FVqrp/VGq4e1E9uHtRAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALR7Ty6ygFJZsIVW056TX+mTm2T3iKVr/4yudv+Tu4f/ + nMaV/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMaV/5O7h/+Mrnb/iKVr/5ObZPeek1/p + sIVW07KAUlm0e08uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3n2ALd59gG4ScYW+Jm2KXkppk35SodPCVsX37 + lbqG/5e+i/+aw5L/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nciY/5rDkv+Xvov/ + lbqG/5WxffuUqHTwkppk34mbYpeEnGFvd59gG3efYAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3nV4Cd55fA3qiZQh5oWMaeaFjNXykZ59+pmnC + galv6I63gvWXwI7+nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5fAjv6Ot4L1galv6H6macJ8pGefeaFjNXmhYxp6omUId55fA3edXgIAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3nV4jd55fP3qiZbd9pWnM + gahv45K8iPeYwpD8nciX/p3ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/nciX/pjCkPySvIj3gahv432lacx6omW3 + d55fP3edXiMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3oF8UeaFhJHuiZFF+pmlv + gKhshoixediKs3zljbaB85fBj/2bxZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5vFlP+XwY/9 + jbaB84qzfOWIsXnYgKhshn6maW97omRReaFhJHegXxQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3oF8y + eaFhWnuiZMuAqGzfhKxx7ZfCkP6axZT/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5rFlP+XwpD+hKxx7YCobN97omTLeaFhWnegXzIAAAAAAAAAAAAAAACAn2AG + d5xfPnacX5J5n2PGgKds2pO+ivWXwY75mcSS+53Il/+dyJj/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+dyJf/mcSS+5fBjvmTvYn1f6Zs2nigY8Z2nmCR + d55gPoCfYAaAn2AGd5xfP3acX5N5n2PMf6ds4JO9ifiXwY/6msST/J3ImP+eyZj/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57JmP+dyJj/msST/JfBj/qTvIn4 + f6Zs4HmgY8x2nmCSd55gPoCfYAYAAAAAZplmAmaZZgV4oWNReaFkfHuiZt2Dq3LoibF68ZrEk/6cx5b/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHlv+axJP+ + ibF68YOrcuh7ombdeaFkfHihY1GAgEAEgIBAAgAAAAAAAAAAZplmAWaZZgJ4oWMgeaFkMnqiZlp/qG2B + gqpwnoixeeaMtH7ukLqF9ZnEk/2cx5f/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/5zHl/+ZxJP9 + kbqF9Yy1fu6IsXnmgqpwnn+obYB7omZaeaFkMnihYyCAgEACgIBAAQAAAAAAAAAAAAAAAAAAAAAAAAAA + VapVAVWqVQN1oGE5dqBhYnqhZM1/p2zbhq936JXAjfmaxZP9nciY/p3ImP+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/ + nciY/prFk/2WwI35h7B353+nbNp6oWTNdqBhYnagYTmAgIACgICAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAVapVAFWqVQB1oGECdqBhBHqhZAl5nmEoeZ1hVnuhZ71+pWrbhq5265K7h/eZw5P/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/5nDk/+Su4f3hq52636latt7oWe9eZ1hVnmeYSh6oWQJdqBhBHagYQKAgIAAgICAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3m14Td5teL3qgZHB8o2iH + g6txoouzfcyPuIPpk72K9pbBjvqbxpX/nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nciY/5vGlf+XwY76k72K9o+4g+mLs33Mg6txonyjaId6oGRwd5teL3ebXhMAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB2nF4LdpxeNnqgZI17oWbIgqpx6Iq0ffKWwY7/nMeX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nceX/5fBjv+LtH3ygqpx6HuhZsh6oGSNdpxeNnacXgsAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB2nF4CdpxeC3qgZBx7oWUpfaRpToCnbX6BqXDFhq115Iqye++XwY7+ + m8aV/57Jmf+eyZn/m8aV/5fBjv6Ksnvvhq115IKpcMWAp21+faRpTnuhZSl6oGQcdpxeC3acXgIAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2m10BdptdH3mfY056oGWS + f6ZrtISrcsaSu4bplb+M85jCkPqYwpD6lr+M85K7humEq3LGf6ZrtHqgZZJ5n2NOdptdH3abXQEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAdJddEnidYTB6oGSXfKNnxn2kaOV9pGjlfaNnxXygZJZ5nWEwdJddEgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddB3idYRN6oGQ8fKJnVXyjaGV8pGdkfKNmVHygZDx5nWET + dJddBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5lmCXeZZg9tpFsO + baRbCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///w///8AAP//4Af//wAA///gB///AAD//gAA + f/8AAP/wAAAP/wAA//AAAA//AAD/gAAAAf8AAPwAAAAAPwAA/AAAAAA/AADgAAAAAAcAAOAAAAAABwAA + AAAAAAAAAAAAAAAAAAAAAIAAAAAAAQAAgAAAAAABAADwAAAAAA8AAPAAAAAADwAA/4AAAAH/AAD/4AAA + B/8AAP4AAAAAfwAA8AAAAAAPAADwAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 4AAAAAAHAADgAAAAAAcAAPwAAAAAfwAA/+AAAAf/AAD/gAAAAf8AAPwAAAAAPwAA/AAAAAA/AADgAAAA + AAcAAOAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAQAAgAAAAAABAADwAAAAAA8AAPAAAAAADwAA + /4AAAAH/AAD/8AAAD/8AAP/wAAAP/wAA//4AAH//AAD//+AH//8AAP//4Af//wAA///8P///AAAoAAAA + IAAAAEAAAAABACAAAAAAAAAQAABhCgAAYQoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMu6oBzLuqD8i2pA7ItqQBAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIE0LqnJdC7q5LSwK3X0sCt18+7qpHQuqYk + 0bmiBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRuaIG0LuoL9G9rIzVw7HN4tbJ7u3l2vzt5dr8 + 4tbJ7tXDsc3RvayM0LuoL9G5ogYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJuaIMz72qRdK/rZfZyLfI5trN6+3k2Prv593+ + 8uvh//Lr4f/v593+7eTY+ubazevZyLfI0r+tl8+8qkXJuaIMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMtaQU0LyqV9PAr5rczr7H59zP7Ozi1/rw6N3/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8Ojd/+zi1/rn3M/s3M6+x9PAr5rQvKpXzLWkFAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMt6Idz7ypZdTBsJzf0MLL5tvP7uzi1/rw6d7/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Dp3v/s4tf65tvP7t/QwsvUwbCc + z7ypZcy3oh0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOuaUg0b6radbEs5rg0sPS5trN8ezi1/vx6d// + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/x6d// + 7OLX++bazfHg0sPS1sSzmtG+q2nOuaUgAAAAAAAAAAC/v58EzbikW8+7qJnf0cHZ5drM8u3k2Pzx6t// + 8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/ + 8uvh//Lr4f/y6+H/8erf/+3k2Pzl2czy3tDB2dC7qZnOuaVav7+fBL+/nwTNuKRe0LuoqN7PwOPm2872 + 7ubb/fHq4P/y6+H/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6uD/7uXZ/+POuv/jzrr/7uXZ//Lq4P/y6+H/ + 8uvh//Lr4f/y6+H/8uvh//Lr4f/x6uD/7ubb/ebbzvbdz7/j0LupqM65pVy/v58EAAAAAMzMmQPPuqg0 + 0Lyqd9jHt6rh1Mbd593Q9e3l2vzx6uD/8uvh//Lr4f/x6t//7eHU/+PNuv/bvqX/1qmF/9aohf/bvqX/ + 4826/+3h1P/x6t//8uvh//Lr4f/x6uD/7eXa/Ofd0PXh1Mbd2Me3qtC7qnfPuqg0v7+/AgAAAAAAAAAA + AAAAAAAAAACqqqoCzbimMM+8qXfXxrWq4dTF1+jd0fTs4tb769/R/+TPvP/bvKL/06N//9Occv/jqn7/ + 46p+/9Occv/To3//27yi/+TPvP/r39H/7OLW++jd0fTh1MXX18a1qc+8qXfNuKYw/4CAAQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM+4pSPOuKR10bqkw9e+p+zZuJ7+0qJ+/9ObcP/jqX3/ + 77aK//C3i//wt4v/77aK/+Opff/Tm3D/0qJ+/9m4nv7Xvqfs0bqkw864pHXPuKUjAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4fU8IuoBUHb2CVkDDi2CPyJBm49OZbv3mrID/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//mrID/05lu/ciQZuPDi2CPvYJWQLuAVB24fU8I + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC1flEHuYBUF72DVkLBh1uexoxg4dedcffqsIT/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/6rCE/9edcffHjGDh + wodbn72DVUK5gFQXtX5RBwAAAAAAAAAAAAAAAKqAVQC5gFIHvYFWDruDVkO+hFiyxo1h5tyjd/jss4f/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL/+yzh//do3f4x41g5b6EWLK7g1ZDvYFWDrmAUgeqgFUAqoBVBrmAUmO9gVbPzpNn7eWrgPvutYr/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//utYr/5KuA/M2TZu69gVbPuYBSY6qAVQa/gEAEun1SXruBVc3Nkmbs + 5Kt/++61if/wt4v/8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//ptYn/6baI//C3i//wt4v/ + 8LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL/+61if/kq3/7zZJm7LuBVc26fVJev4BABL+AQAC6fVIG + uHpVELyAVlm/hFjBypBk69+levnttIj/8LeL//C3i//wt4v/8LeL/+62iv/fs4X/rat1/4+mbf+Ppm3/ + rqt1/9+zhf/utor/8LeL//C3i//wt4v/8LeL/+20iP/fpnn5ypBk67+EWMG8gFZZuHpVELp9Uga/gEAA + AAAAAAAAAACqVVUAuX1TC719Uxq/gldNwYdbq8qQZOXdo3f27LOH/+22iv/asoP/r6t2/5Wpcf+VuIL/ + msSS/5rEkv+VuIL/lalx/6+rdv/asoP/7baK/+yzh//do3f2ypBk5cGHW6u+gldNvIBVGbl9UwuqVVUA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAALh6UAu6gFQgv4VZRr6MXpizlmXno6Nu+5qsdv+Zuob/ + msKQ/5zGlf+eyZn/nsmZ/5zGlf+awpD/mbqG/5qsdv+jo277s5Zl576MXpi/hVlGuoBUILh7UQsAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHefYBR/n2Jfh59luZCoc+yWuYb9 + mcGP/5zGlf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+cxpX/mcGP/5a5hv2QqHPsh59luX+fYl93n2AU + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHedXh16oWRlfqVrnIqye8uSvIfu + l8GP+pzHlv+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nMeW/5fBj/qSvIfu + irJ7y36la5x6oWRld51eHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHegXyB7omRpgKhrmou0fdKRu4bx + l8KQ+53Hl/+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/53Hl/+XwpD7kbuG8Yu0fdKAqGuae6JkaXegXyAAAAAAAAAAAICfYAR2nF9beaBjmYmyetmQuoXy + mMOR/J3ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+dyJj/mMOR/JC6hPKJsnrZeKBjmXaeYFqAn2AEgJ9gBHacX155oGOo + ibJ645K7h/aaxJP9nciY/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+axJP9kruH9omxeuN5oGOodp1fXICfYAQAAAAA + ZplmA3ihYzR6omZ3gqpxqoy1ft2TvIj1mcSS/J3ImP+eyZn/nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53ImP+ZxJL8k7yI9Yy1ft2CqnGqe6Jmd3ihYzSAgEAC + AAAAAAAAAAAAAAAAAAAAAFWqVQJ2oGEweaFjd4CobqqLtH/Xk72K9JnDkfudyJf/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Il/+Zw5H7k72K9Iy1f9eBqW6peaFjd3agYTCAgIAB + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd5teI3mfY25/pmyqi7N80JS9ivOYw5H7 + nMeX/57Jmf+eyZn/nsmZ/57Jmf+eyZn/nsmZ/53Hl/+Yw5H7lL2K84uzfNB/pmyqeZ9jbnebXiMAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHacXhR6oGNa + faRpq4evd8+TvYrymcOR+5zHlv+eyZn/nsmZ/5zHlv+Zw5H7lL2K8oevd899pGmreqBjWnacXhQAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB2m10MeJ5iRHuiZ6eDqnDQk72J8ZrFk/yaxZP8k72J8YOqcNB7omeneJ5iRHabXQwAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdJddBHecYSV6oGSSfaRo132kaNd8oGSReJxhJHSXXQQAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHeZZgF3mWYPbaRbDm2kWwEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/8P///8A// + /8AD//8AAP/8AAA/8AAAD8AAAAMAAAAAAAAAAIAAAAHgAAAH/AAAP/gAAB/gAAAHAAAAAAAAAAAAAAAA + AAAAAMAAAAPwAAAf/AAAP/AAAA/AAAADAAAAAAAAAACAAAAB4AAAB/wAAD//AAD//8AD///wD////D// + KAAAABAAAAAgAAAAAQAgAAAAAAAABAAAYQoAAGEKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAANG6pgrRvqxe0b6sXtC6pgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + zrypFNXDsWXg0sTQ7OPY+uzj2Prg0sTQ1cOxZc68qRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPu6ch + 2Ma2dOLVx9Lt5dn58erg//Lr4f/y6+H/8erg/+3l2fni1cfS2Ma2dM+7pyEAAAAAAAAAAMy4pBjWxbN/ + 49fJ1u3l2fvy6+D/8uvh//Lr4f/y6+H/8uvh//Lr4f/y6+H/8uvg/+3l2fvj18nW1sWzf825pRjMuaMZ + 1cOyjuTZy97u5tv88uvh//Lr4P/t4dT/4cav/+HGr//t4dT/8uvg//Lr4f/u5tv85NnL3tXDso7NuqYZ + AAAAAKqqqgDPu6gq2Mi3huDPvujewqr/2amE/+Wtgf/lrYH/2amE/97Cqv/gz77o2Mi3hs+7qCr/gIAA + AAAAAAAAAAC1flECvIJVGMOJXHfVnHHa5q2B/vC3i//wt4v/8LeL//C3i//mrYH+1Zxx2sOJXHe8glUY + tX5RAgAAAAC4gFIcxIleg9ifc+TqsYX98LeL//C3i//wt4v/8LeL//C3i//wt4v/8LeL//C3i//qsYX9 + 2J9z5MSJXYS4gFIcun1RGsOIXYnZn3Pq67KG/vC3i//wt4v/67aJ/8Wvff/Gr33/67aJ//C3i//wt4v/ + 67KG/tmfc+rDiF2Jun1RGgAAAAC4e1MDvoBVHMWKXn3RoHPdwa58/p60f/+aw5D/msOQ/560f//Brnz+ + 0aBz3cWKXn29gVYcuHtTAwAAAAAAAAAAAAAAAHmgYyGDqXB2kbJ945rCkf6dyJj/nsmZ/57Jmf+dyJj/ + msKR/pGyfeODqXB2eaBjIQAAAAAAAAAAdpxfGICobX+OuILWmcOS+57JmP+eyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZj/mcOS+464gtaAqG1/dp5gGHacXxmAp22OkLmE3prEk/yeyZn/nsmZ/57Jmf+eyZn/ + nsmZ/57Jmf+eyZn/nsmZ/5rEk/yQuYTef6dtjnedXxkAAAAAVapVAHihYyqDqnKFj7iD2prEk/ueyZj/ + nsmZ/57Jmf+eyZj/msST+4+4g9qDq3KEeKFjKoCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAHmfYhuBqG5y + jLV/2ZrFk/uaxZP7jbV/2YGobnJ5n2IbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHebYAp8omdefKNmXnibYAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD8PwAA8A8AAMADAAAAAAAA + AAAAAIABAACAAQAAAAAAAAAAAACAAQAAwAMAAAAAAAAAAAAAgAEAAPAPAAD8PwAA + + + \ No newline at end of file diff --git a/Handler/ResultView/fSetting.Designer.cs b/Handler/ResultView/fSetting.Designer.cs new file mode 100644 index 0000000..ae89eaa --- /dev/null +++ b/Handler/ResultView/fSetting.Designer.cs @@ -0,0 +1,76 @@ + +namespace ResultView +{ + partial class fSetting + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.button1 = new System.Windows.Forms.Button(); + this.propertyGrid1 = new System.Windows.Forms.PropertyGrid(); + this.SuspendLayout(); + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.button1.Location = new System.Drawing.Point(0, 457); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(411, 58); + this.button1.TabIndex = 0; + this.button1.Text = "button1"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // propertyGrid1 + // + this.propertyGrid1.Dock = System.Windows.Forms.DockStyle.Fill; + this.propertyGrid1.Location = new System.Drawing.Point(0, 0); + this.propertyGrid1.Name = "propertyGrid1"; + this.propertyGrid1.Size = new System.Drawing.Size(411, 457); + this.propertyGrid1.TabIndex = 1; + // + // fSetting + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(411, 515); + this.Controls.Add(this.propertyGrid1); + this.Controls.Add(this.button1); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "fSetting"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "fSetting"; + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button button1; + private System.Windows.Forms.PropertyGrid propertyGrid1; + } +} \ No newline at end of file diff --git a/Handler/ResultView/fSetting.cs b/Handler/ResultView/fSetting.cs new file mode 100644 index 0000000..2fc839e --- /dev/null +++ b/Handler/ResultView/fSetting.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace ResultView +{ + public partial class fSetting : Form + { + public fSetting() + { + InitializeComponent(); + this.propertyGrid1.SelectedObject = Pub.setting; + } + + private void button1_Click(object sender, EventArgs e) + { + this.Validate(); + Pub.setting.Save(); + DialogResult = DialogResult.OK; + } + } +} diff --git a/Handler/ResultView/fSetting.resx b/Handler/ResultView/fSetting.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/ResultView/fSetting.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/ResultView/fTouchKeyFull.Designer.cs b/Handler/ResultView/fTouchKeyFull.Designer.cs new file mode 100644 index 0000000..d9e79eb --- /dev/null +++ b/Handler/ResultView/fTouchKeyFull.Designer.cs @@ -0,0 +1,187 @@ +namespace ResultView.Dialog +{ + partial class fTouchKeyFull + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.touchKeyFull1 = new arCtl.TouchKeyFull(); + this.tbInput = new System.Windows.Forms.TextBox(); + this.lbTitle = new arCtl.arLabel(); + this.button1 = new System.Windows.Forms.Button(); + this.panel1 = new System.Windows.Forms.Panel(); + this.button3 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.panel1.SuspendLayout(); + this.SuspendLayout(); + // + // touchKeyFull1 + // + this.touchKeyFull1.Dock = System.Windows.Forms.DockStyle.Fill; + this.touchKeyFull1.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.touchKeyFull1.Location = new System.Drawing.Point(6, 96); + this.touchKeyFull1.Name = "touchKeyFull1"; + this.touchKeyFull1.Size = new System.Drawing.Size(1088, 359); + this.touchKeyFull1.TabIndex = 0; + this.touchKeyFull1.keyClick += new arCtl.TouchKeyFull.KeyClickHandler(this.touchKeyFull1_keyClick); + // + // tbInput + // + this.tbInput.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.tbInput.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.tbInput.Dock = System.Windows.Forms.DockStyle.Fill; + this.tbInput.Font = new System.Drawing.Font("맑은 고딕", 21.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.tbInput.ForeColor = System.Drawing.Color.White; + this.tbInput.Location = new System.Drawing.Point(100, 0); + this.tbInput.Name = "tbInput"; + this.tbInput.Size = new System.Drawing.Size(888, 46); + this.tbInput.TabIndex = 0; + this.tbInput.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // lbTitle + // + this.lbTitle.BackColor = System.Drawing.Color.Gray; + this.lbTitle.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100))))); + this.lbTitle.BackgroundImagePadding = new System.Windows.Forms.Padding(0); + this.lbTitle.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(90)))), ((int)(((byte)(90)))), ((int)(((byte)(90))))); + this.lbTitle.BorderColorOver = System.Drawing.Color.DarkBlue; + this.lbTitle.BorderSize = new System.Windows.Forms.Padding(1); + this.lbTitle.ColorTheme = arCtl.arLabel.eColorTheme.Custom; + this.lbTitle.Cursor = System.Windows.Forms.Cursors.Arrow; + this.lbTitle.Dock = System.Windows.Forms.DockStyle.Top; + this.lbTitle.Font = new System.Drawing.Font("Consolas", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbTitle.ForeColor = System.Drawing.Color.White; + this.lbTitle.GradientEnable = true; + this.lbTitle.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal; + this.lbTitle.GradientRepeatBG = false; + this.lbTitle.isButton = false; + this.lbTitle.Location = new System.Drawing.Point(6, 5); + this.lbTitle.MouseDownColor = System.Drawing.Color.Yellow; + this.lbTitle.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.lbTitle.msg = null; + this.lbTitle.Name = "lbTitle"; + this.lbTitle.ProgressBorderColor = System.Drawing.Color.Black; + this.lbTitle.ProgressColor1 = System.Drawing.Color.LightSkyBlue; + this.lbTitle.ProgressColor2 = System.Drawing.Color.DeepSkyBlue; + this.lbTitle.ProgressEnable = false; + this.lbTitle.ProgressFont = new System.Drawing.Font("Consolas", 10F); + this.lbTitle.ProgressForeColor = System.Drawing.Color.Black; + this.lbTitle.ProgressMax = 100F; + this.lbTitle.ProgressMin = 0F; + this.lbTitle.ProgressPadding = new System.Windows.Forms.Padding(0); + this.lbTitle.ProgressValue = 0F; + this.lbTitle.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20))))); + this.lbTitle.Sign = ""; + this.lbTitle.SignAlign = System.Drawing.ContentAlignment.BottomRight; + this.lbTitle.SignColor = System.Drawing.Color.Yellow; + this.lbTitle.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic); + this.lbTitle.Size = new System.Drawing.Size(1088, 44); + this.lbTitle.TabIndex = 2; + this.lbTitle.Text = "INPUT"; + this.lbTitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.lbTitle.TextShadow = true; + this.lbTitle.TextVisible = true; + // + // button1 + // + this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.button1.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.button1.Location = new System.Drawing.Point(1028, 11); + this.button1.Margin = new System.Windows.Forms.Padding(0); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(60, 34); + this.button1.TabIndex = 3; + this.button1.Text = "닫기"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // panel1 + // + this.panel1.Controls.Add(this.tbInput); + this.panel1.Controls.Add(this.button3); + this.panel1.Controls.Add(this.button2); + this.panel1.Dock = System.Windows.Forms.DockStyle.Top; + this.panel1.Location = new System.Drawing.Point(6, 49); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(1088, 47); + this.panel1.TabIndex = 4; + // + // button3 + // + this.button3.Dock = System.Windows.Forms.DockStyle.Right; + this.button3.Location = new System.Drawing.Point(988, 0); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(100, 47); + this.button3.TabIndex = 1; + this.button3.Text = "1문자 삭제"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click); + // + // button2 + // + this.button2.Dock = System.Windows.Forms.DockStyle.Left; + this.button2.Location = new System.Drawing.Point(0, 0); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(100, 47); + this.button2.TabIndex = 0; + this.button2.Text = "1문자 삭제"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // fTouchKeyFull + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18))))); + this.ClientSize = new System.Drawing.Size(1100, 460); + this.Controls.Add(this.touchKeyFull1); + this.Controls.Add(this.panel1); + this.Controls.Add(this.button1); + this.Controls.Add(this.lbTitle); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.KeyPreview = true; + this.Name = "fTouchKeyFull"; + this.Padding = new System.Windows.Forms.Padding(6, 5, 6, 5); + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "fTouchKeyFull"; + this.Load += new System.EventHandler(this.fTouchKeyFull_Load); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private arCtl.TouchKeyFull touchKeyFull1; + private arCtl.arLabel lbTitle; + public System.Windows.Forms.TextBox tbInput; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.Button button2; + } +} \ No newline at end of file diff --git a/Handler/ResultView/fTouchKeyFull.cs b/Handler/ResultView/fTouchKeyFull.cs new file mode 100644 index 0000000..f969760 --- /dev/null +++ b/Handler/ResultView/fTouchKeyFull.cs @@ -0,0 +1,142 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace ResultView.Dialog +{ + public partial class fTouchKeyFull : Form + { + public fTouchKeyFull(string title, string value) + { + InitializeComponent(); + this.lbTitle.Text = title; + this.tbInput.Text = value; + this.KeyDown += (s1, e1) => + { + if (e1.KeyCode == Keys.Escape) + this.Close(); + }; + this.lbTitle.MouseMove += LbTitle_MouseMove; + this.lbTitle.MouseUp += LbTitle_MouseUp; + this.lbTitle.MouseDown += LbTitle_MouseDown; + } + + private void fTouchKeyFull_Load(object sender, EventArgs e) + { + this.Show(); + //'Application.DoEvents(); + this.tbInput.SelectAll(); + this.tbInput.Focus(); + } + #region "Mouse Form Move" + + private Boolean fMove = false; + private Point MDownPos; + private void LbTitle_MouseMove(object sender, MouseEventArgs e) + { + if (fMove) + { + Point offset = new Point(e.X - MDownPos.X, e.Y - MDownPos.Y); + this.Left += offset.X; + this.Top += offset.Y; + offset = new Point(0, 0); + } + } + private void LbTitle_MouseUp(object sender, MouseEventArgs e) + { + fMove = false; + } + private void LbTitle_MouseDown(object sender, MouseEventArgs e) + { + MDownPos = new Point(e.X, e.Y); + fMove = true; + } + + #endregion + + private void touchKeyFull1_keyClick(string key) + { + switch (key) + { + case "CLR": + this.tbInput.Text = string.Empty; + break; + case "BACK": + + if (this.tbInput.SelectionLength > 0) + { + //특정영역이 선택되었다 + var head = tbInput.Text.Substring(0, tbInput.SelectionStart); + var tail = tbInput.Text.Substring(tbInput.SelectionLength + tbInput.SelectionStart); + tbInput.Text = head + tail; + tbInput.SelectionStart = head.Length; + tbInput.SelectionLength = 0; + } + else + { + var si = this.tbInput.SelectionStart - 1; + var sl = this.tbInput.SelectionLength; + if(si >= 0) + { + var head = tbInput.Text.Substring(0, si); + var tail = tbInput.Text.Substring(si + 1); + + tbInput.Text = head + tail; + tbInput.SelectionStart = head.Length; + tbInput.SelectionLength = 0; + } + } + + break; + case "ENTER": + this.DialogResult = DialogResult.OK; + break; + default: + var si2 = this.tbInput.SelectionStart ; + var head2 = tbInput.Text.Substring(0, si2); + var tail2 = tbInput.Text.Substring(si2 ); + + tbInput.Text = head2 + key + tail2; + tbInput.SelectionStart = head2.Length+1; + tbInput.SelectionLength = 0; + + + //this.tbInput.Text += key; + //this.tbInput.SelectionStart = this.tbInput.TextLength; + + break; + } + this.tbInput.Focus(); + } + + private void button1_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void button2_Click(object sender, EventArgs e) + { + //앞에서 삭제 + if (this.tbInput.Text.Length < 1) return; + if (this.tbInput.Text.Length < 2) tbInput.Text = string.Empty; + else tbInput.Text = tbInput.Text.Substring(1); + tbInput.SelectionStart = 0;// this.tbInput.TextLength; + tbInput.Focus(); + } + + private void button3_Click(object sender, EventArgs e) + { + //두에서 삭제 + if (this.tbInput.Text.Length < 1) return; + if (this.tbInput.Text.Length < 2) tbInput.Text = string.Empty; + else tbInput.Text = tbInput.Text.Substring(0, tbInput.Text.Length - 1); + tbInput.SelectionStart = this.tbInput.TextLength; + tbInput.Focus(); + } + } +} diff --git a/Handler/ResultView/fTouchKeyFull.resx b/Handler/ResultView/fTouchKeyFull.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/ResultView/fTouchKeyFull.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/ResultView/libxl.dll b/Handler/ResultView/libxl.dll new file mode 100644 index 0000000..204a7e3 Binary files /dev/null and b/Handler/ResultView/libxl.dll differ diff --git a/Handler/Sub/AmkorRestfulService b/Handler/Sub/AmkorRestfulService new file mode 160000 index 0000000..c2a5826 --- /dev/null +++ b/Handler/Sub/AmkorRestfulService @@ -0,0 +1 @@ +Subproject commit c2a5826f21cbf73c3c5b7b67cd1ed2be05100e1f diff --git a/Handler/Sub/CommData/CommData.csproj b/Handler/Sub/CommData/CommData.csproj new file mode 100644 index 0000000..78c1eb7 --- /dev/null +++ b/Handler/Sub/CommData/CommData.csproj @@ -0,0 +1,51 @@ + + + + + Debug + AnyCPU + {14E8C9A5-013E-49BA-B435-EFEFC77DD623} + Library + Properties + VarData + VarData + v4.8 + 512 + true + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + false + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + false + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Handler/Sub/CommData/Enum.cs b/Handler/Sub/CommData/Enum.cs new file mode 100644 index 0000000..6c0c85b --- /dev/null +++ b/Handler/Sub/CommData/Enum.cs @@ -0,0 +1,457 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace AR +{ + public enum eswPLCAddr + { + Ready = 0, + Spare1, + Spare2, + + /// + /// 1=Limit Down + /// 2=Detect + /// 3=Limit Up + /// + LPort, + CPort, + RPort, + + /// + /// 1 = Down, + /// 2 = Up + /// 3 = stop + /// + LMotor, + CMotor, + RMotor, + + /// + /// 시퀀스값 0~ + /// 0 : nothing + /// 1 : ~ running + /// + LSts, + CSts, + RSts, + + /// + /// 1=down, + /// 2=up, + /// 3=stop, + /// 4=refresh + /// + LCmd, + CCmd, + RCmd, + + } + + //public enum eVarUInt32 + //{ + //} + + //public enum eVarByte + //{ + // None = 0, + + + + + //} + + public enum eVarBool + { + None = 0, + NeedUserTouchAfterHome, + BarcodeHook, + NeedTopJigUnloaderPosition, + Use_Conveyor, + LEFT_ITEM_PICKOFF, + RIGT_ITEM_PICKOFF, + + //Option_vname, + Opt_UserConfim, + Opt_ServerQty, + Opt_UserQtyRQ, + Option_partUpdate, + Opt_NewReelID, + Option_AutoConf, + Opt_SIDConvert, + Opt_ApplySIDConv, + Opt_ApplySIDInfo, + Opt_ApplyJobInfo, + Opt_CheckSIDExist, + + Opt_SID_Apply_PartNo, + Opt_SID_Apply_CustCode, + Opt_SID_Apply_SID, + Opt_SID_Apply_VenderName, + Opt_SID_Apply_PrintPos, + Opt_SID_Apply_batch, + Opt_SID_Apply_qty, + Opt_SID_Where_PartNo, + Opt_SID_Where_CustCode, + Opt_SID_Where_SID, + Opt_SID_Where_VLOT, + Opt_SID_Where_MC, + Opt_SID_WriteServer, + + + Opt_Job_Apply_PartNo, + Opt_Job_Apply_CustCode, + Opt_Job_Apply_SID, + Opt_Job_Apply_VenderName, + Opt_Job_Apply_PrintPos, + Opt_Job_Where_PartNo, + Opt_Job_Where_CustCode, + Opt_Job_Where_SID, + Opt_Job_Where_VLOT, + + Opt_Conv_Apply_PartNo, + Opt_Conv_Apply_CustCode, + Opt_Conv_Apply_SID, + Opt_Conv_Apply_VenderName, + Opt_Conv_Apply_PrintPos, + Opt_Conv_Apply_Batch, + Opt_Conv_Apply_QtyMax, + Opt_Conv_Where_PartNo, + Opt_Conv_Where_CustCode, + Opt_Conv_Where_SID, + Opt_Conv_Where_VLOT, + Opt_Conv_WriteServer, + + /// + /// 카메라 사용안함 + /// + Opt_DisableCamera, + + /// + /// 프린터사용안함 + /// + Opt_DisablePrinter, + + Enable_PickerMoveX, + + VisionL_Retry, + VisionR_Retry, + + Need_UserConfirm_Data, + + /// + /// 키엔스바코드의 수신을 확인합니다 + /// + wait_for_keyence, + wait_for_keyenceL, + wait_for_keyenceR, + + /// + /// 피커 키엔스 인식 실패로 재시도를 하고 있습니다. + /// + JOB_PickON_Retry, + JOB_Empty_SIDConvertInfo, + // JOB_BYPASS_LEFT, + // JOB_BYPASS_RIGHT, + + FG_RDY_CAMERA_L, + FG_RDY_CAMERA_R, + FG_INIT_MOTIO, + FG_DOORSAFTY, + FG_AREASAFTY, + FG_INIT_PRINTER, + + + FG_KEYENCE_READOK_L, + FG_KEYENCE_READOK_R, + FG_KEYENCE_TRIGGER, + FG_KEYENCE_OFFF, + FG_KEYENCE_OFFR, + + FG_RUN_LEFT, + FG_RUN_RIGHT, + + FG_BUSY_LEFT, + FG_BUSY_RIGHT, + + FG_PORT0_ENDDOWN, + FG_PORT1_ENDDOWN, + FG_PORT2_ENDDOWN, + + FG_WAIT_PAPERDETECTL, + FG_WAIT_PAPERDETECTR, + + FG_RUN_PLZ_PICKON, + FG_RUN_PRZ_PICKON, + FG_RUN_PLZ_PICKOF, + FG_RUN_PRZ_PICKOF, + + FG_RUN_PLM_PICKON, + FG_RUN_PLM_PICKOF, + FG_RUN_PRM_PICKON, + FG_RUN_PRM_PICKOF, + + FG_WAT_MAGNET0, + FG_WAT_MAGNET1, + FG_WAT_MAGNET2, + + + + FG_PRC_VISIONL, + FG_PRC_VISIONR, + + FG_END_VISIONL, + FG_END_VISIONR, + + FG_MOVE_PICKER, + FG_JOYSTICK, + + /// + /// Y축이 Front로 가지러 가기로 함 + /// + FG_CMD_YP_LPICKON, + FG_CMD_YP_LPICKOF, + FG_CMD_YP_RPICKON, + FG_CMD_YP_RPICKOF, + + //피커의 X축이 일을 하러 갔는가? + FG_RDY_PX_PICKON, + FG_RDY_PX_PICKONWAITL, + FG_RDY_PX_PICKONWAITR, + FG_RDY_PX_LPICKOF, + FG_RDY_PX_RPICKOF, + + //X축이 이동한후 해당 언로더에 자료를 셋팅했는가? + FG_SET_DATA_PORT0, + FG_SET_DATA_PORT2, + + FG_RDY_PZ_PICKON, + FG_RDY_PZ_LPICKOF, + FG_RDY_PZ_RPICKOF, + + FG_RUN_PRINTL, + FG_RUN_PRINTR, + + FG_OK_PRINTL, + FG_OK_PRINTR, + + /// + /// 해당 포트의 자재 준비여부 + /// + FG_RDY_PORT_PL, + FG_RDY_PORT_PC, + FG_RDY_PORT_PR, + + + FG_ENABLE_LEFT, + FG_ENABLE_RIGHT, + + + /// + /// 자재를 PICK 했다 + /// + FG_PK_ITEMON, + FG_PL_ITEMON, + FG_PR_ITEMON, + + FG_KEYENCE_IMAGEPROGRESS, + + /// + /// 포트에 아이템이 있는가? + /// 1번의 경우 Detect 센서가 들어오면 ItemON 설정을 한다. + /// 0,2번의 경우 피커가 아이템을 놓을때 설정한다 + /// 실제로는 ITEMON 과 Align =1, 일때 촬영이가능하게한다 + /// + FG_PORTL_ITEMON, + FG_PORTR_ITEMON, + + FG_WAIT_LOADERINFO, + /// + /// 작업시작화면 + /// + FG_SCR_JOBSELECT, + /// + /// 작업종료화면 + /// + //SCR_JOBFINISH, + /// + /// 작업완료 + /// + FG_JOB_END, + + FG_USERSTEP, + FG_MINSPACE, + FG_DEBUG, + //RUN_INIT, + + VS_DETECT_REEL_L, + VS_DETECT_REEL_R, + VS_DETECT_CONV_L, + VS_DETECT_CONV_R, + + } + + public enum eVarString + { + Vision_Select_command, + Vision_Trig_command, + PrePick_ReelIDNew, + PrePick_ReelIDOld, + PrePick_ReelIDTarget, + JOB_CUSTOMER_CODE, + //JOB_BYPASS_SID, + //JOB_TYPE, + } + + public enum eVarTime + { + DET5ON, + DET4ON, + PORT0, + PORT1, + PORT2, + MAGNET2, + MAGNET1, + MAGNET0, + QRCHECK0, + QRCHECK2, + KEYENCEWAIT, + LIVEVIEW0, + LIVEVIEW1, + LIVEVIEW2, + CHK_POSRSTCONVTIME, + PRINTL, + PRINTR, + CMDTIME_MOTYP, + CMDTIME_MOTZL, + CMDTIME_MOTZR, + JOB_END, + SMRUNERROR, + LOG_NEWIDERROR, + StatusReporttime, + JOBEVENT, + REFRESHLIST, + LEFT_ITEM_PICKOFF, + RIGT_ITEM_PICKOFF, + lastRecvWSL, + lastRecvWSR, + CONVL_START, + CONVR_START, + } + + + public enum eVarInt32 + { + PickOnCount = 0, + PickOfCount, + LPickOnCount, + RPickOnCount, + LPickOfCount, + RPickOfCount, + + LEFT_ITEM_COUNT, + RIGT_ITEM_COUNT, + + Front_Brush_Cleaning, + Rear_Brush_Cleaning, + Front_Laser_Cleaning, + Rear_Laser_Cleaning, + + + /// + /// 2번축, 3번축 각 축번호가 들어있다 + /// + PreBrushTargetF, + PreBrushTargetR, + + /// + /// 2번축, 3번축 각 축번호가 들어있다 + /// + PostBrushTargetF, + PostBrushTargetR, + + TopjigUnloadPort, + TopJigLoadPort, + DevConnectSeq, + BitmapCompatErr, + PickOnRetry, + } + + public enum eVarDBL + { + ThetaPosition = 0, + ThetaPositionL, + ThetaPositionR, + LEFT_ITEM_PICKOFF, + RIGT_ITEM_PICKOFF, + CONVL_RUNTIME, + CONVR_RUNTIME, + } + + + public enum eECode : byte + { + + NOERROR = 0, + EMERGENCY = 1, + NOMODELV = 2,//작업모델 + NOMODELM = 3,//모션모델 + //DOORSAFTY = 6, + //AREASAFTY = 7, + //VIS_LICENSE = 8, + HOME_TIMEOUT = 9, + //AIRNOOUT = 10, + NOFUNCTION = 11, + //AIRNOTDETECT = 12, + + DOOFF = 27,//출력 off + DOON = 28,//출력 on + DIOFF = 29,//입력off + DION = 30,//입력 on + + MESSAGE_INFO = 32, + MESSAGE_ERROR = 33, + + //VISION_NOTREADY = 34, + //VISION_NOCONN = 35, + //VISION_TRIGERROR = 36, + //VISION_COMMERROR = 37, + //VISION_NORECV = 38, + + AZJINIT = 39, //DIO 혹은 모션카드 초기화 X + //MOT_HSET = 41, + MOT_SVOFF = 42, + //MOT_HSEARCH = 43, + + MOT_CMD = 71, + USER_STOP = 72, + USER_STEP = 73, + POSITION_ERROR = 86, + MOTIONMODEL_MISSMATCH = 96, + + + //여기서부터는 전용코드로한다(소켓은 조금 섞여 있음) + VISCONF = 100, + UNSUPPORT, + NOJOBMODE, + PRINT, + SELECTNEXTREEL, + BCD_LEFT, + BCD_LEFT_TEMP, + BCD_LEFT_NEW, + BCD_RIGHT, + BCD_RIGHT_TEMP, + BCD_RIGHT_NEW, + BARCODEVALIDERR, + PRINTER, + QRDATAMISSMATCHL, + QRDATAMISSMATCHR, + MOTX_SAFETY, + CHANGEALERTLEFT, + CHANGEALERTRIGHT, + SIDVALIDATION, + + } +} diff --git a/Handler/Sub/CommData/Enum_IO.cs b/Handler/Sub/CommData/Enum_IO.cs new file mode 100644 index 0000000..16d1ac2 --- /dev/null +++ b/Handler/Sub/CommData/Enum_IO.cs @@ -0,0 +1,86 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.ComponentModel; + +namespace AR +{ + + public enum eDIPin : byte + { + X00, X01, X02, X03, X04, X05, X06, X07, + X08, X09, X0A, X0B, X0C, X0D, X0E, X0F, + X10, X11, X12, X13, X14, X15, X16, X17, + X18, X19, X1A, X1B, X1C, X1D, X1E, X1F, + X20, X21, X22, X23, X24, X25, X26, X27, + X28, X29, X2A, X2B, X2C, X2D, X2E, X2F, + X30, X31, X32, X33, X34, X35, X36, X37, + X38, X39, X3A, X3B, X3C, X3D, X3E, X3F + } + + public enum eDIName : byte + { + BUT_STARTF = 0x00, BUT_STOPF, BUT_RESETF, BUT_EMGF, BUT_AIRF, + AIR_DETECT = 0x05, PICKER_SAFE = 0x08, + + DOORF1 = 0x0A, DOORF2, DOORF3, + DOORR1 = 0x0D, DOORR2, DOORR3, + + PORT0_SIZE_07 = 0x1A, PORT0_SIZE_13, PORTL_LIM_UP, PORTL_LIM_DN, PORTL_DET_UP, + PORT1_SIZE_07 = 0x10, PORT1_SIZE_13, PORTC_LIM_UP, PORTC_LIM_DN, PORTC_DET_UP, + PORT2_SIZE_07 = 0x15, PORT2_SIZE_13, PORTR_LIM_UP, PORTR_LIM_DN, PORTR_DET_UP, + + R_PICK_BW = 0x20, R_PICK_FW, R_PICK_VAC, + L_PICK_BW = 0x24, L_PICK_FW, L_PICK_VAC, + + L_CONV1 = 0x30, L_CONV3 = 0x32, L_CONV4 = 0x33, + R_CONV1 = 0x34, R_CONV3 = 0x36, R_CONV4 = 0x37, + + R_CYLUP = 0x38, R_CYLDN, + L_CYLUP = 0x3A, L_CYLDN, + + L_EXT_READY = 0x3E, + R_EXT_READY = 0x3F, + } + + public enum eDOPin : byte + { + Y00, Y01, Y02, Y03, Y04, Y05, Y06, Y07, + Y08, Y09, Y0A, Y0B, Y0C, Y0D, Y0E, Y0F, + Y10, Y11, Y12, Y13, Y14, Y15, Y16, Y17, + Y18, Y19, Y1A, Y1B, Y1C, Y1D, Y1E, Y1F, + Y20, Y21, Y22, Y23, Y24, Y25, Y26, Y27, + Y28, Y29, Y2A, Y2B, Y2C, Y2D, Y2E, Y2F, + Y30, Y31, Y32, Y33, Y34, Y35, Y36, Y37, + Y38, Y39, Y3A, Y3B, Y3C, Y3D, Y3E, Y3F + } + + public enum eDOName : byte + { + BUT_STARTF = 0x00, BUT_STOPF, BUT_RESETF, BUT_EMGF, BUT_AIRF, + + SOL_AIR = 0x07, BUZZER, + ROOMLIGHT = 0x0A, + + TWR_GRNF = 0x0D, TWR_YELF, TWR_REDF, + + PORTL_MOT_RUN = 0x1A, PORTL_MOT_DIR, CART_MAG0, + PORTC_MOT_RUN = 0x10, PORTC_MOT_DIR, CART_MAG1, + PORTR_MOT_RUN = 0x14, PORTR_MOT_DIR, CART_MAG2, + + PRINTL_FWD = 0x1D, + PRINTL_VACO = 0x1E, PRINTL_VACI, + PRINTR_FWD = 0x17, + PRINTR_VACO = 0x18, PRINTR_VACI, + + PRINTL_AIRON = 0x20, PRINTR_AIRON, + + PICK_VAC1 = 0x23, PICK_VAC2, PICK_VAC3, PICK_VAC4, + + SVR_PWR_0 = 0x28, SVR_PWR_1, SVR_PWR_2, SVR_PWR_3, SVR_PWR_4, SVR_PWR_5, SVR_PWR_6, + RIGHT_CONV = 0x30, LEFT_CONV, + R_CYLDN = 0x38, L_CYLDN = 0x39, + //SVR_EMG_0 = 0x30, SVR_EMG_1, SVR_EMG_2, SVR_EMG_3, SVR_EMG_4, SVR_EMG_5, SVR_EMG_6, + } +} diff --git a/Handler/Sub/CommData/Properties/AssemblyInfo.cs b/Handler/Sub/CommData/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..8d44db4 --- /dev/null +++ b/Handler/Sub/CommData/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("VarData")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("VarData")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("14e8c9a5-013e-49ba-b435-efefc77dd623")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 +// 기본값으로 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Handler/Sub/CommSM b/Handler/Sub/CommSM new file mode 160000 index 0000000..91c0476 --- /dev/null +++ b/Handler/Sub/CommSM @@ -0,0 +1 @@ +Subproject commit 91c0476bd42861e51bd2ec541adafb2ff811e39b diff --git a/Handler/Sub/CommUtil b/Handler/Sub/CommUtil new file mode 160000 index 0000000..11d464e --- /dev/null +++ b/Handler/Sub/CommUtil @@ -0,0 +1 @@ +Subproject commit 11d464e16a41b8bc52629476c2b5f329e03a34af diff --git a/Handler/Sub/Setting/Common.cs b/Handler/Sub/Setting/Common.cs new file mode 100644 index 0000000..21f21a8 --- /dev/null +++ b/Handler/Sub/Setting/Common.cs @@ -0,0 +1,651 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing.Design; +using System.Linq; +using System.Management; +using System.Security.Policy; +using System.Text; +using System.Windows.Forms; + +namespace AR +{ + public class UserSetting : arUtil.Setting + { + public string customerlist { get; set; } + public UserSetting() + { + + } + public override void AfterLoad() + { + //throw new NotImplementedException(); + + } + public override void AfterSave() + { + //throw new NotImplementedException(); + } + } + + public class CommonSetting : arUtil.Setting + { + + public string WebAPI_R1 { get; set; } + public string WebAPI_R2 { get; set; } + public string WebAPI_R3 { get; set; } + + #region "log" + + [Category("System Log - Main")] + public Boolean Log_CameraConn { get; set; } + [Category("System Log - Main"), DisplayName("Digital Input"), + Description("입/출력 장치의 상태 변화를 기록 합니다.")] + public Boolean Log_DI { get; set; } + [Category("System Log - Main"), DisplayName("Digital Output"), + Description("입/출력 장치의 상태 변화를 기록 합니다.")] + public Boolean Log_DO { get; set; } + [Category("System Log - Main"), DisplayName("Network Alive Check(Ping)"), + Description("디버그 메세지 사용")] + public Boolean Log_Debug { get; set; } + [Category("System Log - Main"), DisplayName("S/M Step Change"), + Description("상태머신의 변화 상태를 기록 합니다.")] + public Boolean Log_StepChange { get; set; } + [Category("System Log - Main"), DisplayName("Motion State Change"), + Description("모션 상태 변화를 기록 합니다.")] + public Boolean Log_motState { get; set; } + [Category("System Log - Main")] + public Boolean Log_flag { get; set; } + [Category("System Log - Main")] + public Boolean Log_ILock { get; set; } + [Category("System Log - Function"), DisplayName("Inter Lock")] + public Boolean Enable_Log_ILock { get; set; } + [Category("System Log - Function"), DisplayName("Flag")] + public Boolean Enable_Log_Flag { get; set; } + [Category("System Log - Function"), DisplayName("Motor Stop Message")] + public Boolean Enable_Log_MotStopReason { get; set; } + + + #endregion + + #region "Communication" + + + + [Category("Communication"), DisplayName("키엔스바코드IP(LEFT)"), Description("키엔스 바코드 프로그램의 접속 IP Address")] + public string Keyence_IPF { get; set; } + [Category("Communication"), DisplayName("키엔스바코드IP(RIGHT)"), Description("키엔스 바코드 프로그램의 접속 IP Address")] + public string Keyence_IPR { get; set; } + + [Category("Communication"), DisplayName("키엔스통신포트"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public int Keyence_Port { get; set; } + + [Category("Communication"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public string PrintL_Port { get; set; } + [Category("Communication"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public int PrintL_Baud { get; set; } + [Category("Communication"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public string PrintR_Port { get; set; } + [Category("Communication"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public int PrintR_Baud { get; set; } + [Category("Communication"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public bool PrintL_RS232 { get; set; } + + [Category("Communication"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public bool PrintR_RS232 { get; set; } + + [Category("Communication"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public string PrintL_AddSend { get; set; } + [Category("Communication"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public string PrintR_AddSend { get; set; } + + + [Category("Communication"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public string Barcode_Port { get; set; } + [Category("Communication"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public int Barcode_Baud { get; set; } + + + #endregion + + #region "Time Out" + + [Category("Timeout Setting"), DisplayName(), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public int Timeout_AutoConfirm { get; set; } + + [Category("Timeout Setting"), DisplayName("작업 완료 대기시간(단위:초)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public int Timeout_JOBEnd { get; set; } + + [Category("Timeout Setting"), DisplayName("최대비젼분석시간(로더)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public int Timeout_VisionProcessL { get; set; } + + [Category("Timeout Setting"), DisplayName("최대비젼분석시간(언로더)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public int Timeout_VisionProcessU { get; set; } + + [Category("Timeout Setting"), DisplayName("장비 초기화 대기시간(단위:초)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public int Timeout_HomeSearch { get; set; } + + [Category("Timeout Setting"), DisplayName("개별 동작의 대기시간(단위:초)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public double Timeout_StepMaxTime { get; set; } + + [Category("Timeout Setting"), DisplayName("모션의 최대 동작시간(단위:초)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public int Timeout_MotionCommand { get; set; } + + [Category("Timeout Setting"), DisplayName("DIO의 최대 동작시간(단위:초)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public int Timeout_DIOCommand { get; set; } + + + + #endregion + + #region "Advanced Parameter" + + [Category("Advanced Parameter"), DisplayName("ECS 자료조회 비활성"), Description("ECS 자료조회를 비활성화 합니다.\n기존 장비정보에 해당하는 자료를 사용합니다")] + public bool ECSSkip { get; set; } + + + [Category("Advanced Parameter")] + public bool InboundWebService_RID_DupSKIP { get; set; } + + [Category("Advanced Parameter"), DisplayName("Remote Contoller Port"), Description("디버그 포트 정보(시리얼통신), 입력 예) COM1:9600"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public string Serial_Remocon { get; set; } + + [Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public int RetryPickOnMaxCount { get; set; } + [Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public int RetryPickOnAngle { get; set; } + + + [Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public float JOG_Speed { get; set; } + [Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public float JOG_Acc { get; set; } + [Category("Advanced Parameter")] + public Boolean Disable_HomePortDown { get; set; } + + [Category("Advanced Parameter"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Disable_PrinterL { get; set; } + [Category("Advanced Parameter"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Disable_PrinterR { get; set; } + + [Category("Advanced Parameter"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Disable_PLVac { get; set; } + [Category("Advanced Parameter"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Disable_PRVac { get; set; } + [Category("Advanced Parameter"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Disable_PKVac { get; set; } + + [Category("Advanced Parameter"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Disable_PLAir { get; set; } + [Category("Advanced Parameter"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Disable_PRAir { get; set; } + + [Category("Advanced Parameter"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Disable_PortL { get; set; } + [Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Disable_PortC { get; set; } + [Category("Advanced Parameter"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Disable_PortR { get; set; } + + [Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Disable_SIDReferenceCheck { get; set; } + + [Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Disable_BottomAirBlow { get; set; } + + [Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Enable_ButtonStart { get; set; } + [Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Disable_RequestJobSeqNo { get; set; } + [Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean DisableSensor_AIRCheck { get; set; } + + [Category("Advanced Parameter"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Disable_TowerLamp { get; set; } + + [Category("Advanced Parameter"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Disable_RoomLight { get; set; } + + + [Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public bool Disable_vacum { get; set; } + + [Category("Advanced Parameter"), DisplayName("*.속도제한")] + public Boolean Enable_SpeedLimit { get; set; } + [Category("Advanced Parameter"), DisplayName("*.최대속도"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public int LimitSpeed { get; set; } + + [Category("Advanced Parameter"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Disable_SidQtyCheck { get; set; } + + + [Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Disable_Axis0 { get; set; } + [Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Disable_Axis1 { get; set; } + [Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Disable_Axis2 { get; set; } + [Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Disable_Axis3 { get; set; } + [Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Disable_Axis4 { get; set; } + [Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Disable_Axis5 { get; set; } + [Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Disable_Axis6 { get; set; } + [Category("Advanced Parameter"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean EnableDebugMode { get; set; } + + #endregion + + #region "function" + [Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Force_JobEndBuzzer { get; set; } + + //[Browsable(false)] + //public Boolean Enable_ConveryorMode { get; set; } + + + [Browsable(false)] + public Boolean Disable_safty_F0 { get; set; } + [Browsable(false)] + public Boolean Disable_safty_F1 { get; set; } + [Browsable(false)] + public Boolean Disable_safty_F2 { get; set; } + [Browsable(false)] + public Boolean Disable_safty_R0 { get; set; } + [Browsable(false)] + public Boolean Disable_safty_R1 { get; set; } + [Browsable(false)] + public Boolean Disable_safty_R2 { get; set; } + + [Browsable(false)] + public Boolean Disable_Buzzer { get; set; } + + + + [Browsable(false)] + public Boolean Enable_Magnet0 { get; set; } + + [Browsable(false)] + public Boolean Enable_Magnet1 { get; set; } + + [Browsable(false)] + public Boolean Enable_Magnet2 { get; set; } + [Browsable(false)] + public Boolean Enable_PickerCylinder { get; set; } + + + public string GetPathData() + { + var path = AppDomain.CurrentDomain.BaseDirectory; + if (String.IsNullOrWhiteSpace(Path_Data)) return System.IO.Path.Combine(path, "SaveData"); + else return Path_Data; + } + + [Category("Function"), DisplayName("라벨QR코드검증"), Description("부착된 라벨의 QR코드를 인쇄데이터와 검증 합니다"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Enable_Unloader_QRValidation { get; set; } + + [Category("Function"), DisplayName("촬영이미지저장"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Save_Image { get; set; } + + [Category("Function"), DisplayName("피커자동이동(전면도어)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean PickerAutoMoveForDoor { get; set; } + + [Category("Function"), DisplayName("Data Save Path"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public string Path_Data { get; set; } + + [Category("Function"), Browsable(false), DisplayName("실내등 자동 제어"), + Description("도어 상태에 따라서 내부 조명을 자동 ON/OFF 합니다"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Enable_AutoLight { get; set; } + + //[Category("Function"), DisplayName("AIR OFF Timer(ms)"), + //Description("공압 OFF시 유지 시간(ms), 지정 시간 동안 스위치를 ON 시켜야 공압이 OFF 됩니다.")] + //public int AirOFFTimer { get; set; } + + [Category("Function"), DisplayName("부저 동작시간(ms)"), + Description("부저 발생시 지정된 시간(ms) 동안 부저가 울립니다"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public int buzz_run_ms { get; set; } + + #endregion + + #region "Vision" + [Category("Vision"), DisplayName("13' 이미지 중앙 위치"), Description("키엔스 이미지의 회전축 좌표")] + public System.Drawing.Point CenterPosition13 { get; set; } + [Category("Vision"), DisplayName("7' 이미지 중앙 위치"), Description("키엔트 이미지의 회전축 좌표")] + public System.Drawing.Point CenterPosition7 { get; set; } + + [Category("Vision"), DisplayName("Disable Left Camera"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Disable_Left { get; set; } + [Category("Vision"), DisplayName("Disable Right Camera"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Disable_Right { get; set; } + [Category("Vision"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public string HostIPL { get; set; } + [Category("Vision"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public string HostIPR { get; set; } + [Category("Vision"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public int HostPortL { get; set; } + [Category("Vision"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public int HostPortR { get; set; } + [Category("Vision"), DisplayName("Camera Left Filename"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public string CameraLFile { get; set; } + //[Category("Vision"), DisplayName("Camera Right Filename"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + //public string CameraRFile { get; set; } + + + [Category("Vision"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public float AngleOffsetL { get; set; } + [Category("Vision"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public float AngleOffsetR { get; set; } + + + #endregion + + #region "Count Reset Setting" + + [Category("Count Reset Setting"), Browsable(false), DisplayName("A/M Clear Enable"), + Description("오전 초기화 여부\n작업수량을 초기화 하려면 True 로 설정하세요"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean datetime_Check_1 { get; set; } + [Category("Count Reset Setting"), Browsable(false), DisplayName("P/M Clear Enable"), + Description("오후 초기화 여부\n작업수량을 초기화 하려면 True 로 설정하세요"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean datetime_Check_2 { get; set; } + [Category("Count Reset Setting"), Browsable(false), DisplayName("A/M Clear Time(HH:mm)"), + Description("오전 초기화 시간(시:분)\n예) 09:00"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public string datetime_Reset_1 { get; set; } + [Category("Count Reset Setting"), Browsable(false), DisplayName("P/M Clear Time(HH:mm)"), + Description("오후 초기화 시간(시:분)\n예) 19:00"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public string datetime_Reset_2 { get; set; } + + #endregion + + #region "Sensitive" + [Category("Sensitive"), DisplayName("언/로더포트 감지(fall)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public ushort PortDetectFall { get; set; } + [Category("Sensitive"), DisplayName("언/로더포트 감지(rise)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public ushort PortDetectRise { get; set; } + [Category("Sensitive"), DisplayName("도어 감지센서(rise)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public ushort SaftyDetectRise { get; set; } + [Category("Sensitive"), DisplayName("도어 감지센서(rise)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public ushort SaftyDetectFall { get; set; } + [Category("Sensitive"), DisplayName("AIR 버튼(rise/fall)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public ushort AirChange { get; set; } + + #endregion + + #region "Operation Delay" + [Category("Operation Delay(ms)"), DisplayName("라벨 붙인 후 대기 시간"), Description("라벨 부착 후 PURGE 대기 시간"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public int PrintVacOffPurgeMS { get; set; } + [Category("Operation Delay(sec)"), DisplayName("카트감지대기시간(좌)"), Description("지정된 시간 이후에 카트가 HOLD 됩니다- ms"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public ushort WaitTime_Magnet0 { get; set; } + [Category("Operation Delay(sec)"), DisplayName("카트감지대기시간(중앙)"), Description("지정된 시간 이후에 카트가 HOLD 됩니다- ms"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public ushort WaitTime_Magnet1 { get; set; } + [Category("Operation Delay(sec)"), DisplayName("카트감지대기시간(우)"), Description("지정된 시간 이후에 카트가 HOLD 됩니다 - ms"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public ushort WaitTime_Magnet2 { get; set; } + [Category("Operation Delay(sec)"), DisplayName("프린트후대기시간(좌s)"), Description("프린터 라벨 출력 후 대기 시간(좌)- ms"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public int PrintLWaitMS { get; set; } + [Category("Operation Delay(sec)"), DisplayName("프린트후대기시간(우)"), Description("프린터 라벨 출력 후 대기 시간(우)- ms"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public int PrintRWaitMS { get; set; } + [Category("Operation Delay(sec)"), DisplayName("포트 하강 시간(Unloader)"), Description("포트 정렬시 지정된 시간동안 하강 합니다"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public float PortAlignDownTimeU { get; set; } + [Category("Operation Delay(sec)"), DisplayName("포트 하강 시간(Loader)"), Description("포트 정렬시 지정된 시간동안 하강 합니다"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public float PortAlignDownTimeL { get; set; } + [Category("Operation Delay(sec)"), DisplayName("Loder포트 하강 시간(Finish)"), Description("작업 완료 후 지정된 시간(ms) 만큼 하강 합니다"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public ushort Port1FisnishDownTime { get; set; } + #endregion + + #region "GENERAL + [Category("General Setting"), DisplayName("내부조명자동OFF시간(분)")] + public int AutoOffRoomLightMin { get; set; } + + [Category("General Setting"), DisplayName("장비 자산 번호"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public string Asset { get; set; } + + [Category("General Setting"), DisplayName("장비식별이름"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public string McName { get; set; } + + [Category("General Setting"), DisplayName("무시바코드"), Description("입려된 값으로 시작하는 바코드를 무시합니다. 여러개 입력하려면 콤마(,) 로 구분 하세요"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public string IgnoreBarcode { get; set; } + + [Category("General Setting"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public string ReelIdDeviceID { get; set; } + [Category("General Setting"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public string ReelIdDeviceLoc { get; set; } + [Category("General Setting"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public bool Enable_AutoChangeModelbyHandBarcode { get; set; } + + #endregion + //public Boolean MoveYForPaperVaccume { get; set; } + [Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public float MoveYForPaperVaccumeValue { get; set; } + [Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public uint MoveYForPaperVaccumeVel { get; set; } + [Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public uint MoveYForPaperVaccumeAcc { get; set; } + [Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean OnlineMode { get; set; } + + //public Boolean STDLabelFormat7 { get; set; } + #region "Printer" + [Category("Printer"), DisplayName("바코드 외곽 박스 그리기"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean DrawOutbox { get; set; } + [Category("Printer"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public string baseZPLFile { get; set; } + #endregion + + [Category("Joystick"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public int Jostick_vid { get; set; } + [Category("Joystick"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public int Jostick_pid { get; set; } + + [DisplayName("바코드위치별회전(뒤)")] + public float RearBarcodeRotate { get; set; } + [DisplayName("바코드위치별회전(앞)")] + public float FrontBarcodeRotate { get; set; } + + [Browsable(false)] + public bool SystemBypass { get; set; } + + + #region "general" + + [Category("General Setting"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public string Sidinfofilename { get; set; } + [Category("General Setting"), DisplayName("버그리포트수신자"), Description("버그리포트 수신자 목록, 다중 목록의 각 대상은 세미콜론으로 구분 합니다"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public string BugreportToList { get; set; } + + [Category("General Setting"), Browsable(false), + Description("데이터 자동 소거 기간(일) 비활성=0"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public int AutoDeleteDay { get; set; } + [Category("General Setting"), Browsable(false), + Description("데이터 자동 소거 조건(남은용량 %)"), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public int AutoDeleteThreshold { get; set; } + + [Category("General Setting"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public string Password_Setup { get; set; } + + [Category("General Setting"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public string Language { get; set; } + + [Category("General Setting"), DisplayName("Full Screen Window State"), + Description("화면을 전체화면으로 사용 합니다."), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean FullScreen { get; set; } + + + #region "표시안함" + [Category("Sensor Detect"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Detect_CartL { get; set; } + [Category("Sensor Detect"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Detect_CartC { get; set; } + [Category("Sensor Detect"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Detect_CartR { get; set; } + [Category("Sensor Detect"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Detect_PrintL { get; set; } + [Category("Sensor Detect"), Browsable(false), Editor(typeof(MyUITypeEditor), typeof(UITypeEditor))] + public Boolean Detect_PrintR { get; set; } + //[Category("Sensor Detect"), Browsable(false)] + //public Boolean Detect_CenterSafty { get; set; } + #endregion + + #endregion + + #region "Report" + [Category("Report"), + Description("상태기록시 장비 식별코드(4자리)"), + DisplayName("M/C ID")] + public string MCID { get; set; } + + [Category("Report"), + Description("작업 기록을 장비기술(EE) Database 에 기록 합니다. 원격으로 장비 현황을 모니터링 할 수 있습니다"), + DisplayName("SAVE EE-DB")] + public Boolean Save_EEDatabase { get; set; } + [Category("Report"), Description("상태값을 전송하는 간격(초)")] + public int StatusInterval { get; set; } + #endregion + + #region "swplc" + public string swplc_name { get; set; } + public int swplc_size { get; set; } + #endregion + + [Category("Develop")] + public string Bugreport_mail { get; set; } + + public override void AfterLoad() + { + + if (WebAPI_R1.isEmpty()) WebAPI_R1 = "http://10.131.32.31:9001"; + if (WebAPI_R2.isEmpty()) WebAPI_R2 = "http://10.131.32.24:9001"; + if (WebAPI_R3.isEmpty()) WebAPI_R3 = "http://10.131.32.22:9001"; + + if (swplc_size < 1) swplc_size = 100; + if (swplc_name.isEmpty()) swplc_name = "swplc"; + + + if (StatusInterval < 10) StatusInterval = 300; //5분간격 + + var currentpath = AppDomain.CurrentDomain.BaseDirectory; + if (AutoOffRoomLightMin == 0) AutoOffRoomLightMin = 5; + if (baseZPLFile.isEmpty()) + baseZPLFile = "zpl7.txt"; + + if (RetryPickOnAngle == 0) RetryPickOnAngle = 79; + + if (Barcode_Baud == 0) Barcode_Baud = 9600; + if (JOG_Speed < 1) JOG_Speed = 200; + if (JOG_Acc < 1) JOG_Acc = 500; + + if (PrintL_Baud == 0) PrintL_Baud = 115200; + if (PrintR_Baud == 0) PrintR_Baud = 115200; + + + if (BugreportToList.isEmpty()) BugreportToList = "chikyun.kim@amkor.co.kr"; + if (HostIPL.isEmpty() && HostPortL < 1) + { + HostIPL = "127.0.0.1"; + HostPortL = 7979; + } + if (HostIPR.isEmpty() && HostPortR < 1) + { + HostIPR = "127.0.0.1"; + HostPortR = 7980; + } + if (ReelIdDeviceLoc.isEmpty()) ReelIdDeviceLoc = "4"; + if (ReelIdDeviceID.isEmpty()) ReelIdDeviceID = "A"; + if (IgnoreBarcode.isEmpty()) IgnoreBarcode = "{{{"; + if (Timeout_AutoConfirm == 0) Timeout_AutoConfirm = 5; + //if (PrintVacOffPurgesec <= 0.0) PrintVacOffPurgesec = 1.1f; + if (PrintVacOffPurgeMS == 0) PrintVacOffPurgeMS = 500; + if (MoveYForPaperVaccumeVel == 0) MoveYForPaperVaccumeVel = 10; + if (MoveYForPaperVaccumeAcc == 0) MoveYForPaperVaccumeAcc = 1000; + + //포트얼라인시간 210401 + if (PortAlignDownTimeU == 0f && + PortAlignDownTimeL == 0f) + { + PortAlignDownTimeL = 1.5f; + PortAlignDownTimeU = 1.0f; + } + + if (Jostick_vid == 0) Jostick_vid = 121; + if (Jostick_pid == 0) Jostick_pid = 17; + + if (PrintLWaitMS == 0) PrintLWaitMS = 1500; + if (PrintRWaitMS == 0) PrintRWaitMS = 1500; + + if (WaitTime_Magnet0 == 0) WaitTime_Magnet0 = 3000; + if (WaitTime_Magnet1 == 0) WaitTime_Magnet1 = 3000; + if (WaitTime_Magnet2 == 0) WaitTime_Magnet2 = 3000; + + //if (PrintLeftName.isEmpty()) PrintLeftName = "PrinterL"; + //if (PrintRightName.isEmpty()) PrintRightName = "PrinterR"; + + if (SaftyDetectRise == 0) SaftyDetectRise = 20; + if (SaftyDetectFall == 0) SaftyDetectFall = 1000; //안전센서는 느리게 해제 한다 + + if (Timeout_JOBEnd == 0) Timeout_JOBEnd = 10; + + if (Timeout_VisionProcessL == 0) Timeout_VisionProcessL = 10000; + if (Timeout_VisionProcessU == 0) Timeout_VisionProcessU = 10000; + if (PortDetectFall == 0) PortDetectFall = 50; + if (PortDetectRise == 0) PortDetectRise = 10; + + if (AirChange == 0) AirChange = 3000; + + if (Keyence_IPF.isEmpty()) Keyence_IPF = "192.168.100.100"; + //if (Keyence_IPR.isEmpty()) Keyence_IPR = "192.168.100.101"; + if (Keyence_Port == 0) Keyence_Port = 9004; + + //데이터베이스 + //if (Keyence_IPL.isEmpty() == true) Keyence_IPL = "net.pipe://127.0.0.1/barcode"; + //if (Keyence_IPR.isEmpty() == true) Keyence_IPR = "net.pipe://127.0.0.1/barcode"; + + if (Timeout_MotionCommand == 0) Timeout_MotionCommand = 10; + if (Timeout_DIOCommand == 0) Timeout_DIOCommand = 10; + + if (AutoDeleteThreshold == 0) AutoDeleteThreshold = 20; + if (Timeout_HomeSearch == 0) Timeout_HomeSearch = 50; + //if (AirOFFTimer == 0) AirOFFTimer = 3000; //181226 + if (Asset == "") Asset = "DEV_SPLIT"; + if (Language.isEmpty()) Language = "Kor"; + //if (Password_Setup.isEmpty()) Password_Setup = "0000"; + + if (Path_Data == "") + Path_Data = System.IO.Path.Combine(currentpath, "SaveData"); + + try + { + if (System.IO.Directory.Exists(Path_Data) == false) + System.IO.Directory.CreateDirectory(Path_Data); + } + catch + { + + } + //if (Password_User.isEmpty()) Password_User = "9999"; + } + + public override void AfterSave() + { + //throw new NotImplementedException(); + } + + public void CopyTo(CommonSetting dest) + { + //이곳의 모든 쓰기가능한 속성값을 대상에 써준다. + Type thClass = this.GetType(); + foreach (var method in thClass.GetMethods()) + { + var parameters = method.GetParameters(); + if (!method.Name.StartsWith("get_")) continue; + + string keyname = method.Name.Substring(4); + string methodName = method.Name; + + object odata = GetType().GetMethod(methodName).Invoke(this, null); + var wMethod = dest.GetType().GetMethod(Convert.ToString("set_") + keyname); + if (wMethod != null) wMethod.Invoke(dest, new object[] { odata }); + } + } + } + +} diff --git a/Handler/Sub/Setting/Properties/AssemblyInfo.cs b/Handler/Sub/Setting/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..6b2402d --- /dev/null +++ b/Handler/Sub/Setting/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("Setting")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Setting")] +[assembly: AssemblyCopyright("Copyright © 2022")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("48654765-548d-42ed-9238-d65eb3bc99ad")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 +// 기본값으로 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Handler/Sub/Setting/SETTING.cs b/Handler/Sub/Setting/SETTING.cs new file mode 100644 index 0000000..a710a65 --- /dev/null +++ b/Handler/Sub/Setting/SETTING.cs @@ -0,0 +1,35 @@ +using System; +using System.Data; + +namespace AR +{ + public static class SETTING + { + public static CommonSetting Data; + public static UserSetting User; + public static Boolean isInit { get; private set; } = false; + public static void Load() + { + if (Data == null) Data = new CommonSetting(); + Data.Load(); + if (User == null) User = new UserSetting(); + User.Load(); + + isInit = true; + + + } + public static void Save() + { + Data.Save(); + User.Save(); + } + + public static bool isEmpty(this string data) + { + return string.IsNullOrEmpty(data); + } + + } + +} diff --git a/Handler/Sub/Setting/Setting.csproj b/Handler/Sub/Setting/Setting.csproj new file mode 100644 index 0000000..7487c06 --- /dev/null +++ b/Handler/Sub/Setting/Setting.csproj @@ -0,0 +1,67 @@ + + + + + Debug + AnyCPU + {48654765-548D-42ED-9238-D65EB3BC99AD} + Library + Properties + Setting + Setting + v4.8 + 512 + true + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + false + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + false + + + + ..\..\DLL\ArSetting.Net4.dll + + + + + + + + + + + + + + + + + + + + {f31c242c-1b15-4518-9733-48558499fe4b} + arControl + + + {14e8c9a5-013e-49ba-b435-ffffff7dd623} + arCommUtil + + + + \ No newline at end of file diff --git a/Handler/Sub/StdLabelPrint/CAmkorSTDBarcode.cs b/Handler/Sub/StdLabelPrint/CAmkorSTDBarcode.cs new file mode 100644 index 0000000..54fc129 --- /dev/null +++ b/Handler/Sub/StdLabelPrint/CAmkorSTDBarcode.cs @@ -0,0 +1,196 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace StdLabelPrint +{ + public class CAmkorSTDBarcode + { + public string Message { get; private set; } + public Boolean isValid = false; + public string SID { get; set; } + public string VLOT { get; set; } + public string RID { get; set; } + public string MFGDate { get; set; } + //public string MFGDateRaw { get; set; } + public string VENDERNAME { get; set; } + public string PARTNO { get; set; } + public int QTY { get; set; } + public string RAW { get; set; } + public Boolean DateError { get; private set; } + public Boolean DisposalCode { get; set; } + + public Boolean NewLen15Barcode { get; set; } + + public void CopyTo(CAmkorSTDBarcode obj) + { + if (obj == null) obj = new CAmkorSTDBarcode(); + else obj.Clear(); + obj.Message = this.Message; + obj.isValid = this.isValid; + obj.SID = this.SID; + obj.VLOT = this.VLOT; + obj.RID = this.RID; + obj.MFGDate = this.MFGDate; + obj.VENDERNAME = this.VENDERNAME; + obj.PARTNO = this.PARTNO; + obj.QTY = this.QTY; + obj.RAW = this.RAW; + obj.DateError = this.DateError; + obj.DisposalCode = this.DisposalCode; + obj.NewLen15Barcode = this.NewLen15Barcode; + } + public CAmkorSTDBarcode() + { + Clear(); + } + public void Clear() + { + this.DisposalCode = false; + this.NewLen15Barcode = false; + this.Message = string.Empty; + this.isValid = false; + this.SID = string.Empty; + this.VLOT = string.Empty; + this.RID = string.Empty; + //this.MFGDateRaw = string.Empty; + this.MFGDate = string.Empty;// new DateTime(1982, 11, 23); + this.VENDERNAME = string.Empty; + this.PARTNO = string.Empty; + this.QTY = 0; + this.RAW = string.Empty; + DateError = false; + } + public CAmkorSTDBarcode(string raw) + { + SetBarcode(raw); + } + public void SetBarcodeDemo() + { + //SetBarcode("101410653;AG64B3W;SAMSUNG;20000;AG64B3W0031;19000101;"); + SetBarcode("101410653;AG64B3W;SAMSUNG;20000;AG64B3W0031;19000101;"); + } + + /// + /// 현재 속성의 값을 가지고 바코드값을 반환합니다. + /// 원본 바코드 값을 확인하려면 RAW 속성을 확인하세요 + /// + /// + public string GetBarcode() + { + if (string.IsNullOrWhiteSpace(PARTNO)) + return string.Format("{0};{1};{2};{3};{4};{5}", + SID, VLOT, VENDERNAME, QTY, RID, MFGDate); + else + return string.Format("{0};{1};{2};{3};{4};{5};{6}", + SID, VLOT, VENDERNAME, QTY, RID, MFGDate, PARTNO); + } + public void SetBarcode(string raw) + { + //101416868;01A3KX;KYOCERA;20000;RC00014A225001I;20220511;N/A + + + isValid = false; + + this.RAW = raw; + var buf = raw.Split(';'); + if (buf.Length < 5) + { + isValid = false; + Message = "buffer len error : " + raw; + return; + } + decimal vSID = 0; + double vQty = 0; + if (decimal.TryParse(buf[0], out vSID) == false) return; + + this.SID = buf[0]; + this.VLOT = buf[1]; + + + //101인경우에는 3번 항목이 벤더네임이다. + //103은 partno 값이 들어간다 + if (this.SID.StartsWith("103")) + { + if (buf.Length == 7) //구형바코드 + { + this.VENDERNAME = buf[2]; + this.PARTNO = string.Empty; + Message = "폐기된 103코드 입니다"; + DisposalCode = true; + } + else + { + //05월 신형은 파트번호가 들어있다 + this.PARTNO = buf[2]; + this.VENDERNAME = string.Empty; + DisposalCode = false; + } + } + else + { + this.VENDERNAME = buf[2]; + this.PARTNO = string.Empty; + DisposalCode = false; + } + + //일부 데이터를 변조한다 210709 + if (this.VENDERNAME == "K118165") this.VENDERNAME = "DELTA"; + else if (this.VENDERNAME == "K113986") this.VENDERNAME = "DREAM CHIP"; + + + if (double.TryParse(buf[3], out vQty) == false) return; + this.QTY = (int)vQty; + + this.RID = buf[4]; + //DateTime vMFGDate; + DateError = false; + this.MFGDate = buf[5].Trim(); + + //신형바코드는 angle 에서 제외하려고 판정한다 + if (this.RID.Length == 15 && this.RID.StartsWith("RC")) //210703 + this.NewLen15Barcode = true; + else + this.NewLen15Barcode = false; + + + //if (buf[5].Length == 4 && this.SUPPLY == "SAMSUNG") + //{ + // //삼성은 주차로 한다 + // DateError = true; + // Message = "Date Error(samsung)"; + // MFGDate = new DateTime(2000+ int.Parse( buf[5].Substring(0,2) ), 1, 1); + + // //DateTime.Now. + //} + //else if (buf[5].Length != 8) + //{ + // Message = "Date value Length Error : " + buf[5]; + // MFGDate = new DateTime(1900, 1, 1); + // return; + //} + //else + //{ + // buf[5] = buf[5].Substring(0, 4) + "-" + buf[5].Substring(4, 2) + "-" + buf[5].Substring(6, 2); + // if (DateTime.TryParse(buf[5], out vMFGDate) == false) return; + // MFGDate = vMFGDate; + //} + + //마지막 요소가 PartNo 이다. (아직 이코드는 본적 없음) + if (this.SID.StartsWith("103") && buf.Length == 7) //구형번호이다 + { + this.PARTNO = buf[6]; + } + + if (buf.Length == 7 && string.IsNullOrEmpty(this.PARTNO)) + { + this.PARTNO = buf[6]; + } + //else this.PARTNO = string.Empty; + + isValid = true; + } + } +} diff --git a/Handler/Sub/StdLabelPrint/Def.cs b/Handler/Sub/StdLabelPrint/Def.cs new file mode 100644 index 0000000..70ab841 --- /dev/null +++ b/Handler/Sub/StdLabelPrint/Def.cs @@ -0,0 +1,118 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Runtime.InteropServices; + +namespace StdLabelPrint +{ + public partial class LabelPrint + { + private const int ERROR_INSUFFICIENT_BUFFER = 122; + + [FlagsAttribute] + public enum PrinterEnumFlags + { + PRINTER_ENUM_DEFAULT = 0x00000001, + PRINTER_ENUM_LOCAL = 0x00000002, + PRINTER_ENUM_CONNECTIONS = 0x00000004, + PRINTER_ENUM_FAVORITE = 0x00000004, + PRINTER_ENUM_NAME = 0x00000008, + PRINTER_ENUM_REMOTE = 0x00000010, + PRINTER_ENUM_SHARED = 0x00000020, + PRINTER_ENUM_NETWORK = 0x00000040, + PRINTER_ENUM_EXPAND = 0x00004000, + PRINTER_ENUM_CONTAINER = 0x00008000, + PRINTER_ENUM_ICONMASK = 0x00ff0000, + PRINTER_ENUM_ICON1 = 0x00010000, + PRINTER_ENUM_ICON2 = 0x00020000, + PRINTER_ENUM_ICON3 = 0x00040000, + PRINTER_ENUM_ICON4 = 0x00080000, + PRINTER_ENUM_ICON5 = 0x00100000, + PRINTER_ENUM_ICON6 = 0x00200000, + PRINTER_ENUM_ICON7 = 0x00400000, + PRINTER_ENUM_ICON8 = 0x00800000, + PRINTER_ENUM_HIDE = 0x01000000, + PRINTER_ENUM_CATEGORY_ALL = 0x02000000, + PRINTER_ENUM_CATEGORY_3D = 0x04000000 + } + + [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)] + public struct PRINTER_INFO_2 + { + [MarshalAs(UnmanagedType.LPTStr)] + public string pServerName; + [MarshalAs(UnmanagedType.LPTStr)] + public string pPrinterName; + [MarshalAs(UnmanagedType.LPTStr)] + public string pShareName; + [MarshalAs(UnmanagedType.LPTStr)] + public string pPortName; + [MarshalAs(UnmanagedType.LPTStr)] + public string pDriverName; + [MarshalAs(UnmanagedType.LPTStr)] + public string pComment; + [MarshalAs(UnmanagedType.LPTStr)] + public string pLocation; + public IntPtr pDevMode; + [MarshalAs(UnmanagedType.LPTStr)] + public string pSepFile; + [MarshalAs(UnmanagedType.LPTStr)] + public string pPrintProcessor; + [MarshalAs(UnmanagedType.LPTStr)] + public string pDatatype; + [MarshalAs(UnmanagedType.LPTStr)] + public string pParameters; + public IntPtr pSecurityDescriptor; + public uint Attributes; // See note below! + public uint Priority; + public uint DefaultPriority; + public uint StartTime; + public uint UntilTime; + public uint Status; + public uint cJobs; + public uint AveragePPM; + } + [StructLayout(LayoutKind.Sequential)] + public struct DOCINFO + { + [MarshalAs(UnmanagedType.LPWStr)] public string pDocName; + [MarshalAs(UnmanagedType.LPWStr)] public string pOutputFile; + [MarshalAs(UnmanagedType.LPWStr)] public string pDataType; + } + public class PrintDirect + { + [DllImport("winspool.drv", CharSet = CharSet.Unicode, ExactSpelling = false, + CallingConvention = CallingConvention.StdCall)] + public static extern long OpenPrinter(string pPrinterName, ref IntPtr phPrinter, int pDefault); + [DllImport("winspool.drv", CharSet = CharSet.Unicode, ExactSpelling = false, + CallingConvention = CallingConvention.StdCall)] + public static extern long StartDocPrinter(IntPtr hPrinter, int Level, ref DOCINFO + pDocInfo); + [DllImport("winspool.drv", CharSet = CharSet.Unicode, ExactSpelling = true, + CallingConvention = CallingConvention.StdCall)] + public static extern long StartPagePrinter(IntPtr hPrinter); + [DllImport("winspool.drv", CharSet = CharSet.Ansi, ExactSpelling = true, + CallingConvention = CallingConvention.StdCall)] + public static extern long WritePrinter(IntPtr hPrinter, string data, int buf, ref int pcWritten); + [DllImport("winspool.drv", CharSet = CharSet.Unicode, ExactSpelling = true, + CallingConvention = CallingConvention.StdCall)] + public static extern long EndPagePrinter(IntPtr hPrinter); + [DllImport("winspool.drv", CharSet = CharSet.Unicode, ExactSpelling = true, + CallingConvention = CallingConvention.StdCall)] + public static extern long EndDocPrinter(IntPtr hPrinter); + [DllImport("winspool.drv", CharSet = CharSet.Unicode, ExactSpelling = true, + CallingConvention = CallingConvention.StdCall)] + public static extern long ClosePrinter(IntPtr hPrinter); + + [DllImport("winspool.drv", CharSet = CharSet.Auto, SetLastError = true)] + public static extern bool EnumPrinters(PrinterEnumFlags Flags, string Name, uint Level, IntPtr pPrinterEnum, uint cbBuf, ref uint pcbNeeded, ref uint pcReturned); + + + + } + + + } +} diff --git a/Handler/Sub/StdLabelPrint/LabelPrint.cs b/Handler/Sub/StdLabelPrint/LabelPrint.cs new file mode 100644 index 0000000..bbff481 --- /dev/null +++ b/Handler/Sub/StdLabelPrint/LabelPrint.cs @@ -0,0 +1,308 @@ +using System; +using System.ComponentModel; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Runtime.InteropServices; + +namespace StdLabelPrint +{ + public partial class LabelPrint + { + public string printerName { get; set; } = string.Empty; + public List connectedPrinter = new List(); + public string LastPrintZPL = string.Empty; + public string qrData = string.Empty; + public string baseZPL { get; set; } + + public LabelPrint(string _prtName) + { + //GetPrinterList(); + + //if (connectedPrinter.Contains(_prtName) == false) + // throw new Exception("연결된 프린터가 아닙니다."); + + printerName = _prtName; + baseZPL = Properties.Settings.Default.zpl; + + } + + public List GetPrinterList() + { + connectedPrinter = new List(); + var list_local = FindPrinters(PrinterEnumFlags.PRINTER_ENUM_LOCAL); + var list_connected = FindPrinters(PrinterEnumFlags.PRINTER_ENUM_CONNECTIONS); + try + { + connectedPrinter.AddRange(list_local); + } + catch { } + + try + { + connectedPrinter.AddRange(list_connected); + } + catch { } + return connectedPrinter; + } + public string makeZPL_210101(Reel reel, Boolean D1RID, Boolean drawbox, out string qrData) + { + string prtData = string.Empty; + qrData = string.Format("{0};{1};{2};{3};{4};{5};{6}", reel.sid, reel.lot, reel.manu, reel.qty, reel.id, reel.mfg, reel.partnum); + prtData = "^XA\r\n"; + prtData += "^MMT\r\n"; + prtData += "^PW519\r\n"; + prtData += "^LL0200\r\n"; + prtData += "^LS0\r\n"; + prtData += "^FO128,96^GFA,01536,01536,00048,:Z64:\r\n"; + prtData += "eJxjYBgFo2AUkADs/xMN/g1G9aNgFMABAIF9rE0=:1194\r\n"; + + if (drawbox) + prtData += "^FO1,7^GB505,185,4^FS\r\n"; + + prtData += "^BY2,3,41^FT280,82^BCN,,N,N,N,A\r\n"; + prtData += "^FD" + reel.sid + "^FS\r\n"; + prtData += "^FT12,160^BQN,2,4\r\n"; + prtData += string.Format("^FH\\^FDLA,{0}^FS\r\n", qrData); + prtData += "^BY2,3,32^FT86,185^BCN,,N,N,N,A\r\n"; + prtData += string.Format("^FD{0};{1}^FS\r\n", reel.sid, reel.lot); + prtData += "^FO278,7^GB0,26,4^FS\r\n"; + prtData += "^FT160,29^A0N,20,19^FH\\^FDSID^FS\r\n"; + prtData += "^FT159,111^A0N,20,19^FH\\^FDPN^FS\r\n"; + prtData += "^FT159,137^A0N,20,19^FH\\^FDRID^FS\r\n"; + prtData += "^FT194,29^A0N,20,19^FH\\^FD" + reel.sid + "^FS\r\n"; + prtData += "^FT324,29^A0N,20,19^FH\\^FD" + reel.lot + "^FS\r\n"; + prtData += "^FT195,111^A0N,20,19^FH\\^FD" + reel.partnum + "^FS\r\n"; + + prtData += "^FT195,137^A0N,20,19^FH\\^FD" + (D1RID ? reel.id : string.Empty) + "^FS\r\n"; //210302 + + prtData += "^FT441,137^A0N,20,19^FH\\^FD" + reel.qty.ToString() + "^FS\r\n"; + prtData += "^FT285,29^A0N,20,19^FH\\^FDLOT^FS\r\n"; + prtData += "^FT396,137^A0N,20,19^FH\\^FDQTY^FS\r\n"; + prtData += "^FO154,7^GB352,28,4^FS\r\n"; + prtData += "^FO154,89^GB352,54,4^FS\r\n"; + prtData += "^FO190,90^GB0,51,4^FS\r\n"; + prtData += "^FO188,9^GB0,24,4^FS\r\n"; + prtData += "^FO388,117^GB0,26,4^FS\r\n"; + prtData += "^FO430,116^GB0,26,4^FS\r\n"; + prtData += "^FO316,7^GB0,26,4^FS\r\n"; + prtData += "^PQ1,0,1,Y^XZ\r\n"; + return prtData; + } + public string makeZPL_210510(Reel reel, Boolean drawbox, out string qrData) + { + string m_strSend = string.Empty; + qrData = string.Format("{0};{1};{2};{3};{4};{5}", reel.sid, reel.lot, reel.partnum, reel.qty, reel.id, reel.mfg); + + m_strSend = this.baseZPL; + m_strSend = m_strSend.Replace("{qrData}", qrData); + m_strSend = m_strSend.Replace("{sid}", reel.sid); + m_strSend = m_strSend.Replace("{lot}", reel.lot); + m_strSend = m_strSend.Replace("{partnum}", reel.partnum); + m_strSend = m_strSend.Replace("{rid}", reel.id); + m_strSend = m_strSend.Replace("{qty}", reel.qty.ToString()); + m_strSend = m_strSend.Replace("{mfg}", reel.mfg); + m_strSend = m_strSend.Replace("{supply}", reel.manu); + + //줄바꿈제거 + m_strSend = m_strSend.Replace("\r", "").Replace("\n", ""); + return m_strSend; + } + public string makeZPL_210908(Reel reel, Boolean drawbox, out string qrData) + { + string m_strSend = string.Empty; + qrData = string.Format("{0};{1};{2};{3};{4};{5};{6}", reel.sid, reel.lot, reel.manu, reel.qty, reel.id, reel.mfg, reel.partnum); + + m_strSend = this.baseZPL; + m_strSend = m_strSend.Replace("{qrData}", qrData); + m_strSend = m_strSend.Replace("{sid}", reel.sid); + m_strSend = m_strSend.Replace("{lot}", reel.lot); + m_strSend = m_strSend.Replace("{partnum}", reel.partnum); + m_strSend = m_strSend.Replace("{rid}", reel.id); + m_strSend = m_strSend.Replace("{qty}", reel.qty.ToString()); + m_strSend = m_strSend.Replace("{mfg}", reel.mfg); + m_strSend = m_strSend.Replace("{supply}", reel.manu); + + //줄바꿈제거 + m_strSend = m_strSend.Replace("\r", "").Replace("\n", ""); + return m_strSend; + } + public Boolean TestPrint(Boolean drawbox, string manu = "", string mfgdate = "", Boolean Array7 = false) + { + var dtstr = DateTime.Now.ToShortDateString(); + var printcode = "103077807;Z577603504;105-35282-1105;15000;RC00004A219001W;20210612"; + var reel = new StdLabelPrint.Reel(printcode); + //reel.id = "RLID" + DateTime.Now.ToString("MMHHmmssfff"); + reel.sid = "103000000"; + reel.partnum = "PARTNO".PadRight(20, '0'); //20자리 + + if (mfgdate == "") reel.mfg = dtstr; + else reel.mfg = mfgdate; + + reel.lot = "LOT000000000"; + if (manu == "") reel.manu = "ATK4EET1"; + else reel.manu = manu; + + reel.qty = 15000; + var rlt = Print(reel, true, drawbox, Array7); + var fi = new System.IO.FileInfo(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "temp_zpl.txt")); + System.IO.File.WriteAllText(fi.FullName, LastPrintZPL, System.Text.Encoding.Default); + return rlt; + } + + + public Boolean Print(Reel reel, Boolean display1drid, Boolean drawOUtBox, Boolean Array7 = false) + { + string prtData; + if (Array7) + prtData = makeZPL_210908(reel, drawOUtBox, out qrData); + else + prtData = makeZPL_210510(reel, drawOUtBox, out qrData); + + return Print(prtData); + } + + public bool Print(string _zpl) + { + this.LastPrintZPL = _zpl; + + bool retval = false; + System.IntPtr lhPrinter = new System.IntPtr(); + DOCINFO di = new DOCINFO(); + int pcWritten = 0; + //string st1; + // text to print with a form feed character + //st1 = "This is std label by using zpl\f"; + di.pDocName = "Component Std Label"; + di.pDataType = "RAW"; + // the \x1b means an ascii escape character + + //lhPrinter contains the handle for the printer opened + //If lhPrinter is 0 then an error has occured + + //GetPrinterList(); + + //if (connectedPrinter.Contains(printerName) == false) + // throw new Exception("연결된 프린터가 아닙니다."); + + + PrintDirect.OpenPrinter(printerName, ref lhPrinter, 0); + PrintDirect.StartDocPrinter(lhPrinter, 1, ref di); + PrintDirect.StartPagePrinter(lhPrinter); + try + { + PrintDirect.WritePrinter(lhPrinter, _zpl, _zpl.Length, ref pcWritten); + retval = true; + } + catch (Exception e) + { + Console.WriteLine(e.Message); + } + PrintDirect.EndPagePrinter(lhPrinter); + PrintDirect.EndDocPrinter(lhPrinter); + PrintDirect.ClosePrinter(lhPrinter); + return retval; + } + private List FindPrinters(PrinterEnumFlags Flags) + { + List prtList = new List(); + uint cbNeeded = 0; + uint cReturned = 0; + if (PrintDirect.EnumPrinters(Flags, null, 2, IntPtr.Zero, 0, ref cbNeeded, ref cReturned)) + { + return null; + } + int lastWin32Error = Marshal.GetLastWin32Error(); + if (lastWin32Error == ERROR_INSUFFICIENT_BUFFER) + { + IntPtr pAddr = Marshal.AllocHGlobal((int)cbNeeded); + if (PrintDirect.EnumPrinters(Flags, null, 2, pAddr, cbNeeded, ref cbNeeded, ref cReturned)) + { + PRINTER_INFO_2[] printerInfo2 = new PRINTER_INFO_2[cReturned]; + int offset = pAddr.ToInt32(); + Type type = typeof(PRINTER_INFO_2); + int increment = Marshal.SizeOf(type); + for (int i = 0; i < cReturned; i++) + { + printerInfo2[i] = (PRINTER_INFO_2)Marshal.PtrToStructure(new IntPtr(offset), type); + prtList.Add(printerInfo2[i].pPrinterName); + offset += increment; + } + Marshal.FreeHGlobal(pAddr); + return prtList; + } + lastWin32Error = Marshal.GetLastWin32Error(); + } + throw new Win32Exception(lastWin32Error); + } + + + + } + public class Reel + { + public string sid { get; set; } + public string lot { get; set; } + public string mfg { get; set; } + public int qty { get; set; } + public string id { get; set; } + //public string date { get; set; } + public string partnum { get; set; } + public string manu { get; set; } + + public Reel() + { + Clear(); + } + public void Clear() + { + sid = string.Empty; + lot = string.Empty; + mfg = string.Empty; + lot = string.Empty; + id = string.Empty; + //date = string.Empty; + partnum = string.Empty; + manu = string.Empty; + qty = 0; + } + public Reel(string _sid, string _lot, string _manu, int _qty, string _id, string _mfgdate, string _partnum) + { + int sidNum = 0; + if (int.TryParse(_sid, out sidNum) && sidNum.ToString().Length == 9) + sid = sidNum.ToString(); + else + throw new Exception("SID가 숫자가 아니거나 9자리 숫자가 아닙니다."); + + lot = _lot; + mfg = _mfgdate; + qty = _qty; + id = _id; + partnum = _partnum; + manu = _manu; + } + public Reel(string qrbarcodestr) + { + var spData = qrbarcodestr.Split(';'); + if (spData.Length < 6) + throw new Exception("Barcode Length가 적습니다."); + + sid = spData[0]; + lot = spData[1]; + manu = spData[2]; + + int _qty = 0; + + if (int.TryParse(spData[3], out _qty)) + qty = _qty; + else + throw new Exception("수량란에 숫자 정보가 아닙니다."); + + id = spData[4]; + mfg = spData[5]; + if (spData.Length > 6) partnum = spData[6]; + else partnum = string.Empty; + } + } +} diff --git a/Handler/Sub/StdLabelPrint/Properties/AssemblyInfo.cs b/Handler/Sub/StdLabelPrint/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..5f1c25c --- /dev/null +++ b/Handler/Sub/StdLabelPrint/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("StdLabelPrint")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("StdLabelPrint")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("b18d3b96-2fdf-4ed9-9a49-d9b8cee4ed6d")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 +// 기본값으로 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Handler/Sub/StdLabelPrint/Properties/Settings.Designer.cs b/Handler/Sub/StdLabelPrint/Properties/Settings.Designer.cs new file mode 100644 index 0000000..85d769a --- /dev/null +++ b/Handler/Sub/StdLabelPrint/Properties/Settings.Designer.cs @@ -0,0 +1,80 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +namespace StdLabelPrint.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute(@"^XA~TA000~JSN^LT0^MNW^MTT^PON^PMN^LH0,0^JMA^PR6,6~SD15^JUS^LRN^CI0^XZ +^XA +^MMT +^PW519 +^LL0200 +^LS25 +^FO205,5^GB305,186,4^FS +^FT25,170^BQN,2,4 +^FDLA, +{qrData} +^FS +^FO205,9^GB0,183,4^FS +^FO250,9^GB0,183,4^FS +^FO209,34^GB299,0,4^FS +^FO209,65^GB299,0,4^FS +^FO207,95^GB300,0,4^FS +^FO207,126^GB303,0,4^FS +^FT211,30^A0N,23,24^FDSID^FS +^FT210,59^A0N,23,24^FDLOT^FS +^FT215,91^A0N,23,24^FDPN^FS +^FT212,153^A0N,23,24^FDRID^FS +^FT210,120^A0N,23,24^FDQ'ty^FS +^FT260,31^A0N,23,24^FD +{sid} +^FS +^FT260,60^A0N,23,24^FD +{lot} +^FS +^FT258,93^A0N,27,16^FD +{partnum} +^FS +^FT256,150^A0N,21,19^FD +{rid} +^FS +^FT259,121^A0N,23,24^FD +{qty} +^FS +^FO207,157^GB303,0,4^FS +^FT212,182^A0N,20,19^FDDate^FS +^FT260,183^A0N,23,24^FD +{mfg} +^FS +^PQ1,0,1,Y^XZ")] + public string zpl { + get { + return ((string)(this["zpl"])); + } + set { + this["zpl"] = value; + } + } + } +} diff --git a/Handler/Sub/StdLabelPrint/Properties/Settings.settings b/Handler/Sub/StdLabelPrint/Properties/Settings.settings new file mode 100644 index 0000000..4047e3c --- /dev/null +++ b/Handler/Sub/StdLabelPrint/Properties/Settings.settings @@ -0,0 +1,51 @@ + + + + + + ^XA~TA000~JSN^LT0^MNW^MTT^PON^PMN^LH0,0^JMA^PR6,6~SD15^JUS^LRN^CI0^XZ +^XA +^MMT +^PW519 +^LL0200 +^LS25 +^FO205,5^GB305,186,4^FS +^FT25,170^BQN,2,4 +^FDLA, +{qrData} +^FS +^FO205,9^GB0,183,4^FS +^FO250,9^GB0,183,4^FS +^FO209,34^GB299,0,4^FS +^FO209,65^GB299,0,4^FS +^FO207,95^GB300,0,4^FS +^FO207,126^GB303,0,4^FS +^FT211,30^A0N,23,24^FDSID^FS +^FT210,59^A0N,23,24^FDLOT^FS +^FT215,91^A0N,23,24^FDPN^FS +^FT212,153^A0N,23,24^FDRID^FS +^FT210,120^A0N,23,24^FDQ'ty^FS +^FT260,31^A0N,23,24^FD +{sid} +^FS +^FT260,60^A0N,23,24^FD +{lot} +^FS +^FT258,93^A0N,27,16^FD +{partnum} +^FS +^FT256,150^A0N,21,19^FD +{rid} +^FS +^FT259,121^A0N,23,24^FD +{qty} +^FS +^FO207,157^GB303,0,4^FS +^FT212,182^A0N,20,19^FDDate^FS +^FT260,183^A0N,23,24^FD +{mfg} +^FS +^PQ1,0,1,Y^XZ + + + \ No newline at end of file diff --git a/Handler/Sub/StdLabelPrint/StdLabelPrint.csproj b/Handler/Sub/StdLabelPrint/StdLabelPrint.csproj new file mode 100644 index 0000000..860798b --- /dev/null +++ b/Handler/Sub/StdLabelPrint/StdLabelPrint.csproj @@ -0,0 +1,63 @@ + + + + + Debug + AnyCPU + {B18D3B96-2FDF-4ED9-9A49-D9B8CEE4ED6D} + Library + Properties + StdLabelPrint + StdLabelPrint + v4.7 + 512 + true + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + True + True + Settings.settings + + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + \ No newline at end of file diff --git a/Handler/Sub/StdLabelPrint/app.config b/Handler/Sub/StdLabelPrint/app.config new file mode 100644 index 0000000..d4bd795 --- /dev/null +++ b/Handler/Sub/StdLabelPrint/app.config @@ -0,0 +1,57 @@ + + + + +
+ + + + + + ^XA~TA000~JSN^LT0^MNW^MTT^PON^PMN^LH0,0^JMA^PR6,6~SD15^JUS^LRN^CI0^XZ +^XA +^MMT +^PW519 +^LL0200 +^LS25 +^FO205,5^GB305,186,4^FS +^FT25,170^BQN,2,4 +^FDLA, +{qrData} +^FS +^FO205,9^GB0,183,4^FS +^FO250,9^GB0,183,4^FS +^FO209,34^GB299,0,4^FS +^FO209,65^GB299,0,4^FS +^FO207,95^GB300,0,4^FS +^FO207,126^GB303,0,4^FS +^FT211,30^A0N,23,24^FDSID^FS +^FT210,59^A0N,23,24^FDLOT^FS +^FT215,91^A0N,23,24^FDPN^FS +^FT212,153^A0N,23,24^FDRID^FS +^FT210,120^A0N,23,24^FDQ'ty^FS +^FT260,31^A0N,23,24^FD +{sid} +^FS +^FT260,60^A0N,23,24^FD +{lot} +^FS +^FT258,93^A0N,27,16^FD +{partnum} +^FS +^FT256,150^A0N,21,19^FD +{rid} +^FS +^FT259,121^A0N,23,24^FD +{qty} +^FS +^FO207,157^GB303,0,4^FS +^FT212,182^A0N,20,19^FDDate^FS +^FT260,183^A0N,23,24^FD +{mfg} +^FS +^PQ1,0,1,Y^XZ + + + + \ No newline at end of file diff --git a/Handler/Sub/arAzinAxt b/Handler/Sub/arAzinAxt new file mode 160000 index 0000000..e14c9dd --- /dev/null +++ b/Handler/Sub/arAzinAxt @@ -0,0 +1 @@ +Subproject commit e14c9dd159c9aec98fab23d96e9f6f8fa26cba12 diff --git a/Handler/Sub/arCtl b/Handler/Sub/arCtl new file mode 160000 index 0000000..2491541 --- /dev/null +++ b/Handler/Sub/arCtl @@ -0,0 +1 @@ +Subproject commit 249154147d963ce57aef40e549bea01e304e8134 diff --git a/Handler/Sub/arFrameControl/GridView/ColorListItem.cs b/Handler/Sub/arFrameControl/GridView/ColorListItem.cs new file mode 100644 index 0000000..fd70462 --- /dev/null +++ b/Handler/Sub/arFrameControl/GridView/ColorListItem.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; + +namespace arFrame.Control +{ + [TypeConverterAttribute(typeof(ExpandableObjectConverter))] + public class ColorListItem + { + public System.Drawing.Color BackColor1 { get; set; } + public System.Drawing.Color BackColor2 { get; set; } + public string Remark { get; set; } + + public ColorListItem() + { + BackColor1 = System.Drawing.Color.Transparent; + BackColor2 = System.Drawing.Color.Transparent; + Remark = string.Empty; + } + } +} diff --git a/Handler/Sub/arFrameControl/GridView/GridItem.cs b/Handler/Sub/arFrameControl/GridView/GridItem.cs new file mode 100644 index 0000000..40eddec --- /dev/null +++ b/Handler/Sub/arFrameControl/GridView/GridItem.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; + +namespace arFrame.Control +{ + [TypeConverterAttribute(typeof(ExpandableObjectConverter))] + public class GridViewItem + { + public int row { get; private set; } + public int col { get; private set; } + + public int idx { get; private set; } + [Category("arFrame"), DisplayName("Tag")] + public string Tag { get; set; } + [Category("arFrame"), DisplayName("글자 정렬 방식")] + public System.Drawing.ContentAlignment TextAlign { get; set; } + [Category("arFrame"), DisplayName("글자 여백")] + public System.Windows.Forms.Padding Padding { get; set; } + [Category("arFrame"), DisplayName("메뉴 사용여부"), Description("활성화시 메뉴의 클릭이벤트가 발생하지 않습니다")] + public Boolean Enable { get; set; } + + public System.Drawing.Color BackColor1 { get; set; } + public System.Drawing.Color BackColor2 { get; set; } + + public Boolean Dirty { get; set; } + + public System.Drawing.RectangleF rect { get; set; } + + [Category("arFrame"), DisplayName("번호")] + public int No { get; set; } + + public GridViewItem(int idx_,int _r,int _c) + { + this.row = _r; + this.col = _c; + BackColor1 = System.Drawing.Color.Transparent; + BackColor2 = System.Drawing.Color.Transparent; + rect = System.Drawing.RectangleF.Empty; + Enable = true; + this.idx = idx_; + TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + Padding = new System.Windows.Forms.Padding(0, 0, 0, 0); + No = 0; + this.Dirty = true; + } + } +} diff --git a/Handler/Sub/arFrameControl/GridView/GridView.Designer.cs b/Handler/Sub/arFrameControl/GridView/GridView.Designer.cs new file mode 100644 index 0000000..66613cb --- /dev/null +++ b/Handler/Sub/arFrameControl/GridView/GridView.Designer.cs @@ -0,0 +1,36 @@ +namespace arFrame.Control +{ + partial class GridView + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 구성 요소 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마십시오. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + } + + #endregion + } +} diff --git a/Handler/Sub/arFrameControl/GridView/GridView.cs b/Handler/Sub/arFrameControl/GridView/GridView.cs new file mode 100644 index 0000000..c8345cd --- /dev/null +++ b/Handler/Sub/arFrameControl/GridView/GridView.cs @@ -0,0 +1,632 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace arFrame.Control +{ + public partial class GridView : System.Windows.Forms.Control + { + private int bordersize = 0; + private int menubordersize = 1; + private int menugap = 5; + private System.Windows.Forms.Padding padding = new Padding(3, 3, 3, 3); + private System.Drawing.Color backcolor = System.Drawing.Color.White; + private System.Drawing.Color bordercolor = System.Drawing.Color.Black; + private Boolean textattachtoimage = true; + private Boolean _showIndexString = true; + + private System.Drawing.Color _shadowColor = System.Drawing.Color.Transparent; + private System.Drawing.Color foreColorPin = System.Drawing.Color.WhiteSmoke; + private System.Drawing.Font fontPin = new Font("Consolas", 8, FontStyle.Bold); + + private Point _matrixsize = new Point(8, 2); + public Point MatrixSize { get { return _matrixsize; } set { _matrixsize = value; ResetArray(); RemakeChartRect(); } } + + public Boolean arVeriticalDraw { get; set; } + + [Browsable(false)] + public int ColumnCount { get { return _matrixsize.X; } } + [Browsable(false)] + public int RowCount { get { return _matrixsize.Y; } } + public int ItemCount { get { return ColumnCount * RowCount; } } + + private GridViewItem[] Items; + + private UInt16[] _values; + private string[] _titles; + private string[] _tags; + private string[] _names; + private ColorListItem[] _colorlist; + public ColorListItem[] ColorList { get { return _colorlist; } set { _colorlist = value; this.Invalidate(); } } + + public string[] Names { get { return _names; } set { _names = value; Invalidate(); } } + public string[] Titles { get { return _titles; } set { _titles = value; Invalidate(); } } + public UInt16[] Values { get { return _values; } set { _values = value; Invalidate(); } } + public string[] Tags { get { return _tags; } set { _tags = value; } } + + private bool _showdebuginfo = false; + public Boolean showDebugInfo { get { return _showdebuginfo; } set { _showdebuginfo = value; Invalidate(); } } + + public void setNames(string[] value) + { + _names = value; + } + + public void setTitle(string[] value) + { + List titlerows = new List(); + List tagrows = new List(); + + for (int i = 0; i < value.Length; i++) + { + var r = (int)(Math.Floor((double)(i / ColumnCount))); + var c = i % ColumnCount; + + //세로 그리기 였을때에는 다르게 처리해야함 201215 + if(arVeriticalDraw) + { + c = (int)(Math.Floor((double)(i / ColumnCount))); + r = i % ColumnCount; + } + + if (titlerows.Count < r + 1) titlerows.Add(string.Empty); + if (tagrows.Count < r + 1) tagrows.Add(string.Empty); + + var prestr = titlerows[r]; + if (c > 0 ) prestr += "|"; + titlerows[r] = prestr + value[i]; + + var prestr_t = tagrows[r]; + if (prestr_t != "") prestr_t += "|"; + tagrows[r] = prestr_t + ""; + + if (i < itemCount) this.Items[i].Enable = true; + } + this._titles = titlerows.ToArray(); + this._tags = tagrows.ToArray(); + } + public void setTags(string[] value) + { + List titlerows = new List(); + for (int i = 0; i < value.Length; i++) + { + var r = (int)(Math.Floor((double)(i / ColumnCount))); + var c = i % ColumnCount; + if (titlerows.Count < r + 1) titlerows.Add(string.Empty); + var prestr = titlerows[r]; + if (c > 0 ) prestr += "|"; + titlerows[r] = prestr + value[i]; + if (i < itemCount) this.Items[i].Enable = true; + } + this._tags = titlerows.ToArray(); + } + public Boolean setTitle(int row, int col, string value, string itemtag = "") + { + if (_titles == null) _titles = new string[0]; + if (_tags == null) _tags = new string[0]; + + if (row >= _titles.Length) Array.Resize(ref _titles, row + 1); + if (row >= _tags.Length) Array.Resize(ref _tags, row + 1); + + if (_titles[row] == null) _titles[row] = string.Empty; + if (_tags[row] == null) _tags[row] = string.Empty; + + var linebuf = _titles[row].Split('|'); + var linebuf_t = _tags[row].Split('|'); + + if (col >= linebuf.Length) Array.Resize(ref linebuf, col + 1); + if (col >= linebuf_t.Length) Array.Resize(ref linebuf_t, col + 1); + + linebuf[col] = value; + linebuf_t[col] = itemtag; + + _titles[row] = string.Join("|", linebuf); + _tags[row] = string.Join("|", linebuf_t); + return true; + //var idx = row * this.ColumnCount + col; + //return setTitle(idx, value); + } + public Boolean setTitle(int idx, string value) + { + if (idx < ColumnCount) return setTitle(0, idx, value); + else + { + //줄값이 필요하다 + var row = (int)(Math.Floor((double)(idx / ColumnCount))); + var col = idx % ColumnCount; + return setTitle(row, col, value); + } + } + + + public void setValue(bool[] value) + { + var v = new UInt16[value.Length]; + for (int i = 0; i < value.Length; i++) + v[i] = (UInt16)(value[i] ? 1 : 0); + _values = v; + + //값이 잇으니 enable 한다 + for (int i = 0; i < value.Length; i++) + { + if (i < Items.Length) + this.Items[i].Enable = true; + } + + } + public void setValue(UInt16[] value) + { + _values = value; + + for (int i = 0; i < value.Length; i++) + { + if (i < Items.Length) + this.Items[i].Enable = true; + } + + } + public Boolean setValue(int idx, ushort value) + { + if (idx >= _values.Length || idx >= this.Items.Length) return false; + this._values[idx] = value; + this.Items[idx].Enable = true; + return true; + } + public void ClearValue(ushort defaultValue = 0) + { + if (_values != null) + for (int i = 0; i < _values.Length; i++) + _values[i] = defaultValue; + } + public void ClearTitle(string defaultValue = "") + { + if (_values != null) + for (int i = 0; i < _titles.Length; i++) + _titles[i] = defaultValue; + } + + public void setValue(ushort value) + { + for (int i = 0; i < _values.Length; i++) + this._values[i] = value; + } + public void setItemEnable(int idx, bool value) + { + if (idx >= _values.Length || idx >= this.Items.Length) return; + this.Items[idx].Enable = value; + } + + /// + /// 지정된 컬러태그값을 입력한다. + /// + /// + /// + /// + public Boolean setValue(int idx, string tagString) + { + //동일태그값을 찾는다 + if (idx >= _values.Length) return false; + + int value = -1; + for (int i = 0; i < ColorList.Length; i++) + if (ColorList[i].Remark.ToLower() == tagString.ToLower()) + { + value = i; + break; + } + + if (value != -1) + { + this._values[idx] = (ushort)value; + this.Items[idx].Enable = true; + return true; + } + else return false; + + + } + public Boolean setValue(int idx, bool value) + { + return setValue(idx, (ushort)(value ? 1 : 0)); + } + public Boolean setValue(int row, int col, ushort value) + { + var idx = row * this.ColumnCount + col; + return setValue(idx, value); + } + public Boolean setValueToggle(int row, int col, ushort value1, ushort value2) + { + var idx = row * this.ColumnCount + col; + if (getValue(idx) == value1) return setValue(idx, value2); + else return setValue(idx, value1); + } + public Boolean setValue(int row, int col, bool value) + { + var idx = row * this.ColumnCount + col; + return setValue(idx, (ushort)(value ? 1 : 0)); + } + public Boolean setValue(int row, int col, string value) + { + var idx = row * this.ColumnCount + col; + return setValue(idx, value); + } + + public ushort getValue(int idx) + { + if (idx >= _values.Length) return 0; + return _values[idx]; + } + public ushort getValue(int row, int col) + { + var idx = row * this.ColumnCount + col; + return getValue(idx); + } + + [Category("arFrame")] + public bool ShowIndexString { get { return _showIndexString; } set { _showIndexString = value; Invalidate(); } } + + [Category("arFrame"), DisplayName("테두리 굵기")] + public int BorderSize { get { return bordersize; } set { this.bordersize = value; Invalidate(); } } + [Category("arFrame"), DisplayName("메뉴 테두리 굵기")] + public int MenuBorderSize { get { return menubordersize; } set { this.menubordersize = value; Invalidate(); } } + [Category("arFrame"), DisplayName("메뉴 간격")] + public int MenuGap { get { return menugap; } set { this.menugap = value; RemakeChartRect(); Invalidate(); } } + [Category("arFrame"), DisplayName("글자를 이미지 다음에 표시"), Description("이미지가 있는 경우 해당 이미지 옆에 글자를 붙입니다")] + public Boolean TextAttachToImage { get { return textattachtoimage; } set { this.textattachtoimage = value; Invalidate(); } } + + [Category("arFrame"), DisplayName("색상-테두리")] + public System.Drawing.Color BorderColor { get { return bordercolor; } set { this.bordercolor = value; Invalidate(); } } + [Category("arFrame"), DisplayName("내부 여백")] + public new System.Windows.Forms.Padding Padding { get { return padding; } set { this.padding = value; RemakeChartRect(); Invalidate(); } } + + [Category("arFrame"), DisplayName("색상-전체배경색")] + public override System.Drawing.Color BackColor { get { return backcolor; } set { this.backcolor = value; Invalidate(); } } + + [Category("arFrame"), DisplayName("색상-글자(그림자)")] + public System.Drawing.Color ShadowColor { get { return _shadowColor; } set { _shadowColor = value; this.Invalidate(); } } + + [Category("arFrame"), DisplayName("색상-글자")] + public override Color ForeColor { get { return base.ForeColor; } set { base.ForeColor = value; } } + + [Category("arFrame"), DisplayName("색상-글자(번호)")] + public Color ForeColorPin { get { return foreColorPin; } set { foreColorPin = value; } } + + [Category("arFrame"), DisplayName("글꼴-번호")] + public Font FontPin { get { return fontPin; } set { fontPin = value; Invalidate(); } } + [Category("arFrame"), DisplayName("글꼴-항목")] + public override Font Font { get { return base.Font; } set { base.Font = value; Invalidate(); } } + + private int mouseOverItemIndex = -1; + public GridView() + { + InitializeComponent(); + + // Set Optimized Double Buffer to reduce flickering + this.SetStyle(ControlStyles.UserPaint, true); + this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); + this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); + + // Redraw when resized + this.SetStyle(ControlStyles.ResizeRedraw, true); + + //값과 이름은 외부의 값을 사용한다 + ResetArray(); + + if (MinimumSize.Width == 0 || MinimumSize.Height == 0) + MinimumSize = new Size(100, 50); + } + + + void ResetArray() + { + if (this._values != null) Array.Resize(ref this._values, itemCount);// = new UInt16[itemCount]; + // if (this._titles != null) Array.Resize(ref this._titles, itemCount);// + // if (this._names != null) Array.Resize(ref this._names, itemCount);// + } + + int itemCount { get { return ColumnCount * RowCount; } } + protected override void OnSizeChanged(EventArgs e) + { + base.OnSizeChanged(e); + RemakeChartRect(); + } + + public event EventHandler ItemClick; + public class ItemClickEventArgs : EventArgs + { + public int idx { get; set; } + public GridViewItem Item { get; set; } + public ItemClickEventArgs(int idx_, GridViewItem item) + { + this.Item = item; + this.idx = idx_; + } + } + + protected override void OnMouseClick(MouseEventArgs e) + { + //마우스클릭시 해당 버튼을 찾아서 반환한다. + if (Items == null || Items.Length < 1) return; + for (int i = 0; i < Items.Length; i++) + { + var rect = Items[i].rect;//[i]; + if (rect.Contains(e.Location)) + { + var menu = Items[i]; + + //미사용개체는 이벤트를 아에 발생하지 않는다 + if (menu.Enable == true && ItemClick != null) + ItemClick(this, new ItemClickEventArgs(i, menu)); + break; + } + } + } + + protected override void OnMouseLeave(EventArgs e) + { + this.mouseOverItemIndex = -1; + this.Invalidate(); + } + protected override void OnMouseMove(MouseEventArgs e) + { + if (Items == null || Items.Length < 1) + { + this.mouseOverItemIndex = -1; + return; + } + + for (int i = 0; i < Items.Length; i++) + { + var rect = Items[i].rect;// rects[i]; + if (rect.Contains(e.Location)) + { + if (i != mouseOverItemIndex) + { + mouseOverItemIndex = i; + this.Invalidate(); + } + + break; + } + } + } + public void setItemTextAlign(int row, int col, System.Drawing.ContentAlignment TextAlign) + { + var item = this.Items.Where(t => t.row == row && t.col == col).FirstOrDefault(); + if (item != null) item.TextAlign = TextAlign; + } + public void setItemTextAlign(System.Drawing.ContentAlignment TextAlign) + { + foreach (var item in this.Items) + item.TextAlign = TextAlign; + } + + protected override void OnPaint(PaintEventArgs pe) + { + //배경그리기 + //using (var sb = new System.Drawing.Drawing2D.LinearGradientBrush(DisplayRectangle, BackColor, BackColor2On, System.Drawing.Drawing2D.LinearGradientMode.Vertical)) + pe.Graphics.FillRectangle(new SolidBrush(BackColor), DisplayRectangle); + + if (Items == null) + { + pe.Graphics.DrawString("no items", this.Font, Brushes.Red, 100, 100); + return; + } + + var items = Items.OrderBy(t => t.No); + foreach (var menu in items) + { + drawItem(menu.idx, pe.Graphics); + } + + //테두리 그리기 + if (BorderSize > 0) + { + pe.Graphics.DrawRectangle(new Pen(this.BorderColor, BorderSize), + this.DisplayRectangle.Left, + this.DisplayRectangle.Top, + this.DisplayRectangle.Width - 1, + this.DisplayRectangle.Height - 1); + } + } + + public void drawItem(int itemIndex, Graphics g = null) + { + if (g == null) g = this.CreateGraphics(); + var menu = this.Items[itemIndex]; + + if (menu.rect == RectangleF.Empty) return; + + var rect = menu.rect;// rects[i]; + + var diplayText = string.Empty; + + // if(_titles[1].Trim() != "") + // Console.WriteLine("sdf"); + //타이틀이 줄번호별로 처리됨 + if (_titles != null && menu.row < _titles.Length) + { + if (_titles[menu.row] == null) _titles[menu.row] = string.Empty; + var linebif = _titles[menu.row].Split('|'); + if (menu.col < linebif.Length) + diplayText = linebif[menu.col]; + } + + UInt16 Value = 0; + if (_values != null && menu.idx < _values.Length) Value = _values[menu.idx]; + + //배경이 투명이 아니라면 그린다. + var bgColor1 = Color.FromArgb(30, 30, 30);// BackColor1Off; + var bgColor2 = Color.FromArgb(30, 30, 30);// BackColor2Off; + + //해당 값에 따른 컬러값을 읽는다. + if (ColorList != null && Value < ColorList.Length) + { + bgColor1 = this.ColorList[Value].BackColor1; + bgColor2 = this.ColorList[Value].BackColor2; + } + + using (var sb = new System.Drawing.Drawing2D.LinearGradientBrush(rect, bgColor1, bgColor2, System.Drawing.Drawing2D.LinearGradientMode.Vertical)) + g.FillRectangle(sb, rect); + + // if (mouseOverItemIndex == menu.idx) + // this.Cursor = Cursors.Hand; + // else + // this.Cursor = Cursors.Arrow; + + //테두리를 그리는 속성과 트기가 설정된 경우에만 표시 + //if (mouseOverItemIndex == i) + // { + // pe.Graphics.DrawRectangle(new Pen(Color.DeepSkyBlue), rect.Left, rect.Top, rect.Width, rect.Height); + //} + //else + { + if (MenuBorderSize > 0) + { + using (var p = new Pen(BorderColor, MenuBorderSize)) + g.DrawRectangle(p, rect.Left, rect.Top, rect.Width, rect.Height); + } + } + + //인덱스번호 출력 + if (ShowIndexString && _names != null && menu.idx < _names.Length) + { + //표시글자 + var idxstr = string.Format("[{0}] {1}", menu.idx, _names[menu.idx]); + + //그림자 추가 + if (ShadowColor != System.Drawing.Color.Transparent) + g.DrawString(idxstr, FontPin, new SolidBrush(ShadowColor), menu.rect.Left + 4, menu.rect.Top + 4); + + //일반글자표시 + g.DrawString(idxstr, FontPin, new SolidBrush(this.ForeColorPin), menu.rect.Left + 3, menu.rect.Top + 3); + } + + if (diplayText != "") + { + using (StringFormat sf = new StringFormat(StringFormatFlags.NoClip)) + { + //글자를 텍스트 이후에 붙이는 거라면? + if (menu.TextAlign == ContentAlignment.BottomCenter || menu.TextAlign == ContentAlignment.BottomLeft || + menu.TextAlign == ContentAlignment.BottomRight) sf.LineAlignment = StringAlignment.Far; + else if (menu.TextAlign == ContentAlignment.MiddleCenter || menu.TextAlign == ContentAlignment.MiddleLeft || + menu.TextAlign == ContentAlignment.MiddleRight) sf.LineAlignment = StringAlignment.Center; + else if (menu.TextAlign == ContentAlignment.TopCenter || menu.TextAlign == ContentAlignment.TopLeft || + menu.TextAlign == ContentAlignment.TopRight) sf.LineAlignment = StringAlignment.Near; + + if (menu.TextAlign == ContentAlignment.BottomCenter || menu.TextAlign == ContentAlignment.MiddleCenter || + menu.TextAlign == ContentAlignment.TopCenter) sf.Alignment = StringAlignment.Center; + else if (menu.TextAlign == ContentAlignment.BottomLeft || menu.TextAlign == ContentAlignment.MiddleLeft || + menu.TextAlign == ContentAlignment.TopLeft) sf.Alignment = StringAlignment.Near; + else if (menu.TextAlign == ContentAlignment.BottomRight || menu.TextAlign == ContentAlignment.MiddleRight || + menu.TextAlign == ContentAlignment.TopRight) sf.Alignment = StringAlignment.Far; + + //그림자 추가 + if (ShadowColor != System.Drawing.Color.Transparent) + g.DrawString(diplayText, this.Font, new SolidBrush(ShadowColor), + new RectangleF((float)(rect.Left + 1f), (float)(rect.Top + 1f), (float)rect.Width, (float)rect.Height), sf); + + g.DrawString($"{diplayText}", this.Font, new SolidBrush(ForeColor), rect, sf); + } + } + + if (showDebugInfo) + { + g.DrawString(Value.ToString(), this.fontPin, Brushes.SkyBlue, rect.Left, rect.Top); + } + + } + + /// + /// arFrame 전용 속성값을 복사 합니다 + /// + /// + public void copyTo(GridView ctl) + { + ctl.backcolor = this.backcolor; + ctl.menugap = this.menugap; + ctl.Items = this.Items; + ctl.menubordersize = this.menubordersize; + ctl.padding = this.padding; + ctl.ForeColor = this.ForeColor; + ctl.Font = this.Font; + ctl.TextAttachToImage = this.TextAttachToImage; + ctl.bordercolor = this.bordercolor; + ctl.bordersize = this.bordersize; + } + + public void RemakeChartRect() + { + if (DisplayRectangle == Rectangle.Empty) return; + + double x = 0; + double y = 0; + double w = DisplayRectangle.Width / (ColumnCount * 1.0); + double h = DisplayRectangle.Height / (RowCount * 1.0); + + + //아이템갯수가 달라졌으므로 다시 갱신해야함 + GridViewItem[] item = new GridViewItem[RowCount * ColumnCount]; + + if(arVeriticalDraw) + { + for (int c = 0; c < ColumnCount; c++) + { + for (int r = 0; r < RowCount; r++) + { + int idx = c * ColumnCount + r; + item[idx] = new GridViewItem(idx, r, c); + + if (this.Items != null && idx < this.Items.Length) + item[idx].Enable = this.Items[idx].Enable; // false; + else + item[idx].Enable = false; + + item[idx].Padding = new Padding(0, 0, 0, 0); + item[idx].TextAlign = ContentAlignment.MiddleCenter; + x = (c * w); + y = (r * h); + item[idx].Dirty = true; + item[idx].rect = new RectangleF((float)x, (float)y, (float)w, (float)h); + } + } + + } + else + { + for (int r = 0; r < RowCount; r++) + { + for (int c = 0; c < ColumnCount; c++) + { + int idx = r * ColumnCount + c; + item[idx] = new GridViewItem(idx, r, c); + + if (this.Items != null && idx < this.Items.Length) + item[idx].Enable = this.Items[idx].Enable; // false; + else + item[idx].Enable = false; + + item[idx].Padding = new Padding(0, 0, 0, 0); + item[idx].TextAlign = ContentAlignment.MiddleCenter; + x = (c * w); + y = (r * h); + item[idx].Dirty = true; + item[idx].rect = new RectangleF((float)x, (float)y, (float)w, (float)h); + } + } + + } + + this.Items = item; + + + this.Invalidate(); + + } + } +} diff --git a/Handler/Sub/arFrameControl/MenuBar/MenuControl.Designer.cs b/Handler/Sub/arFrameControl/MenuBar/MenuControl.Designer.cs new file mode 100644 index 0000000..f33508d --- /dev/null +++ b/Handler/Sub/arFrameControl/MenuBar/MenuControl.Designer.cs @@ -0,0 +1,36 @@ +namespace arFrame.Control +{ + partial class MenuControl + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 구성 요소 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마십시오. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + } + + #endregion + } +} diff --git a/Handler/Sub/arFrameControl/MenuBar/MenuControl.cs b/Handler/Sub/arFrameControl/MenuBar/MenuControl.cs new file mode 100644 index 0000000..bfb0a0a --- /dev/null +++ b/Handler/Sub/arFrameControl/MenuBar/MenuControl.cs @@ -0,0 +1,676 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; +using System.Xml; + +namespace arFrame.Control +{ + + public partial class MenuControl : System.Windows.Forms.Control + { + private int bordersize = 0; + private int menubordersize = 1; + private int menuwidth = 100; + private int menugap = 5; + private System.Windows.Forms.Padding padding = new Padding(3, 3, 3, 3); + private System.Drawing.Color backcolor = System.Drawing.Color.White; + private System.Drawing.Color backcolor2 = System.Drawing.Color.Gainsboro; + private System.Drawing.Color bordercolor = System.Drawing.Color.Black; + private Boolean enablemenubakcolor = false; + private Boolean enablemenuborder = false; + private Boolean textattachtoimage = true; + + [Category("arFrame"), DisplayName("메뉴")] + public MenuItem[] menus { get; set; } + + private Rectangle[] rects = null; + + [Category("arFrame"), DisplayName("테두리 굵기")] + public int BorderSize { get { return bordersize; } set { this.bordersize = value; Invalidate(); } } + [Category("arFrame"), DisplayName("메뉴 테두리 굵기")] + public int MenuBorderSize { get { return menubordersize; } set { this.menubordersize = value; Invalidate(); } } + [Category("arFrame"), DisplayName("메뉴 너비")] + public int MenuWidth { get { return menuwidth; } set { this.menuwidth = value; RemakeChartRect(); Invalidate(); } } + [Category("arFrame"), DisplayName("메뉴 간격")] + public int MenuGap { get { return menugap; } set { this.menugap = value; RemakeChartRect(); Invalidate(); } } + [Category("arFrame"), DisplayName("기능-메뉴별 배경색")] + public Boolean EnableMenuBackColor { get { return enablemenubakcolor; } set { this.enablemenubakcolor = value; Invalidate(); } } + [Category("arFrame"), DisplayName("기능-메뉴별 테두리")] + public Boolean EnableMenuBorder { get { return enablemenuborder; } set { this.enablemenuborder = value; Invalidate(); } } + [Category("arFrame"), DisplayName("글자를 이미지 다음에 표시"), Description("이미지가 있는 경우 해당 이미지 옆에 글자를 붙입니다")] + public Boolean TextAttachToImage { get { return textattachtoimage; } set { this.textattachtoimage = value; Invalidate(); } } + [Category("arFrame"), DisplayName("이미지 표시 여백(좌,상)")] + public System.Drawing.Point ImagePadding { get; set; } + [Category("arFrame"), DisplayName("이미지 표시 크기(너비,높이)")] + public System.Drawing.Size ImageSize { get; set; } + [Category("arFrame"), DisplayName("색상-테두리")] + public System.Drawing.Color BorderColor { get { return bordercolor; } set { this.bordercolor = value; Invalidate(); } } + [Category("arFrame"), DisplayName("내부 여백")] + public new System.Windows.Forms.Padding Padding { get { return padding; } set { this.padding = value; RemakeChartRect(); Invalidate(); } } + [Category("arFrame"), DisplayName("색상-배경1")] + public override System.Drawing.Color BackColor { get { return backcolor; } set { this.backcolor = value; Invalidate(); } } + [Category("arFrame"), DisplayName("색상-배경2")] + public System.Drawing.Color BackColor2 { get { return backcolor2; } set { this.backcolor2 = value; Invalidate(); } } + [Category("arFrame"), DisplayName("색상-글자")] + public override Color ForeColor { get { return base.ForeColor; } set { base.ForeColor = value; } } + + private int mouseOverItemIndex = -1; + public MenuControl() + { + InitializeComponent(); + + // Set Optimized Double Buffer to reduce flickering + this.SetStyle(ControlStyles.UserPaint, true); + this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); + this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); + + // Redraw when resized + this.SetStyle(ControlStyles.ResizeRedraw, true); + + + ImagePadding = new System.Drawing.Point(0, 0); + ImageSize = new System.Drawing.Size(24, 24); + + + if (MinimumSize.Width == 0 || MinimumSize.Height == 0) + MinimumSize = new Size(100, 50); + + } + protected override void OnSizeChanged(EventArgs e) + { + base.OnSizeChanged(e); + RemakeChartRect(); + } + + + public event EventHandler ItemClick; + public class MenuEventArgs : EventArgs + { + public string Command { get; set; } + public int idx { get; set; } + public MenuEventArgs(string cmd_, int idx_) + { + this.Command = cmd_; + this.idx = idx_; + } + } + + protected override void OnMouseClick(MouseEventArgs e) + { + // if(DesignMode) + // { + // if(e.Button == System.Windows.Forms.MouseButtons.Right) + // { + // System.Windows.Forms.MessageBox.Show("Sdf"); + + // } + // } + // else + { + //마우스클릭시 해당 버튼을 찾아서 반환한다. + if (menus == null || menus.Length < 1) return; + for (int i = 0; i < menus.Length; i++) + { + var rect = rects[i]; + if (rect.Contains(e.Location)) + { + var menu = menus[i]; + + //미사용개체는 이벤트를 아에 발생하지 않는다 + if (menu.Enable == true && ItemClick != null) + ItemClick(this, new MenuEventArgs(menu.Command, i)); + break; + } + } + } + + } + protected override void OnMouseLeave(EventArgs e) + { + this.mouseOverItemIndex = -1; + this.Invalidate(); + } + protected override void OnMouseMove(MouseEventArgs e) + { + if (menus == null || menus.Length < 1) + { + this.mouseOverItemIndex = -1; + return; + } + for (int i = 0; i < menus.Length; i++) + { + var rect = rects[i]; + if (rect.Contains(e.Location)) + { + if (i != mouseOverItemIndex) + { + mouseOverItemIndex = i; + this.Invalidate(); + } + + break; + } + } + } + + protected override void OnPaint(PaintEventArgs pe) + { + + + // if(DesignMode) + // { + // pe.Graphics.FillRectangle(Brushes.Red, this.DisplayRectangle); + // } + //else + { + //배경그리기 + using (var sb = new System.Drawing.Drawing2D.LinearGradientBrush(DisplayRectangle, BackColor, BackColor2, System.Drawing.Drawing2D.LinearGradientMode.Vertical)) + pe.Graphics.FillRectangle(sb, DisplayRectangle); + } + + //테두리 그리기 + if (BorderSize > 0) + { + pe.Graphics.DrawRectangle(new Pen(this.BorderColor, BorderSize), + this.DisplayRectangle.Left, + this.DisplayRectangle.Top, + this.DisplayRectangle.Width - 1, + this.DisplayRectangle.Height - 1); + } + + //커서모양 + if (mouseOverItemIndex == -1) this.Cursor = Cursors.Arrow; + else this.Cursor = Cursors.Hand; + + if (rects == null) RemakeChartRect(); + if (rects != null && rects.Length > 0) + { + StringFormat sf = new StringFormat(StringFormatFlags.NoClip); + var items = menus.OrderBy(t => t.No); + int i = 0; + foreach (var menu in items) + { + var rect = rects[i]; + + //배경이 투명이 아니라면 그린다. + if (mouseOverItemIndex == i) + { + //마우스오버된놈이다. + using (var sb = new System.Drawing.Drawing2D.LinearGradientBrush(rect, Color.FromArgb(100, Color.LightSkyBlue), Color.FromArgb(100, Color.DeepSkyBlue), System.Drawing.Drawing2D.LinearGradientMode.Vertical)) + pe.Graphics.FillRectangle(sb, rect); + } + else + { + if (this.enablemenubakcolor == true && menu.BackColor != System.Drawing.Color.Transparent && menu.BackColor2 != System.Drawing.Color.Transparent) + { + using (var sb = new System.Drawing.Drawing2D.LinearGradientBrush(rect, menu.BackColor, menu.BackColor2, System.Drawing.Drawing2D.LinearGradientMode.Vertical)) + pe.Graphics.FillRectangle(sb, rect); + } + + } + + //이미지표시 + int ix, iy, iw, ih; + ix = iy = iw = ih = 0; + if (menu.Image != null) + { + ix = rect.Left; + iy = rect.Top; + iw = ImageSize.Width; + ih = ImageSize.Height; + + if (menu.ImageAlign == ContentAlignment.BottomCenter || menu.ImageAlign == ContentAlignment.BottomLeft || + menu.ImageAlign == ContentAlignment.BottomRight) iy += DisplayRectangle.Bottom - ih; + else if (menu.ImageAlign == ContentAlignment.MiddleCenter || menu.ImageAlign == ContentAlignment.MiddleLeft || + menu.ImageAlign == ContentAlignment.MiddleRight) iy += (int)(DisplayRectangle.Top + ((rect.Height - ih) / 2.0)); + else if (menu.ImageAlign == ContentAlignment.TopCenter || menu.ImageAlign == ContentAlignment.TopLeft || + menu.ImageAlign == ContentAlignment.TopRight) iy += DisplayRectangle.Top; + + if (menu.ImageAlign == ContentAlignment.BottomCenter || menu.ImageAlign == ContentAlignment.MiddleCenter || + menu.ImageAlign == ContentAlignment.TopCenter) ix += (int)(DisplayRectangle.Left + ((rect.Width - iw) / 2.0)); + else if (menu.ImageAlign == ContentAlignment.BottomLeft || menu.ImageAlign == ContentAlignment.MiddleLeft || + menu.ImageAlign == ContentAlignment.TopLeft) ix += DisplayRectangle.Left; + else if (menu.ImageAlign == ContentAlignment.BottomRight || menu.ImageAlign == ContentAlignment.MiddleRight || + menu.ImageAlign == ContentAlignment.TopRight) ix += DisplayRectangle.Right - iw; + + if (menu.ImagePadding.X != 0 || menu.ImagePadding.Y != 0) + { + ix += menu.ImagePadding.X; + iy += menu.ImagePadding.Y; + } + else + { + ix += ImagePadding.X; + iy += ImagePadding.Y; + } + if (menu.ImageSize.Width != 0 && menu.ImageSize.Height != 0) + { + iw = menu.ImageSize.Width; + ih = menu.ImageSize.Height; + } + + pe.Graphics.DrawImage(menu.Image, + new Rectangle(ix, iy, iw, ih)); + } + + //테두리를 그리는 속성과 트기가 설정된 경우에만 표시 + if (mouseOverItemIndex == i) + { + pe.Graphics.DrawRectangle(new Pen(Color.DeepSkyBlue), rect); + } + else + { + if (EnableMenuBorder && MenuBorderSize > 0) + { + using (var p = new Pen(menu.BorderColor, MenuBorderSize)) + pe.Graphics.DrawRectangle(p, rect); + } + } + + + //글자를 텍스트 이후에 붙이는 거라면? + if (menu.Image != null && TextAttachToImage) + { + var fsize = pe.Graphics.MeasureString(menu.Text, this.Font); + pe.Graphics.DrawString(menu.Text, this.Font, new SolidBrush(menu.ForeColor), + (float)(ix + iw + 1), + (float)(iy + ((ih - fsize.Height) / 2.0))); + } + else + { + if (menu.TextAlign == ContentAlignment.BottomCenter || menu.TextAlign == ContentAlignment.BottomLeft || + menu.TextAlign == ContentAlignment.BottomRight) sf.LineAlignment = StringAlignment.Far; + else if (menu.TextAlign == ContentAlignment.MiddleCenter || menu.TextAlign == ContentAlignment.MiddleLeft || + menu.TextAlign == ContentAlignment.MiddleRight) sf.LineAlignment = StringAlignment.Center; + else if (menu.TextAlign == ContentAlignment.TopCenter || menu.TextAlign == ContentAlignment.TopLeft || + menu.TextAlign == ContentAlignment.TopRight) sf.LineAlignment = StringAlignment.Near; + + if (menu.TextAlign == ContentAlignment.BottomCenter || menu.TextAlign == ContentAlignment.MiddleCenter || + menu.TextAlign == ContentAlignment.TopCenter) sf.Alignment = StringAlignment.Center; + else if (menu.TextAlign == ContentAlignment.BottomLeft || menu.TextAlign == ContentAlignment.MiddleLeft || + menu.TextAlign == ContentAlignment.TopLeft) sf.Alignment = StringAlignment.Near; + else if (menu.TextAlign == ContentAlignment.BottomRight || menu.TextAlign == ContentAlignment.MiddleRight || + menu.TextAlign == ContentAlignment.TopRight) sf.Alignment = StringAlignment.Far; + + pe.Graphics.DrawString(menu.Text, this.Font, new SolidBrush(menu.ForeColor), rect, sf); + } + i += 1; + } + sf.Dispose(); + } + //if(DesignMode) + //{ + // pe.Graphics.DrawString("deisgn", this.Font, Brushes.Red, 1, 1); + //} + } + + /// + /// arFrame 전용 속성값을 복사 합니다 + /// + /// + public void copyTo(MenuControl ctl) + { + ctl.backcolor = this.backcolor; + ctl.backcolor2 = this.BackColor2; + ctl.MenuWidth = this.menuwidth; + ctl.menugap = this.menugap; + ctl.menus = this.menus; + ctl.menubordersize = this.menubordersize; + ctl.padding = this.padding; + ctl.ForeColor = this.ForeColor; + ctl.Font = this.Font; + ctl.EnableMenuBackColor = this.EnableMenuBackColor; + ctl.EnableMenuBorder = this.EnableMenuBorder; + ctl.ImagePadding = this.ImagePadding; + ctl.ImageSize = this.ImageSize; + ctl.TextAttachToImage = this.TextAttachToImage; + ctl.bordercolor = this.bordercolor; + ctl.bordersize = this.bordersize; + } + + public void Save(string File) + { + //xml로 데이터를 저장자 + System.Text.StringBuilder NewXml = new System.Text.StringBuilder(); + NewXml.AppendLine(""); + NewXml.AppendLine(" "); + NewXml.AppendLine(""); + + if (System.IO.File.Exists(File)) System.IO.File.Delete(File); + System.IO.File.WriteAllText(File, NewXml.ToString().Replace('\'', '\"'), System.Text.Encoding.UTF8); + var vDocu = new XmlDocument(); + vDocu.Load(File); + //var nsmgr = new XmlNamespaceManager(new System.Xml.NameTable()); + //nsmgr.AddNamespace("x", "http://tindevil.com"); + var Root = vDocu.DocumentElement; + + //저장하려는 속성목록을 먼저 생성한다 + //미사용 목록이 너무 많아서 그렇게 함 + foreach (var m in this.GetType().GetMethods()) + { + var mName = m.Name.ToLower(); + if (mName.StartsWith("get_") == false || mName == "get_menus") continue; + + var pt = this.GetType().GetProperty(m.Name.Substring(4)); + if (pt != null) + { + var categoryName = GetCategoryName(pt); + if (categoryName.ToLower() != "arframe") continue; + + //자료형에따라서 그값을 변경한다 + var value = m.Invoke(this, null); + var newNode = vDocu.CreateElement(pt.Name);// m.Name.Substring(4)); + newNode.InnerText = getValueString(m, value); + Root.AppendChild(newNode); + } + } + + + foreach (var item in this.menus.OrderBy(t => t.No)) + { + var node = vDocu.CreateElement("Item"); + var attNo = vDocu.CreateAttribute("No"); + attNo.Value = item.No.ToString(); + node.Attributes.Append(attNo); + + foreach (var m in item.GetType().GetMethods()) + { + var mName = m.Name.ToLower(); + if (mName.StartsWith("get_") == false || mName == "get_no") continue; + + var value = m.Invoke(item, null); + var sNode = vDocu.CreateElement(m.Name.Substring(4)); + sNode.InnerText = getValueString(m, value); + node.AppendChild(sNode); + } + Root.AppendChild(node); + } + vDocu.Save(File); + } + + public void Load(string File) + { + if (System.IO.File.Exists(File) == false) return; + + List NewMenu = new List(); + var vDocu = new XmlDocument(); + vDocu.Load(File); + var Root = vDocu.DocumentElement; //루트요소(Tindevil) + + + + //저장하려는 속성목록을 먼저 생성한다 + //미사용 목록이 너무 많아서 그렇게 함 + foreach (var m in this.GetType().GetMethods()) + { + var mName = m.Name.ToLower(); + if (mName.StartsWith("get_") == false || mName == "get_menus") continue; + + var methodName = m.Name.Substring(4); + var pt = this.GetType().GetProperty(methodName); + if (pt != null) + { + var categoryName = GetCategoryName(pt); + if (categoryName.ToLower() != "arframe") continue; + + //SEt명령이 있어야 사용이 가능하다 + var setMethod = this.GetType().GetMethod("set_" + methodName); + if (setMethod == null) continue; + + //값을 읽어온다 + var Node = Root.SelectSingleNode(methodName); + if (Node != null) + { + var strValue = Node.InnerText; + var value = getValueFromString(m.ReturnType, strValue); // setValueString(m.ReturnType, setMethod, strValue); + setMethod.Invoke(this, new object[] { value }); + } + } + } + + + //foreach (var item in this.menus.OrderBy(t => t.No)) + //{ + // var node = vDocu.CreateElement("Item"); + // var attNo = vDocu.CreateAttribute("No"); + // attNo.Value = item.No.ToString(); + // node.Attributes.Append(attNo); + + // foreach (var m in item.GetType().GetMethods()) + // { + // var mName = m.Name.ToLower(); + // if (mName.StartsWith("get_") == false || mName == "get_no") continue; + + // var value = m.Invoke(item, null); + // var sNode = vDocu.CreateElement(m.Name.Substring(4)); + // sNode.InnerText = getValueString(m, value); + // node.AppendChild(sNode); + // } + // Root.AppendChild(node); + //} + } + + + private string getValueString(System.Reflection.MethodInfo m, object value) + { + var strValue = ""; + string valuetype = m.ReturnType.Name.ToLower(); + if (m.ReturnType == typeof(System.Drawing.Color)) + strValue = ((System.Drawing.Color)value).ToArgb().ToString(); + else if (m.ReturnType == typeof(System.Drawing.Rectangle)) + { + var rect = (System.Drawing.Rectangle)value; + strValue = string.Format("{0};{1};{2};{3}", rect.Left, rect.Top, rect.Width, rect.Height); + } + else if (m.ReturnType == typeof(System.Drawing.RectangleF)) + { + var rectf = (System.Drawing.RectangleF)value; + strValue = string.Format("{0};{1};{2};{3}", rectf.Left, rectf.Top, rectf.Width, rectf.Height); + } + else if (m.ReturnType == typeof(Boolean)) + { + strValue = ((Boolean)value) ? "1" : "0"; + } + else if (m.ReturnType == typeof(System.Drawing.Point)) + { + var pt1 = (Point)value; + strValue = string.Format("{0};{1}", pt1.X, pt1.Y); + } + else if (m.ReturnType == typeof(System.Drawing.PointF)) + { + var ptf = (PointF)value; + strValue = string.Format("{0};{1}", ptf.X, ptf.Y); + } + else if (m.ReturnType == typeof(System.Drawing.Size)) + { + var sz = (Size)value; + strValue = string.Format("{0};{1}", sz.Width, sz.Height); + } + else if (m.ReturnType == typeof(System.Drawing.SizeF)) + { + var szf = (SizeF)value; + strValue = string.Format("{0};{1}", szf.Width, szf.Height); + } + else if (m.ReturnType == typeof(System.Drawing.Bitmap)) + { + var bitmap = (Bitmap)value; + + // Convert the image to byte[] + System.IO.MemoryStream stream = new System.IO.MemoryStream(); + bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp); + byte[] imageBytes = stream.ToArray(); + strValue = Convert.ToBase64String(imageBytes); + } + else if (m.ReturnType == typeof(System.Windows.Forms.Padding)) + { + var pd = (System.Windows.Forms.Padding)value; + strValue = string.Format("{0};{1};{2};{3}", pd.Left, pd.Top, pd.Right, pd.Bottom); + } + else + strValue = value.ToString(); + return strValue; + } + + + private object getValueFromString(Type ReturnType, string strValue) + { + + + if (ReturnType == typeof(System.Drawing.Color)) + { + var cint = int.Parse(strValue); + return System.Drawing.Color.FromArgb(cint); + } + else if (ReturnType == typeof(System.Drawing.Rectangle)) + { + var buf = strValue.Split(';'); + var x = int.Parse(buf[0]); + var y = int.Parse(buf[1]); + var w = int.Parse(buf[2]); + var h = int.Parse(buf[3]); + return new Rectangle(x, y, w, h); + } + else if (ReturnType == typeof(System.Drawing.RectangleF)) + { + var buf = strValue.Split(';'); + var x = float.Parse(buf[0]); + var y = float.Parse(buf[1]); + var w = float.Parse(buf[2]); + var h = float.Parse(buf[3]); + return new RectangleF(x, y, w, h); + } + else if (ReturnType == typeof(Boolean)) + { + return strValue == "1"; + } + else if (ReturnType == typeof(System.Drawing.Point)) + { + var buf = strValue.Split(';'); + var x = int.Parse(buf[0]); + var y = int.Parse(buf[1]); + return new Point(x, y); + } + else if (ReturnType == typeof(System.Drawing.PointF)) + { + var buf = strValue.Split(';'); + var x = float.Parse(buf[0]); + var y = float.Parse(buf[1]); + return new PointF(x, y); + } + else if (ReturnType == typeof(System.Drawing.Size)) + { + var buf = strValue.Split(';'); + var x = int.Parse(buf[0]); + var y = int.Parse(buf[1]); + return new Size(x, y); + } + else if (ReturnType == typeof(System.Drawing.SizeF)) + { + var buf = strValue.Split(';'); + var x = float.Parse(buf[0]); + var y = float.Parse(buf[1]); + return new SizeF(x, y); + } + else if (ReturnType == typeof(System.Drawing.Bitmap)) + { + //문자을을 바이트로 전환다 + byte[] imageBytes = Convert.FromBase64String(strValue); + + Bitmap retval = null; + using (System.IO.MemoryStream stream = new System.IO.MemoryStream(imageBytes)) + retval = new Bitmap(stream); + return retval; + } + else if (ReturnType == typeof(System.Windows.Forms.Padding)) + { + var buf = strValue.Split(';'); + var x = int.Parse(buf[0]); + var y = int.Parse(buf[1]); + var w = int.Parse(buf[2]); + var h = int.Parse(buf[3]); + return new Padding(x, y, w, h); + } + else if (ReturnType == typeof(Int16)) return Int16.Parse(strValue); + else if (ReturnType == typeof(Int32)) return Int32.Parse(strValue); + else if (ReturnType == typeof(Int64)) return Int64.Parse(strValue); + else if (ReturnType == typeof(UInt16)) return UInt16.Parse(strValue); + else if (ReturnType == typeof(UInt32)) return UInt32.Parse(strValue); + else + return strValue; + } + + + + public string GetCategoryName(System.Reflection.PropertyInfo m) + { + var displayName = m + .GetCustomAttributes(typeof(CategoryAttribute), true) + .FirstOrDefault() as CategoryAttribute; + + if (displayName != null) + return displayName.Category; + + return ""; + } + public string GetDisplayName(System.Reflection.MethodInfo m) + { + var displayName = m + .GetCustomAttributes(typeof(DisplayNameAttribute), true) + .FirstOrDefault() as DisplayNameAttribute; + + if (displayName != null) + return displayName.DisplayName; + + return ""; + } + + public void RemakeChartRect() + { + if (rects != null) rects = null; + if (menus == null || menus.Length < 1) return; + + rects = new Rectangle[menus.Length]; + int leftIdx = 0; + int rightIdx = 0; + int leftAcc = 0; + int rightAcc = 0; + + + int i = 0; + var menuList = this.menus.OrderBy(t => t.No).ToArray(); + foreach (var menu in menuList) + { + int x, y, w, h; + // var menu = menus[i]; + + var mWidth = menuwidth; + if (menu.MenuWidth > 0) mWidth = menu.MenuWidth; + + w = mWidth; + h = DisplayRectangle.Height - Padding.Top - Padding.Bottom; + + if (menu.isRightMenu) + { + x = DisplayRectangle.Right - Padding.Right - (rightAcc) - (MenuGap * rightIdx); + y = DisplayRectangle.Top + Padding.Top; + rightAcc += 0;// = 0;// x; + rightIdx += 1; + } + else + { + x = DisplayRectangle.Left + Padding.Left + leftAcc + (MenuGap * leftIdx); + y = DisplayRectangle.Top + Padding.Top; + leftAcc += mWidth; + leftIdx += 1; + } + rects[i] = new Rectangle(x, y, w, h); + i += 1; + } + } + } +} diff --git a/Handler/Sub/arFrameControl/MenuBar/MenuItem.cs b/Handler/Sub/arFrameControl/MenuBar/MenuItem.cs new file mode 100644 index 0000000..717dca5 --- /dev/null +++ b/Handler/Sub/arFrameControl/MenuBar/MenuItem.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; + +namespace arFrame.Control +{ + [TypeConverterAttribute(typeof(ExpandableObjectConverter))] + public class MenuItem + { + [Category("arFrame"),DisplayName("메뉴이름")] + public string Text { get; set; } + [Category("arFrame"), DisplayName("색상-테두리"), Description("메뉴속성의 테두리 기능이 켜져야 합니다")] + public System.Drawing.Color BorderColor { get; set; } + [Category("arFrame"),DisplayName("색상-배경1"),Description("메뉴속성의 배경 기능이 켜져야 합니다")] + public System.Drawing.Color BackColor { get; set; } + [Category("arFrame"), DisplayName("색상-배경2"), Description("메뉴속성의 배경 기능이 켜져야 합니다")] + public System.Drawing.Color BackColor2 { get; set; } + [Category("arFrame"),DisplayName("색상-글자")] + public System.Drawing.Color ForeColor { get; set; } + [Category("arFrame"),DisplayName("메뉴 구분자로 사용합니다")] + public Boolean isSeparate { get; set; } + [Category("arFrame"),DisplayName("오른쪽 붙임")] + public Boolean isRightMenu { get; set; } + [Category("arFrame"),DisplayName("실행 명령")] + public string Command { get; set; } + [Category("arFrame"),DisplayName("아이콘 이미지")] + public System.Drawing.Bitmap Image { get; set; } + [Category("arFrame"),DisplayName("글자 정렬 방식")] + public System.Drawing.ContentAlignment TextAlign { get; set; } + [Category("arFrame"),DisplayName("이미지 정렬 방식")] + public System.Drawing.ContentAlignment ImageAlign { get; set; } + [Category("arFrame"),DisplayName("글자 여백")] + public System.Windows.Forms.Padding Padding { get; set; } + [Category("arFrame"),DisplayName("메뉴 사용여부"),Description("활성화시 메뉴의 클릭이벤트가 발생하지 않습니다")] + public Boolean Enable { get; set; } + [Category("arFrame"),DisplayName("이미지 표시 여백(좌,상)")] + public System.Drawing.Point ImagePadding { get; set; } + [Category("arFrame"),DisplayName("이미지 표시 크기(너비,높이)")] + public System.Drawing.Size ImageSize { get; set; } + [Category("arFrame"),DisplayName("메뉴 간격")] + public int MenuWidth { get; set; } + + [Category("arFrame"),DisplayName("번호")] + public int No { get; set; } + + public MenuItem() + { + Enable = true; + BorderColor = System.Drawing.Color.FromArgb(20, 20, 20); + BackColor = System.Drawing.Color.DimGray; + BackColor2 = System.Drawing.Color.FromArgb(100, 100, 100); + ForeColor = System.Drawing.Color.Black; + Text = "Menu"; + isRightMenu = false; + Command = string.Empty; + Image = null; + isSeparate = false; + TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + Padding = new System.Windows.Forms.Padding(0, 0, 0, 0); + ImagePadding = new System.Drawing.Point(0, 0); + ImageSize = new System.Drawing.Size(0, 0); + MenuWidth = 0; + No = 0; + } + } +} diff --git a/Handler/Sub/arFrameControl/MotCommandButton.Designer.cs b/Handler/Sub/arFrameControl/MotCommandButton.Designer.cs new file mode 100644 index 0000000..360d93b --- /dev/null +++ b/Handler/Sub/arFrameControl/MotCommandButton.Designer.cs @@ -0,0 +1,36 @@ +namespace arFrame.Control +{ + partial class MotCommandButton + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 구성 요소 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마십시오. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + } + + #endregion + } +} diff --git a/Handler/Sub/arFrameControl/MotCommandButton.cs b/Handler/Sub/arFrameControl/MotCommandButton.cs new file mode 100644 index 0000000..b80d17c --- /dev/null +++ b/Handler/Sub/arFrameControl/MotCommandButton.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace arFrame.Control +{ + public partial class MotCommandButton : Button + { + public enum eCommand + { + AbsoluteMove = 0, + RelativeMove , + AcceptPosition + } + public MotCommandButton() + { + InitializeComponent(); + motCommand = eCommand.AbsoluteMove; + motValueControl = null; + motAccControl = null; + motSpdControl = null; + } + public MotValueNumericUpDown motValueControl { get; set; } + public MotValueNumericUpDown motAccControl { get; set; } + public MotValueNumericUpDown motSpdControl { get; set; } + public eCommand motCommand { get; set; } + } +} diff --git a/Handler/Sub/arFrameControl/MotLinkLabel.Designer.cs b/Handler/Sub/arFrameControl/MotLinkLabel.Designer.cs new file mode 100644 index 0000000..643cb90 --- /dev/null +++ b/Handler/Sub/arFrameControl/MotLinkLabel.Designer.cs @@ -0,0 +1,36 @@ +namespace arFrame.Control +{ + partial class MotLinkLabel + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 구성 요소 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마십시오. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + } + + #endregion + } +} diff --git a/Handler/Sub/arFrameControl/MotLinkLabel.cs b/Handler/Sub/arFrameControl/MotLinkLabel.cs new file mode 100644 index 0000000..8112643 --- /dev/null +++ b/Handler/Sub/arFrameControl/MotLinkLabel.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace arFrame.Control +{ + public partial class MotLinkLabel : System.Windows.Forms.LinkLabel + { + public MotLinkLabel() + { + InitializeComponent(); + this.LinkColor = Color.Chartreuse; + } + public MotValueNumericUpDown motValueControl { get; set; } + } +} diff --git a/Handler/Sub/arFrameControl/MotValueNumericUpDown.Designer.cs b/Handler/Sub/arFrameControl/MotValueNumericUpDown.Designer.cs new file mode 100644 index 0000000..ee475bb --- /dev/null +++ b/Handler/Sub/arFrameControl/MotValueNumericUpDown.Designer.cs @@ -0,0 +1,36 @@ +namespace arFrame.Control +{ + partial class MotValueNumericUpDown + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 구성 요소 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마십시오. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + } + + #endregion + } +} diff --git a/Handler/Sub/arFrameControl/MotValueNumericUpDown.cs b/Handler/Sub/arFrameControl/MotValueNumericUpDown.cs new file mode 100644 index 0000000..ce30c8e --- /dev/null +++ b/Handler/Sub/arFrameControl/MotValueNumericUpDown.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace arFrame.Control +{ + public partial class MotValueNumericUpDown : NumericUpDown + { + public MotValueNumericUpDown() + { + InitializeComponent(); + MotionIndex = -1; + } + public int MotionIndex { get; set; } + } +} diff --git a/Handler/Sub/arFrameControl/MotionView/MotITem.cs b/Handler/Sub/arFrameControl/MotionView/MotITem.cs new file mode 100644 index 0000000..8edc746 --- /dev/null +++ b/Handler/Sub/arFrameControl/MotionView/MotITem.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; + +namespace arFrame.Control +{ + [TypeConverterAttribute(typeof(ExpandableObjectConverter))] + public class MotITem + { + public int idx { get; private set; } + [Category("arFrame"), DisplayName("Tag")] + public string Tag { get; set; } + [Category("arFrame"), DisplayName("글자 정렬 방식")] + public System.Drawing.ContentAlignment TextAlign { get; set; } + [Category("arFrame"), DisplayName("글자 여백")] + public System.Windows.Forms.Padding Padding { get; set; } + [Category("arFrame"), DisplayName("메뉴 사용여부"), Description("활성화시 메뉴의 클릭이벤트가 발생하지 않습니다")] + public Boolean Enable { get; set; } + public string Text { get; set; } + + public Boolean Dirty { get; set; } + + public System.Drawing.Rectangle[] subRect = null; + + //모션 상태값 + public Boolean[] State; + public double Position { get; set; } + public double PositionCmd { get; set; } + public System.Drawing.Color PositionColor { get; set; } + + public System.Drawing.RectangleF rect { get; set; } + + [Category("arFrame"), DisplayName("번호")] + public int No { get; set; } + + public MotITem(int idx_) + { + this.Dirty = true; + PositionColor = System.Drawing.Color.White; + subRect = new System.Drawing.Rectangle[6]; + rect = System.Drawing.RectangleF.Empty; + Enable = true; + this.idx = idx_; + TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + Padding = new System.Windows.Forms.Padding(0, 0, 0, 0); + No = 0; + this.Text = string.Empty; + this.Enable = true; + this.State = new bool[] { false,false,false,false,false,false}; + Position = 0; + PositionCmd = 0; + } + } +} diff --git a/Handler/Sub/arFrameControl/MotionView/MotionDisplay.Designer.cs b/Handler/Sub/arFrameControl/MotionView/MotionDisplay.Designer.cs new file mode 100644 index 0000000..4dc1b43 --- /dev/null +++ b/Handler/Sub/arFrameControl/MotionView/MotionDisplay.Designer.cs @@ -0,0 +1,36 @@ +namespace arFrame.Control +{ + partial class MotionDisplay + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 구성 요소 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마십시오. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + } + + #endregion + } +} diff --git a/Handler/Sub/arFrameControl/MotionView/MotionDisplay.cs b/Handler/Sub/arFrameControl/MotionView/MotionDisplay.cs new file mode 100644 index 0000000..67d166c --- /dev/null +++ b/Handler/Sub/arFrameControl/MotionView/MotionDisplay.cs @@ -0,0 +1,306 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace arFrame.Control +{ + public partial class MotionDisplay : System.Windows.Forms.Control + { + private Color[] colorB1 = new Color[] { + Color.MediumSeaGreen, + Color.DeepSkyBlue, + Color.Tomato, + Color.Purple, + Color.Tomato, + Color.FromArgb(40,40,40) + }; + private Color[] colorB2 = new Color[] { + Color.SeaGreen, + Color.SteelBlue, + Color.Red, + Color.Indigo, + Color.Red, + Color.FromArgb(30,30,30) + }; + + private StringFormat sf = new StringFormat(); + private string[] IndiName = new string[] { "INP","ORG","LIM","HST","ALM","" }; + public MotITem[] Items; + private int _colcount = 3; + private int _rowcount = 2; + private Color _bordercolor = Color.Black; + private Color _gridcolor = Color.FromArgb(50, 50, 50); + private int _bordersize = 1; + private Padding _padding; + private string _postionformat = ""; + private int _headerHeight = 16; + private Font _headerfont = new Font("Consolas",7f); + + + private int itemCount { get { return _colcount * _rowcount; } } + + public new Font Font { get { return base.Font; } set { base.Font = value; this.Invalidate(); } } + public Font HeaderFont { get { return _headerfont; } set { _headerfont = value; this.Invalidate(); } } + public int HeaderHeight { get { return _headerHeight; } set { _headerHeight = value; RemakeChartRect(); this.Invalidate(); } } + public new Padding Padding { get { if (_padding == null) return Padding.Empty; else return _padding; } set { _padding = value; RemakeChartRect(); Invalidate(); } } + public int ColumnCount { get { return _colcount; } set { _colcount = value; ResetArray(); RemakeChartRect(); } } + public int RowCount { get { return _rowcount; } set { _rowcount = value; ResetArray(); RemakeChartRect(); } } + public int BorderSize { get { return _bordersize; } set { _bordersize = value; Invalidate(); } } + public Color BorderColor { get { return _bordercolor; } set { _bordercolor = value; Invalidate(); } } + public string PositionDisplayFormat { get { return _postionformat; } set { _postionformat = value; Invalidate(); } } + public Color GridColor { get { return _gridcolor; } set { _gridcolor = value; Invalidate(); } } + + public new Boolean Enabled { get { return base.Enabled; } set { base.Enabled = value; Invalidate(); } } + + public MotionDisplay() + { + InitializeComponent(); + + // Set Optimized Double Buffer to reduce flickering + this.SetStyle(ControlStyles.UserPaint, true); + this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); + this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); + + // Redraw when resized + this.SetStyle(ControlStyles.ResizeRedraw, true); + sf.LineAlignment = StringAlignment.Center; + sf.Alignment = StringAlignment.Center; + + + //값과 이름은 외부의 값을 사용한다 + ResetArray(); + + if (MinimumSize.Width == 0 || MinimumSize.Height == 0) + MinimumSize = new Size(100, 50); + } + + void ResetArray() + { + + } + + + protected override void OnSizeChanged(EventArgs e) + { + base.OnSizeChanged(e); + RemakeChartRect(); + } + + public void RemakeChartRect() + { + if (DisplayRectangle == Rectangle.Empty) return; + + var baseRect = new Rectangle( + DisplayRectangle.Left + _padding.Left, + DisplayRectangle.Top + _padding.Top, + DisplayRectangle.Width - _padding.Left - _padding.Right, + DisplayRectangle.Height - _padding.Top - _padding.Bottom); + + double x = 0; + double y = 0; + double w = baseRect.Width / (_colcount * 1.0); + double h = baseRect.Height / (_rowcount * 1.0); + + if (this.Items == null || itemCount != this.Items.Length) + { + //아이템갯수가 달라졌으므로 다시 갱신해야함 + var item = new MotITem[RowCount * ColumnCount]; + for (int r = 0; r < RowCount; r++) + { + for (int c = 0; c < ColumnCount; c++) + { + int idx = r * ColumnCount + c; + item[idx] = new MotITem(idx); + item[idx].Enable = false; + item[idx].Padding = new Padding(0, 0, 0, 0); + item[idx].TextAlign = ContentAlignment.MiddleCenter; + x = baseRect.Left + (c * w); + y = baseRect.Top + (r * h); + item[idx].rect = new RectangleF((float)x, (float)y, (float)w, (float)h); + item[idx].Dirty = true; + } + } + + this.Items = item; + } + else + { + //아이템의 갯수는 같으므로 좌표값만 변경해준다. + for (int r = 0; r < RowCount; r++) + { + for (int c = 0; c < ColumnCount; c++) + { + int idx = r * ColumnCount + c; + var item = Items[idx]; + x = (c * w); + y = (r * h); + item.rect = new RectangleF((float)x, (float)y, (float)w, (float)h); + item.Dirty = true; + } + } + } + this.Invalidate(); + + } + + protected override void OnPaint(PaintEventArgs pe) + { + //배경그리기 + //using (var sb = new System.Drawing.Drawing2D.LinearGradientBrush(DisplayRectangle, BackColor, BackColor2On, System.Drawing.Drawing2D.LinearGradientMode.Vertical)) + pe.Graphics.FillRectangle(new SolidBrush(this.BackColor), DisplayRectangle); + + if (Items == null) + { + pe.Graphics.DrawString("no items", this.Font, Brushes.Red, 100, 100); + return; + } + + var items = Items.OrderBy(t => t.No); + foreach (var menu in items) + { + drawItem(menu.idx, pe.Graphics); + } + + //테두리 그리기 + if (BorderSize > 0) + { + pe.Graphics.DrawRectangle(new Pen(this.BorderColor, BorderSize), + this.DisplayRectangle.Left, + this.DisplayRectangle.Top, + this.DisplayRectangle.Width - 1, + this.DisplayRectangle.Height - 1); + } + } + + private void drawItem(int itemIndex, Graphics g = null) + { + if (g == null) g = this.CreateGraphics(); + var item = this.Items[itemIndex]; + + // g.DrawString("rect null", this.Font, Brushes.White, 100, 100); + + if (item.rect == RectangleF.Empty) return; + + var rect = item.rect;// rects[i]; + + var diplayText = item.Text; + + //byte Value = 0; + + //배경이 투명이 아니라면 그린다. + //var bgColor1 = Color.DarkBlue; //BackColor1Off; + //var bgColor2 = Color.Blue;// BackColor2Off; + + //if (Value != 0 && item.Enable != false) + //{ + // //bgColor1 = Value == 1 ? BackColor1On : BackColor1Err; + // //bgColor2 = Value == 1 ? BackColor2On : BackColor2Err; + //} + + //using (var sb = new System.Drawing.Drawing2D.LinearGradientBrush(rect, bgColor1, bgColor2, System.Drawing.Drawing2D.LinearGradientMode.Vertical)) + // g.FillRectangle(sb, rect); + + // if (mouseOverItemIndex == menu.idx) + // this.Cursor = Cursors.Hand; + // else + // this.Cursor = Cursors.Arrow; + + //테두리를 그리는 속성과 트기가 설정된 경우에만 표시 + //if (mouseOverItemIndex == i) + // { + // pe.Graphics.DrawRectangle(new Pen(Color.DeepSkyBlue), rect.Left, rect.Top, rect.Width, rect.Height); + //} + //else + { + // using (var p = new Pen(BorderColor, 1)) + // g.DrawRectangle(p, rect.Left, rect.Top, rect.Width, rect.Height); + } + + //총 5개의 인디게이터와 하단에 위치값을 표시하는 영역이 있따. + //줄 영역은 50%비율로 처리함 + if(item.Dirty) + { + //각 영역을 다시 그려줘야한다. + var indiWidth = rect.Width / 5.0; + // var indiHeight = rect.Height / 2.0; + for (int c = 0; c < 5; c++) + { + item.subRect[c] = new Rectangle((int)(c * indiWidth + item.rect.Left), (int)(item.rect.Top), (int)indiWidth, (int)HeaderHeight); + } + item.Dirty = false; + + //위치값을 나타내는 영역 + item.subRect[5] = new Rectangle((int)item.rect.Left, (int)(item.rect.Top + HeaderHeight), (int)rect.Width, (int)rect.Height - HeaderHeight ); + + } + + for(int i = 0 ; i < item.subRect.Length;i++) + { + var B1 = colorB1[i]; + var B2 = colorB2[i]; + + if (i < (item.subRect.Length - 1)) //상태표시칸은 현재 값에 따라서 색상을 달리한다 + { + if ( this.Enabled == false || (item.State[i] == false && DesignMode == false)) + { + B1 = Color.FromArgb(20,20,20); + B2 = Color.FromArgb(50,50,50); + } + } + + var rt = item.subRect[i]; + using (var br = new System.Drawing.Drawing2D.LinearGradientBrush(rt, B1, B2, System.Drawing.Drawing2D.LinearGradientMode.Vertical)) + g.FillRectangle(br, rt); + + // g.DrawRectangle(Pens.Yellow, rt); + if (i < (item.subRect.Length-1)) + { + sf.Alignment = StringAlignment.Center; + sf.LineAlignment = StringAlignment.Center; + g.DrawString(IndiName[i], HeaderFont, Brushes.White, rt, sf); + } + else + { + sf.LineAlignment = StringAlignment.Center; + sf.Alignment = StringAlignment.Far; + g.DrawString(item.Position.ToString(PositionDisplayFormat) + " [" + item.PositionCmd.ToString(PositionDisplayFormat) + "] ", + this.Font, + new SolidBrush(item.PositionColor), + rt, + sf); + } + } + + //테두리선은 우측만 처리한다 + for (int i = 0; i < item.subRect.Length ; i++) + { + var rt = item.subRect[i]; + var x1 = rt.Right; + var y1 = rt.Top; + var x2 = rt.Right; + var y2 = rt.Bottom; + g.DrawLine(new Pen(GridColor), x1, y1, x2, y2); + } + var posRect = item.subRect[item.subRect.Length - 1]; + g.DrawLine(new Pen(Color.Black,1), posRect.Left, posRect.Top, posRect.Right, posRect.Top); + + + //인덱스번호 출력 + if (diplayText != "") + { + g.DrawString(string.Format("[{0}] {1}", item.idx, diplayText), + this.Font, new SolidBrush(this.ForeColor), + item.rect.Left + 3, item.rect.Top + 3); + } + + + + } + + } +} diff --git a/Handler/Sub/arFrameControl/Properties/AssemblyInfo.cs b/Handler/Sub/arFrameControl/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..3eb117a --- /dev/null +++ b/Handler/Sub/arFrameControl/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리의 일반 정보는 다음 특성 집합을 통해 제어됩니다. +// 어셈블리와 관련된 정보를 수정하려면 +// 이 특성 값을 변경하십시오. +[assembly: AssemblyTitle("arFrameControl")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("arFrameControl")] +[assembly: AssemblyCopyright("Copyright © 2019")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하십시오. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("9fa3ef10-3c75-40a2-b3e6-a37900b26d0e")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 버전이 자동으로 +// 지정되도록 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Handler/Sub/arFrameControl/arFrameControl.csproj b/Handler/Sub/arFrameControl/arFrameControl.csproj new file mode 100644 index 0000000..ce199e7 --- /dev/null +++ b/Handler/Sub/arFrameControl/arFrameControl.csproj @@ -0,0 +1,104 @@ + + + + + Debug + AnyCPU + {A16C9667-5241-4313-888E-548375F85D29} + Library + Properties + arFrame.Control + arFrameControl + v4.7 + 512 + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + AnyCPU + false + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + false + + + + + + + + + + + + + + + + Component + + + MotCommandButton.cs + + + + Component + + + GridView.cs + + + Component + + + MenuControl.cs + + + + + Component + + + MotionDisplay.cs + + + Component + + + MotLinkLabel.cs + + + Component + + + MotValueNumericUpDown.cs + + + + + + {f31c242c-1b15-4518-9733-48558499fe4b} + arControl + + + + + \ No newline at end of file diff --git a/Handler/Sub/arImageViewer_Emgu b/Handler/Sub/arImageViewer_Emgu new file mode 160000 index 0000000..b597e86 --- /dev/null +++ b/Handler/Sub/arImageViewer_Emgu @@ -0,0 +1 @@ +Subproject commit b597e8661181ed2ed8b4de55cc49bb518d5b8892 diff --git a/Handler/Sub/arMCFrame b/Handler/Sub/arMCFrame new file mode 160000 index 0000000..a398dc0 --- /dev/null +++ b/Handler/Sub/arMCFrame @@ -0,0 +1 @@ +Subproject commit a398dc0ae44ab17f278f05274e2cb744736f27be diff --git a/Handler/Sub/arRS232 b/Handler/Sub/arRS232 new file mode 160000 index 0000000..e9b6a0a --- /dev/null +++ b/Handler/Sub/arRS232 @@ -0,0 +1 @@ +Subproject commit e9b6a0a0d17fa28ca837a0a004113ed33c34d495 diff --git a/Handler/Sub/tcpservice b/Handler/Sub/tcpservice new file mode 160000 index 0000000..d7fe2ba --- /dev/null +++ b/Handler/Sub/tcpservice @@ -0,0 +1 @@ +Subproject commit d7fe2baa0e597390beffe1e44b3dfee079721328 diff --git a/Handler/default_model.csv b/Handler/default_model.csv new file mode 100644 index 0000000..b5d9488 --- /dev/null +++ b/Handler/default_model.csv @@ -0,0 +1,24 @@ +ver 1 +idx Title pidx MotIndex PosIndex PosTitle Position SpdTitle Speed SpeedAcc Check +1 Default -1 0 -1 0 0 0 False +2 1 0 0 Ready 0 250 400 True +3 1 0 1 FrontPick 45 250 400 True +4 1 0 2 RearPick 487.963 250 400 True +5 1 0 3 FConveyorOff 499.334 250 400 True +6 1 1 0 Ready 0 100 150 True +7 1 1 1 Pick 170 100 150 True +8 1 2 0 Ready 0 100 150 True +9 1 2 1 Pick 166 100 150 True +10 1 3 0 Ready 0 150 400 True +11 1 3 1 LeftIn 0 150 400 True +12 1 3 2 LeftPick 589.029 150 400 True +13 1 3 3 RightIn 577.656 150 400 True +14 1 3 4 RightPick -5.987 150 400 True +15 1 4 0 Ready 0 150 400 True +16 1 4 1 LeftIn 0 150 400 True +17 1 4 2 LeftPick 591.672 150 400 True +18 1 4 3 RightIn 584.861 150 400 True +19 1 4 4 RightPick -12.312 150 400 True +20 1 0 4 RConveyorOff 39.566 250 400 True +21 1 1 2 PickOff 0 100 150 True +22 1 2 2 PickOff 0 100 150 True diff --git a/Handler/euresys/App.config b/Handler/euresys/App.config new file mode 100644 index 0000000..731f6de --- /dev/null +++ b/Handler/euresys/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Handler/euresys/Form1.Designer.cs b/Handler/euresys/Form1.Designer.cs new file mode 100644 index 0000000..259d08c --- /dev/null +++ b/Handler/euresys/Form1.Designer.cs @@ -0,0 +1,75 @@ +namespace euresys +{ + partial class Form1 + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + this.button1 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // button1 + // + this.button1.Location = new System.Drawing.Point(90, 27); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(190, 100); + this.button1.TabIndex = 0; + this.button1.Text = "button1"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // button2 + // + this.button2.Location = new System.Drawing.Point(300, 27); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(190, 100); + this.button2.TabIndex = 0; + this.button2.Text = "qrcode"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(800, 450); + this.Controls.Add(this.button2); + this.Controls.Add(this.button1); + this.Name = "Form1"; + this.Text = "Form1"; + this.Load += new System.EventHandler(this.Form1_Load); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button button1; + private System.Windows.Forms.Button button2; + } +} + diff --git a/Handler/euresys/Form1.cs b/Handler/euresys/Form1.cs new file mode 100644 index 0000000..f9f233a --- /dev/null +++ b/Handler/euresys/Form1.cs @@ -0,0 +1,94 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using Euresys.Open_eVision_2_11; + +namespace euresys +{ + public partial class Form1 : Form + { + public Form1() + { + InitializeComponent(); + } + EImageBW8 EBW8Image1 = new EImageBW8(); // EImageBW8 instance + // EWorldShape EWorldShape1 = new EWorldShape(); // EWorldShape instance + ECircleGauge ECircleGauge1 = new ECircleGauge(); // ECircleGauge instance + ECircle Circle1 = new ECircle(); // ECircle instance + ECircle measuredCircle = null; // ECircle instance + + private void Form1_Load(object sender, EventArgs e) + { + + + + + + + + } + + private void button1_Click(object sender, EventArgs e) + { + try + { + EBW8Image1.Load("C:\\temp\\b.bmp"); + //ECircleGauge1.Attach(EWorldShape1); + + EQRCodeReader EQRCode1 = new EQRCodeReader(); // EQRCodeReader instance + EQRCode[] EQRCode1Result; // EQRCode instances + + + + ECircleGauge1.Dragable = true; + ECircleGauge1.Resizable = true; + ECircleGauge1.Rotatable = true; + //EWorldShape1.SetSensorSize(3289, 2406); + //EWorldShape1.Process(EBW8Image1, true); + ECircleGauge1.Thickness = 40; + ECircleGauge1.TransitionChoice = ETransitionChoice.NthFromEnd; + ECircleGauge1.FilteringThreshold = 3.00f; + ECircleGauge1.SetCenterXY(1537.00f, 1149.50f); + ECircleGauge1.Amplitude = 360f; + ECircleGauge1.Tolerance = 450; + ECircleGauge1.Diameter = 1290.00f; + ECircleGauge1.Measure(EBW8Image1); + + measuredCircle = ECircleGauge1.MeasuredCircle; + } + catch (EException) + { + // Insert exception handling code here + } + } + + private void button2_Click(object sender, EventArgs e) + { + + + EQRCodeReader EQRCode1 = new EQRCodeReader(); // EQRCodeReader instance + EQRCode[] EQRCode1Result; // EQRCode instances + try + { + EBW8Image1.Load("C:\\temp\\a.bmp"); + EQRCode1.DetectionTradeOff = EQRDetectionTradeOff.FavorReliability; //모든방법으로 데이터를 찾는다 + EQRCode1.TimeOut = 1000 * 1000; //timeout (1초) + EQRCode1.SearchField = EBW8Image1; + EQRCode1Result = EQRCode1.Read(); + EQRCode1.SearchField = EBW8Image1; + EQRCode1Result = EQRCode1.Read(); + } + catch (EException) + { + // Insert exception handling code here + } + + } + } +} diff --git a/Handler/euresys/Form1.resx b/Handler/euresys/Form1.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/Handler/euresys/Form1.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/euresys/Program.cs b/Handler/euresys/Program.cs new file mode 100644 index 0000000..ab0c935 --- /dev/null +++ b/Handler/euresys/Program.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace euresys +{ + static class Program + { + /// + /// 해당 응용 프로그램의 주 진입점입니다. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + } +} diff --git a/Handler/euresys/Properties/AssemblyInfo.cs b/Handler/euresys/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..9919785 --- /dev/null +++ b/Handler/euresys/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("euresys")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("euresys")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("5649e784-0bf1-46f4-a87f-f8c2f21dfa33")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로 +// 지정되도록 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Handler/euresys/Properties/Resources.Designer.cs b/Handler/euresys/Properties/Resources.Designer.cs new file mode 100644 index 0000000..eedc861 --- /dev/null +++ b/Handler/euresys/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +namespace euresys.Properties +{ + + + /// + /// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다. + /// + // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder + // 클래스에서 자동으로 생성되었습니다. + // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 + // ResGen을 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("euresys.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을 + /// 재정의합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/Handler/euresys/Properties/Resources.resx b/Handler/euresys/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Handler/euresys/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Handler/euresys/Properties/Settings.Designer.cs b/Handler/euresys/Properties/Settings.Designer.cs new file mode 100644 index 0000000..436610a --- /dev/null +++ b/Handler/euresys/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace euresys.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/Handler/euresys/Properties/Settings.settings b/Handler/euresys/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Handler/euresys/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Handler/swPLC b/Handler/swPLC new file mode 160000 index 0000000..ed88f57 --- /dev/null +++ b/Handler/swPLC @@ -0,0 +1 @@ +Subproject commit ed88f577cb17653b55087ae024c19110e5545478 diff --git a/SID Information/.gitignore b/SID Information/.gitignore new file mode 100644 index 0000000..c2f4601 --- /dev/null +++ b/SID Information/.gitignore @@ -0,0 +1,8 @@ +*.suo +*.user +*.pdb +bin +obj +desktop.ini +.vs +packages \ No newline at end of file diff --git a/SID Information/App.config b/SID Information/App.config new file mode 100644 index 0000000..ed7b52b --- /dev/null +++ b/SID Information/App.config @@ -0,0 +1,36 @@ + + + + +
+
+ + + + + + + + + + + + + K9OE1zaaQEPD8jE33YK1vDdDS4JBz1DB + + + Amkor Technology/windows-242f240302c3e50d6cb1686ba2q4k0o9 + + + + + K9OE1zaaQEPD8jE33YK1vDdDS4JBz1DB + + + Amkor Technology/windows-242f240302c3e50d6cb1686ba2q4k0o9 + + + + \ No newline at end of file diff --git a/SID Information/DLL/ArLog.Net4.dll b/SID Information/DLL/ArLog.Net4.dll new file mode 100644 index 0000000..1f7c09a Binary files /dev/null and b/SID Information/DLL/ArLog.Net4.dll differ diff --git a/SID Information/DLL/ArSetting.Net4.dll b/SID Information/DLL/ArSetting.Net4.dll new file mode 100644 index 0000000..941494f Binary files /dev/null and b/SID Information/DLL/ArSetting.Net4.dll differ diff --git a/SID Information/DLL/ChilkatDotNet4.dll b/SID Information/DLL/ChilkatDotNet4.dll new file mode 100644 index 0000000..134c43e Binary files /dev/null and b/SID Information/DLL/ChilkatDotNet4.dll differ diff --git a/SID Information/DLL/arCommUtil.dll b/SID Information/DLL/arCommUtil.dll new file mode 100644 index 0000000..7d7f27e Binary files /dev/null and b/SID Information/DLL/arCommUtil.dll differ diff --git a/SID Information/DataSet1.Designer.cs b/SID Information/DataSet1.Designer.cs new file mode 100644 index 0000000..8cab75f --- /dev/null +++ b/SID Information/DataSet1.Designer.cs @@ -0,0 +1,5587 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +#pragma warning disable 1591 + +namespace SIDConvInfoEditorII { + + + /// + ///Represents a strongly typed in-memory cache of data. + /// + [global::System.Serializable()] + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] + [global::System.Xml.Serialization.XmlRootAttribute("DataSet1")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] + public partial class DataSet1 : global::System.Data.DataSet { + + private Component_Reel_SID_InformationDataTable tableComponent_Reel_SID_Information; + + private Component_Reel_SID_ConvertDataTable tableComponent_Reel_SID_Convert; + + private Component_Reel_Print_InformationDataTable tableComponent_Reel_Print_Information; + + private global::System.Data.SchemaSerializationMode _schemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public DataSet1() { + this.BeginInit(); + this.InitClass(); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + base.Relations.CollectionChanged += schemaChangedHandler; + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected DataSet1(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context, false) { + if ((this.IsBinarySerialized(info, context) == true)) { + this.InitVars(false); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + this.Tables.CollectionChanged += schemaChangedHandler1; + this.Relations.CollectionChanged += schemaChangedHandler1; + return; + } + string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); + if ((this.DetermineSchemaSerializationMode(info, context) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { + global::System.Data.DataSet ds = new global::System.Data.DataSet(); + ds.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); + if ((ds.Tables["Component_Reel_SID_Information"] != null)) { + base.Tables.Add(new Component_Reel_SID_InformationDataTable(ds.Tables["Component_Reel_SID_Information"])); + } + if ((ds.Tables["Component_Reel_SID_Convert"] != null)) { + base.Tables.Add(new Component_Reel_SID_ConvertDataTable(ds.Tables["Component_Reel_SID_Convert"])); + } + if ((ds.Tables["Component_Reel_Print_Information"] != null)) { + base.Tables.Add(new Component_Reel_Print_InformationDataTable(ds.Tables["Component_Reel_Print_Information"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); + } + this.GetSerializationData(info, context); + global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); + base.Tables.CollectionChanged += schemaChangedHandler; + this.Relations.CollectionChanged += schemaChangedHandler; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public Component_Reel_SID_InformationDataTable Component_Reel_SID_Information { + get { + return this.tableComponent_Reel_SID_Information; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public Component_Reel_SID_ConvertDataTable Component_Reel_SID_Convert { + get { + return this.tableComponent_Reel_SID_Convert; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] + public Component_Reel_Print_InformationDataTable Component_Reel_Print_Information { + get { + return this.tableComponent_Reel_Print_Information; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.BrowsableAttribute(true)] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Visible)] + public override global::System.Data.SchemaSerializationMode SchemaSerializationMode { + get { + return this._schemaSerializationMode; + } + set { + this._schemaSerializationMode = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new global::System.Data.DataTableCollection Tables { + get { + return base.Tables; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] + public new global::System.Data.DataRelationCollection Relations { + get { + return base.Relations; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void InitializeDerivedDataSet() { + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataSet Clone() { + DataSet1 cln = ((DataSet1)(base.Clone())); + cln.InitVars(); + cln.SchemaSerializationMode = this.SchemaSerializationMode; + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override bool ShouldSerializeTables() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override bool ShouldSerializeRelations() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void ReadXmlSerializable(global::System.Xml.XmlReader reader) { + if ((this.DetermineSchemaSerializationMode(reader) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { + this.Reset(); + global::System.Data.DataSet ds = new global::System.Data.DataSet(); + ds.ReadXml(reader); + if ((ds.Tables["Component_Reel_SID_Information"] != null)) { + base.Tables.Add(new Component_Reel_SID_InformationDataTable(ds.Tables["Component_Reel_SID_Information"])); + } + if ((ds.Tables["Component_Reel_SID_Convert"] != null)) { + base.Tables.Add(new Component_Reel_SID_ConvertDataTable(ds.Tables["Component_Reel_SID_Convert"])); + } + if ((ds.Tables["Component_Reel_Print_Information"] != null)) { + base.Tables.Add(new Component_Reel_Print_InformationDataTable(ds.Tables["Component_Reel_Print_Information"])); + } + this.DataSetName = ds.DataSetName; + this.Prefix = ds.Prefix; + this.Namespace = ds.Namespace; + this.Locale = ds.Locale; + this.CaseSensitive = ds.CaseSensitive; + this.EnforceConstraints = ds.EnforceConstraints; + this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); + this.InitVars(); + } + else { + this.ReadXml(reader); + this.InitVars(); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Xml.Schema.XmlSchema GetSchemaSerializable() { + global::System.IO.MemoryStream stream = new global::System.IO.MemoryStream(); + this.WriteXmlSchema(new global::System.Xml.XmlTextWriter(stream, null)); + stream.Position = 0; + return global::System.Xml.Schema.XmlSchema.Read(new global::System.Xml.XmlTextReader(stream), null); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.InitVars(true); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars(bool initTable) { + this.tableComponent_Reel_SID_Information = ((Component_Reel_SID_InformationDataTable)(base.Tables["Component_Reel_SID_Information"])); + if ((initTable == true)) { + if ((this.tableComponent_Reel_SID_Information != null)) { + this.tableComponent_Reel_SID_Information.InitVars(); + } + } + this.tableComponent_Reel_SID_Convert = ((Component_Reel_SID_ConvertDataTable)(base.Tables["Component_Reel_SID_Convert"])); + if ((initTable == true)) { + if ((this.tableComponent_Reel_SID_Convert != null)) { + this.tableComponent_Reel_SID_Convert.InitVars(); + } + } + this.tableComponent_Reel_Print_Information = ((Component_Reel_Print_InformationDataTable)(base.Tables["Component_Reel_Print_Information"])); + if ((initTable == true)) { + if ((this.tableComponent_Reel_Print_Information != null)) { + this.tableComponent_Reel_Print_Information.InitVars(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.DataSetName = "DataSet1"; + this.Prefix = ""; + this.Namespace = "http://tempuri.org/DataSet1.xsd"; + this.EnforceConstraints = true; + this.SchemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; + this.tableComponent_Reel_SID_Information = new Component_Reel_SID_InformationDataTable(); + base.Tables.Add(this.tableComponent_Reel_SID_Information); + this.tableComponent_Reel_SID_Convert = new Component_Reel_SID_ConvertDataTable(); + base.Tables.Add(this.tableComponent_Reel_SID_Convert); + this.tableComponent_Reel_Print_Information = new Component_Reel_Print_InformationDataTable(); + base.Tables.Add(this.tableComponent_Reel_Print_Information); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeComponent_Reel_SID_Information() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeComponent_Reel_SID_Convert() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private bool ShouldSerializeComponent_Reel_Print_Information() { + return false; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void SchemaChanged(object sender, global::System.ComponentModel.CollectionChangeEventArgs e) { + if ((e.Action == global::System.ComponentModel.CollectionChangeAction.Remove)) { + this.InitVars(); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + global::System.Xml.Schema.XmlSchemaAny any = new global::System.Xml.Schema.XmlSchemaAny(); + any.Namespace = ds.Namespace; + sequence.Items.Add(any); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void Component_Reel_SID_InformationRowChangeEventHandler(object sender, Component_Reel_SID_InformationRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void Component_Reel_SID_ConvertRowChangeEventHandler(object sender, Component_Reel_SID_ConvertRowChangeEvent e); + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public delegate void Component_Reel_Print_InformationRowChangeEventHandler(object sender, Component_Reel_Print_InformationRowChangeEvent e); + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class Component_Reel_SID_InformationDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnidx; + + private global::System.Data.DataColumn columnMC; + + private global::System.Data.DataColumn columnSID; + + private global::System.Data.DataColumn columnCustCode; + + private global::System.Data.DataColumn columnPartNo; + + private global::System.Data.DataColumn columnCustName; + + private global::System.Data.DataColumn columnVenderName; + + private global::System.Data.DataColumn columnRemark; + + private global::System.Data.DataColumn columnMFG; + + private global::System.Data.DataColumn columnwdate; + + private global::System.Data.DataColumn columnqtymax; + + private global::System.Data.DataColumn columnbatch; + + private global::System.Data.DataColumn columnVenderLot; + + private global::System.Data.DataColumn columnattach; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_InformationDataTable() { + this.TableName = "Component_Reel_SID_Information"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal Component_Reel_SID_InformationDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected Component_Reel_SID_InformationDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn idxColumn { + get { + return this.columnidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn MCColumn { + get { + return this.columnMC; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SIDColumn { + get { + return this.columnSID; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn CustCodeColumn { + get { + return this.columnCustCode; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn PartNoColumn { + get { + return this.columnPartNo; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn CustNameColumn { + get { + return this.columnCustName; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn VenderNameColumn { + get { + return this.columnVenderName; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn RemarkColumn { + get { + return this.columnRemark; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn MFGColumn { + get { + return this.columnMFG; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn wdateColumn { + get { + return this.columnwdate; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn qtymaxColumn { + get { + return this.columnqtymax; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn batchColumn { + get { + return this.columnbatch; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn VenderLotColumn { + get { + return this.columnVenderLot; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn attachColumn { + get { + return this.columnattach; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_InformationRow this[int index] { + get { + return ((Component_Reel_SID_InformationRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_SID_InformationRowChangeEventHandler Component_Reel_SID_InformationRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_SID_InformationRowChangeEventHandler Component_Reel_SID_InformationRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_SID_InformationRowChangeEventHandler Component_Reel_SID_InformationRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_SID_InformationRowChangeEventHandler Component_Reel_SID_InformationRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddComponent_Reel_SID_InformationRow(Component_Reel_SID_InformationRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_InformationRow AddComponent_Reel_SID_InformationRow(string MC, string SID, string CustCode, string PartNo, string CustName, string VenderName, string Remark, string MFG, System.DateTime wdate, int qtymax, string batch, string VenderLot, string attach) { + Component_Reel_SID_InformationRow rowComponent_Reel_SID_InformationRow = ((Component_Reel_SID_InformationRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + MC, + SID, + CustCode, + PartNo, + CustName, + VenderName, + Remark, + MFG, + wdate, + qtymax, + batch, + VenderLot, + attach}; + rowComponent_Reel_SID_InformationRow.ItemArray = columnValuesArray; + this.Rows.Add(rowComponent_Reel_SID_InformationRow); + return rowComponent_Reel_SID_InformationRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_InformationRow FindByidx(int idx) { + return ((Component_Reel_SID_InformationRow)(this.Rows.Find(new object[] { + idx}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + Component_Reel_SID_InformationDataTable cln = ((Component_Reel_SID_InformationDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new Component_Reel_SID_InformationDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnidx = base.Columns["idx"]; + this.columnMC = base.Columns["MC"]; + this.columnSID = base.Columns["SID"]; + this.columnCustCode = base.Columns["CustCode"]; + this.columnPartNo = base.Columns["PartNo"]; + this.columnCustName = base.Columns["CustName"]; + this.columnVenderName = base.Columns["VenderName"]; + this.columnRemark = base.Columns["Remark"]; + this.columnMFG = base.Columns["MFG"]; + this.columnwdate = base.Columns["wdate"]; + this.columnqtymax = base.Columns["qtymax"]; + this.columnbatch = base.Columns["batch"]; + this.columnVenderLot = base.Columns["VenderLot"]; + this.columnattach = base.Columns["attach"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnidx = new global::System.Data.DataColumn("idx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnidx); + this.columnMC = new global::System.Data.DataColumn("MC", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMC); + this.columnSID = new global::System.Data.DataColumn("SID", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSID); + this.columnCustCode = new global::System.Data.DataColumn("CustCode", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCustCode); + this.columnPartNo = new global::System.Data.DataColumn("PartNo", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPartNo); + this.columnCustName = new global::System.Data.DataColumn("CustName", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCustName); + this.columnVenderName = new global::System.Data.DataColumn("VenderName", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnVenderName); + this.columnRemark = new global::System.Data.DataColumn("Remark", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnRemark); + this.columnMFG = new global::System.Data.DataColumn("MFG", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMFG); + this.columnwdate = new global::System.Data.DataColumn("wdate", typeof(global::System.DateTime), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnwdate); + this.columnqtymax = new global::System.Data.DataColumn("qtymax", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnqtymax); + this.columnbatch = new global::System.Data.DataColumn("batch", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnbatch); + this.columnVenderLot = new global::System.Data.DataColumn("VenderLot", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnVenderLot); + this.columnattach = new global::System.Data.DataColumn("attach", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnattach); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnidx}, true)); + this.columnidx.AutoIncrement = true; + this.columnidx.AutoIncrementSeed = -1; + this.columnidx.AutoIncrementStep = -1; + this.columnidx.AllowDBNull = false; + this.columnidx.ReadOnly = true; + this.columnidx.Unique = true; + this.columnMC.MaxLength = 20; + this.columnSID.AllowDBNull = false; + this.columnSID.MaxLength = 50; + this.columnCustCode.AllowDBNull = false; + this.columnCustCode.MaxLength = 10; + this.columnPartNo.AllowDBNull = false; + this.columnPartNo.MaxLength = 100; + this.columnCustName.MaxLength = 100; + this.columnVenderName.MaxLength = 100; + this.columnRemark.MaxLength = 100; + this.columnMFG.MaxLength = 20; + this.columnbatch.MaxLength = 100; + this.columnVenderLot.MaxLength = 1000; + this.columnattach.MaxLength = 10; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_InformationRow NewComponent_Reel_SID_InformationRow() { + return ((Component_Reel_SID_InformationRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new Component_Reel_SID_InformationRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(Component_Reel_SID_InformationRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.Component_Reel_SID_InformationRowChanged != null)) { + this.Component_Reel_SID_InformationRowChanged(this, new Component_Reel_SID_InformationRowChangeEvent(((Component_Reel_SID_InformationRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.Component_Reel_SID_InformationRowChanging != null)) { + this.Component_Reel_SID_InformationRowChanging(this, new Component_Reel_SID_InformationRowChangeEvent(((Component_Reel_SID_InformationRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.Component_Reel_SID_InformationRowDeleted != null)) { + this.Component_Reel_SID_InformationRowDeleted(this, new Component_Reel_SID_InformationRowChangeEvent(((Component_Reel_SID_InformationRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.Component_Reel_SID_InformationRowDeleting != null)) { + this.Component_Reel_SID_InformationRowDeleting(this, new Component_Reel_SID_InformationRowChangeEvent(((Component_Reel_SID_InformationRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveComponent_Reel_SID_InformationRow(Component_Reel_SID_InformationRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "Component_Reel_SID_InformationDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class Component_Reel_SID_ConvertDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnidx; + + private global::System.Data.DataColumn columnMC; + + private global::System.Data.DataColumn columnChk; + + private global::System.Data.DataColumn columnSIDFrom; + + private global::System.Data.DataColumn columnSIDTo; + + private global::System.Data.DataColumn columnRemark; + + private global::System.Data.DataColumn columnwdate; + + private global::System.Data.DataColumn columnCustCode; + + private global::System.Data.DataColumn columnPartNo; + + private global::System.Data.DataColumn columnCustName; + + private global::System.Data.DataColumn columnVenderName; + + private global::System.Data.DataColumn columnVenderLot; + + private global::System.Data.DataColumn columnPrintPosition; + + private global::System.Data.DataColumn columnMFG; + + private global::System.Data.DataColumn columnqtymax; + + private global::System.Data.DataColumn columnbatch; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_ConvertDataTable() { + this.TableName = "Component_Reel_SID_Convert"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal Component_Reel_SID_ConvertDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected Component_Reel_SID_ConvertDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn idxColumn { + get { + return this.columnidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn MCColumn { + get { + return this.columnMC; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn ChkColumn { + get { + return this.columnChk; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SIDFromColumn { + get { + return this.columnSIDFrom; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SIDToColumn { + get { + return this.columnSIDTo; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn RemarkColumn { + get { + return this.columnRemark; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn wdateColumn { + get { + return this.columnwdate; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn CustCodeColumn { + get { + return this.columnCustCode; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn PartNoColumn { + get { + return this.columnPartNo; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn CustNameColumn { + get { + return this.columnCustName; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn VenderNameColumn { + get { + return this.columnVenderName; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn VenderLotColumn { + get { + return this.columnVenderLot; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn PrintPositionColumn { + get { + return this.columnPrintPosition; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn MFGColumn { + get { + return this.columnMFG; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn qtymaxColumn { + get { + return this.columnqtymax; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn batchColumn { + get { + return this.columnbatch; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_ConvertRow this[int index] { + get { + return ((Component_Reel_SID_ConvertRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_SID_ConvertRowChangeEventHandler Component_Reel_SID_ConvertRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_SID_ConvertRowChangeEventHandler Component_Reel_SID_ConvertRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_SID_ConvertRowChangeEventHandler Component_Reel_SID_ConvertRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_SID_ConvertRowChangeEventHandler Component_Reel_SID_ConvertRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddComponent_Reel_SID_ConvertRow(Component_Reel_SID_ConvertRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_ConvertRow AddComponent_Reel_SID_ConvertRow(string MC, bool Chk, string SIDFrom, string SIDTo, string Remark, System.DateTime wdate, string CustCode, string PartNo, string CustName, string VenderName, string VenderLot, string PrintPosition, string MFG, int qtymax, string batch) { + Component_Reel_SID_ConvertRow rowComponent_Reel_SID_ConvertRow = ((Component_Reel_SID_ConvertRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + MC, + Chk, + SIDFrom, + SIDTo, + Remark, + wdate, + CustCode, + PartNo, + CustName, + VenderName, + VenderLot, + PrintPosition, + MFG, + qtymax, + batch}; + rowComponent_Reel_SID_ConvertRow.ItemArray = columnValuesArray; + this.Rows.Add(rowComponent_Reel_SID_ConvertRow); + return rowComponent_Reel_SID_ConvertRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_ConvertRow FindByidx(int idx) { + return ((Component_Reel_SID_ConvertRow)(this.Rows.Find(new object[] { + idx}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + Component_Reel_SID_ConvertDataTable cln = ((Component_Reel_SID_ConvertDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new Component_Reel_SID_ConvertDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnidx = base.Columns["idx"]; + this.columnMC = base.Columns["MC"]; + this.columnChk = base.Columns["Chk"]; + this.columnSIDFrom = base.Columns["SIDFrom"]; + this.columnSIDTo = base.Columns["SIDTo"]; + this.columnRemark = base.Columns["Remark"]; + this.columnwdate = base.Columns["wdate"]; + this.columnCustCode = base.Columns["CustCode"]; + this.columnPartNo = base.Columns["PartNo"]; + this.columnCustName = base.Columns["CustName"]; + this.columnVenderName = base.Columns["VenderName"]; + this.columnVenderLot = base.Columns["VenderLot"]; + this.columnPrintPosition = base.Columns["PrintPosition"]; + this.columnMFG = base.Columns["MFG"]; + this.columnqtymax = base.Columns["qtymax"]; + this.columnbatch = base.Columns["batch"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnidx = new global::System.Data.DataColumn("idx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnidx); + this.columnMC = new global::System.Data.DataColumn("MC", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMC); + this.columnChk = new global::System.Data.DataColumn("Chk", typeof(bool), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnChk); + this.columnSIDFrom = new global::System.Data.DataColumn("SIDFrom", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSIDFrom); + this.columnSIDTo = new global::System.Data.DataColumn("SIDTo", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSIDTo); + this.columnRemark = new global::System.Data.DataColumn("Remark", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnRemark); + this.columnwdate = new global::System.Data.DataColumn("wdate", typeof(global::System.DateTime), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnwdate); + this.columnCustCode = new global::System.Data.DataColumn("CustCode", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCustCode); + this.columnPartNo = new global::System.Data.DataColumn("PartNo", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPartNo); + this.columnCustName = new global::System.Data.DataColumn("CustName", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnCustName); + this.columnVenderName = new global::System.Data.DataColumn("VenderName", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnVenderName); + this.columnVenderLot = new global::System.Data.DataColumn("VenderLot", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnVenderLot); + this.columnPrintPosition = new global::System.Data.DataColumn("PrintPosition", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPrintPosition); + this.columnMFG = new global::System.Data.DataColumn("MFG", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMFG); + this.columnqtymax = new global::System.Data.DataColumn("qtymax", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnqtymax); + this.columnbatch = new global::System.Data.DataColumn("batch", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnbatch); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnidx}, true)); + this.columnidx.AutoIncrement = true; + this.columnidx.AutoIncrementSeed = -1; + this.columnidx.AutoIncrementStep = -1; + this.columnidx.AllowDBNull = false; + this.columnidx.ReadOnly = true; + this.columnidx.Unique = true; + this.columnMC.MaxLength = 20; + this.columnSIDFrom.MaxLength = 20; + this.columnSIDTo.MaxLength = 20; + this.columnRemark.MaxLength = 100; + this.columnCustCode.MaxLength = 10; + this.columnPartNo.MaxLength = 100; + this.columnCustName.MaxLength = 100; + this.columnVenderName.MaxLength = 100; + this.columnVenderLot.MaxLength = 1000; + this.columnPrintPosition.MaxLength = 10; + this.columnMFG.MaxLength = 20; + this.columnbatch.MaxLength = 100; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_ConvertRow NewComponent_Reel_SID_ConvertRow() { + return ((Component_Reel_SID_ConvertRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new Component_Reel_SID_ConvertRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(Component_Reel_SID_ConvertRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.Component_Reel_SID_ConvertRowChanged != null)) { + this.Component_Reel_SID_ConvertRowChanged(this, new Component_Reel_SID_ConvertRowChangeEvent(((Component_Reel_SID_ConvertRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.Component_Reel_SID_ConvertRowChanging != null)) { + this.Component_Reel_SID_ConvertRowChanging(this, new Component_Reel_SID_ConvertRowChangeEvent(((Component_Reel_SID_ConvertRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.Component_Reel_SID_ConvertRowDeleted != null)) { + this.Component_Reel_SID_ConvertRowDeleted(this, new Component_Reel_SID_ConvertRowChangeEvent(((Component_Reel_SID_ConvertRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.Component_Reel_SID_ConvertRowDeleting != null)) { + this.Component_Reel_SID_ConvertRowDeleting(this, new Component_Reel_SID_ConvertRowChangeEvent(((Component_Reel_SID_ConvertRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveComponent_Reel_SID_ConvertRow(Component_Reel_SID_ConvertRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "Component_Reel_SID_ConvertDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents the strongly named DataTable class. + /// + [global::System.Serializable()] + [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] + public partial class Component_Reel_Print_InformationDataTable : global::System.Data.TypedTableBase { + + private global::System.Data.DataColumn columnidx; + + private global::System.Data.DataColumn columnMC; + + private global::System.Data.DataColumn columnSID; + + private global::System.Data.DataColumn columnPrintPosition; + + private global::System.Data.DataColumn columnRemark; + + private global::System.Data.DataColumn columnwdate; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_Print_InformationDataTable() { + this.TableName = "Component_Reel_Print_Information"; + this.BeginInit(); + this.InitClass(); + this.EndInit(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal Component_Reel_Print_InformationDataTable(global::System.Data.DataTable table) { + this.TableName = table.TableName; + if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { + this.CaseSensitive = table.CaseSensitive; + } + if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { + this.Locale = table.Locale; + } + if ((table.Namespace != table.DataSet.Namespace)) { + this.Namespace = table.Namespace; + } + this.Prefix = table.Prefix; + this.MinimumCapacity = table.MinimumCapacity; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected Component_Reel_Print_InformationDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : + base(info, context) { + this.InitVars(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn idxColumn { + get { + return this.columnidx; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn MCColumn { + get { + return this.columnMC; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn SIDColumn { + get { + return this.columnSID; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn PrintPositionColumn { + get { + return this.columnPrintPosition; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn RemarkColumn { + get { + return this.columnRemark; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataColumn wdateColumn { + get { + return this.columnwdate; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int Count { + get { + return this.Rows.Count; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_Print_InformationRow this[int index] { + get { + return ((Component_Reel_Print_InformationRow)(this.Rows[index])); + } + } + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_Print_InformationRowChangeEventHandler Component_Reel_Print_InformationRowChanging; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_Print_InformationRowChangeEventHandler Component_Reel_Print_InformationRowChanged; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_Print_InformationRowChangeEventHandler Component_Reel_Print_InformationRowDeleting; + + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public event Component_Reel_Print_InformationRowChangeEventHandler Component_Reel_Print_InformationRowDeleted; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void AddComponent_Reel_Print_InformationRow(Component_Reel_Print_InformationRow row) { + this.Rows.Add(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_Print_InformationRow AddComponent_Reel_Print_InformationRow(string MC, string SID, string PrintPosition, string Remark, System.DateTime wdate) { + Component_Reel_Print_InformationRow rowComponent_Reel_Print_InformationRow = ((Component_Reel_Print_InformationRow)(this.NewRow())); + object[] columnValuesArray = new object[] { + null, + MC, + SID, + PrintPosition, + Remark, + wdate}; + rowComponent_Reel_Print_InformationRow.ItemArray = columnValuesArray; + this.Rows.Add(rowComponent_Reel_Print_InformationRow); + return rowComponent_Reel_Print_InformationRow; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_Print_InformationRow FindByidx(int idx) { + return ((Component_Reel_Print_InformationRow)(this.Rows.Find(new object[] { + idx}))); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public override global::System.Data.DataTable Clone() { + Component_Reel_Print_InformationDataTable cln = ((Component_Reel_Print_InformationDataTable)(base.Clone())); + cln.InitVars(); + return cln; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataTable CreateInstance() { + return new Component_Reel_Print_InformationDataTable(); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal void InitVars() { + this.columnidx = base.Columns["idx"]; + this.columnMC = base.Columns["MC"]; + this.columnSID = base.Columns["SID"]; + this.columnPrintPosition = base.Columns["PrintPosition"]; + this.columnRemark = base.Columns["Remark"]; + this.columnwdate = base.Columns["wdate"]; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitClass() { + this.columnidx = new global::System.Data.DataColumn("idx", typeof(int), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnidx); + this.columnMC = new global::System.Data.DataColumn("MC", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnMC); + this.columnSID = new global::System.Data.DataColumn("SID", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnSID); + this.columnPrintPosition = new global::System.Data.DataColumn("PrintPosition", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPrintPosition); + this.columnRemark = new global::System.Data.DataColumn("Remark", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnRemark); + this.columnwdate = new global::System.Data.DataColumn("wdate", typeof(global::System.DateTime), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnwdate); + this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { + this.columnidx}, true)); + this.columnidx.AutoIncrement = true; + this.columnidx.AutoIncrementSeed = -1; + this.columnidx.AutoIncrementStep = -1; + this.columnidx.AllowDBNull = false; + this.columnidx.ReadOnly = true; + this.columnidx.Unique = true; + this.columnMC.MaxLength = 20; + this.columnSID.AllowDBNull = false; + this.columnSID.MaxLength = 50; + this.columnPrintPosition.MaxLength = 10; + this.columnRemark.MaxLength = 100; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_Print_InformationRow NewComponent_Reel_Print_InformationRow() { + return ((Component_Reel_Print_InformationRow)(this.NewRow())); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { + return new Component_Reel_Print_InformationRow(builder); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override global::System.Type GetRowType() { + return typeof(Component_Reel_Print_InformationRow); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanged(e); + if ((this.Component_Reel_Print_InformationRowChanged != null)) { + this.Component_Reel_Print_InformationRowChanged(this, new Component_Reel_Print_InformationRowChangeEvent(((Component_Reel_Print_InformationRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowChanging(e); + if ((this.Component_Reel_Print_InformationRowChanging != null)) { + this.Component_Reel_Print_InformationRowChanging(this, new Component_Reel_Print_InformationRowChangeEvent(((Component_Reel_Print_InformationRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleted(e); + if ((this.Component_Reel_Print_InformationRowDeleted != null)) { + this.Component_Reel_Print_InformationRowDeleted(this, new Component_Reel_Print_InformationRowChangeEvent(((Component_Reel_Print_InformationRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { + base.OnRowDeleting(e); + if ((this.Component_Reel_Print_InformationRowDeleting != null)) { + this.Component_Reel_Print_InformationRowDeleting(this, new Component_Reel_Print_InformationRowChangeEvent(((Component_Reel_Print_InformationRow)(e.Row)), e.Action)); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void RemoveComponent_Reel_Print_InformationRow(Component_Reel_Print_InformationRow row) { + this.Rows.Remove(row); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { + global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); + global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); + DataSet1 ds = new DataSet1(); + global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); + any1.Namespace = "http://www.w3.org/2001/XMLSchema"; + any1.MinOccurs = new decimal(0); + any1.MaxOccurs = decimal.MaxValue; + any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any1); + global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); + any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; + any2.MinOccurs = new decimal(1); + any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; + sequence.Items.Add(any2); + global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute1.Name = "namespace"; + attribute1.FixedValue = ds.Namespace; + type.Attributes.Add(attribute1); + global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); + attribute2.Name = "tableTypeName"; + attribute2.FixedValue = "Component_Reel_Print_InformationDataTable"; + type.Attributes.Add(attribute2); + type.Particle = sequence; + global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); + if (xs.Contains(dsSchema.TargetNamespace)) { + global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); + global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); + try { + global::System.Xml.Schema.XmlSchema schema = null; + dsSchema.Write(s1); + for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { + schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); + s2.SetLength(0); + schema.Write(s2); + if ((s1.Length == s2.Length)) { + s1.Position = 0; + s2.Position = 0; + for (; ((s1.Position != s1.Length) + && (s1.ReadByte() == s2.ReadByte())); ) { + ; + } + if ((s1.Position == s1.Length)) { + return type; + } + } + } + } + finally { + if ((s1 != null)) { + s1.Close(); + } + if ((s2 != null)) { + s2.Close(); + } + } + } + xs.Add(dsSchema); + return type; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class Component_Reel_SID_InformationRow : global::System.Data.DataRow { + + private Component_Reel_SID_InformationDataTable tableComponent_Reel_SID_Information; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal Component_Reel_SID_InformationRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableComponent_Reel_SID_Information = ((Component_Reel_SID_InformationDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int idx { + get { + return ((int)(this[this.tableComponent_Reel_SID_Information.idxColumn])); + } + set { + this[this.tableComponent_Reel_SID_Information.idxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string MC { + get { + if (this.IsMCNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SID_Information.MCColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Information.MCColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string SID { + get { + return ((string)(this[this.tableComponent_Reel_SID_Information.SIDColumn])); + } + set { + this[this.tableComponent_Reel_SID_Information.SIDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string CustCode { + get { + return ((string)(this[this.tableComponent_Reel_SID_Information.CustCodeColumn])); + } + set { + this[this.tableComponent_Reel_SID_Information.CustCodeColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string PartNo { + get { + return ((string)(this[this.tableComponent_Reel_SID_Information.PartNoColumn])); + } + set { + this[this.tableComponent_Reel_SID_Information.PartNoColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string CustName { + get { + if (this.IsCustNameNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SID_Information.CustNameColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Information.CustNameColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string VenderName { + get { + if (this.IsVenderNameNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SID_Information.VenderNameColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Information.VenderNameColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Remark { + get { + if (this.IsRemarkNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SID_Information.RemarkColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Information.RemarkColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string MFG { + get { + if (this.IsMFGNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SID_Information.MFGColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Information.MFGColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public System.DateTime wdate { + get { + try { + return ((global::System.DateTime)(this[this.tableComponent_Reel_SID_Information.wdateColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'Component_Reel_SID_Information\' 테이블의 \'wdate\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableComponent_Reel_SID_Information.wdateColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int qtymax { + get { + if (this.IsqtymaxNull()) { + return 0; + } + else { + return ((int)(this[this.tableComponent_Reel_SID_Information.qtymaxColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Information.qtymaxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string batch { + get { + if (this.IsbatchNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SID_Information.batchColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Information.batchColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string VenderLot { + get { + if (this.IsVenderLotNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SID_Information.VenderLotColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Information.VenderLotColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string attach { + get { + if (this.IsattachNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SID_Information.attachColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Information.attachColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsMCNull() { + return this.IsNull(this.tableComponent_Reel_SID_Information.MCColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetMCNull() { + this[this.tableComponent_Reel_SID_Information.MCColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsCustNameNull() { + return this.IsNull(this.tableComponent_Reel_SID_Information.CustNameColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetCustNameNull() { + this[this.tableComponent_Reel_SID_Information.CustNameColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsVenderNameNull() { + return this.IsNull(this.tableComponent_Reel_SID_Information.VenderNameColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetVenderNameNull() { + this[this.tableComponent_Reel_SID_Information.VenderNameColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsRemarkNull() { + return this.IsNull(this.tableComponent_Reel_SID_Information.RemarkColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetRemarkNull() { + this[this.tableComponent_Reel_SID_Information.RemarkColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsMFGNull() { + return this.IsNull(this.tableComponent_Reel_SID_Information.MFGColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetMFGNull() { + this[this.tableComponent_Reel_SID_Information.MFGColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IswdateNull() { + return this.IsNull(this.tableComponent_Reel_SID_Information.wdateColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetwdateNull() { + this[this.tableComponent_Reel_SID_Information.wdateColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsqtymaxNull() { + return this.IsNull(this.tableComponent_Reel_SID_Information.qtymaxColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetqtymaxNull() { + this[this.tableComponent_Reel_SID_Information.qtymaxColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsbatchNull() { + return this.IsNull(this.tableComponent_Reel_SID_Information.batchColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetbatchNull() { + this[this.tableComponent_Reel_SID_Information.batchColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsVenderLotNull() { + return this.IsNull(this.tableComponent_Reel_SID_Information.VenderLotColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetVenderLotNull() { + this[this.tableComponent_Reel_SID_Information.VenderLotColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsattachNull() { + return this.IsNull(this.tableComponent_Reel_SID_Information.attachColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetattachNull() { + this[this.tableComponent_Reel_SID_Information.attachColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class Component_Reel_SID_ConvertRow : global::System.Data.DataRow { + + private Component_Reel_SID_ConvertDataTable tableComponent_Reel_SID_Convert; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal Component_Reel_SID_ConvertRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableComponent_Reel_SID_Convert = ((Component_Reel_SID_ConvertDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int idx { + get { + return ((int)(this[this.tableComponent_Reel_SID_Convert.idxColumn])); + } + set { + this[this.tableComponent_Reel_SID_Convert.idxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string MC { + get { + if (this.IsMCNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SID_Convert.MCColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Convert.MCColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool Chk { + get { + try { + return ((bool)(this[this.tableComponent_Reel_SID_Convert.ChkColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'Component_Reel_SID_Convert\' 테이블의 \'Chk\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableComponent_Reel_SID_Convert.ChkColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string SIDFrom { + get { + if (this.IsSIDFromNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SID_Convert.SIDFromColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Convert.SIDFromColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string SIDTo { + get { + if (this.IsSIDToNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SID_Convert.SIDToColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Convert.SIDToColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Remark { + get { + if (this.IsRemarkNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SID_Convert.RemarkColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Convert.RemarkColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public System.DateTime wdate { + get { + try { + return ((global::System.DateTime)(this[this.tableComponent_Reel_SID_Convert.wdateColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'Component_Reel_SID_Convert\' 테이블의 \'wdate\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableComponent_Reel_SID_Convert.wdateColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string CustCode { + get { + if (this.IsCustCodeNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SID_Convert.CustCodeColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Convert.CustCodeColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string PartNo { + get { + if (this.IsPartNoNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SID_Convert.PartNoColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Convert.PartNoColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string CustName { + get { + if (this.IsCustNameNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SID_Convert.CustNameColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Convert.CustNameColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string VenderName { + get { + if (this.IsVenderNameNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SID_Convert.VenderNameColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Convert.VenderNameColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string VenderLot { + get { + if (this.IsVenderLotNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SID_Convert.VenderLotColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Convert.VenderLotColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string PrintPosition { + get { + if (this.IsPrintPositionNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SID_Convert.PrintPositionColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Convert.PrintPositionColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string MFG { + get { + if (this.IsMFGNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SID_Convert.MFGColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Convert.MFGColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int qtymax { + get { + if (this.IsqtymaxNull()) { + return 0; + } + else { + return ((int)(this[this.tableComponent_Reel_SID_Convert.qtymaxColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Convert.qtymaxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string batch { + get { + if (this.IsbatchNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_SID_Convert.batchColumn])); + } + } + set { + this[this.tableComponent_Reel_SID_Convert.batchColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsMCNull() { + return this.IsNull(this.tableComponent_Reel_SID_Convert.MCColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetMCNull() { + this[this.tableComponent_Reel_SID_Convert.MCColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsChkNull() { + return this.IsNull(this.tableComponent_Reel_SID_Convert.ChkColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetChkNull() { + this[this.tableComponent_Reel_SID_Convert.ChkColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsSIDFromNull() { + return this.IsNull(this.tableComponent_Reel_SID_Convert.SIDFromColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetSIDFromNull() { + this[this.tableComponent_Reel_SID_Convert.SIDFromColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsSIDToNull() { + return this.IsNull(this.tableComponent_Reel_SID_Convert.SIDToColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetSIDToNull() { + this[this.tableComponent_Reel_SID_Convert.SIDToColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsRemarkNull() { + return this.IsNull(this.tableComponent_Reel_SID_Convert.RemarkColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetRemarkNull() { + this[this.tableComponent_Reel_SID_Convert.RemarkColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IswdateNull() { + return this.IsNull(this.tableComponent_Reel_SID_Convert.wdateColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetwdateNull() { + this[this.tableComponent_Reel_SID_Convert.wdateColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsCustCodeNull() { + return this.IsNull(this.tableComponent_Reel_SID_Convert.CustCodeColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetCustCodeNull() { + this[this.tableComponent_Reel_SID_Convert.CustCodeColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsPartNoNull() { + return this.IsNull(this.tableComponent_Reel_SID_Convert.PartNoColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetPartNoNull() { + this[this.tableComponent_Reel_SID_Convert.PartNoColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsCustNameNull() { + return this.IsNull(this.tableComponent_Reel_SID_Convert.CustNameColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetCustNameNull() { + this[this.tableComponent_Reel_SID_Convert.CustNameColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsVenderNameNull() { + return this.IsNull(this.tableComponent_Reel_SID_Convert.VenderNameColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetVenderNameNull() { + this[this.tableComponent_Reel_SID_Convert.VenderNameColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsVenderLotNull() { + return this.IsNull(this.tableComponent_Reel_SID_Convert.VenderLotColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetVenderLotNull() { + this[this.tableComponent_Reel_SID_Convert.VenderLotColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsPrintPositionNull() { + return this.IsNull(this.tableComponent_Reel_SID_Convert.PrintPositionColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetPrintPositionNull() { + this[this.tableComponent_Reel_SID_Convert.PrintPositionColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsMFGNull() { + return this.IsNull(this.tableComponent_Reel_SID_Convert.MFGColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetMFGNull() { + this[this.tableComponent_Reel_SID_Convert.MFGColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsqtymaxNull() { + return this.IsNull(this.tableComponent_Reel_SID_Convert.qtymaxColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetqtymaxNull() { + this[this.tableComponent_Reel_SID_Convert.qtymaxColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsbatchNull() { + return this.IsNull(this.tableComponent_Reel_SID_Convert.batchColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetbatchNull() { + this[this.tableComponent_Reel_SID_Convert.batchColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Represents strongly named DataRow class. + /// + public partial class Component_Reel_Print_InformationRow : global::System.Data.DataRow { + + private Component_Reel_Print_InformationDataTable tableComponent_Reel_Print_Information; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal Component_Reel_Print_InformationRow(global::System.Data.DataRowBuilder rb) : + base(rb) { + this.tableComponent_Reel_Print_Information = ((Component_Reel_Print_InformationDataTable)(this.Table)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int idx { + get { + return ((int)(this[this.tableComponent_Reel_Print_Information.idxColumn])); + } + set { + this[this.tableComponent_Reel_Print_Information.idxColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string MC { + get { + if (this.IsMCNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Print_Information.MCColumn])); + } + } + set { + this[this.tableComponent_Reel_Print_Information.MCColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string SID { + get { + return ((string)(this[this.tableComponent_Reel_Print_Information.SIDColumn])); + } + set { + this[this.tableComponent_Reel_Print_Information.SIDColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string PrintPosition { + get { + if (this.IsPrintPositionNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Print_Information.PrintPositionColumn])); + } + } + set { + this[this.tableComponent_Reel_Print_Information.PrintPositionColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public string Remark { + get { + if (this.IsRemarkNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableComponent_Reel_Print_Information.RemarkColumn])); + } + } + set { + this[this.tableComponent_Reel_Print_Information.RemarkColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public System.DateTime wdate { + get { + try { + return ((global::System.DateTime)(this[this.tableComponent_Reel_Print_Information.wdateColumn])); + } + catch (global::System.InvalidCastException e) { + throw new global::System.Data.StrongTypingException("\'Component_Reel_Print_Information\' 테이블의 \'wdate\' 열의 값이 DBNull입니다.", e); + } + } + set { + this[this.tableComponent_Reel_Print_Information.wdateColumn] = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsMCNull() { + return this.IsNull(this.tableComponent_Reel_Print_Information.MCColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetMCNull() { + this[this.tableComponent_Reel_Print_Information.MCColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsPrintPositionNull() { + return this.IsNull(this.tableComponent_Reel_Print_Information.PrintPositionColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetPrintPositionNull() { + this[this.tableComponent_Reel_Print_Information.PrintPositionColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IsRemarkNull() { + return this.IsNull(this.tableComponent_Reel_Print_Information.RemarkColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetRemarkNull() { + this[this.tableComponent_Reel_Print_Information.RemarkColumn] = global::System.Convert.DBNull; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool IswdateNull() { + return this.IsNull(this.tableComponent_Reel_Print_Information.wdateColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public void SetwdateNull() { + this[this.tableComponent_Reel_Print_Information.wdateColumn] = global::System.Convert.DBNull; + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class Component_Reel_SID_InformationRowChangeEvent : global::System.EventArgs { + + private Component_Reel_SID_InformationRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_InformationRowChangeEvent(Component_Reel_SID_InformationRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_InformationRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class Component_Reel_SID_ConvertRowChangeEvent : global::System.EventArgs { + + private Component_Reel_SID_ConvertRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_ConvertRowChangeEvent(Component_Reel_SID_ConvertRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_ConvertRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + + /// + ///Row event argument class + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public class Component_Reel_Print_InformationRowChangeEvent : global::System.EventArgs { + + private Component_Reel_Print_InformationRow eventRow; + + private global::System.Data.DataRowAction eventAction; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_Print_InformationRowChangeEvent(Component_Reel_Print_InformationRow row, global::System.Data.DataRowAction action) { + this.eventRow = row; + this.eventAction = action; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_Print_InformationRow Row { + get { + return this.eventRow; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public global::System.Data.DataRowAction Action { + get { + return this.eventAction; + } + } + } + } +} +namespace SIDConvInfoEditorII.DataSet1TableAdapters { + + + /// + ///Represents the connection and commands used to retrieve and save data. + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DataObjectAttribute(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + + ", Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public partial class Component_Reel_SID_InformationTableAdapter : global::System.ComponentModel.Component { + + private global::System.Data.SqlClient.SqlDataAdapter _adapter; + + private global::System.Data.SqlClient.SqlConnection _connection; + + private global::System.Data.SqlClient.SqlTransaction _transaction; + + private global::System.Data.SqlClient.SqlCommand[] _commandCollection; + + private bool _clearBeforeFill; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_InformationTableAdapter() { + this.ClearBeforeFill = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected internal global::System.Data.SqlClient.SqlDataAdapter Adapter { + get { + if ((this._adapter == null)) { + this.InitAdapter(); + } + return this._adapter; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlConnection Connection { + get { + if ((this._connection == null)) { + this.InitConnection(); + } + return this._connection; + } + set { + this._connection = value; + if ((this.Adapter.InsertCommand != null)) { + this.Adapter.InsertCommand.Connection = value; + } + if ((this.Adapter.DeleteCommand != null)) { + this.Adapter.DeleteCommand.Connection = value; + } + if ((this.Adapter.UpdateCommand != null)) { + this.Adapter.UpdateCommand.Connection = value; + } + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + if ((this.CommandCollection[i] != null)) { + ((global::System.Data.SqlClient.SqlCommand)(this.CommandCollection[i])).Connection = value; + } + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlTransaction Transaction { + get { + return this._transaction; + } + set { + this._transaction = value; + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + this.CommandCollection[i].Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.DeleteCommand != null))) { + this.Adapter.DeleteCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.InsertCommand != null))) { + this.Adapter.InsertCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.UpdateCommand != null))) { + this.Adapter.UpdateCommand.Transaction = this._transaction; + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected global::System.Data.SqlClient.SqlCommand[] CommandCollection { + get { + if ((this._commandCollection == null)) { + this.InitCommandCollection(); + } + return this._commandCollection; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool ClearBeforeFill { + get { + return this._clearBeforeFill; + } + set { + this._clearBeforeFill = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitAdapter() { + this._adapter = new global::System.Data.SqlClient.SqlDataAdapter(); + global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); + tableMapping.SourceTable = "Table"; + tableMapping.DataSetTable = "Component_Reel_SID_Information"; + tableMapping.ColumnMappings.Add("idx", "idx"); + tableMapping.ColumnMappings.Add("MC", "MC"); + tableMapping.ColumnMappings.Add("SID", "SID"); + tableMapping.ColumnMappings.Add("CustCode", "CustCode"); + tableMapping.ColumnMappings.Add("PartNo", "PartNo"); + tableMapping.ColumnMappings.Add("CustName", "CustName"); + tableMapping.ColumnMappings.Add("VenderName", "VenderName"); + tableMapping.ColumnMappings.Add("Remark", "Remark"); + tableMapping.ColumnMappings.Add("MFG", "MFG"); + tableMapping.ColumnMappings.Add("wdate", "wdate"); + tableMapping.ColumnMappings.Add("qtymax", "qtymax"); + tableMapping.ColumnMappings.Add("batch", "batch"); + tableMapping.ColumnMappings.Add("VenderLot", "VenderLot"); + tableMapping.ColumnMappings.Add("attach", "attach"); + this._adapter.TableMappings.Add(tableMapping); + this._adapter.DeleteCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.DeleteCommand.Connection = this.Connection; + this._adapter.DeleteCommand.CommandText = @"DELETE FROM [Component_Reel_SID_Information] WHERE (([idx] = @Original_idx) AND ((@IsNull_MC = 1 AND [MC] IS NULL) OR ([MC] = @Original_MC)) AND ([SID] = @Original_SID) AND ([CustCode] = @Original_CustCode) AND ([PartNo] = @Original_PartNo) AND ((@IsNull_CustName = 1 AND [CustName] IS NULL) OR ([CustName] = @Original_CustName)) AND ((@IsNull_VenderName = 1 AND [VenderName] IS NULL) OR ([VenderName] = @Original_VenderName)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_MFG = 1 AND [MFG] IS NULL) OR ([MFG] = @Original_MFG)) AND ((@IsNull_wdate = 1 AND [wdate] IS NULL) OR ([wdate] = @Original_wdate)) AND ((@IsNull_qtymax = 1 AND [qtymax] IS NULL) OR ([qtymax] = @Original_qtymax)) AND ((@IsNull_batch = 1 AND [batch] IS NULL) OR ([batch] = @Original_batch)) AND ((@IsNull_VenderLot = 1 AND [VenderLot] IS NULL) OR ([VenderLot] = @Original_VenderLot)) AND ((@IsNull_attach = 1 AND [attach] IS NULL) OR ([attach] = @Original_attach)))"; + this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_idx", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_MC", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_MC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_SID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CustCode", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PartNo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PartNo", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_CustName", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustName", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CustName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustName", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_VenderName", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderName", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_VenderName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderName", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Remark", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_MFG", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MFG", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_MFG", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MFG", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_wdate", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_qtymax", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "qtymax", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_qtymax", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "qtymax", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_batch", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "batch", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_batch", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "batch", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_VenderLot", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderLot", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_VenderLot", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderLot", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_attach", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "attach", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_attach", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "attach", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.InsertCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.InsertCommand.Connection = this.Connection; + this._adapter.InsertCommand.CommandText = @"INSERT INTO [Component_Reel_SID_Information] ([MC], [SID], [CustCode], [PartNo], [CustName], [VenderName], [Remark], [MFG], [wdate], [qtymax], [batch], [VenderLot], [attach]) VALUES (@MC, @SID, @CustCode, @PartNo, @CustName, @VenderName, @Remark, @MFG, @wdate, @qtymax, @batch, @VenderLot, @attach); +SELECT idx, MC, SID, CustCode, PartNo, CustName, VenderName, Remark, MFG, wdate, qtymax, batch, VenderLot, attach FROM Component_Reel_SID_Information WHERE (idx = SCOPE_IDENTITY()) ORDER BY SID"; + this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@MC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CustCode", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PartNo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PartNo", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CustName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustName", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@VenderName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderName", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@MFG", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MFG", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@qtymax", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "qtymax", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@batch", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "batch", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@VenderLot", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderLot", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@attach", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "attach", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.UpdateCommand.Connection = this.Connection; + this._adapter.UpdateCommand.CommandText = @"UPDATE [Component_Reel_SID_Information] SET [MC] = @MC, [SID] = @SID, [CustCode] = @CustCode, [PartNo] = @PartNo, [CustName] = @CustName, [VenderName] = @VenderName, [Remark] = @Remark, [MFG] = @MFG, [wdate] = @wdate, [qtymax] = @qtymax, [batch] = @batch, [VenderLot] = @VenderLot, [attach] = @attach WHERE (([idx] = @Original_idx) AND ((@IsNull_MC = 1 AND [MC] IS NULL) OR ([MC] = @Original_MC)) AND ([SID] = @Original_SID) AND ([CustCode] = @Original_CustCode) AND ([PartNo] = @Original_PartNo) AND ((@IsNull_CustName = 1 AND [CustName] IS NULL) OR ([CustName] = @Original_CustName)) AND ((@IsNull_VenderName = 1 AND [VenderName] IS NULL) OR ([VenderName] = @Original_VenderName)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_MFG = 1 AND [MFG] IS NULL) OR ([MFG] = @Original_MFG)) AND ((@IsNull_wdate = 1 AND [wdate] IS NULL) OR ([wdate] = @Original_wdate)) AND ((@IsNull_qtymax = 1 AND [qtymax] IS NULL) OR ([qtymax] = @Original_qtymax)) AND ((@IsNull_batch = 1 AND [batch] IS NULL) OR ([batch] = @Original_batch)) AND ((@IsNull_VenderLot = 1 AND [VenderLot] IS NULL) OR ([VenderLot] = @Original_VenderLot)) AND ((@IsNull_attach = 1 AND [attach] IS NULL) OR ([attach] = @Original_attach))); +SELECT idx, MC, SID, CustCode, PartNo, CustName, VenderName, Remark, MFG, wdate, qtymax, batch, VenderLot, attach FROM Component_Reel_SID_Information WHERE (idx = @idx) ORDER BY SID"; + this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@MC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CustCode", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PartNo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PartNo", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CustName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustName", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@VenderName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderName", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@MFG", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MFG", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@qtymax", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "qtymax", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@batch", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "batch", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@VenderLot", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderLot", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@attach", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "attach", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_idx", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_MC", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_MC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_SID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CustCode", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PartNo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PartNo", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_CustName", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustName", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CustName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustName", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_VenderName", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderName", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_VenderName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderName", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Remark", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_MFG", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MFG", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_MFG", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MFG", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_wdate", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_qtymax", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "qtymax", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_qtymax", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "qtymax", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_batch", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "batch", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_batch", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "batch", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_VenderLot", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderLot", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_VenderLot", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderLot", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_attach", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "attach", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_attach", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "attach", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@idx", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitConnection() { + this._connection = new global::System.Data.SqlClient.SqlConnection(); + this._connection.ConnectionString = global::SIDConvInfoEditorII.Properties.Settings.Default.cs; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitCommandCollection() { + this._commandCollection = new global::System.Data.SqlClient.SqlCommand[4]; + this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[0].Connection = this.Connection; + this._commandCollection[0].CommandText = "SELECT idx, MC, SID, CustCode, PartNo, CustName, VenderName, Remark, MFG, wdate," + + " qtymax, batch, VenderLot, attach\r\nFROM Component_Reel_SID_Information\r\nWHER" + + "E (MC = @mc)\r\nORDER BY SID"; + this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[0].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@mc", global::System.Data.SqlDbType.VarChar, 20, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[1] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[1].Connection = this.Connection; + this._commandCollection[1].CommandText = "SELECT COUNT(*) AS Expr1\r\nFROM Component_Reel_SID_Information\r\nWHERE (MC = " + + "@mc) AND (SID = @sid) AND (PartNo = @part) AND (CustCode = @cost)"; + this._commandCollection[1].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[1].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@mc", global::System.Data.SqlDbType.VarChar, 20, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[1].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@sid", global::System.Data.SqlDbType.VarChar, 50, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[1].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@part", global::System.Data.SqlDbType.VarChar, 100, global::System.Data.ParameterDirection.Input, 0, 0, "PartNo", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[1].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@cost", global::System.Data.SqlDbType.VarChar, 10, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[2] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[2].Connection = this.Connection; + this._commandCollection[2].CommandText = "SELECT COUNT(*) AS Expr1\r\nFROM Component_Reel_SID_Information\r\nWHERE (MC = " + + "@mc) AND (SID = @sid) AND (PartNo = @part) AND (CustCode = @cost) and venderlot " + + "= @vlot"; + this._commandCollection[2].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[2].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@mc", global::System.Data.SqlDbType.VarChar, 20, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[2].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@sid", global::System.Data.SqlDbType.VarChar, 50, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[2].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@part", global::System.Data.SqlDbType.VarChar, 100, global::System.Data.ParameterDirection.Input, 0, 0, "PartNo", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[2].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@cost", global::System.Data.SqlDbType.VarChar, 10, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[2].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@vlot", global::System.Data.SqlDbType.VarChar, 100, global::System.Data.ParameterDirection.Input, 0, 0, "VenderLot", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._commandCollection[3] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[3].Connection = this.Connection; + this._commandCollection[3].CommandText = "DELETE FROM Component_Reel_SID_Information\r\nWHERE (MC = @mc)"; + this._commandCollection[3].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[3].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@mc", global::System.Data.SqlDbType.VarChar, 20, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] + public virtual int Fill(DataSet1.Component_Reel_SID_InformationDataTable dataTable, string mc) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((mc == null)) { + this.Adapter.SelectCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(mc)); + } + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] + public virtual DataSet1.Component_Reel_SID_InformationDataTable GetData(string mc) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((mc == null)) { + this.Adapter.SelectCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(mc)); + } + DataSet1.Component_Reel_SID_InformationDataTable dataTable = new DataSet1.Component_Reel_SID_InformationDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1.Component_Reel_SID_InformationDataTable dataTable) { + return this.Adapter.Update(dataTable); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1 dataSet) { + return this.Adapter.Update(dataSet, "Component_Reel_SID_Information"); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow dataRow) { + return this.Adapter.Update(new global::System.Data.DataRow[] { + dataRow}); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow[] dataRows) { + return this.Adapter.Update(dataRows); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, true)] + public virtual int Delete(int Original_idx, string Original_MC, string Original_SID, string Original_CustCode, string Original_PartNo, string Original_CustName, string Original_VenderName, string Original_Remark, string Original_MFG, global::System.Nullable Original_wdate, global::System.Nullable Original_qtymax, string Original_batch, string Original_VenderLot, string Original_attach) { + this.Adapter.DeleteCommand.Parameters[0].Value = ((int)(Original_idx)); + if ((Original_MC == null)) { + this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[2].Value = ((string)(Original_MC)); + } + if ((Original_SID == null)) { + throw new global::System.ArgumentNullException("Original_SID"); + } + else { + this.Adapter.DeleteCommand.Parameters[3].Value = ((string)(Original_SID)); + } + if ((Original_CustCode == null)) { + throw new global::System.ArgumentNullException("Original_CustCode"); + } + else { + this.Adapter.DeleteCommand.Parameters[4].Value = ((string)(Original_CustCode)); + } + if ((Original_PartNo == null)) { + throw new global::System.ArgumentNullException("Original_PartNo"); + } + else { + this.Adapter.DeleteCommand.Parameters[5].Value = ((string)(Original_PartNo)); + } + if ((Original_CustName == null)) { + this.Adapter.DeleteCommand.Parameters[6].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[7].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[6].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[7].Value = ((string)(Original_CustName)); + } + if ((Original_VenderName == null)) { + this.Adapter.DeleteCommand.Parameters[8].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[9].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[8].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[9].Value = ((string)(Original_VenderName)); + } + if ((Original_Remark == null)) { + this.Adapter.DeleteCommand.Parameters[10].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[11].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[10].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[11].Value = ((string)(Original_Remark)); + } + if ((Original_MFG == null)) { + this.Adapter.DeleteCommand.Parameters[12].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[13].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[12].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[13].Value = ((string)(Original_MFG)); + } + if ((Original_wdate.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[14].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[15].Value = ((System.DateTime)(Original_wdate.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[14].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[15].Value = global::System.DBNull.Value; + } + if ((Original_qtymax.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[16].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[17].Value = ((int)(Original_qtymax.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[16].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[17].Value = global::System.DBNull.Value; + } + if ((Original_batch == null)) { + this.Adapter.DeleteCommand.Parameters[18].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[19].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[18].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[19].Value = ((string)(Original_batch)); + } + if ((Original_VenderLot == null)) { + this.Adapter.DeleteCommand.Parameters[20].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[21].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[20].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[21].Value = ((string)(Original_VenderLot)); + } + if ((Original_attach == null)) { + this.Adapter.DeleteCommand.Parameters[22].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[23].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[22].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[23].Value = ((string)(Original_attach)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; + if (((this.Adapter.DeleteCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.DeleteCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.DeleteCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.DeleteCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] + public virtual int Insert(string MC, string SID, string CustCode, string PartNo, string CustName, string VenderName, string Remark, string MFG, global::System.Nullable wdate, global::System.Nullable qtymax, string batch, string VenderLot, string attach) { + if ((MC == null)) { + this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[0].Value = ((string)(MC)); + } + if ((SID == null)) { + throw new global::System.ArgumentNullException("SID"); + } + else { + this.Adapter.InsertCommand.Parameters[1].Value = ((string)(SID)); + } + if ((CustCode == null)) { + throw new global::System.ArgumentNullException("CustCode"); + } + else { + this.Adapter.InsertCommand.Parameters[2].Value = ((string)(CustCode)); + } + if ((PartNo == null)) { + throw new global::System.ArgumentNullException("PartNo"); + } + else { + this.Adapter.InsertCommand.Parameters[3].Value = ((string)(PartNo)); + } + if ((CustName == null)) { + this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[4].Value = ((string)(CustName)); + } + if ((VenderName == null)) { + this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[5].Value = ((string)(VenderName)); + } + if ((Remark == null)) { + this.Adapter.InsertCommand.Parameters[6].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[6].Value = ((string)(Remark)); + } + if ((MFG == null)) { + this.Adapter.InsertCommand.Parameters[7].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[7].Value = ((string)(MFG)); + } + if ((wdate.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[8].Value = ((System.DateTime)(wdate.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[8].Value = global::System.DBNull.Value; + } + if ((qtymax.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[9].Value = ((int)(qtymax.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[9].Value = global::System.DBNull.Value; + } + if ((batch == null)) { + this.Adapter.InsertCommand.Parameters[10].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[10].Value = ((string)(batch)); + } + if ((VenderLot == null)) { + this.Adapter.InsertCommand.Parameters[11].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[11].Value = ((string)(VenderLot)); + } + if ((attach == null)) { + this.Adapter.InsertCommand.Parameters[12].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[12].Value = ((string)(attach)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; + if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.InsertCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.InsertCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update( + string MC, + string SID, + string CustCode, + string PartNo, + string CustName, + string VenderName, + string Remark, + string MFG, + global::System.Nullable wdate, + global::System.Nullable qtymax, + string batch, + string VenderLot, + string attach, + int Original_idx, + string Original_MC, + string Original_SID, + string Original_CustCode, + string Original_PartNo, + string Original_CustName, + string Original_VenderName, + string Original_Remark, + string Original_MFG, + global::System.Nullable Original_wdate, + global::System.Nullable Original_qtymax, + string Original_batch, + string Original_VenderLot, + string Original_attach, + int idx) { + if ((MC == null)) { + this.Adapter.UpdateCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[0].Value = ((string)(MC)); + } + if ((SID == null)) { + throw new global::System.ArgumentNullException("SID"); + } + else { + this.Adapter.UpdateCommand.Parameters[1].Value = ((string)(SID)); + } + if ((CustCode == null)) { + throw new global::System.ArgumentNullException("CustCode"); + } + else { + this.Adapter.UpdateCommand.Parameters[2].Value = ((string)(CustCode)); + } + if ((PartNo == null)) { + throw new global::System.ArgumentNullException("PartNo"); + } + else { + this.Adapter.UpdateCommand.Parameters[3].Value = ((string)(PartNo)); + } + if ((CustName == null)) { + this.Adapter.UpdateCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[4].Value = ((string)(CustName)); + } + if ((VenderName == null)) { + this.Adapter.UpdateCommand.Parameters[5].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[5].Value = ((string)(VenderName)); + } + if ((Remark == null)) { + this.Adapter.UpdateCommand.Parameters[6].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[6].Value = ((string)(Remark)); + } + if ((MFG == null)) { + this.Adapter.UpdateCommand.Parameters[7].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[7].Value = ((string)(MFG)); + } + if ((wdate.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[8].Value = ((System.DateTime)(wdate.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[8].Value = global::System.DBNull.Value; + } + if ((qtymax.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[9].Value = ((int)(qtymax.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[9].Value = global::System.DBNull.Value; + } + if ((batch == null)) { + this.Adapter.UpdateCommand.Parameters[10].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[10].Value = ((string)(batch)); + } + if ((VenderLot == null)) { + this.Adapter.UpdateCommand.Parameters[11].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[11].Value = ((string)(VenderLot)); + } + if ((attach == null)) { + this.Adapter.UpdateCommand.Parameters[12].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[12].Value = ((string)(attach)); + } + this.Adapter.UpdateCommand.Parameters[13].Value = ((int)(Original_idx)); + if ((Original_MC == null)) { + this.Adapter.UpdateCommand.Parameters[14].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[15].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[14].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[15].Value = ((string)(Original_MC)); + } + if ((Original_SID == null)) { + throw new global::System.ArgumentNullException("Original_SID"); + } + else { + this.Adapter.UpdateCommand.Parameters[16].Value = ((string)(Original_SID)); + } + if ((Original_CustCode == null)) { + throw new global::System.ArgumentNullException("Original_CustCode"); + } + else { + this.Adapter.UpdateCommand.Parameters[17].Value = ((string)(Original_CustCode)); + } + if ((Original_PartNo == null)) { + throw new global::System.ArgumentNullException("Original_PartNo"); + } + else { + this.Adapter.UpdateCommand.Parameters[18].Value = ((string)(Original_PartNo)); + } + if ((Original_CustName == null)) { + this.Adapter.UpdateCommand.Parameters[19].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[20].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[19].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[20].Value = ((string)(Original_CustName)); + } + if ((Original_VenderName == null)) { + this.Adapter.UpdateCommand.Parameters[21].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[22].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[21].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[22].Value = ((string)(Original_VenderName)); + } + if ((Original_Remark == null)) { + this.Adapter.UpdateCommand.Parameters[23].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[24].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[23].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[24].Value = ((string)(Original_Remark)); + } + if ((Original_MFG == null)) { + this.Adapter.UpdateCommand.Parameters[25].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[26].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[25].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[26].Value = ((string)(Original_MFG)); + } + if ((Original_wdate.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[27].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[28].Value = ((System.DateTime)(Original_wdate.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[27].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[28].Value = global::System.DBNull.Value; + } + if ((Original_qtymax.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[29].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[30].Value = ((int)(Original_qtymax.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[29].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[30].Value = global::System.DBNull.Value; + } + if ((Original_batch == null)) { + this.Adapter.UpdateCommand.Parameters[31].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[32].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[31].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[32].Value = ((string)(Original_batch)); + } + if ((Original_VenderLot == null)) { + this.Adapter.UpdateCommand.Parameters[33].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[34].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[33].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[34].Value = ((string)(Original_VenderLot)); + } + if ((Original_attach == null)) { + this.Adapter.UpdateCommand.Parameters[35].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[36].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[35].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[36].Value = ((string)(Original_attach)); + } + this.Adapter.UpdateCommand.Parameters[37].Value = ((int)(idx)); + global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; + if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.UpdateCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.UpdateCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update( + string MC, + string SID, + string CustCode, + string PartNo, + string CustName, + string VenderName, + string Remark, + string MFG, + global::System.Nullable wdate, + global::System.Nullable qtymax, + string batch, + string VenderLot, + string attach, + int Original_idx, + string Original_MC, + string Original_SID, + string Original_CustCode, + string Original_PartNo, + string Original_CustName, + string Original_VenderName, + string Original_Remark, + string Original_MFG, + global::System.Nullable Original_wdate, + global::System.Nullable Original_qtymax, + string Original_batch, + string Original_VenderLot, + string Original_attach) { + return this.Update(MC, SID, CustCode, PartNo, CustName, VenderName, Remark, MFG, wdate, qtymax, batch, VenderLot, attach, Original_idx, Original_MC, Original_SID, Original_CustCode, Original_PartNo, Original_CustName, Original_VenderName, Original_Remark, Original_MFG, Original_wdate, Original_qtymax, Original_batch, Original_VenderLot, Original_attach, Original_idx); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual global::System.Nullable CheckDataWithOutVLot(string mc, string sid, string part, string cost) { + global::System.Data.SqlClient.SqlCommand command = this.CommandCollection[1]; + if ((mc == null)) { + command.Parameters[0].Value = global::System.DBNull.Value; + } + else { + command.Parameters[0].Value = ((string)(mc)); + } + if ((sid == null)) { + throw new global::System.ArgumentNullException("sid"); + } + else { + command.Parameters[1].Value = ((string)(sid)); + } + if ((part == null)) { + throw new global::System.ArgumentNullException("part"); + } + else { + command.Parameters[2].Value = ((string)(part)); + } + if ((cost == null)) { + throw new global::System.ArgumentNullException("cost"); + } + else { + command.Parameters[3].Value = ((string)(cost)); + } + global::System.Data.ConnectionState previousConnectionState = command.Connection.State; + if (((command.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + command.Connection.Open(); + } + object returnValue; + try { + returnValue = command.ExecuteScalar(); + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + command.Connection.Close(); + } + } + if (((returnValue == null) + || (returnValue.GetType() == typeof(global::System.DBNull)))) { + return new global::System.Nullable(); + } + else { + return new global::System.Nullable(((int)(returnValue))); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual global::System.Nullable CheckDataWithVLot(string mc, string sid, string part, string cost, string vlot) { + global::System.Data.SqlClient.SqlCommand command = this.CommandCollection[2]; + if ((mc == null)) { + command.Parameters[0].Value = global::System.DBNull.Value; + } + else { + command.Parameters[0].Value = ((string)(mc)); + } + if ((sid == null)) { + throw new global::System.ArgumentNullException("sid"); + } + else { + command.Parameters[1].Value = ((string)(sid)); + } + if ((part == null)) { + throw new global::System.ArgumentNullException("part"); + } + else { + command.Parameters[2].Value = ((string)(part)); + } + if ((cost == null)) { + throw new global::System.ArgumentNullException("cost"); + } + else { + command.Parameters[3].Value = ((string)(cost)); + } + if ((vlot == null)) { + command.Parameters[4].Value = global::System.DBNull.Value; + } + else { + command.Parameters[4].Value = ((string)(vlot)); + } + global::System.Data.ConnectionState previousConnectionState = command.Connection.State; + if (((command.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + command.Connection.Open(); + } + object returnValue; + try { + returnValue = command.ExecuteScalar(); + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + command.Connection.Close(); + } + } + if (((returnValue == null) + || (returnValue.GetType() == typeof(global::System.DBNull)))) { + return new global::System.Nullable(); + } + else { + return new global::System.Nullable(((int)(returnValue))); + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int DeleteMC(string mc) { + global::System.Data.SqlClient.SqlCommand command = this.CommandCollection[3]; + if ((mc == null)) { + command.Parameters[0].Value = global::System.DBNull.Value; + } + else { + command.Parameters[0].Value = ((string)(mc)); + } + global::System.Data.ConnectionState previousConnectionState = command.Connection.State; + if (((command.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + command.Connection.Open(); + } + int returnValue; + try { + returnValue = command.ExecuteNonQuery(); + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + command.Connection.Close(); + } + } + return returnValue; + } + } + + /// + ///Represents the connection and commands used to retrieve and save data. + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DataObjectAttribute(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + + ", Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public partial class Component_Reel_SID_ConvertTableAdapter : global::System.ComponentModel.Component { + + private global::System.Data.SqlClient.SqlDataAdapter _adapter; + + private global::System.Data.SqlClient.SqlConnection _connection; + + private global::System.Data.SqlClient.SqlTransaction _transaction; + + private global::System.Data.SqlClient.SqlCommand[] _commandCollection; + + private bool _clearBeforeFill; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_SID_ConvertTableAdapter() { + this.ClearBeforeFill = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected internal global::System.Data.SqlClient.SqlDataAdapter Adapter { + get { + if ((this._adapter == null)) { + this.InitAdapter(); + } + return this._adapter; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlConnection Connection { + get { + if ((this._connection == null)) { + this.InitConnection(); + } + return this._connection; + } + set { + this._connection = value; + if ((this.Adapter.InsertCommand != null)) { + this.Adapter.InsertCommand.Connection = value; + } + if ((this.Adapter.DeleteCommand != null)) { + this.Adapter.DeleteCommand.Connection = value; + } + if ((this.Adapter.UpdateCommand != null)) { + this.Adapter.UpdateCommand.Connection = value; + } + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + if ((this.CommandCollection[i] != null)) { + ((global::System.Data.SqlClient.SqlCommand)(this.CommandCollection[i])).Connection = value; + } + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlTransaction Transaction { + get { + return this._transaction; + } + set { + this._transaction = value; + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + this.CommandCollection[i].Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.DeleteCommand != null))) { + this.Adapter.DeleteCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.InsertCommand != null))) { + this.Adapter.InsertCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.UpdateCommand != null))) { + this.Adapter.UpdateCommand.Transaction = this._transaction; + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected global::System.Data.SqlClient.SqlCommand[] CommandCollection { + get { + if ((this._commandCollection == null)) { + this.InitCommandCollection(); + } + return this._commandCollection; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool ClearBeforeFill { + get { + return this._clearBeforeFill; + } + set { + this._clearBeforeFill = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitAdapter() { + this._adapter = new global::System.Data.SqlClient.SqlDataAdapter(); + global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); + tableMapping.SourceTable = "Table"; + tableMapping.DataSetTable = "Component_Reel_SID_Convert"; + tableMapping.ColumnMappings.Add("idx", "idx"); + tableMapping.ColumnMappings.Add("MC", "MC"); + tableMapping.ColumnMappings.Add("Chk", "Chk"); + tableMapping.ColumnMappings.Add("SIDFrom", "SIDFrom"); + tableMapping.ColumnMappings.Add("SIDTo", "SIDTo"); + tableMapping.ColumnMappings.Add("Remark", "Remark"); + tableMapping.ColumnMappings.Add("wdate", "wdate"); + tableMapping.ColumnMappings.Add("CustCode", "CustCode"); + tableMapping.ColumnMappings.Add("PartNo", "PartNo"); + tableMapping.ColumnMappings.Add("CustName", "CustName"); + tableMapping.ColumnMappings.Add("VenderName", "VenderName"); + tableMapping.ColumnMappings.Add("VenderLot", "VenderLot"); + tableMapping.ColumnMappings.Add("PrintPosition", "PrintPosition"); + tableMapping.ColumnMappings.Add("MFG", "MFG"); + tableMapping.ColumnMappings.Add("qtymax", "qtymax"); + tableMapping.ColumnMappings.Add("batch", "batch"); + this._adapter.TableMappings.Add(tableMapping); + this._adapter.DeleteCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.DeleteCommand.Connection = this.Connection; + this._adapter.DeleteCommand.CommandText = @"DELETE FROM [Component_Reel_SID_Convert] WHERE (([idx] = @Original_idx) AND ((@IsNull_MC = 1 AND [MC] IS NULL) OR ([MC] = @Original_MC)) AND ((@IsNull_Chk = 1 AND [Chk] IS NULL) OR ([Chk] = @Original_Chk)) AND ((@IsNull_SIDFrom = 1 AND [SIDFrom] IS NULL) OR ([SIDFrom] = @Original_SIDFrom)) AND ((@IsNull_SIDTo = 1 AND [SIDTo] IS NULL) OR ([SIDTo] = @Original_SIDTo)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_wdate = 1 AND [wdate] IS NULL) OR ([wdate] = @Original_wdate)) AND ((@IsNull_CustCode = 1 AND [CustCode] IS NULL) OR ([CustCode] = @Original_CustCode)) AND ((@IsNull_PartNo = 1 AND [PartNo] IS NULL) OR ([PartNo] = @Original_PartNo)) AND ((@IsNull_CustName = 1 AND [CustName] IS NULL) OR ([CustName] = @Original_CustName)) AND ((@IsNull_VenderName = 1 AND [VenderName] IS NULL) OR ([VenderName] = @Original_VenderName)) AND ((@IsNull_VenderLot = 1 AND [VenderLot] IS NULL) OR ([VenderLot] = @Original_VenderLot)) AND ((@IsNull_PrintPosition = 1 AND [PrintPosition] IS NULL) OR ([PrintPosition] = @Original_PrintPosition)) AND ((@IsNull_MFG = 1 AND [MFG] IS NULL) OR ([MFG] = @Original_MFG)) AND ((@IsNull_qtymax = 1 AND [qtymax] IS NULL) OR ([qtymax] = @Original_qtymax)) AND ((@IsNull_batch = 1 AND [batch] IS NULL) OR ([batch] = @Original_batch)))"; + this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_idx", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_MC", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_MC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Chk", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Chk", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Chk", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Chk", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_SIDFrom", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDFrom", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_SIDFrom", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDFrom", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_SIDTo", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDTo", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_SIDTo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDTo", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Remark", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_wdate", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_CustCode", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CustCode", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_PartNo", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PartNo", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PartNo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PartNo", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_CustName", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustName", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CustName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustName", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_VenderName", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderName", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_VenderName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderName", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_VenderLot", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderLot", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_VenderLot", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderLot", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_PrintPosition", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PrintPosition", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PrintPosition", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PrintPosition", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_MFG", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MFG", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_MFG", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MFG", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_qtymax", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "qtymax", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_qtymax", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "qtymax", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_batch", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "batch", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_batch", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "batch", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.InsertCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.InsertCommand.Connection = this.Connection; + this._adapter.InsertCommand.CommandText = @"INSERT INTO [Component_Reel_SID_Convert] ([MC], [Chk], [SIDFrom], [SIDTo], [Remark], [wdate], [CustCode], [PartNo], [CustName], [VenderName], [VenderLot], [PrintPosition], [MFG], [qtymax], [batch]) VALUES (@MC, @Chk, @SIDFrom, @SIDTo, @Remark, @wdate, @CustCode, @PartNo, @CustName, @VenderName, @VenderLot, @PrintPosition, @MFG, @qtymax, @batch); +SELECT idx, MC, Chk, SIDFrom, SIDTo, Remark, wdate, CustCode, PartNo, CustName, VenderName, VenderLot, PrintPosition, MFG, qtymax, batch FROM Component_Reel_SID_Convert WHERE (idx = SCOPE_IDENTITY()) ORDER BY SIDFrom"; + this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@MC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Chk", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Chk", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SIDFrom", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDFrom", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SIDTo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDTo", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CustCode", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PartNo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PartNo", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CustName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustName", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@VenderName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderName", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@VenderLot", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderLot", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PrintPosition", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PrintPosition", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@MFG", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MFG", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@qtymax", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "qtymax", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@batch", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "batch", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.UpdateCommand.Connection = this.Connection; + this._adapter.UpdateCommand.CommandText = "UPDATE [Component_Reel_SID_Convert] SET [MC] = @MC, [Chk] = @Chk, [SIDFrom] = @SI" + + "DFrom, [SIDTo] = @SIDTo, [Remark] = @Remark, [wdate] = @wdate, [CustCode] = @Cus" + + "tCode, [PartNo] = @PartNo, [CustName] = @CustName, [VenderName] = @VenderName, [" + + "VenderLot] = @VenderLot, [PrintPosition] = @PrintPosition, [MFG] = @MFG, [qtymax" + + "] = @qtymax, [batch] = @batch WHERE (([idx] = @Original_idx) AND ((@IsNull_MC = " + + "1 AND [MC] IS NULL) OR ([MC] = @Original_MC)) AND ((@IsNull_Chk = 1 AND [Chk] IS" + + " NULL) OR ([Chk] = @Original_Chk)) AND ((@IsNull_SIDFrom = 1 AND [SIDFrom] IS NU" + + "LL) OR ([SIDFrom] = @Original_SIDFrom)) AND ((@IsNull_SIDTo = 1 AND [SIDTo] IS N" + + "ULL) OR ([SIDTo] = @Original_SIDTo)) AND ((@IsNull_Remark = 1 AND [Remark] IS NU" + + "LL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_wdate = 1 AND [wdate] IS NUL" + + "L) OR ([wdate] = @Original_wdate)) AND ((@IsNull_CustCode = 1 AND [CustCode] IS " + + "NULL) OR ([CustCode] = @Original_CustCode)) AND ((@IsNull_PartNo = 1 AND [PartNo" + + "] IS NULL) OR ([PartNo] = @Original_PartNo)) AND ((@IsNull_CustName = 1 AND [Cus" + + "tName] IS NULL) OR ([CustName] = @Original_CustName)) AND ((@IsNull_VenderName =" + + " 1 AND [VenderName] IS NULL) OR ([VenderName] = @Original_VenderName)) AND ((@Is" + + "Null_VenderLot = 1 AND [VenderLot] IS NULL) OR ([VenderLot] = @Original_VenderLo" + + "t)) AND ((@IsNull_PrintPosition = 1 AND [PrintPosition] IS NULL) OR ([PrintPosit" + + "ion] = @Original_PrintPosition)) AND ((@IsNull_MFG = 1 AND [MFG] IS NULL) OR ([M" + + "FG] = @Original_MFG)) AND ((@IsNull_qtymax = 1 AND [qtymax] IS NULL) OR ([qtymax" + + "] = @Original_qtymax)) AND ((@IsNull_batch = 1 AND [batch] IS NULL) OR ([batch] " + + "= @Original_batch)));\r\nSELECT idx, MC, Chk, SIDFrom, SIDTo, Remark, wdate, CustC" + + "ode, PartNo, CustName, VenderName, VenderLot, PrintPosition, MFG, qtymax, batch " + + "FROM Component_Reel_SID_Convert WHERE (idx = @idx) ORDER BY SIDFrom"; + this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@MC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Chk", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Chk", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SIDFrom", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDFrom", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SIDTo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDTo", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CustCode", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PartNo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PartNo", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CustName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustName", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@VenderName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderName", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@VenderLot", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderLot", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PrintPosition", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PrintPosition", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@MFG", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MFG", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@qtymax", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "qtymax", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@batch", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "batch", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_idx", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_MC", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_MC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Chk", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Chk", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Chk", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Chk", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_SIDFrom", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDFrom", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_SIDFrom", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDFrom", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_SIDTo", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDTo", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_SIDTo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SIDTo", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Remark", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_wdate", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_CustCode", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CustCode", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_PartNo", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PartNo", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PartNo", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PartNo", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_CustName", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustName", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CustName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustName", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_VenderName", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderName", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_VenderName", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderName", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_VenderLot", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderLot", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_VenderLot", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "VenderLot", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_PrintPosition", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PrintPosition", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PrintPosition", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PrintPosition", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_MFG", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MFG", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_MFG", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MFG", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_qtymax", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "qtymax", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_qtymax", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "qtymax", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_batch", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "batch", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_batch", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "batch", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@idx", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitConnection() { + this._connection = new global::System.Data.SqlClient.SqlConnection(); + this._connection.ConnectionString = global::SIDConvInfoEditorII.Properties.Settings.Default.cs; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitCommandCollection() { + this._commandCollection = new global::System.Data.SqlClient.SqlCommand[2]; + this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[0].Connection = this.Connection; + this._commandCollection[0].CommandText = "SELECT idx, MC, Chk, SIDFrom, SIDTo, Remark, wdate, CustCode, PartNo, CustName, " + + "VenderName, VenderLot, PrintPosition, MFG, qtymax, batch\r\nFROM Component_Ree" + + "l_SID_Convert\r\nORDER BY SIDFrom"; + this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[1] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[1].Connection = this.Connection; + this._commandCollection[1].CommandText = "DELETE FROM [Component_Reel_SID_Convert] "; + this._commandCollection[1].CommandType = global::System.Data.CommandType.Text; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] + public virtual int Fill(DataSet1.Component_Reel_SID_ConvertDataTable dataTable) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] + public virtual DataSet1.Component_Reel_SID_ConvertDataTable GetData() { + this.Adapter.SelectCommand = this.CommandCollection[0]; + DataSet1.Component_Reel_SID_ConvertDataTable dataTable = new DataSet1.Component_Reel_SID_ConvertDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1.Component_Reel_SID_ConvertDataTable dataTable) { + return this.Adapter.Update(dataTable); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1 dataSet) { + return this.Adapter.Update(dataSet, "Component_Reel_SID_Convert"); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow dataRow) { + return this.Adapter.Update(new global::System.Data.DataRow[] { + dataRow}); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow[] dataRows) { + return this.Adapter.Update(dataRows); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, true)] + public virtual int Delete( + int Original_idx, + string Original_MC, + global::System.Nullable Original_Chk, + string Original_SIDFrom, + string Original_SIDTo, + string Original_Remark, + global::System.Nullable Original_wdate, + string Original_CustCode, + string Original_PartNo, + string Original_CustName, + string Original_VenderName, + string Original_VenderLot, + string Original_PrintPosition, + string Original_MFG, + global::System.Nullable Original_qtymax, + string Original_batch) { + this.Adapter.DeleteCommand.Parameters[0].Value = ((int)(Original_idx)); + if ((Original_MC == null)) { + this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[2].Value = ((string)(Original_MC)); + } + if ((Original_Chk.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[3].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[4].Value = ((bool)(Original_Chk.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[3].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[4].Value = global::System.DBNull.Value; + } + if ((Original_SIDFrom == null)) { + this.Adapter.DeleteCommand.Parameters[5].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[6].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[5].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[6].Value = ((string)(Original_SIDFrom)); + } + if ((Original_SIDTo == null)) { + this.Adapter.DeleteCommand.Parameters[7].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[8].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[7].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[8].Value = ((string)(Original_SIDTo)); + } + if ((Original_Remark == null)) { + this.Adapter.DeleteCommand.Parameters[9].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[10].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[9].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[10].Value = ((string)(Original_Remark)); + } + if ((Original_wdate.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[11].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[12].Value = ((System.DateTime)(Original_wdate.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[11].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[12].Value = global::System.DBNull.Value; + } + if ((Original_CustCode == null)) { + this.Adapter.DeleteCommand.Parameters[13].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[14].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[13].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[14].Value = ((string)(Original_CustCode)); + } + if ((Original_PartNo == null)) { + this.Adapter.DeleteCommand.Parameters[15].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[16].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[15].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[16].Value = ((string)(Original_PartNo)); + } + if ((Original_CustName == null)) { + this.Adapter.DeleteCommand.Parameters[17].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[18].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[17].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[18].Value = ((string)(Original_CustName)); + } + if ((Original_VenderName == null)) { + this.Adapter.DeleteCommand.Parameters[19].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[20].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[19].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[20].Value = ((string)(Original_VenderName)); + } + if ((Original_VenderLot == null)) { + this.Adapter.DeleteCommand.Parameters[21].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[22].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[21].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[22].Value = ((string)(Original_VenderLot)); + } + if ((Original_PrintPosition == null)) { + this.Adapter.DeleteCommand.Parameters[23].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[24].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[23].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[24].Value = ((string)(Original_PrintPosition)); + } + if ((Original_MFG == null)) { + this.Adapter.DeleteCommand.Parameters[25].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[26].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[25].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[26].Value = ((string)(Original_MFG)); + } + if ((Original_qtymax.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[27].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[28].Value = ((int)(Original_qtymax.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[27].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[28].Value = global::System.DBNull.Value; + } + if ((Original_batch == null)) { + this.Adapter.DeleteCommand.Parameters[29].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[30].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[29].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[30].Value = ((string)(Original_batch)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; + if (((this.Adapter.DeleteCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.DeleteCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.DeleteCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.DeleteCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] + public virtual int Insert(string MC, global::System.Nullable Chk, string SIDFrom, string SIDTo, string Remark, global::System.Nullable wdate, string CustCode, string PartNo, string CustName, string VenderName, string VenderLot, string PrintPosition, string MFG, global::System.Nullable qtymax, string batch) { + if ((MC == null)) { + this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[0].Value = ((string)(MC)); + } + if ((Chk.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[1].Value = ((bool)(Chk.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; + } + if ((SIDFrom == null)) { + this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[2].Value = ((string)(SIDFrom)); + } + if ((SIDTo == null)) { + this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[3].Value = ((string)(SIDTo)); + } + if ((Remark == null)) { + this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[4].Value = ((string)(Remark)); + } + if ((wdate.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[5].Value = ((System.DateTime)(wdate.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; + } + if ((CustCode == null)) { + this.Adapter.InsertCommand.Parameters[6].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[6].Value = ((string)(CustCode)); + } + if ((PartNo == null)) { + this.Adapter.InsertCommand.Parameters[7].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[7].Value = ((string)(PartNo)); + } + if ((CustName == null)) { + this.Adapter.InsertCommand.Parameters[8].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[8].Value = ((string)(CustName)); + } + if ((VenderName == null)) { + this.Adapter.InsertCommand.Parameters[9].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[9].Value = ((string)(VenderName)); + } + if ((VenderLot == null)) { + this.Adapter.InsertCommand.Parameters[10].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[10].Value = ((string)(VenderLot)); + } + if ((PrintPosition == null)) { + this.Adapter.InsertCommand.Parameters[11].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[11].Value = ((string)(PrintPosition)); + } + if ((MFG == null)) { + this.Adapter.InsertCommand.Parameters[12].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[12].Value = ((string)(MFG)); + } + if ((qtymax.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[13].Value = ((int)(qtymax.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[13].Value = global::System.DBNull.Value; + } + if ((batch == null)) { + this.Adapter.InsertCommand.Parameters[14].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[14].Value = ((string)(batch)); + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; + if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.InsertCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.InsertCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update( + string MC, + global::System.Nullable Chk, + string SIDFrom, + string SIDTo, + string Remark, + global::System.Nullable wdate, + string CustCode, + string PartNo, + string CustName, + string VenderName, + string VenderLot, + string PrintPosition, + string MFG, + global::System.Nullable qtymax, + string batch, + int Original_idx, + string Original_MC, + global::System.Nullable Original_Chk, + string Original_SIDFrom, + string Original_SIDTo, + string Original_Remark, + global::System.Nullable Original_wdate, + string Original_CustCode, + string Original_PartNo, + string Original_CustName, + string Original_VenderName, + string Original_VenderLot, + string Original_PrintPosition, + string Original_MFG, + global::System.Nullable Original_qtymax, + string Original_batch, + int idx) { + if ((MC == null)) { + this.Adapter.UpdateCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[0].Value = ((string)(MC)); + } + if ((Chk.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[1].Value = ((bool)(Chk.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[1].Value = global::System.DBNull.Value; + } + if ((SIDFrom == null)) { + this.Adapter.UpdateCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[2].Value = ((string)(SIDFrom)); + } + if ((SIDTo == null)) { + this.Adapter.UpdateCommand.Parameters[3].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[3].Value = ((string)(SIDTo)); + } + if ((Remark == null)) { + this.Adapter.UpdateCommand.Parameters[4].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[4].Value = ((string)(Remark)); + } + if ((wdate.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[5].Value = ((System.DateTime)(wdate.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[5].Value = global::System.DBNull.Value; + } + if ((CustCode == null)) { + this.Adapter.UpdateCommand.Parameters[6].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[6].Value = ((string)(CustCode)); + } + if ((PartNo == null)) { + this.Adapter.UpdateCommand.Parameters[7].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[7].Value = ((string)(PartNo)); + } + if ((CustName == null)) { + this.Adapter.UpdateCommand.Parameters[8].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[8].Value = ((string)(CustName)); + } + if ((VenderName == null)) { + this.Adapter.UpdateCommand.Parameters[9].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[9].Value = ((string)(VenderName)); + } + if ((VenderLot == null)) { + this.Adapter.UpdateCommand.Parameters[10].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[10].Value = ((string)(VenderLot)); + } + if ((PrintPosition == null)) { + this.Adapter.UpdateCommand.Parameters[11].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[11].Value = ((string)(PrintPosition)); + } + if ((MFG == null)) { + this.Adapter.UpdateCommand.Parameters[12].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[12].Value = ((string)(MFG)); + } + if ((qtymax.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[13].Value = ((int)(qtymax.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[13].Value = global::System.DBNull.Value; + } + if ((batch == null)) { + this.Adapter.UpdateCommand.Parameters[14].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[14].Value = ((string)(batch)); + } + this.Adapter.UpdateCommand.Parameters[15].Value = ((int)(Original_idx)); + if ((Original_MC == null)) { + this.Adapter.UpdateCommand.Parameters[16].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[17].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[16].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[17].Value = ((string)(Original_MC)); + } + if ((Original_Chk.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[18].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[19].Value = ((bool)(Original_Chk.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[18].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[19].Value = global::System.DBNull.Value; + } + if ((Original_SIDFrom == null)) { + this.Adapter.UpdateCommand.Parameters[20].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[21].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[20].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[21].Value = ((string)(Original_SIDFrom)); + } + if ((Original_SIDTo == null)) { + this.Adapter.UpdateCommand.Parameters[22].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[23].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[22].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[23].Value = ((string)(Original_SIDTo)); + } + if ((Original_Remark == null)) { + this.Adapter.UpdateCommand.Parameters[24].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[25].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[24].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[25].Value = ((string)(Original_Remark)); + } + if ((Original_wdate.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[26].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[27].Value = ((System.DateTime)(Original_wdate.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[26].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[27].Value = global::System.DBNull.Value; + } + if ((Original_CustCode == null)) { + this.Adapter.UpdateCommand.Parameters[28].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[29].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[28].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[29].Value = ((string)(Original_CustCode)); + } + if ((Original_PartNo == null)) { + this.Adapter.UpdateCommand.Parameters[30].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[31].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[30].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[31].Value = ((string)(Original_PartNo)); + } + if ((Original_CustName == null)) { + this.Adapter.UpdateCommand.Parameters[32].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[33].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[32].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[33].Value = ((string)(Original_CustName)); + } + if ((Original_VenderName == null)) { + this.Adapter.UpdateCommand.Parameters[34].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[35].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[34].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[35].Value = ((string)(Original_VenderName)); + } + if ((Original_VenderLot == null)) { + this.Adapter.UpdateCommand.Parameters[36].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[37].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[36].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[37].Value = ((string)(Original_VenderLot)); + } + if ((Original_PrintPosition == null)) { + this.Adapter.UpdateCommand.Parameters[38].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[39].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[38].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[39].Value = ((string)(Original_PrintPosition)); + } + if ((Original_MFG == null)) { + this.Adapter.UpdateCommand.Parameters[40].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[41].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[40].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[41].Value = ((string)(Original_MFG)); + } + if ((Original_qtymax.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[42].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[43].Value = ((int)(Original_qtymax.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[42].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[43].Value = global::System.DBNull.Value; + } + if ((Original_batch == null)) { + this.Adapter.UpdateCommand.Parameters[44].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[45].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[44].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[45].Value = ((string)(Original_batch)); + } + this.Adapter.UpdateCommand.Parameters[46].Value = ((int)(idx)); + global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; + if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.UpdateCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.UpdateCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update( + string MC, + global::System.Nullable Chk, + string SIDFrom, + string SIDTo, + string Remark, + global::System.Nullable wdate, + string CustCode, + string PartNo, + string CustName, + string VenderName, + string VenderLot, + string PrintPosition, + string MFG, + global::System.Nullable qtymax, + string batch, + int Original_idx, + string Original_MC, + global::System.Nullable Original_Chk, + string Original_SIDFrom, + string Original_SIDTo, + string Original_Remark, + global::System.Nullable Original_wdate, + string Original_CustCode, + string Original_PartNo, + string Original_CustName, + string Original_VenderName, + string Original_VenderLot, + string Original_PrintPosition, + string Original_MFG, + global::System.Nullable Original_qtymax, + string Original_batch) { + return this.Update(MC, Chk, SIDFrom, SIDTo, Remark, wdate, CustCode, PartNo, CustName, VenderName, VenderLot, PrintPosition, MFG, qtymax, batch, Original_idx, Original_MC, Original_Chk, Original_SIDFrom, Original_SIDTo, Original_Remark, Original_wdate, Original_CustCode, Original_PartNo, Original_CustName, Original_VenderName, Original_VenderLot, Original_PrintPosition, Original_MFG, Original_qtymax, Original_batch, Original_idx); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, false)] + public virtual int DeleteAll() { + global::System.Data.SqlClient.SqlCommand command = this.CommandCollection[1]; + global::System.Data.ConnectionState previousConnectionState = command.Connection.State; + if (((command.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + command.Connection.Open(); + } + int returnValue; + try { + returnValue = command.ExecuteNonQuery(); + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + command.Connection.Close(); + } + } + return returnValue; + } + } + + /// + ///Represents the connection and commands used to retrieve and save data. + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DataObjectAttribute(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + + ", Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public partial class Component_Reel_Print_InformationTableAdapter : global::System.ComponentModel.Component { + + private global::System.Data.SqlClient.SqlDataAdapter _adapter; + + private global::System.Data.SqlClient.SqlConnection _connection; + + private global::System.Data.SqlClient.SqlTransaction _transaction; + + private global::System.Data.SqlClient.SqlCommand[] _commandCollection; + + private bool _clearBeforeFill; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public Component_Reel_Print_InformationTableAdapter() { + this.ClearBeforeFill = true; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected internal global::System.Data.SqlClient.SqlDataAdapter Adapter { + get { + if ((this._adapter == null)) { + this.InitAdapter(); + } + return this._adapter; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlConnection Connection { + get { + if ((this._connection == null)) { + this.InitConnection(); + } + return this._connection; + } + set { + this._connection = value; + if ((this.Adapter.InsertCommand != null)) { + this.Adapter.InsertCommand.Connection = value; + } + if ((this.Adapter.DeleteCommand != null)) { + this.Adapter.DeleteCommand.Connection = value; + } + if ((this.Adapter.UpdateCommand != null)) { + this.Adapter.UpdateCommand.Connection = value; + } + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + if ((this.CommandCollection[i] != null)) { + ((global::System.Data.SqlClient.SqlCommand)(this.CommandCollection[i])).Connection = value; + } + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal global::System.Data.SqlClient.SqlTransaction Transaction { + get { + return this._transaction; + } + set { + this._transaction = value; + for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { + this.CommandCollection[i].Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.DeleteCommand != null))) { + this.Adapter.DeleteCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.InsertCommand != null))) { + this.Adapter.InsertCommand.Transaction = this._transaction; + } + if (((this.Adapter != null) + && (this.Adapter.UpdateCommand != null))) { + this.Adapter.UpdateCommand.Transaction = this._transaction; + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected global::System.Data.SqlClient.SqlCommand[] CommandCollection { + get { + if ((this._commandCollection == null)) { + this.InitCommandCollection(); + } + return this._commandCollection; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool ClearBeforeFill { + get { + return this._clearBeforeFill; + } + set { + this._clearBeforeFill = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitAdapter() { + this._adapter = new global::System.Data.SqlClient.SqlDataAdapter(); + global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); + tableMapping.SourceTable = "Table"; + tableMapping.DataSetTable = "Component_Reel_Print_Information"; + tableMapping.ColumnMappings.Add("idx", "idx"); + tableMapping.ColumnMappings.Add("MC", "MC"); + tableMapping.ColumnMappings.Add("SID", "SID"); + tableMapping.ColumnMappings.Add("PrintPosition", "PrintPosition"); + tableMapping.ColumnMappings.Add("Remark", "Remark"); + tableMapping.ColumnMappings.Add("wdate", "wdate"); + this._adapter.TableMappings.Add(tableMapping); + this._adapter.DeleteCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.DeleteCommand.Connection = this.Connection; + this._adapter.DeleteCommand.CommandText = @"DELETE FROM [Component_Reel_Print_Information] WHERE (([idx] = @Original_idx) AND ((@IsNull_MC = 1 AND [MC] IS NULL) OR ([MC] = @Original_MC)) AND ([SID] = @Original_SID) AND ((@IsNull_PrintPosition = 1 AND [PrintPosition] IS NULL) OR ([PrintPosition] = @Original_PrintPosition)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_wdate = 1 AND [wdate] IS NULL) OR ([wdate] = @Original_wdate)))"; + this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_idx", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_MC", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_MC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_SID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_PrintPosition", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PrintPosition", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PrintPosition", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PrintPosition", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Remark", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_wdate", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.InsertCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.InsertCommand.Connection = this.Connection; + this._adapter.InsertCommand.CommandText = @"INSERT INTO [Component_Reel_Print_Information] ([MC], [SID], [PrintPosition], [Remark], [wdate]) VALUES (@MC, @SID, @PrintPosition, @Remark, @wdate); +SELECT idx, MC, SID, PrintPosition, Remark, wdate FROM Component_Reel_Print_Information WHERE (idx = SCOPE_IDENTITY())"; + this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@MC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PrintPosition", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PrintPosition", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand = new global::System.Data.SqlClient.SqlCommand(); + this._adapter.UpdateCommand.Connection = this.Connection; + this._adapter.UpdateCommand.CommandText = @"UPDATE [Component_Reel_Print_Information] SET [MC] = @MC, [SID] = @SID, [PrintPosition] = @PrintPosition, [Remark] = @Remark, [wdate] = @wdate WHERE (([idx] = @Original_idx) AND ((@IsNull_MC = 1 AND [MC] IS NULL) OR ([MC] = @Original_MC)) AND ([SID] = @Original_SID) AND ((@IsNull_PrintPosition = 1 AND [PrintPosition] IS NULL) OR ([PrintPosition] = @Original_PrintPosition)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_wdate = 1 AND [wdate] IS NULL) OR ([wdate] = @Original_wdate))); +SELECT idx, MC, SID, PrintPosition, Remark, wdate FROM Component_Reel_Print_Information WHERE (idx = @idx)"; + this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@MC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@SID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@PrintPosition", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PrintPosition", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_idx", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_MC", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_MC", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_SID", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "SID", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_PrintPosition", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PrintPosition", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_PrintPosition", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "PrintPosition", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Remark", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Remark", global::System.Data.SqlDbType.VarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Remark", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_wdate", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_wdate", global::System.Data.SqlDbType.DateTime, 0, global::System.Data.ParameterDirection.Input, 0, 0, "wdate", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@idx", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 0, 0, "idx", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitConnection() { + this._connection = new global::System.Data.SqlClient.SqlConnection(); + this._connection.ConnectionString = global::SIDConvInfoEditorII.Properties.Settings.Default.cs; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private void InitCommandCollection() { + this._commandCollection = new global::System.Data.SqlClient.SqlCommand[1]; + this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); + this._commandCollection[0].Connection = this.Connection; + this._commandCollection[0].CommandText = "select *\r\nfrom Component_Reel_Print_Information\r\nwhere MC = @mc"; + this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; + this._commandCollection[0].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@mc", global::System.Data.SqlDbType.VarChar, 20, global::System.Data.ParameterDirection.Input, 0, 0, "MC", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] + public virtual int Fill(DataSet1.Component_Reel_Print_InformationDataTable dataTable, string mc) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((mc == null)) { + this.Adapter.SelectCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(mc)); + } + if ((this.ClearBeforeFill == true)) { + dataTable.Clear(); + } + int returnValue = this.Adapter.Fill(dataTable); + return returnValue; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] + public virtual DataSet1.Component_Reel_Print_InformationDataTable GetData(string mc) { + this.Adapter.SelectCommand = this.CommandCollection[0]; + if ((mc == null)) { + this.Adapter.SelectCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.SelectCommand.Parameters[0].Value = ((string)(mc)); + } + DataSet1.Component_Reel_Print_InformationDataTable dataTable = new DataSet1.Component_Reel_Print_InformationDataTable(); + this.Adapter.Fill(dataTable); + return dataTable; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1.Component_Reel_Print_InformationDataTable dataTable) { + return this.Adapter.Update(dataTable); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(DataSet1 dataSet) { + return this.Adapter.Update(dataSet, "Component_Reel_Print_Information"); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow dataRow) { + return this.Adapter.Update(new global::System.Data.DataRow[] { + dataRow}); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + public virtual int Update(global::System.Data.DataRow[] dataRows) { + return this.Adapter.Update(dataRows); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, true)] + public virtual int Delete(int Original_idx, string Original_MC, string Original_SID, string Original_PrintPosition, string Original_Remark, global::System.Nullable Original_wdate) { + this.Adapter.DeleteCommand.Parameters[0].Value = ((int)(Original_idx)); + if ((Original_MC == null)) { + this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[2].Value = ((string)(Original_MC)); + } + if ((Original_SID == null)) { + throw new global::System.ArgumentNullException("Original_SID"); + } + else { + this.Adapter.DeleteCommand.Parameters[3].Value = ((string)(Original_SID)); + } + if ((Original_PrintPosition == null)) { + this.Adapter.DeleteCommand.Parameters[4].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[5].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[4].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[5].Value = ((string)(Original_PrintPosition)); + } + if ((Original_Remark == null)) { + this.Adapter.DeleteCommand.Parameters[6].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[7].Value = global::System.DBNull.Value; + } + else { + this.Adapter.DeleteCommand.Parameters[6].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[7].Value = ((string)(Original_Remark)); + } + if ((Original_wdate.HasValue == true)) { + this.Adapter.DeleteCommand.Parameters[8].Value = ((object)(0)); + this.Adapter.DeleteCommand.Parameters[9].Value = ((System.DateTime)(Original_wdate.Value)); + } + else { + this.Adapter.DeleteCommand.Parameters[8].Value = ((object)(1)); + this.Adapter.DeleteCommand.Parameters[9].Value = global::System.DBNull.Value; + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; + if (((this.Adapter.DeleteCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.DeleteCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.DeleteCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.DeleteCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] + public virtual int Insert(string MC, string SID, string PrintPosition, string Remark, global::System.Nullable wdate) { + if ((MC == null)) { + this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[0].Value = ((string)(MC)); + } + if ((SID == null)) { + throw new global::System.ArgumentNullException("SID"); + } + else { + this.Adapter.InsertCommand.Parameters[1].Value = ((string)(SID)); + } + if ((PrintPosition == null)) { + this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[2].Value = ((string)(PrintPosition)); + } + if ((Remark == null)) { + this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; + } + else { + this.Adapter.InsertCommand.Parameters[3].Value = ((string)(Remark)); + } + if ((wdate.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[4].Value = ((System.DateTime)(wdate.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; + } + global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; + if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.InsertCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.InsertCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update(string MC, string SID, string PrintPosition, string Remark, global::System.Nullable wdate, int Original_idx, string Original_MC, string Original_SID, string Original_PrintPosition, string Original_Remark, global::System.Nullable Original_wdate, int idx) { + if ((MC == null)) { + this.Adapter.UpdateCommand.Parameters[0].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[0].Value = ((string)(MC)); + } + if ((SID == null)) { + throw new global::System.ArgumentNullException("SID"); + } + else { + this.Adapter.UpdateCommand.Parameters[1].Value = ((string)(SID)); + } + if ((PrintPosition == null)) { + this.Adapter.UpdateCommand.Parameters[2].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[2].Value = ((string)(PrintPosition)); + } + if ((Remark == null)) { + this.Adapter.UpdateCommand.Parameters[3].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[3].Value = ((string)(Remark)); + } + if ((wdate.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[4].Value = ((System.DateTime)(wdate.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[4].Value = global::System.DBNull.Value; + } + this.Adapter.UpdateCommand.Parameters[5].Value = ((int)(Original_idx)); + if ((Original_MC == null)) { + this.Adapter.UpdateCommand.Parameters[6].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[7].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[6].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[7].Value = ((string)(Original_MC)); + } + if ((Original_SID == null)) { + throw new global::System.ArgumentNullException("Original_SID"); + } + else { + this.Adapter.UpdateCommand.Parameters[8].Value = ((string)(Original_SID)); + } + if ((Original_PrintPosition == null)) { + this.Adapter.UpdateCommand.Parameters[9].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[10].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[9].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[10].Value = ((string)(Original_PrintPosition)); + } + if ((Original_Remark == null)) { + this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[12].Value = global::System.DBNull.Value; + } + else { + this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[12].Value = ((string)(Original_Remark)); + } + if ((Original_wdate.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[13].Value = ((object)(0)); + this.Adapter.UpdateCommand.Parameters[14].Value = ((System.DateTime)(Original_wdate.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[13].Value = ((object)(1)); + this.Adapter.UpdateCommand.Parameters[14].Value = global::System.DBNull.Value; + } + this.Adapter.UpdateCommand.Parameters[15].Value = ((int)(idx)); + global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; + if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) + != global::System.Data.ConnectionState.Open)) { + this.Adapter.UpdateCommand.Connection.Open(); + } + try { + int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery(); + return returnValue; + } + finally { + if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { + this.Adapter.UpdateCommand.Connection.Close(); + } + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update(string MC, string SID, string PrintPosition, string Remark, global::System.Nullable wdate, int Original_idx, string Original_MC, string Original_SID, string Original_PrintPosition, string Original_Remark, global::System.Nullable Original_wdate) { + return this.Update(MC, SID, PrintPosition, Remark, wdate, Original_idx, Original_MC, Original_SID, Original_PrintPosition, Original_Remark, Original_wdate, Original_idx); + } + } + + /// + ///TableAdapterManager is used to coordinate TableAdapters in the dataset to enable Hierarchical Update scenarios + /// + [global::System.ComponentModel.DesignerCategoryAttribute("code")] + [global::System.ComponentModel.ToolboxItem(true)] + [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterManagerDesigner, Microsoft.VSD" + + "esigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapterManager")] + public partial class TableAdapterManager : global::System.ComponentModel.Component { + + private UpdateOrderOption _updateOrder; + + private Component_Reel_SID_InformationTableAdapter _component_Reel_SID_InformationTableAdapter; + + private Component_Reel_SID_ConvertTableAdapter _component_Reel_SID_ConvertTableAdapter; + + private Component_Reel_Print_InformationTableAdapter _component_Reel_Print_InformationTableAdapter; + + private bool _backupDataSetBeforeUpdate; + + private global::System.Data.IDbConnection _connection; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public UpdateOrderOption UpdateOrder { + get { + return this._updateOrder; + } + set { + this._updateOrder = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.EditorAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterManagerPropertyEditor, Microso" + + "ft.VSDesigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3" + + "a", "System.Drawing.Design.UITypeEditor")] + public Component_Reel_SID_InformationTableAdapter Component_Reel_SID_InformationTableAdapter { + get { + return this._component_Reel_SID_InformationTableAdapter; + } + set { + this._component_Reel_SID_InformationTableAdapter = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.EditorAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterManagerPropertyEditor, Microso" + + "ft.VSDesigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3" + + "a", "System.Drawing.Design.UITypeEditor")] + public Component_Reel_SID_ConvertTableAdapter Component_Reel_SID_ConvertTableAdapter { + get { + return this._component_Reel_SID_ConvertTableAdapter; + } + set { + this._component_Reel_SID_ConvertTableAdapter = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.EditorAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterManagerPropertyEditor, Microso" + + "ft.VSDesigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3" + + "a", "System.Drawing.Design.UITypeEditor")] + public Component_Reel_Print_InformationTableAdapter Component_Reel_Print_InformationTableAdapter { + get { + return this._component_Reel_Print_InformationTableAdapter; + } + set { + this._component_Reel_Print_InformationTableAdapter = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public bool BackupDataSetBeforeUpdate { + get { + return this._backupDataSetBeforeUpdate; + } + set { + this._backupDataSetBeforeUpdate = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public global::System.Data.IDbConnection Connection { + get { + if ((this._connection != null)) { + return this._connection; + } + if (((this._component_Reel_SID_InformationTableAdapter != null) + && (this._component_Reel_SID_InformationTableAdapter.Connection != null))) { + return this._component_Reel_SID_InformationTableAdapter.Connection; + } + if (((this._component_Reel_SID_ConvertTableAdapter != null) + && (this._component_Reel_SID_ConvertTableAdapter.Connection != null))) { + return this._component_Reel_SID_ConvertTableAdapter.Connection; + } + if (((this._component_Reel_Print_InformationTableAdapter != null) + && (this._component_Reel_Print_InformationTableAdapter.Connection != null))) { + return this._component_Reel_Print_InformationTableAdapter.Connection; + } + return null; + } + set { + this._connection = value; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + [global::System.ComponentModel.Browsable(false)] + public int TableAdapterInstanceCount { + get { + int count = 0; + if ((this._component_Reel_SID_InformationTableAdapter != null)) { + count = (count + 1); + } + if ((this._component_Reel_SID_ConvertTableAdapter != null)) { + count = (count + 1); + } + if ((this._component_Reel_Print_InformationTableAdapter != null)) { + count = (count + 1); + } + return count; + } + } + + /// + ///Update rows in top-down order. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private int UpdateUpdatedRows(DataSet1 dataSet, global::System.Collections.Generic.List allChangedRows, global::System.Collections.Generic.List allAddedRows) { + int result = 0; + if ((this._component_Reel_SID_InformationTableAdapter != null)) { + global::System.Data.DataRow[] updatedRows = dataSet.Component_Reel_SID_Information.Select(null, null, global::System.Data.DataViewRowState.ModifiedCurrent); + updatedRows = this.GetRealUpdatedRows(updatedRows, allAddedRows); + if (((updatedRows != null) + && (0 < updatedRows.Length))) { + result = (result + this._component_Reel_SID_InformationTableAdapter.Update(updatedRows)); + allChangedRows.AddRange(updatedRows); + } + } + if ((this._component_Reel_SID_ConvertTableAdapter != null)) { + global::System.Data.DataRow[] updatedRows = dataSet.Component_Reel_SID_Convert.Select(null, null, global::System.Data.DataViewRowState.ModifiedCurrent); + updatedRows = this.GetRealUpdatedRows(updatedRows, allAddedRows); + if (((updatedRows != null) + && (0 < updatedRows.Length))) { + result = (result + this._component_Reel_SID_ConvertTableAdapter.Update(updatedRows)); + allChangedRows.AddRange(updatedRows); + } + } + if ((this._component_Reel_Print_InformationTableAdapter != null)) { + global::System.Data.DataRow[] updatedRows = dataSet.Component_Reel_Print_Information.Select(null, null, global::System.Data.DataViewRowState.ModifiedCurrent); + updatedRows = this.GetRealUpdatedRows(updatedRows, allAddedRows); + if (((updatedRows != null) + && (0 < updatedRows.Length))) { + result = (result + this._component_Reel_Print_InformationTableAdapter.Update(updatedRows)); + allChangedRows.AddRange(updatedRows); + } + } + return result; + } + + /// + ///Insert rows in top-down order. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private int UpdateInsertedRows(DataSet1 dataSet, global::System.Collections.Generic.List allAddedRows) { + int result = 0; + if ((this._component_Reel_SID_InformationTableAdapter != null)) { + global::System.Data.DataRow[] addedRows = dataSet.Component_Reel_SID_Information.Select(null, null, global::System.Data.DataViewRowState.Added); + if (((addedRows != null) + && (0 < addedRows.Length))) { + result = (result + this._component_Reel_SID_InformationTableAdapter.Update(addedRows)); + allAddedRows.AddRange(addedRows); + } + } + if ((this._component_Reel_SID_ConvertTableAdapter != null)) { + global::System.Data.DataRow[] addedRows = dataSet.Component_Reel_SID_Convert.Select(null, null, global::System.Data.DataViewRowState.Added); + if (((addedRows != null) + && (0 < addedRows.Length))) { + result = (result + this._component_Reel_SID_ConvertTableAdapter.Update(addedRows)); + allAddedRows.AddRange(addedRows); + } + } + if ((this._component_Reel_Print_InformationTableAdapter != null)) { + global::System.Data.DataRow[] addedRows = dataSet.Component_Reel_Print_Information.Select(null, null, global::System.Data.DataViewRowState.Added); + if (((addedRows != null) + && (0 < addedRows.Length))) { + result = (result + this._component_Reel_Print_InformationTableAdapter.Update(addedRows)); + allAddedRows.AddRange(addedRows); + } + } + return result; + } + + /// + ///Delete rows in bottom-up order. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private int UpdateDeletedRows(DataSet1 dataSet, global::System.Collections.Generic.List allChangedRows) { + int result = 0; + if ((this._component_Reel_Print_InformationTableAdapter != null)) { + global::System.Data.DataRow[] deletedRows = dataSet.Component_Reel_Print_Information.Select(null, null, global::System.Data.DataViewRowState.Deleted); + if (((deletedRows != null) + && (0 < deletedRows.Length))) { + result = (result + this._component_Reel_Print_InformationTableAdapter.Update(deletedRows)); + allChangedRows.AddRange(deletedRows); + } + } + if ((this._component_Reel_SID_ConvertTableAdapter != null)) { + global::System.Data.DataRow[] deletedRows = dataSet.Component_Reel_SID_Convert.Select(null, null, global::System.Data.DataViewRowState.Deleted); + if (((deletedRows != null) + && (0 < deletedRows.Length))) { + result = (result + this._component_Reel_SID_ConvertTableAdapter.Update(deletedRows)); + allChangedRows.AddRange(deletedRows); + } + } + if ((this._component_Reel_SID_InformationTableAdapter != null)) { + global::System.Data.DataRow[] deletedRows = dataSet.Component_Reel_SID_Information.Select(null, null, global::System.Data.DataViewRowState.Deleted); + if (((deletedRows != null) + && (0 < deletedRows.Length))) { + result = (result + this._component_Reel_SID_InformationTableAdapter.Update(deletedRows)); + allChangedRows.AddRange(deletedRows); + } + } + return result; + } + + /// + ///Remove inserted rows that become updated rows after calling TableAdapter.Update(inserted rows) first + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private global::System.Data.DataRow[] GetRealUpdatedRows(global::System.Data.DataRow[] updatedRows, global::System.Collections.Generic.List allAddedRows) { + if (((updatedRows == null) + || (updatedRows.Length < 1))) { + return updatedRows; + } + if (((allAddedRows == null) + || (allAddedRows.Count < 1))) { + return updatedRows; + } + global::System.Collections.Generic.List realUpdatedRows = new global::System.Collections.Generic.List(); + for (int i = 0; (i < updatedRows.Length); i = (i + 1)) { + global::System.Data.DataRow row = updatedRows[i]; + if ((allAddedRows.Contains(row) == false)) { + realUpdatedRows.Add(row); + } + } + return realUpdatedRows.ToArray(); + } + + /// + ///Update all changes to the dataset. + /// + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public virtual int UpdateAll(DataSet1 dataSet) { + if ((dataSet == null)) { + throw new global::System.ArgumentNullException("dataSet"); + } + if ((dataSet.HasChanges() == false)) { + return 0; + } + if (((this._component_Reel_SID_InformationTableAdapter != null) + && (this.MatchTableAdapterConnection(this._component_Reel_SID_InformationTableAdapter.Connection) == false))) { + throw new global::System.ArgumentException("TableAdapterManager에서 관리하는 모든 TableAdapter에는 동일한 연결 문자열을 사용해야 합니다."); + } + if (((this._component_Reel_SID_ConvertTableAdapter != null) + && (this.MatchTableAdapterConnection(this._component_Reel_SID_ConvertTableAdapter.Connection) == false))) { + throw new global::System.ArgumentException("TableAdapterManager에서 관리하는 모든 TableAdapter에는 동일한 연결 문자열을 사용해야 합니다."); + } + if (((this._component_Reel_Print_InformationTableAdapter != null) + && (this.MatchTableAdapterConnection(this._component_Reel_Print_InformationTableAdapter.Connection) == false))) { + throw new global::System.ArgumentException("TableAdapterManager에서 관리하는 모든 TableAdapter에는 동일한 연결 문자열을 사용해야 합니다."); + } + global::System.Data.IDbConnection workConnection = this.Connection; + if ((workConnection == null)) { + throw new global::System.ApplicationException("TableAdapterManager에 연결 정보가 없습니다. 각 TableAdapterManager TableAdapter 속성을 올바른 Tabl" + + "eAdapter 인스턴스로 설정하십시오."); + } + bool workConnOpened = false; + if (((workConnection.State & global::System.Data.ConnectionState.Broken) + == global::System.Data.ConnectionState.Broken)) { + workConnection.Close(); + } + if ((workConnection.State == global::System.Data.ConnectionState.Closed)) { + workConnection.Open(); + workConnOpened = true; + } + global::System.Data.IDbTransaction workTransaction = workConnection.BeginTransaction(); + if ((workTransaction == null)) { + throw new global::System.ApplicationException("트랜잭션을 시작할 수 없습니다. 현재 데이터 연결에서 트랜잭션이 지원되지 않거나 현재 상태에서 트랜잭션을 시작할 수 없습니다."); + } + global::System.Collections.Generic.List allChangedRows = new global::System.Collections.Generic.List(); + global::System.Collections.Generic.List allAddedRows = new global::System.Collections.Generic.List(); + global::System.Collections.Generic.List adaptersWithAcceptChangesDuringUpdate = new global::System.Collections.Generic.List(); + global::System.Collections.Generic.Dictionary revertConnections = new global::System.Collections.Generic.Dictionary(); + int result = 0; + global::System.Data.DataSet backupDataSet = null; + if (this.BackupDataSetBeforeUpdate) { + backupDataSet = new global::System.Data.DataSet(); + backupDataSet.Merge(dataSet); + } + try { + // ---- Prepare for update ----------- + // + if ((this._component_Reel_SID_InformationTableAdapter != null)) { + revertConnections.Add(this._component_Reel_SID_InformationTableAdapter, this._component_Reel_SID_InformationTableAdapter.Connection); + this._component_Reel_SID_InformationTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(workConnection)); + this._component_Reel_SID_InformationTableAdapter.Transaction = ((global::System.Data.SqlClient.SqlTransaction)(workTransaction)); + if (this._component_Reel_SID_InformationTableAdapter.Adapter.AcceptChangesDuringUpdate) { + this._component_Reel_SID_InformationTableAdapter.Adapter.AcceptChangesDuringUpdate = false; + adaptersWithAcceptChangesDuringUpdate.Add(this._component_Reel_SID_InformationTableAdapter.Adapter); + } + } + if ((this._component_Reel_SID_ConvertTableAdapter != null)) { + revertConnections.Add(this._component_Reel_SID_ConvertTableAdapter, this._component_Reel_SID_ConvertTableAdapter.Connection); + this._component_Reel_SID_ConvertTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(workConnection)); + this._component_Reel_SID_ConvertTableAdapter.Transaction = ((global::System.Data.SqlClient.SqlTransaction)(workTransaction)); + if (this._component_Reel_SID_ConvertTableAdapter.Adapter.AcceptChangesDuringUpdate) { + this._component_Reel_SID_ConvertTableAdapter.Adapter.AcceptChangesDuringUpdate = false; + adaptersWithAcceptChangesDuringUpdate.Add(this._component_Reel_SID_ConvertTableAdapter.Adapter); + } + } + if ((this._component_Reel_Print_InformationTableAdapter != null)) { + revertConnections.Add(this._component_Reel_Print_InformationTableAdapter, this._component_Reel_Print_InformationTableAdapter.Connection); + this._component_Reel_Print_InformationTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(workConnection)); + this._component_Reel_Print_InformationTableAdapter.Transaction = ((global::System.Data.SqlClient.SqlTransaction)(workTransaction)); + if (this._component_Reel_Print_InformationTableAdapter.Adapter.AcceptChangesDuringUpdate) { + this._component_Reel_Print_InformationTableAdapter.Adapter.AcceptChangesDuringUpdate = false; + adaptersWithAcceptChangesDuringUpdate.Add(this._component_Reel_Print_InformationTableAdapter.Adapter); + } + } + // + //---- Perform updates ----------- + // + if ((this.UpdateOrder == UpdateOrderOption.UpdateInsertDelete)) { + result = (result + this.UpdateUpdatedRows(dataSet, allChangedRows, allAddedRows)); + result = (result + this.UpdateInsertedRows(dataSet, allAddedRows)); + } + else { + result = (result + this.UpdateInsertedRows(dataSet, allAddedRows)); + result = (result + this.UpdateUpdatedRows(dataSet, allChangedRows, allAddedRows)); + } + result = (result + this.UpdateDeletedRows(dataSet, allChangedRows)); + // + //---- Commit updates ----------- + // + workTransaction.Commit(); + if ((0 < allAddedRows.Count)) { + global::System.Data.DataRow[] rows = new System.Data.DataRow[allAddedRows.Count]; + allAddedRows.CopyTo(rows); + for (int i = 0; (i < rows.Length); i = (i + 1)) { + global::System.Data.DataRow row = rows[i]; + row.AcceptChanges(); + } + } + if ((0 < allChangedRows.Count)) { + global::System.Data.DataRow[] rows = new System.Data.DataRow[allChangedRows.Count]; + allChangedRows.CopyTo(rows); + for (int i = 0; (i < rows.Length); i = (i + 1)) { + global::System.Data.DataRow row = rows[i]; + row.AcceptChanges(); + } + } + } + catch (global::System.Exception ex) { + workTransaction.Rollback(); + // ---- Restore the dataset ----------- + if (this.BackupDataSetBeforeUpdate) { + global::System.Diagnostics.Debug.Assert((backupDataSet != null)); + dataSet.Clear(); + dataSet.Merge(backupDataSet); + } + else { + if ((0 < allAddedRows.Count)) { + global::System.Data.DataRow[] rows = new System.Data.DataRow[allAddedRows.Count]; + allAddedRows.CopyTo(rows); + for (int i = 0; (i < rows.Length); i = (i + 1)) { + global::System.Data.DataRow row = rows[i]; + row.AcceptChanges(); + row.SetAdded(); + } + } + } + throw ex; + } + finally { + if (workConnOpened) { + workConnection.Close(); + } + if ((this._component_Reel_SID_InformationTableAdapter != null)) { + this._component_Reel_SID_InformationTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(revertConnections[this._component_Reel_SID_InformationTableAdapter])); + this._component_Reel_SID_InformationTableAdapter.Transaction = null; + } + if ((this._component_Reel_SID_ConvertTableAdapter != null)) { + this._component_Reel_SID_ConvertTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(revertConnections[this._component_Reel_SID_ConvertTableAdapter])); + this._component_Reel_SID_ConvertTableAdapter.Transaction = null; + } + if ((this._component_Reel_Print_InformationTableAdapter != null)) { + this._component_Reel_Print_InformationTableAdapter.Connection = ((global::System.Data.SqlClient.SqlConnection)(revertConnections[this._component_Reel_Print_InformationTableAdapter])); + this._component_Reel_Print_InformationTableAdapter.Transaction = null; + } + if ((0 < adaptersWithAcceptChangesDuringUpdate.Count)) { + global::System.Data.Common.DataAdapter[] adapters = new System.Data.Common.DataAdapter[adaptersWithAcceptChangesDuringUpdate.Count]; + adaptersWithAcceptChangesDuringUpdate.CopyTo(adapters); + for (int i = 0; (i < adapters.Length); i = (i + 1)) { + global::System.Data.Common.DataAdapter adapter = adapters[i]; + adapter.AcceptChangesDuringUpdate = true; + } + } + } + return result; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected virtual void SortSelfReferenceRows(global::System.Data.DataRow[] rows, global::System.Data.DataRelation relation, bool childFirst) { + global::System.Array.Sort(rows, new SelfReferenceComparer(relation, childFirst)); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + protected virtual bool MatchTableAdapterConnection(global::System.Data.IDbConnection inputConnection) { + if ((this._connection != null)) { + return true; + } + if (((this.Connection == null) + || (inputConnection == null))) { + return true; + } + if (string.Equals(this.Connection.ConnectionString, inputConnection.ConnectionString, global::System.StringComparison.Ordinal)) { + return true; + } + return false; + } + + /// + ///Update Order Option + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public enum UpdateOrderOption { + + InsertUpdateDelete = 0, + + UpdateInsertDelete = 1, + } + + /// + ///Used to sort self-referenced table's rows + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private class SelfReferenceComparer : object, global::System.Collections.Generic.IComparer { + + private global::System.Data.DataRelation _relation; + + private int _childFirst; + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + internal SelfReferenceComparer(global::System.Data.DataRelation relation, bool childFirst) { + this._relation = relation; + if (childFirst) { + this._childFirst = -1; + } + else { + this._childFirst = 1; + } + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + private global::System.Data.DataRow GetRoot(global::System.Data.DataRow row, out int distance) { + global::System.Diagnostics.Debug.Assert((row != null)); + global::System.Data.DataRow root = row; + distance = 0; + + global::System.Collections.Generic.IDictionary traversedRows = new global::System.Collections.Generic.Dictionary(); + traversedRows[row] = row; + + global::System.Data.DataRow parent = row.GetParentRow(this._relation, global::System.Data.DataRowVersion.Default); + for ( + ; ((parent != null) + && (traversedRows.ContainsKey(parent) == false)); + ) { + distance = (distance + 1); + root = parent; + traversedRows[parent] = parent; + parent = parent.GetParentRow(this._relation, global::System.Data.DataRowVersion.Default); + } + + if ((distance == 0)) { + traversedRows.Clear(); + traversedRows[row] = row; + parent = row.GetParentRow(this._relation, global::System.Data.DataRowVersion.Original); + for ( + ; ((parent != null) + && (traversedRows.ContainsKey(parent) == false)); + ) { + distance = (distance + 1); + root = parent; + traversedRows[parent] = parent; + parent = parent.GetParentRow(this._relation, global::System.Data.DataRowVersion.Original); + } + } + + return root; + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "17.0.0.0")] + public int Compare(global::System.Data.DataRow row1, global::System.Data.DataRow row2) { + if (object.ReferenceEquals(row1, row2)) { + return 0; + } + if ((row1 == null)) { + return -1; + } + if ((row2 == null)) { + return 1; + } + + int distance1 = 0; + global::System.Data.DataRow root1 = this.GetRoot(row1, out distance1); + + int distance2 = 0; + global::System.Data.DataRow root2 = this.GetRoot(row2, out distance2); + + if (object.ReferenceEquals(root1, root2)) { + return (this._childFirst * distance1.CompareTo(distance2)); + } + else { + global::System.Diagnostics.Debug.Assert(((root1.Table != null) + && (root2.Table != null))); + if ((root1.Table.Rows.IndexOf(root1) < root2.Table.Rows.IndexOf(root2))) { + return -1; + } + else { + return 1; + } + } + } + } + } +} + +#pragma warning restore 1591 \ No newline at end of file diff --git a/SID Information/DataSet1.xsc b/SID Information/DataSet1.xsc new file mode 100644 index 0000000..05b0199 --- /dev/null +++ b/SID Information/DataSet1.xsc @@ -0,0 +1,9 @@ + + + + + \ No newline at end of file diff --git a/SID Information/DataSet1.xsd b/SID Information/DataSet1.xsd new file mode 100644 index 0000000..7c6ccfe --- /dev/null +++ b/SID Information/DataSet1.xsd @@ -0,0 +1,669 @@ + + + + + + + + + + + + + + + DELETE FROM [Component_Reel_SID_Information] WHERE (([idx] = @Original_idx) AND ((@IsNull_MC = 1 AND [MC] IS NULL) OR ([MC] = @Original_MC)) AND ([SID] = @Original_SID) AND ([CustCode] = @Original_CustCode) AND ([PartNo] = @Original_PartNo) AND ((@IsNull_CustName = 1 AND [CustName] IS NULL) OR ([CustName] = @Original_CustName)) AND ((@IsNull_VenderName = 1 AND [VenderName] IS NULL) OR ([VenderName] = @Original_VenderName)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_MFG = 1 AND [MFG] IS NULL) OR ([MFG] = @Original_MFG)) AND ((@IsNull_wdate = 1 AND [wdate] IS NULL) OR ([wdate] = @Original_wdate)) AND ((@IsNull_qtymax = 1 AND [qtymax] IS NULL) OR ([qtymax] = @Original_qtymax)) AND ((@IsNull_batch = 1 AND [batch] IS NULL) OR ([batch] = @Original_batch)) AND ((@IsNull_VenderLot = 1 AND [VenderLot] IS NULL) OR ([VenderLot] = @Original_VenderLot)) AND ((@IsNull_attach = 1 AND [attach] IS NULL) OR ([attach] = @Original_attach))) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO [Component_Reel_SID_Information] ([MC], [SID], [CustCode], [PartNo], [CustName], [VenderName], [Remark], [MFG], [wdate], [qtymax], [batch], [VenderLot], [attach]) VALUES (@MC, @SID, @CustCode, @PartNo, @CustName, @VenderName, @Remark, @MFG, @wdate, @qtymax, @batch, @VenderLot, @attach); +SELECT idx, MC, SID, CustCode, PartNo, CustName, VenderName, Remark, MFG, wdate, qtymax, batch, VenderLot, attach FROM Component_Reel_SID_Information WHERE (idx = SCOPE_IDENTITY()) ORDER BY SID + + + + + + + + + + + + + + + + + + + + SELECT idx, MC, SID, CustCode, PartNo, CustName, VenderName, Remark, MFG, wdate, qtymax, batch, VenderLot, attach +FROM Component_Reel_SID_Information +WHERE (MC = @mc) +ORDER BY SID + + + + + + + + UPDATE [Component_Reel_SID_Information] SET [MC] = @MC, [SID] = @SID, [CustCode] = @CustCode, [PartNo] = @PartNo, [CustName] = @CustName, [VenderName] = @VenderName, [Remark] = @Remark, [MFG] = @MFG, [wdate] = @wdate, [qtymax] = @qtymax, [batch] = @batch, [VenderLot] = @VenderLot, [attach] = @attach WHERE (([idx] = @Original_idx) AND ((@IsNull_MC = 1 AND [MC] IS NULL) OR ([MC] = @Original_MC)) AND ([SID] = @Original_SID) AND ([CustCode] = @Original_CustCode) AND ([PartNo] = @Original_PartNo) AND ((@IsNull_CustName = 1 AND [CustName] IS NULL) OR ([CustName] = @Original_CustName)) AND ((@IsNull_VenderName = 1 AND [VenderName] IS NULL) OR ([VenderName] = @Original_VenderName)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_MFG = 1 AND [MFG] IS NULL) OR ([MFG] = @Original_MFG)) AND ((@IsNull_wdate = 1 AND [wdate] IS NULL) OR ([wdate] = @Original_wdate)) AND ((@IsNull_qtymax = 1 AND [qtymax] IS NULL) OR ([qtymax] = @Original_qtymax)) AND ((@IsNull_batch = 1 AND [batch] IS NULL) OR ([batch] = @Original_batch)) AND ((@IsNull_VenderLot = 1 AND [VenderLot] IS NULL) OR ([VenderLot] = @Original_VenderLot)) AND ((@IsNull_attach = 1 AND [attach] IS NULL) OR ([attach] = @Original_attach))); +SELECT idx, MC, SID, CustCode, PartNo, CustName, VenderName, Remark, MFG, wdate, qtymax, batch, VenderLot, attach FROM Component_Reel_SID_Information WHERE (idx = @idx) ORDER BY SID + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT COUNT(*) AS Expr1 +FROM Component_Reel_SID_Information +WHERE (MC = @mc) AND (SID = @sid) AND (PartNo = @part) AND (CustCode = @cost) + + + + + + + + + + + + + SELECT COUNT(*) AS Expr1 +FROM Component_Reel_SID_Information +WHERE (MC = @mc) AND (SID = @sid) AND (PartNo = @part) AND (CustCode = @cost) and venderlot = @vlot + + + + + + + + + + + + + + DELETE FROM [Component_Reel_SID_Information] WHERE mc = @mc + + + + + + + + DELETE FROM Component_Reel_SID_Information +WHERE (MC = @mc) + + + + + + + + + + + + + + DELETE FROM [Component_Reel_SID_Convert] WHERE (([idx] = @Original_idx) AND ((@IsNull_MC = 1 AND [MC] IS NULL) OR ([MC] = @Original_MC)) AND ((@IsNull_Chk = 1 AND [Chk] IS NULL) OR ([Chk] = @Original_Chk)) AND ((@IsNull_SIDFrom = 1 AND [SIDFrom] IS NULL) OR ([SIDFrom] = @Original_SIDFrom)) AND ((@IsNull_SIDTo = 1 AND [SIDTo] IS NULL) OR ([SIDTo] = @Original_SIDTo)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_wdate = 1 AND [wdate] IS NULL) OR ([wdate] = @Original_wdate)) AND ((@IsNull_CustCode = 1 AND [CustCode] IS NULL) OR ([CustCode] = @Original_CustCode)) AND ((@IsNull_PartNo = 1 AND [PartNo] IS NULL) OR ([PartNo] = @Original_PartNo)) AND ((@IsNull_CustName = 1 AND [CustName] IS NULL) OR ([CustName] = @Original_CustName)) AND ((@IsNull_VenderName = 1 AND [VenderName] IS NULL) OR ([VenderName] = @Original_VenderName)) AND ((@IsNull_VenderLot = 1 AND [VenderLot] IS NULL) OR ([VenderLot] = @Original_VenderLot)) AND ((@IsNull_PrintPosition = 1 AND [PrintPosition] IS NULL) OR ([PrintPosition] = @Original_PrintPosition)) AND ((@IsNull_MFG = 1 AND [MFG] IS NULL) OR ([MFG] = @Original_MFG)) AND ((@IsNull_qtymax = 1 AND [qtymax] IS NULL) OR ([qtymax] = @Original_qtymax)) AND ((@IsNull_batch = 1 AND [batch] IS NULL) OR ([batch] = @Original_batch))) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO [Component_Reel_SID_Convert] ([MC], [Chk], [SIDFrom], [SIDTo], [Remark], [wdate], [CustCode], [PartNo], [CustName], [VenderName], [VenderLot], [PrintPosition], [MFG], [qtymax], [batch]) VALUES (@MC, @Chk, @SIDFrom, @SIDTo, @Remark, @wdate, @CustCode, @PartNo, @CustName, @VenderName, @VenderLot, @PrintPosition, @MFG, @qtymax, @batch); +SELECT idx, MC, Chk, SIDFrom, SIDTo, Remark, wdate, CustCode, PartNo, CustName, VenderName, VenderLot, PrintPosition, MFG, qtymax, batch FROM Component_Reel_SID_Convert WHERE (idx = SCOPE_IDENTITY()) ORDER BY SIDFrom + + + + + + + + + + + + + + + + + + + + + + SELECT idx, MC, Chk, SIDFrom, SIDTo, Remark, wdate, CustCode, PartNo, CustName, VenderName, VenderLot, PrintPosition, MFG, qtymax, batch +FROM Component_Reel_SID_Convert +ORDER BY SIDFrom + + + + + + UPDATE [Component_Reel_SID_Convert] SET [MC] = @MC, [Chk] = @Chk, [SIDFrom] = @SIDFrom, [SIDTo] = @SIDTo, [Remark] = @Remark, [wdate] = @wdate, [CustCode] = @CustCode, [PartNo] = @PartNo, [CustName] = @CustName, [VenderName] = @VenderName, [VenderLot] = @VenderLot, [PrintPosition] = @PrintPosition, [MFG] = @MFG, [qtymax] = @qtymax, [batch] = @batch WHERE (([idx] = @Original_idx) AND ((@IsNull_MC = 1 AND [MC] IS NULL) OR ([MC] = @Original_MC)) AND ((@IsNull_Chk = 1 AND [Chk] IS NULL) OR ([Chk] = @Original_Chk)) AND ((@IsNull_SIDFrom = 1 AND [SIDFrom] IS NULL) OR ([SIDFrom] = @Original_SIDFrom)) AND ((@IsNull_SIDTo = 1 AND [SIDTo] IS NULL) OR ([SIDTo] = @Original_SIDTo)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_wdate = 1 AND [wdate] IS NULL) OR ([wdate] = @Original_wdate)) AND ((@IsNull_CustCode = 1 AND [CustCode] IS NULL) OR ([CustCode] = @Original_CustCode)) AND ((@IsNull_PartNo = 1 AND [PartNo] IS NULL) OR ([PartNo] = @Original_PartNo)) AND ((@IsNull_CustName = 1 AND [CustName] IS NULL) OR ([CustName] = @Original_CustName)) AND ((@IsNull_VenderName = 1 AND [VenderName] IS NULL) OR ([VenderName] = @Original_VenderName)) AND ((@IsNull_VenderLot = 1 AND [VenderLot] IS NULL) OR ([VenderLot] = @Original_VenderLot)) AND ((@IsNull_PrintPosition = 1 AND [PrintPosition] IS NULL) OR ([PrintPosition] = @Original_PrintPosition)) AND ((@IsNull_MFG = 1 AND [MFG] IS NULL) OR ([MFG] = @Original_MFG)) AND ((@IsNull_qtymax = 1 AND [qtymax] IS NULL) OR ([qtymax] = @Original_qtymax)) AND ((@IsNull_batch = 1 AND [batch] IS NULL) OR ([batch] = @Original_batch))); +SELECT idx, MC, Chk, SIDFrom, SIDTo, Remark, wdate, CustCode, PartNo, CustName, VenderName, VenderLot, PrintPosition, MFG, qtymax, batch FROM Component_Reel_SID_Convert WHERE (idx = @idx) ORDER BY SIDFrom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DELETE FROM [Component_Reel_SID_Convert] + + + + + + + + + + + + DELETE FROM [Component_Reel_Print_Information] WHERE (([idx] = @Original_idx) AND ((@IsNull_MC = 1 AND [MC] IS NULL) OR ([MC] = @Original_MC)) AND ([SID] = @Original_SID) AND ((@IsNull_PrintPosition = 1 AND [PrintPosition] IS NULL) OR ([PrintPosition] = @Original_PrintPosition)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_wdate = 1 AND [wdate] IS NULL) OR ([wdate] = @Original_wdate))) + + + + + + + + + + + + + + + + + INSERT INTO [Component_Reel_Print_Information] ([MC], [SID], [PrintPosition], [Remark], [wdate]) VALUES (@MC, @SID, @PrintPosition, @Remark, @wdate); +SELECT idx, MC, SID, PrintPosition, Remark, wdate FROM Component_Reel_Print_Information WHERE (idx = SCOPE_IDENTITY()) + + + + + + + + + + + + select * +from Component_Reel_Print_Information +where MC = @mc + + + + + + + + UPDATE [Component_Reel_Print_Information] SET [MC] = @MC, [SID] = @SID, [PrintPosition] = @PrintPosition, [Remark] = @Remark, [wdate] = @wdate WHERE (([idx] = @Original_idx) AND ((@IsNull_MC = 1 AND [MC] IS NULL) OR ([MC] = @Original_MC)) AND ([SID] = @Original_SID) AND ((@IsNull_PrintPosition = 1 AND [PrintPosition] IS NULL) OR ([PrintPosition] = @Original_PrintPosition)) AND ((@IsNull_Remark = 1 AND [Remark] IS NULL) OR ([Remark] = @Original_Remark)) AND ((@IsNull_wdate = 1 AND [wdate] IS NULL) OR ([wdate] = @Original_wdate))); +SELECT idx, MC, SID, PrintPosition, Remark, wdate FROM Component_Reel_Print_Information WHERE (idx = @idx) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SID Information/DataSet1.xss b/SID Information/DataSet1.xss new file mode 100644 index 0000000..ef33a97 --- /dev/null +++ b/SID Information/DataSet1.xss @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/SID Information/MethodExtentions.cs b/SID Information/MethodExtentions.cs new file mode 100644 index 0000000..02c2d0d --- /dev/null +++ b/SID Information/MethodExtentions.cs @@ -0,0 +1,254 @@ + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Linq; +using System.Reflection; +using System.Runtime.InteropServices; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; + +namespace SIDConvInfoEditorII +{ + + + /// + /// generic method Extension + /// + public static class MethodExtensions + { + public static string HexString(this byte[] arr) + { + var hexlist = arr.Reverse().ToList().Select(t => t.ToString("X2")).ToList(); + return string.Join(" ", hexlist); + } + + //public static void SafeRaise(this Delegate evt, System.EventArgs e) + //{ + // if (evt == null) return; + + // foreach (Delegate singleCast in evt.GetInvocationList()) + // { + // var syncInvoke = singleCast.Target as ISynchronizeInvoke; + + // if (syncInvoke != null && syncInvoke.InvokeRequired) + // syncInvoke.BeginInvoke(singleCast, new object[] { e }); + // else + // singleCast.DynamicInvoke(e); + // } + //} + public static int toInt(this string param) + { + int a = 0; + int.TryParse(param, out a); + return a; + } + public static string DescriptionAttr(this T source) + { + FieldInfo fi = source.GetType().GetField(source.ToString()); + + DescriptionAttribute[] attributes = (DescriptionAttribute[])fi.GetCustomAttributes( + typeof(DescriptionAttribute), false); + + if (attributes != null && attributes.Length > 0) return attributes[0].Description; + else return source.ToString(); + } + public static string CategoryAttr(this T source) + { + FieldInfo fi = source.GetType().GetField(source.ToString()); + + CategoryAttribute[] attributes = (CategoryAttribute[])fi.GetCustomAttributes( + typeof(CategoryAttribute), false); + + if (attributes != null && attributes.Length > 0) return attributes[0].Category; + else return string.Empty;// source.ToString(); + } + public static string ToString(this System.Drawing.Rectangle rect) + { + return string.Format("X={0},Y={1},W={2},H={3}", rect.X, rect.Y, rect.Width, rect.Height); + } + public static string ToString(this System.Drawing.RectangleF rect) + { + return string.Format("X={0},Y={1},W={2},H={3}", rect.X, rect.Y, rect.Width, rect.Height); + } + + //public static void SetBGColor(this System.Windows.Forms.Label ctl,System.Drawing.Color color1) + //{ + // ctl.BackColor = System.Drawing.Color.Red; + //} + + /// + /// 0101이 반복되는 문자열 형태로 전환합니다. + /// + /// + /// + public static string BitString(this System.Collections.BitArray arr) + { + System.Text.StringBuilder sb = new System.Text.StringBuilder(); + for (int i = arr.Length; i > 0; i--) + sb.Append(arr[i - 1] ? "1" : "0"); + return sb.ToString(); + } + + /// + /// int 값으로 변환합니다. + /// + /// + /// + public static int ValueI(this System.Collections.BitArray arr) + { + byte[] buf = new byte[4]; + arr.CopyTo(buf, 0); + return BitConverter.ToInt32(buf, 0); + } + + /// + /// 숫자인지 검사합니다. + /// + /// + /// + public static bool IsNumeric(this string input) + { + double data; + return double.TryParse(input, out data); + //return Regex.IsMatch(input, @"^\d+$"); + } + + /// + /// isnullorempty 를 수행합니다. + /// + /// + /// + public static Boolean isEmpty(this string input) + { + if (input == null) return true; + if (string.IsNullOrWhiteSpace(input) || string.IsNullOrEmpty(input)) return true; + else return false; + } + + /// + /// default 인코딩을 사용하여 문자열로 반환합니다. + /// + /// + /// + public static string GetString(this Byte[] input) + { + return System.Text.Encoding.Default.GetString(input); + } + + /// + /// 16진수 문자열 형태로 반환합니다. + /// + /// + /// + public static string GetHexString(this Byte[] input) + { + System.Text.StringBuilder sb = new System.Text.StringBuilder(); + foreach (byte b in input) + sb.Append(" " + b.ToString("X2")); + return sb.ToString(); + } + + public static string Base64Encode(this string src) + { + string base64enc = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(src)); + return base64enc; + } + public static string Base64Decode(this string src) + { + var base64dec = Convert.FromBase64String(src); + return System.Text.Encoding.UTF8.GetString(base64dec); + } + + public static string toSizeStr(this Size rect) + { + return string.Format("{0};{1}", rect.Width, rect.Height); + } + public static string toPointStr(this PointF rect) + { + return string.Format("{0};{1}", rect.X, rect.Y); + } + public static string toPointStr(this Point rect) + { + return string.Format("{0};{1}", rect.X, rect.Y); + } + public static string toRectStr(this Rectangle rect) + { + return string.Format("{0};{1};{2};{3}", rect.X, rect.Top, rect.Width, rect.Height); + } + public static string toRectStr(this RectangleF rect) + { + return string.Format("{0};{1};{2};{3}", rect.X, rect.Top, rect.Width, rect.Height); + } + public static RectangleF toRectF(this string str) + { + var buffer = str.Split(';'); + if (buffer.Length != 4) return RectangleF.Empty; + for (int i = 0; i < buffer.Length; i++) + if (buffer[i] == "") buffer[i] = "0"; + return new RectangleF(float.Parse(buffer[0]), float.Parse(buffer[1]), float.Parse(buffer[2]), float.Parse(buffer[3])); + } + public static Rectangle toRect(this string str) + { + var buffer = str.Split(';'); + if (buffer.Length != 4) return Rectangle.Empty; + for (int i = 0; i < buffer.Length; i++) + if (buffer[i] == "") buffer[i] = "0"; + return new Rectangle(int.Parse(buffer[0]), int.Parse(buffer[1]), int.Parse(buffer[2]), int.Parse(buffer[3])); + } + public static Point toPoint(this string str) + { + str = str.Replace(",", ";").Replace("*", ";").Replace("x", ";").Replace(":", ";"); + + var buffer = str.Split(';'); + if (buffer.Length != 2) return Point.Empty; + for (int i = 0; i < buffer.Length; i++) + if (buffer[i] == "") buffer[i] = "0"; + return new Point(int.Parse(buffer[0]), int.Parse(buffer[1])); + } + public static Size toSize(this string str) + { + str = str.Replace(",", ";").Replace("*", ";").Replace("x", ";").Replace(":", ";"); + + var buffer = str.Split(';'); + if (buffer.Length != 2) return Size.Empty; + for (int i = 0; i < buffer.Length; i++) + if (buffer[i] == "") buffer[i] = "0"; + return new Size(int.Parse(buffer[0]), int.Parse(buffer[1])); + } + public static PointF toPointF(this string str) + { + str = str.Replace(",", ";").Replace("*", ";").Replace("x", ";").Replace(":", ";"); + + var buffer = str.Split(';'); + if (buffer.Length != 2) return PointF.Empty; + for (int i = 0; i < buffer.Length; i++) + if (buffer[i] == "") buffer[i] = "0"; + return new PointF(float.Parse(buffer[0]), float.Parse(buffer[1])); + } + public static Rectangle Fix(this Rectangle rect, Size imgsize) + { + //영역보정 + if (rect.Left < 1) rect.X = 1; + if (rect.Top < 1) rect.Y = 1; + if (rect.Right > imgsize.Width) rect.Width = imgsize.Width - rect.Left - 1; + if (rect.Bottom > imgsize.Height) rect.Height = imgsize.Height - rect.Top - 1; + if (rect.Width < 2 || rect.Height < 2) rect = Rectangle.Empty; + return rect; + } + public static RectangleF FixRoi(this RectangleF rect, Size imgsize) + { + //영역보정 + if (rect.Left < 1) rect.X = 1; + if (rect.Top < 1) rect.Y = 1; + if (rect.Right > imgsize.Width) rect.Width = imgsize.Width - rect.Left - 1; + if (rect.Bottom > imgsize.Height) rect.Height = imgsize.Height - rect.Top - 1; + if (rect.Width < 2 || rect.Height < 2) rect = Rectangle.Empty; + return rect; + } + + } +} + diff --git a/SID Information/PUB.cs b/SID Information/PUB.cs new file mode 100644 index 0000000..e607058 --- /dev/null +++ b/SID Information/PUB.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace SIDConvInfoEditorII +{ + public static class PUB + { + public static arUtil.Log log; + public static Csetting setting; + public static string param = string.Empty; + + public static void init() + { + log = new arUtil.Log(); + setting = new Csetting(); + setting.Load(); + } + + } + public class Csetting : arUtil.Setting + { + public string McName { get; set; } + public override void AfterLoad() + { + + } + + public override void AfterSave() + { + //throw new NotImplementedException(); + } + } +} diff --git a/SID Information/Program.cs b/SID Information/Program.cs new file mode 100644 index 0000000..8c78988 --- /dev/null +++ b/SID Information/Program.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace SIDConvInfoEditorII +{ + static class Program + { + /// + /// 해당 응용 프로그램의 주 진입점입니다. + /// + [STAThread] + static void Main(params string[] args) + { + + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + if (args != null && args.Length > 0) PUB.param = args[0]; + Application.Run(new fMain()); + } + } +} diff --git a/SID Information/Properties/AssemblyInfo.cs b/SID Information/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..66b12ef --- /dev/null +++ b/SID Information/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해 +// 제어됩니다. 어셈블리와 관련된 정보를 수정하려면 +// 이러한 특성 값을 변경하세요. +[assembly: AssemblyTitle("Amkor Standard Label Attach SID Information")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("ATK4-EET")] +[assembly: AssemblyProduct("Amkor Standard Label Attach SID Information")] +[assembly: AssemblyCopyright("Copyright ©ATK4-EET 2022")] +[assembly: AssemblyTrademark("ATK4-EET")] +[assembly: AssemblyCulture("")] + +// ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 +// 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 +// 해당 형식에 대해 ComVisible 특성을 true로 설정하세요. +[assembly: ComVisible(false)] + +// 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. +[assembly: Guid("6628a18a-3b38-4d66-a9b9-b0cc70360999")] + +// 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. +// +// 주 버전 +// 부 버전 +// 빌드 번호 +// 수정 버전 +// +// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로 +// 지정되도록 할 수 있습니다. +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("25.05.21.1300")] +[assembly: AssemblyFileVersion("25.05.21.1300")] diff --git a/SID Information/Properties/Resources.Designer.cs b/SID Information/Properties/Resources.Designer.cs new file mode 100644 index 0000000..66d7888 --- /dev/null +++ b/SID Information/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +namespace SIDConvInfoEditorII.Properties { + using System; + + + /// + /// 지역화된 문자열 등을 찾기 위한 강력한 형식의 리소스 클래스입니다. + /// + // 이 클래스는 ResGen 또는 Visual Studio와 같은 도구를 통해 StronglyTypedResourceBuilder + // 클래스에서 자동으로 생성되었습니다. + // 멤버를 추가하거나 제거하려면 .ResX 파일을 편집한 다음 /str 옵션을 사용하여 ResGen을 + // 다시 실행하거나 VS 프로젝트를 다시 빌드하십시오. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// 이 클래스에서 사용하는 캐시된 ResourceManager 인스턴스를 반환합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SIDConvInfoEditorII.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 이 강력한 형식의 리소스 클래스를 사용하여 모든 리소스 조회에 대해 현재 스레드의 CurrentUICulture 속성을 + /// 재정의합니다. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/SID Information/Properties/Resources.resx b/SID Information/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/SID Information/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/SID Information/Properties/Settings.Designer.cs b/SID Information/Properties/Settings.Designer.cs new file mode 100644 index 0000000..04b006b --- /dev/null +++ b/SID Information/Properties/Settings.Designer.cs @@ -0,0 +1,62 @@ +//------------------------------------------------------------------------------ +// +// 이 코드는 도구를 사용하여 생성되었습니다. +// 런타임 버전:4.0.30319.42000 +// +// 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면 +// 이러한 변경 내용이 손실됩니다. +// +//------------------------------------------------------------------------------ + +namespace SIDConvInfoEditorII.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.9.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)] + [global::System.Configuration.DefaultSettingValueAttribute("Data Source=K4FASQL.kr.ds.amkor.com,50150;Initial Catalog=EE;Persist Security Inf" + + "o=True;User ID=eeadm;Password=uJnU8a8q&DJ+ug-D;Encrypt=False;TrustServerCertific" + + "ate=True")] + public string cs { + get { + return ((string)(this["cs"])); + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("K9OE1zaaQEPD8jE33YK1vDdDS4JBz1DB")] + public string Softtek { + get { + return ((string)(this["Softtek"])); + } + set { + this["Softtek"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("Amkor Technology/windows-242f240302c3e50d6cb1686ba2q4k0o9")] + public string libxl { + get { + return ((string)(this["libxl"])); + } + set { + this["libxl"] = value; + } + } + } +} diff --git a/SID Information/Properties/Settings.settings b/SID Information/Properties/Settings.settings new file mode 100644 index 0000000..5fe6a53 --- /dev/null +++ b/SID Information/Properties/Settings.settings @@ -0,0 +1,20 @@ + + + + + + <?xml version="1.0" encoding="utf-16"?> +<SerializableConnectionString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <ConnectionString>Data Source=K4FASQL.kr.ds.amkor.com,50150;Initial Catalog=EE;Persist Security Info=True;User ID=eeadm;Password=uJnU8a8q&amp;DJ+ug-D;Encrypt=False;TrustServerCertificate=True</ConnectionString> + <ProviderName>System.Data.SqlClient</ProviderName> +</SerializableConnectionString> + Data Source=K4FASQL.kr.ds.amkor.com,50150;Initial Catalog=EE;Persist Security Info=True;User ID=eeadm;Password=uJnU8a8q&DJ+ug-D;Encrypt=False;TrustServerCertificate=True + + + K9OE1zaaQEPD8jE33YK1vDdDS4JBz1DB + + + Amkor Technology/windows-242f240302c3e50d6cb1686ba2q4k0o9 + + + \ No newline at end of file diff --git a/SID Information/SIDConvInfoEditor.sln b/SID Information/SIDConvInfoEditor.sln new file mode 100644 index 0000000..6c59c3a --- /dev/null +++ b/SID Information/SIDConvInfoEditor.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.9.34714.143 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SIDConvInfoEditorII", "SIDConvInfoEditorII.csproj", "{6628A18A-3B38-4D66-A9B9-B0CC70360395}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6628A18A-3B38-4D66-A9B9-B0CC70360395}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6628A18A-3B38-4D66-A9B9-B0CC70360395}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6628A18A-3B38-4D66-A9B9-B0CC70360395}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6628A18A-3B38-4D66-A9B9-B0CC70360395}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {BB663378-8BAD-4B9E-8AF1-7AFF5797D484} + EndGlobalSection +EndGlobal diff --git a/SID Information/SIDConvInfoEditorII.csproj b/SID Information/SIDConvInfoEditorII.csproj new file mode 100644 index 0000000..7d0b7b3 --- /dev/null +++ b/SID Information/SIDConvInfoEditorII.csproj @@ -0,0 +1,140 @@ + + + + + Debug + AnyCPU + {6628A18A-3B38-4D66-A9B9-B0CC70360395} + WinExe + SIDConvInfoEditorII + Amkor + v4.6.1 + 512 + true + true + + + AnyCPU + true + full + false + ..\..\..\..\..\amkor\STDLabelAttach%28Recv%29-SIDInfo\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + icons8-attach-64.ico + + + + False + DLL\arCommUtil.dll + + + DLL\ArLog.Net4.dll + + + DLL\ArSetting.Net4.dll + + + DLL\ChilkatDotNet4.dll + + + .\libxl.net.dll + + + C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.dll + + + + + + + + + + + + + + + + True + True + DataSet1.xsd + + + Form + + + fMain.cs + + + + + + + UserControl + + + UserControl1.cs + + + + fMain.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + UserControl1.cs + + + DataSet1.xsd + + + Designer + MSDataSetGenerator + DataSet1.Designer.cs + + + DataSet1.xsd + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + + PreserveNewest + + + + \ No newline at end of file diff --git a/SID Information/UTIL.cs b/SID Information/UTIL.cs new file mode 100644 index 0000000..3e62490 --- /dev/null +++ b/SID Information/UTIL.cs @@ -0,0 +1,813 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Diagnostics; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Management; +using System.Net; +using System.Net.NetworkInformation; +using System.Runtime.Serialization.Formatters.Binary; +using System.Text; +using System.Windows.Forms; + +namespace SIDConvInfoEditorII +{ + + public static partial class UTIL + { + + public static bool ImportSIDInfo(DataSet1.Component_Reel_SID_InformationDataTable Component_Reel_SID_Information, + String InputFileName, + System.Windows.Forms.ProgressBar progressBar1 = null) + { + //엑셀을 읽어와서 처리한다. + var fi = new System.IO.FileInfo(InputFileName); + var ext = fi.Extension.ToLower(); + libxl.Book book; + if (ext == ".xlsx") book = new libxl.XmlBook(); + else if (ext == ".xls") book = new libxl.BinBook(); + else return false; + + var keyinfo = Properties.Settings.Default.libxl.Split('/'); + book.setKey(keyinfo[0], keyinfo[1]); + book.load(fi.FullName); + var sheet = book.getSheet(0); + + var cs = sheet.firstCol(); + var ce = sheet.lastCol(); + var rs = sheet.firstRow(); + var re = sheet.lastRow(); + + if (progressBar1 != null) + { + progressBar1.Minimum = 0; + progressBar1.Maximum = re; + progressBar1.Value = 0; + } + + if (rs == 0) rs += 1; + + int cntA = 0; + //int cntU = 0; + for (int row = rs; row <= re; row++) + { + //update progress bar + if (progressBar1 != null) + { + if (progressBar1.Value < progressBar1.Maximum) progressBar1.Value += 1; + } + + + var cCustCode = sheet.readStr(row, 0); + var cSID = sheet.readStr(row, 1); + var cPartNo = sheet.readStr(row, 2); + + if (cCustCode.isEmpty() == false && cCustCode.Length != 4) + cCustCode = cCustCode.PadLeft(4, '0'); + + if (cSID.isEmpty() && cCustCode.isEmpty()) break; // + + //if (cSID.StartsWith("10")) + //{ + EnumerableRowCollection plist = null; + plist = Component_Reel_SID_Information.Where(t => t.MC == PUB.setting.McName && t.SID == cSID && t.CustCode == cCustCode && t.PartNo == cPartNo); + + if (plist == null || plist.Any() == false) + { + //존재하지않으면 추가한다. + var newdr = Component_Reel_SID_Information.NewComponent_Reel_SID_InformationRow(); + newdr.CustCode = cCustCode; + newdr.SID = cSID; + newdr.PartNo = cPartNo; + newdr.MC = PUB.setting.McName; + newdr.wdate = DateTime.Now; + Component_Reel_SID_Information.AddComponent_Reel_SID_InformationRow(newdr); + cntA += 1; + } + else + { + //있다면 업데이트 해준다. + //foreach (var item in plist) + //{ + // if (cSID.isEmpty() == false) + // { + // item.SID = cSID; ; + // item.EndEdit(); + // cntU += 1; + // } + + //} + } + //} + + } + PUB.log.Add($"Import SID Information : {cntA}"); + return true; + } + + public static bool GetBitState(UInt16 val, int idx) + { + UInt16 offset = 1; + offset = (UInt16)(offset << idx); + return (val & offset) > 0; + } + public static UInt16 SetBitState(UInt16 val, int idx, bool state) + { + UInt16 offset = 0x01; + offset = (UInt16)(offset << idx); + if (state == false) offset = (UInt16)~offset; + + if (state) + { + return (UInt16)(val | offset); + } + else + { + return (UInt16)(val & offset); + } + } + + + + public static Control GetContextOwnerControl(object sender) + { + if (sender is ToolStripMenuItem menuitem) + { + if (menuitem.Owner is ContextMenuStrip menu) + { + return menu.SourceControl; + } + } + return null; + } + + public static double GetFreeSpace(string driveletter) + { + try + { + var di = new System.IO.DriveInfo(driveletter); + var freespace = di.TotalFreeSpace; + var totalspace = di.TotalSize; + var freeSpaceRate = (freespace * 1.0 / totalspace) * 100.0; + return freeSpaceRate; + } + catch + { + return 100.0; + } + } + + + #region "MessageBox" + public static void MsgI(string m, Boolean legacy = false) + { + + + MessageBox.Show(m, "확인", MessageBoxButtons.OK, MessageBoxIcon.Information); + + } + public static void MsgE(string m, Boolean legacy = false) + { + MessageBox.Show(m, "오류", MessageBoxButtons.OK, MessageBoxIcon.Error); + + } + public static DialogResult MsgQ(string m, string btOK = "확인", string btCancel = "아니오") + { + var dlg = MessageBox.Show(m, "확인", MessageBoxButtons.YesNo, MessageBoxIcon.Question); + return dlg; + } + + #endregion + + // + /// 현재위치를 기준으로 폴더명을 구성합니다. + /// + /// + /// + public static string MakePath(params string[] subname) + { + List pathlist = new List(); + pathlist.Add(CurrentPath); + if (subname.Length > 0) pathlist.AddRange(subname); + return System.IO.Path.Combine(pathlist.ToArray()); + } + + public static Boolean SendMail(string title, string body, string from, string[] tolist, string file = "") + { + //메일을 전송하고 나간다 + Chilkat.MailMan mailman = new Chilkat.MailMan(); + bool success = mailman.UnlockComponent("BLUPRT.CBX012020_rzDFf7pQAsCS"); + if (success != true) + { + UTIL.MsgE("메일 전송이 실패되었습니다\n잠시 후 다시 시도하세요", true); + return false; + } + else + { + mailman.SmtpHost = "10.101.10.6"; + mailman.SmtpPort = 25; + Chilkat.Email email = new Chilkat.Email(); + email.Subject = title; + //email.Body = this.textBox1.Text; + email.SetHtmlBody(body.Replace("\r", "").Replace("\n", "
")); + email.From = from; + + foreach (var to in tolist) + email.AddTo(to.Substring(0, to.IndexOf('@')), to); + + if (System.IO.File.Exists(file)) + email.AddFileAttachment(file); + + success = mailman.SendEmail(email); + if (success != true) + { + UTIL.MsgE("발송 실패", true); + return false; + } + + success = mailman.CloseSmtpConnection(); + if (success != true) + { + UTIL.MsgE("Connection to SMTP server not closed cleanly.", true); + return false; + } + } + + return true; + } + + + public static Dictionary ComputerInfo() + { + string ip = ""; + string mac = ""; + // string prgmName = Application.ProductName; + + var nif = NetworkInterface.GetAllNetworkInterfaces(); + var host = Dns.GetHostEntry(Dns.GetHostName()); + string fullname = System.Net.Dns.GetHostEntry("").HostName; + foreach (IPAddress r in host.AddressList) + { + string str = r.ToString(); + + if (str != "" && str.Substring(0, 3) == "10.") + { + ip = str; + break; + } + } + + string rtn = string.Empty; + ObjectQuery oq = new System.Management.ObjectQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled='TRUE'"); + ManagementObjectSearcher query1 = new ManagementObjectSearcher(oq); + foreach (ManagementObject mo in query1.Get()) + { + string[] address = (string[])mo["IPAddress"]; + if (address[0] == ip && mo["MACAddress"] != null) + { + mac = mo["MACAddress"].ToString(); + break; + } + } + + var username = System.Environment.UserName; + var retval = new Dictionary(); + retval.Add("IP", ip); + retval.Add("MAC", mac); + retval.Add("USER", username); + retval.Add("HOST", fullname); + return retval; + + + + } + public static string ScreenCaptrue(int _BitmapWidth, int _BitmapHeight, Point ptSouce, Boolean prompt) + { + try + { + Bitmap bitmap = new Bitmap(_BitmapWidth, _BitmapHeight); + Graphics _graphic = Graphics.FromImage(bitmap); + + _graphic.CopyFromScreen(ptSouce, new Point(0, 0), new Size(_BitmapWidth, _BitmapHeight)); + + string savefile = System.IO.Path.Combine(UTIL.CurrentPath, "ScreenShot", DateTime.Now.ToString("yyyyMMddHHmmss") + ".png"); + System.IO.FileInfo grpath = new FileInfo(savefile); + if (!grpath.Directory.Exists) grpath.Directory.Create(); + + bitmap.Save(grpath.FullName, System.Drawing.Imaging.ImageFormat.Png); + if (prompt) + UTIL.MsgI("화면 캡쳐 성공\n" + + "위치:" + grpath.Directory.FullName + "\n" + + "파일명: " + grpath.Name); + + return grpath.FullName; + } + catch (Exception ex) + { + if (prompt) + UTIL.MsgE("화면 캡쳐 실패\n" + ex.Message); + return string.Empty; + } + } + + + + //public static bool SendMail(string seqdate, string seqno) + //{ + // Chilkat.MailMan mailman = new Chilkat.MailMan(); + // bool success = mailman.UnlockComponent("BLUPRT.CBX012020_rzDFf7pQAsCS"); + // if (success != true) + // { + // Debug.WriteLine(mailman.LastErrorText); + // return false; + // } + + // mailman.SmtpHost = "10.101.10.6"; + + // mailman.SmtpPort = 25; + + // Create a new email object + // Chilkat.Email email = new Chilkat.Email(); + + // var mailform = PUB.mailForm.FirstOrDefault(); + // if (mailform == null) + // return false; + + + + // var subject = mailform.subject.Trim(); + // subject = subject.Replace("{seqdate}", seqdate); + // subject = subject.Replace("{seqno}", seqno); + + + // var buffer = System.IO.File.ReadAllText(Util.CurrentPath + "\\Mailform.html"); + + // 시드별집계데이터생성 + // System.Text.StringBuilder sbFileSID = new StringBuilder(); + // System.Text.StringBuilder sbFileREEL = new StringBuilder(); + // sbFileSID.AppendLine(string.Format("NO,SID,작업수량,예정수량,UNIT")); + // sbFileREEL.AppendLine(string.Format("NO,SID,REEL,QTY,TIME")); + + // int cntrid = 1; + + // System.IO.File.WriteAllText(Util.CurrentPath + "\\result_sidsummary.csv", sbFileSID.ToString(), System.Text.Encoding.Default); + // System.IO.File.WriteAllText(Util.CurrentPath + "\\result_reelist.csv", sbFileREEL.ToString(), System.Text.Encoding.Default); + + // 메일본문의 내용 치환 + // var contents = buffer.Trim(); + // contents = contents.Replace("{seqdate}", seqdate); + // contents = contents.Replace("{seqno}", seqno); + + // email.Subject = subject; + // email.SetHtmlBody(contents); + // email.From = "ReelSorter"; + // email.AddFileAttachment(Util.CurrentPath + "\\result_sidsummary.csv"); + // email.AddFileAttachment(Util.CurrentPath + "\\result_reelist.csv"); + + + // System.Text.StringBuilder maillist = new StringBuilder(); + // foreach (DataSet1.MailRecipientRow r in PUB.mailList.Rows) + // { + // success = email.AddTo(r.Name, r.Address); + // maillist.Append(string.Format("{0}({1})", r.Name, r.Address)); + // } + + + // success = mailman.SendEmail(email); + // if (success != true) + // { + // Debug.WriteLine(mailman.LastErrorText); + // return false; + // } + + // success = mailman.CloseSmtpConnection(); + // if (success != true) + // { + // Debug.WriteLine("Connection to SMTP server not closed cleanly."); + // PUB.log.AddE("메일 발송 실패(" + maillist.ToString() + ")"); + // } + + // PUB.log.AddI("메일 발송 완료(" + maillist.ToString() + ")"); + // return true; + //} + + public static T FileDeSerialize(string file) + { + T Retval = default(T); + if (System.IO.File.Exists(file) == false) return Retval; + var xmlSerializer = new BinaryFormatter(); + using (FileStream fs = new FileStream(file, FileMode.Open)) + { + try + { + var value = xmlSerializer.Deserialize(fs); + Retval = (T)Convert.ChangeType(value, typeof(T)); + } + catch (Exception ex) + { + PUB.log.AddE("File DeSerialized Error : " + ex.Message); + } + //Retval = (T)xmlSerializer.Deserialize(fs); + } + return Retval; + } + + + public static void FileSerialize(object data, string file) + { + if (data == null) return; + var xmlSerializer = new BinaryFormatter(); + using (FileStream fs = new FileStream(file, FileMode.Create)) + { + xmlSerializer.Serialize(fs, data); + } + } + + + public static void splitID(string ID, out string ww, out string seq) + { + if (ID.Length < 3) + { + ww = ""; + seq = ""; + } + else + { + try + { + ww = ID.Substring(0, 2);// int.Parse(ID.Substring(0, 2)); + seq = ID.Substring(2);// int.Parse(ID.Substring(2)); + } + catch (Exception ex) + { + PUB.log.AddE("slit id eerr" + ex.Message); + ww = ""; + seq = "-1"; + } + } + } + + + public static void ScreenCaptrue(int _BitmapWidth, int _BitmapHeight, Point ptSouce) + { + try + { + Bitmap bitmap = new Bitmap(_BitmapWidth, _BitmapHeight); + Graphics _graphic = Graphics.FromImage(bitmap); + + _graphic.CopyFromScreen(ptSouce, new Point(0, 0), new Size(_BitmapWidth, _BitmapHeight)); + + string savefile = System.IO.Path.Combine(UTIL.CurrentPath, "ScreenShot", DateTime.Now.ToString("yyyyMMddHHmmss") + ".png"); + System.IO.FileInfo grpath = new FileInfo(savefile); + if (!grpath.Directory.Exists) grpath.Directory.Create(); + + bitmap.Save(grpath.FullName, System.Drawing.Imaging.ImageFormat.Png); + UTIL.MsgI("화면 캡쳐 성공\n" + + "위치:" + grpath.Directory.FullName + "\n" + + "파일명: " + grpath.Name); + } + catch (Exception ex) + { + UTIL.MsgE("화면 캡쳐 실패\n" + ex.Message); + } + } + + + public static void SaveBugReport(string content, string subdirName = "BugReport") + { + try + { + var path = CurrentPath + subdirName; + if (!System.IO.Directory.Exists(path)) System.IO.Directory.CreateDirectory(path); + var file = path + "\\" + DateTime.Now.ToString("yyyyMMdd_HHmmss_fff") + ".txt"; + System.IO.File.WriteAllText(file, content, System.Text.Encoding.UTF8); + } + catch + { + //nothing + } + } + + public static void CopyData(System.Data.DataRow drSrc, System.Data.DataRow drDes) + { + if (drDes == null || drSrc == null) return; + foreach (System.Data.DataColumn col in drSrc.Table.Columns) + { + if (col.ColumnName.ToUpper() == "IDX") continue; + drDes[col.ColumnName] = drSrc[col.ColumnName]; + } + + } + + /// + /// 현재실행중인폴더를 반환합니다. + /// + public static string CurrentPath + { + get + { + return AppDomain.CurrentDomain.BaseDirectory; + } + } + /// + /// 콤마와 줄바꿈등을 제거합니다. + /// + /// + public static string ToCSVString(string src) + { + string retval = src.Replace("\r", "").Replace("\n", "").Replace(",", ""); + return retval; + } + + public static Boolean RunProcess(string file, string arg = "") + { + var fi = new System.IO.FileInfo(file); + if (!fi.Exists) + { + PUB.log.AddE("Run Error : " + file); + return false; + } + System.Diagnostics.Process prc = new System.Diagnostics.Process(); + System.Diagnostics.ProcessStartInfo si = new System.Diagnostics.ProcessStartInfo(file); + si.Arguments = arg; + prc.StartInfo = si; + prc.Start(); + return true; + } + + #region "convert" + public static string RectToStr(Rectangle rect) + { + return string.Format("{0};{1};{2};{3}", rect.X, rect.Y, rect.Width, rect.Height); + } + public static string RectToStr(RectangleF rect) + { + return string.Format("{0};{1};{2};{3}", rect.X, rect.Y, rect.Width, rect.Height); + } + public static string PointToStr(Point pt) + { + return string.Format("{0};{1}", pt.X, pt.Y); + } + public static string PointToStr(PointF pt) + { + return string.Format("{0};{1}", pt.X, pt.Y); + } + public static Rectangle StrToRect(string str) + { + if (str.isEmpty() || str.Split(';').Length != 4) str = "0;0;0;0"; + var roibuf1 = str.Split(';'); + return new System.Drawing.Rectangle( + int.Parse(roibuf1[0]), + int.Parse(roibuf1[1]), + int.Parse(roibuf1[2]), + int.Parse(roibuf1[3])); + } + public static RectangleF StrToRectF(string str) + { + if (str.isEmpty() || str.Split(';').Length != 4) str = "0;0;0;0"; + var roibuf1 = str.Split(';'); + return new System.Drawing.RectangleF( + float.Parse(roibuf1[0]), + float.Parse(roibuf1[1]), + float.Parse(roibuf1[2]), + float.Parse(roibuf1[3])); + } + public static Point StrToPoint(string str) + { + if (str.isEmpty() || str.Split(';').Length != 2) str = "0;0"; + var roibuf1 = str.Split(';'); + return new System.Drawing.Point( + int.Parse(roibuf1[0]), + int.Parse(roibuf1[1])); + } + public static PointF StrToPointF(string str) + { + if (str.isEmpty() || str.Split(';').Length != 2) str = "0;0"; + var roibuf1 = str.Split(';'); + return new System.Drawing.PointF( + float.Parse(roibuf1[0]), + float.Parse(roibuf1[1])); + } + #endregion + + #region "NIC" + + /// + /// 지정된 nic카드가 현재 목록에 존재하는지 확인한다. + /// + /// + public static Boolean ExistNIC(string NICName) + { + if (string.IsNullOrEmpty(NICName)) return false; + foreach (string NetName in NICCardList()) + { + if (NetName.ToLower() == NICName.ToLower()) + { + return true; + } + } + return false; + } + + /// + /// Ehternet Card 를 사용안함으로 설정합니다.(관리자권한필요) + /// + /// + public static Boolean NICDisable(string NICName) + { + //해당 nic 가 현재 목록에 존재하는지 확인한다. + + string cmd = "interface set interface " + NICName + " disable"; + Process prc = new Process(); + ProcessStartInfo si = new ProcessStartInfo("netsh", cmd); + si.WindowStyle = ProcessWindowStyle.Hidden; + prc.StartInfo = si; + prc.Start(); + + ////목록에서 사라질때까지 기다린다. + DateTime SD = DateTime.Now; + Boolean timeout = false; + while ((true)) + { + + bool FindNetwork = false; + foreach (string NetName in NICCardList()) + { + if (NetName == NICName.ToLower()) + { + FindNetwork = true; + break; // TODO: might not be correct. Was : Exit For + } + } + + if (!FindNetwork) + break; // TODO: might not be correct. Was : Exit While + + System.Threading.Thread.Sleep(1000); + TimeSpan ts = DateTime.Now - SD; + if (ts.TotalSeconds > 10) + { + timeout = true; + break; // TODO: might not be correct. Was : Exit While + } + } + return !timeout; + } + + public static List NICCardList() + { + List Retval = new List(); + foreach (System.Net.NetworkInformation.NetworkInterface Net in System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()) + { + if (Net.NetworkInterfaceType == System.Net.NetworkInformation.NetworkInterfaceType.Ethernet) + { + Retval.Add(Net.Name.ToUpper()); + } + } + return Retval; + } + + /// + /// 이더넷카드를 사용함으로 설정합니다. + /// + /// + public static Boolean NICEnable(string NICName) + { + string cmd = "interface set interface " + NICName + " enable"; + System.Diagnostics.Process prc = new System.Diagnostics.Process(); + System.Diagnostics.ProcessStartInfo si = new System.Diagnostics.ProcessStartInfo("netsh", cmd); + si.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; + prc.StartInfo = si; + prc.Start(); + + + ////목록에생길떄까지 대기 + DateTime SD = DateTime.Now; + while ((true)) + { + + bool FindNetwork = false; + foreach (string NetName in NICCardList()) + { + if (NetName.ToLower() == NICName.ToLower()) + { + FindNetwork = true; + break; // TODO: might not be correct. Was : Exit For + } + } + + if (FindNetwork) + break; // TODO: might not be correct. Was : Exit While + + System.Threading.Thread.Sleep(1000); + TimeSpan ts = DateTime.Now - SD; + if (ts.TotalSeconds > 10) + { + return false; + } + } + + ////결이 완료될떄까지 기다린다. + SD = DateTime.Now; + while ((true)) + { + + bool FindNetwork = false; + foreach (System.Net.NetworkInformation.NetworkInterface Net in System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()) + { + if (Net.NetworkInterfaceType != System.Net.NetworkInformation.NetworkInterfaceType.GigabitEthernet && + Net.NetworkInterfaceType != System.Net.NetworkInformation.NetworkInterfaceType.Ethernet) continue; + if (Net.Name.ToLower() == NICName.ToLower()) + { + //string data = Net.GetIPProperties().GatewayAddresses[0].ToString(); + + if (Net.OperationalStatus == System.Net.NetworkInformation.OperationalStatus.Up) + { + + FindNetwork = true; + break; // TODO: might not be correct. Was : Exit For + } + } + } + if (FindNetwork) + return true; + + System.Threading.Thread.Sleep(1000); + TimeSpan ts = DateTime.Now - SD; + if (ts.TotalSeconds > 10) + { + return false; + } + } + + } + + #endregion + + public static void RunExplorer(string arg) + { + System.Diagnostics.ProcessStartInfo si = new ProcessStartInfo("explorer"); + si.Arguments = arg; + System.Diagnostics.Process.Start(si); + } + + #region "watchdog" + public static void WatchDog_Run() + { + System.IO.FileInfo fi = new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "WatchCat.exe"); + if (!fi.Exists) return; + var Exist = CheckExistProcess("watchcat"); + if (Exist != null) return; + RunProcess(fi.FullName); + } + + public static System.Diagnostics.Process CheckExistProcess(string ProcessName) + { + foreach (var prc in System.Diagnostics.Process.GetProcesses()) + { + if (prc.ProcessName.StartsWith("svchost")) continue; + if (prc.ProcessName.ToUpper() == ProcessName.ToUpper()) return prc; + } + return null; + } + #endregion + + + #region "web function" + /// + /// URL로부터 문자열을 수신합니다. + /// + /// + /// + /// + public static string GetStrfromurl(string url, out Boolean isError) + { + isError = false; + string result = ""; + try + { + HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(url)); + request.Timeout = 60000; + request.ReadWriteTimeout = 60000; + + request.MaximumAutomaticRedirections = 4; + request.MaximumResponseHeadersLength = 4; + request.Credentials = CredentialCache.DefaultCredentials; + var response = request.GetResponse() as HttpWebResponse; + var txtReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8); + result = txtReader.ReadToEnd(); + } + catch (Exception ex) + { + isError = true; + result = ex.Message.ToString(); + } + return result; + } + + #endregion + + } +} diff --git a/SID Information/UserControl1.Designer.cs b/SID Information/UserControl1.Designer.cs new file mode 100644 index 0000000..76bfa8a --- /dev/null +++ b/SID Information/UserControl1.Designer.cs @@ -0,0 +1,77 @@ +namespace SIDConvInfoEditorII +{ + partial class UserControl1 + { + /// + /// 필수 디자이너 변수입니다. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// 사용 중인 모든 리소스를 정리합니다. + /// + /// 관리되는 리소스를 삭제해야 하면 true이고, 그렇지 않으면 false입니다. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region 구성 요소 디자이너에서 생성한 코드 + + /// + /// 디자이너 지원에 필요한 메서드입니다. + /// 이 메서드의 내용을 코드 편집기로 수정하지 마세요. + /// + private void InitializeComponent() + { + this.label1 = new System.Windows.Forms.Label(); + this.numericUpDown1 = new System.Windows.Forms.NumericUpDown(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit(); + this.SuspendLayout(); + // + // label1 + // + this.label1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80))))); + this.label1.Dock = System.Windows.Forms.DockStyle.Left; + this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); + this.label1.ForeColor = System.Drawing.Color.White; + this.label1.Location = new System.Drawing.Point(0, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(105, 29); + this.label1.TabIndex = 0; + this.label1.Text = "label1"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // numericUpDown1 + // + this.numericUpDown1.Dock = System.Windows.Forms.DockStyle.Fill; + this.numericUpDown1.Font = new System.Drawing.Font("Consolas", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.numericUpDown1.Location = new System.Drawing.Point(105, 0); + this.numericUpDown1.Name = "numericUpDown1"; + this.numericUpDown1.Size = new System.Drawing.Size(58, 29); + this.numericUpDown1.TabIndex = 1; + this.numericUpDown1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // UserControl1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.numericUpDown1); + this.Controls.Add(this.label1); + this.Name = "UserControl1"; + this.Size = new System.Drawing.Size(163, 29); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + public System.Windows.Forms.Label label1; + public System.Windows.Forms.NumericUpDown numericUpDown1; + } +} diff --git a/SID Information/UserControl1.cs b/SID Information/UserControl1.cs new file mode 100644 index 0000000..bfd0520 --- /dev/null +++ b/SID Information/UserControl1.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace SIDConvInfoEditorII +{ + public partial class UserControl1 : UserControl + { + public UserControl1() + { + InitializeComponent(); + } + } +} diff --git a/SID Information/UserControl1.resx b/SID Information/UserControl1.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/SID Information/UserControl1.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/SID Information/fMain.Designer.cs b/SID Information/fMain.Designer.cs new file mode 100644 index 0000000..4b58901 --- /dev/null +++ b/SID Information/fMain.Designer.cs @@ -0,0 +1,1255 @@ +namespace SIDConvInfoEditorII +{ + partial class fMain + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = 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 dataGridViewCellStyle4 = 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 dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fMain)); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPage2 = new System.Windows.Forms.TabPage(); + this.dvI = new System.Windows.Forms.DataGridView(); + this.dataGridViewTextBoxColumn6 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn8 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn7 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn9 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.PrintPosition = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.qtymax = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.VenderLot = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn10 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.attach = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.VenderName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn13 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.bsI = new System.Windows.Forms.BindingSource(this.components); + this.dataSet1 = new SIDConvInfoEditorII.DataSet1(); + this.panel2 = new System.Windows.Forms.Panel(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.button1 = new System.Windows.Forms.Button(); + this.progressBar1 = new System.Windows.Forms.ProgressBar(); + this.bnI = new System.Windows.Forms.BindingNavigator(this.components); + this.toolStripButton1 = new System.Windows.Forms.ToolStripButton(); + this.toolStripLabel1 = new System.Windows.Forms.ToolStripLabel(); + this.toolStripButton2 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton3 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton4 = new System.Windows.Forms.ToolStripButton(); + this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripTextBox1 = new System.Windows.Forms.ToolStripTextBox(); + this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripButton5 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton6 = new System.Windows.Forms.ToolStripButton(); + this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripButton7 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton8 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton10 = new System.Windows.Forms.ToolStripButton(); + this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripButton12 = new System.Windows.Forms.ToolStripButton(); + this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.dvC = new System.Windows.Forms.DataGridView(); + this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewCheckBoxColumn1 = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.PartNo = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.CustCode = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.CustName = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn5 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn11 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.MFG = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn12 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.batch = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dataGridViewTextBoxColumn14 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.bsC = new System.Windows.Forms.BindingSource(this.components); + this.textBox2 = new System.Windows.Forms.TextBox(); + this.progressBar2 = new System.Windows.Forms.ProgressBar(); + this.bnC = new System.Windows.Forms.BindingNavigator(this.components); + this.bindingNavigatorAddNewItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorCountItem = new System.Windows.Forms.ToolStripLabel(); + this.bindingNavigatorDeleteItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMoveFirstItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMovePreviousItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorPositionItem = new System.Windows.Forms.ToolStripTextBox(); + this.bindingNavigatorSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.bindingNavigatorMoveNextItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorMoveLastItem = new System.Windows.Forms.ToolStripButton(); + this.bindingNavigatorSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.component_Reel_SID_ConvertBindingNavigatorSaveItem = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton9 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton11 = new System.Windows.Forms.ToolStripButton(); + this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripButton13 = new System.Windows.Forms.ToolStripButton(); + this.tabPage3 = new System.Windows.Forms.TabPage(); + this.dvP = new System.Windows.Forms.DataGridView(); + this.sIDDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.printPositionDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.remarkDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.bsP = new System.Windows.Forms.BindingSource(this.components); + this.textBox3 = new System.Windows.Forms.TextBox(); + this.progressBar3 = new System.Windows.Forms.ProgressBar(); + this.bnP = new System.Windows.Forms.BindingNavigator(this.components); + this.toolStripButton14 = new System.Windows.Forms.ToolStripButton(); + this.toolStripLabel2 = new System.Windows.Forms.ToolStripLabel(); + this.toolStripButton15 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton16 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton17 = new System.Windows.Forms.ToolStripButton(); + this.toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripTextBox2 = new System.Windows.Forms.ToolStripTextBox(); + this.toolStripSeparator8 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripButton18 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton19 = new System.Windows.Forms.ToolStripButton(); + this.toolStripSeparator9 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripButton20 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton21 = new System.Windows.Forms.ToolStripButton(); + this.toolStripSeparator10 = new System.Windows.Forms.ToolStripSeparator(); + this.panel1 = new System.Windows.Forms.Panel(); + this.cmbRCode = new System.Windows.Forms.ComboBox(); + this.label1 = new System.Windows.Forms.Label(); + this.taC = new SIDConvInfoEditorII.DataSet1TableAdapters.Component_Reel_SID_ConvertTableAdapter(); + this.tam = new SIDConvInfoEditorII.DataSet1TableAdapters.TableAdapterManager(); + this.taP = new SIDConvInfoEditorII.DataSet1TableAdapters.Component_Reel_Print_InformationTableAdapter(); + this.taI = new SIDConvInfoEditorII.DataSet1TableAdapters.Component_Reel_SID_InformationTableAdapter(); + this.tabControl1.SuspendLayout(); + this.tabPage2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dvI)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsI)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).BeginInit(); + this.panel2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.bnI)).BeginInit(); + this.bnI.SuspendLayout(); + this.tabPage1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dvC)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsC)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bnC)).BeginInit(); + this.bnC.SuspendLayout(); + this.tabPage3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dvP)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsP)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bnP)).BeginInit(); + this.bnP.SuspendLayout(); + this.panel1.SuspendLayout(); + this.SuspendLayout(); + // + // tabControl1 + // + this.tabControl1.Controls.Add(this.tabPage2); + this.tabControl1.Controls.Add(this.tabPage1); + this.tabControl1.Controls.Add(this.tabPage3); + this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tabControl1.Location = new System.Drawing.Point(0, 50); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(1061, 623); + this.tabControl1.TabIndex = 0; + // + // tabPage2 + // + this.tabPage2.AutoScroll = true; + this.tabPage2.Controls.Add(this.dvI); + this.tabPage2.Controls.Add(this.panel2); + this.tabPage2.Controls.Add(this.progressBar1); + this.tabPage2.Controls.Add(this.bnI); + this.tabPage2.Location = new System.Drawing.Point(4, 22); + this.tabPage2.Name = "tabPage2"; + this.tabPage2.Padding = new System.Windows.Forms.Padding(3); + this.tabPage2.Size = new System.Drawing.Size(1053, 597); + this.tabPage2.TabIndex = 1; + this.tabPage2.Text = "SID 정보"; + this.tabPage2.UseVisualStyleBackColor = true; + // + // dvI + // + this.dvI.AutoGenerateColumns = false; + this.dvI.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dvI.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dataGridViewTextBoxColumn6, + this.dataGridViewTextBoxColumn8, + this.dataGridViewTextBoxColumn7, + this.dataGridViewTextBoxColumn9, + this.PrintPosition, + this.qtymax, + this.VenderLot, + this.dataGridViewTextBoxColumn10, + this.attach, + this.VenderName, + this.dataGridViewTextBoxColumn13}); + this.dvI.DataSource = this.bsI; + this.dvI.Dock = System.Windows.Forms.DockStyle.Fill; + this.dvI.Location = new System.Drawing.Point(3, 3); + this.dvI.Name = "dvI"; + this.dvI.RowTemplate.Height = 23; + this.dvI.Size = new System.Drawing.Size(1047, 512); + this.dvI.TabIndex = 0; + // + // dataGridViewTextBoxColumn6 + // + this.dataGridViewTextBoxColumn6.DataPropertyName = "idx"; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.dataGridViewTextBoxColumn6.DefaultCellStyle = dataGridViewCellStyle1; + this.dataGridViewTextBoxColumn6.HeaderText = "idx"; + this.dataGridViewTextBoxColumn6.Name = "dataGridViewTextBoxColumn6"; + this.dataGridViewTextBoxColumn6.ReadOnly = true; + // + // dataGridViewTextBoxColumn8 + // + this.dataGridViewTextBoxColumn8.DataPropertyName = "CustCode"; + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); + this.dataGridViewTextBoxColumn8.DefaultCellStyle = dataGridViewCellStyle2; + this.dataGridViewTextBoxColumn8.HeaderText = "CustCode"; + this.dataGridViewTextBoxColumn8.Name = "dataGridViewTextBoxColumn8"; + // + // dataGridViewTextBoxColumn7 + // + this.dataGridViewTextBoxColumn7.DataPropertyName = "SID"; + dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); + this.dataGridViewTextBoxColumn7.DefaultCellStyle = dataGridViewCellStyle3; + this.dataGridViewTextBoxColumn7.HeaderText = "SID"; + this.dataGridViewTextBoxColumn7.Name = "dataGridViewTextBoxColumn7"; + // + // dataGridViewTextBoxColumn9 + // + this.dataGridViewTextBoxColumn9.DataPropertyName = "PartNo"; + dataGridViewCellStyle4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); + this.dataGridViewTextBoxColumn9.DefaultCellStyle = dataGridViewCellStyle4; + this.dataGridViewTextBoxColumn9.HeaderText = "PartNo"; + this.dataGridViewTextBoxColumn9.Name = "dataGridViewTextBoxColumn9"; + // + // PrintPosition + // + this.PrintPosition.DataPropertyName = "batch"; + dataGridViewCellStyle5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); + this.PrintPosition.DefaultCellStyle = dataGridViewCellStyle5; + this.PrintPosition.HeaderText = "Batch"; + this.PrintPosition.Name = "PrintPosition"; + // + // qtymax + // + this.qtymax.DataPropertyName = "qtymax"; + dataGridViewCellStyle6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); + this.qtymax.DefaultCellStyle = dataGridViewCellStyle6; + this.qtymax.HeaderText = "Qty"; + this.qtymax.Name = "qtymax"; + // + // VenderLot + // + this.VenderLot.DataPropertyName = "VenderLot"; + dataGridViewCellStyle7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.VenderLot.DefaultCellStyle = dataGridViewCellStyle7; + this.VenderLot.HeaderText = "VenderLot"; + this.VenderLot.Name = "VenderLot"; + // + // dataGridViewTextBoxColumn10 + // + this.dataGridViewTextBoxColumn10.DataPropertyName = "CustName"; + this.dataGridViewTextBoxColumn10.HeaderText = "CustName"; + this.dataGridViewTextBoxColumn10.Name = "dataGridViewTextBoxColumn10"; + // + // attach + // + this.attach.DataPropertyName = "attach"; + this.attach.HeaderText = "Attach"; + this.attach.Name = "attach"; + // + // VenderName + // + this.VenderName.DataPropertyName = "VenderName"; + this.VenderName.HeaderText = "VenderName"; + this.VenderName.Name = "VenderName"; + // + // dataGridViewTextBoxColumn13 + // + this.dataGridViewTextBoxColumn13.DataPropertyName = "Remark"; + this.dataGridViewTextBoxColumn13.HeaderText = "Remark"; + this.dataGridViewTextBoxColumn13.Name = "dataGridViewTextBoxColumn13"; + // + // bsI + // + this.bsI.DataMember = "Component_Reel_SID_Information"; + this.bsI.DataSource = this.dataSet1; + // + // dataSet1 + // + this.dataSet1.DataSetName = "DataSet1"; + this.dataSet1.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; + // + // panel2 + // + this.panel2.Controls.Add(this.textBox1); + this.panel2.Controls.Add(this.button1); + this.panel2.Dock = System.Windows.Forms.DockStyle.Bottom; + this.panel2.Location = new System.Drawing.Point(3, 515); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(1047, 40); + this.panel2.TabIndex = 5; + // + // textBox1 + // + this.textBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.textBox1.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.textBox1.Location = new System.Drawing.Point(0, 0); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(947, 39); + this.textBox1.TabIndex = 4; + this.textBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.textBox1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBox1_KeyDown); + // + // button1 + // + this.button1.Dock = System.Windows.Forms.DockStyle.Right; + this.button1.Font = new System.Drawing.Font("굴림", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.button1.Location = new System.Drawing.Point(947, 0); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(100, 40); + this.button1.TabIndex = 5; + this.button1.Text = "..."; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // progressBar1 + // + this.progressBar1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.progressBar1.Location = new System.Drawing.Point(3, 555); + this.progressBar1.Name = "progressBar1"; + this.progressBar1.Size = new System.Drawing.Size(1047, 14); + this.progressBar1.TabIndex = 3; + // + // bnI + // + this.bnI.AddNewItem = this.toolStripButton1; + this.bnI.BindingSource = this.bsI; + this.bnI.CountItem = this.toolStripLabel1; + this.bnI.DeleteItem = this.toolStripButton2; + this.bnI.Dock = System.Windows.Forms.DockStyle.Bottom; + this.bnI.Enabled = false; + this.bnI.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripButton3, + this.toolStripButton4, + this.toolStripSeparator1, + this.toolStripTextBox1, + this.toolStripLabel1, + this.toolStripSeparator2, + this.toolStripButton5, + this.toolStripButton6, + this.toolStripSeparator3, + this.toolStripButton1, + this.toolStripButton2, + this.toolStripButton7, + this.toolStripButton8, + this.toolStripButton10, + this.toolStripSeparator4, + this.toolStripButton12, + this.toolStripSeparator6}); + this.bnI.Location = new System.Drawing.Point(3, 569); + this.bnI.MoveFirstItem = this.toolStripButton3; + this.bnI.MoveLastItem = this.toolStripButton6; + this.bnI.MoveNextItem = this.toolStripButton5; + this.bnI.MovePreviousItem = this.toolStripButton4; + this.bnI.Name = "bnI"; + this.bnI.PositionItem = this.toolStripTextBox1; + this.bnI.Size = new System.Drawing.Size(1047, 25); + this.bnI.TabIndex = 2; + this.bnI.Text = "bindingNavigator1"; + // + // toolStripButton1 + // + this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image"))); + this.toolStripButton1.Name = "toolStripButton1"; + this.toolStripButton1.RightToLeftAutoMirrorImage = true; + this.toolStripButton1.Size = new System.Drawing.Size(51, 22); + this.toolStripButton1.Text = "추가"; + // + // toolStripLabel1 + // + this.toolStripLabel1.Name = "toolStripLabel1"; + this.toolStripLabel1.Size = new System.Drawing.Size(27, 22); + this.toolStripLabel1.Text = "/{0}"; + this.toolStripLabel1.ToolTipText = "전체 항목 수"; + // + // toolStripButton2 + // + this.toolStripButton2.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton2.Image"))); + this.toolStripButton2.Name = "toolStripButton2"; + this.toolStripButton2.RightToLeftAutoMirrorImage = true; + this.toolStripButton2.Size = new System.Drawing.Size(68, 22); + this.toolStripButton2.Text = "삭제(&D)"; + // + // toolStripButton3 + // + this.toolStripButton3.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.toolStripButton3.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton3.Image"))); + this.toolStripButton3.Name = "toolStripButton3"; + this.toolStripButton3.RightToLeftAutoMirrorImage = true; + this.toolStripButton3.Size = new System.Drawing.Size(23, 22); + this.toolStripButton3.Text = "처음으로 이동"; + // + // toolStripButton4 + // + this.toolStripButton4.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.toolStripButton4.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton4.Image"))); + this.toolStripButton4.Name = "toolStripButton4"; + this.toolStripButton4.RightToLeftAutoMirrorImage = true; + this.toolStripButton4.Size = new System.Drawing.Size(23, 22); + this.toolStripButton4.Text = "이전으로 이동"; + // + // toolStripSeparator1 + // + this.toolStripSeparator1.Name = "toolStripSeparator1"; + this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25); + // + // toolStripTextBox1 + // + this.toolStripTextBox1.AccessibleName = "위치"; + this.toolStripTextBox1.AutoSize = false; + this.toolStripTextBox1.Font = new System.Drawing.Font("맑은 고딕", 9F); + this.toolStripTextBox1.Name = "toolStripTextBox1"; + this.toolStripTextBox1.Size = new System.Drawing.Size(50, 23); + this.toolStripTextBox1.Text = "0"; + this.toolStripTextBox1.ToolTipText = "현재 위치"; + // + // toolStripSeparator2 + // + this.toolStripSeparator2.Name = "toolStripSeparator2"; + this.toolStripSeparator2.Size = new System.Drawing.Size(6, 25); + // + // toolStripButton5 + // + this.toolStripButton5.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.toolStripButton5.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton5.Image"))); + this.toolStripButton5.Name = "toolStripButton5"; + this.toolStripButton5.RightToLeftAutoMirrorImage = true; + this.toolStripButton5.Size = new System.Drawing.Size(23, 22); + this.toolStripButton5.Text = "다음으로 이동"; + // + // toolStripButton6 + // + this.toolStripButton6.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.toolStripButton6.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton6.Image"))); + this.toolStripButton6.Name = "toolStripButton6"; + this.toolStripButton6.RightToLeftAutoMirrorImage = true; + this.toolStripButton6.Size = new System.Drawing.Size(23, 22); + this.toolStripButton6.Text = "마지막으로 이동"; + // + // toolStripSeparator3 + // + this.toolStripSeparator3.Name = "toolStripSeparator3"; + this.toolStripSeparator3.Size = new System.Drawing.Size(6, 25); + // + // toolStripButton7 + // + this.toolStripButton7.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton7.Image"))); + this.toolStripButton7.Name = "toolStripButton7"; + this.toolStripButton7.Size = new System.Drawing.Size(66, 22); + this.toolStripButton7.Text = "저장(&S)"; + this.toolStripButton7.Click += new System.EventHandler(this.toolStripButton7_Click); + // + // toolStripButton8 + // + this.toolStripButton8.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.toolStripButton8.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton8.Image"))); + this.toolStripButton8.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton8.Name = "toolStripButton8"; + this.toolStripButton8.Size = new System.Drawing.Size(75, 22); + this.toolStripButton8.Text = "새로고침"; + this.toolStripButton8.Click += new System.EventHandler(this.toolStripButton8_Click); + // + // toolStripButton10 + // + this.toolStripButton10.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton10.Image"))); + this.toolStripButton10.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton10.Name = "toolStripButton10"; + this.toolStripButton10.Size = new System.Drawing.Size(75, 22); + this.toolStripButton10.Text = "가져오기"; + this.toolStripButton10.Click += new System.EventHandler(this.toolStripButton10_Click); + // + // toolStripSeparator4 + // + this.toolStripSeparator4.Name = "toolStripSeparator4"; + this.toolStripSeparator4.Size = new System.Drawing.Size(6, 25); + // + // toolStripButton12 + // + this.toolStripButton12.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton12.Image"))); + this.toolStripButton12.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton12.Name = "toolStripButton12"; + this.toolStripButton12.Size = new System.Drawing.Size(75, 22); + this.toolStripButton12.Text = "전체삭제"; + this.toolStripButton12.Click += new System.EventHandler(this.toolStripButton12_Click); + // + // toolStripSeparator6 + // + this.toolStripSeparator6.Name = "toolStripSeparator6"; + this.toolStripSeparator6.Size = new System.Drawing.Size(6, 25); + // + // tabPage1 + // + this.tabPage1.Controls.Add(this.dvC); + this.tabPage1.Controls.Add(this.textBox2); + this.tabPage1.Controls.Add(this.progressBar2); + this.tabPage1.Controls.Add(this.bnC); + this.tabPage1.Location = new System.Drawing.Point(4, 22); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(3); + this.tabPage1.Size = new System.Drawing.Size(1053, 597); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "SID 변환"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // dvC + // + this.dvC.AutoGenerateColumns = false; + this.dvC.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dvC.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dataGridViewTextBoxColumn1, + this.dataGridViewCheckBoxColumn1, + this.dataGridViewTextBoxColumn2, + this.dataGridViewTextBoxColumn3, + this.PartNo, + this.CustCode, + this.CustName, + this.dataGridViewTextBoxColumn4, + this.dataGridViewTextBoxColumn5, + this.dataGridViewTextBoxColumn11, + this.MFG, + this.dataGridViewTextBoxColumn12, + this.batch, + this.dataGridViewTextBoxColumn14}); + this.dvC.DataSource = this.bsC; + this.dvC.Dock = System.Windows.Forms.DockStyle.Fill; + this.dvC.Location = new System.Drawing.Point(3, 3); + this.dvC.Name = "dvC"; + this.dvC.RowTemplate.Height = 23; + this.dvC.Size = new System.Drawing.Size(1047, 531); + this.dvC.TabIndex = 0; + // + // dataGridViewTextBoxColumn1 + // + this.dataGridViewTextBoxColumn1.DataPropertyName = "idx"; + dataGridViewCellStyle8.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.dataGridViewTextBoxColumn1.DefaultCellStyle = dataGridViewCellStyle8; + this.dataGridViewTextBoxColumn1.HeaderText = "idx"; + this.dataGridViewTextBoxColumn1.Name = "dataGridViewTextBoxColumn1"; + this.dataGridViewTextBoxColumn1.ReadOnly = true; + // + // dataGridViewCheckBoxColumn1 + // + this.dataGridViewCheckBoxColumn1.DataPropertyName = "Chk"; + this.dataGridViewCheckBoxColumn1.HeaderText = "Chk"; + this.dataGridViewCheckBoxColumn1.Name = "dataGridViewCheckBoxColumn1"; + // + // dataGridViewTextBoxColumn2 + // + this.dataGridViewTextBoxColumn2.DataPropertyName = "SIDFrom"; + this.dataGridViewTextBoxColumn2.HeaderText = "SIDFrom"; + this.dataGridViewTextBoxColumn2.Name = "dataGridViewTextBoxColumn2"; + // + // dataGridViewTextBoxColumn3 + // + this.dataGridViewTextBoxColumn3.DataPropertyName = "SIDTo"; + this.dataGridViewTextBoxColumn3.HeaderText = "SIDTo"; + this.dataGridViewTextBoxColumn3.Name = "dataGridViewTextBoxColumn3"; + // + // PartNo + // + this.PartNo.DataPropertyName = "PartNo"; + this.PartNo.HeaderText = "PartNo"; + this.PartNo.Name = "PartNo"; + // + // CustCode + // + this.CustCode.DataPropertyName = "CustCode"; + this.CustCode.HeaderText = "CustCode"; + this.CustCode.Name = "CustCode"; + // + // CustName + // + this.CustName.DataPropertyName = "CustName"; + this.CustName.HeaderText = "CustName"; + this.CustName.Name = "CustName"; + // + // dataGridViewTextBoxColumn4 + // + this.dataGridViewTextBoxColumn4.DataPropertyName = "VenderName"; + this.dataGridViewTextBoxColumn4.HeaderText = "VenderName"; + this.dataGridViewTextBoxColumn4.Name = "dataGridViewTextBoxColumn4"; + // + // dataGridViewTextBoxColumn5 + // + this.dataGridViewTextBoxColumn5.DataPropertyName = "VenderLot"; + this.dataGridViewTextBoxColumn5.HeaderText = "VenderLot"; + this.dataGridViewTextBoxColumn5.Name = "dataGridViewTextBoxColumn5"; + // + // dataGridViewTextBoxColumn11 + // + this.dataGridViewTextBoxColumn11.DataPropertyName = "PrintPosition"; + this.dataGridViewTextBoxColumn11.HeaderText = "PrintPosition"; + this.dataGridViewTextBoxColumn11.Name = "dataGridViewTextBoxColumn11"; + // + // MFG + // + this.MFG.DataPropertyName = "MFG"; + this.MFG.HeaderText = "MFG"; + this.MFG.Name = "MFG"; + // + // dataGridViewTextBoxColumn12 + // + this.dataGridViewTextBoxColumn12.DataPropertyName = "qtymax"; + this.dataGridViewTextBoxColumn12.HeaderText = "Qty"; + this.dataGridViewTextBoxColumn12.Name = "dataGridViewTextBoxColumn12"; + // + // batch + // + this.batch.DataPropertyName = "batch"; + this.batch.HeaderText = "Batch"; + this.batch.Name = "batch"; + // + // dataGridViewTextBoxColumn14 + // + this.dataGridViewTextBoxColumn14.DataPropertyName = "Remark"; + this.dataGridViewTextBoxColumn14.HeaderText = "Remark"; + this.dataGridViewTextBoxColumn14.Name = "dataGridViewTextBoxColumn14"; + // + // bsC + // + this.bsC.DataMember = "Component_Reel_SID_Convert"; + this.bsC.DataSource = this.dataSet1; + // + // textBox2 + // + this.textBox2.Dock = System.Windows.Forms.DockStyle.Bottom; + this.textBox2.Location = new System.Drawing.Point(3, 534); + this.textBox2.Name = "textBox2"; + this.textBox2.Size = new System.Drawing.Size(1047, 21); + this.textBox2.TabIndex = 5; + this.textBox2.KeyDown += new System.Windows.Forms.KeyEventHandler(this.textBox2_KeyDown); + // + // progressBar2 + // + this.progressBar2.Dock = System.Windows.Forms.DockStyle.Bottom; + this.progressBar2.Location = new System.Drawing.Point(3, 555); + this.progressBar2.Name = "progressBar2"; + this.progressBar2.Size = new System.Drawing.Size(1047, 14); + this.progressBar2.TabIndex = 4; + // + // bnC + // + this.bnC.AddNewItem = this.bindingNavigatorAddNewItem; + this.bnC.BindingSource = this.bsC; + this.bnC.CountItem = this.bindingNavigatorCountItem; + this.bnC.DeleteItem = this.bindingNavigatorDeleteItem; + this.bnC.Dock = System.Windows.Forms.DockStyle.Bottom; + this.bnC.Enabled = false; + this.bnC.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.bindingNavigatorMoveFirstItem, + this.bindingNavigatorMovePreviousItem, + this.bindingNavigatorSeparator, + this.bindingNavigatorPositionItem, + this.bindingNavigatorCountItem, + this.bindingNavigatorSeparator1, + this.bindingNavigatorMoveNextItem, + this.bindingNavigatorMoveLastItem, + this.bindingNavigatorSeparator2, + this.bindingNavigatorAddNewItem, + this.bindingNavigatorDeleteItem, + this.component_Reel_SID_ConvertBindingNavigatorSaveItem, + this.toolStripButton9, + this.toolStripButton11, + this.toolStripSeparator5, + this.toolStripButton13}); + this.bnC.Location = new System.Drawing.Point(3, 569); + this.bnC.MoveFirstItem = this.bindingNavigatorMoveFirstItem; + this.bnC.MoveLastItem = this.bindingNavigatorMoveLastItem; + this.bnC.MoveNextItem = this.bindingNavigatorMoveNextItem; + this.bnC.MovePreviousItem = this.bindingNavigatorMovePreviousItem; + this.bnC.Name = "bnC"; + this.bnC.PositionItem = this.bindingNavigatorPositionItem; + this.bnC.Size = new System.Drawing.Size(1047, 25); + this.bnC.TabIndex = 1; + this.bnC.Text = "bindingNavigator1"; + // + // bindingNavigatorAddNewItem + // + this.bindingNavigatorAddNewItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorAddNewItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorAddNewItem.Image"))); + this.bindingNavigatorAddNewItem.Name = "bindingNavigatorAddNewItem"; + this.bindingNavigatorAddNewItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorAddNewItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorAddNewItem.Text = "새로 추가"; + // + // bindingNavigatorCountItem + // + this.bindingNavigatorCountItem.Name = "bindingNavigatorCountItem"; + this.bindingNavigatorCountItem.Size = new System.Drawing.Size(27, 22); + this.bindingNavigatorCountItem.Text = "/{0}"; + this.bindingNavigatorCountItem.ToolTipText = "전체 항목 수"; + // + // bindingNavigatorDeleteItem + // + this.bindingNavigatorDeleteItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorDeleteItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorDeleteItem.Image"))); + this.bindingNavigatorDeleteItem.Name = "bindingNavigatorDeleteItem"; + this.bindingNavigatorDeleteItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorDeleteItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorDeleteItem.Text = "삭제"; + // + // bindingNavigatorMoveFirstItem + // + this.bindingNavigatorMoveFirstItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveFirstItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveFirstItem.Image"))); + this.bindingNavigatorMoveFirstItem.Name = "bindingNavigatorMoveFirstItem"; + this.bindingNavigatorMoveFirstItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveFirstItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveFirstItem.Text = "처음으로 이동"; + // + // bindingNavigatorMovePreviousItem + // + this.bindingNavigatorMovePreviousItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMovePreviousItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMovePreviousItem.Image"))); + this.bindingNavigatorMovePreviousItem.Name = "bindingNavigatorMovePreviousItem"; + this.bindingNavigatorMovePreviousItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMovePreviousItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMovePreviousItem.Text = "이전으로 이동"; + // + // bindingNavigatorSeparator + // + this.bindingNavigatorSeparator.Name = "bindingNavigatorSeparator"; + this.bindingNavigatorSeparator.Size = new System.Drawing.Size(6, 25); + // + // bindingNavigatorPositionItem + // + this.bindingNavigatorPositionItem.AccessibleName = "위치"; + this.bindingNavigatorPositionItem.AutoSize = false; + this.bindingNavigatorPositionItem.Font = new System.Drawing.Font("맑은 고딕", 9F); + this.bindingNavigatorPositionItem.Name = "bindingNavigatorPositionItem"; + this.bindingNavigatorPositionItem.Size = new System.Drawing.Size(50, 23); + this.bindingNavigatorPositionItem.Text = "0"; + this.bindingNavigatorPositionItem.ToolTipText = "현재 위치"; + // + // bindingNavigatorSeparator1 + // + this.bindingNavigatorSeparator1.Name = "bindingNavigatorSeparator1"; + this.bindingNavigatorSeparator1.Size = new System.Drawing.Size(6, 25); + // + // bindingNavigatorMoveNextItem + // + this.bindingNavigatorMoveNextItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveNextItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveNextItem.Image"))); + this.bindingNavigatorMoveNextItem.Name = "bindingNavigatorMoveNextItem"; + this.bindingNavigatorMoveNextItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveNextItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveNextItem.Text = "다음으로 이동"; + // + // bindingNavigatorMoveLastItem + // + this.bindingNavigatorMoveLastItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.bindingNavigatorMoveLastItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveLastItem.Image"))); + this.bindingNavigatorMoveLastItem.Name = "bindingNavigatorMoveLastItem"; + this.bindingNavigatorMoveLastItem.RightToLeftAutoMirrorImage = true; + this.bindingNavigatorMoveLastItem.Size = new System.Drawing.Size(23, 22); + this.bindingNavigatorMoveLastItem.Text = "마지막으로 이동"; + // + // bindingNavigatorSeparator2 + // + this.bindingNavigatorSeparator2.Name = "bindingNavigatorSeparator2"; + this.bindingNavigatorSeparator2.Size = new System.Drawing.Size(6, 25); + // + // component_Reel_SID_ConvertBindingNavigatorSaveItem + // + this.component_Reel_SID_ConvertBindingNavigatorSaveItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.component_Reel_SID_ConvertBindingNavigatorSaveItem.Image = ((System.Drawing.Image)(resources.GetObject("component_Reel_SID_ConvertBindingNavigatorSaveItem.Image"))); + this.component_Reel_SID_ConvertBindingNavigatorSaveItem.Name = "component_Reel_SID_ConvertBindingNavigatorSaveItem"; + this.component_Reel_SID_ConvertBindingNavigatorSaveItem.Size = new System.Drawing.Size(23, 22); + this.component_Reel_SID_ConvertBindingNavigatorSaveItem.Text = "데이터 저장"; + this.component_Reel_SID_ConvertBindingNavigatorSaveItem.Click += new System.EventHandler(this.component_Reel_SID_ConvertBindingNavigatorSaveItem_Click); + // + // toolStripButton9 + // + this.toolStripButton9.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.toolStripButton9.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton9.Image"))); + this.toolStripButton9.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton9.Name = "toolStripButton9"; + this.toolStripButton9.Size = new System.Drawing.Size(75, 22); + this.toolStripButton9.Text = "새로고침"; + this.toolStripButton9.Click += new System.EventHandler(this.toolStripButton9_Click); + // + // toolStripButton11 + // + this.toolStripButton11.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton11.Image"))); + this.toolStripButton11.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton11.Name = "toolStripButton11"; + this.toolStripButton11.Size = new System.Drawing.Size(75, 22); + this.toolStripButton11.Text = "가져오기"; + this.toolStripButton11.Click += new System.EventHandler(this.toolStripButton11_Click); + // + // toolStripSeparator5 + // + this.toolStripSeparator5.Name = "toolStripSeparator5"; + this.toolStripSeparator5.Size = new System.Drawing.Size(6, 25); + // + // toolStripButton13 + // + this.toolStripButton13.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton13.Image"))); + this.toolStripButton13.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton13.Name = "toolStripButton13"; + this.toolStripButton13.Size = new System.Drawing.Size(75, 22); + this.toolStripButton13.Text = "전체삭제"; + this.toolStripButton13.Click += new System.EventHandler(this.toolStripButton13_Click); + // + // tabPage3 + // + this.tabPage3.Controls.Add(this.dvP); + this.tabPage3.Controls.Add(this.textBox3); + this.tabPage3.Controls.Add(this.progressBar3); + this.tabPage3.Controls.Add(this.bnP); + this.tabPage3.Location = new System.Drawing.Point(4, 22); + this.tabPage3.Name = "tabPage3"; + this.tabPage3.Size = new System.Drawing.Size(1053, 597); + this.tabPage3.TabIndex = 2; + this.tabPage3.Text = "프린트정보"; + this.tabPage3.UseVisualStyleBackColor = true; + // + // dvP + // + this.dvP.AutoGenerateColumns = false; + this.dvP.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dvP.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.sIDDataGridViewTextBoxColumn, + this.printPositionDataGridViewTextBoxColumn, + this.remarkDataGridViewTextBoxColumn}); + this.dvP.DataSource = this.bsP; + this.dvP.Dock = System.Windows.Forms.DockStyle.Fill; + this.dvP.Location = new System.Drawing.Point(0, 0); + this.dvP.Name = "dvP"; + this.dvP.RowTemplate.Height = 23; + this.dvP.Size = new System.Drawing.Size(1053, 537); + this.dvP.TabIndex = 7; + // + // sIDDataGridViewTextBoxColumn + // + this.sIDDataGridViewTextBoxColumn.DataPropertyName = "SID"; + this.sIDDataGridViewTextBoxColumn.HeaderText = "SID"; + this.sIDDataGridViewTextBoxColumn.Name = "sIDDataGridViewTextBoxColumn"; + // + // printPositionDataGridViewTextBoxColumn + // + this.printPositionDataGridViewTextBoxColumn.DataPropertyName = "PrintPosition"; + this.printPositionDataGridViewTextBoxColumn.HeaderText = "PrintPosition"; + this.printPositionDataGridViewTextBoxColumn.Name = "printPositionDataGridViewTextBoxColumn"; + // + // remarkDataGridViewTextBoxColumn + // + this.remarkDataGridViewTextBoxColumn.DataPropertyName = "Remark"; + this.remarkDataGridViewTextBoxColumn.HeaderText = "Remark"; + this.remarkDataGridViewTextBoxColumn.Name = "remarkDataGridViewTextBoxColumn"; + // + // bsP + // + this.bsP.DataMember = "Component_Reel_Print_Information"; + this.bsP.DataSource = this.dataSet1; + // + // textBox3 + // + this.textBox3.Dock = System.Windows.Forms.DockStyle.Bottom; + this.textBox3.Location = new System.Drawing.Point(0, 537); + this.textBox3.Name = "textBox3"; + this.textBox3.Size = new System.Drawing.Size(1053, 21); + this.textBox3.TabIndex = 6; + // + // progressBar3 + // + this.progressBar3.Dock = System.Windows.Forms.DockStyle.Bottom; + this.progressBar3.Location = new System.Drawing.Point(0, 558); + this.progressBar3.Name = "progressBar3"; + this.progressBar3.Size = new System.Drawing.Size(1053, 14); + this.progressBar3.TabIndex = 5; + // + // bnP + // + this.bnP.AddNewItem = this.toolStripButton14; + this.bnP.BindingSource = this.bsP; + this.bnP.CountItem = this.toolStripLabel2; + this.bnP.DeleteItem = this.toolStripButton15; + this.bnP.Dock = System.Windows.Forms.DockStyle.Bottom; + this.bnP.Enabled = false; + this.bnP.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripButton16, + this.toolStripButton17, + this.toolStripSeparator7, + this.toolStripTextBox2, + this.toolStripLabel2, + this.toolStripSeparator8, + this.toolStripButton18, + this.toolStripButton19, + this.toolStripSeparator9, + this.toolStripButton14, + this.toolStripButton15, + this.toolStripButton20, + this.toolStripButton21, + this.toolStripSeparator10}); + this.bnP.Location = new System.Drawing.Point(0, 572); + this.bnP.MoveFirstItem = this.toolStripButton16; + this.bnP.MoveLastItem = this.toolStripButton19; + this.bnP.MoveNextItem = this.toolStripButton18; + this.bnP.MovePreviousItem = this.toolStripButton17; + this.bnP.Name = "bnP"; + this.bnP.PositionItem = this.toolStripTextBox2; + this.bnP.Size = new System.Drawing.Size(1053, 25); + this.bnP.TabIndex = 2; + this.bnP.Text = "bindingNavigator1"; + // + // toolStripButton14 + // + this.toolStripButton14.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.toolStripButton14.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton14.Image"))); + this.toolStripButton14.Name = "toolStripButton14"; + this.toolStripButton14.RightToLeftAutoMirrorImage = true; + this.toolStripButton14.Size = new System.Drawing.Size(23, 22); + this.toolStripButton14.Text = "새로 추가"; + // + // toolStripLabel2 + // + this.toolStripLabel2.Name = "toolStripLabel2"; + this.toolStripLabel2.Size = new System.Drawing.Size(27, 22); + this.toolStripLabel2.Text = "/{0}"; + this.toolStripLabel2.ToolTipText = "전체 항목 수"; + // + // toolStripButton15 + // + this.toolStripButton15.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.toolStripButton15.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton15.Image"))); + this.toolStripButton15.Name = "toolStripButton15"; + this.toolStripButton15.RightToLeftAutoMirrorImage = true; + this.toolStripButton15.Size = new System.Drawing.Size(23, 22); + this.toolStripButton15.Text = "삭제"; + // + // toolStripButton16 + // + this.toolStripButton16.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.toolStripButton16.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton16.Image"))); + this.toolStripButton16.Name = "toolStripButton16"; + this.toolStripButton16.RightToLeftAutoMirrorImage = true; + this.toolStripButton16.Size = new System.Drawing.Size(23, 22); + this.toolStripButton16.Text = "처음으로 이동"; + // + // toolStripButton17 + // + this.toolStripButton17.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.toolStripButton17.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton17.Image"))); + this.toolStripButton17.Name = "toolStripButton17"; + this.toolStripButton17.RightToLeftAutoMirrorImage = true; + this.toolStripButton17.Size = new System.Drawing.Size(23, 22); + this.toolStripButton17.Text = "이전으로 이동"; + // + // toolStripSeparator7 + // + this.toolStripSeparator7.Name = "toolStripSeparator7"; + this.toolStripSeparator7.Size = new System.Drawing.Size(6, 25); + // + // toolStripTextBox2 + // + this.toolStripTextBox2.AccessibleName = "위치"; + this.toolStripTextBox2.AutoSize = false; + this.toolStripTextBox2.Font = new System.Drawing.Font("맑은 고딕", 9F); + this.toolStripTextBox2.Name = "toolStripTextBox2"; + this.toolStripTextBox2.Size = new System.Drawing.Size(50, 23); + this.toolStripTextBox2.Text = "0"; + this.toolStripTextBox2.ToolTipText = "현재 위치"; + // + // toolStripSeparator8 + // + this.toolStripSeparator8.Name = "toolStripSeparator8"; + this.toolStripSeparator8.Size = new System.Drawing.Size(6, 25); + // + // toolStripButton18 + // + this.toolStripButton18.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.toolStripButton18.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton18.Image"))); + this.toolStripButton18.Name = "toolStripButton18"; + this.toolStripButton18.RightToLeftAutoMirrorImage = true; + this.toolStripButton18.Size = new System.Drawing.Size(23, 22); + this.toolStripButton18.Text = "다음으로 이동"; + // + // toolStripButton19 + // + this.toolStripButton19.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.toolStripButton19.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton19.Image"))); + this.toolStripButton19.Name = "toolStripButton19"; + this.toolStripButton19.RightToLeftAutoMirrorImage = true; + this.toolStripButton19.Size = new System.Drawing.Size(23, 22); + this.toolStripButton19.Text = "마지막으로 이동"; + // + // toolStripSeparator9 + // + this.toolStripSeparator9.Name = "toolStripSeparator9"; + this.toolStripSeparator9.Size = new System.Drawing.Size(6, 25); + // + // toolStripButton20 + // + this.toolStripButton20.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.toolStripButton20.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton20.Image"))); + this.toolStripButton20.Name = "toolStripButton20"; + this.toolStripButton20.Size = new System.Drawing.Size(23, 22); + this.toolStripButton20.Text = "데이터 저장"; + this.toolStripButton20.Click += new System.EventHandler(this.toolStripButton20_Click); + // + // toolStripButton21 + // + this.toolStripButton21.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.toolStripButton21.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton21.Image"))); + this.toolStripButton21.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton21.Name = "toolStripButton21"; + this.toolStripButton21.Size = new System.Drawing.Size(75, 22); + this.toolStripButton21.Text = "새로고침"; + this.toolStripButton21.Click += new System.EventHandler(this.toolStripButton21_Click); + // + // toolStripSeparator10 + // + this.toolStripSeparator10.Name = "toolStripSeparator10"; + this.toolStripSeparator10.Size = new System.Drawing.Size(6, 25); + // + // panel1 + // + this.panel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(200)))), ((int)(((byte)(200)))), ((int)(((byte)(200))))); + this.panel1.Controls.Add(this.cmbRCode); + this.panel1.Controls.Add(this.label1); + this.panel1.Dock = System.Windows.Forms.DockStyle.Top; + this.panel1.Location = new System.Drawing.Point(0, 0); + this.panel1.Name = "panel1"; + this.panel1.Padding = new System.Windows.Forms.Padding(5); + this.panel1.Size = new System.Drawing.Size(1061, 50); + this.panel1.TabIndex = 5; + // + // cmbRCode + // + this.cmbRCode.Dock = System.Windows.Forms.DockStyle.Fill; + this.cmbRCode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmbRCode.Font = new System.Drawing.Font("맑은 고딕", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.cmbRCode.FormattingEnabled = true; + this.cmbRCode.Items.AddRange(new object[] { + "[R0]-물류 ", + "[R1]-리시빙1", + "[R2]-리시빙2", + "[R3]-리시빙3", + "[IB]-INBOUND"}); + this.cmbRCode.Location = new System.Drawing.Point(135, 5); + this.cmbRCode.Name = "cmbRCode"; + this.cmbRCode.Size = new System.Drawing.Size(921, 40); + this.cmbRCode.TabIndex = 1; + this.cmbRCode.SelectedIndexChanged += new System.EventHandler(this.cmbRCode_SelectedIndexChanged); + // + // label1 + // + this.label1.Dock = System.Windows.Forms.DockStyle.Left; + this.label1.Font = new System.Drawing.Font("맑은 고딕", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label1.Location = new System.Drawing.Point(5, 5); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(130, 40); + this.label1.TabIndex = 0; + this.label1.Text = "대상장비선택"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // taC + // + this.taC.ClearBeforeFill = true; + // + // tam + // + this.tam.BackupDataSetBeforeUpdate = false; + this.tam.Component_Reel_Print_InformationTableAdapter = this.taP; + this.tam.Component_Reel_SID_ConvertTableAdapter = this.taC; + this.tam.Component_Reel_SID_InformationTableAdapter = this.taI; + this.tam.UpdateOrder = SIDConvInfoEditorII.DataSet1TableAdapters.TableAdapterManager.UpdateOrderOption.InsertUpdateDelete; + // + // taP + // + this.taP.ClearBeforeFill = true; + // + // taI + // + this.taI.ClearBeforeFill = true; + // + // fMain + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1061, 673); + this.Controls.Add(this.tabControl1); + this.Controls.Add(this.panel1); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "fMain"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "fSIDInformation"; + this.Load += new System.EventHandler(this.fSIDInformation_Load); + this.tabControl1.ResumeLayout(false); + this.tabPage2.ResumeLayout(false); + this.tabPage2.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dvI)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsI)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dataSet1)).EndInit(); + this.panel2.ResumeLayout(false); + this.panel2.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.bnI)).EndInit(); + this.bnI.ResumeLayout(false); + this.bnI.PerformLayout(); + this.tabPage1.ResumeLayout(false); + this.tabPage1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dvC)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsC)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bnC)).EndInit(); + this.bnC.ResumeLayout(false); + this.bnC.PerformLayout(); + this.tabPage3.ResumeLayout(false); + this.tabPage3.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dvP)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bsP)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bnP)).EndInit(); + this.bnP.ResumeLayout(false); + this.bnP.PerformLayout(); + this.panel1.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.TabPage tabPage2; + private DataSet1 dataSet1; + private System.Windows.Forms.BindingSource bsC; + private DataSet1TableAdapters.Component_Reel_SID_ConvertTableAdapter taC; + private DataSet1TableAdapters.TableAdapterManager tam; + private System.Windows.Forms.BindingNavigator bnC; + private System.Windows.Forms.ToolStripButton bindingNavigatorAddNewItem; + private System.Windows.Forms.ToolStripLabel bindingNavigatorCountItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorDeleteItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveFirstItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMovePreviousItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator; + private System.Windows.Forms.ToolStripTextBox bindingNavigatorPositionItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator1; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveNextItem; + private System.Windows.Forms.ToolStripButton bindingNavigatorMoveLastItem; + private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator2; + private System.Windows.Forms.ToolStripButton component_Reel_SID_ConvertBindingNavigatorSaveItem; + private System.Windows.Forms.DataGridView dvC; + private DataSet1TableAdapters.Component_Reel_SID_InformationTableAdapter taI; + private System.Windows.Forms.BindingSource bsI; + private System.Windows.Forms.DataGridView dvI; + private System.Windows.Forms.BindingNavigator bnI; + private System.Windows.Forms.ToolStripButton toolStripButton1; + private System.Windows.Forms.ToolStripLabel toolStripLabel1; + private System.Windows.Forms.ToolStripButton toolStripButton2; + private System.Windows.Forms.ToolStripButton toolStripButton3; + private System.Windows.Forms.ToolStripButton toolStripButton4; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; + private System.Windows.Forms.ToolStripTextBox toolStripTextBox1; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator2; + private System.Windows.Forms.ToolStripButton toolStripButton5; + private System.Windows.Forms.ToolStripButton toolStripButton6; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator3; + private System.Windows.Forms.ToolStripButton toolStripButton7; + private System.Windows.Forms.ToolStripButton toolStripButton8; + private System.Windows.Forms.ToolStripButton toolStripButton9; + private System.Windows.Forms.ToolStripButton toolStripButton10; + private System.Windows.Forms.ToolStripButton toolStripButton11; + private System.Windows.Forms.ProgressBar progressBar1; + private System.Windows.Forms.ProgressBar progressBar2; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator4; + private System.Windows.Forms.ToolStripButton toolStripButton12; + private System.Windows.Forms.ToolStripButton toolStripButton13; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator5; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator6; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.ComboBox cmbRCode; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.TextBox textBox2; + private System.Windows.Forms.TabPage tabPage3; + private System.Windows.Forms.DataGridView dvP; + private System.Windows.Forms.BindingSource bsP; + private System.Windows.Forms.TextBox textBox3; + private System.Windows.Forms.ProgressBar progressBar3; + private System.Windows.Forms.BindingNavigator bnP; + private System.Windows.Forms.ToolStripButton toolStripButton14; + private System.Windows.Forms.ToolStripLabel toolStripLabel2; + private System.Windows.Forms.ToolStripButton toolStripButton15; + private System.Windows.Forms.ToolStripButton toolStripButton16; + private System.Windows.Forms.ToolStripButton toolStripButton17; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator7; + private System.Windows.Forms.ToolStripTextBox toolStripTextBox2; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator8; + private System.Windows.Forms.ToolStripButton toolStripButton18; + private System.Windows.Forms.ToolStripButton toolStripButton19; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator9; + private System.Windows.Forms.ToolStripButton toolStripButton20; + private System.Windows.Forms.ToolStripButton toolStripButton21; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator10; + private DataSet1TableAdapters.Component_Reel_Print_InformationTableAdapter taP; + private System.Windows.Forms.DataGridViewTextBoxColumn sIDDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn printPositionDataGridViewTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn remarkDataGridViewTextBoxColumn; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.Button button1; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn6; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn8; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn7; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn9; + private System.Windows.Forms.DataGridViewTextBoxColumn PrintPosition; + private System.Windows.Forms.DataGridViewTextBoxColumn qtymax; + private System.Windows.Forms.DataGridViewTextBoxColumn VenderLot; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn10; + private System.Windows.Forms.DataGridViewTextBoxColumn attach; + private System.Windows.Forms.DataGridViewTextBoxColumn VenderName; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn13; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1; + private System.Windows.Forms.DataGridViewCheckBoxColumn dataGridViewCheckBoxColumn1; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn3; + private System.Windows.Forms.DataGridViewTextBoxColumn PartNo; + private System.Windows.Forms.DataGridViewTextBoxColumn CustCode; + private System.Windows.Forms.DataGridViewTextBoxColumn CustName; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn4; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn5; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn11; + private System.Windows.Forms.DataGridViewTextBoxColumn MFG; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn12; + private System.Windows.Forms.DataGridViewTextBoxColumn batch; + private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn14; + } +} \ No newline at end of file diff --git a/SID Information/fMain.cs b/SID Information/fMain.cs new file mode 100644 index 0000000..86cfb91 --- /dev/null +++ b/SID Information/fMain.cs @@ -0,0 +1,527 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace SIDConvInfoEditorII +{ + public partial class fMain : Form + { + public fMain() + { + InitializeComponent(); + PUB.init(); + this.dataSet1.Component_Reel_SID_Information.TableNewRow += Component_Reel_SID_Information_TableNewRow; + this.FormClosed += FSIDInformation_FormClosed; + this.Text = $"{Application.ProductName} v{Application.ProductVersion}"; + this.dvC.DataError += DvC_DataError; + this.dvI.DataError += DvC_DataError; + this.dvP.DataError += DvC_DataError; + } + + private void DvC_DataError(object sender, DataGridViewDataErrorEventArgs e) + { + //throw new NotImplementedException(); + } + + private void FSIDInformation_FormClosed(object sender, FormClosedEventArgs e) + { + + } + + private void Component_Reel_SID_Information_TableNewRow(object sender, DataTableNewRowEventArgs e) + { + e.Row["MC"] = PUB.setting.McName; + e.Row["wdate"] = DateTime.Now; + } + + private void component_Reel_SID_ConvertBindingNavigatorSaveItem_Click(object sender, EventArgs e) + { + this.Validate(); + this.bsC.EndEdit(); + this.taC.Update(this.dataSet1.Component_Reel_SID_Convert); + //this.tam.UpdateAll(this.dataSet1); + + } + + void SelectCombo() + { + // + for (int i = 0; i < this.cmbRCode.Items.Count; i++) + { + if (cmbRCode.Items[i].ToString().StartsWith($"[{PUB.setting.McName}]")) + { + cmbRCode.SelectedIndex = i; + break; + } + } + } + private void fSIDInformation_Load(object sender, EventArgs e) + { + + SelectCombo(); + if (cmbRCode.SelectedIndex >= 0) + { + Refresh_SidInfo(); + Refresh_SidConv(); + Refresh_SidPrintInfo(); + } + else + { + this.Show(); + Application.DoEvents(); + UTIL.MsgE("대상장비를 선택하세요"); + } + + } + + private void toolStripButton9_Click(object sender, EventArgs e) + { + //update sidconv + Refresh_SidConv(); + } + void Refresh_SidPrintInfo() + { + // TODO: 이 코드는 데이터를 'dataSet1.Component_Reel_SID_Convert' 테이블에 로드합니다. 필요 시 이 코드를 이동하거나 제거할 수 있습니다. + this.taP.Fill(this.dataSet1.Component_Reel_Print_Information, PUB.setting.McName); + dvP.AutoResizeColumns(); + this.bnP.Enabled = true; + } + + + void Refresh_SidConv() + { + // TODO: 이 코드는 데이터를 'dataSet1.Component_Reel_SID_Convert' 테이블에 로드합니다. 필요 시 이 코드를 이동하거나 제거할 수 있습니다. + this.taC.Fill(this.dataSet1.Component_Reel_SID_Convert);//, PUB.setting.McName); + dvC.AutoResizeColumns(); + this.bnC.Enabled = true; + } + void Refresh_SidInfo() + { + // TODO: 이 코드는 데이터를 'dataSet1.Component_Reel_SID_Information' 테이블에 로드합니다. 필요 시 이 코드를 이동하거나 제거할 수 있습니다. + this.taI.Fill(this.dataSet1.Component_Reel_SID_Information, PUB.setting.McName); + dvI.AutoResizeColumns(); + this.bnI.Enabled = true; + } + + private void toolStripButton8_Click(object sender, EventArgs e) + { + //update sidinfo + this.Validate(); + this.bsI.EndEdit(); + this.bsC.EndEdit(); + if (this.dataSet1.Component_Reel_SID_Information.GetChanges() != null) + { + if (UTIL.MsgQ("새로고침을 진행하면 변경된 자료가 손실됩니다\n실행할까요?") != DialogResult.Yes) return; + } + Refresh_SidInfo(); + } + + private void toolStripButton11_Click(object sender, EventArgs e) + { + + var sg = "엑셀 파일 포맷은 아래와 같아야 합니다\n" + + "SID From | SID To | Remark\n" + + "열번호가 일치하는 엑셀을 사용하시기 바랍니다"; + UTIL.MsgI(sg); + + //엑셀을 읽어와서 처리한다. + var od = new OpenFileDialog(); + if (od.ShowDialog() != DialogResult.OK) return; + libxl.Book book; + var fi = new System.IO.FileInfo(od.FileName); + var ext = fi.Extension.ToLower(); + if (ext == ".xlsx") book = new libxl.XmlBook(); + else if (ext == ".xls") book = new libxl.BinBook(); + else + { + UTIL.MsgE("지원되지 않는 파일 입니다"); + return; + } + + var keyinfo = Properties.Settings.Default.libxl.Split('/'); + book.setKey(keyinfo[0], keyinfo[1]); + book.load(fi.FullName); + var sheet = book.getSheet(0); + + + var cs = sheet.firstCol(); + var ce = sheet.lastCol(); + var rs = sheet.firstRow(); + var re = sheet.lastRow(); + + this.progressBar1.Minimum = 0; + this.progressBar1.Maximum = re; + this.progressBar1.Value = 0; + + if (rs == 0) rs += 1; + + int cntA = 0; + int cntU = 0; + for (int row = rs; row <= re; row++) + { + if (this.progressBar1.Value < this.progressBar1.Maximum) + this.progressBar1.Value += 1; + + var cSidFrom = sheet.readStr(row, 0); + var cSidTo = sheet.readStr(row, 1); + var cRemark = sheet.readStr(row, 2); + + if (cSidFrom.isEmpty() || cSidTo.isEmpty() || cRemark.isEmpty()) continue; + + //if (cSID.isEmpty() && cCustCode.isEmpty()) break; // + //if (cSID.StartsWith("10")) + //{ + EnumerableRowCollection plist = null; + plist = this.dataSet1.Component_Reel_SID_Convert.Where(t => t.SIDFrom == cSidFrom && t.SIDTo == cSidTo); + + if (plist == null || plist.Any() == false) + { + //존재하지않으면 추가한다. + var newdr = this.dataSet1.Component_Reel_SID_Convert.NewComponent_Reel_SID_ConvertRow(); + newdr.MC = PUB.setting.McName; + newdr.SIDFrom = cSidFrom; + newdr.SIDTo = cSidTo; + newdr.Remark = cRemark; + newdr.Chk = true; + newdr.wdate = DateTime.Now; + this.dataSet1.Component_Reel_SID_Convert.AddComponent_Reel_SID_ConvertRow(newdr); + cntA += 1; + } + else + { + //있다면 업데이트 해준다. + //foreach (var item in plist) + //{ + // if (cSID.isEmpty() == false) + // { + // item.SID = cSID; ; + // item.EndEdit(); + // cntU += 1; + // } + + //} + } + //} + + } + UTIL.MsgI(string.Format("추가:{0},변경:{1}", cntA, cntU)); + dvC.AutoResizeColumns(); + } + + private void toolStripButton10_Click(object sender, EventArgs e) + { + this.Validate(); + this.bsI.EndEdit(); + this.bsC.EndEdit(); + + var sb = new System.Text.StringBuilder(); + sb.AppendLine("가져오는 파일의 열 순서는 아래와 같습니다"); + sb.AppendLine("CUST# SID# PART# BATCH QTY VLOT"); + sb.AppendLine("가져온 순서가 맞지 않다면 엑셀파일의 열 데이터를 확인하세요"); + UTIL.MsgI(sb.ToString()); + + //엑셀을 읽어와서 처리한다. + var od = new OpenFileDialog(); + if (od.ShowDialog() != DialogResult.OK) return; + libxl.Book book; + var fi = new System.IO.FileInfo(od.FileName); + var ext = fi.Extension.ToLower(); + if (ext == ".xlsx") book = new libxl.XmlBook(); + else if (ext == ".xls") book = new libxl.BinBook(); + else + { + UTIL.MsgE("지원되지 않는 파일 입니다"); + return; + } + + var keyinfo = Properties.Settings.Default.libxl.Split('/'); + book.setKey(keyinfo[0], keyinfo[1]); + book.load(fi.FullName); + var sheet = book.getSheet(0); + + + var cs = sheet.firstCol(); + var ce = sheet.lastCol(); + var rs = sheet.firstRow(); + var re = sheet.lastRow(); + + this.progressBar1.Minimum = 0; + this.progressBar1.Maximum = re; + this.progressBar1.Value = 0; + + if (rs == 0) rs += 1; + + int cntA = 0; + int cntU = 0; + for (int row = rs; row <= re; row++) + { + if (this.progressBar1.Value < this.progressBar1.Maximum) + this.progressBar1.Value += 1; + + var cCustCode = sheet.readStr(row, 0); + var cSID = sheet.readStr(row, 1); + var cPartNo = sheet.readStr(row, 2); + var batch = string.Empty; + var qty = 0; + var vLot = string.Empty; + + if (ce > 2) batch = sheet.readStr(row, 3); + if (ce > 3) + { + var ct = sheet.cellType(row, 4); + if (ct == libxl.CellType.CELLTYPE_NUMBER) qty = (int)sheet.readNum(row, 4); + if (ct == libxl.CellType.CELLTYPE_STRING) + { + var str = sheet.readStr(row, 4).Replace(",", "").Trim(); + int.TryParse(str, out qty); + } + } + if (ce > 4) //221013 vlot 추가 + vLot = sheet.readStr(row, 5); + + if (cCustCode.isEmpty() == false && cCustCode.Length != 4) + cCustCode = cCustCode.PadLeft(4, '0'); + if (cSID.isEmpty() && cCustCode.isEmpty()) break; // + + if (cSID.Length > 9) + { + UTIL.MsgI($"다음 SID의 길이가 9자리를 초과하여 앞자리만 사용합니다\n\n" + + $"변경전 : {cSID}, 길이={cSID.Length}\n" + + $"변경후 : {cSID.Substring(0, 9)}, 길이=9"); + cSID = cSID.Substring(0, 9); + } + + + //if (cSID.StartsWith("10")) + //{ + EnumerableRowCollection plist = null; + + if (vLot.isEmpty() == false) + plist = this.dataSet1.Component_Reel_SID_Information.Where(t => t.SID == cSID && t.CustCode == cCustCode && t.PartNo == cPartNo && t.VenderLot == vLot); + else + plist = this.dataSet1.Component_Reel_SID_Information.Where(t => t.SID == cSID && t.CustCode == cCustCode && t.PartNo == cPartNo); + + if (plist == null || plist.Any() == false) + { + //존재하지않으면 추가한다. + var newdr = this.dataSet1.Component_Reel_SID_Information.NewComponent_Reel_SID_InformationRow(); + newdr.CustCode = cCustCode; + newdr.SID = cSID; + newdr.PartNo = cPartNo; + newdr.MC = PUB.setting.McName; + newdr.CustName = string.Empty; + newdr.batch = batch; + newdr.qtymax = qty; + newdr.VenderName = string.Empty; + newdr.VenderLot = vLot; //221013 + newdr.Remark = string.Empty; + newdr.wdate = DateTime.Now; + this.dataSet1.Component_Reel_SID_Information.AddComponent_Reel_SID_InformationRow(newdr); + cntA += 1; + } + else + { + //있다면 업데이트 해준다. + //foreach (var item in plist) + //{ + // if (cSID.isEmpty() == false) + // { + // item.SID = cSID; ; + // item.EndEdit(); + // cntU += 1; + // } + + //} + } + //} + + } + UTIL.MsgI(string.Format("추가:{0},변경:{1}", cntA, cntU)); + dvI.AutoResizeColumns(); + } + + private void toolStripButton12_Click(object sender, EventArgs e) + { + this.Validate(); + this.bsI.EndEdit(); + this.bsC.EndEdit(); + + if (UTIL.MsgQ("현재 자료를 삭제 할까요?") != DialogResult.Yes) return; + this.taI.DeleteMC(PUB.setting.McName); + Refresh_SidInfo(); + } + + private void toolStripButton13_Click(object sender, EventArgs e) + { + if (UTIL.MsgQ("현재 자료를 삭제 할까요?") != DialogResult.Yes) return; + dataSet1.Component_Reel_SID_Convert.Clear(); + taC.DeleteAll(); + Refresh_SidConv(); + } + + private void toolStripButton7_Click(object sender, EventArgs e) + { + this.Validate(); + this.bsI.EndEdit(); + this.bsC.EndEdit(); + + this.taI.Update(this.dataSet1.Component_Reel_SID_Information); + } + + private void cmbRCode_SelectedIndexChanged(object sender, EventArgs e) + { + //cmbRCode.Enabled = false; + if (cmbRCode.SelectedIndex < 0) return; + + //업데이트 데이터 변경 감지 + var newmc = cmbRCode.Text.Substring(1, 2); + if (PUB.setting.McName.Equals(newmc) == false) + { + //변경여부확인 + if (this.dataSet1.HasChanges()) + { + if (UTIL.MsgQ("변경된 자료가 있습니다. 대상장비를 변경할까요?\n현재 변경된 자료를 손실 됩니다") != DialogResult.Yes) + { + SelectCombo(); //다시 콤보를 선택해준다. + return; + } + } + + PUB.setting.McName = cmbRCode.Text.Substring(1, 2); + PUB.setting.Save(); + Refresh_SidInfo(); + Refresh_SidConv(); + Refresh_SidPrintInfo(); + + } + else + { + //같은자료이므로 처리하지 않는다. + } + + } + + + private void textBox1_KeyDown(object sender, KeyEventArgs e) + { + var tb = sender as TextBox; + + if (e.KeyCode == Keys.Enter) + { + FindText(tb); + } + } + void FindText(TextBox tb) + { + var skey = tb.Text.Trim(); + if (skey.isEmpty()) + { + bsI.Filter = string.Empty; + tb.BackColor = Color.White; + } + else + { + List cols = new List(); + foreach (DataColumn col in this.dataSet1.Component_Reel_SID_Information.Columns) + { + if (col.ColumnName.ToString().ToUpper() == "IDX") continue; + if (col.ColumnName.ToString().ToUpper() == "WDATE") continue; + if (col.DataType == typeof(Int32)) continue; + if (col.DataType == typeof(Int16)) continue; + if (col.DataType == typeof(Guid)) continue; + cols.Add(col.ColumnName); + } + + // liek like '' or + var filter = string.Join($" like '%{skey.Replace("'", "''")}%' or ", cols); + filter += $" like '%{skey.Replace("'", "''")}%'"; + try + { + bsI.Filter = filter; + tb.BackColor = Color.Lime; + } + catch (Exception ex) + { + UTIL.MsgE(ex.Message); + tb.BackColor = Color.Tomato; + } + + } + + tb.SelectAll(); + tb.Focus(); + } + + private void textBox2_KeyDown(object sender, KeyEventArgs e) + { + var tb = sender as TextBox; + + if (e.KeyCode == Keys.Enter) + { + var skey = tb.Text.Trim(); + if (skey.isEmpty()) + { + bsC.Filter = string.Empty; + tb.BackColor = Color.White; + } + else + { + List cols = new List(); + foreach (DataColumn col in this.dataSet1.Component_Reel_SID_Convert.Columns) + { + if (col.ColumnName.ToString().ToUpper() == "IDX") continue; + if (col.ColumnName.ToString().ToUpper() == "WDATE") continue; + cols.Add(col.ColumnName); + } + + // liek like '' or + var filter = string.Join($" like '%{skey.Replace("'", "''")}%' or ", cols); + filter += $" like '%{skey.Replace("'", "''")}%'"; + try + { + bsC.Filter = filter; + tb.BackColor = Color.Lime; + } + catch + { + tb.BackColor = Color.Tomato; + } + + } + + tb.SelectAll(); + tb.Focus(); + } + } + + private void toolStripButton21_Click(object sender, EventArgs e) + { + //update sidconv + Refresh_SidPrintInfo(); + } + + private void toolStripButton20_Click(object sender, EventArgs e) + { + this.Validate(); + this.bsP.EndEdit(); + this.taP.Update(this.dataSet1.Component_Reel_Print_Information); + //this.tam.UpdateAll(this.dataSet1); + } + + private void button1_Click(object sender, EventArgs e) + { + var f = new Project.Dialog.fTouchKeyFull("검색", textBox1.Text); + if (f.ShowDialog() == DialogResult.OK) + { + textBox1.Text = f.ValueString; + FindText(textBox1); + } + } + } +} diff --git a/SID Information/fMain.resx b/SID Information/fMain.resx new file mode 100644 index 0000000..bfa101e --- /dev/null +++ b/SID Information/fMain.resx @@ -0,0 +1,789 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + True + + + True + + + True + + + True + + + 475, 17 + + + 86, 17 + + + 17, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC + pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++ + Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ + /5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA + zpX/v6RC8f/fWzFAjeH/p+Zp/J+QpfW/O0P3f3uq/v/mREPCYTIb6E+Qc//dCPjfk6FDWAM6APnz3w1/ + IPb735qsT7oB3em6YP+CcH2cEekGtCQZ/G+IN/xfE2v8vzLahHQD6AQYGAAkI9iedfyIaQAAAABJRU5E + rkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC + DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC + rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV + i9OIytR3EMNWcJ/BWH8A6j8/bOGFxwXNxYEvGbMQ9XnQ1/K78KfY3/VXzkMY0qFGG2H4RoLGQshJQNbG + 86CNhdrsX9a/uQZTPhQl4rMY4OLofbl3aX7I8uwPC7y/g1YdjyVJuEvT8e1tfwUYteHUxCCfHChDeHmG + QQvokjlOU+PbWA0x3pZnILVVI3uvQyHsbiLnqnGmRCF1NYD8pDhpRxOH7HQoAKZGkFKjceszQbpSrumX + bO+G80MFwKUTxgfgcO/b8D9IpXoFiiMDHIQm0skAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 + wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0 + v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg + UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA + Iu/O/9T+11gVGSSd+C+b9vW/bvA83AYYZt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPu + lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w + 5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f + Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+ + 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 + n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI + N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f + oAc0QjgAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// + h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B + twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA + kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG + WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9 + 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAAExJREFUOE9joAr49u3bf1IxVCsEgAWC58Dxh/cf4RhZDETHTNiHaQgpBoAwzBCo + dtINAGGiDUDGyGpoawAxeNSAQWkAORiqnRLAwAAA9EMMU8Daa3MAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFKSURBVDhPtZMxSwNRDMfvu9SC4ODW0q1+G8GhIIp2qINL + ERGk0IK4ugkiKjq0q4KDRZw8QfHQoUhxExShsb+YXE+9K3TwB+Hx8vJPcnnvgizkF+aO/bZNh4DSckMK + ZsWVHRXB7OKurhb6l/ChJ8XVlrR7b3IWveqKFdYPpN4OJV/Zy07Awcx8XYWN7rNa+TCU8lEkm1d9OXn6 + lNzSaXoCF2/sd3TFphdasn0ZaYK5475s3bxLrno+PgHtJ6Hl5t2HirGpWlf9JhuBk4H5ISsdkIC2qYw4 + v3Ydx8SoZ0JM+g0OMlOBSlSkMh14MGuywx/gRMyU+V7Mr8thNswITDYCJ5URMm2mzvTpAEveTnaCYdsk + 4L5JwP37W2he3GaLgQNa5qXx4qiOIcRo//7xRQaDMQn8jQNv3/8D/gmw0HQ0Yoht471j7v8gCL4AjZn0 + BRhVTtsAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADzSURBVDhPjZC9DgFBGEW3VnkEr6LQeAQRjdabkGg0opEo + 1DSabXUKQbyAhAhqiWbs+TKXWdkfJ/myuzP3nsxOlIXLwW+XQ7g7bLj+pu1ay6a9/y2wZIIEjATgY9kQ + IKwJBZpCie0mhOVQInw8DRu1cdXdn2cLSaI7YD2+LCwDvvaFxWpvZ8H9I7YnRZUR5QpU3t5eVmYmh4F9 + M5T1K5mSUFCfXq3MU6MyovlxVi4YrU4pAUVNroBFHZ1gKEDOkEHAe0oAoUTHZQhXOmsbTpZZBgm4JF1U + KKBcKABJdFQmLBaWhSUSkKikIvhYOT7/wS//EEVvGzzxFoh98xwAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEPSURBVDhPrZI9CsJAFIRzDi9gaStYCCm8gCgIYgoRISA2 + gj+9lXYieAJP4CXSC6YSbEQQCxsrk6fzcGI02dg4MMVu3vdlw8b6jmTkNWIOhiaViqzm86iLXk+L/UwJ + Hs6aTQl9X8TztOF6LfflMuq0UEiXxOHLcKg9DwbaU7+vPbquyGiUlGDRte2fMHpot1XSyOXeEgpum00E + IoT9UknXgClwi0XdSwgIoQhhQBSEz5MYBTwqmgbvWy0VGD+B3xmHEYBspoBv0jxhQshPAe55V6sZ69fr + sq1WkwIEC6dc1ivkYFoBj/P5T5iJS4JOR66O81HsEQ6CIClA8BBXhL8NwyzWPLYRZnTKkNfIP2NZD+oj + J+O97B4lAAAAAElFTkSuQmCC + + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + 186, 17 + + + 401, 17 + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC + pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++ + Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ + /5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA + zpX/v6RC8f/fWzFAjeH/p+Zp/J+QpfW/O0P3f3uq/v/mREPCYTIb6E+Qc//dCPjfk6FDWAM6APnz3w1/ + IPb735qsT7oB3em6YP+CcH2cEekGtCQZ/G+IN/xfE2v8vzLahHQD6AQYGAAkI9iedfyIaQAAAABJRU5E + rkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC + DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC + rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV + i9OIytR3EMNWcJ/BWH8A6j8/bOGFxwXNxYEvGbMQ9XnQ1/K78KfY3/VXzkMY0qFGG2H4RoLGQshJQNbG + 86CNhdrsX9a/uQZTPhQl4rMY4OLofbl3aX7I8uwPC7y/g1YdjyVJuEvT8e1tfwUYteHUxCCfHChDeHmG + QQvokjlOU+PbWA0x3pZnILVVI3uvQyHsbiLnqnGmRCF1NYD8pDhpRxOH7HQoAKZGkFKjceszQbpSrumX + bO+G80MFwKUTxgfgcO/b8D9IpXoFiiMDHIQm0skAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 + wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0 + v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg + UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA + Iu/O/9T+11gVGSSd+C+b9vW/bvA83AYYZt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPu + lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w + 5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f + Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+ + 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 + n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI + N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f + oAc0QjgAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// + h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B + twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA + kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG + WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9 + 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAAExJREFUOE9joAr49u3bf1IxVCsEgAWC58Dxh/cf4RhZDETHTNiHaQgpBoAwzBCo + dtINAGGiDUDGyGpoawAxeNSAQWkAORiqnRLAwAAA9EMMU8Daa3MAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + 609, 17 + + + 749, 17 + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC + pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++ + Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ + /5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA + zpX/v6RC8f/fWzFAjeH/p+Zp/J+QpfW/O0P3f3uq/v/mREPCYTIb6E+Qc//dCPjfk6FDWAM6APnz3w1/ + IPb735qsT7oB3em6YP+CcH2cEekGtCQZ/G+IN/xfE2v8vzLahHQD6AQYGAAkI9iedfyIaQAAAABJRU5E + rkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC + DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC + rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV + i9OIytR3EMNWcJ/BWH8A6j8/bOGFxwXNxYEvGbMQ9XnQ1/K78KfY3/VXzkMY0qFGG2H4RoLGQshJQNbG + 86CNhdrsX9a/uQZTPhQl4rMY4OLofbl3aX7I8uwPC7y/g1YdjyVJuEvT8e1tfwUYteHUxCCfHChDeHmG + QQvokjlOU+PbWA0x3pZnILVVI3uvQyHsbiLnqnGmRCF1NYD8pDhpRxOH7HQoAKZGkFKjceszQbpSrumX + bO+G80MFwKUTxgfgcO/b8D9IpXoFiiMDHIQm0skAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 + wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0 + v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg + UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA + Iu/O/9T+11gVGSSd+C+b9vW/bvA83AYYZt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPu + lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w + 5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f + Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+ + 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 + n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI + N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f + oAc0QjgAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// + h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B + twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA + kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG + WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9 + 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + wQAADsEBuJFr7QAAAExJREFUOE9joAr49u3bf1IxVCsEgAWC58Dxh/cf4RhZDETHTNiHaQgpBoAwzBCo + dtINAGGiDUDGyGpoawAxeNSAQWkAORiqnRLAwAAA9EMMU8Daa3MAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + + + 258, 17 + + + 328, 17 + + + 680, 17 + + + 543, 17 + + + + AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqoArBrBvGoiwbxrlsG8a/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a5bBvGoiqgCsGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALBv + Goiwbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8ahwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACwbxrlsG8a/92nYv/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/dqGH/sG8a/7Bv + GuUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsG8a/7BvGv/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/7BvGv+wbxr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALBvGv+wbxr/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP+wbxr/sG8a/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACwbxr/sG8a/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/sG8a/7BvGv8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAsG8a/7BvGv/ruXj/67l4/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv/ruXj/67l4/7Bv + Gv+wbxr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALBvGv+wbxr/67l4/+u5eP+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+wbxr/67l4/+u5eP+wbxr/sG8a/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwbxr/sG8a/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/sG8a/7BvGv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAsG8a/7BvGv/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/7BvGv+wbxr/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAALBvGv+wbxr/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP+wbxr/sG8a/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwbxr/sG8a/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/sG8a/7BvGv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsG8a/7Bv + Gv/ruXj/67l4/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/7BvGv+wbxr/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAALBvGv+wbxr/67l4/+u5eP+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/7BvGv/ruXj/67l4/+m4dv/MkUb/tncj/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + GuWwbxqIqoArBgAAAAAAAAAAAAAAAAAAAACwbxr/sG8a/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/MkUb/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGocAAAAAAAAAAAAAAAAAAAAAsG8a/7BvGv/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/tncj/7Bv + Gv+ubxo8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsHEZPbBvGv+wbxrlAAAAAAAAAAAAAAAAAAAAALBv + Gv+wbxr/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/7BvGv+wbxr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwbxr/sG8a/wAA + AAAAAAAAAAAAAAAAAACwbxr/sG8a/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP+wbxr/sG8a/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAsG8a/7BvGv8AAAAAAAAAAAAAAAAAAAAAsG8a/7BvGv/ruXj/67l4/7BvGv+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/+u5eP/ruXj/sG8a/7BvGv8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAALBvGv+wbxr/AAAAAAAAAAAAAAAAAAAAALBvGv+wbxr/67l4/+u5 + eP+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv/ruXj/67l4/7Bv + Gv+wbxr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwbxr/sG8a/wAAAAAAAAAAAAAAAAAA + AACwbxr/sG8a/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP+wbxr/sG8a/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsG8a/7Bv + Gv8AAAAAAAAAAAAAAAAAAAAAsG8a/7BvGv/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/sG8a/7BvGv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAALBvGv+wbxr/AAAAAAAAAAAAAAAAAAAAALBvGv+wbxr/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/7BvGv+wbxr/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwbxr/sG8a/wAAAAAAAAAAAAAAAAAAAACwbxr/sG8a/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP+wbxr/sG8a/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsG8a/7BvGv8AAAAAAAAAAAAA + AAAAAAAAsG8a/7BvGv/ruXj/67l4/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/+u5eP/ruXj/sG8a/7BvGv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALBv + Gv+wbxr/AAAAAAAAAAAAAAAAAAAAALBvGv+wbxr/67l4/+u5eP+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv/ruXj/67l4/7BvGv+wbxr/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACwbxr/sG8a/wAAAAAAAAAAAAAAAAAAAACwbxr/sG8a/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP+wbxr/sG8a/wAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsG8a/7BvGv8AAAAAAAAAAAAAAAAAAAAAsG8a/7Bv + Gv/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/sG8a/7BvGv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALBvGv+wbxr/AAAAAAAA + AAAAAAAAAAAAALBvGv+wbxr/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/7BvGv+wbxr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACwbxr/sG8a/wAAAAAAAAAAAAAAAAAAAACwbxr/sG8a/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP+wbxr/sG8a/wAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAsG8a/7BvGv8AAAAAAAAAAAAAAAAAAAAAsG8a/7BvGv/ruXj/67l4/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/+u5eP/ruXj/sG8a/7Bv + Gv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALBvGv+wbxr/AAAAAAAAAAAAAAAAAAAAALBv + Gv+wbxr/67l4/+u5eP+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv/ruXj/67l4/7BvGv+wbxr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwbxr/sG8a/wAA + AAAAAAAAAAAAAAAAAACwbxr/sG8a/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP+wbxr/sG8a/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAsG8a/7BvGv8AAAAAAAAAAAAAAAAAAAAAsG8a/7BvGv/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/sG8a/7BvGv8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAALBvGv+wbxr/AAAAAAAAAAAAAAAAAAAAALBvGv+wbxr/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/wAAAAAAAAAAAAAAAAAA + AACwbxr/sG8a/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv8AAAAAAAAAAAAAAAAAAAAAsG8a/7BvGv/ruXj/67l4/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a/+u5eP/ruXj/sG8a/7BvGv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAALBvGv+wbxr/AAAAAAAAAAAAAAAAAAAAALBvGv+wbxr/67l4/+u5eP+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv/ruXj/67l4/7BvGv+wbxr/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwbxr/sG8a/wAAAAAAAAAAAAAAAAAAAACwbxr/sG8a/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP+wbxr/sG8a/wAAAAAAAAAAsW8aw7BvGv+wbxr/sG8a/7BuGsIAAAAAAAAAALFvGsOwbxr/sG8a/7Bv + Gv+wbhrCAAAAAAAAAACxbxrDsG8a/7BvGv+wbxr/sG4awgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACubxo8sG8a/7BvGuUAAAAAAAAAAAAA + AAAAAAAAsG8a/7BvGv/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/sG8a/7BvGv8AAAAAAAAAALBvGv+wbxr/sG8a/7BvGv+wbxr/AAAAAAAA + AACwbxr/sG8a/7BvGv+wbxr/sG8a/wAAAAAAAAAAsG8a/7BvGv+wbxr/sG8a/7BvGv8AAAAAAAAAAAAA + AAAAAAAArW0bHLBvGrGwbxr2sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+wbxqIAAAAAAAAAAAAAAAAAAAAALBvGv+wbxr/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/7BvGv+wbxr/AAAAAAAAAACwbxr/sG8a/wAA + AACwbxr/sG8a/wAAAAAAAAAAsG8a/7BvGv8AAAAAsG8a/7BvGv8AAAAAAAAAALBvGv+wbxr/AAAAALBv + Gv+wbxr/AAAAAAAAAAAAAAAAqlUAA7FwGtCwbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/7BvGuWwbxqIqoArBgAAAAAAAAAAAAAAAAAAAACwbxr/sG8a/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP+wbxr/sG8a/wAA + AAAAAAAAsG8a/7BvGv+wbxr/sG8a/7BvGv8AAAAAAAAAALBvGv+wbxr/sG8a/7BvGv+wbxr/AAAAAAAA + AACwbxr/sG8a/7BvGv+wbxr/sG8a/wAAAAAAAAAAAAAAALBvG16wbxr/uHkn/+ayb//ruXj/67l4/+u5 + eP/ruXj/67l4/+q4d/+4eif/sG8a/7BvG14AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsG8a/7Bv + Gv/ruXj/67l4/7+CMv+7fS3/465r/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+Oua/+7fS3/v4Iy/+u5 + eP/ruXj/sG8a/7BvGv8AAAAAAAAAALBvGsWwbxr/sG8a/7BvGv+xbxrDAAAAAAAAAACwbxrFsG8a/7Bv + Gv+wbxr/sW8awwAAAAAAAAAAsG8axbBvGv+wbxr/sG8a/7FvGsMAAAAAAAAAAL+AAASvbxrasG8a/9We + Vv/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/Vnlb/sG8a/69vGtq/gAAEAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAALBvGv+wbxr/67l4/+u5eP+wbxr/sG8a/7NzH//Zolv/67l4/+u5eP/ruXj/67l4/9uk + Xf+zdCD/sG8a/7BvGv/ruXj/67l4/7BvGv+wbxr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACxbhtfsG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxteAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwbxr/sG8a/+u5eP/ruXj/sG8a/7BvGv+wbxr/sW8b/8+W + S//ruHj/67h4/8+WS/+xbxv/sG8a/7BvGv+wbxr/67l4/+u5eP+2dyP/sG8a/7BuGjoAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAC1ahUYsW8b3bBvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+xbxrDv4AABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsG8a/7BvGv/ruXj/67l4/7Bv + Gv+wbxr/sHAbe7BvGv2wbxr/w4Y5/8OGOf+wbxr/sG8a/bBwG3uwbxr/sG8a/+u5eP/ruXj/zJFG/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxrPqlUAAwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALBv + Gv+wbxr/67l4/+u5eP+wbxr/sG8a/wAAAACwbhxKsG8a77BvGv+wbxr/r28a8LBuHEoAAAAAsG8a/7Bv + Gv/ruXj/67l4/+m4dv/Mkkb/tnYj/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGvexbxqzrW0bHAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACwbxr/sG8a/+u5eP/ruXj/sG8a/7BvGv8AAAAAAAAAALNuHCWwbxrLsG8ay7Nu + HCUAAAAAAAAAALBvGv+wbxr/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/sG8a/7Bv + Gv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsG8a/7BvGv/ruXj/67l4/7BvGv+wbxr/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwbxr/sG8a/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/7BvGv+wbxr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALBvGv+wbxr/67l4/+u5 + eP+wbxr/sG8a/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsG8a/7BvGv/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP+wbxr/sG8a/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACwbxr/sG8a/+u5eP/ruXj/sG8a/7BvGv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALBv + Gv+wbxr/67l4/+u5eP+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/67l4/+u5 + eP+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/+u5eP/ruXj/sG8a/7BvGv8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAsG8a/7BvGv/ruXj/67l4/7BvGv+wbxr/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACwbxr/sG8a/+u5eP/ruXj/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/+u5eP/ruXj/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv/ruXj/67l4/7Bv + Gv+wbxr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALBvGv+wbxr/67l4/+u5eP+wbxr/sG8a/wAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsG8a/7BvGv/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP+wbxr/sG8a/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwbxr/sG8a/+u5 + eP/ruXj/sG8a/7BvGv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALBvGv+wbxr/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/sG8a/7BvGv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAsG8a/7BvGv/ruXj/67l4/7BvGv+wbxr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACwbxr/sG8a/+u5eP/ruXj/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/67l4/+u5eP+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a/+u5eP/ruXj/sG8a/7BvGv/ruXj/67l4/7BvGv+wbxr/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAALBvGv+wbxr/67l4/+u5eP+wbxr/sG8a/wAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAsG8a/7BvGv/ruXj/67l4/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/+u5 + eP/ruXj/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv/ruXj/67l4/7BvGv+wbxr/67l4/+u5 + eP+wbxr/sG8a/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwbxr/sG8a/+u5eP/ruXj/sG8a/7Bv + Gv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALBvGv+wbxr/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/sG8a/7BvGv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsG8a5bBv + Gv/eqGP/67l4/7BvGv+wbxr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwbxr/sG8a/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5 + eP/ruXj/67l4/+u5eP/ruXj/67l4/+u5eP/ruXj/3adi/7BvGv+wbxrlAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAALBvGoiwbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8aiAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqgCsGsXAaibBvGuawbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7BvGv+wbxr/sG8a/7Bv + Gv+wbxrlsG8aiKqAKwYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/////////////////////8AAAAAAD///wAAAAAAP///AAAAAAA///8AAAAAAD///wAAAAAAP + ///AAAAAAA///8AAAAAAD///wAAAAAAP///AAAAAAA///8AAAAAAD///wAAAAAAP///AAAAAAA///8AA + AAAAD///wAAAAAAAAAPAAAAAAAAAA8AAAf/////jwAAD//////PAAAP/////88AAA//////zwAAD//// + //PAAAP/////88AAA//////zwAAD//////PAAAP/////88AAA//////zwAAD//////PAAAP/////88AA + A//////zwAAD//////PAAAP/////88AAA//////zwAAD//////PAAAP/////88AAA//////zwAAAAAAA + AAPAAAAAAAAAA8AAA//////zwAAD//////PAAAMGDB//48AAAwYMHgADwAADJkycAAPAAAMGDBwAH8AA + AwYMGAAfwAAD///4AD/AAAH///AAP8AAAAAAAP//wIEAAAAB///AwwAAAA///8D/AAAAD///wP8AAAAP + ///A/wAAAA///8D/AAAAD///wP8AAAAP///A/wAAAA///8D/AAAAD///wP8AAAAP///A/wAAAA///8D/ + AAAAD///wAAAAAAP///AAAAAAA////////////////////////8= + + + \ No newline at end of file diff --git a/SID Information/icons8-attach-64.ico b/SID Information/icons8-attach-64.ico new file mode 100644 index 0000000..3e63574 Binary files /dev/null and b/SID Information/icons8-attach-64.ico differ diff --git a/SID Information/libxl.dll b/SID Information/libxl.dll new file mode 100644 index 0000000..b3159fd Binary files /dev/null and b/SID Information/libxl.dll differ diff --git a/SID Information/libxl.net.dll b/SID Information/libxl.net.dll new file mode 100644 index 0000000..b487ebc Binary files /dev/null and b/SID Information/libxl.net.dll differ